何 娇,陈盛云
(昆明理工大学信息工程及自动化学院,云南 昆明 650500)
目前,国内外视频会议系统按控制信令可分为两种:基于H.323协议视频会议系统和基于SIP的视频会议系统。简单灵活的SIP协议不仅能够实现H.323的相关功能,而且由于其扩展性强、定位用户、支持用户移动性、会话建立的时延较短等,受到越来越多的开发者和用户的关注。当前网络技术的快速发展,传统固网、移动网、宽带互联网以及有线电视网的融合[1-2],同时终端朝着智能化的方向发展,使得SIP已经被广泛地使用和支持,SIP也将逐渐取代H.323,成为下一代网络首选的信令控制协议。
在基于SIP视频会议中,SIP服务器[3-4]起着至关重要的作用。随着视频会议应用的增加、视频规模的扩大,SIP服务器负载在不断增加。SIP服务器的处理能力以及其稳定性、处理效率对视频会议的质量和会议的规模有着制约作用。因此,研究视频会议服务器,提高其稳定性、工作处理效率等对视频会议的研究和发展有着重要的意义。
SIP协议是分组网络中用来处理语音和视频通信的会话控制信令,SIP用于发起、修改和终止一个或多个参与者之间的多媒体会话,如IP网络电话、视频会议等的会话。IETF工作组在1999年9月推出了基于IP网络的会话初始信令协议SIP(Session Initiation Protocol)的第一个版本 RFC2543[3];2002年IETF发布了第二个版本RFC3261[4];随后IETF推出了多个关于SIP的RFC文档,2006年2月推出的RFC4353[5],其中给出一个集中式SIP会议系统原始框架。
文献[4]中描述了SIP消息是基于文本的协议,采用UTF8进行编码。RFC3261定义的SIP消息的格式如下:
SIP消息=起始行(start-line)+消息头部(一个或者多个头部(header field))+CRLF(空行)+[消息体](message body)
起始行=请求行/响应行
1)请求行:请求行中规定了6种方法(Method)(见表1)。
表1 SIP请求消息表
2)状态行:SIP 2.0版本中定义了6类响应消息,见表2。
表2 SIP响应消息表
文献[4]中介绍了SIP协议主要有以上6类请求/响应消息,除此之外根据实际的需要可以进行扩展和修改,如IETF工作组在RFC3265文档中对SIP消息进行了扩展,增加了如下消息:订阅/通知(SUBSCRIBE/NOTIFY),此外在RFC2976中增加了信息(INFO)消息,这在视频会议中有着重要作用。
SIP协议实体[2]可分为:SIP客户端和SIP服务器。文献[6]中对呼叫流程作了分析和说明,其SIP呼叫过程如图1所示。
图1 SIP呼叫流程图
1)SIP客户端是用于和用户交互的SIP实体,它包括一个用户代理客户端和一个用户代理服务器,主要完成发起呼叫和应答呼叫。
2)SIP服务器主要由3部分构成:SIP代理服务器PS(SIP Proxy Server)、注册服务器ReS(SIP Register Server)和重定向服务器RS(Redirect Server)等。此外根据需要可增加位置服务器。
(1)SIP PS,它为部分客户端“产生”请求报文,负责报文的路由转发。可在SIP PS上部署一些特定的本地策略,如通过代理服务器完成用户授权认证、计费等。
(2)SIP ReS,其只接收REGISTER请求报文,完成用户相关信息的注册。
(3)RS,接收SIP的请求消息,将被叫用户的SIP地址映射成0个地址或者多个地址,并且将结果返回给客户端。
SIP视频会议系统有两种模型:紧耦合和松散耦合:在紧耦合会议中使用一个中心节点来对信令进行集中控制,而松散耦合会议中没有集中的SIP信令服务器。图2所示为紧耦合模式,包括集中混合模式、系统混合模式和信令集中、媒体流分布模式。图2中 A,B,C,D,E为终端,实线为SIP流,虚线为媒体流。
图2 信令集中、媒体流分布模式
在图2中,由一个SIP信令控制器来集中控制和管理会议中的所有用户,并维护所有终端用户间的信令交互与连接。媒体流则由与会终端各自分别进行处理。该模式利于会议的集中控制与管理,但在与会者数量增加、并发请求数量变大的情况下,信令控制器会成为整个会议系统的瓶颈,限制会议的规模。
采用集中控制式,其视频会议服务器框架结构[4,6]如图3所示。该框架主要包括Participant(与会者)、Focus(会议控制中心)、Mixer(媒体混合服务器)、CNS(Conference Notification Server,会议通知服务器)等功能模块。其中,Focus主要控制会议的建立或退出、与会者加入或退出等,即对应SIP信令控制服务器的功能,集中处理会议中多个终端之间的信令交互,负责维护SIP会议终端间的SIP信令连接。Mixer媒体服务器,主要完成媒体混合与分发。Focus,CNS和Mixer构成会议服务器,完成视频会议的核心功能。文献[6-7]中给出了该模型中部分模块的功能的介绍。
图3 视频会议服务器框架
图3中随着用户数量、会议规模的扩大、与会者并发请求的增加,Focus将成为整个视频会议系统的瓶颈,制约着视频会议的规模与质量。因此,对此框架进行了改进,其结构如图4所示,在此图中SIP服务器1、SIP服务器2至可扩展SIP服务器N,均处于可互连的IP网络中,且与数据库服务器相连。用户1和用户2等用户与SIP服务器1交互,用户5和其余用户与SIP服务器2交互,媒体服务器互通。SIP服务器可以选择配置较高的用户终端PC来搭建,这样可以充分利用客户端PC的处理能力,即构建“云计算”服务集群,来完成SIP服务器的功能,降低服务器的负载,增大视频会议的规模。
图4 视频会议服务器
在图4中存在多个用户和SIP服务器,针对SIP服务器加以该进,采用负载均衡[8]的方法来提高系统的可靠性和动态自适应能力,扩大视频会议的规模。其方法如下:在数据库中建立和维护SIP服务器的实时服务状态表(见表3),该表记录SIP服务器的地址、工作状态、负载率等,SIP服务器周期性地向数据库提交其信息。用户信息记录见表4。比如:用户(10001)向SIP服务器(192.168.0.10)发起呼叫请求时,服务器1状态为1,表示繁忙,负载较高大于70%,则查询数据库并向用户1返回较闲的服务器地址(192.168.0.11),用户根据返回地址发起呼叫,即将该信令消息重定向到其他较闲的SIP服务器上进行处理。服务器192.168.0.11 修改用户信息(见表4),将用户(10001)归属到 192.168.0.11,即修改服务器 IP,SIP服务器192.168.0.10 在线用户数量减1。
表3 服务器状态表
表4 用户信息表
在SIP服务器中增加消息分发处理机制[9],负责SIP消息的分类处理和分发,提高SIP服务器的处理效率,解决大量请求时的拥塞问题。具体做法如下:1)定义消息分发规则,根据用户的级别设置优先级,级别越高优先级越高;2)根据用户所属服务器的不同,分别分发到各自服务器进行处理;3)将消息分为不同类型分别由不同服务器处理,如查询类消息由SIP服务器1处理,会议成员周期更新消息由SIP服务器2处理;4)其余未分类消息由接到消息的服务器自身处理。这样可以根据实际的扩展和需要对消息进行分类,定义合适的分发机制,减轻服务器要处理大量请求的负担,提高系统的稳定性,增强系统服务器处理消息的效率。
本文通过对SIP协议、SIP服务器、SIP视频会议体系结构的分析和研究,对会议服务器框架进行了改进。此外,对SIP服务器进行了改进,设计并采用负载均衡方法和消息分发、优先处理机制等,提高了系统的会议规模,增强了SIP消息的处理效率和系统的并发处理能力,提高系统的稳定性。在下一步工作中,将对服务器作进一步的优化和改进,提高系统的安全性,对媒体服务器进行研究,以提高音视频的处理效率和音视频质量,最后提高系统的性能。
[1]仲元昌,林永,蔡增增,等.视频会议系统关键技术及应用研究[J].电视技术,2010,34(6):93-96.
[2]杨高波,韩龙.视频会议系统综述[J].电视技术,2004,28(9):60-63.
[3]RFC2543,SIP:Session Initiation Protocol[S].1999.
[4]RFC3261,SIP:Session Initiation Protocol[S].2002.
[5]RFC4353,A framework for conference with the session initiation protocol(SIP)[S].2006.
[6]苏云涛.基于SIP的视频会议系统的设计与实现[D].北京:北京邮电大学,2008.
[7]郭敦望.SIP视频会议服务器的设计与实现[D].北京:北京邮电大学,2010.
[8]华中科技大学.基于分布式SIP构架的动态负载均衡的方法:中国,201110171741.2[P].2011-09-28.
[9]烽火通信科技股份有限公司.会话初始化协议消息分发系统、装置和方法:中国,201110171741.2[P].2011-09-28.