基于SIP协议的考场监控系统的研究

2016-05-14 00:40周宁宁王希常
数字技术与应用 2016年8期

周宁宁 王希常

摘要:本文分析了SIP、RTP/RTCP等协议的设计功能及实现机制,论述了基于SIP协议的考场监控系统的基本功能、技术体系及实现方式,指出了基于SIP协议考场监考系统未来发展的前景和存在的问题。文中对相关协议的说明使用了图示和示例数据展示,借助Wireshark和FreeSwitch对SIP协议会话方式和流程进行了分析。

关键词:SIP协议 RTP/RTCP FreeSWITCH 考场监控系统

中图分类号:TP277 文献标识码:A 文章编号:1007-9416(2016)08-0105-03

1 引言

近年来,考试的种类纷繁多样,各种各样的考试是国家挑选人才的方式之一。考场监控系统不仅可以大幅度提高考场监控的监管能力,保证考试的质量和公平,而且能有力推进考场管理的现代化进程。SIP协议用于建立、调整和终止多媒体的呼叫或者会话的应用层协议,具有良好的扩展性和兼容性,其协议具有标准、灵活、简单等特点,适合考场监控系统的应用,论文在介绍SIP协议的基础上,对SIP协议在考场监控系统的运用做出详细描述。

2 SIP协议

SIP(Session Initiation Protocol)协议是由IETF提出来的一个应用控制(信令)协议,用于创建、修改以及终结多个参与者参加的多媒体的会话进程[1]。这些会话包括多媒体会议、多媒体发布、远程教学等。使用SIP协议的目的是为了在IP网络上建立完整的通信服务体系,SIP协议广泛用于电路交换CS、NGN下一代网络、IMS IP多媒体子系统等几个方面。

2.1 SIP协议的组成

SIP协议中的元素可分为用户代理(UA)和中间服务器[2]。用户代理(User Agent UA)又分为用户代理客户端(User Agent Client UAC)和用户代理服务器(User Agent Server UAS),用户代理客户端是表示呼叫控制请求的发出方,而用户代理服务器则是表示响应呼叫请求的处理方。网络服务器包括三部分,分别是代理服务器,重定向服务器,和注册服务器。代理服务器包括有状态代理服务器和无状态代理服务器,有状态代理服务器是指记录所到的请求和发出的请求消息,用来控制以后的消息处理和消息的分支功能。无状态代理服务器通过请求消息选择转发的目的和路由,它既是客户机又是服务器,主要是用于路由选择,将用户请求和响应转发到下一跳,消息一旦发出,立即丢弃。重定向服务器的作用类似于DNS,是用于地址解析。注册服务器的作用是接收终端的注册请求,记录终端SIP URI和IP地址。SIP协议也可以在不需要服务器的情况下进行通信,只需要知道彼此的地址即可。

SIP协议包含两个重要的逻辑是实体,即位置服务器和背靠背用户代理(B2BUA),位置服务器是用来存储用户的逻辑地址与联系地址的绑定列表,作为一个全局数据库为注册服务器、代理服务器与重定向服务器服务。背靠背用户代理除了作为UAS接受请求消息并对消息进行处理,还作为UAC来发送请求消息借此来判断消息是如何应答,FreeSWITCH的一个典型的应用即是作为B2BUA,它作为一个背靠背用户代理帮助通信的双方进行实时的语音视频通信。

2.2 SIP消息格式

SIP消息是基于文本的,主要分为两大类:一类是由客户端发往服务器的请求消息(Request),一类是由服务器发往客户端的应答消息(Response)。一个SIP消息由一个起始行,一个或多个头字段域,结束空行和一个可选的消息体组成。

起始行又包括两部分:SIP请求消息的起始行称为请求行,SIP应答消息的起始行称为状态行。请求行(Request-line)格式表示为:method Request-URI SIP-Version CRLF。

method是指这个请求消息用的什么方法进行请求,RFC3261中定义了六种方法分别是INVITE、ACK、OPTION、BYE、CANCEL、REGISTER,需要注意的是ACK只能和INVITE请求一起使用。Request-URI,它的格式是SIP URI=SIP user:password@host:port:parameters:headers,SIP URI的前缀必须是sip:,user为用户名,password是密码,host为主机地址,port为端口,password这一项可选填,host选项可能是域名也可能是IPV4或IPV6地址。例如:SIP:hello@163.com和SIP:hello@192.164.0.8均是正确。SIP-Version指的是SIP协议的版本,在RFC3261中规定的是SIP/2.0。CRLF:代表回车换行,表示的是每一行的结束。

状态行(Status-Line)格式表示为:SIP-Version Status-Code Reason-Phrase CRLF。

