IP電話的發展已經歷了三代。第三代IP電話是Internet普及的產物,目前,以太網接口直接入戶已經越來越普遍,有必要開發一種帶有RJ-45以太網接口、直接連入Internet、使用更加方便的IP電話。用戶在打電話時,可以直接撥叫遠端的電話號碼,通過網閘把所撥的電話號碼轉換成遠端IP電話的IP地址,從而建立起通話連接。與第二代IP電話終端不同的是,第三代IP電話終端直接把輸入語音信號數字化,并按照一定的語音壓縮編碼標準算法(如G.728,G.729等)完成對輸入語音信號的實時壓縮,使帶寬從64kbps降低到8kbps甚至8kbps以下,大大提高了信道的利用率,IP電話終端遵循SIP(或者H.323)協議。第三代IP電話系統通過網關,可實現IP電話和普通電話的互通。
系統介紹
整體概述
IP電話系統有4個基本組件:*機(IP Phone),網關(Gateway),多點控制單元MCU(Multipoint Control Unit)和網閘(Gatekeeper)。
(1)*機:是一個IP電話客戶終端,多以硬件形式出現。它可以直接連接在IP剛上,實現實時的語音或多媒體通信。
(2)網關:是通過IP網絡提供PHONE-TO-PHONE語音通信的關鍵設備,是IP網絡和PSTN/ISDN/PBX網絡接口設備。
(3)網閘:又稱網守或關守,用來提供對整個電話系統端點和呼叫的管理功能。主要功能包括地址翻譯、呼叫接納控制、呼叫管理、呼叫權限。在H.323建議中,網閘是一個可選部分,但是對于實際運行的局域網IP電話系統來說,網閘是個重要部件。在本系統中,網閘設立在IP地址的一個終端上。網閘對所有終端用戶的姓名和IP地址進行統一登記和管理,并預先給每個終端用戶分配一個類似電話分機的虛擬電話號碼,以便其他終端用戶進行呼叫。主叫用戶無需知道被叫用戶終端的IP地址,只需輸人其對應的虛擬電話號碼或真實姓名即可。
(4)多點控制單位:它的功能在于利用IP網絡實現多點通信。使得IP電話能夠支持諸如網絡會議這樣一對多的通信應用。 單機的軟硬件設計
單機框圖
本文選擇了ARM9和μC/OS-II搭建的平臺來制作*單機部分。其單機的基本框圖如圖1所示。
?
?
?
單機硬件功能模塊
1.CPU內核模塊:其主要功能是搭建一個帶CPU及存儲器的工作核心。處理器采用三星的S3C2410(ARM920T),Flash采用的是SST公司的SST39VF160,SDRAM采用Hynix公司的HY57V641620HG。
2.以太網接口:幫助CPU完成TCP/IP數據包的接收和發送。這里采用的是RTL8019AS。RTL8019AS是一種全雙工即插即用的以太網控制器,它兼容RTL8019控制軟件和NE2000的8bit或16bit傳輸,支持UTP、AUI、BNC和PNP自動檢測模式,支持外接閃存讀寫操作,支持I/O口地址的完全解碼,具有LED指示功能。其接口符合Ethernet2和E802.3、10Base5、10Base2、10BaseT標準。
3.顯示模塊:采用一塊普通數顯LCD,主要用來完成電話號碼及一些本機工作狀態的顯示。
4.鍵盤模塊和EEPROM:主要提供*機的撥號鍵盤,完成撥號和電話機的功能設置。EEPROM主要完成參數的設置。
5.語音模塊:采用UDA1341TS音頻編解碼器。
6.上位機接口:完成一些參數的設定和一些已經被記錄的參數的讀取。
系統的軟件設計
軟件設計是基于μC/OS-II的,軟件方面的工作主要集中在驅動程序的編寫、任務的劃分、任務的編寫等。由于μC/OS-II不提供API接口庫或者需要額外購買,那么在需要設計的*機中,主要寫的驅動庫有:TCP/IP、液晶驅動、EEPROM驅動、鍵盤驅動、I/O驅動和USB驅動。這些驅動的編寫有固定的模式和套路。這里不多做介紹。
任務的劃分和優先級的安排如圖2所示。從圖2可以看出共分8個任務、3個任務鏈,其中待機任務鏈的優先級最高。8個任務分別是:*來電、*服務器、監視本機工作狀態和設置、返回握手信號、接聽電話、獲取對方IP、按IP與對方取得握手等。
?
?
IP電話軟件結構
IP電話軟件集成了完成語音通話所需的所有功能。該軟件按功能可以劃分為4部分。
1、呼叫處理模塊:主要完成呼叫的建立與拆除功能。呼叫控制采用SIP協議建立會話。呼叫建立過程如下:一個SIP終端首先向本地的代理服務器發出呼叫請求:本地的代理服務器通過查詢本地的重定向服務器找到下一個代理服務器的地址,并向其轉發呼叫請求:下一個代理服務器收到呼叫請求后,通過定向服務器找到被叫所在網絡的代理服務器,然后向該代理服務器轉發呼叫請求:被叫所在網絡的代理服務器確定被叫終端,并向被叫終端轉發呼叫請求:被叫終端應答,從而實現連接。
2、語音編/解碼模塊:語音采集得到的PCM編碼數據雖然能夠提供相當好的長途通信語音質量,但是其速率過高,占用網絡帶寬資源過多。為此需要對語音數據進一步壓縮,以降低語音編碼的速率。相應地,在接收端也需要同樣的解壓算法來恢復成原始語音數據。這部分代碼編制時主要采用比較成熟的語音編解碼算法,并進行一定的改進,以提高語音通話質量。
3、數據封包/拆包模塊:此部分代碼對壓縮編碼后的語音數據進行打包,添加包頭、時標和其他信息后形成語音包。在接收時,要進行相應的拆包,提取語音壓縮包。
4、數據傳輸模塊:該模塊主要完成語音包的發送和接收。把音頻數據實時地傳輸給對方是保證實時語音通信的關鍵。所以在考慮可靠性和實時性方面更注重速度和實時性。這里采用UDP協議。
結語
本文介紹的系統利用現有的計算機網絡資源組成電話通信系統,無需鋪設電話線路和電話通信網絡設備,節省了大量建設電話網絡的設備費、線路費和工程費等費用,可取得顯著的經濟效益。在不需要鋪設電話線路的情況下,方便地實現電話通信,增加電話用戶,縮短安裝工程周期。
?
評論
查看更多