基于STB和SIP视频通信软件设计及测试
2013-11-14姜莉
姜 莉
(四川信息职业技术学院 628017)
0 前言
在视频通信信令协议中,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→机顶盒
Server端:机顶盒端
图1 视频通信软件流程图
二、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 视频通信测试平台连接图
测试步骤如下:
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语言编写相关代码实现。此外还设计了浏览器与视频通信模块之间的通信流程图,并编写了接口函数。最后对软件进行测试,测试结果表明系统能够正常工作。
[1]高深.SIP协议研究及其在视频通信中的应用[J].哈尔滨工业大学学报.2012,(03):41-42
[2]裴文江.基于SIP协议的VOIP技术及在融合通信中的应用研究[J].卫星与网络..2012(02):5-7