MG的開發(fā)離不開MGC的配合與支持,然而開發(fā)MGC的低效率、長周期往往成為MG開發(fā)的瓶頸。著眼于此,在介紹了基于MGCP的VoIP系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,引入一種VoIP仿真工具Artiza VoIP Simulator,接著詳細(xì)描述了怎樣通過此工具仿真MGC實(shí)現(xiàn)跨MG通話。
引言
在傳統(tǒng)的VoIP系統(tǒng)中,媒體網(wǎng)關(guān)不但要執(zhí)行媒體格式轉(zhuǎn)換,還要進(jìn)行信令轉(zhuǎn)換等功能,其結(jié)構(gòu)過于復(fù)雜,導(dǎo)致了可擴(kuò)展性差,對IP電話的大規(guī)模部署具有相當(dāng)大的制約力。鑒于此,業(yè)界提出了分離網(wǎng)關(guān)的思想,而這一思想也正是NGN(下一代網(wǎng)絡(luò),Next Generation Network)的關(guān)鍵特征之一。
按照分離網(wǎng)關(guān)的思想,傳統(tǒng)的網(wǎng)關(guān)分解為三部分:媒體網(wǎng)關(guān)(MG)負(fù)責(zé)媒體變換以及SCN和IP兩側(cè)通路的連接;信令網(wǎng)關(guān)(SG)負(fù)責(zé)信令轉(zhuǎn)換;媒體網(wǎng)關(guān)控制器(MGC)負(fù)責(zé)根據(jù)收到的信令控制媒體網(wǎng)關(guān)的連接建立和釋放。網(wǎng)關(guān)分離導(dǎo)致出現(xiàn)了新的協(xié)議標(biāo)準(zhǔn)。媒體網(wǎng)關(guān)控制協(xié)議(MGCP;Media Gateway Control Protocol見RFC2705)就是根據(jù)分離網(wǎng)關(guān)的思想提出的一種運(yùn)行在MGC與MG之間接口上的協(xié)議。分離網(wǎng)關(guān)對于VoIP的大規(guī)模應(yīng)用,特別是進(jìn)入家庭具有十分重要的意義,因此MGCP受到了廣泛的重視,成為VoIP市場的熱點(diǎn)之一。
圖1 基于MGCP的VOIP系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
基于MGCP的VoIP系統(tǒng)結(jié)構(gòu)
如圖1所示,在基于MGCP的VoIP系統(tǒng)結(jié)構(gòu)中,一個媒體網(wǎng)關(guān)控制器(MGC)可用來控制多個媒體網(wǎng)關(guān)(MG),兩者之間通過MGCP進(jìn)行通信相互配合完成MGCP通話。這種分離網(wǎng)關(guān)結(jié)構(gòu)相對于傳統(tǒng)的網(wǎng)關(guān)結(jié)構(gòu)有著不可比擬的優(yōu)勢:
(1)由于功能的簡化,媒體網(wǎng)關(guān)數(shù)量可以顯著增加,解決了擴(kuò)展性問題,同時也提高了系統(tǒng)的可用性。
(2)有利于快速引入新業(yè)務(wù),它只需要更新MGC軟件,而MG無需更改或改動很少。
(3)網(wǎng)絡(luò)中大量的接入網(wǎng)關(guān)可以做得簡單、便宜而且可靠,對VoIP的大規(guī)模應(yīng)用有著十分重要的意義。
媒體網(wǎng)關(guān)控制器(MGC)
MGC作為實(shí)現(xiàn)呼叫控制的核心,它根據(jù)接收到的信令控制媒體網(wǎng)關(guān)連接的建立和釋放等。其主要功能是呼叫控制功能,為基本呼叫的建立、維持和釋放提供控制功能,包括呼叫處理、連接控制、智能呼叫觸發(fā)檢測和資源控制等。
此外,MGC還應(yīng)當(dāng)具有業(yè)務(wù)提供功能,協(xié)議功能、互通功能、資源管理功能、計(jì)費(fèi)功能以及7信令功能等。
媒體網(wǎng)關(guān)(MG)
MG主要負(fù)責(zé)媒體轉(zhuǎn)換以及PSTN和IP兩側(cè)通路的連接。根據(jù)網(wǎng)關(guān)在網(wǎng)絡(luò)結(jié)構(gòu)中的位置不同可以分為下面三種類型:
(1)中繼網(wǎng)關(guān)。負(fù)責(zé)連接PSTN和IP網(wǎng)絡(luò),完成話音TDM格式和RTP數(shù)據(jù)包的相互轉(zhuǎn)換,并受MGC的控制,完成連接建立。
(2)接入網(wǎng)關(guān)。位于網(wǎng)絡(luò)的接入?yún)R聚點(diǎn),提供數(shù)字PBX接口或普通的RJ11模擬電話接口,一般用在住宅小區(qū)或辦公樓宇。
(3)住宅網(wǎng)關(guān)。負(fù)責(zé)采集IP電話用戶的事件信息(如摘機(jī)、掛機(jī)等),并將這些事件經(jīng)IP網(wǎng)傳給MGC。它還支持RTP,以完成端到端IP語音數(shù)據(jù)傳送。住宅網(wǎng)關(guān)一般用于用戶家中。
仿真MGC實(shí)現(xiàn)跨MG通話
應(yīng)當(dāng)看到,在上述的VoIP系統(tǒng)中,MG主要負(fù)責(zé)執(zhí)行來自MGC的命令和媒體轉(zhuǎn)換,而作為系統(tǒng)核心的MGC,功能則更強(qiáng)大,因而設(shè)計(jì)實(shí)現(xiàn)起來就困難、復(fù)雜了許多,開發(fā)周期更長;而MG的設(shè)計(jì)開發(fā)尤其是測試是離不開MGC的。幸運(yùn)的是,MGC是可以通過軟件進(jìn)行仿真模擬的,在這里,要介紹這樣一種VoIP協(xié)議仿真工具——Artiza VoIP Simulator,通過該工具仿真MGC進(jìn)而實(shí)現(xiàn)跨網(wǎng)關(guān)通話。
VoIP協(xié)議仿真利器———Artiza VoIP Simulator
Artiza VoIP Simulator是的VoIP軟件廠商Artiza Networks公司的主要產(chǎn)品之一,其試用版可到該公司網(wǎng)站(www.artiza networks.com)下載。
該軟件可以仿真大多數(shù)VoIP協(xié)議網(wǎng)絡(luò)設(shè)備,如MGC,MG,GateKeeper,Endpoint,SIP Server等。它除了支持H323協(xié)議簇外,還支持NGN的關(guān)鍵協(xié)議MGCP,H248/MEGACO,SIP等。它主要由以下三個部分組成:
(1)消息編輯器(Message Editor):編輯定制用戶所需的VoIP協(xié)議消息。
(2)序列場景編輯器(Sequence Scenario Editor):編輯定制用戶所需的通信事件、流程。
(3)模擬器(VoIP Simulator):運(yùn)行用戶創(chuàng)建的序列場景腳本。
用Artiza VoIP Simulator仿真基于MGCP的MGC
網(wǎng)絡(luò)拓?fù)鋱D
如圖2所示,所要建立的場景是分屬于兩個MG的兩個電話機(jī)在一臺基于MGCP協(xié)議的MGC的控制下,進(jìn)行正常通話。
圖2 跨網(wǎng)關(guān)通話網(wǎng)絡(luò)拓?fù)鋱D
MGCP呼叫基本流程
接著詳細(xì)描述一下對應(yīng)圖2網(wǎng)絡(luò)拓?fù)涞暮艚衅浠玖鞒獭T谶@里將呼叫過程分為三個階段:開始呼叫過程,呼叫建立過程和呼叫斷開過程。
開始呼叫過程:
(1)主叫拿起電話機(jī),主叫網(wǎng)關(guān)檢測到摘機(jī)信號,發(fā)送NTFY到MGC,通知主叫摘機(jī)事件。MGC接著回送響應(yīng)。
(2)MGC向主叫網(wǎng)關(guān)發(fā)送RQNT命令,請求其向主叫放撥號音并根據(jù)數(shù)字映像采集主叫的撥號號碼,同時監(jiān)視主叫的掛機(jī)事件。接著MG返回響應(yīng)。
(3)主叫開始撥號到撥號完畢。主叫網(wǎng)關(guān)檢測到收到的號碼和數(shù)字映像相匹配,向MGC發(fā)送相應(yīng)RQNT。接著MGC返回響應(yīng)。呼叫建立過程:
(4)MGC向主叫網(wǎng)關(guān)發(fā)送CRCX命令,創(chuàng)建連接。命令參數(shù)包括呼叫ID,本地連接選項(xiàng),recvonly模式等。
(5)主叫網(wǎng)關(guān)返回響應(yīng),響應(yīng)中包括連接的ID,以及用于接收音頻數(shù)據(jù)的本地會話描述等。
(6)MGC查詢確定呼叫路由,向被叫網(wǎng)關(guān)發(fā)送CRCX命令,命令參數(shù)除包含呼叫ID、sendrecv模式之外,還攜帶主叫網(wǎng)關(guān)的會話描述等。
(7)被叫網(wǎng)關(guān)返回響應(yīng),響應(yīng)中包含新創(chuàng)建連接的ID,以及由于接收音頻數(shù)據(jù)的本地會話描述等。
(8)MGC向主叫網(wǎng)關(guān)發(fā)送MDCX命令以接通雙向通路。命令參數(shù)包括呼叫ID,連接ID,sendrecv模式,被叫的會話描述。接著主叫回送響應(yīng)。
(9)MGC向被叫網(wǎng)關(guān)發(fā)送RQNT命令,請求其向被叫放振鈴音,同時監(jiān)視摘機(jī)事件。接著,被叫網(wǎng)關(guān)回送響應(yīng)。
(10)MGC向主叫網(wǎng)關(guān)發(fā)送RQNT命令,請求其向主叫放回鈴音,同時監(jiān)視掛機(jī)事件。接著主叫網(wǎng)關(guān)回送響應(yīng)。
(11)被叫摘機(jī),被叫網(wǎng)關(guān)向MGC發(fā)送NTFY,通知被叫摘機(jī)事件。接著,MGC回送響應(yīng)。
(12)MGC向主叫網(wǎng)關(guān)發(fā)送RQNT命令,請求其停止向主叫放回鈴音。接著主叫網(wǎng)關(guān)回送響應(yīng)至此,雙方進(jìn)入通話狀態(tài)。呼叫斷開過程:
(13)通話結(jié)束。假定主叫先掛機(jī)。主叫網(wǎng)關(guān)檢測到主叫掛機(jī)事件后,向MGC發(fā)送NTFY,通知主叫掛機(jī)事件。接著MGC回送響應(yīng)。
(14)MGC向主叫網(wǎng)關(guān)發(fā)送DLCX命令,刪除連接。接著主叫網(wǎng)關(guān)回送響應(yīng)。
(15)MGC向被叫網(wǎng)關(guān)發(fā)送DLCX命令,刪除連接。接著被叫網(wǎng)關(guān)回送響應(yīng)。
至此,整個呼叫過程結(jié)束。下面我們詳細(xì)描述一下怎樣使用ArtizaVoIPSimulator來模擬MGC,現(xiàn)跨網(wǎng)關(guān)通話。
通過Sequence ScenarioE ditor編寫相應(yīng)的Sequence Scenario
圖3 創(chuàng)建系統(tǒng)相關(guān)Nodes
圖4 創(chuàng)建系統(tǒng)相關(guān)事件
首先編輯Node,即整個系統(tǒng)所要涉及的功能實(shí)體。我們所要用到的Node包括一臺MGC,兩臺MG(主叫和被叫),創(chuàng)建后如圖3所示,需要注意的是MGC Node其this列要選擇ON,即表明我們所要仿真的是一個MGC。然后,我們根據(jù)3.2.2小節(jié)的呼叫基本流程,來創(chuàng)建每一步所對應(yīng)的事件。
我們以第1步為例,在圖3中Scenario列被激活狀態(tài)下,點(diǎn)擊add添加一個事件,根據(jù)我們要添加的事件的屬性,Event選擇Recv表明MGC接收消息事件,Protocol為MGCP,Message為NTFY,Tcp/Udp選擇為默認(rèn)的UDP,相應(yīng)的Src和Dst填寫Node的序號1和2。由于是次接收事件PORT填寫為MG的默認(rèn)值2427;其他缺省。需要說明一點(diǎn)的是,響應(yīng)也是一個事件,必須填寫。
根據(jù)上述規(guī)則依次創(chuàng)建所有事件,如圖4所示,圖的上半部分是系統(tǒng)呼叫事件序列,下半部分是軟件自動生成的系統(tǒng)Node間的通信序列圖,非常直觀的描述MGCP呼叫基本流程。
緊接著,要做的是編輯每個事件所對應(yīng)的MGCP消息,也就是Node間通信的具體內(nèi)容,每一個消息表現(xiàn)為一個具有一定格式的文件。這也是該軟件吸引人的地方,根據(jù)所要仿真的協(xié)議其命令消息的格式,可選擇不同的編輯器進(jìn)行編寫。對于H323系列協(xié)議消息,本軟件提供的asn.1消息編輯器可幫助用戶定制相關(guān)消息。而對于基于文本的MGCP、H248/MEGACO、SIP等協(xié)議消息,可使用任意一種文本編輯器按照格式進(jìn)行編寫,只是對應(yīng)的文件擴(kuò)展名為atf即可。具體格式可參見該軟件幫助文檔。
下面我們根據(jù)RFC2705中對MGCP命令消息格式的規(guī)定,以呼叫流程中幾個典型事件對應(yīng)的令消息的編寫為例,描述文本格式的MGCP協(xié)議消息的創(chuàng)建。對應(yīng)第1步的NTFY命令消息:
[TEXT]
NTFY1001 endpoint1@CallingMG MGCP 1.0
X:10
O:L/hd
其中,X:10表示命令消息對應(yīng)的請求ID,O:L/hd表示檢測到的是摘機(jī)事件。對應(yīng)第4步的CRCX命令消息:
[TEXT]
CRCX1006 endpoint1@CallingMG MGCP110
C:10001
M:recvonly
L:a:G729
v=0
c=IN IP4 192.168.0.15
m=audio43000RTP/AVP11
此命令表示MGC希望雙方使用g1729編碼類型,需要說明一點(diǎn)的是,以v=0開始的是本地會話描述,采用SDP協(xié)議的規(guī)定,SDP協(xié)議是一種專門用來對會話進(jìn)行描述的協(xié)議,詳情請參見RFC2327。
依此類推,編輯完成整個呼叫過程所涉及的所有消息對應(yīng)的atf文件。,將這些文件與他們所對應(yīng)的事件進(jìn)行綁定,保存該seq文件。至此,整個sequence腳本編寫完成。
運(yùn)行Simulator實(shí)現(xiàn)通話
打開VoIP Simulator,載入我們所編寫的seq文件,正確填寫系統(tǒng)中各個Node的IP地址,然后點(diǎn)擊start就可以運(yùn)行了。這樣主被叫就可以按照規(guī)定的呼叫流程操作實(shí)現(xiàn)正常通話了。
運(yùn)用Simulator驗(yàn)證實(shí)現(xiàn)其他功能
從上述例子可以看出,由于VoIP Simulator具有可編程性,所以在使用它來模擬MGC對MG的中后期開發(fā)調(diào)試幫助很大,除了可以實(shí)現(xiàn)基本通話,還可以在此基礎(chǔ)上開發(fā)驗(yàn)證MG的心跳機(jī)制、傳真等等展功能。
總結(jié)
MGCP作為NGN的關(guān)鍵協(xié)議之一,在其基礎(chǔ)上進(jìn)行MG與MGC的設(shè)計(jì)開發(fā)是必不可少的,而作為VoIP協(xié)議仿真利器——Artiza VoIP Simulator可以有效的提高設(shè)計(jì)開發(fā)MG的效率。值得一提的是,該仿真工具不僅支持MGCP,還支持H248/MEGACO,SIP等未來NGN的主流協(xié)議。在掌握這些協(xié)議的基礎(chǔ)上,有效的運(yùn)用這一仿真工具對于學(xué)習(xí)研究NGN、推動NGN的發(fā)展有著重要的意義。