前言
由于计算机网络技术发展与更新比PBX快,设备价格降幅大,建立一个以Internet(或Intranet)为基础的IP电话网络,以替代传统电话设备系统成为企业的目标。
局域网IP电话
局域网IP电话使用统一的网络通信设备和布线来传输话音和数据。 在传统的PBX (专用小交换机)系统中,话音呼叫通过与办公PBX连接的一系列标准话音线路进入办公室,即通过一种专用设备在标准的电话配线上接收和疏导话音业务量。然而在LAN电话话音网络中,话音呼叫通过基于IP的PBX进行接收和疏导,而这种IP PBX是与现有的数据网络连接的。IPPBX可以是一种独立的解决方案,也可以分解为几种分散的装置。具体功能框图如图1所示。
该IP电话的主要优点:
?可方便的移动和增加终端设备;
?支持多媒体终端;
?有利于发展计算机电话集成技术;
图1 局域网IP电话功能模块图
图2 AT75C220的结构框图
图3 IP话机构造图
硬件平台
通常硬件的基本设计要求是:高密度、低功耗和低成本。而VoIP的许多性能都对应特定的应用需求,诸如:(1)系统分割,包括分组数据包集合和路由;(2)定义产品功能的软件性能;(3)满足高可用性的网络管理能力。
LAN电话产品工作在纯IP方式下,所以话机在接入广域网后,在网络管理方面应该是兼容的。本方案的VoIP话机是一种网关下移的终端产品,无需通过网关就可将此设备直接接入以太网中,配置好相关的地址信息就可以使用。 它的开发基于Atmel公司的AT75C220开发板。AT75C220是专为各种因特网应用而设计的高性能处理器芯片。它的核心部件—ARM7TDMI微处理器运行能力为40MIPS,专门用于话音处理的OakDSPCore协处理器(图2中的话音处理芯片),运行能力可达60MIPS。两者之间信息的交互采用高效的双端口mailbox机制。这就决定了AT75C220能综合通用CPU的控制功能和专用CPU的信息处理功能,提高了系统的集成度,同时ARM处理器的操作指令比较简单,降低了开发的复杂度。
AT75C220开发板除了具备用于连接计算机的标准串行接口和连接电话手柄的RJ11接口外,还有两个标准RJ45以太网接口用于连接网守。ARM7TDMI核心处理器控制整个VoIP话机的运行,并提供通用I/O接口用于连接拨号键盘、液晶显示器和振铃电路。AT75C220的结构框图如图2所示。
AT75C220开发板上装有存储应用程序的闪存(flash)。计算机利用超级终端程序通过开发板上的串行接口可以与AT75C220芯片进行信息交互,实现对flash的应用程序编程和其它软件管理功能。开发AT75C220应用软件的PC机必须启动运行siap-mClinux操作系统。应用程序开发完毕后,通过220software set提供的工具将包含应用程序及操作系统内核的img文件下载到220开发板上的flash中,最终完成系统的开发。
VoIP话机的构造如图3所示。其用户接口部分与普通话机无异,显示器用来显示相关的信息,如发起呼叫时所拨的号码、来电显示等。此外,VoIP话机可以由串行口与个人数字助理(PDA)设备相连,实现软件升级、自动拨号等功能。话音接口的功能是实现话音模拟信号与标准64Kbit/s PCM信号之间的相互转换。网络接口负责话音分组的发送和接收以及各种呼叫信令的交换。VoIP话机通过RJ45插头与局域网上的网守相连。
图4 H.323呼叫信令流程
软件实现
该实现依赖于网络协议栈和实时操作系统(RTOS)。多数应用系统需要RTOS以便同时处理多个流程和呼叫。 采用的RTOS应具有以下特点以满足通信协议的复杂性:系统内核小;中断处理时间短;连续运行时间长;多个毫秒级或微秒级定时器的处理能力。ARM-mClinux是非常优秀的嵌入式实时操作系统,它提供了多种用于实时系统开发、调试、和运行的功能,如多任务机制、内核可裁剪、网络功能、实存储器管理策略等。同时,Linux的内核源代码是完全公开的,这对降低开发成本、提高软件开发的复用度等方面无疑是十分有利的。
对于网络协议栈,本方案采用标准的H.323协议栈,以便与公网进行互连。从TCP/IP的分层观点来看,H.323是一个应用层协议族,它包含了适用于各种媒体通信和信令控制的协议,建立的基础是TCP或者UDP协议。根据实际的使用需求,本文重点讨论的协议有语音编码方面的G.723.1、G.711等和呼叫控制信令H.225和H.245等。在CPU的正常设计能力下,系统所有的进程将会阻塞在各自的消息队列中,只有处于最低的IDLE进程处于运行状态,消息队列中消息总数处于比较低的数量水平。增加进程可能要增加共用的数据区和内部消息,相应的还要引入复杂的管理机制。
基于上述软件要求,该VoIP话机要能与符合H.323标准的网关和网守互通,并实现VoIP话机与VoIP话机及VoIP话机与网关所带的普通话机之间的话音通信功能。此外,VoIP话机还应具备一定的录音与重放能力。
对于IP话机而言,主要软件实现在话机和网守的通信以及话机之间的互通,其呼叫流程如图4。
上述过程的通道实现机制是TCP或UDP。IP话机在成功登录到网守后,其接续过程完全类似于普通话机之间的接续,摘机后向网守发“呼叫请求”(udp),网守收到后发“是否运行主叫拨号”(tcp),如果不允许的话,提示挂机;若允许的话,主叫在收到拨号音后开始拨号,向网守送“拨号信息”报文(tcp),网守向主叫发送“被叫空闲信息”报文(tcp),然后是分别向主叫和被叫送回铃音和振铃音。等待被叫摘机后,被叫向网守送“被叫摘机”报文(udp),网守向被叫送“停止振铃”(tcp), 网守向主叫送“被叫摘机”报文(tcp),进入通话(udp)状态。有关话音的处理要涉及到220话音处理模块。
网关向网守发送的报文:不管是高层用户端向网守发送的登录报文,还是IP话机或交换机侧向网守发送的呼叫处理报文,都会先放置在名为mqRecvBottom的消息队列中,然后根据报文所采用的传送方式发往以下三个队列:信令的TCP传送_mqSendTCP;信令的UDP传送_mqSendUDP;话音传送_mqSendData(可以通过网守转发,也可以直接在两个网关之间发送),然后再通过socket发送出去。
几个关键问题的解决
摘挂机检测与号盘号码接收
AT75C220提供若干用户自定义的通用I/O接口。只需通过一定的硬件连接和软件编程,就可以实现摘挂机状态的检测与用户所拨号码的接收。
来话振铃
AT75C220内部寄存器中有专门指示有无来话的比特位。应用软件定期检测该比特,一旦发现有来话,立即通过某一个事先编程确定的通用I/O口送出振铃指示信号,该信号可作为振铃电路的使能信号。
话音处理模块
话音处理的功能均由ARM7TDMI控制OakDSPCore共同完成。
在进行IP通话时,将模拟前端电路送来的64Kbit/s PCM数字话音信号进行压缩,送至网络接口模块;同时将网络接口模块送来的压缩话音信号进行解压,形成64Kbit/s PCM数字话音信号送至模拟前端。
通过对OakDSPCore的灵活编程,VoIP话机可以方便地实现语音留言的录音和回放功能。
在用户从号盘拨号时,通过编程启动OakDSPCore的DTMF信号发生器功能,在用户听筒里产生相应的双音多频信号。如果需要,该DTMF信号还可以象话音信号一样经压缩编码后发送出去。
话音压缩和解压采用G.723.1算法。为了执行有效的语音压缩,必须考虑很多重要的因素。首先,当所有通道都工作时,必须确保性能没有任何下降。数据包必须是可配置的,以确保最大的灵活性。此外,本课题采用的G.723.1算法采用了话音激活检测技术,VAD技术是自适应增益控制的基础,能进一步实现带宽压缩功能,可以和自适应噪音发生器配套在一起使用。VAD技术使发送端能够检测本地发声的间隙并在此期间不再发送完整的话音帧,而代之以比特量更少的静态插入描述帧,此帧仅含有解码器输入端所需产生噪音的参数,使接收端据此产生适当的背景噪音,从而让通话效果接近真实的条件,进一步降低编码速率。VAD门限值的确定是准确判断有声/无声的关键因子。比如长时间的连续讲话会升高背景噪声的估计值,以及相应的门限,从而使得紧接着发生的低幅值的讲话未被检测到。一个解决办法是当检测到话音时改变低通滤波器的截止频率,也就是在有声/无声时采用了不同的方法估计噪声能量。
话音质量
网络延时和抖动是影响语音质量的关键因素。打包也是影响时延的重要因素,打包的实时性和打包效率是一对矛盾,聚集多少信息量再打包与带宽紧密关联,必须找到一个恰当的门限。“抖动”是分组交换的特有现象。消除抖动的方法是接收方采用“抖动缓存器"来弥补分组网络的不可靠。此缓存器可以是一个动态队列,接收方根据RTP时间戳来确定网络的流量状况,从而适时的改变缓存器的大小。具体实现时可建立一个环形队列指针表来管理占用的缓存区。若要简单实现的话可以设定一个固定数目的数组,然后标识几个标志位进行管理控制即可。此外,回波抵消也是重要方面之一,好的回波对消器要具有较短的收敛时间和很小的残留回波,可靠地检测重音,且能处理背景噪声和窄带信号。本课题中运用了DSP中的G.165算法最大限度的消除话音回声。
结语
局域网IP电话作为一种新兴通信终端产品,有着很大的发展空间,目前已出现多种样品形式,但总的趋势是:硬件简单、集成度高,软件的实时性、可靠性好,同时还需要支持多种业务类型。文中所提出的设计方案较好的把握了这一趋势。该设备既能对用户保持传统电话的操作流程,又能与广域网进行无缝对接,大大降低了通信成本,具有很强的实用性。
评论
查看更多