1、SIP应用服务开发: 引言

工做已有3个年头了,本身作了一些SIP相关的应用开发和研究,在行业系统检测和互联实施中也遇到过很多问题,因而在这里和你们分享一下心得体会,其中一些技术细节我也没想得很周到,但愿你们不吝批评指正。在此,我谈及的SIP应用服务器,是指在RFC 3261及其相关协议的基础上,扩展造成的GB/T 28181标准,该标准主要用于全国视频监控系统的互联。这里,RFC 3261协议是IETF工做组针对SIP协议的官方文档,其中详细描述了SIP消息的格式、内容、会话、过程等元素,对开发SIP协议栈和应用服务有根本的指导意义。ORACLE公司的Oracle Communication Converged Application Server (OCCAS)等就是根据RFC 3261及其相关协议来设计开发的。这点和支持HTTP的协议栈相似。设计模式

做为应用层(7层)的SIP协议,设计的初衷是协商,即信息的交换。所以,选用SIP协议来对其余资源进行互联和控制,例如,在GB/T 28181中,使用SIP来控制视音频媒体流的传输(RTP和RTSP)。在GB/T 28181中,SIP协议最大的做用就是经过SDP帮助互联系统交换媒体流收发地址和端口以及在系统间控制媒体流的分发,从而知足全国监控视频的共享和汇聚。此外,SIP协议在该国标中还承担了其余方面的通讯任务,可是,实际使用时存在必定的弊端,这在从此的文章中会详细谈到。服务器

总的来讲,截止到2014年末,基于SIP协议的GB/T 28181帮助咱们完成了全国安防视频的联网工做,效果还不错。所以,我也有些时间分享一下3年来的一些研发心得,和业内的技术人员交流。架构

在从此的文章中,我将陆续谈及SIP应用服务的设计和开发的一些方面,涉及不一样种类的技术和不一样层面的问题。主要包括:
1. 基础架构:设计模式、模块组成、伸缩性与扩展性讨论等等,这里面会讲到已实现的架构和技术,供你们参考。
2. 集群构建: 解决高可用和可伸缩的问题,共享状态数据,如何解决定时器问题等等。
3. 负载均衡:HTTP、SIP、媒体流等负载均衡技术
4. 开发技术:Maven、Spring、Hibernate等,根据具体的项目实践讨论。
5. 其余:比较细节的一些技术问题、讨论等等负载均衡

引文参考
1. IETF RFC 3261
2. GB/T 28181
3. Oracle Communication Converged Application Server (OCCAS) 商业版本SIP服务器
4. Mobicents 开源SIP协议栈
5. Kamoilio 开源SIP协议栈
设计

相关文章
相关标签/搜索