在視頻通信信令協(xié)議中,SIP 協(xié)議憑借自身特有的優(yōu)點(diǎn)成為研究與應(yīng)用的熱點(diǎn)。有線電視信號(hào)已從模擬轉(zhuǎn)向數(shù)字,數(shù)字機(jī)頂盒是其過度的橋梁,能夠使模擬電視用戶同樣觀看到數(shù)字信號(hào)頻道的節(jié)目。但是目前的數(shù)字機(jī)頂盒尚沒有提供適合于散戶安裝的簡易視頻交互通信功能,具備這種功能的數(shù)字機(jī)頂盒具有極大的市場與應(yīng)用價(jià)值。在此背景下,本文嘗試實(shí)現(xiàn)數(shù)字機(jī)頂盒間的簡易視頻交互,以便在一般機(jī)頂盒技術(shù)上附加視頻電話功能等。
1 總體軟件結(jié)構(gòu)
本文使用C 語言編程完成相關(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 頁面,通過好友界面,選擇好友,并發(fā)起呼叫。
4. 呼叫接通后,通過電視,開始進(jìn)行視頻通話。
1.1 STB 與SIP 終端之間的通信流程設(shè)計(jì)
一、STB 與門戶之間的通信流程
STB 與門戶之間總共有2 個(gè)接口:心跳接口和呼叫接口。
(1)心跳接口
接口功能:提供給機(jī)頂盒開機(jī)時(shí)發(fā)送信息,給門戶,以便門戶好管理用戶狀態(tài)。
接口走向:機(jī)頂盒→門戶Portal.
(2)呼叫接口
接口功能:在門戶上呼叫好友之后,門戶會(huì)返回好友的呼叫信息,而通過這些信息,機(jī)頂盒可以呼叫對(duì)方的SIP 終端。
接口走向:門戶Portal→機(jī)頂盒
二、STB 與SIP 之間的流程
STB 通過門戶拿到好友的DN 以及好友的SIP 終端的IP 和端口之后,開始與好友的SIP 終端建立連接,當(dāng)這個(gè)連接建立成功之后,就可以通過STB 和sip 終端,進(jìn)行視頻通訊。好友的音視頻信息可以通過電視播放出來。
這個(gè)流程總共包含2 個(gè)接口:心跳接口和呼叫接口。
(1)心跳接口:STB 與自己的SIP 終端之間保持心跳。
接口走向:自己的SIP 終端→ STB
Server 端:STB.
(2)呼叫接口:STB 呼叫好友的SIP 終端。
接口走向:好友的SIP 終端→自己的STB
Server 端:STB
1.2 瀏覽器與視頻通信模塊之間的接口函數(shù)設(shè)計(jì)
用戶發(fā)起呼叫時(shí),呼叫窗口通過瀏覽器顯示來,因此需要設(shè)計(jì)瀏覽器與視頻通信模塊之間的接口函數(shù)。需要的函數(shù)為庫函數(shù)和接口函數(shù)。庫函數(shù)為瀏覽器庫函數(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)閉視頻通訊的視音頻。