前期,SIP协议系列之基本概述-1一文中为大家简单介绍了SIP协议的基本信息及优势,是SIP协议系列的基础知识分享。
此文以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 Agent(B2BUA-背靠背代理)。
当然,B2BUA也让很多SIP协议初学者非常困惑。如果读者需要进一步了解关于B2BUA的话,除了参考RFC3261以外,读者也应该查阅B2BUA的定义-RFC7091。在RFC7091中对B2BUA有着非常明确的定义。
从早期SIP协议RFC2543和当前SIP版本RFC3261中我们可以看出,在目前使用的SIP规范中更加细化了UAC和UAS以及相关的core的定义。另外,其描述也发生了很多变化,例如,逻辑实体的描述的引入,而不是笼统称之为application。再例如,增加了B2BUA的定义,并且明确了B2BUA的4种角色(参考RFC7091,包括其中一个角色SBC)。
通过以上背景说明,我们按照相对比较官方的定义-RFC3261,重点针对用户代理客户端,用户代理服务器端和用户代理加以简单介绍。
根据RFC3261规范定义,UA,UAC和UAS分别负责各自的任务,同时在必要时做角色切换任务。
UA(User Agent):
日常说到的UA是用户代理,一个逻辑实体,这里通常是抽象的一个总称(UAC和UAS)。
两者之间的具体特点如下:
1
UAC(User Agent Client)
用户代理客户端,它是一个逻辑实体,生成请求。如果它收到请求,它会假设自己为UAS做进一步的UAS流程处理。
2
UAS(User Agent Server)
用户代理服务器端,它是一个逻辑实体,它针对请求生成响应。如果它发起请求,它会假设自己为UAC做进一步的UAC流程处理。
综上说明可了解,UA是高于以上两种实体,并且可以在必要时充当其任何一种角色的。
进一步讲,我们稍晚将提到的B2BUA就是其角色延伸,为了同时满足以上两种用户代理的功能要求,它必须时刻进行角色切换产生请求,产生响应响应。
SO
两个简单SIP终端是否可直接呼叫?
在纯SIP一般的同一网络环境中,两个SIP终端可以不需要任何中间服务器,或者媒体服务器包括我们经常讨论的IPPBX,两个SIP终端仍然可以直接通过输入对方的IP地址实现呼叫。
但是,这种操作流程对一般的企业通信业务没有非常大的意义,一般用户也不会这样操作。
首先,IP地址不方便记忆,IP地址有时可能发生变化,同时在物理话机直接输入IP地址也比较麻烦。
因此,这种操作在理论上可以实现,在实际业务操作中,呼叫一般都是通过中间服务器注册,然后通过设置的号码对对方呼叫。
✦✦
02
关于SIP dialog
在SIP呼叫过程中,dialog关系到整个呼叫的实现。
它用来关联双方呼叫端的关系。另外,在呼叫过程中,还要涉及事务的关联。
关于dialog,查看“再论SIP呼叫中的Call,Dialog和Transaction”了解其基本含义,有助于我们进行后续章节的讨论。
✦✦
03
SIP 系统技术架构
本质上SIP协议基本涉及的是运营的呼叫环境,所以在绝大部分的具体的环境中,一般示例都是以代理呼叫的处理流程来介绍RFC3261协议,而非企业用户使用的B2BUA的IPPBX方式。
另外,在当前的应用环境中,企业通信系统或者SIP/IP PBX有经常使用媒体服务器的应用,因此,很多功能支持方面就相互交叉,非常灵活,这就带来了新的学习难度。
通过SIP系统技术架构图例可以看出,在整个系统架构中,比较核心的模块包括以下几个部分:
1
UA 终端,User Agent 可以是软电话、手机app、物理话机等SIP终端;
2
两个SIP代理服务器,负责发现UA,并且在它们之间创建会话流程;
3
SIP注册服务处理UA在网络中的注册;
4
SIP定位服务,包括已注册的UA消息,和其定位消息。很多时候,注册服务和定位服务可能是同一服务器;
3
VOIP/SIP gateway负责处理SIP网络和传统PSTN网络的信令转换;
6
IPPBX/传统PBX负责处理PBX的终端;
7
IP PBX终端包传统物理FXS话机、SIP话机和传真机等;
8
传统PBX连接PSTN电信运营商;
在终端的连接方面,SIP用户是通过URI或者AOR地址进行确认的,通过URI地址可以和各种终端进行通信。
一个URI可以绑定多个终端,可以支持APP,软电话和物理SIP终端等形式。
SIP的URI格式看起来和我们通常使用的email格式相同,其格式基本构成为user@host的形式。user可以是用户名称或者电话号码格式,host可以是域名或者IP地址格式。
user可以通过DNS服务来实现语音,视频,邮件等能力的支持。具体的示例如下:
可先基本了解以下协议辅助SIP协议的深入内容:
RFC3261-SIP核心规范
RFC3515-REFER
RFC3372-SIP-T
RFC3311-UPDATE
RFC3264-SDP
RFC3891-REPLACES
RFC3428-SIMPLE
✦✦
04
总结
本文介绍了UA以及UAS,UAC的基本定义和关于SIP协议中两个版本中的一些区别,重点说明了关于背靠背代理的定义以及其灵活性,此外还有SIP协议中比较重要的核心概念、dialog的示例以及SIP系统技术架构的结果重要模块。
通过以上基本的介绍,大家可能会对SIP技术有一个基本的脉络,方便我们在后续的章节中更加详细介绍SIP注册服务器,定位服务器等内容的介绍。
参考资料:
https://datatracker.ietf.org/doc/html/rfc7092
https://www.ietf.org/rfc/rfc2543
https://www.ietf.org/rfc/rfc3261.txt
www.dinstar.cn