1什么是SIP协议技术
SIP协议以及相关技术涉及了从协议规范的抽象层面到非常具体的终端产品,服务器端应用场景和业务层面的控制逻辑等内容。在这些涉及的内容之外,SIP技术也涉及了其他的一些必要属性。基于篇幅的关系,我们这里有必要把一些非常核心的内容介绍给读者,同时简单介绍一下如何学习的知识分享。
首先,我们需要了解什么是SIP协议。Session Initiation Protocol (SIP) 全称是会话初始协议。我们可以将其完整名称分拆出来来简单分析:
Session Initiation Protocol (SIP):
- Session-会话
- Initiation-初始
- Protocol-协议
最早期的关于SIP协议的官方版本是1999年的RFC2543,2002年更新为RFC3261,此规范一直作为当前SIP网络的基本标准官方。SIP协议核心发明人目前仍然活跃在现在的商业领域,比较有名的呼叫中心的Five9的CTO Jonathan Rosenberg (SIP核心作者)是其中之一。另外一位非常有名的是Henning Schulzrinne,他是一位哥伦比亚大学的教授,专注于SIP、RTP的研究。笔者以前经常访问其学校的网页,通过他的一些书籍做进一步学习。在其页面下仍然有很多非常有价值的参考书籍和工具。读者如果有兴趣的话,可以访问参考链接做进一步学习。
我们一谈到网络协议,基本上它是都是非常抽象的。它不涉及到具体的每个产品,但是,它需要通过具体的产品来体现,具体的产品必须遵守其协议制定的规则,其他产品才能和其进行协同工作。如果我们稍微严谨一点来进一步说明其抽象性的话,我们可以这样说明。我们没有见过汽车(因为汽车本身就是一个汽车总的抽象),但是,我们见过丰田汽车,丰田汽车的哪个型号。在关于SIP的协议讨论中,我们也面临讨论的问题。大家基本上都见过SIP话机或者语音网关,但是你没有见过SIP。所以,读者理解我们讨论的SIP协议以及其技术应用概论时,很多读者比较困惑,特别需要读者从抽象到具体反复对照学习。
从SIP协议的基础来说,大部分的网络应用程序工作时需要创建管理会话,通过会话管理实现对网络协议的控制管理。会话是参与者之间的数据交换。因为SIP协议是参考了HTTP协议发展而来的协议,因此会话的基本特性也可以通过HTTP协议的会话来理解。会话实现的就是一个数据交互,双方的数据交换至少包括会话的ID,生命周期,定时器,结束的管理流程。这些基本特性同样也适用于基于SIP的会话中,双方或者多方交互的数据无外乎视频,文本,语音这三种形式,当然也包括交互过程中的一些管理需要的数据。我们进一步讲,如果SIP流程要执行会话交换就必须有一个初始方来发起一个任务,需要知道双方是否可以工作,是否愿意接受对方的工作要求等,这些都是通过协议来控制。初始流程启动以后,直到数据交互完成以后,通过结束控制来通知双方都停止工作。这些具体的流程步骤也都需要协议来管理。在SIP协议中,很多比较具体细节的控制通过各种定义,命名来实现。因此,从整体来说,基本上SIP协议需要实现控制信令协议,媒体(音视频文本)会话控制,定位用户地址,用户在线状态和创建/修改/结束会话这几个方面的工作。我们将在后续的多个章节来进一步展开讨论。这里不再做过多赘述。
前期学习SIP协议和相关技术是非常枯燥的。如果读者能够从抽象层面了解了SIP协议,同时能够结合具体的SIP终端或者服务器端架构,读者基本上就了解了整体的技术架构实现。如果读者在十几年前学习SIP和相关技术时,因为各种硬件环境和网络使用需求的局限,一般用户很难接触到完整的测试学习环境。随着开源软交换和终端技术的发展,读者可以通过非常低成本的方式来测试学习,人们几乎可以模拟出大部分的应用场景。通过低成本的学习环境配合一些商业产品可以完成从抽象到具体的整个学习路径。
2为什么使用SIP
SIP技术是一个技术趋势,这是一个市场选择的必然结果。从全球热词搜索,我们可以看到,最近年,SIP的搜索占比一直非常高。相反,H323一直处于守势。
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110353129.jpg)
此图片和以下图片均来自于互联网资源
如果我们从市场统计数据来看,SIP trunk服务的市场也一直在处于增加状态,并且H323已经逐渐被SIP trunk运营商替换。
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110352800.jpg)
从功能实现方面,H232和SIP相比,某些功能已经不能适应现代网络要求。以下是思科的一个功能对比。因此,技术迭代是不可避免的。
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110353846.jpg)
用户选择使用SIP大概有几个方面的原因。很多权威的研究机构和市场调研公司都曾经发布过很多关于SIP技术的一些文章。读者也可以参考笔者以前的文档,关于融合通信市场的分析发布:企业融合通信业务发展最新模式总论
除了笔者以前讨论的内容以外,这里还有几点思考内容需要补充。
国外一些主流运营商已经开始通过SIP提供更多的服务,例如AT&T, Verizon, 沃达丰等有名的服务商。目前市场上比较有名的呼叫中心服务和融合通信服务提供商,例如8x8, Ringcentral,Five9 等提供商也通过SIP提供其服务。一些国家已经明确停止运营PSTN网络,不再对用户提供PSTN服务。英国宣布到2025年,英国运营商将不再提供PSTN服务,通过SIP来提供服务。很多国家将陆续停止PSTN网络的运营服务。
除了一些商业机构和国家明确了SIP作为主要中继服务以外,因为开源技术和互联网技术的发展和业务模式的跨平台,跨地区的特性,很多服务需要SIP技术的支持,同时SIP技术也正好满足了其服务场景。基于开源的SIP应用平台非常丰富,用户可以选择SIP软交换服务器(Kamailio/OpenSIPs),可以选择SIP媒体服务器(Asterisk/FreeSWITCH),SIP UA(PJSIP/oSIP/Sofia SIPSIP.js/JsSIP)客户端等不同工具来适应多种复杂的业务模式。SIP终端可以充分部署到目前各种应用场景中,并且具备了非常好的移动性,物联网接入支持,边缘终端集成支持,语音数据采集终端支持,并且可以无缝和嵌入式ARM产品兼容。我们可以不夸张地说,天时地利人和是SIP技术非常受欢迎的原因,其他技术没有遇到如此好的时间点,有的技术本身也受当时环境的限制,逐渐被市场抛弃也是正常的。同时,各种软硬件IP产品厂家也不会浪费这个机会,大家都纷纷推出了自己的基于SIP平台的各种IP网络设备和解决方案,包括思科,微软,Avaya,Ribbon, Sangoma,奥科,NEC包括国内知名厂家鼎信通达和三汇等厂家。
除了企业融合通信方面,国内市场有很多的调度系统和应急指挥中心也已经开始部署各种SIP终端设备。通过各种SIP终端设备和上游服务器端集成实现媒体流的业务处理。
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110353546.jpg)
另外一个关于SIP进一步融入到实际语音应用中的一个最新推动力就是WebRTC。WebRTC最近几年非常火热,已经深入部署在各种用户场景中,它和SIP是非常完美的结合。基于WebRTC的视频会议平台还是其他视频呼叫中心等业务,仍然需要SIP协议支持。关于WebRTC的基本技术概要,读者可以参考:完整WebRTC技术及应用概要
以上笔者从运营商角度,服务提供商角度和周边技术发展的背景粗略地角度讨论了SIP技术如此受欢迎的原因。当然,技术受欢迎的前提是用户最终得到了好处,服务提供商或者厂家才有动力去进行开发。从用户角度来说,SIP的几个好处也是非常明显的:
- 比较低廉的语音花费,丰富的SIP trunk资源
- 丰富的服务支持,包括语音会议,视频会议服务,订阅型的各种服务,例如呼叫中心,IPPBX
- 丰富的各种接口服务可以和语音识别等平台进行对接集成
- 用户可以非常明确获知对方在线状态,方便及时沟通
具备强大灵活地移动性支持,满足了软电话终端,物理终端支持,同时实现了办公环境的运动支持。企业通信平台有能力为员工提供远程办公,移动办公,在家办公等工作方式,实现了非常良好的用户体验
SIP相关产品可以实现软硬件本地部署方式,同时也可以实现基于云平台的各种部署方式,满足了不同用户群体的使用场景。
3SIP协议以及相关周边主要协议
我们知道,在RFC3261的定义中定义了SIP仅负责SIP信令协商,信令协商以外的处理流程需要其他协议来支持。以下示例简单说明了一个SIP呼叫通过UDP或者TCP进行传输,配合SDP描述对媒体进行支持的说明,最后通过RTP传输各种语音支持。
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110631840.jpg)
在讨论SIP协议,我们需要配合周边的其他协议来讨论。周边的信令涉及很多,包括SIP核心相关协议和概念定义,会话描述相关协议,拓展协议,PSTN/3GPP协议,服务功能和质量保证协议等。通过一个完整的SIP脉络图例,帮助用户能够全面了解整个SIP和相关技术的应用,同时建立起一个完整的技术架构。如果读者有兴趣了解所有相关SIP协议和周边协议的话,可以点击以下链接阅读其具体内容:
图解完整SIP协议以及相关周边协议
![](http://www.ctiforum.com/uploadfile/2021/0830/20210830110702609.jpg)
在我们的基本概论的讨论中,笔者希望读者先了解几个基本的协议:
- RFC3261-SIP核心规范
- RFC3515-REFER
- RFC3372-SIP-T
- RFC3311-UPDATE
- RFC3264-SDP
- RFC3891-REPLACES
- RFC3428-SIMPLE
笔者虽然罗列了很多相关协议,因为我们的时间和知识背景有限,我们不可能对所有的知识有深入的理解。为了保证读者能够通过一个知识架构了解其知识体系,仍然建议读者能够适当涉猎一些必要的协议以加深对SIP协议和应用的进一步了解。
4总结
在本文章中,笔者首先介绍了SIP协议的基本内容,另外介绍了目前市场上为什么SIP协议成为了主流的协议,以及其发展壮大的多种背景因素。在接下来的章节中,笔者将具体介绍SIP的一些核心概念和各种服务器端处理流程。
参考资料:
- https://datatracker.ietf.org/doc/html/rfc2543
- https://datatracker.ietf.org/doc/html/rfc3261
- www.dinstar.cn
- www.asterisk.org.cn
- https://www.cs.columbia.edu/~hgs/
- https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2016/pdf/BRKUCC-2006.pdf