姜 莉
(四川信息職業(yè)技術(shù)學(xué)院 628017)
在視頻通信信令協(xié)議中,SIP協(xié)議憑借自身特有的優(yōu)點(diǎn)成為研究與應(yīng)用的熱點(diǎn)。有線電視信號(hào)已從模擬轉(zhuǎn)向數(shù)字,數(shù)字機(jī)頂盒是其過(guò)度的橋梁,能夠使模擬電視用戶同樣觀看到數(shù)字信號(hào)頻道的節(jié)目。但是目前的數(shù)字機(jī)頂盒尚沒(méi)有提供適合于散戶安裝的簡(jiǎn)易視頻交互通信功能,具備這種功能的數(shù)字機(jī)頂盒具有極大的市場(chǎng)與應(yīng)用價(jià)值。在此背景下,本文嘗試實(shí)現(xiàn)數(shù)字機(jī)頂盒間的簡(jiǎn)易視頻交互,以便在一般機(jī)頂盒技術(shù)上附加視頻電話功能等。
本文使用C語(yǔ)言編程完成相關(guān)軟件功能,總體軟件結(jié)構(gòu)流程圖如圖1所示。前半部分主要是實(shí)現(xiàn)STB與SIP終端之間的通信連接,后半部分主要是實(shí)現(xiàn)瀏覽器與視頻通信模塊之間的連接。
視頻通信的具體流程如下:
1.將攝像頭連接到SIP終端上,然后將SIP終端連接到STB上。
2.將STB鏈接到有線電視網(wǎng)絡(luò)上,同時(shí)將STB連接到電視機(jī)上。
3.登錄STB的WEB頁(yè)面,通過(guò)好友界面,選擇好友,并發(fā)起呼叫。
4.呼叫接通后,通過(guò)電視,開始進(jìn)行視頻通話,
一、STB與門戶之間的通信流程
STB與門戶之間總共有2個(gè)接口:心跳接口和呼叫接口。
(1)心跳接口
接口功能:提供給機(jī)頂盒開機(jī)時(shí)發(fā)送信息,給門戶,以便門戶好管理用戶狀態(tài)。
接口走向:機(jī)頂盒→門戶Portal。
(2)呼叫接口
接口功能:在門戶上呼叫好友之后,門戶會(huì)返回好友的呼叫信息,而通過(guò)這些信息,機(jī)頂盒可以呼叫對(duì)方的SIP終端。
接口走向:門戶Portal→機(jī)頂盒
Server端:機(jī)頂盒端
圖1 視頻通信軟件流程圖
二、STB與SIP之間的流程
STB通過(guò)門戶拿到好友的DN以及好友的SIP終端的IP和端口之后,開始與好友的SIP終端建立連接,當(dāng)這個(gè)連接建立成功之后,就可以通過(guò)STB和sip終端,進(jìn)行視頻通訊。好友的音視頻信息可以通過(guò)電視播放出來(lái)。
這個(gè)流程總共包含2個(gè)接口:心跳接口和呼叫接口。
(1)心跳接口:STB與自己的SIP終端之間保持心跳。
接口走向:自己的SIP終端→STB
Server端:STB
(2)呼叫接口:STB呼叫好友的SIP終端。
接口走向:好友的SIP終端→自己的STB
Server端:STB
用戶發(fā)起呼叫時(shí),呼叫窗口通過(guò)瀏覽器顯示來(lái),因此需要設(shè)計(jì)瀏覽器與視頻通信模塊之間的接口函數(shù)。需要的函數(shù)為庫(kù)函數(shù)和接口函數(shù)。庫(kù)函數(shù)為瀏覽器庫(kù)函數(shù):D_Browser_AppNotify,從視頻通信模塊傳遞狀態(tài),觸發(fā)瀏覽器工作。接口函數(shù)包括:
D_SIP_Play:傳遞視頻通訊參數(shù)。
D_SIP_Stop:關(guān)閉視頻通訊。
D_SIP_SetWindow:設(shè)置視頻窗口位置。
D_SIP_GetWindow:獲得視頻窗口顯示位置。
D_SIP_AV_Start:開啟視頻通訊視音頻。
D_SIP_AV_Stop:關(guān)閉視頻通訊的視音頻。
為了驗(yàn)證軟件設(shè)計(jì)的可行性,本文進(jìn)行了模擬測(cè)試,設(shè)備連接如圖2所示。
圖2 視頻通信測(cè)試平臺(tái)連接圖
測(cè)試步驟如下:
2.1.1 進(jìn)入系統(tǒng)
a)通過(guò)導(dǎo)視菜單進(jìn)入到視頻通信的頁(yè)面,具體步驟是【導(dǎo)視】→【通訊】→【視頻通話】;
b)在該頁(yè)面選擇【視頻通訊】選項(xiàng),進(jìn)入到視頻通信的首頁(yè)。
c)頁(yè)面從左至右分為三個(gè)區(qū)域:好友列表區(qū)、呼叫和刪除區(qū)以及添加好友區(qū)。
2.1.2 添加好友
a)進(jìn)入到視頻通訊首頁(yè),然后點(diǎn)擊“添加好友”,進(jìn)入到好友添加列表。
b)通過(guò)遙控器選中選中輸入框“請(qǐng)輸入好友的聯(lián)系方式”,然后通過(guò)遙控器上的數(shù)字鍵輸入好友的號(hào)碼。
c)輸入號(hào)碼后,按遙控器確定鍵,會(huì)提示添加成功。
d)之后選中頁(yè)面上的“返回”將返回到好友列表。
2.1.3 視頻呼叫
a)主叫:主叫模式是指通過(guò)導(dǎo)視菜單進(jìn)入到視頻通訊首頁(yè),并發(fā)起對(duì)好友的呼叫。進(jìn)入到視頻通訊首頁(yè),選擇某個(gè)好友,點(diǎn)擊呼叫按鈕,進(jìn)入到呼叫等待頁(yè)面。若呼叫失敗,將進(jìn)入到呼叫失敗頁(yè)面;若呼叫成功,則將進(jìn)入到視頻通話的頁(yè)面。按掛斷按鈕,將返回到好友列表頁(yè)面,即視頻通訊首頁(yè)。
b)被叫是指沒(méi)有進(jìn)入到視頻通訊模塊,這時(shí)收到好友的來(lái)電請(qǐng)求,彈出來(lái)電提示框。接收來(lái)顯請(qǐng)求,選擇全屏模式,則會(huì)全屏顯示好友的視頻。
2.1.4 終止視頻通話
a)在瀏覽器模式下終止視頻通話。則可以直接在通話的頁(yè)面上,選擇 “終止視頻通話”,則返回視頻通話首頁(yè)。在視頻通訊首頁(yè),若按遙控器的“退出”鍵,將退出首頁(yè)面,返回電視觀看狀態(tài)。
在視頻通信呼叫過(guò)程中,利用Wireshark抓包軟件,即可獲得呼叫過(guò)程的SIP信令協(xié)議數(shù)據(jù)。Wireshark是一個(gè)網(wǎng)絡(luò)封包分析軟件,安裝使用方便,其功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料,從而可以分析協(xié)議。
本文主要測(cè)試SIP信令協(xié)議中的會(huì)話邀請(qǐng)、應(yīng)答與終止信令即一個(gè)完整的會(huì)話建立與終止過(guò)程。STB_A分配一個(gè)用于測(cè)試的fSipDn = 8012、fSipIp = 10.171.0.2,STB_B分配的用于測(cè)試的fSipDn = 8013、fSipIp = 10.171.0.3。當(dāng)STB_A向STB_B發(fā)起呼叫建立會(huì)話時(shí),使用wireshark抓包工抓取數(shù)據(jù)包。
從實(shí)驗(yàn)數(shù)據(jù)可知STB_A為主叫方,STB_B為被叫方,呼叫建立過(guò)程為:
1.STB_A向STB_B發(fā)出INVITE類的SIP請(qǐng)求消息,STB_B注冊(cè)的域中有一個(gè)代理服務(wù)器,請(qǐng)求消息被10.27.81.31(代理服務(wù)器)接收。
2.10.27.81.31收到INVITE類請(qǐng)求消息后,向STB_A發(fā)回狀態(tài)碼為100的響應(yīng)消息,說(shuō)明請(qǐng)求已經(jīng)收到。
3.10.27.81.31依據(jù)收到的INVITE類請(qǐng)求消息產(chǎn)生新的INVITE類請(qǐng)求消息“代理”STB_A向STB_B發(fā)出INVITE類請(qǐng)求消息。
4.STB_A向10.27.81.31發(fā)送ACK類請(qǐng)求消息,說(shuō)明已經(jīng)收到了INVITE請(qǐng)求消息的最終響應(yīng)。
5.10.27.81.31將ACK消息轉(zhuǎn)發(fā)給STB_B,到此為止表明呼叫建立成功。
6.通信結(jié)束,STB_A首先掛機(jī),向代理服務(wù)器發(fā)出BYE類請(qǐng)求消息。
7.10.27.81.31向STB_A發(fā)送200OK響應(yīng)消息,說(shuō)明釋放呼叫。
8.10.27.81.31將BYE消息轉(zhuǎn)發(fā)給STB_B。
9.STB_B向10.27.81.31發(fā)送200OK響應(yīng)消息,說(shuō)明會(huì)話結(jié)束。
從功能測(cè)試結(jié)果和抓取的實(shí)驗(yàn)數(shù)據(jù)可知,該系統(tǒng)能夠正常工作,完成要求的功能;SIP服務(wù)器與SIP終端也能正常工作,達(dá)到了預(yù)期的效果。
本文設(shè)計(jì)了基于STB和SIP視頻通信軟件設(shè)計(jì),并對(duì)其進(jìn)行測(cè)試。在軟件上設(shè)計(jì)了STB與SIP終端之間的通信流程的建立過(guò)程,通過(guò)設(shè)置心跳接口和呼叫接口來(lái)實(shí)現(xiàn)呼叫的建立,并用C語(yǔ)言編寫相關(guān)代碼實(shí)現(xiàn)。此外還設(shè)計(jì)了瀏覽器與視頻通信模塊之間的通信流程圖,并編寫了接口函數(shù)。最后對(duì)軟件進(jìn)行測(cè)試,測(cè)試結(jié)果表明系統(tǒng)能夠正常工作。
[1]高深.SIP協(xié)議研究及其在視頻通信中的應(yīng)用[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào).2012,(03):41-42
[2]裴文江.基于SIP協(xié)議的VOIP技術(shù)及在融合通信中的應(yīng)用研究[J].衛(wèi)星與網(wǎng)絡(luò)..2012(02):5-7