前言
由于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展與更新比PBX快,設(shè)備價(jià)格降幅大,,建立一個(gè)以Internet(或Intranet)為基礎(chǔ)的IP電話(huà)網(wǎng)絡(luò),以替代傳統(tǒng)電話(huà)設(shè)備系統(tǒng)成為企業(yè)的目標(biāo),。
局域網(wǎng)IP電話(huà)
局域網(wǎng)IP電話(huà)使用統(tǒng)一的網(wǎng)絡(luò)通信設(shè)備和布線(xiàn)來(lái)傳輸話(huà)音和數(shù)據(jù),。 在傳統(tǒng)的PBX (專(zhuān)用小交換機(jī))系統(tǒng)中,話(huà)音呼叫通過(guò)與辦公PBX連接的一系列標(biāo)準(zhǔn)話(huà)音線(xiàn)路進(jìn)入辦公室,,即通過(guò)一種專(zhuān)用設(shè)備在標(biāo)準(zhǔn)的電話(huà)配線(xiàn)上接收和疏導(dǎo)話(huà)音業(yè)務(wù)量,。然而在LAN電話(huà)話(huà)音網(wǎng)絡(luò)中,話(huà)音呼叫通過(guò)基于IP的PBX進(jìn)行接收和疏導(dǎo),,而這種IP PBX是與現(xiàn)有的數(shù)據(jù)網(wǎng)絡(luò)連接的,。IPPBX可以是一種獨(dú)立的解決方案,也可以分解為幾種分散的裝置,。具體功能框圖如圖1所示,。
圖1 局域網(wǎng)IP電話(huà)功能模塊圖
該IP電話(huà)的主要優(yōu)點(diǎn):
該IP電話(huà)的主要優(yōu)點(diǎn):
可方便的移動(dòng)和增加終端設(shè)備;
支持多媒體終端,;
有利于發(fā)展計(jì)算機(jī)電話(huà)集成技術(shù),;
硬件平臺(tái)
通常硬件的基本設(shè)計(jì)要求是:高密度,、低功耗和低成本。而VoIP的許多性能都對(duì)應(yīng)特定的應(yīng)用需求,,諸如:(1)系統(tǒng)分割,,包括分組數(shù)據(jù)包集合和路由;(2)定義產(chǎn)品功能的軟件性能,;(3)滿(mǎn)足高可用性的網(wǎng)絡(luò)管理能力。
LAN電話(huà)產(chǎn)品工作在純IP方式下,,所以話(huà)機(jī)在接入廣域網(wǎng)后,,在網(wǎng)絡(luò)管理方面應(yīng)該是兼容的。本方案的VoIP話(huà)機(jī)是一種網(wǎng)關(guān)下移的終端產(chǎn)品,,無(wú)需通過(guò)網(wǎng)關(guān)就可將此設(shè)備直接接入以太網(wǎng)中,,配置好相關(guān)的地址信息就可以使用。 它的開(kāi)發(fā)基于Atmel公司的AT75C220開(kāi)發(fā)板,。AT75C220是專(zhuān)為各種因特網(wǎng)應(yīng)用而設(shè)計(jì)的高性能處理器芯片,。它的核心部件-ARM7TDMI微處理器運(yùn)行能力為40MIPS,專(zhuān)門(mén)用于話(huà)音處理的OakDSPCore協(xié)處理器(圖2中的話(huà)音處理芯片),運(yùn)行能力可達(dá)60MIPS.兩者之間信息的交互采用高效的雙端口mailbox機(jī)制,。這就決定了AT75C220能綜合通用CPU的控制功能和專(zhuān)用CPU的信息處理功能,,提高了系統(tǒng)的集成度,同時(shí)ARM處理器的操作指令比較簡(jiǎn)單,,降低了開(kāi)發(fā)的復(fù)雜度,。
AT75C220開(kāi)發(fā)板除了具備用于連接計(jì)算機(jī)的標(biāo)準(zhǔn)串行接口和連接電話(huà)手柄的RJ11接口外,還有兩個(gè)標(biāo)準(zhǔn)RJ45以太網(wǎng)接口用于連接網(wǎng)守,。ARM7TDMI核心處理器控制整個(gè)VoIP話(huà)機(jī)的運(yùn)行,,并提供通用I/O接口用于連接撥號(hào)鍵盤(pán)、液晶顯示器和振鈴電路,。AT75C220的結(jié)構(gòu)框圖如圖2所示,。
圖2 AT75C220的結(jié)構(gòu)框圖
開(kāi)發(fā)板上裝有存儲(chǔ)應(yīng)用程序的閃存(flash)。計(jì)算機(jī)利用超級(jí)終端程序通過(guò)開(kāi)發(fā)板上的串行接口可以與AT75C220芯片進(jìn)行信息交互,,實(shí)現(xiàn)對(duì)flash的應(yīng)用程序編程和其它軟件管理功能,。開(kāi)發(fā)AT75C220應(yīng)用軟件的PC機(jī)必須啟動(dòng)運(yùn)行siap-mClinux操作系統(tǒng)。應(yīng)用程序開(kāi)發(fā)完畢后,,通過(guò)220software set提供的工具將包含應(yīng)用程序及操作系統(tǒng)內(nèi)核的img文件下載到220開(kāi)發(fā)板上的flash中,,最終完成系統(tǒng)的開(kāi)發(fā)。
VoIP話(huà)機(jī)的構(gòu)造如圖3所示,。其用戶(hù)接口部分與普通話(huà)機(jī)無(wú)異,,顯示器用來(lái)顯示相關(guān)的信息,如發(fā)起呼叫時(shí)所撥的號(hào)碼,、來(lái)電顯示等,。此外,,VoIP話(huà)機(jī)可以由串行口與個(gè)人數(shù)字助理(PDA)設(shè)備相連,實(shí)現(xiàn)軟件升級(jí),、自動(dòng)撥號(hào)等功能,。話(huà)音接口的功能是實(shí)現(xiàn)話(huà)音模擬信號(hào)與標(biāo)準(zhǔn)64Kbit/s PCM信號(hào)之間的相互轉(zhuǎn)換。網(wǎng)絡(luò)接口負(fù)責(zé)話(huà)音分組的發(fā)送和接收以及各種呼叫信令的交換,。VoIP話(huà)機(jī)通過(guò)RJ45插頭與局域網(wǎng)上的網(wǎng)守相連,。
圖3 IP話(huà)機(jī)構(gòu)造圖
軟件實(shí)現(xiàn)
該實(shí)現(xiàn)依賴(lài)于網(wǎng)絡(luò)協(xié)議棧和實(shí)時(shí)操作系統(tǒng)(RTOS)。多數(shù)應(yīng)用系統(tǒng)需要RTOS以便同時(shí)處理多個(gè)流程和呼叫,。 采用的RTOS應(yīng)具有以下特點(diǎn)以滿(mǎn)足通信協(xié)議的復(fù)雜性:系統(tǒng)內(nèi)核?。恢袛嗵幚頃r(shí)間短,;連續(xù)運(yùn)行時(shí)間長(zhǎng),;多個(gè)毫秒級(jí)或微秒級(jí)定時(shí)器的處理能力。ARM-mClinux是非常優(yōu)秀的嵌入式實(shí)時(shí)操作系統(tǒng),,它提供了多種用于實(shí)時(shí)系統(tǒng)開(kāi)發(fā),、調(diào)試、和運(yùn)行的功能,,如多任務(wù)機(jī)制,、內(nèi)核可裁剪、網(wǎng)絡(luò)功能,、實(shí)存儲(chǔ)器管理策略等,。同時(shí),Linux的內(nèi)核源代碼是完全公開(kāi)的,,這對(duì)降低開(kāi)發(fā)成本,、提高軟件開(kāi)發(fā)的復(fù)用度等方面無(wú)疑是十分有利的。 [page] 對(duì)于網(wǎng)絡(luò)協(xié)議棧,,本方案采用標(biāo)準(zhǔn)的H.323協(xié)議棧,,以便與公網(wǎng)進(jìn)行互連。從TCP/IP的分層觀點(diǎn)來(lái)看,,H.323是一個(gè)應(yīng)用層協(xié)議族,,它包含了適用于各種媒體通信和信令控制的協(xié)議,建立的基礎(chǔ)是TCP或者UDP協(xié)議,。根據(jù)實(shí)際的使用需求,,本文重點(diǎn)討論的協(xié)議有語(yǔ)音編碼方面的G.723.1、G.711等和呼叫控制信令H.225和H.245等,。在CPU的正常設(shè)計(jì)能力下,,系統(tǒng)所有的進(jìn)程將會(huì)阻塞在各自的消息隊(duì)列中,只有處于最低的IDLE進(jìn)程處于運(yùn)行狀態(tài),,消息隊(duì)列中消息總數(shù)處于比較低的數(shù)量水平,。增加進(jìn)程可能要增加共用的數(shù)據(jù)區(qū)和內(nèi)部消息,,相應(yīng)的還要引入復(fù)雜的管理機(jī)制。
基于上述軟件要求,,該VoIP話(huà)機(jī)要能與符合H.323標(biāo)準(zhǔn)的網(wǎng)關(guān)和網(wǎng)守互通,,并實(shí)現(xiàn)VoIP話(huà)機(jī)與VoIP話(huà)機(jī)及VoIP話(huà)機(jī)與網(wǎng)關(guān)所帶的普通話(huà)機(jī)之間的話(huà)音通信功能。此外,,VoIP話(huà)機(jī)還應(yīng)具備一定的錄音與重放能力,。
對(duì)于IP話(huà)機(jī)而言,主要軟件實(shí)現(xiàn)在話(huà)機(jī)和網(wǎng)守的通信以及話(huà)機(jī)之間的互通,,其呼叫流程如圖4.
圖4 H.323呼叫信令流程
上述過(guò)程的通道實(shí)現(xiàn)機(jī)制是TCP或UDP.IP話(huà)機(jī)在成功登錄到網(wǎng)守后,,其接續(xù)過(guò)程完全類(lèi)似于普通話(huà)機(jī)之間的接續(xù),摘機(jī)后向網(wǎng)守發(fā)“呼叫請(qǐng)求”(udp),,網(wǎng)守收到后發(fā)“是否運(yùn)行主叫撥號(hào)”(tcp),如果不允許的話(huà),,提示掛機(jī),;若允許的話(huà),主叫在收到撥號(hào)音后開(kāi)始撥號(hào),,向網(wǎng)守送“撥號(hào)信息”報(bào)文(tcp),,網(wǎng)守向主叫發(fā)送“被叫空閑信息”報(bào)文(tcp),然后是分別向主叫和被叫送回鈴音和振鈴音,。等待被叫摘機(jī)后,,被叫向網(wǎng)守送“被叫摘機(jī)”報(bào)文(udp),網(wǎng)守向被叫送“停止振鈴”(tcp),, 網(wǎng)守向主叫送“被叫摘機(jī)”報(bào)文(tcp),,進(jìn)入通話(huà)(udp)狀態(tài)。有關(guān)話(huà)音的處理要涉及到220話(huà)音處理模塊,。
網(wǎng)關(guān)向網(wǎng)守發(fā)送的報(bào)文:不管是高層用戶(hù)端向網(wǎng)守發(fā)送的登錄報(bào)文,,還是IP話(huà)機(jī)或交換機(jī)側(cè)向網(wǎng)守發(fā)送的呼叫處理報(bào)文,都會(huì)先放置在名為mqRecvBottom的消息隊(duì)列中,,然后根據(jù)報(bào)文所采用的傳送方式發(fā)往以下三個(gè)隊(duì)列:信令的TCP傳送_mqSendTCP;信令的UDP傳送_mqSendUDP;話(huà)音傳送_mqSendData(可以通過(guò)網(wǎng)守轉(zhuǎn)發(fā),,也可以直接在兩個(gè)網(wǎng)關(guān)之間發(fā)送),然后再通過(guò)socket發(fā)送出去,。
幾個(gè)關(guān)鍵問(wèn)題的解決
摘掛機(jī)檢測(cè)與號(hào)盤(pán)號(hào)碼接收
AT75C220提供若干用戶(hù)自定義的通用I/O接口,。只需通過(guò)一定的硬件連接和軟件編程,就可以實(shí)現(xiàn)摘掛機(jī)狀態(tài)的檢測(cè)與用戶(hù)所撥號(hào)碼的接收,。
來(lái)話(huà)振鈴
AT75C220內(nèi)部寄存器中有專(zhuān)門(mén)指示有無(wú)來(lái)話(huà)的比特位,。應(yīng)用軟件定期檢測(cè)該比特,一旦發(fā)現(xiàn)有來(lái)話(huà),,立即通過(guò)某一個(gè)事先編程確定的通用I/O口送出振鈴指示信號(hào),,該信號(hào)可作為振鈴電路的使能信號(hào),。
話(huà)音處理模塊
話(huà)音處理的功能均由ARM7TDMI控制OakDSPCore共同完成。
在進(jìn)行IP通話(huà)時(shí),,將模擬前端電路送來(lái)的64Kbit/s PCM數(shù)字話(huà)音信號(hào)進(jìn)行壓縮,,送至網(wǎng)絡(luò)接口模塊;同時(shí)將網(wǎng)絡(luò)接口模塊送來(lái)的壓縮話(huà)音信號(hào)進(jìn)行解壓,,形成64Kbit/s PCM數(shù)字話(huà)音信號(hào)送至模擬前端,。
通過(guò)對(duì)OakDSPCore的靈活編程,VoIP話(huà)機(jī)可以方便地實(shí)現(xiàn)語(yǔ)音留言的錄音和回放功能,。
在用戶(hù)從號(hào)盤(pán)撥號(hào)時(shí),,通過(guò)編程啟動(dòng)OakDSPCore的DTMF信號(hào)發(fā)生器功能,在用戶(hù)聽(tīng)筒里產(chǎn)生相應(yīng)的雙音多頻信號(hào),。如果需要,,該DTMF信號(hào)還可以象話(huà)音信號(hào)一樣經(jīng)壓縮編碼后發(fā)送出去。
話(huà)音壓縮和解壓采用G.723.1算法,。為了執(zhí)行有效的語(yǔ)音壓縮,,必須考慮很多重要的因素。首先,,當(dāng)所有通道都工作時(shí),,必須確保性能沒(méi)有任何下降。數(shù)據(jù)包必須是可配置的,,以確保最大的靈活性,。此外,本課題采用的G.723.1算法采用了話(huà)音激活檢測(cè)技術(shù),,VAD技術(shù)是自適應(yīng)增益控制的基礎(chǔ),,能進(jìn)一步實(shí)現(xiàn)帶寬壓縮功能,可以和自適應(yīng)噪音發(fā)生器配套在一起使用,。VAD技術(shù)使發(fā)送端能夠檢測(cè)本地發(fā)聲的間隙并在此期間不再發(fā)送完整的話(huà)音幀,,而代之以比特量更少的靜態(tài)插入描述幀,此幀僅含有解碼器輸入端所需產(chǎn)生噪音的參數(shù),,使接收端據(jù)此產(chǎn)生適當(dāng)?shù)谋尘霸胍?,從而讓通?huà)效果接近真實(shí)的條件,進(jìn)一步降低編碼速率,。VAD門(mén)限值的確定是準(zhǔn)確判斷有聲/無(wú)聲的關(guān)鍵因子,。比如長(zhǎng)時(shí)間的連續(xù)講話(huà)會(huì)升高背景噪聲的估計(jì)值,以及相應(yīng)的門(mén)限,,從而使得緊接著發(fā)生的低幅值的講話(huà)未被檢測(cè)到,。一個(gè)解決辦法是當(dāng)檢測(cè)到話(huà)音時(shí)改變低通濾波器的截止頻率,也就是在有聲/無(wú)聲時(shí)采用了不同的方法估計(jì)噪聲能量,。
話(huà)音質(zhì)量網(wǎng)絡(luò)延時(shí)和抖動(dòng)是影響語(yǔ)音質(zhì)量的關(guān)鍵因素,。打包也是影響時(shí)延的重要因素,,打包的實(shí)時(shí)性和打包效率是一對(duì)矛盾,聚集多少信息量再打包與帶寬緊密關(guān)聯(lián),,必須找到一個(gè)恰當(dāng)?shù)拈T(mén)限,。“抖動(dòng)”是分組交換的特有現(xiàn)象。消除抖動(dòng)的方法是接收方采用“抖動(dòng)緩存器”來(lái)彌補(bǔ)分組網(wǎng)絡(luò)的不可靠,。此緩存器可以是一個(gè)動(dòng)態(tài)隊(duì)列,,接收方根據(jù)RTP時(shí)間戳來(lái)確定網(wǎng)絡(luò)的流量狀況,從而適時(shí)的改變緩存器的大小,。具體實(shí)現(xiàn)時(shí)可建立一個(gè)環(huán)形隊(duì)列指針表來(lái)管理占用的緩存區(qū),。若要簡(jiǎn)單實(shí)現(xiàn)的話(huà)可以設(shè)定一個(gè)固定數(shù)目的數(shù)組,然后標(biāo)識(shí)幾個(gè)標(biāo)志位進(jìn)行管理控制即可,。此外,,回波抵消也是重要方面之一,好的回波對(duì)消器要具有較短的收斂時(shí)間和很小的殘留回波,,可靠地檢測(cè)重音,,且能處理背景噪聲和窄帶信號(hào)。本課題中運(yùn)用了DSP中的G.165算法最大限度的消除話(huà)音回聲,。
結(jié)語(yǔ)
局域網(wǎng)IP電話(huà)作為一種新興通信終端產(chǎn)品,有著很大的發(fā)展空間,,目前已出現(xiàn)多種樣品形式,,但總的趨勢(shì)是:硬件簡(jiǎn)單、集成度高,,軟件的實(shí)時(shí)性,、可靠性好,同時(shí)還需要支持多種業(yè)務(wù)類(lèi)型,。文中所提出的設(shè)計(jì)方案較好的把握了這一趨勢(shì),。該設(shè)備既能對(duì)用戶(hù)保持傳統(tǒng)電話(huà)的操作流程,又能與廣域網(wǎng)進(jìn)行無(wú)縫對(duì)接,,大大降低了通信成本,,具有很強(qiáng)的實(shí)用性。