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