摘 要:隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及以及計(jì)算機(jī)技術(shù)、通信技術(shù)的不斷發(fā)展,基于計(jì)算機(jī)網(wǎng)絡(luò)的VOIP技術(shù)正悄然改變著我們的日常生活。VOIP技術(shù)以其安全、高效、節(jié)省開支的特點(diǎn),提供比傳統(tǒng)電話更全面和優(yōu)質(zhì)的服務(wù)。SIP協(xié)議充分借鑒了超文本傳輸協(xié)議(HTTP)、簡單郵件傳送協(xié)議(SMTP)這兩個互聯(lián)網(wǎng)上最成功的應(yīng)用層協(xié)議,繼承了互聯(lián)網(wǎng)協(xié)議簡單、開放、靈活等特點(diǎn)。因此,研究基于SIP協(xié)議的VOIP會議系統(tǒng)具有極大的應(yīng)用價值。
關(guān)鍵詞:VoIP;SIP;語音會議
中圖分類號:TN919.2
飛速發(fā)展的互聯(lián)網(wǎng),給人們帶來了快捷的傳輸方式,隨著信息化進(jìn)程的推進(jìn),人們在享受互聯(lián)網(wǎng)提供的現(xiàn)有服務(wù)的同時,又不斷產(chǎn)生獲取新的服務(wù)的渴求。最近一個時期,人們對網(wǎng)絡(luò)語音會議的需求呼聲越來越高,特別是企事業(yè)單位,急切希望盡快實(shí)現(xiàn)在互聯(lián)網(wǎng)上撥打電話,召開語音會議,本旨在根據(jù)這一需求,通過VOIP技術(shù)和SIP協(xié)議,研究設(shè)計(jì)出了一種為用戶提供方便快捷、經(jīng)濟(jì)實(shí)惠和完美服務(wù)的網(wǎng)絡(luò)語音會議系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了多個客戶端撥入同一個會議室進(jìn)行語音會議;支持全雙工、實(shí)時語音傳輸;支持多個會議室同時在線,且每個會議室之間互不影響;支持超級控制模式,呼叫特權(quán)號碼后可以向服務(wù)器當(dāng)前在線的所有普通會議室進(jìn)行語音廣播。[1]
1 系統(tǒng)描述
本系統(tǒng)采用SIP/SDP協(xié)議對VoIP呼叫進(jìn)行控制,采用業(yè)界標(biāo)準(zhǔn)的iLBC/speex/G7xx等音頻編碼標(biāo)準(zhǔn)進(jìn)行語音壓縮,采用RTP/RTCP協(xié)議進(jìn)行打包傳輸,整個應(yīng)用層協(xié)議棧在標(biāo)準(zhǔn)UDP/IP協(xié)議棧之上承載,VOIP會議系統(tǒng)協(xié)議棧如圖1所示。
圖1 VOIP會議系統(tǒng)協(xié)議棧
1.1 SIP協(xié)議
SIP協(xié)議是一種在IP網(wǎng)絡(luò)上進(jìn)行多媒體通信的應(yīng)用層控制協(xié)議,它被用來創(chuàng)建、修改、和終結(jié)一個或多個參加者參加的會話進(jìn)程。SIP協(xié)議可用于發(fā)起會話,也可以用于邀請成員加入已經(jīng)用其它方式建立的會話。SIP協(xié)議基于文本編解碼,采用事務(wù)機(jī)制,每一個請求觸發(fā)Server的操作方法,請求和響應(yīng)構(gòu)成一個事務(wù),事務(wù)間彼此獨(dú)立。SIP協(xié)議獨(dú)立于底層傳輸協(xié)議:SIP協(xié)議承載在IP網(wǎng),網(wǎng)絡(luò)層協(xié)議為IP,傳輸層協(xié)議可用TCP或UDP,推薦首選UDP。SIP協(xié)議的子協(xié)議SDP協(xié)議是傳送會話信息的協(xié)議,包括會話的地址、時間、媒體和建立等信息,它定義了會話描述的統(tǒng)一格式[2]。
按邏輯功能區(qū)分,SIP系統(tǒng)由4種元素組成:用戶代理、代理服務(wù)器、重定向服務(wù)器以及注冊服務(wù)器。以上幾種服務(wù)器可共存于一個設(shè)備,也可以分布在不同的物理實(shí)體中。SIP協(xié)議工作流程示意圖如圖2所示。[3]
圖2 SIP協(xié)議工作流程示意圖
(1)SIP用戶代理向SIP代理服務(wù)器發(fā)送呼叫建立請求(INTIVE)[4];(2)SIP代理服務(wù)器向重定向服務(wù)器發(fā)送呼叫建立請求;(3)重定向服務(wù)器返回重定向消息;(4)SIP代理服務(wù)器向重定向服務(wù)器指定的SIP代理服務(wù)器發(fā)送呼叫建立請求;(5)被請求的SIP代理服務(wù)器使用非SIP協(xié)議到定位服務(wù)器查詢被叫位置;(6)定位服務(wù)器通過用非SIP協(xié)議流返回被叫位置(被叫SIP代理服務(wù)器);(7)被請求的SIP代理服務(wù)器向被叫SIP代理服務(wù)器發(fā)送呼叫建立請求;(8)被叫SIP代理服務(wù)器向SIP用戶代理(被叫)發(fā)呼叫建立請求(被叫振鈴或顯示);(9)被叫用戶代理向被叫SIP用戶代理服務(wù)器發(fā)同意或拒絕;(10)被叫用戶代理服務(wù)器向主叫代理服務(wù)器所請求的代理服務(wù)器發(fā)同意或拒絕;(11)主叫代理服務(wù)器所請求的代理服務(wù)器向主叫代理服務(wù)器發(fā)同意或拒絕;(12)主叫代理服務(wù)器向主叫SIP用戶代理指示被叫是否同意呼叫請求。
1.2 實(shí)時傳輸協(xié)議
實(shí)時傳輸技術(shù)主要包含兩個相關(guān)的協(xié)議:RTP協(xié)議和RTCP協(xié)議。
(1)RTP協(xié)議。實(shí)時傳輸協(xié)議RTP(Real-time Transport Protocol)用于傳送實(shí)時數(shù)據(jù),如語音和圖像數(shù)據(jù)。本身不提供任何保證實(shí)時傳送數(shù)據(jù)和服務(wù)質(zhì)量的能力,而是通過提供符合類型指示、序列號、時間戳、數(shù)據(jù)源標(biāo)識等信息,使接收端能根據(jù)這些信息來重新恢復(fù)正確的數(shù)據(jù)流。
(2)RTCP協(xié)議。實(shí)時傳輸控制協(xié)議RTCP(Real-time Transport Control Protocol)是RTP協(xié)議中的控制功能協(xié)議,它單獨(dú)運(yùn)行在底層傳輸層協(xié)議(如UDP)上。RTCP通過采用與RTP相同的分發(fā)機(jī)制,向會話中的所有成員周期性地發(fā)送控制信息,應(yīng)用程序通過接收這些數(shù)據(jù),從中獲取會話參與者的相關(guān)資料,以及網(wǎng)絡(luò)狀況、分組丟失概率等反饋信息,從而能夠?qū)Ψ?wù)質(zhì)量進(jìn)行控制或者對網(wǎng)絡(luò)狀況進(jìn)行診斷,并能夠?qū)W(wǎng)絡(luò)擁塞進(jìn)行有效的控制。
RTCP報文共有5類:SR(發(fā)送者報告:用于發(fā)送和接收活動源的統(tǒng)計(jì)信息)、RR(接收者報告:用于接收非活動站的統(tǒng)計(jì)信息)、SDES(源描述:用于報告和站點(diǎn)相關(guān)的信息)、BYE(離開申明:用于報告站點(diǎn)離開系統(tǒng))、APP(應(yīng)用)[5]。
本文采用的RTP包協(xié)議格式如圖3所示。
圖3 RTP包協(xié)議格式示意圖
1.3 音頻編解碼
為了保障系統(tǒng)實(shí)現(xiàn)后的通用性,可擴(kuò)展性和可繼承性,音頻編解碼采用了業(yè)界標(biāo)準(zhǔn)的編解碼格式,同時支持多種音頻編解碼方式。本系統(tǒng)支持的音頻編解碼方式如表1所示[6]。
表1 本系統(tǒng)支持的音頻編解碼
格式算法采樣率kHz比特率kbps周期ms固定碼率動態(tài)碼率立體聲
GSM-HRVSELP85.625√╳╳
GSM-FRRPE-LTP81320/30√╳╳
GSM-EFRACELP812.220/30√╳╳
iLBCBlock Independent LPC813.33/15.220/30√╳╳
SpeexCELP8/16/32/482.15~24.6(窄帶)
4~44.2(寬帶)30(窄帶)
/34(寬帶)√√√
G.711companding A-law or μ-law,PCM,Lossy86420√╳╳
G.711.1MDCT,A-law,μ-law,Lossy8/1664/80/9611.875√√╳
G.726ADPCM,Lossy816/24/32/4020√╳╳
2 系統(tǒng)實(shí)現(xiàn)
本VoIP會議系統(tǒng)基于C/S架構(gòu)實(shí)現(xiàn),由3部分組成:VoIP呼叫控制服務(wù)器SER(SIP Express Router)、VoIP多媒體服務(wù)器SEMS(SIP Express Media Server)和客戶端,如圖4所示。
圖4 VoIP會議室系統(tǒng)體系架構(gòu)
會議室1中的客戶端、會議室2中的客戶端、超級用戶客戶端、SER和SEMS通過路由器組成一個局域網(wǎng),通過SER的配置文件配置區(qū)分會議室1、會議室2和超級用戶的呼叫號碼??蛻舳送ㄟ^呼叫不同的號碼登錄不同的會議室。會議室1中的所有客戶端呼叫的SIP地址為
2.1 呼叫控制服務(wù)器SER
呼叫控制服務(wù)器SER是基于SIP協(xié)議(RFC2543-bis標(biāo)準(zhǔn))的VoIP呼叫控制服務(wù)器,它集成了代理服務(wù)器、注冊服務(wù)器和重定向服務(wù)器的大部分功能,它主要為VOIP通信提供用戶跟蹤、VoIP握手、CPL、即時消息、IMP、2G網(wǎng)關(guān)、呼叫控制、會議室呼叫號碼翻譯、私人呼叫、呼叫統(tǒng)計(jì)和AAA認(rèn)證等服務(wù)。SER可以在SUN/Solaris、PC/Linux、IPAQ/Linux平臺上移植,可以支持IPv4或IPv6協(xié)議棧。SER可以支持注冊、代理和轉(zhuǎn)發(fā)3種模式。SER的多用戶并發(fā)量可達(dá)150個/秒,基于純C語言實(shí)現(xiàn)。[7]
2.2 多媒體服務(wù)器SEMS
多媒體服務(wù)器SEMS是一個高效的、基于SIP協(xié)議的VoIP多媒體服務(wù)器。經(jīng)SER服務(wù)器建鏈握手后,SEMS提供語音流媒體會議室、語音郵件、呼叫通知、和back-to-back user agent(B2BUA)等服務(wù)。SEMS遵從GPLv2開放源碼協(xié)議。SEMS可以實(shí)現(xiàn)基本的語音呼叫處理,支持G711u、G711a、GSM06.10、speex、G726、L16和iLBC等非專利語音編解碼格式,但不能支持例如G729等專利語音編解碼格式。SEMS可以以插件的形式擴(kuò)展其他格式的語音編解碼器。SEMS的軟件架構(gòu)可以擴(kuò)展C++和嵌入式Python等編譯模塊。SEMS在普通PC平臺上表現(xiàn)出色,在2GHz主頻的CPU上運(yùn)行,可以支持1200個G711用戶/700個GSM用戶/280個iLBC用戶同時在線。SEMS可以移植到運(yùn)行OpenWRT操作系統(tǒng)的路由器中,也可以移植到其他小型嵌入式系統(tǒng)中,但性能較PC平臺會有所降低。SEMS基于純C語言實(shí)現(xiàn)[8]。
SEMS和SER之間通過unix socket進(jìn)行通信,SEMS的模塊調(diào)用圖如圖5所示下:
圖5 SEMS和SER模塊調(diào)用示意圖
FLITE是一個多路語音疊加模塊,它將多個客戶端上傳SEMS的話音進(jìn)行疊加,再通過SEMS逐一分發(fā)到每一個登錄服務(wù)器的客戶端。SPANDSP主要用于DTMF(Dual Tone Multi Frequency,雙音多頻)電話信令探測和PLC(Packet Loss Concealment,丟包隱藏)。XMLRPC是使用HTTP協(xié)議作為傳輸協(xié)議的RPC(Remote Procedure Call Protocol,遠(yuǎn)程過程調(diào)用協(xié)議)機(jī)制,使用XML文本格式傳輸呼叫控制信令。LIBZRTP實(shí)現(xiàn)SRTP語音加密傳輸協(xié)議(Secure Realtime Transfer Protocol,安全實(shí)時傳輸協(xié)議)。
2.3 客戶端
客戶端軟件模塊結(jié)構(gòu)圖如圖6所示。
圖6 客戶端模塊結(jié)構(gòu)圖
osip2遵循IETF標(biāo)準(zhǔn),是源代碼開放的SIP協(xié)議棧。eXosip2是對osip2的封裝,遵從開源GPL許可證。oRTP庫主要實(shí)現(xiàn)RTP協(xié)議棧,尊從開源LGPL許可證。ffmpeg是一個開源免費(fèi)跨平臺的視頻和音頻流解決方案,屬于自由軟件,依據(jù)你選擇的組件尊從開源LGPL(GNU Library General Public License)或開源GPL(GNU General Public License)許可證。speex是一套主要針對語音的開源免費(fèi),無專利保護(hù)的音頻壓縮格式庫。mediastreamer2庫主要負(fù)責(zé)音視頻編解碼、采集、播放和回音消除,尊從開源GPL許可證。msilbc庫是iLBC語音編解碼器插件,尊從開源GPL許可證。mediastreamer2可以以插件的形式擴(kuò)展msilbc。本系統(tǒng)在已有的開源庫基礎(chǔ)上,進(jìn)行了相應(yīng)的開發(fā)和集成,客戶端基于純C語言實(shí)現(xiàn),可以在Windows/Linux操作系統(tǒng)下移植[9]。
3 應(yīng)用效果
此套基于SIP協(xié)議的VoIP會議系統(tǒng),經(jīng)過大量測試,語音通話效果清晰,不同編解碼格式的實(shí)際通信速率與話音質(zhì)量測試結(jié)果如表2所示。
表2 不同編解碼格式的實(shí)際通信速率與話音質(zhì)量測試結(jié)果
格式G.711GSMiLBCSpeex
語音編碼速率(kbps)641313.38
RTP封包周期(ms)20203020
凈語音數(shù)據(jù)(bytes)1603350不定長
分組包總長度(bytes)54+16054+3354+50不定長+54
實(shí)際總速率(kbps)85.634.827.73約26
語音質(zhì)量(PESQ MOS)4.453.7823.9813.75
4 展望
VOIP技術(shù)是在互聯(lián)網(wǎng)上的一種應(yīng)用,即讓語音數(shù)據(jù)在網(wǎng)絡(luò)上傳輸。通過VOIP技術(shù),系統(tǒng)實(shí)現(xiàn)語音會議功能,滿足遠(yuǎn)距離、高質(zhì)量的通話需求,由于互聯(lián)網(wǎng)可快速靈活地引入新業(yè)務(wù),使高新技術(shù)相融合,可不斷加速VOIP網(wǎng)絡(luò)語音會議技術(shù)的發(fā)展。采用SIP協(xié)議構(gòu)建的會議系統(tǒng),便于開發(fā)各種增殖業(yè)務(wù),具有運(yùn)營成本低等優(yōu)勢,因而其研發(fā)存在較大的經(jīng)濟(jì)效益和良好的社會效益[10]。
參考文獻(xiàn):
[1]陳德來.IP電話原理及相關(guān)技術(shù)標(biāo)準(zhǔn)[J].電信快報,2006(08):22.
[2]International Telecommunication Union,ITU-T RecommendationG.114.Technical report[R],1993.
[3]Zourzouvillys,T.; Rescorla, E. An Introduction to Standards-Based VoIP:SIP, RTP, and Friends. Internet Computing, IEEE Journals Magazines, Volume: 14 ,Issue:2,Publication Year:2010,Page(s):69-73.
[4]Daniel Collins,Carrier Grade Voice Over IP McGraw-Hill 63-69 Professional September 22,2000.
[5]Robert Aston (Editor),Joyce Schwarz (Editor),Multimedia: Gateway to the Next Millennium.Morgan[M] Kaufmamt Publishers, September 1994.
[6]Comparison of audio formats[EB/OL].http://en.wikipedia.org/wiki/Comparison_of_audio_formats
[7]王建新,裴慧民.基于IP的QoS體系結(jié)構(gòu)及路由策略研究[J].電信快報,2001.
[8]Steven L.Gay,Jacob Benesty,Dennis R. Morgan,M.Mohan Sondhi,Tomas Gander,Advances in Network and Acoustic Echo Cancellation[M].Springer,Berlin,2001.
[9]張宇.VoIP中若干關(guān)鍵技術(shù)的研究[D].浙江大學(xué),2007(04).
[10]張智江,張?jiān)朴?SIP協(xié)議及其應(yīng)用[M].北京:電子工業(yè)出版社,2005.
作者簡介:徐山峰(1981-),男,北京人,碩士研究生,主要從事電子信息系統(tǒng)總體設(shè)計(jì)工作;謝佳(1982-),男,北京人,碩士研究生,主要從事通信應(yīng)用軟件總體設(shè)計(jì)工作。
作者單位:中國電子科技集團(tuán)公司電子科學(xué)研究院,北京 100041