王永建 徐楊 王迅 周顯
摘要:在平安城市的建設(shè)中,管理平臺(tái)對(duì)視頻監(jiān)控前端呼叫越來越重要。為了完善對(duì)視頻監(jiān)控前端的呼叫效果,設(shè)計(jì)了一種視頻監(jiān)控前端呼叫方案。首先簡(jiǎn)析了SIP、RTP/RTCP協(xié)議原理;設(shè)計(jì)了視頻監(jiān)控系統(tǒng)整體結(jié)構(gòu),定義了各主要組成部件的功能。然后分析了視頻監(jiān)控前端呼叫設(shè)計(jì)思路,設(shè)計(jì)了RTP Over UDP、RTP Over TCP的呼叫方案,以及NAT穿越方案。本文的設(shè)計(jì)思路在一些平安城市建設(shè)中已開始應(yīng)用,應(yīng)用效果良好,具有一定借鑒意義。
關(guān)鍵詞:SIP;RTP/RTCP;監(jiān)控前端;NAT穿越
中圖分類號(hào):TN919.81 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1003-6970.2016.04.024
0 引言
隨著移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、智能終端、Web等技術(shù)的發(fā)展,以及2012年國(guó)家智慧城市試點(diǎn)建設(shè)工作的啟動(dòng),視頻監(jiān)控系統(tǒng)在構(gòu)建和諧社會(huì)中發(fā)揮的作用越來越重要。
2012年6月1日,公安部發(fā)布了《安全防范視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)信息傳輸、交換、控制技術(shù)要求》(B/T28181-2011)相關(guān)文件,正式啟動(dòng)了國(guó)家平安城市的建設(shè)工作。
平安城市視頻監(jiān)控系統(tǒng)中的監(jiān)控前端(像機(jī)、傳感器、報(bào)警器等)再是傳統(tǒng)的只會(huì)數(shù)據(jù)采集功能,而是能根據(jù)管理平臺(tái)/客戶端的指令或者請(qǐng)求,進(jìn)行相應(yīng)操作或者提供相關(guān)服務(wù)。如響應(yīng)平臺(tái)云鏡控制、呼叫/警告監(jiān)控現(xiàn)場(chǎng)可疑人員、提醒人群避開危險(xiǎn)場(chǎng)所/歹徒、提供實(shí)時(shí)圖像服務(wù)等,管理平臺(tái)/客戶端對(duì)監(jiān)控前端的呼叫控制功能要求越來越豐富和嚴(yán)格。目前從管理平臺(tái)/客戶端→監(jiān)控前端的呼叫實(shí)現(xiàn)還需要完善,本文設(shè)計(jì)了一種實(shí)現(xiàn)方案,并進(jìn)行了探究。
1 相關(guān)協(xié)議分析
1.1 SIP協(xié)議
SIP(Session Initiation Protocol,會(huì)話初始協(xié)議)是基于HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)和SMTP(Simple Mail Transfer Protocol,簡(jiǎn)單郵件傳送協(xié)議)的信令協(xié)議,屬于一個(gè)應(yīng)用層的控制協(xié)議,基于請(qǐng)求/響應(yīng)的事務(wù)處理模型,使用消息方式完成用戶會(huì)話的建立和管理。見圖1所示:
SIP具有易擴(kuò)展,易實(shí)現(xiàn)等特點(diǎn),非常適合用來實(shí)現(xiàn)基于互聯(lián)網(wǎng)的多媒體通信系統(tǒng)。SIP支持名字映射和重定向服務(wù),將原來請(qǐng)求的地址映射為新地址,只進(jìn)行重定向,并不參與事務(wù)的處理。SIP非常適用于作為客戶唯一的外部標(biāo)志,而無需關(guān)系所在的實(shí)際網(wǎng)絡(luò)位置。
SIP消息分為兩類:SIP請(qǐng)求和SIP響應(yīng);其中請(qǐng)求消息由客戶機(jī)發(fā)往服務(wù)器,響應(yīng)消息由服務(wù)器發(fā)往客戶機(jī)。請(qǐng)求消息和響應(yīng)消息格式由一個(gè)起始行、若干個(gè)頭字段,以及一個(gè)可選的消息體組成。請(qǐng)求和響應(yīng)消息的基本格式如下:
SIP消息一起始行
*消息頭部(個(gè)或多個(gè)頭部)
CRLF(行)
[息體]
起始行一請(qǐng)求行,狀態(tài)行
請(qǐng)求消息的起始行為請(qǐng)求行:
Request-Line=Method SP Request-URI SP SIP-ersion CRLF。
響應(yīng)消息的起始行為狀態(tài)行:
Status-Line=SIP-Version SP Status-Code SP Re-ason-Phrase CRLF。
1.2 RTP/RTCP協(xié)議
SIP協(xié)議單獨(dú)不能完成多媒體呼叫,必須與RTP/RTCP等協(xié)議一起配合共同完成多媒體會(huì)話過程。
RTP(Realtime Transport Protocol,實(shí)時(shí)傳輸協(xié)議)一種針對(duì)多媒體數(shù)據(jù)流的,運(yùn)行在UDP(User DatagramProtocol)協(xié)議之上的傳輸層協(xié)議。RTP協(xié)議只負(fù)責(zé)對(duì)媒體數(shù)據(jù)流的封裝和實(shí)時(shí)傳輸,但不能為數(shù)據(jù)提供可靠的傳輸機(jī)制,也不提供流量控制或擁塞控制。由RTCP(Realfime Transport Control Protocol)協(xié)議根據(jù)傳送網(wǎng)絡(luò)質(zhì)量,實(shí)現(xiàn)流量控制與擁塞控制。RTCP僅在基于UDP傳送媒體流時(shí)使用,基于TCP(Transport Control Protocol)傳送媒體不使用。在UDP中,RTCP與RTP協(xié)議配對(duì)使用,通常RTP使用偶數(shù)號(hào)端口號(hào),則相應(yīng)的RTCP使用緊隨其后的奇數(shù)號(hào)端口。見圖l所示。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本文將視頻監(jiān)控系統(tǒng)分為中央管理系統(tǒng)CMS(Central Management System),接入網(wǎng)關(guān)AG(AccessGateway),媒體分發(fā)系統(tǒng)MDS(Media DistributionSystem),監(jiān)控前端MF(Monitoring Fore-terminal),客戶端MC(Multimedia Client),以及其它模塊。見圖2所示。
(1)中央管理系統(tǒng)
CMS是視頻監(jiān)控系統(tǒng)的中樞管理系統(tǒng),直接管理AG與其它模塊。作為管理中心提供客戶端/用戶管理;作為存儲(chǔ)中心存儲(chǔ)客戶端/用戶數(shù)據(jù)和業(yè)務(wù)參數(shù)配置數(shù)據(jù),向Portal提供發(fā)布的內(nèi)容。提供客戶端接人時(shí)的呼叫控制功能,接收SIP的呼叫請(qǐng)求。如果被叫是本域的前端,則修改SIP消息中的SDP(Session Description Protocol),根據(jù)前端注冊(cè)的信令地址發(fā)起新的SIP呼叫,失敗則釋放本次呼叫。
(2)接入網(wǎng)關(guān)
AG是系統(tǒng)的前端接入網(wǎng)關(guān),以及Web/Wap客戶端的Http Portal,是MF注冊(cè)或者會(huì)話時(shí)的第一個(gè)訪問點(diǎn),部署在MF與CMS之間。AG必須實(shí)現(xiàn)本域MF的接人,接收和轉(zhuǎn)發(fā)由MF或CMS發(fā)來的SIP信令。實(shí)現(xiàn)對(duì)MF的接入管理,接收、轉(zhuǎn)發(fā)來自MF的呼叫控制信令給CMS,轉(zhuǎn)發(fā)從CMS接收到的請(qǐng)求或應(yīng)答消息給MF。
(3)媒體分發(fā)系統(tǒng)
MDS是系統(tǒng)的媒體轉(zhuǎn)發(fā)/分發(fā)單元,負(fù)責(zé)平臺(tái)側(cè)的媒體傳送,在CMS的媒體調(diào)度模塊控制下完成音視頻傳送功能,可以多級(jí)級(jí)聯(lián)和分布式部署。
(4)監(jiān)控前端
MF包括圖像采集設(shè)備,如攝像機(jī)、智能終端,和其它信息采集設(shè)備,如傳感器、射頻識(shí)別儀器等,本文默認(rèn)為攝像機(jī)。監(jiān)控前端主要負(fù)責(zé):數(shù)據(jù)采集、緩存、處理、上傳至管理平臺(tái);響應(yīng)管理平臺(tái)的指令或者Web/WAP客戶端的請(qǐng)求,執(zhí)行對(duì)應(yīng)操作或者提供相關(guān)服務(wù)。
(5)客戶端
MC分為PC客戶端、手機(jī)客戶端,基于Web/WAP,本文默認(rèn)為Web??蛻舳斯δ芸砂ê艚锌刂啤D像瀏覽、錄像回放、云鏡控制、快照、解碼、對(duì)講等功能。
3 呼叫設(shè)計(jì)方案
3.1 設(shè)計(jì)思路
在MF接入到管理平臺(tái)之后,平臺(tái)根據(jù)需要判斷是否呼叫MF。管理平臺(tái)錄像或者瀏覽接入MF上的視頻時(shí),平臺(tái)主動(dòng)呼叫MF。
管理平臺(tái)根據(jù)MF上報(bào)支持的RTP Over UDP還是RTP Over TCP能力進(jìn)行選擇確定采用何種方式,默認(rèn)采用RTP Over UDP方式。MF配置成RTPOverTCP方式下,平臺(tái)能夠主動(dòng)采用RTP Over TCP方式呼叫MF??蛻舳伺c管理平臺(tái)對(duì)MF的呼叫原理類似。
3.2 RTP Over UDP
在實(shí)時(shí)流媒體采用RTP Over UDP方式進(jìn)行承載時(shí),MF需支持RTCP包的發(fā)送和接收。同時(shí)MF可能部署在NAT(Network Address Translation)設(shè)備之后,在管理平臺(tái)與MF呼叫建立成功之后,MF需主動(dòng)發(fā)送RTP/RTCP的NAT穿越包來打通平臺(tái)與MF之間的NAT設(shè)備。MF根據(jù)NAT穿越包響應(yīng)判斷在MF與MDS之間是否存在NAT設(shè)備,如果不存在則后續(xù)可不發(fā)送NAT穿越包,如果存在N則需要定時(shí)發(fā)送NAT穿越包。見圖3所示:
(1)CMS判斷是否需要呼叫MF請(qǐng)求實(shí)時(shí)視頻;
(2)如果需要請(qǐng)求MF實(shí)時(shí)視頻,CMS向MDS申請(qǐng)媒體資源;
(3)媒體資源申請(qǐng)成功之后,CMS主動(dòng)發(fā)起INVITE消息到AG;
(4)AG轉(zhuǎn)發(fā)請(qǐng)求MF實(shí)時(shí)視頻INVITE消息到MF;
(5)MF分配資源,發(fā)送200 OK響應(yīng)消息給AG,在消息中攜帶MF的SDP消息;
(6)AG轉(zhuǎn)發(fā)請(qǐng)求實(shí)時(shí)視頻響應(yīng)消息到CMS;
(7)CMS通知MDS媒體協(xié)商成功;
(8)CMS發(fā)送ACK消息到AG;
(9)AG轉(zhuǎn)發(fā)ACK消息到MF;
(10)MF收到ACK消息后,首先發(fā)送RTP和RTCP的NAT穿越包,并開始發(fā)送碼流到MDS,MDS接收碼流后存儲(chǔ)或者分發(fā)到客戶端;
(11)當(dāng)平臺(tái)錄像結(jié)束后,或者客戶端都停止觀看實(shí)時(shí)視頻后,CMS發(fā)送請(qǐng)求釋放對(duì)應(yīng)的媒體資源;
(12)CMS發(fā)送BYE消息到AG;
(13)AG轉(zhuǎn)發(fā)BYE消息到MF;
(14)MF終止發(fā)送實(shí)時(shí)視頻流到平臺(tái)并發(fā)送2000K響應(yīng)消息。
3.3 RTP Over TCP
在實(shí)時(shí)流媒體采用RTP Over TCP方式進(jìn)行承載時(shí),MF需支持根據(jù)SDP協(xié)商的信息主動(dòng)與MDS建立TCP鏈路,發(fā)送RECORD消息給MDS,并通過建立的TCP鏈路發(fā)送RTP和RTCP給MDS。RECORD消息定義與NAT穿越包定義保持一致,RTPOver TCP打包格式參考REC2326中的10.12 Em-bedded(Interleaved)Binary Data定義方式。見圖4所示。
(1)cMS判斷是否需要呼叫MF請(qǐng)求實(shí)時(shí)視頻;
(2)如果需要請(qǐng)求MF實(shí)時(shí)視頻,CMS向MDS申請(qǐng)媒體資源;
(3)媒體資源申請(qǐng)成功之后,CMS主動(dòng)發(fā)起INVITE消息到AG;
(4)AG轉(zhuǎn)發(fā)請(qǐng)求MF實(shí)時(shí)視頻INVITE消息到MF;
(5)MF分配資源,發(fā)送200 OK響應(yīng)消息給AG,在消息中攜帶MF的SDP消息;
(6)AG轉(zhuǎn)發(fā)請(qǐng)求實(shí)時(shí)視頻響應(yīng)消息到CMS;
(7)CMS通知MDS媒體協(xié)商成功;
(8)CMS發(fā)送ACK消息到AG;
(9)AG轉(zhuǎn)發(fā)ACK消息到MF;
(10)MF收到ACK消息后,MF根據(jù)SDP協(xié)商中的TCP連接,向MDS建立TCP鏈路,并通過建立的連接發(fā)送RECORD消息(這個(gè)RECORD消息包的格式與RTP Over UDP中發(fā)送的NAT穿越包格式保持一致,支持消息承載發(fā)送的方式從UDP變成TCP);
(11)MDS根據(jù)RECORD包內(nèi)容判斷合法性,并返回響應(yīng)給MF;
(12)MF通過建立的TCP鏈路發(fā)送RTP/RTCP數(shù)據(jù)給MDS;
(13)當(dāng)平臺(tái)錄像結(jié)束后,或者客戶端停止觀看實(shí)時(shí)視頻后,CMS發(fā)送請(qǐng)求釋放對(duì)應(yīng)的媒體資源;
(14)CMS發(fā)送BYE消息到AG;
(15)AG轉(zhuǎn)發(fā)BYE消息到MF;
(16)MF終止發(fā)送實(shí)時(shí)視頻流到平臺(tái)并發(fā)送2000K響應(yīng)消息;
(17)MF主動(dòng)釋放建立的TCP鏈路。
3.4 NAT穿越
實(shí)際應(yīng)用中,由于網(wǎng)絡(luò)安全、管理、IP地址資源等因素,MF、CMS、MDS等往往位于不同的子網(wǎng)之內(nèi),不允許跨子網(wǎng)直接通信。NAT(NetworkAddress Translation)技術(shù)是一種邊緣網(wǎng)絡(luò)過渡的常用解決方案,主要用于解決跨IPv4/IPv6子網(wǎng)之間的直接通信問題。不過NAT會(huì)破壞源地址與目的地址之間的連續(xù)性,因此RTP/RTCP數(shù)據(jù)包的NAT穿越至關(guān)重要。NAT穿越包完全采用文本格式,采用類RTSP(Real Time Streaming Protocol)的PLAY和RECORD方法,其PLAY用于MF發(fā)送NAT穿越包,NAT穿越數(shù)據(jù)包分為請(qǐng)求包與響應(yīng)包,具體格式定義如下。
(1)MF的NAT穿越請(qǐng)求包
(2)MF的NAT穿越響應(yīng)包
請(qǐng)求和響應(yīng)通過Session和CSeq進(jìn)行配對(duì),請(qǐng)求和響應(yīng)的Session與CSeq都是相同的。
在請(qǐng)求消息中l(wèi)ocal addr=0.6.10.102;local port10000是指發(fā)送NAT請(qǐng)求包的本地IP地址和端口號(hào)。
在響應(yīng)消息中src addr=202.103.10.12;src port=5673是對(duì)端檢測(cè)到的NAT請(qǐng)求設(shè)備的源IP地址和端口號(hào)(也就是NAT之后的IP地址和端口號(hào)),localaddr=10.6.10.102;local port=10000是本地發(fā)送RTP包的IP地址和端口號(hào)。
RTCP的NAT穿越包和上面的類似,只是CSeq、type和port內(nèi)容的值不同。
NAT請(qǐng)求發(fā)送方檢測(cè)到local addr=src_addr并且local port=src port時(shí),可停止發(fā)送NAT穿越包,否則定時(shí)發(fā)送NAT穿越包。
MC直連MF時(shí),NAT包中的URL(UniformResoureLocator)陽(yáng)Session統(tǒng)一采用MF的SDP中指定的URL和Session ID。
4 結(jié)束語(yǔ)
本文基于SIP、RTP/RTCP等協(xié)議,設(shè)計(jì)了平安城市中管理平臺(tái)/客戶端->監(jiān)控前端的呼叫實(shí)現(xiàn)方案,NAT穿越方案。本文的思路在一些項(xiàng)目中已開始運(yùn)用,效果良好。
隨著大數(shù)據(jù)、智能分析、RFID(Radio FrequencyIdentification)、臉譜識(shí)別、虹膜識(shí)別等技術(shù)的發(fā)展,以及Web/Wap、APP客戶端的廣泛應(yīng)用,對(duì)監(jiān)控前端的呼叫控制提出了更高的要求,將會(huì)有新的實(shí)現(xiàn)技術(shù)與方案,該領(lǐng)域的研究還有很多工作要做。