新闻  |   论坛  |   博客  |   在线研讨会
基于SIP的移动可视电话的软件实现
lulu888 | 2009-05-23 19:40:51    阅读:1044   发布文章

--

摘 要:随着下一代网络技术的发展,基于SIP的应用近期得到了广泛的使用,其简单快速的特点使其成为开发移动视频通信业务的利器,再结合CDMA1X现网无线分组网络的带宽优势。本文探讨 采用SIP实现移动可视电话的软件开发过程以及应用方案。

一、背景

目前,各运营商针对已经存在的大规模的2.5G移动网络,为保护已有的投资及充分发挥现有网络的资源,争取更多的高端客户,产生了在2.5G 网络上,利用已有的带宽尽可能多地提供增值服务的需求,尤其是视频应用的相关服务需求。这就能让最终用户在2.5G网络上提前感受到3G业务的应用,并保证了在业务层面向3G的平滑过渡。

另外,目前以IP为核心的分组化传送已成为电信网络演进的主流方向。作为运营商如何在移动网络和固定网络之间进行业务的互通,尤其是基于NGN应用的互通,需要运营商进行大量的实践工作。本系统客户端采用SIP技术,针对低带宽的状况,开用高性能的音视频编码技术实现移动视频通信。

二、SIP概述

1. SIP的功能及背景

SIP(Session Initiation Protocol)会话发起协议是IETF(Internet工程任务组)制订的,用于多方多媒体通信,其开发目的是用来帮助提供跨越因特网的高级电话业务。SIP用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。SIP是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP,用于建立、修改和终止IP网上的双方或多方多媒体会话,支持语音、视频、数据、E-mail、状态、IM、聊天、游戏等。

2. SIP的结构及实现机制

SIP中有客户机和服务器之分。客户机是指为了向服务器发送请求而与服务器建立连接的应用程序。用户代理(User Agent)和代理(Proxy)中含有客户机。服务器是用于向客户机发来的请求提供服务并回送应答的应用程序,共有4类基本服务器:用户代理服务器、代理服务器、重定向服务器和注册服务器。

用户终端程序往往需要包括用户代理客户机和用户代理服务器。代理服务器、重定向服务器和注册服务器可以看作是公众性的网络服务器。在SIP中还经常提到“定位服务器”的概念,但是定位服务器不属于SIP服务器。SIP服务器请求定位服务的方式也不在SIP的讨论范围之内。

SIP共规定了六种信令:INVITE、ACK、CANCEL、OPTIONS、BYE、REGISTER。其中INVITE和 ACK用于建立呼叫,完成三次握手,或者用于建立以后改变会话属性;BYE用以结束会话;OPTIONS用于查询服务器能力;CANCEL用于取消已经发出但未最终结束的请求;REGISTER用于客户出向注册服务器注册用户位置等消息。SIP主要定义了表1所示的五种类型的响应状态。

三、软件实现SIP移动可视电话方案

1. 系统简介

终端软件侧,在无线网络中采用基于CDMA1X无线分组网络作为网络承载层的SIP客户端软件,考虑到带宽的限制――上下行带宽选择在40~80kbit/s,上下行带宽的非对称性以及和未来3G系统的兼容性,我们采用了符合3GPP标准的MPEG-4视频编码和GSM-AMR音频编码。这样,可以在带宽较低和不稳定的情况下,完成图像和视频的传输,保证服务的质量。

网络侧,引入媒体和信令的转换网关服务器。作为网络核心,在管理全部移动SIP软件号码资源,提供H.323/SIP网络业务的各种会话/控制之外,还提供诸如路由、计费、资源和网络管理功能。这样构筑成双向的视频通信模式。

2. 软件框架

针对现有的网络和系统要求,对该软件的程序模块,核心的编解码流程SIP呼叫信令流程进行了介绍,同时考虑到IP系统的安全性的要求,对软件在用户接入认证方面的算法进行了介绍。

鉴于软件运行的硬件环境和软件环境的限制,需要充分优化现有的软件构架,将该软件分成三大模块:主进程模块、应用层管理模块和呼叫状态控制模块。主进程模块负责任务的管理,线程的生成和切换。应用层管理模块负责用户的输入输出,LCD的控制,音频和视频设备的驱动,为了提高设备的存取效率,减少设备间的切换时间,我们采用了增加缓存,直接调用底层驱动接口,直接写显示缓冲区等方法,来优化该模块。呼叫状态控制模块负责状态机的管理,流媒体的管理。这部分为系统的核心模块,根据不同的状态,负责调用不同的回调函数来和协议栈进行交流,同时考虑到无线网络的不稳定性,采用了协议的重发机制来保证命令的及时响应。对于音频和视频流的管理,我们同样优化了RTP包的封装模式来保证传输性能。各个模块之间通过消息和事件机制进行通信。

3. 编码解码流程

对于编码流程,首先,通过用户的输入,如发起一个呼叫,ACK以后,Encoder线程通过音频和视频的输入设备采集信号,进行MPEG-4和GSM-AMR的压缩,然后封装成RTP包,发送到CDMA 1X的无线网络。对于解码流程,Decoder线程接收到网络侧的RTP包,进行拆解,还原成声音和视频直接输出到相关的设备。

4. 基本的呼叫流程

(1)SIP终端1向视频服务器发起呼叫建立请求,包括了其想与之通信的对方SIP视频终端号码;

(2)视频服务器对请求进行合法性验证(见用户的安全认证部分);

(3)视频服务器查找和号码对应的IP地址信息;

(4)如果查找成功,视频服务器向SIP终端2发起呼叫请求;

(5)SIP终端2对请求进行应答;

(6)视频服务器对SIP终端1进行应答;

至此,SIP终端1和2将可以进行音频和视频的传输了。

5. 用户的安全认证控制

考虑到用户接入的安全性,我们采用了SIP信令中的WWW的认证方式,在用户注册时,发送401消息,并把经过MD5算法加密后的nonce发送给客户端,用户根据此信息,配合自己的用户名和密码重新发起注册请求。

同时,对合法注册的用户,在发起呼叫时,也要再次接收服务器端的认证。

6. 软件的功能列表

采用Windows Mobile 2003 PDA Phone。

协议:SIP 2.0。

视频编码:MPEG-4 SP。

视频大小:QCIF。

图像质量:28PSNR(db)。

编码码率:30~50 kbit/s或以上。

音频编码:GSM-AMR。

编码码率:4~8kbit/s。

鉴权和认证。

视音频呼叫接续控制。

网络故障SIP重发机制。

状态恢复,重新注册。

四、结束语

作为NGN系统协议的一个重要成员,SIP已得到电信运营商和设备制造商的广泛重视,传统及新兴的电信设备厂商的软交换产品以及在下一代网络(NGN)产品中都已纷纷支持SIP,著名电信运营商如AT&T等也都已采用SIP提供业务。随着技术和市场的发展,我国已有多家运营商开展了下一代网络的实验甚至试商用,并已经在下一代网络(NGN)上试验开展各种增值业务。随着视讯业务,尤其是无线视讯业务的突出发展,当新一代有线、无线数据业务真正成为传统电信业务和传统增值业务的竞争者的时候,快速提供个性化业务将是其重要竞争手段,SIP在这方面正具有独特的优势。同时,从手机终端的处理能力、分组网处理能力等方面考虑,采用SIP作为视频通信的基本协议是适应技术发展要求的。(

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客