2014/04/25 Tang
0 引言
VoIP(Voice over IP)是利用IP網絡實現語音通信的一種先進通信手段,與傳統的PBX電話系統相比, VolP價格低廉,可以大大降低運營商的成本;且網絡結構開放,不同廠商的設備之間可以實現互連互通。隨著嵌式技術的不斷發展,嵌人式系統快速向消費類電子產品領域擴展。嵌入式系統是指以應用為中心、以計算機技術為基礎、軟硬件可裁剪、適應應用環境對功能、實時性、可靠性、成本、體積、功耗等嚴格約束的專用計算機系統,具有專用性、可嵌人性、實時性、可靠議作為控制信令用于用戶交互信息;資源預留協議 性、移動性、分布式等特點。本文通過對VoIP系統的研究,綜合上述技術的優點,實現了基于PXA270(ARMIO)芯片的嵌入式終端和服務器,成本低,性能良好,語音通話質量較高,易于擴展,在中小型企業或小區內部替代傳統PBX電話終端,可以有效降低運營成本,并可以支持新的應用。
1 VolP體系結構和關鍵技術
如圖1的VoIP體系結構所示,H.323或SIP協議作為控制信令用于用戶交互信息;資源預留協議RVSP和實時傳輸控制協議RTCP主要用于提供服務質量QoS的保證;G.7xx和H.263為音頻壓縮編碼標準;經過壓縮的媒體數據經實時傳輸協議RTP進行封裝并傳輸;實時流協議RTSP主要用于語音信箱的控制;網絡傳輸層主要是TCP和UDP。
VoIP包括的關鍵技術有:
(1)信令技術。完成呼叫的建立,應答和交互用戶信息等,保證會話的順利進行?,F有網絡中主要有H.323和SIP等協議。
(2)媒體編碼技術。對媒體流進行壓縮等處理,使其適于在IP網絡中傳輸,主要包括語音壓縮編碼和視頻壓縮編碼以及靜音抑制技術,回聲消除技術等,如G.711和CELP等。
(3)實時傳輸技術。負責媒體流的實時傳輸,主要采用實時傳輸協議RTP以及實時傳輸控制協議RTCP,提供了用時間標簽來控制不同數據流同步的機制,也可以提供接收端到發送組的服務質量反饋。
(4)QoS保障技術。主要通過采用資源預留協議RSVP和實時傳輸控制協議RTCP來保證服務質量,避免網絡擁塞。
2 SIP協議
2.1 介紹
SIP(Session Initiation Protoco1)協議是由互聯網工程任務組IETF制定的應用層控制協議。它用來創建、修改以及終結一個或多個參與者參加的會話進程。與H.323協議相比,SIP協議采用分布式控制,具有簡單靈活和易于擴展等優點。SIP主要支持多媒體通信的以下信令功能:
(1)用戶定位:確定參與通信的終端(用戶)。
(2)用戶通信能力和協商:確定通信的媒體類型和參數。
(3)呼叫參與者管理:呼叫中參與者能夠引入其它用戶加入呼叫或取消到其它用戶的連接。
(4)呼叫處理和控制:包括呼叫重定向、呼叫轉移、咨詢呼叫、中止呼叫等。
2.2 基于SIP的網絡體系結構
SIP體系結構主要包括兩個SIP實體:用戶代理和SIP服務器;用戶代理是呼叫的終端系統,而SIP服務器是處理與呼叫相關信令的網絡設備。SIP網絡體系結構如圖2所示。
用戶代理UA(User Agent)是SIP電話終端系統,是與用戶進行交互的SIP實體。根據在會話中扮演的角色的不同,用戶代理可分為用戶代理客戶機(UAC)和用戶代理服務器(UAS)。用戶代理客戶機 (UAC)基于外部激勵產生SIP請求,發起呼叫請求;用戶代理服務器(UAS)接收呼叫請求,聯系用戶并且代表用戶返回SIP響應。SIP網絡有三種形式的服務器存在,分別是代理服務器,重定向服務器和注冊服務器,但SIP網絡中一個物理設備可以具有多種SIP服務器的邏輯功能。代理服務器(Proxy)是作為UAS和UAC的中間實體,將SIP請求路由到UAS,并將SIP響應返回到UAC。如果需要,代理服務器在轉發消息之前可解釋和重寫消息。根據是否保存呼叫信息,代理服務器可分為有狀態代理服務器和無狀態代理服務器。重定向服務器(Redirect Server)接收SP請求查詢被呼叫方的可替代的位置,返回一個SIP響應將被呼叫方的SIP地址映射成零個(如果沒有可知地址)或多個新地址。注冊服務器(Registrar)接受用戶代理SP地址的注冊,在呼叫時注冊服務器和網絡DNS服務器共同解決被呼叫用戶的定位問題。
3 嵌入式終端的設計與實現
嵌入式SIP終端是一個運行在嵌入式操作系統上的SIP用戶代理。主要包括SIP電話的注冊、呼叫、接聽、掛斷等功能。它直接與用戶交互,接收輸人信息,進行格式檢查,根據用戶的動作初始化SIP消息;同時得到本地語音媒體接口信息,形成SDP媒體描述載荷,完成UDP或TCP封裝。
3.1 硬件平臺
從功能角度來講,本嵌入式SIP電話終端的硬件平臺包括微處理器,存儲器,以太網接口,LCD顯示屏,鍵盤,音頻接口等模塊,如圖3所示。以微處理器為核心,通過處理器接口的擴展以及硬件平臺的支持,把外圍硬件單元整合到系統里,并通過CPLD等轉化器和硬件電路完成對設備的讀寫等操作。
出于對電話終端性能的考慮以及可擴展性的需要,采用基于Intel PXA270(ARM10)嵌入式處理器的開發板。PXA270系列嵌入式處理器基于ARMv5E的Xscale核心,最高頻率可達624MHz。其接口豐富,功耗低且體積較小,具有較高的性價比并完全滿足對SIP電話終端陛能的需要及支持后續開發的擴展。
3.2 軟件的設計與實現
SIP嵌入式客戶端的軟件部分主要分為三大模塊,主控制模塊,SIP信令模塊和音頻處理模塊。如圖4所示,其中SIP信令模塊和音頻處理模塊為較為獨立的模塊。兩者通過主控制模塊交互信息。
3.2.1 主控制模塊
主控制模塊完成軟件的初始化,呼叫的建立、修改和終止等功能。軟件的初始化包括SIP協議棧初始化、音頻編解碼初始化和RTP協議棧初始化等。初始化完成后,程序進入就緒狀態,等待用戶輸入命令的同時監聽SIP端口(默認5060)是否有SIP消息到來,根據消息的內容判斷由協議棧進行處理或是交給上層用戶。主控模塊可以與用戶直接交互,控制和管理其他各模塊的工作和模塊間的通信,并作為SIP用戶代理的運行平臺,負責整個系統的呼叫的發起、響應和結束等過程。
3.2.2 SIP信令模塊
該模塊主要是用于呼叫的建立、協商,修改和終止。SIP信令模塊建立在SIP協議?;A上,核心協議棧使用了GNU項目組的oSIP library。oSIP基于ANSI C編寫,短小精悍,具有模塊化、移植性好、可擴展性好等特點,適合嵌入式系統的移植。
3.2.3 音頻處理模塊
該模塊主要負責語音數據的采集與回放、編解碼、RTP的封裝以及R TP的語音傳輸。其中,音頻編解碼部分采用了基于CELP的SPEEX編碼。SPEEX具有較高的通話質量和較強的帶寬適應能力,并實現了噪聲消除,在對語音數據的壓縮比、失真度、還原能力處理上顯著優于其他的音頻編解碼器;SPEEX可以根據帶寬調整壓縮率,可以在絕大部分的網絡條件下正常工作,特別是在低比特率傳輸的情況下比同類編解碼器更具優勢。RTP/RTCP實時傳輸模塊利用了GNU項目組的ORTP協議棧,ORTP可以實現對語音流的R 封裝,通
過RTCP調整傳輸策略等來保證語音傳輸的實時性。
4 服務器的設計實現
4.1 服務器的軟件結構
服務器是整個VoIP系統的控制管理中心,它需要提供儲存用戶信息,接受用戶的注冊,對用戶的定位與地址解析等功能。本文基于SIP協議,實現了把SIP服務器中的注冊服務器、重定向服務器和代理服務器這三種邏輯功能合為一個實體的服務器。
如圖5所示,SIP服務器程序可以分為五個模塊,認證、代理、注冊、定位和系統配置模塊。模塊的功能如下:
(1)系統配置:配置系統必要信息,如服務器的IP地址、服務器名、接收發送端口、傳輸協議、數據庫路徑等。
(2)代理:它是服務器的核心,實現SIP協議中代理服務器的功能。作為SIP信令消息進入服務器系統的接入點,接收來自外部設備或其它模塊的各種 SIP消息,對接收到的消息進行分析處理以后,生成消息的響應并發送到其他模塊或者外部設備。
(3)注冊:實現SIP注冊服務器功能,同時把用戶注冊信息保存到用戶信息數據庫里。
(4)認證:實現對用戶的認證,防止用戶欺騙攻擊。
(5)定位:實現定位服務器功能。用于保存用戶注冊信息并為代理服務器提供下一跳地址。
4.2 服務器的軟件實現
服務器程序利用了GNU項目組的oSIP library作為SIP協議棧,服務器程序的主要流程如圖6所示。在主程序中首先讀取命令行參數,可以根據命令行參數來決定E l志文件的等級和程序的運行級別等。然后讀取服務器的系統配置文件,來配置服務器的IP地址、服務端口和NAT穿透等參數,初始化日志文件和日志記錄的等級等。接下來開始服務器核心的初始化,初始化SIP協議棧,用戶注冊數據庫,并對代理服務器線程和注冊線程進行初始化。隨后從靜態數據庫中讀取固定用戶的注冊信息,最后加載注冊服務器線程和代理服務器線程,服務器就此開始服務。
5 系統性能分析和測試
5.1 嵌入式客戶端測試
(1)功能測試。
通過SIP嵌入式電話兩端建立端到端的通話,測試信令交互的成功率。測試結果如表1所示。
根據表1結果可以看出,嵌入式終端可以完成正常的信令交互,且成功率較高。
(2)話音質量。
通過在局域網內建立通話進行測試,通話雙方聽到的聲音清晰、流暢、失真和延時較小。
5.2服務器測試
(1)功能測試。
使用研發的嵌入式SIP電話終端和開源軟件Linphone對服務器進行功能測試,均可以實現SIP終端的注冊、信令的轉發和處理等功能,SIP電話客戶端可以實現雙向通話,證明實現了服務器的基本功能。
(2)性能測試。
對于SIP電話服務器來說,性能測試主要就是指壓力測試,即對其最大并發呼叫處理能力的測試。采用開源的SIPp來模擬生成大量的SIP信令,并對其處理時間進行統計?;诓煌暮艚蓄l率,用SIPp對一臺配置為單CPU(P4 1.6GHz),內存為512MB的服務器分別進行了10次測試,測試數據如表2所示。
通過表2可以看到,SIP服務器軟件在一臺中等配置的主機上的呼叫成功率還是較高的,隨著呼叫頻率的增大,服務器的平均應答時間也隨著增大,這主要是由于主機的處理能力的限制,通過提高主機的處理能力或增加服務器的數目,組成服務器集群,可以大大提高系統的容量和并行處理速度。
6 結束語
基于VoIP的電話系統采用的分組交換技術在組網、管理等方面都比傳統的電路交換技術具有更好的優越性。本系統可以實現SIP電話的基本功能,具有良好的擴展性(如實現視頻會議系統)且部署方便,可以在企業或小區內利用現有寬帶建立電話系統,實現數據網和電話網的合二為一,降低運營和維護成本。
40088 411661033743080@qq.com
中國廣東省深圳市南山區西麗九祥嶺工業區10棟3樓