前言
在視頻通信信令協(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ù)上附加視頻電話功能等.
1 總體軟件結(jié)構(gòu)
本文使用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ò)電視,開(kāi)始進(jìn)行視頻通話.
1.1 STB 與SIP 終端之間的通信流程設(shè)計(jì)
一.STB 與門(mén)戶之間的通信流程
STB 與門(mén)戶之間總共有2 個(gè)接口:心跳接口和呼叫接口.
(1)心跳接口
接口功能:提供給機(jī)頂盒開(kāi)機(jī)時(shí)發(fā)送信息,給門(mén)戶,以便門(mén)戶好管理用戶狀態(tài).
接口走向:機(jī)頂盒→門(mén)戶Portal.
(2)呼叫接口
接口功能:在門(mén)戶上呼叫好友之后,門(mén)戶會(huì)返回好友的呼叫信息,而通過(guò)這些信息,機(jī)頂盒可以呼叫對(duì)方的SIP 終端.
接口走向:門(mén)戶Portal→機(jī)頂盒
二.STB 與SIP 之間的流程
STB 通過(guò)門(mén)戶拿到好友的DN 以及好友的SIP 終端的IP 和端口之后,開(kāi)始與好友的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
1.2 瀏覽器與視頻通信模塊之間的接口函數(shù)設(shè)計(jì)
用戶發(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 :開(kāi)啟視頻通訊視音頻.
D_SIP_AV_Stop :關(guān)閉視頻通訊的視音頻.
2 視頻通信軟件系統(tǒng)測(cè)試
2.1 視頻通信功能測(cè)試
為了驗(yàn)證軟件設(shè)計(jì)的可行性,本文進(jìn)行了模擬測(cè)試,設(shè)備連接如圖2 所示.
測(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).
2.2 視頻通信SIP 協(xié)議測(cè)試
在視頻通信呼叫過(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 類(lèi)的SIP 請(qǐng)求消息,STB_B 注冊(cè)的域中有一個(gè)代理服務(wù)器,請(qǐng)求消息被10.27.81.31(代理服務(wù)器)接收.
2.10.27.81.31 收到INVITE 類(lèi)請(qǐng)求消息后,向STB_A 發(fā)回狀態(tài)碼為100 的響應(yīng)消息,說(shuō)明請(qǐng)求已經(jīng)收到.
3.10.27.81.31 依據(jù)收到的INVITE 類(lèi)請(qǐng)求消息產(chǎn)生新的INVITE 類(lèi)請(qǐng)求消息“代理”STB_A 向STB_B 發(fā)出INVITE 類(lèi)請(qǐng)求消息.
4.STB_A 向10.27.81.31 發(fā)送ACK 類(lèi)請(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 類(lèi)請(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ù)期的效果.
3 總結(jié)
本文設(shè)計(jì)了基于STB 和SIP 視頻通信軟件設(shè)計(jì),并對(duì)其進(jìn)行測(cè)試.在軟件上設(shè)計(jì)了STB 與SIP 終端之間的通信流程的建立過(guò)程,通過(guò)設(shè)置心跳接口和呼叫接口來(lái)實(shí)現(xiàn)呼叫的建立,并用C 語(yǔ)言編寫(xiě)相關(guān)代碼實(shí)現(xiàn).此外還設(shè)計(jì)了瀏覽器與視頻通信模塊之間的通信流程圖,并編寫(xiě)了接口函數(shù).最后對(duì)軟件進(jìn)行測(cè)試,測(cè)試結(jié)果表明系統(tǒng)能夠正常工作.
-
機(jī)頂盒
+關(guān)注
關(guān)注
4文章
393瀏覽量
54895 -
SiP
+關(guān)注
關(guān)注
5文章
523瀏覽量
106134 -
視頻
+關(guān)注
關(guān)注
6文章
1969瀏覽量
73684
發(fā)布評(píng)論請(qǐng)先 登錄
通過(guò)InConnect平臺(tái)實(shí)現(xiàn)終端設(shè)備遠(yuǎn)程訪問(wèn)
無(wú)線視頻傳輸平臺(tái)的搭建步驟
嵌入式SIP協(xié)議棧怎么設(shè)計(jì)?
怎么實(shí)現(xiàn)基于SIP協(xié)議的IP電話通信系統(tǒng)的設(shè)計(jì)?
嵌入式半實(shí)物仿真測(cè)試ETest平臺(tái)的功能是什么
就SpinalHDL的測(cè)試平臺(tái)搭建進(jìn)行說(shuō)明
WindowsCE SIP協(xié)議終端軟件實(shí)現(xiàn)
基于SIP的模擬語(yǔ)音通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
什么是SIP終端/IMS服務(wù)控制接口
SIP終端語(yǔ)音聊天的設(shè)計(jì)

嵌入式系統(tǒng)中SIP協(xié)議在VOIP的應(yīng)用及實(shí)現(xiàn)

觸摸屏與模擬量測(cè)試終端之間無(wú)線MODBUS通信

SIP對(duì)講求助終端

SIP網(wǎng)絡(luò)對(duì)講終端 雙鍵求助終端 防水求助終端

基于ARM9的嵌入式SIP電話終端的設(shè)計(jì)與實(shí)現(xiàn)

評(píng)論