基于嵌入式Linux的网络语音平台的设计与构建
采用IP网络进行语音通信是一种廉价且方便的通信方式。其目前的技术已经为用户间的通信提供清晰、稳定、低延时的话音质量,同时支持语音、数据、图像的传输和其他多媒体业务。特别对于许多大中型企业来说,由于在各省或不同国家设有机构,每月都会产生巨额的国际、国内长话通信费用,同时由于信息保密的要求,企业往往需要自己构建类似VPN这样的IP通话网络以降低通信成本。这样机构内部会先建立一个自己的电话网络,同时以VPN或其他方式通过IP网连接出去。整个系统可以有效降低企业的运营成本,提高工作的效率。本文所述的网络语音处理平台就是建立在此种方案上,主要通过VoIP网关+模拟话机的方式来实现。其中VoIP网关的主要功能是进行信令处理、以ITU-T提出的H.323协议或IETF提出的SIP协议通信、语音编解码处理等。
1 结构体系介绍
网络语音处理平台的基本工作原理是先将模拟语音信号转为数字信号,再对输入的语音数据编码进行压缩处理,然后在H.323或SIP协议框架的基础上,把这些语音数据分组打包,经过IP网络把数据包送至接收端,接收端再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,从而达到由互联网传送语音的目的。本文将分硬件和软件两部分来讲述网络语音平台的构建。
1.1 硬件部分
整个硬件部分如图1所示。
整个系统包括语音处理部分和网络数据处理两部分,其中语音处理部分又分为FXO和FXS接口电路。FXO接口用于连接PSTN,可模拟电话功能,提供环路关闭功能并检测来话振铃。FXS用于连接POT普通电话机,模拟电话局端交换的功能。
在VoIP网关中,FXS电路是在分组网络上建立去话呼叫与接收来话呼叫的基本接口。在用户端(CPE)应用中,FXS电路存在于网关中,可提供拨号音、电池电流与振铃电压的功能,并检测来自电话的环路关闭。由于该交换功能处于CPE级,因此不必与PSTN建立直接连接。FXS电路包括CODEC与SLIC(用户线路接口电路)两部分。CODEC由ADC与DAC构成。ADC将来自模拟电话的模拟信号转换为可通过VoIP网络传输的数字信号。DAC将数字信号转换为模拟电平,以驱动模拟电话。为了实现4kHz的音频带宽,ADC的采样速率通常约为8kHz。SLIC部分则模拟PSTN电压电平,通过用户线向共电式话机直流馈电,检测电话挂机还是摘机,并生成高达120V的振铃电压,同时提供过压保护(Overvoltage Protection)功能,以防止用户线上的电压冲击或过压而损坏设备。
SLIC芯片采用LEGERITY的LE7947C,在控制器的控制下能模仿电话局局端功能,能对馈电电流进行控制,并提供挂机传输功能,如在电话线路处在On-Hook状态(被呼叫方没摘机时)提供振铃信号。监视用户线通断状态,以检测话机的摘机、挂机、拨号脉冲等用户线信号,转送给控制设备,以表示用户的忙闲状态和接续要求。SLIC芯片控制的方式如表1所示。这些控制信号接到了IXP421的GPIO上,这样由IXP421发出控制信号。控制结果通过引脚的电平值来表示。
其中开路是指当线路出现故障时,模块在内部将TIP和RING线断开。激活是指模块收到摘机信号后(无论作为主叫还是振铃时),首先使模块重新激活,然后开始通话。通话结束后又设为待机状态。如需挂机传输功能,需在振铃1秒(状态值为1)后,将状态值设为3(即011),持续时间为4秒,在此期间模块可向话机传送呼叫方ID等信号。待机是指模块等待主叫摘机或作为被叫振铃等事件发生。
CODEC芯片采用LEGERITY的T8503。它是A-律/μ-律的PCM编码器,含有A/D和D/A单元,实现声音的数字化和重组,并能实现增益控制。CODEC芯片具有两个通道,每个通道均含有一个针对语音编码或解码的滤波器。两个通道的PCM数据通过PCM同步接口进行接收和发送,并由一对FSXn和FSRn控制两个通道的帧同步,确保在每个通话时隙进行数据传输。
FXO电路部分包括CODEC与数据存取装置(DAA)。将模拟语音转换为数字信号,随后再转换回来,同时负责数据的传输。DAA模拟(POTS)电话功能,其重要作用是去除高电压直流偏置,将PSTN环路关闭,从而仅传送来自PSTN的模拟交流信号。并具有极性保护电路,保证电话机与外线连接时能取得极性正确的直流工作电压。
linux相关文章:linux教程
评论