什么是SIP通讯(二)

You are here:
← All Topics

此文以SIP协议后期涉及的拓展知识为主,旨在通过知识平面搭建以帮助后期高层次知识的消化理解。包括:

关于用户代理的定义使用;

SIP呼叫中的dialog的定义;

SIP核心技术架构介绍

01

SIP用户代理-UA

SIP协议中,有几个非常重要的逻辑概念需要了解。

其中涉及到了具体的呼叫发起和接收的流程和实体(呼叫参与者)且经常出现在各种关于SIP协议的介绍中,包括:

用户代理客户端User Agent Client (UAC);

用户代理服务器端User Agent Server (UAS));

用户代理User Agent (UA))。

背景说明

SIP官方早期规范版本(RFC2543)中,以上三个定义和SIP当前使用的版本(RFC3261)中关于以上三个定义有了一定的区别,同时在RFC3261中增加了Back-to-Back User Agent(B2BUA-背靠背代理)的新定义,这是SIP协议一个非常大的突破。

继而经过短短3年技术发展,SIP协议又变得非常具体化,对某些定义有了新的更新。特别是在RFC3261中增加了Back-to-Back User AgentB2BUA-背靠背代理)

当然,B2BUA也让很多SIP协议初学者非常困惑。如果读者需要进一步了解关于B2BUA的话,除了参考RFC3261以外,读者也应该查阅B2BUA的定义-RFC7091。在RFC7091中对B2BUA有着非常明确的定义。

从早期SIP协议RFC2543和当前SIP版本RFC3261中我们可以看出,在目前使用的SIP规范中更加细化了UACUAS以及相关的core的定义。另外,其描述也发生了很多变化,例如,逻辑实体的描述的引入,而不是笼统称之为application。再例如,增加了B2BUA的定义,并且明确了B2BUA4种角色(参考RFC7091,包括其中一个角色SBC)。



以上背景说明,我们按照相对比较官方的定义-RFC3261,重点针对用户代理客户端,用户代理服务器端和用户代理加以简单介绍。

根据RFC3261规范定义,UAUACUAS分别负责各自的任务,同时在必要时做角色切换任务。

UAUser Agent

日常说到的UA是用户代理,一个逻辑实体,这里通常是抽象的一个总称(UACUAS)。

两者之间的具体特点如下:

1、UACUser Agent Client

用户代理客户端,它是一个逻辑实体,生成请求。如果它收到请求,它会假设自己为UAS做进一步的UAS流程处理。

2、UASUser Agent Server

用户代理服务器端,它是一个逻辑实体,它针对请求生成响应。如果它发起请求,它会假设自己为UAC做进一步的UAC流程处理。

综上说明可了解,UA是高于以上两种实体,并且可以在必要时充当其任何一种角色的。

进一步讲,我们稍晚将提到的B2BUA就是其角色延伸,为了同时满足以上两种用户代理的功能要求,它必须时刻进行角色切换产生请求,产生响应响应。

SO

两个简单SIP终端是否可直接呼叫?

在纯SIP一般的同一网络环境中,两个SIP终端可以不需要任何中间服务器,或者媒体服务器包括我们经常讨论的IPPBX,两个SIP终端仍然可以直接通过输入对方的IP地址实现呼叫。

但是,这种操作流程对一般的企业通信业务没有非常大的意义,一般用户也不会这样操作。

首先,IP地址不方便记忆,IP地址有时可能发生变化,同时在物理话机直接输入IP地址也比较麻烦。

因此,这种操作在理论上可以实现,在实际业务操作中,呼叫一般都是通过中间服务器注册,然后通过设置的号码对对方呼叫。

02

关于SIP dialog

SIP呼叫过程中,dialog关系到整个呼叫的实现。

它用来关联双方呼叫端的关系。另外,在呼叫过程中,还要涉及事务的关联。



03

SIP 系统技术架构

本质上SIP协议基本涉及的是运营的呼叫环境,所以在绝大部分的具体的环境中,一般示例都是以代理呼叫的处理流程来介绍RFC3261协议,而非企业用户使用的B2BUAIPPBX方式。

另外,在当前的应用环境中,企业通信系统或者SIP/IP PBX有经常使用媒体服务器的应用,因此,很多功能支持方面就相互交叉,非常灵活,这就带来了新的学习难度。



通过SIP系统技术架构图例可以看出,在整个系统架构中,比较核心的模块包括以下几个部分:

1UA 终端,User Agent 可以是软电话、手机app、物理话机等SIP终端;

2两个SIP代理服务器,负责发现UA,并且在它们之间创建会话流程;

3SIP注册服务处理UA在网络中的注册;

4SIP定位服务,包括已注册的UA消息,和其定位消息。很多时候,注册服务和定位服务可能是同一服务器

3VOIP/SIP gateway负责处理SIP网络和传统PSTN网络的信令转换

6IPPBX/传统PBX负责处理PBX的终端;

7IP PBX终端包传统物理FXS话机、SIP话机和传真机等;

8传统PBX连接PSTN电信运营商;

在终端的连接方面,SIP用户是通过URI或者AOR地址进行确认的,通过URI地址可以和各种终端进行通信。

一个URI可以绑定多个终端,可以支持APP,软电话和物理SIP终端等形式。

SIPURI格式看起来和我们通常使用的email格式相同,其格式基本构成为user@host的形式。user可以是用户名称或者电话号码格式,host可以是域名或者IP地址格式。

user可以通过DNS服务来实现语音,视频,邮件等能力的支持。具体的示例如下:

可先基本了解以下协议辅助SIP协议的深入内容:

RFC3261-SIP核心规范

RFC3515-REFER

RFC3372-SIP-T

RFC3311-

RFC3264-SDP

RFC3891-REPLACES

RFC3428-SIMPLE

04

总结

本文介绍了UA以及UASUAC的基本定义和关于SIP协议中两个版本中的一些区别,重点说明了关于背靠背代理的定义以及其灵活性,此外还有SIP协议中比较重要的核心概念、dialog的示例以及SIP系统技术架构的结果重要模块。