基于嵌入式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教程
評論