孫金萍
(徐州工程學(xué)院 信電工程學(xué)院,江蘇 徐州221008)
目前基于C/S模式的視頻監(jiān)控系統(tǒng)普遍采用私有協(xié)議在Internet網(wǎng) 絡(luò) 上 進(jìn) 行 控 制 和 視 頻 傳 輸[1-3], 無 法 與H.248、H.323[4-5]、SIP(session initiation protocol)[6]、MGCP(media gateway control protocol)[7]等下一代電信公有協(xié)議的智能終端進(jìn)行互聯(lián)互通[8-9]。如何實(shí)現(xiàn)視頻監(jiān)控系統(tǒng)與公有協(xié)議多媒體智能終端互通,擴(kuò)大系統(tǒng)在市場上的競爭力,吸收更多的終端業(yè)務(wù),是必須考慮的問題。
H.248協(xié)議[10]是媒體網(wǎng)關(guān)控制器(media gateway controller,MGC)與媒體網(wǎng)關(guān)(media gateway,MG)之間的一種媒體網(wǎng)關(guān)控制協(xié)議[11]。它在協(xié)議功能、適用范圍、可擴(kuò)展性和互通性等幾個方面都具有一定優(yōu)勢,能夠支持更大規(guī)模的網(wǎng)絡(luò)應(yīng)用,而且更便于對協(xié)議進(jìn)行擴(kuò)充。鑒于H.248協(xié)議的以上特點(diǎn),選用H.248協(xié)議作為視頻監(jiān)控系統(tǒng)的應(yīng)用層控制協(xié)議,來解決與公有協(xié)議NGN(next generation network)終端互聯(lián)互通的問題。
H.248協(xié)議中與監(jiān)控系統(tǒng)控制流程密切相關(guān)的4個命令分別是:
(1)Add命令[12]。使用Add命令可以向一個關(guān)聯(lián)中添加一個終結(jié)點(diǎn)。
(2)Subtract命令[13]。使用Subtract命令可以刪除一個終結(jié)點(diǎn)與它所在的關(guān)聯(lián)之間的聯(lián)系。
(3)Notify命令。MG使用Notify命令向 MGC報告MG中所發(fā)生的事件。
(4)ServiceChange命令。MG使用ServiceChange命令向MGC報告一個或者一組終結(jié)點(diǎn)將要退出服務(wù)或者剛剛進(jìn)入服務(wù)。MG也可以使用ServiceChange命令向MGC注冊[14]。
H.248協(xié)議發(fā)送或接收的信息單元稱為消息。一個消息包含一個或多個事務(wù),消息內(nèi)的事務(wù)是相互獨(dú)立的。每個Transaction Request請求激發(fā)一個事務(wù),一個事務(wù)包含一個到多個動作,每個動作包含一系列與同一個Context相關(guān)的一個到多個命令。其結(jié)構(gòu)如下[15]:
視頻監(jiān)控系統(tǒng)由媒體服務(wù)器、信令服務(wù)器、視頻服務(wù)器和客戶端組成。H.248協(xié)議在視頻監(jiān)控系統(tǒng)中各個功能實(shí)體扮演如下角色:視頻服務(wù)器相當(dāng)于媒體網(wǎng)關(guān)(MG);信令服務(wù)器相當(dāng)于媒體網(wǎng)關(guān)控制器(MGC);客戶端相當(dāng)于媒體網(wǎng)關(guān)(MG)?;贖.248協(xié)議的視頻監(jiān)控系統(tǒng)的網(wǎng)絡(luò)連接如圖1所示。
圖1 網(wǎng)絡(luò)連接
監(jiān)控系統(tǒng)遠(yuǎn)程控制的主要功能是服務(wù)器(MGC)向遠(yuǎn)程客戶端(MG)和視頻服務(wù)器(MG)發(fā)送控制命令,并根據(jù)控制命令完成監(jiān)控的開啟、關(guān)閉或參數(shù)調(diào)整等功能。具體描述如下:
監(jiān)控的開啟:在客戶端、視頻服務(wù)器與服務(wù)器之間建立視頻會話的過程。客戶端向服務(wù)器發(fā)出會話建立請求(使用Notify或ServiceChange命令),服務(wù)器進(jìn)行驗(yàn)證并響應(yīng)請求,服務(wù)器命令客戶端創(chuàng)建關(guān)聯(lián)加入終結(jié)點(diǎn)(使用Add命令),服務(wù)器和客戶端之間成功建立RTP連接;服務(wù)器和視頻服務(wù)器之間RTP連接與上述流程基本一樣,只是以服務(wù)器發(fā)出會話建立請求開始,以視頻服務(wù)器響應(yīng)請求,發(fā)送視頻數(shù)據(jù)結(jié)束。
監(jiān)控的關(guān)閉:終止視頻會話的過程,拆除客戶端和服務(wù)器、服務(wù)器和視頻服務(wù)器之間的RTP連接(使用Subtract或ServiceChange命令)。
參數(shù)的調(diào)整:對視頻服務(wù)器的參數(shù)調(diào)整(使用ServiceChange命令)。
由上面的分析可知,遠(yuǎn)程控制實(shí)際上是對視頻會話的控制過程。監(jiān)控的開啟與關(guān)閉恰好對應(yīng)了H.248協(xié)議所提供的呼叫建立與呼叫處理兩大功能,使用H.248命令集中的 Notify、ServiceChange、Add、Subtract命令。由此確定,無需對H.248協(xié)議進(jìn)行擴(kuò)展,將H.248協(xié)議應(yīng)用于視頻監(jiān)控控制是完全可行的。
基本控制流程包括:客戶端的注冊和注銷流程以及視頻服務(wù)器的注冊和注銷流程,流程如圖2所示。
圖2 客戶端和視頻服務(wù)器的注冊/注銷流程
H.248客戶端要開通視頻業(yè)務(wù)必須注冊到服務(wù)器。在H.248協(xié)議中,客戶端主動向服務(wù)器注冊所用的命令是Notify或ServerChange。服務(wù)器接收到這兩個請求,便進(jìn)行身份驗(yàn)證,并返回驗(yàn)證結(jié)果,建立視頻會話,開啟視頻監(jiān)控。
(1)事件1:客戶端向服務(wù)器發(fā)送SVC_CHG_REQ消息進(jìn)行注冊。下面是SVC_CHG_REQ命令的文本描述:
第一行:MEGACO協(xié)議,版本為1??蛻舳说椒?wù)器,客戶端的IP地址和端口號為: [192.168.142.144]:2944。第二行:事務(wù)ID為 “3”。第三行:此時關(guān)聯(lián)為空。第四行:ServiceChange命令。終端ID為ROOT,表示該命令作用于整個客戶端。第五行:ServiceChange命令封裝的ServiceChange描述符。第六行:ServiceChange描述符參數(shù)。表示ServiceChangeMethod為 Restart,ServiceChangeReason為熱啟動。
(2)事件2:服務(wù)器收到客戶端的注冊消息后,回送響應(yīng)給客戶端。下面是SVC_CHG_REPLY響應(yīng)的文本描述:
第一行:服務(wù)器到客戶端,服務(wù)器的IP地址和端口號為:[192.168.0.116]:2944。 第 二 行: 關(guān) 聯(lián) 為 空。ServiceChange命令作用于整個客戶端。表示服務(wù)器已經(jīng)收到客戶端發(fā)過來的注冊事務(wù),并且響應(yīng)注冊成功。
H.248客戶端退出服務(wù),需要向服務(wù)器進(jìn)行注銷。
(1)事件1:客戶端向服務(wù)器發(fā)送SVC_CHG_REQ命令進(jìn)行注銷,該命令中的ServiceChangeMethod設(shè)置為Graceful或Force。下面是SVC_CHG_REQ命令的文本描述:
(2)事件2:服務(wù)器回送證實(shí)消息。下面是SVC_CHG_REPLY響應(yīng)的文本描述:
視頻服務(wù)器提供或退出視頻服務(wù),需要向服務(wù)器進(jìn)行注冊/注銷,其命令的文本格式與客戶端注冊/注銷流程所用到的命令格式基本一樣,在此不再贅述。
如圖3所示,整個遠(yuǎn)程控制部分由兩個層次構(gòu)成:A層是應(yīng)用邏輯層,負(fù)責(zé)客戶端和服務(wù)器控制事件的處理。B層是針對應(yīng)用設(shè)計(jì)的H.248協(xié)議層,負(fù)責(zé)處理與H.248協(xié)議相關(guān)的所有事務(wù),兩個層次之間通過緩沖區(qū)進(jìn)行數(shù)據(jù)的交互。
圖3 遠(yuǎn)程控制的總體結(jié)構(gòu)
將H.248協(xié)議棧分為3層,從下到上分別是傳輸層、報文處理層和H.248事件處理層。
H.248消息基于TCP協(xié)議傳輸,不論是發(fā)送還是接收都是以字串方式,對從網(wǎng)絡(luò)上收到的數(shù)據(jù)包進(jìn)行解析,利用字符和數(shù)字匹配函數(shù)(函數(shù)主要有isdigit()、isspace()、isalpha())找出協(xié)議各個字段的值,并將解析后的數(shù)據(jù)放入?yún)f(xié)議結(jié)構(gòu)體的相應(yīng)變量里。根據(jù)解析的結(jié)果,調(diào)用相關(guān)的呼叫處理函數(shù),進(jìn)行相應(yīng)的操作。
每個H.248報文都有固定的結(jié)構(gòu),按照H.248協(xié)議的規(guī)定標(biāo)準(zhǔn),定義如下的消息結(jié)構(gòu):
以2.1客戶端注冊報文為例,解析后的結(jié)果如圖4所示。
對于報文的生成,過程剛好與解析相反,只需要按照協(xié)議的要求,將對應(yīng)的字段填到正確的位置。
圖4 H.248協(xié)議解析
H.248事件處理是對客戶端、視頻服務(wù)器H.248事件和服務(wù)器H.248事件的處理。
3.2.1 客戶端、視頻服務(wù)器H.248事件的處理
客戶端 H.248事件是向服務(wù)器發(fā)出 Notify,Ser-viceChange和Subtract這3類請求。視頻服務(wù)器H.248事件是對服務(wù)器發(fā)出的Add呼叫請求做出響應(yīng)。
以客戶端的呼叫建立為例,狀態(tài)機(jī)如圖5所示。客戶端向服務(wù)器發(fā)送呼叫請求(notify),服務(wù)器回復(fù)已收到通知,服務(wù)器分析客戶端的請求,確定客戶端要求建立連接,于是就命令客戶端創(chuàng)建關(guān)聯(lián)(add),并攜帶自身的SDP信息??蛻舳耸盏浇⑦B接的請求,并創(chuàng)建關(guān)聯(lián),攜帶自身的SDP信息。雙方協(xié)商完成,如果匹配則呼叫建立,否則呼叫失敗。
圖5 客戶端呼叫建立的狀態(tài)機(jī)
3.2.2 服務(wù)器 H.248事件的處理
服務(wù)器H.248事件負(fù)責(zé)向視頻服務(wù)器發(fā)起H.248呼叫請求和處理客戶端發(fā)起的呼叫請求,并根據(jù)請求命令做出相應(yīng)的處理。以服務(wù)器向視頻服務(wù)器發(fā)起請求為例,狀態(tài)機(jī)如圖6所示。服務(wù)器向視頻服務(wù)器發(fā)送視頻請求(ServiceChange),視頻服務(wù)器收到后回送響應(yīng)(reply),并調(diào)用開始編碼功能,視頻服務(wù)器和服務(wù)器之間的視頻通道成功建立。
圖6 服務(wù)器和視頻服務(wù)器建立視頻通道的狀態(tài)機(jī)
硬件環(huán)境主要由視頻服務(wù)器、云臺攝像機(jī)和普通的PC機(jī)構(gòu)成,視頻服務(wù)器和PC機(jī)通過交換機(jī)接入局域網(wǎng);軟件環(huán)境主要是運(yùn)行在PC機(jī)上由VC++開發(fā)的軟件系統(tǒng)。搭建的多服務(wù)器網(wǎng)絡(luò)層次結(jié)構(gòu)及容災(zāi)機(jī)制如圖7所示。該網(wǎng)絡(luò)層次使用二叉樹表示,并有一個頂級服務(wù)器(192.168.0.116),頂級服務(wù)器使用雙機(jī)備份的方式。
圖7 多服務(wù)器網(wǎng)絡(luò)層次
客戶端運(yùn)行在192.168.142.144計(jì)算機(jī)上,登錄界面如圖8所示。在H.248協(xié)議和私有協(xié)議兩種登錄模式下,客戶端同服務(wù)器之間以及服務(wù)器同視頻服務(wù)器之間均能正常建立會話。登錄成功后的監(jiān)控界面如圖9所示。由圖9可知,ping命令顯示視頻服務(wù)器在線,視頻服務(wù)器通道參數(shù)正確獲取,監(jiān)控畫面實(shí)時傳遞,Windows操作系統(tǒng)運(yùn)行正常。
圖8 客戶端登錄界面
圖10是系統(tǒng)運(yùn)行期間捕獲到的數(shù)據(jù)包,可以看出在視頻監(jiān)控系統(tǒng)中H.248協(xié)議的數(shù)據(jù)發(fā)送和接收是正常的。
其中第四、五行,是傳輸控制協(xié)議的內(nèi)容:第四行是RPC協(xié)議的請求端,源地址是192.168.142.144,目的地址是192.168.0.116;第五行是RPC協(xié)議的服務(wù)端,即該數(shù) 據(jù) 包 是 從 服 務(wù) 器 192.168.0.116 發(fā) 往 客 戶 端192.168.142.144;其中也承載了H.248協(xié)議內(nèi)容。其余幾行 都 是 由 服 務(wù) 器 192.168.0.116 發(fā) 給 客 戶 端192.168.142.144的視頻數(shù)據(jù)包,說明客戶端接收的是服務(wù)器轉(zhuǎn)發(fā)的設(shè)備視頻流。由圖10還可以看出,視頻流傳輸使用的是UDP協(xié)議。
為了解決基于私有協(xié)議的視頻監(jiān)控系統(tǒng)與公有協(xié)議的多媒體智能終端互聯(lián)互通問題,將H.248協(xié)議引入到Internet網(wǎng)絡(luò)并應(yīng)用于C/S模式的視頻監(jiān)控系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)的客戶端、視頻服務(wù)器同服務(wù)器能夠嚴(yán)格按照H.248協(xié)議的呼叫流程建立音視頻通話,并在呼叫建立的基礎(chǔ)上進(jìn)行視頻監(jiān)控,視頻流通道和視頻服務(wù)器參數(shù)控制通道獨(dú)立正確運(yùn)行,實(shí)現(xiàn)視頻監(jiān)控系統(tǒng)私有協(xié)議向公有H.248協(xié)議的移植,為監(jiān)控系統(tǒng)同其他公有協(xié)議多媒體智能終端互聯(lián)互通提供依據(jù)。
[1]LI Runzhi,GUO Chunyi,F(xiàn)AN Ming.Research on P2Plive streaming cache replacement [J].Computer Engineering and Design,2011,32(1):58-61(in Chinese). [李潤知,郭純一,范明.P2P流媒體直播分布式緩存替換算法研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(1):58-61.]
[2]ZONG Wenjie,YU Qingsong.Research on GIS-based video surveillance system [J].Computer Engineering and Design,2011,32(2):745-748(in Chinese).[宗文杰,余青松.基于GIS的視頻監(jiān)控系統(tǒng)研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(2):745-748.]
[3]Brandenburg C,Arnberger A.Video monitoring forest visitors:An approach to gain more insightful data[J].Centralblatt fur das gesamte Forstwesen,2005,122(1):19-35.
[4]TAN Wen,LI Zhipan.Chaos control for synchronization of chaotic system [J].Computer Engineering and Applications,2011,47(4):219-222(in Chinese).[譚文,李志攀.一個混沌系統(tǒng)的同步控制研究 [J].計(jì)算機(jī)工程與應(yīng)用,2011,47(4):219-222.]
[5]GAO Yuzhi,ZHU Zhenmin,XIAO Jianhua.Transport of MPEG-4video based on H.323system [J].Computer Engineering and Design,2009,30(4):934-937(in Chinese).[高玉之,朱珍民,肖建華.基于H.323系統(tǒng)的MPEG-4視頻傳輸 [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(4):934-937.]
[6]LING Qinghua,SHI Zhiqiang.Design and implementation of SIP-based network video surveillance system [J].Computer Engineering,2007,33(2):261-263(in Chinese).[凌慶華,石志強(qiáng).基于SIP的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程,2007,33(2):261-263.]
[7]WANG Zhixia,WANG Guangsheng.Application of simplified MGCP protocol in VoIP [J].Computer Engineering and Design,2006,27(6):1098-1100(in Chinese).[王智霞,王廣生.簡化MGCP協(xié)議在VoIP中的應(yīng)用 [J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(6):1098-1100.]
[8]YAN Danfeng,YANG Fangchun.Research of universal service management model in NGN [J].Acta Electronica Sinica,2007,35(10):1828-1832(in Chinese).[閆丹鳳,楊放春.下一代網(wǎng)絡(luò)通用業(yè)務(wù)管理模型研究 [J].電子學(xué)報,2007,35(10):1828-1832.]
[9]RAO Xiang,ZHANG Shunyi.Next generation network resource allocation method based on cooperative game and decision-marking in advance [J].Journal on Communications,2009,30(4):60-65(in Chinese).[饒翔,張順頤.基于預(yù)判與合作博弈的下一代網(wǎng)絡(luò)資源優(yōu)化分配方法 [J].通信學(xué)報,2009,30(4):60-65.]
[10]WU Naixing,LIAO Jianxin.Research on protocol interaction between H.248and SIP in multimedia session in NGN [J].Computer Engineering and Applications,2005,(12):26-30(in Chinese).[吳乃星,廖建新.下一代網(wǎng)絡(luò)媒體會話中H.248與SIP之間協(xié)議協(xié)作的研究 [J].計(jì)算機(jī)工程與應(yīng)用,2005,(12):26-30.]
[11]ZHANG Wanli.Design and implementation of H.248-based media gateway [D].Chengdu:University of Electronic Science and Technology of China,2006:25-60(in Chinese). [張婉麗.基于H.248協(xié)議的媒體網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn) [D].成都:電子科技大學(xué),2006:25-60.]
[12]SONG Bing,GUO Chunfang,QIN Hao.A bandwidth allocation strategy for video communications based on H.248protocol [J].Acta Electronica Sinica,2009,37(2):393-397(in Chinese).[宋彬,郭春芳,秦浩.基于H.248協(xié)議的視頻通信帶寬分配策略 [J].電子學(xué)報,2009,37(2):393-397.]
[13]LIU Zhenhua,CHEN Jian.Parsing of singaling for H.248/MEGACO protocol in next generation network [J].Communications Technology,2009,42(3):149-150(in Chinese).[劉振華,陳健.H.248/MEGACO協(xié)議在NGN中的信令解析 [J].通信技術(shù),2009,42(3):149-150.]
[14]CHEN Xin.Research on appliance and implementation of H.248[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2006:20-40(in Chinese).[陳鑫.H.248協(xié)議應(yīng)用與實(shí)現(xiàn)研究 [D].南京:南京航空航天大學(xué),2006:20-40.]
[15]ZHANG Jing.Implementation of H.248and ITS extension[D].Beijing:Beijing University of Posts and Telecommunications,2009:10-35(in Chinese).[張晶.H.248協(xié)議的功能實(shí)現(xiàn)和擴(kuò)展 [D].北京:北京郵電大學(xué),2009:10-35.]