GPRS網(wǎng)絡(luò)的附加業(yè)務(wù):VoIP
over GPRS
2008/04/07
導(dǎo)言
近年來,IP語音(VoIP)變得越來越普及。與傳統(tǒng)的匯接解決方案相比,VoIP能夠降低初始部署成本和長(zhǎng)途費(fèi)用;ヂ(lián)網(wǎng)工程任務(wù)組(IETF)制定的會(huì)話發(fā)起協(xié)議(SIP)是使用最廣泛的信令協(xié)議之一,該協(xié)議凝聚了互聯(lián)網(wǎng)行業(yè)的很大努力,適用于互聯(lián)網(wǎng)會(huì)議、電話、在線狀態(tài)、事件通知和即時(shí)信息處理。過去,人們無法以合理的低成本來實(shí)施這些附加功能,但現(xiàn)在使用會(huì)話發(fā)起協(xié)議(SIP),只需向?qū)Ψ桨l(fā)送一些數(shù)據(jù)包,然后建立一個(gè)具有所需功能的會(huì)話,即可實(shí)現(xiàn)這些功能。因而,相對(duì)于傳統(tǒng)電話網(wǎng)絡(luò)來說,VoIP具備了一些優(yōu)勢(shì)。
接下來,人們可能會(huì)提出如何連接互聯(lián)網(wǎng)的問題。無線局域網(wǎng)(WLAN)是一種可行方法。無線局域網(wǎng)提供了一定的移動(dòng)性,用戶能在WLAN接入點(diǎn)的附近區(qū)域內(nèi)移動(dòng),從而實(shí)現(xiàn)VoIP
over WiFi應(yīng)用。但是,由于WLAN屬于局域網(wǎng),只限于室內(nèi)應(yīng)用,一旦用戶離開接入點(diǎn)的覆蓋范圍,VoIP呼叫就會(huì)掉線。盡管GSM和VoIP之間可以切換,但這些機(jī)制和協(xié)議又增加了額外成本。
WiMax 和 GPRS 是提供移動(dòng)性的兩種可能解決方案。WiMax是城域網(wǎng),覆蓋范圍長(zhǎng)達(dá)數(shù)英里。但是,它需要引入802.16e標(biāo)準(zhǔn),才能支持移動(dòng)。雖然與GPRS相比,WiMax的數(shù)據(jù)速率快得多,但它目前仍然是一種正在演進(jìn)的技術(shù),尚未確定最終標(biāo)準(zhǔn)。幾家公司提供的現(xiàn)有芯片組沒有遵循一定的標(biāo)準(zhǔn),因而無法進(jìn)行互操作。此外,這種芯片組的成本也比較高。因此,VoIP
over WiMax可能是未來的發(fā)展趨勢(shì),但就目前而言,這種技術(shù)還沒有推廣。
相反,GPRS現(xiàn)在已經(jīng)成為最常見的無線數(shù)據(jù)業(yè)務(wù),在幾乎所有GSM網(wǎng)絡(luò)上部署。它通過互聯(lián)網(wǎng)協(xié)議(IP)接入互聯(lián)網(wǎng)網(wǎng)關(guān)。其吞吐速率高達(dá)40KB/秒,用戶可以獲得適當(dāng)?shù)慕尤胨俾,能夠非常便利地從任何地方連接到互聯(lián)網(wǎng)。目前,全球有1/5以上的人口使用GSM技術(shù),截至2006年3月中旬,GSM用戶人數(shù)超過17億,占據(jù)全球手機(jī)市場(chǎng)的77%左右。GSM的滲透率如此之高,使得GPRS成為連接互聯(lián)網(wǎng)、提供VoIP業(yè)務(wù)的合適物理移動(dòng)媒介。
早期模擬表明,在GSM網(wǎng)絡(luò)中,VoIP over GPRS比電路切換語音的容量更大。在本文中,我們將重點(diǎn)介紹VoIP
over GPRS在運(yùn)行實(shí)時(shí)操作系統(tǒng)(RTOS)的低成本GSM移動(dòng)電話上的實(shí)施。我們還將介紹VoIP over GPRS的系統(tǒng)和架構(gòu),以及它的設(shè)計(jì)局限。接下來,我們將介紹在飛思卡爾i.250
2.5G 平臺(tái)上實(shí)施的概念驗(yàn)證原型。
概況
IP語音(VoIP)是利用IP網(wǎng)絡(luò)來傳送語音信息的一系列新技術(shù)。在發(fā)送端,語音首先進(jìn)行數(shù)字化、壓縮、打包,然后通過IP網(wǎng)絡(luò),將這些數(shù)據(jù)包發(fā)送到目的地。一旦在遠(yuǎn)端收到這些語音數(shù)據(jù)包,它們就會(huì)被記錄、解壓,然后重新生成語音。由于IP網(wǎng)絡(luò)的帶寬遠(yuǎn)高于傳統(tǒng)的固話匯接網(wǎng)絡(luò),VoIP的呼叫費(fèi)用也遠(yuǎn)低于傳統(tǒng)呼叫。然而,IP網(wǎng)絡(luò)最初設(shè)計(jì)用于傳輸非實(shí)時(shí)數(shù)據(jù),因此,對(duì)于VoIP而言,如何實(shí)時(shí)傳輸語音服務(wù),確保語音服務(wù)質(zhì)量就成為一種挑戰(zhàn)。隨著IP技術(shù)和寬帶互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,這些問題已經(jīng)部分地得到解決,VoIP進(jìn)入實(shí)際應(yīng)用階段。ITU(國(guó)際電信聯(lián)盟)和IETF(互聯(lián)網(wǎng)工程任務(wù)組)是制定VoIP協(xié)議的兩個(gè)主要標(biāo)準(zhǔn)機(jī)構(gòu),負(fù)責(zé)確保VoIP的更好質(zhì)量和互操作性。
與非實(shí)時(shí)通信不同,VoIP要求對(duì)等方在實(shí)際語音傳輸之前建立會(huì)話。會(huì)話的功能包括:位置搜索、功能協(xié)調(diào)、呼叫建立和資源預(yù)留等。當(dāng)前,人們單獨(dú)使用
H.323 (ITU) 和SIP (IETF)來實(shí)施呼叫控制功能。就簡(jiǎn)單性而言,SIP優(yōu)于H.323,因此這個(gè)VoIP項(xiàng)目選擇了SIP。
圖1顯示了典型的VoIP協(xié)議堆棧。呼叫控制協(xié)議包括兩個(gè)選項(xiàng):H.323 和SIP。H.323只能通過TCP接入IP網(wǎng)絡(luò),而SIP可以同時(shí)通過TCP或UDP接入IP網(wǎng)絡(luò)。綠色方塊表示支持實(shí)時(shí)語音會(huì)話的媒介引擎和IP協(xié)議。黃色方塊表示用于數(shù)據(jù)包傳輸?shù)腗AC/PHY層。我們的重點(diǎn)將放在
SIP、 RTP、 RTCP、 UDP、 TCP、 IP和 GPRS上。
會(huì)話發(fā)起協(xié)議(SIP)是一種信令協(xié)議,用于初始化、管理和終止分組網(wǎng)絡(luò)之間的語音和視頻會(huì)話。與HTTP 或SMTP類似,SIP也屬于文本編碼,具有很強(qiáng)的可擴(kuò)展性。SIP能夠進(jìn)行擴(kuò)展,以支持各種功能和服務(wù),例如移動(dòng)服務(wù)、與現(xiàn)有電話系統(tǒng)的互操作。SIP網(wǎng)絡(luò)包括5類邏輯實(shí)體。每類實(shí)體都具有特定功能,作為客戶端(發(fā)起請(qǐng)求)或服務(wù)器(響應(yīng)請(qǐng)求)參與SIP通信,或者同時(shí)以兩種身份參與通信。這5類實(shí)體是:用戶代理、代理服務(wù)器、重定向服務(wù)器、注冊(cè)服務(wù)器和背靠背用戶代理(B2BUA)。VoIP電話應(yīng)該是用戶代理,因?yàn)樗嵌它c(diǎn)實(shí)體。
注意,在呼叫過程中,SIP不參與語音/視頻編碼/解碼,而只是為語音/視頻談話建立/終止一次會(huì)話。一旦建立會(huì)話,語音就由適當(dāng)類型的編解碼器(如GSM
AMR)進(jìn)行編碼,然后在RTP/UDP/IP中打包。在這里,RTP代表Real Time Protocol(實(shí)時(shí)協(xié)議),UDP代表User
Datagram Protocol(用戶數(shù)據(jù)報(bào)協(xié)議),IP代表Internet Protocol(互聯(lián)網(wǎng)協(xié)議)。如需了解更多信息,請(qǐng)咨詢IETF。
該協(xié)議的公布名稱為RFC3261。所有SIP消息分為3個(gè)部分:
所有SIP消息的開頭都是起始行。起始行說明了消息類型(在請(qǐng)求情況下,消息為方法類型,在響應(yīng)情況下,消息為響應(yīng)代碼)和協(xié)議版本。報(bào)頭字段包含了信息屬性,這些屬性可以提供更多信息。報(bào)頭的格式為::。報(bào)頭可以橫跨多行。一些SIP報(bào)頭,例如Via、Contact、
Route 和 Record Route可能在一條消息中出現(xiàn)多次,或者也可能在一個(gè)報(bào)頭中提供多個(gè)值,以逗號(hào)分隔。
消息本體用于描述將要發(fā)起的會(huì)話,它可能出現(xiàn)在請(qǐng)求和響應(yīng)消息中。
一旦在網(wǎng)絡(luò)上建立會(huì)話,實(shí)時(shí)語音數(shù)據(jù)就會(huì)通過RTP/RTCP、UDP 和 IP發(fā)送。 這些協(xié)議分別在RFC 3550、768和
791 中進(jìn)行了定義。
RFC 3550指定了為具有實(shí)時(shí)特征的數(shù)據(jù)(例如互動(dòng)音頻和視頻)提供端到端傳送服務(wù)的實(shí)時(shí)傳輸協(xié)議(RTP)。這些服務(wù)包括:凈負(fù)荷類型識(shí)別、順序編號(hào)、時(shí)間戳和傳送監(jiān)控。這些應(yīng)用通常在UDP的頂層上運(yùn)行RTP,以利用它的多路復(fù)用和校驗(yàn)和服務(wù)。注意,RTP本身不提供任何機(jī)制來確保實(shí)時(shí)傳送,也不提供其它服務(wù)質(zhì)量保證,而是依靠較低層的服務(wù)來實(shí)現(xiàn)這些目標(biāo)。它不能保證傳送和防止無序傳送,也不能確保底層是可靠的,能夠按照順序傳送數(shù)據(jù)包。根據(jù)RTP中包含的序列號(hào),接收方能夠重建發(fā)送者的數(shù)據(jù)包順序。
RFC3550還規(guī)定,RTP控制協(xié)議(RTCP)應(yīng)該監(jiān)控服務(wù)質(zhì)量,并傳輸關(guān)于當(dāng)前會(huì)話參與者的信息。
UDP (RFC768) 代表用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol),假定使用互聯(lián)網(wǎng)協(xié)議作為底層協(xié)議。該協(xié)議為應(yīng)用程序提供了一個(gè)將消息傳送到其它程序的流程,只需很少的協(xié)議機(jī)制。該協(xié)議是面向事務(wù)處理的,不保證提供傳送和復(fù)制保護(hù)。如果應(yīng)用需要可靠、有序的數(shù)據(jù)流傳送,應(yīng)使用傳輸控制協(xié)議(TCP)。
互聯(lián)網(wǎng)協(xié)議(RFC791、IPv4)實(shí)施兩種基本功能:尋址和分割。IP使用報(bào)頭中的地址,將互聯(lián)網(wǎng)數(shù)據(jù)報(bào)傳送到目的地。選擇傳輸路徑的過程稱為路由。當(dāng)需要通過“小數(shù)據(jù)包”網(wǎng)絡(luò)傳輸時(shí),它還使用報(bào)頭中的字段,對(duì)互聯(lián)網(wǎng)數(shù)據(jù)報(bào)進(jìn)行分割和重組。此外,這些IP模塊(特別是網(wǎng)關(guān)中的模塊)擁有執(zhí)行路由決策和其它功能的程序。
互聯(lián)網(wǎng)協(xié)議將互聯(lián)網(wǎng)數(shù)據(jù)報(bào)當(dāng)作一個(gè)獨(dú)立實(shí)體處理,與其它任何互聯(lián)網(wǎng)數(shù)據(jù)報(bào)無關(guān)。沒有連接或邏輯電路。在提供服務(wù)時(shí),它使用四種主要機(jī)制:服務(wù)類型、生存時(shí)間、選項(xiàng)、報(bào)頭校驗(yàn)和。
“MOS”列為“Mean Opinion Score”(主觀平均得分),用于度量語音質(zhì)量。得分越高,表明質(zhì)量越好。
本項(xiàng)目的目的是在飛思卡爾i.250 2.5G 平臺(tái)上增加VoIP over GPRS功能。該平臺(tái)上的基帶處理器Neptune
LTE 帶有雙核,ARM7運(yùn)行VRTXmc OS 和 16 位Onyx DSP。時(shí)鐘頻率分別為52MHz 和130MHz。與通常在
200MHz頻率下運(yùn)行的其它應(yīng)用處理器相比, Neptune LTE 的處理功率是一個(gè)限制因素,影響我們對(duì)支持的編解碼器的選擇。在本項(xiàng)目中,我們實(shí)施的GSM-AMR主要用于演示用途,因?yàn)楝F(xiàn)有平臺(tái)支持AMR
編解碼器,并且已經(jīng)采用了DSP代碼。
系統(tǒng)架構(gòu)
圖2顯示了飛思卡爾 i.250 2.5G 平臺(tái)上的VoIP over GPRS模塊圖。VoIP 應(yīng)用是整個(gè)VoIP
over GPRS系統(tǒng)的核心控制部分。它包含了一個(gè)狀態(tài)機(jī),用于控制不同模塊流和初始化流程。通過人機(jī)界面 (MMI)通信,用戶能夠向?qū)Φ葘?shí)體發(fā)出VoIP呼叫。
網(wǎng)絡(luò)傳輸服務(wù)提供商目前對(duì)用戶是透明的。
網(wǎng)絡(luò)傳輸引擎包括:RTP/RTCP堆棧、SIP堆棧、抖動(dòng)控制堆棧等。SIP負(fù)責(zé)包括呼叫建立程序的呼叫控制協(xié)議。RTP/RTCP堆棧是實(shí)時(shí)流協(xié)議和實(shí)時(shí)流控制協(xié)議,通過網(wǎng)絡(luò)傳送實(shí)時(shí)數(shù)據(jù)。
抖動(dòng)控制堆棧負(fù)責(zé)處理網(wǎng)絡(luò)延遲,確保接收數(shù)據(jù)包的正確順序。
多媒體引擎(MME)經(jīng)過修改,用于管理VoIP的全雙工語音信道。
網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)流通過數(shù)據(jù)流服務(wù)提供商(DFSP)傳輸?shù)紾SM堆棧。在該堆棧中,子網(wǎng)相關(guān)收斂協(xié)議(SNDCP)處理分組交換數(shù)據(jù)。
藍(lán)色方塊表示現(xiàn)有平臺(tái)的新應(yīng)用,包括網(wǎng)絡(luò)傳輸協(xié)議、核心控制VoIP應(yīng)用。由于支持GPRS功能的每部移動(dòng)電話都應(yīng)該帶有TCP/UDP
IP堆棧,因而只需重復(fù)使用現(xiàn)有堆棧,而無需重新實(shí)施。注意,所有新模塊都是軟件。不需要其它硬件。
在i.250 2.5G平臺(tái)中,基帶處理器帶有雙核,一個(gè)為ARM7 MCU,另一個(gè)為Onyx-lite DSP。GPRS
L1活動(dòng)和語音編解碼器計(jì)算工作都在DSP中完成,這有助于減少M(fèi)CU的MIPS要求,在一個(gè)運(yùn)行ARM7的平臺(tái)上實(shí)現(xiàn) VoIP
over GPRS功能。與此相反,一些現(xiàn)有解決方案通常需要至少一個(gè)ARM9 ,甚至ARM11 MCU。
MDI是MCU DSP接口,可以實(shí)現(xiàn)雙方之間的通信。
一旦與對(duì)方建立了呼叫,上行鏈路的運(yùn)行方式如下:
- Mic 檢測(cè)到語音,并將其轉(zhuǎn)換成電信號(hào)。
- DSP對(duì)音頻信號(hào)進(jìn)行編碼,轉(zhuǎn)換為AMR格式。
- DSP將編碼后的ARM語音幀放入MDI音頻隊(duì)列中。
- MME從MDI音頻隊(duì)列提取編碼的ARM語音幀,然后執(zhí)行一定類型的流量控制和緩沖。MDI報(bào)頭刪除,傳送到RTP堆棧中。
- RTP堆棧添加RTP報(bào)頭,構(gòu)建RTP凈負(fù)荷,然后發(fā)送到DFSP。
- DFSP觸發(fā)UDP/IP堆棧,添加IP報(bào)頭,并傳送到GSM堆棧。
- GSM堆?刂艷PRS信令和調(diào)度,通過DSP中的MDI、L1和空中接口將GPRS數(shù)據(jù)包發(fā)送到基站。
下行鏈路的運(yùn)行方式與上述流程相反,但需要添加抖動(dòng)控制模塊,以調(diào)節(jié)不可靠的數(shù)據(jù)包接收時(shí)間。
設(shè)計(jì)局限
在運(yùn)行RTOS的低成本平臺(tái)上實(shí)施VoIP over GPRS是非常困難的。智能電話通常運(yùn)行開放式操作系統(tǒng),例如Linux、Window
CE 或 Symbian OS,而低成本的 i.250 2.5G 平臺(tái)則在專有RTOS系統(tǒng)上運(yùn)行,所需的內(nèi)存容量較低。坦白地說,它的軟件開發(fā)支持不及那些開放式操作系統(tǒng)。我們可以很容易地在網(wǎng)絡(luò)上找到開放式操作系統(tǒng)的技術(shù)論壇和知識(shí)中心,進(jìn)行技術(shù)共享。而互聯(lián)網(wǎng)上提供的代碼樣品通常只在開放式操作系統(tǒng)上運(yùn)行,我們不能將這些代碼直接移植到專有RTOS系統(tǒng)上。此外,我們還需要耗費(fèi)大量精力來重新編寫代碼,以提高內(nèi)存使用效率,最大程度地縮短代碼,由此增加了編寫代碼的難度和時(shí)間。
此外,在 i.250 2.5G平臺(tái)上的 RTOS系統(tǒng)中,我們使用的多任務(wù)機(jī)制與開放式操作系統(tǒng)中的多任務(wù)機(jī)制是完全不同的。Linux
或Window CE使用“線程”概念來處理多個(gè)任務(wù),而專有RTOS則使用“任務(wù)切換”概念。在多線程環(huán)境中,當(dāng)需要新應(yīng)用程序時(shí),用戶只需創(chuàng)建一個(gè)線程,運(yùn)行該應(yīng)用程序的代碼。不同線程同時(shí)運(yùn)行,各自完成自己的任務(wù),但彼此能夠看到對(duì)方。所有資源共享機(jī)制都由操作系統(tǒng)管理。而在任務(wù)切換RTOS機(jī)制中,代碼開發(fā)人員需要牢記一點(diǎn):有很多其它任務(wù)也在同時(shí)運(yùn)行。任務(wù)切換只能在功能進(jìn)入點(diǎn)/退出點(diǎn)或中斷時(shí)進(jìn)行。因此,他們必須將代碼劃分成更小片斷,以防止應(yīng)用程序長(zhǎng)期占用資源。在編寫嵌入式RTOS系統(tǒng)上的代碼時(shí),應(yīng)該使用特殊的技術(shù)。
另一個(gè)限制是雙方傳輸?shù)难舆t。我們知道,GPRS和互聯(lián)網(wǎng)是為數(shù)據(jù)傳輸設(shè)計(jì)的,數(shù)據(jù)包傳輸路徑是隨意選擇的。不能保證數(shù)據(jù)包能夠成功地傳送到目的地,并按照發(fā)送端的順序接收。要將收到的數(shù)據(jù)包重新排列成正確順序,應(yīng)在接收端實(shí)施抖動(dòng)控制。實(shí)現(xiàn)方式是:將接收到的一些數(shù)據(jù)包保存在緩沖區(qū)中,然后根據(jù)它們的時(shí)間戳重新排列序。緩沖區(qū)容量越大,抖動(dòng)控制性能就越好。但是,該過程會(huì)導(dǎo)致音頻路徑的延遲,再加上GPRS和互聯(lián)網(wǎng)的固有延遲,總延遲時(shí)間長(zhǎng)達(dá)幾秒。設(shè)計(jì)者應(yīng)當(dāng)優(yōu)化電話軟件中的音頻延遲路徑,或者實(shí)施某些類型的服務(wù)質(zhì)量控制協(xié)議,以確保質(zhì)量。
原型的驗(yàn)證
上述的RTOS系統(tǒng)是在i.250 2.5G 平臺(tái)上實(shí)施的。為了進(jìn)行演示,這里的移動(dòng)電話的IP地址固定不變。圖3介紹了設(shè)備設(shè)置和連接過程。
首先,在接通電源后,用戶只需按下“**”就能注冊(cè)登錄到代理服務(wù)器。代理服務(wù)器維持一個(gè)數(shù)據(jù)庫(kù),列出所有用戶名和內(nèi)容信息。只需通過GPRS網(wǎng)絡(luò)將SIP注冊(cè)消息發(fā)送到服務(wù)器,即可完成注冊(cè)。同時(shí),電話軟件激活GPRS連接,獲取GPRS網(wǎng)絡(luò)分配的IP地址,并且打開傳輸和接收數(shù)據(jù)的邏輯路徑。如果不激活GPRS連接,DUT身份對(duì)公用網(wǎng)絡(luò)就是不可知的,因而不能接到來電。代理服務(wù)器只存在于設(shè)置過程。
由于代理服務(wù)器被用作中間代理,主叫人應(yīng)向代理服務(wù)器IP發(fā)送呼叫請(qǐng)求。然后,服務(wù)器將查詢數(shù)據(jù)庫(kù),獲得被叫方位置,再將請(qǐng)求轉(zhuǎn)發(fā)到被叫方。本演示利用兩個(gè)Agilent
8960 ,將GRPS實(shí)驗(yàn)室應(yīng)用測(cè)試集用作媒介,將 i.250 2.5G 開發(fā)板卡 (ADS板卡)連接到互聯(lián)網(wǎng)。ADS板卡在接通電源時(shí),注冊(cè)登錄到GPRS網(wǎng)絡(luò),測(cè)試集然后通過路由器連接到互聯(lián)網(wǎng)。測(cè)試集充當(dāng)連接到GPRS的DUT的橋梁,讓它們接入互聯(lián)網(wǎng)。一旦GPRS上下文激活,測(cè)試集將為ADS分配一個(gè)固定IP地址。此外,在PC上運(yùn)行的代理服務(wù)器也連接到同一個(gè)路由器。通過這種安排,確保三個(gè)實(shí)體都能在同一網(wǎng)段內(nèi)運(yùn)行。這樣就能對(duì)同一個(gè)網(wǎng)段內(nèi)的分組流量進(jìn)行監(jiān)控,用于開發(fā)目的。
按照?qǐng)D3的設(shè)置過程,2個(gè)i.250 2.5G 開發(fā)板之間能夠成功建立VoIP呼叫連接。圖4對(duì)詳細(xì)的呼叫流程進(jìn)行了介紹。
結(jié)語
VoIP變得日益普及,通常與以太網(wǎng)或WLAN集成。在本文中,我們介紹了GPRS的使用和優(yōu)勢(shì),并將其與其它無線技術(shù)進(jìn)行了比較。經(jīng)濟(jì)高效的VoIP
over GPRS 解決方案的設(shè)計(jì)會(huì)受到大量限制,包括MIPS和RTOS的局限。但是,通過VoIP over GPRS
解決方案的詳細(xì)設(shè)計(jì),我們?cè)诘统杀镜娘w思卡爾 i.250 2.5G平臺(tái)上建立了概念驗(yàn)證原型,并在實(shí)驗(yàn)室進(jìn)行了驗(yàn)證。
電子產(chǎn)品世界
相關(guān)鏈接: