(西安理工大學(xué) 自動(dòng)化與信息工程學(xué)院, 西安 710048)
視頻監(jiān)控平臺(tái)在人類的生產(chǎn)生活中充當(dāng)著極其重要的角色,尤其是在當(dāng)今這個(gè)快速發(fā)展的世界上,各個(gè)領(lǐng)域的安防問(wèn)題都在視頻監(jiān)控的管轄范圍,而視頻監(jiān)控的發(fā)展也推動(dòng)了世界安防的發(fā)展。近年來(lái),隨著視頻監(jiān)控的廣泛應(yīng)用,人們開(kāi)始在互通方面尋求突破,而當(dāng)下的視頻監(jiān)控平臺(tái)都是由不同的公司構(gòu)建而成,每個(gè)公司都有自己的協(xié)議標(biāo)準(zhǔn)和控制要求,所以存在著很大的差異性。各個(gè)領(lǐng)域的視頻監(jiān)控平臺(tái)由于開(kāi)發(fā)商不同,沒(méi)有統(tǒng)一整體的架構(gòu)和協(xié)議規(guī)范,從而形成了很多信息孤島,也使得所在區(qū)域的視頻監(jiān)控資源無(wú)法進(jìn)行整合。
在現(xiàn)代化技術(shù)高速發(fā)展的今天,犯罪分子的手段越來(lái)越智能化,他們學(xué)習(xí)并利用高科技手段去進(jìn)行高智商犯罪,讓城市的安保工作越來(lái)越困難,如果能將這些監(jiān)控資源的信息孤島連接起來(lái),使得城市間的所有監(jiān)控平臺(tái)形成一個(gè)整體的視頻監(jiān)控網(wǎng)絡(luò),實(shí)現(xiàn)密不透風(fēng)的監(jiān)控防護(hù)墻,可以讓犯罪分子無(wú)處遁形。而如何能將各個(gè)視頻監(jiān)控平臺(tái)通過(guò)連接,使公安機(jī)關(guān)能夠共享這些視頻監(jiān)控平臺(tái)的資源,成為安防領(lǐng)域的熱門話題。對(duì)于公安部門來(lái)說(shuō),甚至省市區(qū)這種上下級(jí)關(guān)系的安防平臺(tái)之間也因?yàn)檫@個(gè)原因難以相通。在這個(gè)背景下,中國(guó)公安部于2012年6月1日出臺(tái)了國(guó)標(biāo)28181協(xié)議[1]在全國(guó)推廣,該協(xié)議基于SIP協(xié)議,有良好且詳盡的規(guī)范。該協(xié)議的出現(xiàn),讓視頻監(jiān)控平臺(tái)的互聯(lián)互通成為了可能。該協(xié)議標(biāo)準(zhǔn)規(guī)定了統(tǒng)一的協(xié)議規(guī)范,并在全國(guó)范圍內(nèi)的平安城市項(xiàng)目建設(shè)中被普遍推廣應(yīng)用。
由于SIP協(xié)議在系統(tǒng)互聯(lián)互通方面得到廣泛應(yīng)用,尤其是該協(xié)議在網(wǎng)絡(luò)體系和數(shù)據(jù)通信等領(lǐng)域的優(yōu)越性。故采用一種基于SIP協(xié)議的視頻監(jiān)控互聯(lián)方案,該方案通過(guò)平臺(tái)代理的方式將兩個(gè)平臺(tái)的資源進(jìn)行共享,以代理服務(wù)器作為傳輸媒介進(jìn)行視頻流傳輸,從而達(dá)到平臺(tái)與平臺(tái)之間互聯(lián)互通的作用。實(shí)驗(yàn)結(jié)果表明該方案在視頻監(jiān)控平臺(tái)互聯(lián)中表現(xiàn)出了良好的效果。
信令網(wǎng)關(guān)(SG)[2]的主要功能是指能接收和發(fā)送No.7信令消息體,并與IP網(wǎng)的信令進(jìn)行消息中繼等作用,進(jìn)而實(shí)現(xiàn)信令承接層TDM形式與IP形式的轉(zhuǎn)換功能。其一般網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 信令網(wǎng)關(guān)的一般網(wǎng)絡(luò)結(jié)構(gòu)
隨著信令網(wǎng)關(guān)功能發(fā)展的日益強(qiáng)大,開(kāi)始向其他領(lǐng)域發(fā)展應(yīng)用,例如在智能網(wǎng),移動(dòng)互聯(lián)網(wǎng)等電信業(yè)務(wù)開(kāi)發(fā)中發(fā)展信令網(wǎng)絡(luò)的互通功能和訪問(wèn)能力,同時(shí)在協(xié)議轉(zhuǎn)換范圍方面也取得了重大的進(jìn)展,使得信令網(wǎng)關(guān)的應(yīng)用前景變得豁然開(kāi)朗,當(dāng)然這也是信令網(wǎng)發(fā)展的必然趨勢(shì)。當(dāng)前的信令網(wǎng)關(guān)已經(jīng)支持到對(duì)SIP、H.323的等多信令協(xié)議的互通,其中廣泛的協(xié)議棧支持能力包括:
1)No.7信令:支持ANSI、ITU、中國(guó)等No.7信令變體,提供基本信令(MTO,SCCP),呼叫控制(ISUP、IUP、TUP)、面向業(yè)務(wù)的消息(TCAP、INAP、GSM MAP、ANSI-41 MAP)等處理功能。
2)數(shù)據(jù)通信:RTP/RTCP、H.323、SIP、MegacoH.248等。
3)SIGTRAN(Signling Transport,信令傳輸協(xié)議)協(xié)議簇:M3UA、M2UA、M2PA、IUA、SUA、TUCL等。
4)另外還支持ATM、幀中繼(Frame Relay)、ISDN、V5等的相關(guān)協(xié)議簇。
SIP[3](Session Initiation Protocol,會(huì)話初始協(xié)議)是基于IP網(wǎng)絡(luò)的應(yīng)用信令協(xié)議,用于實(shí)時(shí)通信的會(huì)話建立、修改和多媒體會(huì)話終止。SIP協(xié)議的消息機(jī)制是將控制信令的信息放到消息體的頭字段中,再通過(guò)網(wǎng)絡(luò)傳遞消息來(lái)實(shí)現(xiàn)對(duì)會(huì)話連接和媒體傳輸?shù)目刂?。此協(xié)議的特點(diǎn)的是靈活簡(jiǎn)單且移動(dòng)性好,在可擴(kuò)展方面也有很好的效果,能夠高效地進(jìn)行系統(tǒng)平臺(tái)間的信令交互,這點(diǎn)非常符合視頻監(jiān)控平臺(tái)的應(yīng)用要求,而且其擴(kuò)展性也能支持大規(guī)模監(jiān)控網(wǎng)絡(luò)的分布式部署的需要。因而采用SIP協(xié)議作為視頻監(jiān)控平臺(tái)的信令控制協(xié)議,實(shí)現(xiàn)視頻監(jiān)控平臺(tái)的互聯(lián)互通,已贏得安防各個(gè)領(lǐng)域的賞識(shí)。例如Internet電話,SIP可以邀請(qǐng)用戶進(jìn)入已經(jīng)存在的會(huì)話,并在多方會(huì)議中也可以隨時(shí)邀請(qǐng)其他用戶加入進(jìn)來(lái),同時(shí)在已建議的會(huì)話連接中隨時(shí)進(jìn)行刪除和增加多媒體應(yīng)用。此外,SIP還支持用戶名映射和重定向服務(wù),此功能大多用于支持個(gè)人的移動(dòng)業(yè)務(wù)需求。在建立會(huì)話和保持多媒體會(huì)話的連接方面,主要支持以下等5個(gè)功能:
1)名字翻譯和用戶定位: 找出通信用戶的IP地址,并將定位到的地址信息與描述信息進(jìn)行映射連接,確保呼叫雙方無(wú)論在任何時(shí)候和任何場(chǎng)地都能進(jìn)行會(huì)話,以支持呼叫雙方的信息交互。
2)用戶有效性:查看用戶是否愿意加入會(huì)話。任何呼叫一方都可以邀請(qǐng)加入其它用戶進(jìn)行多方用戶呼叫連接,同時(shí)當(dāng)用戶接收不到呼叫或應(yīng)答時(shí),可設(shè)置為等待連接。
3)用戶能力: 查驗(yàn)媒體目錄和媒體參數(shù)。要求參與呼叫的組在行為特征上保持一致,例如媒體的鑒權(quán)許可信息等。
4)建立會(huì)話: 在呼叫方和被呼叫方之間建立會(huì)話參數(shù),用于會(huì)話連接。
5)會(huì)話管理: 管理會(huì)話。對(duì)參與會(huì)話連接的參數(shù)以及狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)管。
以SIP協(xié)議開(kāi)發(fā)的視頻監(jiān)控平臺(tái),可通過(guò)IP網(wǎng)絡(luò)相互連接,且不需要進(jìn)行協(xié)議轉(zhuǎn)換,然后在SIP協(xié)議的定位機(jī)制[5]下,參照SIP消息體的頭字段進(jìn)行取值和數(shù)據(jù)庫(kù)的存儲(chǔ),在不同的視頻監(jiān)控網(wǎng)絡(luò)平臺(tái)之間傳遞SIP消息,建立會(huì)話連接和控制信令轉(zhuǎn)發(fā),從而實(shí)現(xiàn)視頻監(jiān)控的互聯(lián)互通。而當(dāng)SIP消息體在平臺(tái)與平臺(tái)之間進(jìn)行傳遞時(shí),此時(shí)的中心管理相當(dāng)于代理服務(wù)器。而非SIP協(xié)議的視頻監(jiān)控平臺(tái),則需要開(kāi)發(fā)信令網(wǎng)關(guān)連接到IP網(wǎng)絡(luò),完成其私有協(xié)議到SIP協(xié)議的轉(zhuǎn)換,進(jìn)而進(jìn)行互聯(lián)互通的工作。
一個(gè)監(jiān)控域是指監(jiān)控平臺(tái)及其所接入的所有監(jiān)控設(shè)備,而SIP協(xié)議作為控制信令的基本協(xié)議,適用于不同的監(jiān)控域拓?fù)浣Y(jié)構(gòu),因此不同監(jiān)控域的監(jiān)控網(wǎng)絡(luò)可通過(guò)建立信令連接網(wǎng)以實(shí)現(xiàn)監(jiān)控平臺(tái)的互聯(lián)互通。而一般的拓?fù)浣Y(jié)構(gòu)為扁平化和分層級(jí)聯(lián)式兩種,以SIP協(xié)議開(kāi)發(fā)的網(wǎng)絡(luò)視頻監(jiān)控平臺(tái)適用于這兩種拓?fù)浣Y(jié)構(gòu)[6]。而中心管理服務(wù)器本身繼承了SIP網(wǎng)絡(luò)服務(wù)器的功能,因此監(jiān)控平臺(tái)直接可以直接進(jìn)行通信,此外通過(guò)配置服務(wù)器可實(shí)現(xiàn)視頻監(jiān)控網(wǎng)絡(luò)的分層級(jí)聯(lián),此時(shí)的監(jiān)控域之間就存在著嚴(yán)格的等級(jí)關(guān)系,監(jiān)控平臺(tái)之間也不可以越級(jí)進(jìn)行訪問(wèn)。
代理服務(wù)器(Proxy Server)[7]可作為視頻監(jiān)控平臺(tái)的中間服務(wù)器,用于代理平臺(tái)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)。當(dāng)用戶代理(User Agent,UA)進(jìn)行會(huì)話連接時(shí),首先發(fā)出INVITE命令,之后再進(jìn)行查詢被呼叫端的網(wǎng)絡(luò)地址信息。而UA又分為代理客戶端(User Agent Client,UAC)和代理服務(wù)器(User Agent Server,UAS),其中代理客戶端是指首先發(fā)出呼叫命令的一方,而代理服務(wù)器則是被呼叫的一方。當(dāng)用戶代理發(fā)起連接呼叫的時(shí)候,UA則以代理客戶端的角色工作,當(dāng)用戶代理被呼叫時(shí),UA則作為代理服務(wù)器的角色工作。這種方式類似于互聯(lián)網(wǎng)的 C/S(Client/Server,客戶端/服務(wù)器端)模式,因此通過(guò)客戶端—服務(wù)器協(xié)議來(lái)完成監(jiān)控平臺(tái)對(duì)監(jiān)控平臺(tái)的呼叫。所以采用搭建代理服務(wù)器的方法,建立平臺(tái)與平臺(tái)的連接媒介,進(jìn)行媒體協(xié)商之后,建立會(huì)話連接。當(dāng)一方平臺(tái)準(zhǔn)備查看另一方平臺(tái)監(jiān)控資源的的時(shí)候,可通過(guò)代理服務(wù)器以請(qǐng)求查看監(jiān)控資源的視頻監(jiān)控平臺(tái)為呼叫端,而被查看的視頻監(jiān)控平臺(tái)則作為被呼叫端,從而建立平臺(tái)間的會(huì)話連接。UA模塊的結(jié)構(gòu)圖如圖2所示。
圖2 UA結(jié)構(gòu)圖
注冊(cè)服務(wù)器(Register Server)用于接收Register請(qǐng)求。將平臺(tái)的IP網(wǎng)絡(luò)地址與SIP URI一起存放于定位服務(wù)器上,以便于更方便的通過(guò)SIP URI查詢實(shí)際網(wǎng)絡(luò)地址。注冊(cè)服務(wù)器也可以接收視頻監(jiān)控平臺(tái)的注冊(cè)請(qǐng)求,并將其IP地址存儲(chǔ),當(dāng)?shù)刂钒l(fā)生改變的時(shí)候,通過(guò)新的注冊(cè)請(qǐng)求來(lái)更改以往記錄的位置信息。因此采用搭建注冊(cè)服務(wù)器的方法建立各區(qū)域監(jiān)控平臺(tái)的路由映射鏈表,各監(jiān)控平臺(tái)通過(guò)注冊(cè)服務(wù)器將地址信息存入此鏈表,以進(jìn)行平臺(tái)之間的連接服務(wù)和視頻流傳輸服務(wù)。
各級(jí)監(jiān)控平臺(tái)通過(guò)注冊(cè)服務(wù)器將各自的URL地址存入位置服務(wù)器中,此時(shí)位置服務(wù)器中就會(huì)建立一個(gè)管理平臺(tái)的映射列表。當(dāng)某一級(jí)監(jiān)控平臺(tái)請(qǐng)求其他監(jiān)控平臺(tái)視頻資源的時(shí)候,可通過(guò)位置服務(wù)器查詢此監(jiān)控平臺(tái)的URL地址,然后通過(guò)代理服務(wù)器,以主叫端的身份去呼叫需要查看的監(jiān)控平臺(tái),并建立會(huì)話連接。經(jīng)該監(jiān)控平臺(tái)同意建立連接后,從而建立雙方監(jiān)控平臺(tái)之間的視頻流傳輸通道,最后通過(guò)RTP/RTCP協(xié)議[9]控制視頻流的傳輸,用UDP/TCP傳輸協(xié)議傳輸媒體流。其中事件處理流程圖如3所示。
圖3 事件處理流程圖
網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)通常由三部分組成,即配置模塊、SIP服務(wù)模塊以及平臺(tái)模塊,其體系結(jié)構(gòu)如圖1所示。
圖4 平臺(tái)互聯(lián)系統(tǒng)框架圖
其中SIP服務(wù)模塊負(fù)責(zé)兩個(gè)監(jiān)控平臺(tái)的連接以及視頻流的請(qǐng)求和接收服務(wù), 配置模塊負(fù)責(zé)管理平臺(tái)的ID,端口以及媒體服務(wù)器的地址等信息,平臺(tái)服務(wù)模塊負(fù)責(zé)數(shù)據(jù)流的傳輸控制。
兩個(gè)信令網(wǎng)關(guān)之間是平級(jí)[10]關(guān)系,呼叫端的信令網(wǎng)關(guān)主動(dòng)向被呼叫端信令網(wǎng)關(guān)發(fā)起注冊(cè),經(jīng)被呼叫端網(wǎng)關(guān)鑒權(quán)認(rèn)證后才能進(jìn)行系統(tǒng)間通信。信令網(wǎng)關(guān)之間采用SIP進(jìn)行通信和消息傳遞。
呼叫端的監(jiān)控平臺(tái)媒體服務(wù)器在信令控制服務(wù)器的控制下,直接與被呼叫端的監(jiān)控平臺(tái)相連,采用實(shí)時(shí)傳輸協(xié)議RTP(Real-time Transport Protocol)進(jìn)行接收或轉(zhuǎn)發(fā)媒體流。
雙方監(jiān)控平臺(tái)建立連接通道以后,各模塊間配合系統(tǒng)進(jìn)行數(shù)據(jù)傳遞。請(qǐng)求播放視頻流的模塊步驟如圖5所示。
其中視頻播放主要流程如下:
1)呼叫端平臺(tái)向被呼叫端平臺(tái)發(fā)送INVITE消息;
2)被呼叫端平臺(tái)收到請(qǐng)求后,回復(fù)200OK響應(yīng),攜帶SDP消息體,消息體描述了媒體流發(fā)送者的IP,端口等內(nèi)容。
3)呼叫端平臺(tái)收到被呼叫端平臺(tái)的消息后,向被呼叫端平臺(tái)發(fā)送ACK消息,攜帶SDP消息體,消息體描述了媒體流接收者的IP,端口等內(nèi)容。
4)被呼叫端平臺(tái)收到ACK消息后,可向呼叫端平臺(tái)發(fā)送實(shí)時(shí)監(jiān)控視頻流。
5)呼叫端平臺(tái)想要停止接收視頻流失,向被呼叫端平臺(tái)發(fā)送BYE消息請(qǐng)求。被呼叫端平臺(tái)也可以向呼叫端平臺(tái)發(fā)送BYE請(qǐng)求來(lái)結(jié)束會(huì)話。
6)被呼叫端平臺(tái)收到BYE請(qǐng)求后,回復(fù)200OK結(jié)束會(huì)話。
圖5 視頻播放流程示意圖
整個(gè)系統(tǒng)是在LINUX CentOS系統(tǒng)下搭建運(yùn)行的,系統(tǒng)使用QT和GSOAP聯(lián)合開(kāi)發(fā),協(xié)議棧采用Osip和exosip,并使用Yate模擬SIP服務(wù)器,系統(tǒng)搭建完成后,在調(diào)測(cè)軟件SPVMN協(xié)助下進(jìn)行聯(lián)網(wǎng)測(cè)試。
首先搭建兩個(gè)初級(jí)監(jiān)控平臺(tái)作為呼叫端和被呼叫端,并各自連接攝像頭等前端設(shè)備,將兩個(gè)初級(jí)監(jiān)控平臺(tái)的IP地址和端口等信息通過(guò)XML文件配置到平臺(tái)代理程序的全局鏈表中,由呼叫端平臺(tái)網(wǎng)關(guān)向被呼叫端網(wǎng)關(guān)發(fā)起注冊(cè)認(rèn)證,過(guò)程如下:
1)呼叫端平臺(tái)網(wǎng)關(guān)被呼叫端平臺(tái)網(wǎng)關(guān)發(fā)起注冊(cè)請(qǐng)求。
2)被呼叫端平臺(tái)網(wǎng)關(guān)接受到請(qǐng)求之后,向呼叫端平臺(tái)網(wǎng)關(guān)發(fā)起認(rèn)證請(qǐng)求,并其攜帶認(rèn)證體制和認(rèn)證參數(shù)。
3)呼叫端平臺(tái)收到請(qǐng)求后,根據(jù)收到的認(rèn)證體制和認(rèn)證參數(shù),并生成發(fā)送端的response值,并發(fā)送鑒權(quán)消息給被呼叫端平臺(tái)網(wǎng)關(guān)。
4)被呼叫端平臺(tái)網(wǎng)關(guān)收到鑒權(quán)消息后,對(duì)比認(rèn)證后發(fā)送注冊(cè)認(rèn)證成功。
代理服務(wù)器通過(guò)配置的全局鏈表,建立監(jiān)控平臺(tái)之間的虛擬連接,使得呼叫端平臺(tái)與被呼叫平臺(tái)可以進(jìn)行數(shù)據(jù)通信。測(cè)試流程如下:
1)首先呼叫端平臺(tái)通過(guò)代理服務(wù)器向被呼叫端平臺(tái)發(fā)起INVITE請(qǐng)求,此時(shí)代理服務(wù)器的UA模塊作為客戶端。代理服務(wù)器通過(guò)全局鏈表找到呼叫端的IP地址和媒體服務(wù)器端口等信息,然后發(fā)送請(qǐng)求給被呼叫端平臺(tái)。
2)被呼叫端平臺(tái)收到請(qǐng)求之后,發(fā)送響應(yīng)回復(fù)并通過(guò)代理服務(wù)器將本平臺(tái)的前端攝像頭的NOTIF消息打包給呼叫端平臺(tái),此時(shí)代理服務(wù)器的UA作為服務(wù)器端。
3)呼叫端平臺(tái)收到響應(yīng)消息后,對(duì)NOTIF消息進(jìn)行解析,并建立攝像頭與被呼叫端平臺(tái)之間的路由映射表,然后通過(guò)此表查詢監(jiān)控?cái)z像頭的目標(biāo)資源,并通過(guò)代理服務(wù)器進(jìn)行媒體連接。
4)被呼叫端平臺(tái)收到媒體連接的消息后,將媒體服務(wù)器的地址和視頻流的播放端口等信息通過(guò)代理服務(wù)器打包給呼叫端平臺(tái)。
5)呼叫端平臺(tái)收到媒體服務(wù)器的信息后,更新映射表,同時(shí)將己方的路由映射表通過(guò)代理服務(wù)器打包傳送給被呼叫端平臺(tái)。
6)雙方建立路由映射表之后,可進(jìn)行視頻流的轉(zhuǎn)發(fā)與通信。
各系統(tǒng)模塊測(cè)試完成后,開(kāi)始播放監(jiān)控視頻流。以搭建的系統(tǒng)平臺(tái)作為呼叫端,地方平臺(tái)作為被呼叫端,并請(qǐng)求查看地方平臺(tái)的視頻監(jiān)控錄像。選取本地的視頻監(jiān)控平臺(tái)進(jìn)行測(cè)試,最后在瀏覽器上播放此監(jiān)控平臺(tái)視頻監(jiān)控錄像。
視頻監(jiān)控平臺(tái)廣泛應(yīng)用于各個(gè)領(lǐng)域,其互聯(lián)互通問(wèn)題也是當(dāng)今安防領(lǐng)域發(fā)展的一大趨勢(shì),因此必須得到有效的解決。而隨著平安城市的不斷推廣,各監(jiān)控平臺(tái)間的互聯(lián)互通也成為了當(dāng)下研究的熱門話題。本文采用平臺(tái)互聯(lián)代理的方法,成功連接了兩個(gè)視頻監(jiān)控平臺(tái)的監(jiān)控資源,使得互聯(lián)互通問(wèn)題得到了相應(yīng)的解決,但在資源訪問(wèn)量方面未取得重大進(jìn)展,這也是后續(xù)繼續(xù)研究的一大重點(diǎn)。