SIP-Version指的是SIP协议的版本,SIP/2.0。Status-Code:状态码,是状态行中最重要的知识,是一个3位整数,描述的是请求的执行结果,状态码可分的类别分别是1XX,2XX,3XX,4XX,5XX,6XX。其中只有1XX为临时应答,其他的均为最终应答。Reason-Phrase:原因短语,是对状态码的文本描述。CRLF:同样代表回车换行,表示的是每一行的结束。

SIP协议定义了多种扩展方法,本论文中用到的方法是MESSAGE方法和INFO方法,MESSAGE方法是会话之外消息能够传递及时信。INFO方法是呼叫建立之后建立的信令通路,可以是呼叫方与被呼叫方用户代理之间的直接信令。

2.3 SIP协议会话

SIP协议的主要意义是对会话进行发起和终结,也就是处理和控制会话,SIP协议会话的方式有两种,一种是UA之间的直接通信,另一种是通过代理服务器进行呼叫通信。

UA之间的通信SIP协议会话分为3个阶段:建立会话、通信阶段和终止会话[4]。

SIP协议的会话过程在建立会话阶段,主叫方首先向被叫方发送一个INVITE请求,被叫方接收到邀请之后回复一个OK来响应,主叫方则发送ACK报文作为确认,此时建立会话部分结束。在通信阶段中,主叫方与被叫方就可以进行通话,通话完毕之后,双方则可通过BYE请求进行结束会话。

实际应用中SIP地址会经常发生改变,通常通过使用代理服务器的方式来进行通信,通过代理服务器的通信方式比较复杂,所以借助Wireshark分析工具(Wireshark是一个网络封包分析软件)对具体的通信流程进行抓包分析。图1 是通过在实验过程中捕获的数据包绘制成的通信流程图,其中222.19.226.92地址表示的是FreeSWITCH服务器的地址,而222.19.226.143和222.19.226.40则分别表示两个SIP协议UA的IP地址,为了分析方便,分别称之为UA1和UA2。

FreeSWITCH 是一个免费、开源的通信软件,可用于创建音、视频以及短消息类产品和应用,它的核心库libfreeswitch可以嵌入其它系统或产品中,也可以做一个单独的应用存在,SIP通信更多用到的是身处两个不同地方的UA之间的通信,这时候通信双方就要注册到FreeSWITCH服务器上,借助该服务器进行通信,图2即是通过代理服务器呼叫通信流程图。

UA1通过消息向发起请求,要求与UA2进行通信,此时FreeSWITCH作为一个UAS接受请求并进行响应通过100Trying消息告知它已经收到了他的请求。但是发现FreeSWITCH还不认识UA1,不确定UA1是否有权进行请求,所以通过407消息通知UA1,UA1回送ACK消息,告诉FreeSWITCH服务器已经接收到认证消息,重新发送邀请信息,FreeSWITCH服务器向UA1发送100Trying消息,代表已经接收到邀请消息。接下来呼叫进入路由阶段,FreeSWITCH服务器根据路由查找到UA2的位置,通过发送邀请信息建立通信连接,与UA2建立通信连接后,回送183消息给UA1,UA2接听的同时回送200OK信息给FreeSWITCH服务器,FreeSWITCH服务器发送ACK消息给UA2,同时发送200OK消息给UA1,UA1回送ACK消息给FreeSWITCH服务器,则UA1与UA2之间可以进行通信。最后通过BYE消息结束通信。UA1与UA2可以进行通信,所有的语音数据都是通过RTP进行传送。

3 RTP/RTCP协议

流媒体技术就是把连续的媒体信息经过压缩处理后放在网络服务器上,以流的形式进行数字媒体的传递,让用户可以一边下载一边观看或者收听,而不需等待整个媒体文件下载完毕[5]。流媒体技术的特点是不能保存在硬盘上成为用户文件,因此,需要使用RTP协议(Real-Time Transport Protocol)实时传输协议以及RTCP协议(Real-Time Transport Control Protocol)实时传输控制协议来进行实时传输。

3.1 作用

RTP协议与RTCP协议是配合使用的,这样可以保证传输质量,RTP协议只是提供端到端的传输,但是不提供任何服务质量保证,它需要依靠RTCP一起来提供流量控制和拥塞控制服务,RTCP协议是RTP协议的一部分,是用来提供RTP服务质量监控和保证;RTP协议传送的是多媒体数据,RTCP协议传送的与服务质量相关的很短的统计信息,二者均是通过UDP报文进行消息传送。

3.2 传送过程

在RTP协议中,首先将经过压缩编码处理后的多媒体数据块封装成为RTP分组,RTP分组后再装入运输层的UDP用户数据报,然后再向下传递给IP层[6]。客户端将接受到RTP数据包进行处理后进行解码显示。

在数据发送接收过程中,服务器端和客户端会周期性的发送和接收RTCP包进行的服务质量的监视和反馈。RTCP定义了五种类型的控制分组[7]:

