基于SIP協(xié)議的IP電話通信系統(tǒng)的組成原理
0 概述
IP電話以其通話費率低、方便集成和智能化等優(yōu)勢而得到了眾多消費者的極大認可,并因此而對原有固定電話運營者的長途電話和國際電話業(yè)務造成了巨大沖擊。因此,隨著以太網(wǎng)接口的直接入戶,開發(fā)出一種帶有RJ-45以太網(wǎng)接口并直接連入因特網(wǎng),從而使使用更加方便的IP電話非常需要。利用這種IP電話,用戶可以直接撥叫遠端的電話號碼,并通過關守(gate keeper)把所撥的電話號碼轉換成遠端IP電話的IP地址,從而建立通話連接。事實上,新型IP電話終端已經(jīng)可以直接把輸入語音信號數(shù)字化,并按照G.728或G.729等一定的語音壓縮編碼算法來完成對輸入語音信號的實時壓縮,使帶寬從64kbps降低到8kbps,從而大大提高了信道的利用率。IP電話終端通常遵循SIP(或者H.323)協(xié)議,并通過網(wǎng)關(gate way)實現(xiàn)IP電話和普通電話的互通。
1 IP電話系統(tǒng)組成
IP電話通信的基本原理是利用數(shù)字通信技術來對語音信號進行數(shù)字壓縮編碼處理,然后按TCP/IP標準進行打包,再經(jīng)過互聯(lián)網(wǎng)絡把數(shù)據(jù)包發(fā)送到接收地。同時在接收端將這些語音數(shù)據(jù)包串起來。再經(jīng)過解碼解壓處理,以使其恢復成原來的語音信號,從而達到由互聯(lián)網(wǎng)傳送語音的目的。IP電話的基本組成原理如圖1所示。
IP電話系統(tǒng)一般有*機(IPPhone)、網(wǎng)關(Gateway)、多點控制單元MCU(MultipointControl Unit)和網(wǎng)閘(Gatekeeper)等四個基本組件。其中*機是IP電話的客戶終端,多以硬件形式出現(xiàn),它可以直接連接在IP網(wǎng)上,以便進行實時的語音或多媒體通信;網(wǎng)關是通過IP網(wǎng)絡提供PHONE-TO-PHONE語音通信的關鍵設備。是IP網(wǎng)絡和PSTN/ISDN/PRX網(wǎng)絡接口設備;多點控制單位(MCU)的功能在于利用IP網(wǎng)絡實現(xiàn)多點通信,以使IP電話能夠支持諸如網(wǎng)絡會議這樣一對多的通信;至于網(wǎng)閘,有時也稱為網(wǎng)守或關守,主要用來提供對整個電話系統(tǒng)端點和呼叫的管理。
網(wǎng)閘的主要功能包括地址翻譯、呼叫接納控制、呼叫管理以及呼叫權限等。在H.323建議中,網(wǎng)閘是一個可選部分,但是對于實際運行的局域網(wǎng)IP電話系統(tǒng)來說,網(wǎng)閘則是一個重要部件。本系統(tǒng)中,網(wǎng)閘設立在IP地址的一個終端上。通過網(wǎng)閘可對所有終端用戶的姓名和IP地址進行統(tǒng)一登記和管理,并預先給每個終端用戶分配一個類似電話分機的虛擬電話號碼,以便其他終端用戶進行呼叫。主叫用戶無需知道被叫用戶終端的IP地址,只需要輸入其對應的虛擬電話號碼或真實姓名即可。
2 IP電話單機的硬件設計
IP電話分為接收方和呼叫方。發(fā)起通話請求的一端稱為呼叫方,另一端為接收方。根據(jù)不同的應用場景,呼叫方和接收方可以調(diào)換角色,也就是說,任意一方都可以發(fā)起通話請求,呼叫方發(fā)起通話請求并輸入接收方的IP地址,兩方通過網(wǎng)絡連接成功后,利用麥克風和聽筒就可以進行談話了。
IP通話的主要工作在*機單機部分。隨著現(xiàn)在ARM微處理器技術的高度發(fā)達和日趨成熟,設計中選擇了ARM9微處理器S3C2410和μC/0S-II搭建平臺來制作*單機部分。一般單機的基本工作框圖如圖2所示。
在圖2中,CPU內(nèi)核模塊是搭建一個帶CPU及存儲器的工作核心。其中的微處理器采用的就是三星公司的S3C2410(ARM920T),F(xiàn)lash采用的
是SST公司的SST39VFl60的NOR Flash,SDRAM則采用hynix公司的HY57V641620HG;以太網(wǎng)接口主要幫助CPU完成TCP/IP數(shù)據(jù)包的接收和發(fā)
送。本設計采用的RTL8019AS是一種全雙工的即插即用型以太網(wǎng)控制器,它兼容RTL8019控制軟件和NE2000 8bit或16bit的傳輸,并支持UTP、
AUI、BNC和PNP自動檢測模式,同時支持外接閃爍存儲器讀寫操作以及I/0口地址的完全解碼,此外,它還具有LED指示功能,其接口符合Ethernet2和E802.3、10Base5、lOBase2、10BaseT等標準。
系統(tǒng)中的顯示模塊采用一塊普通數(shù)顯LCD,主要用來完成電話號碼的顯示及一些本機工作狀態(tài)的顯示;鍵盤模塊和EEPROM主要提供網(wǎng)絡電
話機的撥號鍵盤,以完成撥號和電話機的功能設置。EEPROM主要用于系統(tǒng)參數(shù)的設置和存儲。語音模塊可選用飛利浦半導體公司的UDAl341TS音頻編解碼器。另外,系統(tǒng)中的上位機接口主要完成一些參數(shù)的設定和一些已經(jīng)被記錄的參數(shù)的讀取。
3 系統(tǒng)軟件設計
軟件方面的工作主要是驅動程序的編寫、任務的劃分和任務的編寫等三個方面。由于μC/OS-II基本上不提供API接口庫或者需要額外購買,因此,*中需要編寫的主要驅動軟件有包括TCP/IP、液晶驅動、EEPROM驅動、鍵盤驅動、IO驅動、USB驅動等程序。這些驅動程序的編寫一般都有固定的模式和套路。一般情況下,IP電話軟件應包括完成語音通話所需的所有功能。該軟件按功能可劃分為圖3所示的四部分。
3.1 呼叫處理模塊
呼叫處理模塊主要完成呼叫的建立與拆除功能。呼叫控制可采用SIP協(xié)議建立會話。呼叫建立過程通常是先由一個SIP終端向本地的代理服務器發(fā)出呼叫請求,本地的代理服務器則通過查詢本地的重定向服務器來查找下一個代理服務器的地址,并向其轉發(fā)呼叫請求。當下一個代理服務器收到呼叫請求后,首先通過定向服務器查找被叫所在網(wǎng)絡的代理服務器,然后向該代理服務器轉發(fā)呼叫請求。被叫所在網(wǎng)絡的代理服務器確定被叫終端后,再向被叫終端轉發(fā)呼叫請求。最后由被叫終端應答,從而實現(xiàn)連接。
3.2 語音編碼/解碼模塊
雖然語音采集所得到的PCM編碼數(shù)據(jù)能夠提供較好的長途通信語音質(zhì)量,但其速率往往過高,因而占用網(wǎng)絡帶寬資源過高。為此,一般都需要對語音數(shù)據(jù)進一步壓縮,以降低語音編碼的速率。這樣,相應的,在接收端也就需要同樣的解壓算法來恢復原始語音數(shù)據(jù)。編制這部分代碼可采用現(xiàn)在比較成熟的語音編解碼算法,并進行一定的改進,以提高語音通話質(zhì)量。
3.3 數(shù)據(jù)封包/拆包模塊
數(shù)據(jù)封包/拆包軟件模塊主要對壓縮編碼后的語音數(shù)據(jù)進行打包,包括添加包頭、時標和其他信息,以使其形成語音包。在接收時。則應進行相應的拆包,并提取語音壓縮包。
3.4 數(shù)據(jù)傳輸模塊
該模塊主要完成語音包的發(fā)送和接收。因為把音頻數(shù)據(jù)實時地傳輸給對方才是保證實時語音通信的關鍵。所以,在考慮可靠性和實時性方面,更應注重速度和實時性。故在選擇協(xié)議時,可采用UDP協(xié)議,并在編程時使用對應的數(shù)據(jù)報套接字。
4 結束語
IP電話通信系統(tǒng)是利用現(xiàn)有計算機網(wǎng)絡資源組成的電話通信系統(tǒng),它無需鋪設電話線和購置電話通信網(wǎng)絡設備,故可節(jié)省大量建設電話網(wǎng)絡的設備費、線路費和工程費用,可在不需要鋪設電話線的情況下,方便地實現(xiàn)電話通信,增加電話用戶,縮短安裝工程周期,提高計算機網(wǎng)絡資源的利用率,擴大電話的普及范圍,同時可加大信息傳遞量,因而具有良好的社會和經(jīng)濟效益。