2014/05/10 Tang
0 引 目
雖然VoIP技術出現只有幾年時間,但其發展速度卻十分驚人。從技術方面經歷了如下幾個階段:第一階段的H.323協議;第二階段的H.248/MGCP協議;第三階段的SIP/IMS。隨著數據業務的發展,VoIP技術逐漸成為Internet應用領域令人矚目的焦點。自3GPP在R5的IP多媒體子系統(IMS,IP Multimedia Subsys—tem中宣布以SIP為核心協議以來,ETSI和ITUT又在NGN體系中采用了IMs,使得SIP協議正在成為人們關注的熱點。VoIP未來的發展將會遵循IETF的SIP協議,因此,基于SIP協議的VoIP技術,在互聯網上應用相當廣泛。
l V0IP基本原理
VOIP(VOIP Over Internet Protocol)是建立在IP技術上的分組化、數字化傳輸技術,其基本原理是:通過語音壓縮算法對話音進行壓縮編碼處理,然后把這些語音數據按II)等相關協議進行打包,經過IP網絡把數據包傳輸到目的地,再把這些語音數據包串起來,經過解碼解壓處理后,恢復成原來的語音信號,從而達到由II)網絡傳送話音的目的。
2 SIP協議
會話初始化協議SIP最初是由IETF提出的一個標準,用來解決.. IP網上的信令控制。在IP網絡分層模型上,SIP是工作在應用層上的一個信令協議,可以用來建立、修改和終止有多方參與的多媒體會話進程。SIP協議的優勢還表現在:可擴展性、靈活性、互操作性、可重用性以及提供了一種可以將簡單的應用結合到復雜的服務中去的方法。SIP支持單播、多播會話,與網絡協議獨立,基于文本的協議,同時能支持多種協議,支持用戶的移動f生和移動業務?;赟IP的網絡主要包括以下幾個部分:用戶代理客戶、用戶代理服務器、代理服務器、重定向服務器、注冊服務器、定位服務器。
3 系統設計與實現
3.1 系統概述
本系統主要由SIP服務器、基于Radius(Remote Authentication Dia1 User)協議服務器、用戶注冊平臺以及Talk軟電話四部分組成。VOIP系統網絡拓撲結構在Talk系統的實現過程中,SIP服務器使用開源的OpenSER來完成。 OpenSER符合RF℃3261的協議規范且架構,工作在TCP和UDP之上的SIP協議,是一套高效能、易于修改組態成形的語音服務器系統。SIP服務器、Radius服務器及Apache、Mysql服務器均建立在同一機器上,此機器使用的操作系統為FreBSD,如圖1所示,把系統規劃為后端服務器層、前端應用程序服務器層、客戶端及管理者端的應用層。 首先,依照服務器環境的需求將服務器安裝在 FreBSD操作系統,并在此服務器上將依序安裝以下各個服務器或系統:openSER(后端SIP語音服務器);MySqlserver(后端數據庫服務器);Radius服務器用來做AAA認證;Apache Htttp Server(前端應用程序服務服務器);VoIP—Reg(前端網絡電話服務系統系統);兩個客戶端使用Talk。本文利用OpenSER來提供SIP的語音相關服務,MySq1 server用來記錄OpenSER提供服務時所產生的數據,作為賬務產生的依據。經由Apache Http Server下通過VoIP—Reg來提供用戶賬號申請服務,兩臺用來測試OpenSER運作情形的機器,均安裝上Talk客戶端。
3.2 構架服務器端
由于SIP服務器是架設在FreBSD操作系統之上的,還需要添加軟件編譯環境,用來開發本系統。在服務器上安裝好OpenSER后,通過對 0penSER的設定支持MySql數據庫,保持用戶的認證數據及記錄用戶位置。 Radius認證過程系統對用戶認證時主要涉及3個數據包,分別是:認證請求包(Access-Re—quest)、認證響應包(Access-Accept)和認證拒絕包(Access—Reject)。第一個是用戶認證時需要發給Radius服務器的數據包,后兩個是Radius服務器返回給Radius客戶端的認證通過或認證拒絕的響應數據包。本系統對用戶認證時采用兩次認證的方法。接下來創Radius數據庫,首先需要在連接到MySql數據庫系統,并在其中添加一個名為Radis此數據庫用來存放Radius服務器所使用的數據表。完成以上數據庫的安裝后,下面就通過對FreeRadius來配置,使其能使用MySql數據庫并通過MySql數據庫來作認證。最后在OpenSer添加對Radius的支持。通過上面的配置,就實現了OpenSER服務器與MySql、Radius服務器的融合,開始運行測試。要實現一個實用的軟件電話,要進行如下的過程:首先應該建立呼叫,然后針對一個點來實現話音的實時采集、處理、播放,并能進行可靠的傳送和接收;這樣PC和PC就可以通話;最后通話結束,拆除呼叫。呼叫的建立和拆除可以利用SIP協議的信令來完成。語音傳送采用專門的語音傳輸協議RTP,因為RTP是處UDP之上,RTP能自動處理分組丟失和交付失序問題。從而確保收到的數據以正確的次序提交給用戶。RTP還有一個伴隨協議TCP,該協議為會話提供了大量的可供交換的信息和關于會話質量的反饋信息?;诜謱釉O計的思想,將Talk軟電話分為如下部分:用戶界面層、核心接口層、功能層以及底層。
通過對本系統作了運行測試,如圖2所示,主要包括軟件配置,運行相關界面以及呼叫流程測試等。本系統能實現音頻、視頻通話,延時較小,連通成功率為94.41,與同類軟件相比,成功率高于 OICQ超級語音,略低于Skype??紤]到網絡連接的不穩定性因素,本系統已基本達到一個商業軟件的要求?;旧蠈崿F了預期的目的,重要的是完全實現了對SIP協議的操作。
4 結束語
本文在對SIP協議分析的基礎上,主要研究基于sIP協議的VoIP系統的設計和實現。參考了主要IP電話的相關協議,探討了SIP協議的工作原理和服務器的實現方式,基于開源的OpenSER構建了完整的VoIP系統,使之能夠與Mysq1、Radius構建的服務器整合。設計了客戶端軟件,對基于SIP協議的VoIP系統的設計和實現問題作了一些研究。特別對實現中的一些關鍵技術進行了研究和分析,最后對系統進行了一些測試,簡單介紹了其應用。SIP是VoIP領域的一種新協議,本文對其在實用方面的研究工作做了一些探索,對于促進VoIP技術的發展,特別是對于SIP這種下一代網絡軟交換體系的重要技術的廣泛應用具有一定意義。
40088 411661033743080@qq.com
中國廣東省深圳市南山區西麗九祥嶺工業區10棟3樓