3G 牌照的发放,标志着中国移动通信领域向3G技术升级的号角正式吹响。3G 网络区别于2G 网络最重要的地方就是带宽得到了很大的提升,由此移动运营商采用最新的语音和视频交互技术,可以为3G手机用户提供视频会议、视频点播和远程监控等众多新兴的交互式视频增值服务。目前各大运营商铺设的3G网络基本是以3GPP R4 为规范,实时视频应用采用的是电路域的3G-324M 协议标准,而大部分增值应用服务器采用的是SIP 协议标准。因此,为了解决两种不同类型网络的互联互通,以提供丰富的多媒体增值应用,需要3G 交互式视频网关进行不同协议间媒体格式和控制消息的转换,图1 显示了该网关在多媒体增值应用服务体系结构中所处的位置。本文首先简要介绍了3G 交互式视频网关所涉及到的关键技术,接着提出了该网关的一个具体的设计与实现方法,最后给出了在实际环境中进行测试的情况。
图1 3G 多媒体增值应用服务体系结构。
1 3G交互式视频网关关键技术介绍
1.1 3G-324M 协议
3G-324M协议是3GPP组织以ITU-T H324/M为基础制定的框架性标准,该协议主要是用来在低带宽(通常为64kbps)的环境下提供足够高质量的实时多媒体通信。借助3G-324M 协议,3G 终端既可以与其它的3G 终端进行实时的视频通话,也可以通过3G 交互式视频网关和各种增值应用服务器进行通信,获得交互式的视频增值服务,如视频会议、视频点播、远程监控等。
3G-324M 标准是一个标准体系,包含下面几个子协议标准:音频编码标准(3GPP-AMR、G.723.1)、视频编码标准(H.263、MPEG-4、H.261)、数据编码标准(V.14、LAPM(LinkAccess Procedure for Modems))、多路复用和解复用协议(H.223)和呼叫控制协议(H.245)。其中H.223 协议又分为两层:适配层和复用层。适配层的作用是为不同类型的数据进行适配,并提供相关的错误控制,复用层的作用是交织多个媒体流如视频、音频、用户数据和控制消息(H.245)到一个媒体流,使其能在传输信道上传输。H.245 协议则规定了在会话各个阶段的控制消息交换标准,H.245 定义的主要的逻辑过程包括主从决定过程,能力交换过程,逻辑信道开关过程,复用表初始化/修改过程,模式请求过程等。
1.2 SIP 协议
SIP 协议是由IETF 提出来的在互联网上进行多媒体通信的信令协议,是下一代网络(NGN)的核心协议之一 [6].SIP 是工作在应用层上的一个信令协议,可以用来建立、修改和终止有多方参与的多媒体会话进程。一般情况下,SIP 协议使用RTP 协议传送音频和视频流,使用SDP 协议进行媒体描述。
图2 基本的SIP 会话流程。
一个简单的SIP 会话流程如图2 所示。首先Alice给Bob 发送INVITE 消息邀请Bob 加入SIP 会话,INVITE 消息中携带了描述Alice 的音视频编解码格式和通信端口的SDP 信息,Bob 收到INVITE 消息后,发送200 OK 消息给Alice,200 OK 消息中携带了描述Bob 所选择的编解码格式和Bob 通信端口的SDP信息,Alice 收到200 OK 消息后发送ACK 消息给Bob,此时完成三次握手,进入媒体会话阶段。媒体会话完成后,Bob 发送BYE 消息给Alice 结束SIP 会话,Alice 收到BYE 消息后,给Bob 发送ACK 确认消息。
由于SIP 协议具有简单性、灵活性、可扩展性和开放性等显著优点,人们对它的热情正不断高涨,正有越来越多的人利用SIP 构筑下一代增值业务平台。
2 网关总体设计
网关的工作原理如图3 所示。
图3 网关工作原理
由图中可以看出,3G 交互式视频网关主要负责控制消息和媒体格式的转换。在3G 电路域一侧,3G 手机用户通过拨打特服号码拨通到3G 网关,此时通过Q.931 信令建立起了一个B 信道,这个信道是一个64Kbps 的数据信道。在B 信道建立后,3G-324M协议的初始化过程就在B 信道上进行,协议会在B 信道上建立三个逻辑信道,分别用来传输H.245 控制消息、音频数据和视频数据。在完成了3G-324M 协议的初始化后,网关在IP 域一侧通过SIP 协议与增值应用服务器建立一个SIP 会话,获得RTP 格式的实时媒体流。对于从增值应用服务器获得的音频、视频数据和控制消息,网关转换格式后,发送到3G-324M 协议栈,3G-324M 协议栈根据H.223 协议将音频、视频数据和控制消息复用到B 信道上发送到3G 手机。
对于从B 信道上获得的数据,网关解复用成相应的音频、视频数据和控制消息后封装成对应的RTP 格式的数据报和SIP 消息,发送到增值应用服务器。网关的交互式功能主要通过控制消息的转换实现,而控制消息主要来自手机端的DTMF 输入。
在设计的时候,由于实验室已有的2G 音频网关技术平台已经实现了SIP 协议栈并配有E1 板卡, 所以只要在其基础上加入3G-324M 协议栈,并实现3G-324M 协议与SIP 协议之间媒体格式和控制消息的转换即可以完成3G 交互式视频网关的基本功能。
根据3G-324M 协议标准,3G-324M 协议栈的结构设计如图4 所示:
图4 3G-324M 协议栈结构
从图中可以看出,所设计的3G-324M 协议栈一共有3 个逻辑信道,分别是H.245 控制消息信道、音频信道和视频信道。由应用自上而下传递的控制消息翻译成对应的H.245消息,经过CCSR(ControlChannelSegmentation and Reassembly Layer,简称CCSR)分段后交NSRP(Numbered Simple RetransmissionProtocol,简称NSRP)加上序列号,加入到控制消息发送队列中,由应用自上而下传递的音频和视频数据经过H.223 的适配层进行适配后,也加入到相应的媒体数据发送队列中,H.223 的复用层分别从各队列中取得数据复用后通过3G 网络发送到3G 手机上。对于从3G网络得到的数据,协议栈自下而上通过H.223 进行解复用到各逻辑信道的接收队列中,应用从各逻辑信道提取控制消息或媒体数据进行处理。
在设计3G-324M 协议栈音视频发送机制的时候,考虑到媒体流中视频的数据量较大,而电路域提供给视频的带宽只有40kbps 左右,所以如果不做适当处理,肯定会出现音频超前视频的情形。因此为音频数据流设计一个缓冲区,只有当音频缓冲区中音频包的个数大于一定域值的时候,才会发送音频数据,这样就最大限度的避免了可能出现的音视频不同步的问题。
在设计协议间媒体格式转换机制,特别是在将RTP 格式的H.263 视频数据转换成3G-324M 协议栈能处理的视频帧的时候,由于RTP 封装的H.263视频数据在图像开始码处字节对齐,具有填充位,如果不去掉填充位直接发送到3G 手机终端,则会出现马赛克,所以设计了一个H.263 视频帧的缓冲区,将连续两个图像开始码之间的视频帧缓冲起来,以去掉帧间的填充位。具体的处理流程是让程序扫描H.263格式的视频流缓冲区,每遇到图像开始码便将其之后的视频帧缓冲起来,缓冲区的大小动态分配,直到遇到下一个图像开始码,然后将两个图像开始码之间的视频数据去掉填充位后发送到3G-324M 协议栈。
3 网关的实现
在实现的时候,用到的硬件主要包括PC 机一台和E1 板卡一块,用到的软件主要包括Linux 操作系统和实验室已有的2G 语音网关平台(该平台主要提供应用程序接口、SIP 协议栈和E1 板卡驱动程序),在此基础上实现了3G 交互式视频网关,其中最主要的是实现了3G-324M 协议栈以及3G-324M 协议与SIP协议间媒体格式和控制消息的转换。
3.1 3G-324M协议栈的实现设计的主要数据结构包括:
H324M: 提供协议栈对外的统一接口,包括H324M::Int(),H324M::Demux(),H324M::Mutex()等。其中H324M::Init()接口初始化3G-324M 协议栈, H324M::Demux()接口解复用从B 信道收到的数据,H324M::Mutex()将音频、视频和控制消息复用后,发送到3G 手机终端。
H324MChannels: 音视频信道、控制信道和复用/解复用器等资源的容器,并通过回调的形式向上层传递消息。
AudioChannel: 音频信道,包含H223 适配层等资源,提供的接口包括AudioChannel::GetFrame(),AudioChannel::S-endFrame()。
VideoChannel: 视频信道,包含H223 适配层等资源,提供的接口包括VideoChannel::GetFrame(),VideoChannel::S-endFrame()。
ControlChannel: 控制信道,实现了CCSR、NSRP协议。
H223ALReceiver: H223 协议的适配层,负责对从3G 手机接收到的数据进行检错。
H223ALSender: H223 协议的适配层,负责对发发送到3G手机的数据进行适配并追加所计算的校验和。
H223Demuxer: H223 协议的复用层,负责解复用从3G 手机接收到的数据,并将解复用后的数据根据数据类型分别添加到音频、视频和控制消息接收队列中。
H223Muxer: H223 协议的复用层,将从IP 域一侧收到的音频、视频和控制消息复用到一个物理通道上,从3G 电路域一侧发送到3G 手机上。
3.2 网关工作流程。
网关的主要工作是在3G 域与IP 域之间进行控制消息和媒体格式的转换,主程序的设计首先进行3G-324M 协议栈等各种数据结构的初始化,然后在3G 域和IP 域两个通道同时监听数据的到达。如果从监听返回的时候没有数据到达,则意味着某个通道出错,此时进行退出处理;如果从监听返回是因为3G域通道有数据到达,则将收到的数据根据3G-324M协议解复用后进行格式转换发送到IP 域的通道;如果从监听返回是因为IP 域通道有数据到达,则转换格式后根据3G-324M 协议复用并发送到3G 域通道。在后两种情况下,进行完数据转发后,继续回到监听3G域通道和IP 域通道的状态。程序流程图如图5 所示。
图5 网关工作流程。
4 测试
联合中科院沈阳计算所网络与通信实验室的增值应用服务器在实际的3G 环境中对所实现的网关进行了测试。在测试用例中,3G 交互式视频网关被放在了台湾宏远电信的机房中,通过E1 板卡与交换机相连,并预先分配了一些测试号码,增值应用服务器放在了互联网的公网上。在台湾的测试人员通过3G 手机拨打预先分配的测试号码拨号到网关, 网关通过3G-324M 协议与3G 手机终端建立了视频会话后,发送SIP INVITE 消息与增值应用服务器建立一个SIP会话,增值应用服务器将音视频数据(在此测试用例中为一个3gp 格式的影音文件)发送到网关,网关将接收到的音视频数据转换格式后再发送到3G 手机,测试人员通过手机上的按键切换播放不同的影音文件,实现交互功能。测试数据如表1 所示,手机到网关的接通率在95%以上,接通时间控制在6 秒之内,手机端收到的音频声音清晰,视频流畅,音视频基本同步。
表1 测试数据
5 结语
本文在阐述3G 交互式视频网关关键技术的基础上,提出了该网关的一个具体的设计实现方法。该网关与增值应用服务器配合使用,可以用来在3G 通信网络中提供交互式多媒体增值应用服务,通过在实际环境中进行测试,该网关运行稳定,接通率高,对今后开发类似的系统具有借鉴的意义。