SR控制分组:发送端报告控制分组,其作用是利用SR控制分组提高质量反馈信息。

RR控制分组:接收端报告控制分组,与SR控制分组不同,主要有两方面:一是分组类型不同,SR控制分组的PT为200,RR控制分组的PT为201。二是RR不包括发送端信息部分。

SD控制分组:资源描述控制分组,作用是作为标实信息的载体。

BYE控制分组:结束控制分组,表示关闭一个数据流。

APP控制分组:特定应用分组,表示应用程序能够定义新的分组类型。

4 基于SIP协议的考场监控系统设计

SIP协议是会话初始协议,是用于建立、调整和终止一个或多个参与者的会话,将SIP协议应用于考场监控系统具有以下优势:一是SIP协议是基于文本的编码方式和字符集,方便读取,便于调试;二是最少的状态,代理服务器可以在无状态的方式下进行工作,呼叫过程简单;三是低层协议无关性,SIP协议与传输层是分开的,使用UDP进行传输,可与用户进行方便的连接。

考场监控系统一般需要具备以下几个功能:

(1)视频采集功能:能够采集到考场中每一个角落里的视频信号,这里的视频信号既包括考生的视频信号,又包括监考老师的视频信号,并且需要保证足够清晰,有足够的帧频,方便进行查看、记录、取证。能够采集到考场中每一个角落的声音信号,既包括考生与监考老师的声音,也包括动作所发出的声音,这里需要注意的是一定要保证声音信号有足够的带宽,这样才能区分开声音的来源。

(2)多路视频的自动记录功能:考场监控面对的是多个考场的监控,因此,需要具备自动记录功能,并且要有足够的存储量。

(3)系统智能化功能:视频采样智能化功能,能够自动根据考场监控的画面考生动作幅度的大小进行相应记录,动作幅度大的考生进行较多信息记录。声音取样智能化,能够自动地根据说话声音的强度进行相应记录,对于声音大的考生应进行较多信息的记录,反之,简单记录即可。还应能区分考生和监考人员不同性质的动作。

基于SIP协议的考场监考系统应该关注两个部分,一部分是客户端通过SIP协议与服务器端进行连接,同时,服务器端也会将一些信息发送给客户端,如图3考场监控系统的工作过程所示。第二部分是考场监控系统的四个组成部分,如图4考场监控系统框架图所示。

考场监控系统构成大致分为监控前端、传输网络、监控中心、用户终端4个组成部分[8]。其中,监控前端由视频服务器和摄像头组成,主要完成信号采集、处理以及前端摄像头的控制工作,一个视频服务器就代表了一个SIP标准的设备集合。考场监控管理平台是具有显示、存储、报警的指挥中心,是系统信息管理和共享核心,注册服务器,代理服务器,重定向服务器,定位服务器是SIP服务器的重要组成部分。注册服务器用来完成UAS的注册,当注册服务器收到位置信息时会上传到定位服务器,定位服务器是为注册服务器、代理服务器、重定向服务器提供服务的。代理服务器具有代理前一个用户向下一跳服务器发送呼叫请求由服务器决定下一跳地址。监控终端也是一个标准的SIP设备,可以实现用户的代理,可以对监控资源进行访问及控制,是系统的信息服务对象。监控资源是指图像、声音的采集设备,是系统监控信息的平台传输网络可以使用公共通信网络、专网,也可以使用独立网络,是连接监控资源、监控中心和用户终端的中介。

5 结语

SIP协议的应用使得考场监考系统读取方便,易于调试,可以以最少的状态方便与用户进行连接,具有极大的灵活性和扩展性,在未来的发展中具有很强的实用意义。同时应该注意SIP协议只提供了会话建立的机制,完成考场监控还须得到其他相关会话内容描述协议的支持,这将是下一步研究的重点。

参考文献

[1]刘瑞祥,许立群,刘宝妹.基于SIP即时信息系统的客户端设计[J].计算机科学,2010,37(9):104-106.

[2]龚猷龙.基于视频监控系统的PTP与SIP协议[D].北京:北京邮电大学,2008.

[3]Gonzalo Camarillo著,白建军等译SIP揭密[M].北京:人民邮电出版社,2003.

[4]梁伟坚.基于SIP和RTP/RTCP的文件传输[D].广州:中山大学,2009.

[5]王小燕.一种高效点播流媒体服务器的设计与实现[J].计算机工程与科学,2010,32(2):118-120.

[6]褚典,江春华.基于SIP、RIP/RTCP和RTSP协议的视频监控系统[J].计算机与现代化,2013,(11):139-142.

[7]李广鹏.基于SIP协议的远程视频监控系统的设计与实现[D].北京:北京邮电大学,2008.

[8]陈宏才,蔡铭辉.考场监控系统建设的重点分析[J].技术与应用,2014,(14):48-50.