杨悦梅1,陈平山2,冯冬芹3
(1.杭州科技职业技术学院信息工程学院,浙江杭州311402;2.杭州奕霖传感科技有限公司,浙江杭州310012;3.浙江大学控制科学与工程学系,浙江杭州310027)
摘要:IPPBX利用包交换原理,在以太网上实现传统PBX的功能,有效地解决了传统PBX的不足,具有功能更强大、服务更全面、成本更低廉等优势。在此介绍IPPBX典型组网模式,给出基于MPC8250的IPPBX硬件系统各模块系统设计原理和系统软件设计原理,并对主控模块的协议转换软件做了相关分析。测试表明,该设计能够达到200路的并发使用,语音质量优秀。
教育期刊网 http://www.jyqkw.com
关键词 :IPPBX;MPC8250;硬件系统;协议转换软件
中图分类号:TN911-34 文献标识码:A 文章编号:1004-373X(2015)12-0066-04
收稿日期:2014-12-18
基金项目:国家自然科学基金项目(61433006);浙江大学工业控制技术国家重点实验室开放课题(ICT1241)
0 引言
PBX(专用交换机)被广泛地运用在企业办公机构中,极大地提高了企业的办事效率。但传统的PBX 存在对新兴的CTI 和VoIP 支持不够、缺乏开放性和标准性、价格昂贵等缺点。随着Internet及IP的发展,IPPBX应运而生,其有效地解决传统PBX的不足。IPPBX基于TCP/IP 协议,利用包交换原理,在以太网上实现传统PBX 的功能。IPPBX 相比较传统PBX,具有功能更强大、服务更全面、成本更低廉、增值服务更加方便、互通性强、扩展性、通用性和实用性更强等优势。
IPPBX 其实就是一个小型的NGN 系统,它集NGN的各种部件功能于一体,如Soft Switch软交换、TG中继媒体网关、SG信令网关、MRS媒体资源服务器等。它可以接入普通PSTN 用户,也可以下挂传统PBX 或集团电话;可以接入SIP Phone,也可以接入H.323 终端。IPPBX 可向用户提供基本呼叫业务,国标补充业务,常用新业务以及智能业务、IP新业务、语音门户/智能呼叫中心等业务。IPPBX系统可以接入话务台,除支持基本呼叫业务及补充业务外,还可以进行用户维护和对用户计费。系统还能处理较复杂的呼叫分配和排队,提供一定的呼叫中心功能(不提供复杂的呼叫中心)。IPPBX提供详细的通话记录CDR,并支持向第三方开放话单接口,使之可以设计第三方的计费和其他应用软件。
1 IPPBX 典型组网模式
在通信网络中,IPPBX 作为软交换中心节点,实现节点之间的SIP/H.323协议互连互通。软交换中心节点通过MGCP/H.248协议与下级设备(AG/IAD)相连,并通过它与电话终端连接;IPPBX 通过环路中继和E1 接入PSTN,在E1接口上可以提供中国No.1信令或者PRI信令。典型的IPPBX组网图如图1所示。
图1中,局域网A中IPPBX01一方面管理本局域网内AG001,另一方面可以通过城域网来连接局域网B,并管理其中的AG002;而局域网C中IPPBX02管理本局域网内AG1。IPPBX01通过广域网与IPPBX02互通,采用SIP 或者H.323 作为呼叫控制的互通协议,完成AG001和AG002下用户以及AG1用户间的呼叫控制。
2 IPPBX 硬件系统设计
IPPBX硬件采用框架式结构,其系统结构如图2所示。其硬件系统由主控模块、资源管理模块、数字中继模块、模拟中继模块和背板以及电源板组成,所有的硬件模块都有背板连接,背板为高速连接板包含HW,FE和UART 总线。考虑采购材料单一性和软件平台的一致性,主控模块、资源管理模块、数字中继模块主芯片均采用了MPC8250。
模拟中继模块和数字中继模块分别提供模拟中继和数字中继的接口功能,把各种接口中的数据转化成TDM信号,业务数据通过TDM接口连接到主控模块上,主控模块的交换网片把数据都交换到资源管理模块上,资源管理模块对数据进行编解码等工作,并在主控模块的控制下打成RTP包,通过FE送回主控模块上,主控模块通过外网口FE送到广域网或者局域网中的IP-PHOTO终端。
2.1 主控模块
主控模块的组成如图3 所示,其主要完成呼叫控制、连接管理、资源管理、用户管理、话务台管理等业务功能;完成跟踪、统计、计费、告警、命令行等维护统计功能;完成SIP,H.323,AT0,MGCP,PRI,中国No.1 信令的Q.931 部分等多种协议的协议处理功能。内嵌的ARP(Address Resolution Protocol)模块在系统内部构建了一个ARP代理,用于响应资源管理模块、数字中继模块等的ARP请求。
主控模块提供Soft Switch 功能、GK 功能、计费功能,也对媒体控制协议进行处理,可以处理H.323,SIP,MGCP 协议,同时可以进行协议间的转换。同时GK 的数据库包括各个分机号和局域网IP地址的对应表。主控模块还提供二层交换和TDM交换功能。
2.2 资源管理模块
资源管理模块的组成如图4所示,其主要完成语音编解码、RTP 打包、会议等功能,从背板过来的TDM 信号经过网片IDT72V70840分发给M82510-14,进行语音编码后通过LOCALBUS 口送给资源管理模块主芯片MPC8250,在MPC8250 中打成RTP 包然后通过BCM5328芯片转发到背板。
2.3 数字中继模块
数字中继模块的组成如图5 所示,其主要完成E1接入功能,用于连接PSTN网,能够处理中国No.1信令,PRI信令,处理HDLC。
2.4 模拟中继模块
模拟中继模块的组成如图6所示,其主要完成AT0接入功能,用于连接PSTN。
3 IPPBX 软件系统设计
IPPBX最主要功能就是处理多通道多协议,其软件代码分布在数字中继模块、主控模块和资源管理模块上。各模块之间的业务流程和控制流程如图7所示。
上行的各种TDM数据流由接口板通过主控模块上的网片交换到资源管理模块上,资源管理模块上的编解码芯片M82510 将其转换为RTP/RTCP 包,再通过主控模块上的L2(BCM5328)交换芯片交换后进入外部IP网络。其间还由主控模块内部的FPGA 完成IP 地址的转换。下行媒体流则正好相反,先根据IP 数据包的类型和端口号进行地址转换,语音数据包由L2交换芯片交换到相应的资源管理模块上,资源管理模块将IP 语音包转换为TDM 数据流后,由网片交换到指定接口板的端口上。
上行控制流(如各种呼叫控制信息等)由各接口板通过串口或者FE(Fast Ethernet)接口发给主控模块,主控模块将其转换为MGCP/SIP/H.323 协议,并进行地址转换后发到IP 网络。下行控制流由IP 网络通过主控模块上的IP 接口进入主控模块,主控模块进行协议解析和处理后,转换为AT0、中国一号或者PRI信令消息发到接口板,或者又转换为MGCP协议,转发到外部IP网络。
3.1 主控模块系统软件
主控模块的操作系统采用Linux,便于移植开源IPPBX。主控模块的软件模块结构如图8所示。软件采用分层式结构,最底下为驱动层与硬件相关,有LinuxKERNEL 管理,KERNEL层上为业务模块和控制模块。其中协议转换层为业务管理层,汇聚各通道来的消息,对各种不同的协议标准调用相应的处理。
3.2 主控模块协议控制
协议内容由各消息体和消息头组成,消息头结构如下:
typedef struct tagMSGHEAD{
UCHAR8 ucSenderDidFlag:1;
/* 发送域主备板标志,0表示主板,1表示备板*/
UCHAR8 ucReceiverDidFlag:1;
/* 接收域主备板标志,0表示主板,1表示备板*/
UCHAR8 ucSenderUid:1;
/* 发送者CPU单元号,0表示主CPU */
UCHAR8 ucReceiverUid:1;
/* 接收者CPU单元号,0表示主CPU */
UCHAR8 ucReserve:4; /* 保留字段*/
UCHAR8 wMsgType;
/* 消息类型*/ /* 一个PID最多支持256种消息类型*/
USHORT16 wForwardBoardNo; /* 转发板板号*/
USHORT16 wSenderDid; /* 发送者域标识*/
USHORT16 wReceiverDid; /* 接收者域标识*/
USHORT16 dwSenderpid; /* 发送者模块号*/
USHORT16 dwReceiverPid; /* 接收者模块号*/
USHORT16 wMsgLen; /* 消息长度*/
USHORT16 wDataLen;
/* 数据长度,从wDataLen后开始计算*/
} IPPBX _MSGHEAD,*P IPPBX _MSGHEAD;
协议控制层通过判断消息头结构来判断属于何种协议,并根据消息头的内容做出相应的处理。下面是协议控制层主处理函数的部分代码。
Function Name :IPPBX _MsgProc
Description :主模块消息处理函数
Input :消息包指针
Output :无
Return : OS_OK 成功
OS_ERROR 失败
ULONG32 IPPBX_MsgProc(IPPBX_MSGHEAD *pstMsg)
{
ULONG32 dwRet = OS_OK;
switch( MSG_GET_TYPE(pstMsg))
{
case EN_PFORWARD_MGCP_MSG:
case EN_PFORWARD_H248_MSG:
pstPTMsg=(ST_PFORWARD_PROTOCOL_MSGHEAD-
ER *)MSG_GET_DATA(pstMsg);
/* 在SS 和TG 都是内部部件时才有可能走虚拟板间消息Baggio */
i(f (IfMeSSX()&& IfComponentTGX(pstPTMsg->
wComponentID))||
( IfMeTGX()&& IfComponentSSX(pstPTMsg->
wComponentID)))
{
i(f g_ucIfTgcpSendByFakeComponentMsg)
{
dwRet = PForward_MgcpH248FakeMsgProc
(pstMsg);
break;
}
}
else i(f (IfMeSSX()&& IfComponentMRX(pstPT-
Msg->wComponentID))||
( IfMeMRX()&& IfComponentSSX(pstPT-
Msg->wComponentID)))
{
i(f g_ucIfMrscpSendByFakeComponentMsg)
{
dwRet = PForward_MgcpH248FakeMsgProc
(pstMsg);
4 结语
IPPBX的发展为VoIP和现有PSTN网络的互联互通带来了广阔的前景。基于本文所给出的嵌入式IPPBX,经测试证明能够实现200个用户的同时呼叫,语音质量优秀,还可以实现级联,并能添加额外的增值业务如呼叫中心等,对于中小型企业的VoIP 通信建设和办公信息智能化建设具有重要意义。未来的IPPBX 将会提供更多丰富的业务包括:来电弹屏、客户信息记录、电话会议、IVR、免打扰、点击呼叫等,围绕着中小企业的应用需求,将有更多更便捷的应用会被开发和推广。
作者简介:杨悦梅(1972—),女,江苏泰州人,副教授,工学硕士。主要从事物联网及自动化相关专业的教学、科研和社会服务等方面的工作。
陈平山(1974—),男,工程师,工学硕士。主要从事嵌入式技术应用产品的研发工作。
冯冬芹(1968—),男,教授,博士生导师。研究方向为工业通信网络、工业控制系统智能仪器仪表等。
教育期刊网 http://www.jyqkw.com
参考文献
[1] 韩永远,蔡德林.嵌入式IPPBX 的研究与实现[J].通信技术,2010(8):15-17.
[2] 吕增元.中小企业软交换IPPBX 解决方案[J].甘肃科技,2013(11):17-19.
[3] 桂海源,张碧玲.软交换与NGN[M].北京:人民邮电出版社,2009.
[4] 毛京丽.宽带IP 网络[M].北京:人民邮电出版社,2010.
[5] 张登银,孙精科.VoIP技术分析与系统设计[M].北京:人民邮电出版社,2003.
[6] 韩永远,蔡德林,王古,等.嵌入式IPPBX的研究与实现[J].通信技术,2010(8):15-17.