在视频通讯信令协议中,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 言语编写相关代码完结.此外还规划了浏览器与视频通讯模块之间的通讯流程图,并编写了接口函数.最终对软件进行测验,测验成果标明体系可以正常作业.