曹型兵,陈莹星
(重庆邮电大学通信工程应用研究所,重庆400065)
无线视频监控系统广泛应用于教育系统、医疗系统、安全系统以及应急指挥等。目前的无线视频监控朝着数字化、网络化、一体化等方向发展,对网络传输过程中实时、灵活性要求更高。而SIP具有高度简单灵活性、可扩展性等优点,可以作为视频监控系统的首选控制协议。
SIP(会话初始协议)[1]协议是IETF提出的,用来建立、修改和终止多媒体会话,基于文本传输的应用层控制协议,它独立于传输层,SIP使用用户数据报协议(UDP)和传输控制协议(TCP)将底层灵活联系在一起。
SIP是通过头域来传递和处理在会话过程中相关的各种信息,比如路由、安全机制等。而一个头域中包含的若干个参数,如from,to,call-ID,CSeq以及via等。其中call-ID用来标志一个特定的邀请,一个事务中包含的多种邀请都是通过call-ID识别。via字段存储所有处理请求的代理地址,用来检测路由的循环。via标题头的数量随着跳数增加,而应答消息返回时,via标题头的数量就会减少。CSeq对同一个会话中的事务进行排序。
SIP消息有两种:客户端到服务器的请求消息和服务器到客户端的响应消息。无论是请求消息还是响应消息,均由1个起始行(start-line)、1个或多个字段(field)组成的消息头、1个标志消息头结束的空行(CRLF)以及作为可选项的消息体(message body)组成。其中描述消息体的头称为实体头(entity header)。
SIP将建立会话和会话描述相分离。利用Request_URL_SIP请求和基于报文头内容的SIP应答来寻找路由,并且它具有可扩展性和互操作性等优点,成为了视频监控系统中广受青睐的协议之一。
基于SIP无线视频监控系统主要由客户端、SIP服务器、媒体服务器、数据库和PU端等部分组成,其体系架构如图1所示。
图1 无线视频监控系统构成
1)客户端
用户登录无线视频监控系统向数据库写入信息,经由数据库将信息发到SIP注册服务器。如果注册成功则保持在线状态,随后可以发送云台控制命令、录像命令、查询命令、配置命令等。当客户端与PU建立请求且响应成功后,则在客户端显示相应的内容。
2)SIP服务器
SIP服务器[2]包含用户代理、代理服务器、注册服务器和重定向服务器。注册服务器负责注册消息完成定位服务,使得请求方与被请求方建立起一条唯一通路进行消息传递。重定向服务器只接受SIP请求,不发起任何SIP请求,负责将目的地址映射成新的地址,并将新的地址返回给发送方,它能提供会话的移动性。代理服务器作为连接客户端与服务器端的实体,负责接收用户代理(UA)发来的请求并送往相应的服务器。UA包含用户代理客户(UAC)和用户代理服务器(UAS)。UAC作为逻辑实体充当会话的发起方,UAS作为物理实体充当接收方而存在。
SIP协议包含6种请求方法[3]:REGISTER,INVITE,ACK,BYE,OPTIONS,CANCEL。在实时视频数据传输过程中主要是用到包含SDP消息体的INVITE请求消息实时对数据包的传输。REGISTER作为客户端向服务器注册用户位置而存在的方法;ACK方法是呼叫的建立;BYE则是结束会话,释放链路资源;OPTIONS具有查询服务器功能的方法;CANCEL是取消已发出但未终止的请求。
3)媒体服务器
媒体服务器应用于传输层,主要完成媒体流的存储、排序和转发等任务,它包括转发服务器和存储服务器。转发服务器用来减少同时多种请求的并发量,减少带宽,节约资源,而存储服务器主要完成图像数据存储的管理与监测。基于视频的请求实时性要求高,采用面向无连接的数据协议(UDP)可以减少连接时间,它不需要进行消息确认与重传,又没有提供传送数据的保证机制。UDP协议本不能检测数据的传输质量。在高清视频要求的情况下,无线视频监控系统结合实时传输协议(RTP)进行端到端传送服务,它能保证信息和流同步,这样能降低时延,但是RTP本身没有提供可靠的传送机制、流量控制等服务,所以它需要RTCP来协同完成实时视频的传输过程。在RTP会话中向RTCP传送数据包。服务器可利用这些信息来动态改变传输速率,改善实时数据的传输质量。
4)数据库
数据库主要负责将客户端的信息经过SIP协议传到服务器端。当用户将命令类型写入数据库时,采用实时监听机制,将新到来的消息发往服务器,如果命令得以执行,则将数据库中相应的信息进行删除操作,减少数据库的载荷,或PU经SIP协议上传消息至服务器,经过监听函数的作用,在界面上显示消息,例如报警消息等。
当客户端将实时视频请求消息体发往数据库,则SIP中的回调函数将根据用户所发出的消息类型参数来执行相应的消息命令的传递。在SIP协议中主要用到MESSAGE消息与INVITE消息,为保证实时视频请求的正确性与唯一性,在SIP协议中采用INVITE消息来实现与媒体服务器的信令流程。其建立过程[4]如图2所示。
图2 实时视频请求建立过程
1)UAC利用INVITE请求实时视频消息,在消息体中包含媒体流的格式与参数,向UAS发送请求;
2)UAS收到UAC发送的消息后发送100Trying,表示正在处理该请求;
3)UAS继续发送180Ring消息给UAC,表示已经找到UAC消息体的请求内容;
4)UAS同意进行媒体会话,则发送200OK;
5)UAC向UAS发送ACK消息,表示UAC收到UAS的最终响应;
6)UAC与UAS可进行流媒体的传输。
SIP协议利用回调函数提高数据库中的通道号、IP地址、媒体类型、端口号。地址类型等作为INVITE中SDP消息体的参数,利用API函数调用SIP协议栈中的exosip_call_build_initial_invite函数来初始化SDP消息体,通过osip_message_set_body添加SDP消息体的正文,接着利用osip_message_set_content_type设置内容的类型头,最后通过锁机制发起呼叫。如果呼叫正常则进行事件的处理。发起呼叫过程如图3所示,处理过程如图4所示。
在SIP服务器收到ACK确认消息时,ex_osip_call_invite事件就启动RTP连接建立过程,服务器便开始实时视频线程的读取,等待读取成功后,如果收到exosip_cali_ack事件则要启动RTP和RTCP包发送线程,同时利用RTCP连接线程来周期性监测数据,通过反馈控制线程来完成对传输质量的监督[5]。具体流程如图5所示。
图5 服务器端传输过程
客户端在进行实时视频请求后最主要是播放实时视频任务,具体的工作是接收RTP/RTCP数据包,并经过H.264视频解码器作用在客户端播放视频。流程如图6所示。
图6 客户端传输过程
该系统采用SIP进行信令控制,实现了对监控点的控制和视频流的访问过程。系统具有配置灵活、网络互通性好、操作简便等特点,并且得到了良好的应用。在实际的过程中,基于SIP的信令控制和RTP/RTCP的视频流协议的实时视频图像清晰,如图7所示。
图7 实时视频传输图像
[1]刘勇,陈延雄.SIP协议的研究及呼叫控制实现[J].微处理机,2008(3):54-56.
[2]白建军,彭晖,田敏.SIP揭秘[M].北京:人民邮电出版社,2003.
[3]黄永峰,李建庆.下一代网络核心控制协议——SIP及其应用[M].北京:人民邮电出版社,2009.
[4]柴二建,冯子亮.基于SIP的多方视频会议模型设计与实现[J].计算机技术与发展,2008(5):47-50.
[5]杨丰瑞,蒋培健,张杰.基于SIP的无线视频监控系统信令的设计与实现[J].电视技术,2011,35(19):96-98.