周寧寧 王希常
摘要:本文分析了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.