基于下一代网络的VoIP语音网关设计与实现*
2014-03-08任定成
任定成
基于下一代网络的VoIP语音网关设计与实现*
任定成
(深圳职业技术学院 计算机工程学院,广东 深圳 518055)
采用网络处理器+DSP作为语音网关解决方案,基于下一代网络VoIP语音网关让语音、数据、视频在IP网络上传送,可以有效地降低企业生产成本.通过对该网关设备的电路设计和音频驱动的开发,选择小巧快速的SIP协议栈为开发对象,实现了通话呼叫功能并通过测试.
下一代网络;语音网关;VoIP;SIP
随着信息化网络技术的快速发展,传统电话PSTN模式已不能满足电信用户的需求,它不仅通话成本和建设成本高,且不易扩充,尤其是企业用户,为了满足业务需求,需要搭建电话网、Intranet(企业内网)和有线电视网.如何在建立单一的Intranet基础上同时搭建电话网和有线电视网是业内共同研究的课题.21世纪初,电信界提出了建立在IP电话网络基础上网关功能分解的思想,它以软交换为核心,早期的下一代网络(NGN)初现雏形[1].NGN是基于TDM的PSTN语音网络和基于IP/ATM的分组网络融合的产物,它使得在新一代网络上语音、视频、数据等综合业务成为了可能[2].VoIP网关技术是下一代网络技术发展的产物,它将标准的语音信号转换成经过压缩的数据包后,在数据网络而非传统的电话网(PSTN)上进行传输,将语音、数据、传真及多媒体等功能融合进统一的网络访问基础结构之中,不仅为终端用户和服务提供者节省大量的使用及实现费用,更因其提供灵活的使用、控制、可伸缩性和配置功能而易于为服务提供者和最终用户所接受[3].它的工作原理是把语音信号压缩封装后转换成IP包在Internet上传输,再通过VoIP终端上的语音处理芯片把IP信号解码转换成语音信号.使传统电话从单一信道独占模式演变成多用户共享宽带资源,企业用户在国际通话资费成本大大降低.所以VoIP网络电话得以快速发展,研究开发VoIP语音网关有重要意义.
1 语音网关的硬件设计及信号处理流程
1.1 系统硬件设计
根据用户需求不同,嵌入式的VoIP语音网关的硬件设计[4]有多种解决方案.台湾卓群科技(Crystal Media)公司推出的CM5000处理器,它是语音网关的核心处理器,语音网关的系统结构如图1所示[5].CM5000集成了RISC主处理器、125 MHz核心DSP,2个10/100基以太网MAC、存储器控制器和其它外设,DSP支持多个声音压缩模式(G.711、G.723.1、G.729A、G.729B),回音消除及多种普通电话技术.可以直接支持IP PHONE、单口、2口ATA[6].
语音网关接收从呼叫方发送过来的声音信号,通过一系列处理(信号放大、去干扰、转码、编码、压缩、封装、打包等),最后转换成在数字信号(IP包)在Internet网上传送,处理流程如图2所示,语音网关对从以太网上收到的语音包则采用完全相反的处理流程.
图1 基于下一代网络的语音网关硬件系统结构图
图2 语音网关处理接收信号流程图
根据三网融合网关设计项目要求,在完成语音网关功能的基础上还需要达到与网络互联和有线电视连接功能,故选择了网络处理器+DSP的网关这一解决方案.
1.2 语音信号电路设计
语音信号处理选择W681388芯片,它是语音网关硬件的核心部分,是华邦电子美国分公司日前推出最新开发的Pro-X系列芯片,它将单通道SLIC的功能与单通道可编程CODEC及单通道DC升压电路控制器集成在一个芯片上[7].
W681388利用3个晶体管分成直流和交流反馈电路,晶体管Q1和Q2为用户环路提供电压,晶体管Q3提供隔离,通过直流隔离电阻RVE、RTR和RVBT完成直流反馈回路,TIP和RING信号流不直接监测,由RCE结合输入电流正极获取信号值,再利用该信号值来控制外部晶体管,声音信号传送则在交流反馈电路中.
2 语音网关的软件设计
2.1 音频接口驱动程序实现
设备驱动程序是操作系统内核与机器硬件之间的接口,设备驱动程序为应用程序屏蔽掉了硬件的许多细节,在应用程序中把硬件认作是一个设备文件,应用程序通过操控设备文件来支配硬件[8].当终端加电启动之后,系统主程序Main.c会加载VoIP语音的处理模块程序,其中就包括W681388芯片驱动.在W681388芯片驱动程序中定义了语音驱动程序的全局变量、结构数据类型、编码寄存器和调制寄存器等.W681388芯片驱动程序部分全局变量定义(C文件)如下:
……
typedef struct W681388_TONE {
WORD Frequency;
WORD Amplitude;
WORD OnTime;
WORD OffTime;
}S_W681388_TONE; //定义数据类型:频率、振幅、在线、挂线
typedef struct DTMF_STRUCT_1388{
S_W681388_TONE DTMFLow;
S_W681388_TONE DTMFHigh;
}S_DTMF_STRUCT_1388; //定义DTMF低频和高频结构
……
2.2SIP协议栈的开发
在VoIP语音网关呼叫系统中,相同或不同商家的语音网关设备之间要完成呼叫建立过程需要互通互联,支持完成这一功能的是SIP协议栈,它位于语音软件系统结构中的应用层[9].目前,国内外涉及此类的开发人员基本上都在研究SIP协议栈的开发,有许多开源代码供技术人员参考使用,比较成熟且常用的有OPAL、VOCAL、sipX、ReSIProcate、oSIP等[10].OPAL有发展潜力,VOCAL比较完善,sipX兼容性好,ReSIProcate较稳定,oSIP小巧而快速.所以根据嵌入式环境开发的需要,在项目开发中选择oSIP进行研究开发.
在用开源oSIP开发时,使用C++语言编写,因oSIP封装较好,在开发过程中只需写入回调函数,就可以实现完整的功能操作.在IP网络中传送的语音信号IP包要通过SIP协议栈解封,首先要获取呼叫方封装IP包的SIP类型,进行比较匹配之后,再利用自有的SIP协议栈解封,处理函数如下:
class CSipBillingMeteringTime :
public CSipHeader
{
public:
CSipBillingMeteringTime(void);
~CSipBillingMeteringTime(void);
CSipBillingMeteringTime(const CStrData& data);
CStrData encode(void) const;
void encode(CStrData& data) const;
bool operator==(const CSipBillingMeteringTime& other) const;
CSipHeader* duplicate(void) const;
virtual bool compareSipHeader (CSipHeader* msg) const;
void decode(const CStrData& rseqstr);
const CStrData& getData() const { return m_data; }
private:
CStrData m_data;
};
2.3SIP协议功能测试
用SIP客户端X-lite(192.168.10.9)向连接在网关的IP电话机(192.168.10.10)发送SIP协议封装的字符串,被呼叫的IP电话的应用程序成功将字符串接收,同时向客户端返回一个相同内容的字符串,通过OmniPeek抓包软件窗口可以看到数据传送过程,如图3所示.
从图3可以得到,由CM5000处理器+W681388芯片开发设计的VoIP语音网关,2个客户端之间能通SIP协议栈进行呼叫请求、响应,建立和断开的完整呼叫过程.现场通话质量良好,达到了预期要实现的功能.
图3 SIP消息交互过程抓包图
[1] 李鹏飞,寿航涛.软交换网络向IMS演进方案和关键问题研究[J].信息通信,2011(4):31.
[2] 李梅生.下一代网络产业链的探讨[J].中国科技信息,2006(7):175.
[3] 曹玖新,张德运.VoIP 实现技术研究[J].计算机工程,2000,26:498.
[4] 张朝霞,王红玲,江玉乐.企业级VOIP网关的硬件设计与实现[J].现代电子技术,2006(8):88.
[5] VoIP CM5000 Introduction [M/CD].Crystal Media Inc Confidential,2008.
[6] IP电话方案选择及设计原则[EB/OL].http://cisco. chinaitlab.com/case/784951.html. [2009-05-24].
[7] W681388 user Manual preliminary V1.4 [M/CD].2007:13.
[8] 孙艳,叶梅,赵京伟.LINUX操作系统内核关键技术剖析与设备驱动程序的设计实现[C]//北京:第十届全国核电子学与核探测技术学术年会论文集,2001:439.
[9] Jonathab Rosenberg, Henning Schulzrinne, Gonzalo Camarillo, et al. SIP: session Initiation protocol[J]. IETF RFC 3261,2002-7:8-192.
[10] SIP 媒体会议[EB/OL].百度百科 baike.baidu.com. [2012-12-26].
Design and Implementation of VoIP Gateway Based on Next Generation Network
REN Dingcheng
(School of Computer Engineering, Shenzhen Polytechnic, Shenzhen, Guangdong 518055, China)
The paper introduces the voice, data and video transmission over IP networks by the VoIP voice gateway based on next generation network, which can effectively reduce the cost of production. With the network processor and DSP as VoIP voice gateway solution, we designed the gateway device circuit and developed audio driver. With small and fast Session Initiation Protocol stack for development, a call between two IP phone s is made, meeting the requirements of the test.
next generation network; voice gateways; VoIP; SIP
TP393.18
A
1672-0318(2014)03-0024-04
2013-10-09
*项目来源:广东省科技厅计划资助项目(2011B010200012)
任定成(1977-),男,江西丰城人,实验师,工程硕士,主要研究方向:计算机技术、网络安全、嵌入式软件开发.