簡介,採用MGCP協定實現IP語音接入的優點,MGCP呼叫模型,3.1MGCP呼叫控制結構,3.2MG分類,3.3終端標識,MGCP系統結構和呼叫流程,4.1MGCP協定棧,4.2MGCP訊息,4.3MGCP主要呼叫流程,
簡介
協定是1999年由IETF制定的媒體網關控制協定。MGCP協定定義的連線模型包括端點(endpoint)和連線(connection)兩個主要概念:端點是數據源或數據宿,可以是物理端點,也可以是虛擬端點;端點類型包括數字通道、模擬線、錄音伺服器接入點及互動式話音回響接入點;端點標識由端點所在網關域名和網關中的*地名兩部分組成。連線可以是點到點連線或多點連線,點到點連線是兩個互相傳送數據的端點之間的一種關聯,該關聯在兩個端點都建立起來後,就可開始傳送數據。
MGCP採用文本協定,協定訊息分為命令和回響,每個命令需要接收方回送回響,採用三次握手方式證實。命令訊息由命令行和若干參數行組成,回響訊息帶有3位數字的回響碼。MGCP採用媒體描述協定(SDP)向網關描述連線參數。為了減小信令傳送時延,MGCP採用UDP傳送。
MGCP協定的基本思想就是網關分離。將H.323協定的IP網關分為媒體網關(MG)、信令網關(SG)和媒體網關控制器(MGC,又稱CA)。其中MG僅負責媒體格式的變換;SG負責信令的轉換;MGC才是真正的智慧型部分,根據收到的信令控制MG的連線建立和釋放。這樣的分離結構不僅可以大幅度提高中繼MG的容量,而且可以提供7號信令的支持,並提高了系統的可用性和魯棒性。
從嚴格的意義上來說,H.323和MGCP不是同一層面上的協定,H.323協定國際電聯ITU制定的,MGCP協定是網際網路工程任務組(IETF)定義發布的,不能簡單地進行比較。
我們這裡僅從接入的角度來比較這兩個協定。MGCP協定正是為了在網際網路上高效而方便地傳送的VOIP語音而制定的協定,它歸納和簡化了H.323協定的基本通話擴展和簡化協定,
在實際的套用中,由於H.323的套用較早,大量的駐地網關(RGW)採用的是H.323協定,這是一個歷史的原因。而事實上,MGCP卻能更好地實現RGW的接入。
採用MGCP協定實現IP語音接入的優點
RGW的智慧型大為降低,易於開發;
2.MGCP採用文本方式編碼,且結構非常簡單,易於理解,便於開發和維護;
3.基於MGC的智慧型集中管理,運維和智慧型業務升級非常方便。MGC往往是放在機房的伺服器上,每個MGC可以控制成千上萬個RGW,這樣要進行系統升級或增加新的業務時,只需簡單地升級機房裡的MGC即可,而採用H.323協定時,需要挨家挨戶去升級每個RGW,這種方式非常不適合大規模部署;
4.MGCP不能繞過系統在兩個網關之間通話,而H.323網關、SIP網關均可以繞過系統實現兩者之間的通話;這與以通話計費作為運營利益保障的商業模式顯然是衝突的。
5.防止盜打危害。MGCP協定終端以DOMAINNAME註冊受控於MGC(或稱CA),無法獲得來自落地網關的IP位址信息,無法直接非法透傳。H.323協定終端以IP位址方式註冊受控於GK,能夠獲得來自基於H.323協定落地網關方面的信息,包括IP位址訊息,有非常棘手的安全隱患。
6.呼叫建立速度快。一個呼叫至多在3秒內回響振鈴,而H.323協定可能用7秒時間。
7.撥號方式與普通電話完全相同,而H.323協定網關普遍需要在撥號尾端添加#號。
8.MGCP協定設備可以方便的實現動態的NAT穿透,而H.323協定設備相對複雜和麻煩。
基於MGCP上述功能特性,使得MGCP協定得到了VOIP運營商的普遍認同,MGCP協定IAD設備已經在軟交換業務網路中得到了大規模的商用。MGCP的更高級版本H.248協定也已經確定和發布,隨著H.248協定不斷為用戶熟悉,會有支持該協定的IAD設備與用戶見面,屆時,MGCP協定的一些局限,如不能方便支持視頻會議功能,也將在H.248協定中得以解決。
MGCP呼叫模型
3.1MGCP呼叫控制結構
MGCP協定在RFC2705中進行了定義,主要用於控制來自外部呼叫控制單元的IP語音(VoIP)網關。
MGCP定義了一種呼叫控制結構,這種結構使得呼叫控制與業務承載相分離,如圖1所示。
圖1 呼叫控制模型結構
從圖4.27中可以看出,MGCP協定是一個主/從協定。呼叫控制由獨立於媒體網關的媒體網關控制器來完成。即通常情況下,MGC是“主”,MG是“從”,而MG需要被動地執行MGC發出的命令。但也有兩種情況是MG發出命令,MGC來接收,詳細內容參見MGCP訊息小節。
3.2MG分類
在這裡,MG是一種網路單元,在NGN體系結構中,MG可以分為如下幾種。
(1)中繼媒體網關(TrunkMediaGateway,TMG)
是位於電路交換網和IP分組網之間的網關,用於終結大量的數字電路。
(2)接入媒體網關(AccessMediaGateway,AMG)
用於將一種網路中的媒體轉換成另一種網路所要求的媒體格式。例如,AMG可完成電路交換網的承載通道和分組網的媒體流之間的轉換。
(3)通用媒體網關(UniversalMediaGateway,UMG)
主要完成媒體流格式轉換與信令轉換功能,具有TMG、內置信令網關、AMG等多種用途,可用於連線PSTN交換機、PBX、接入網、路由器、無線基站等多種設備。
3.3終端標識
端點由端點標識符來標識。端點標識符不區分大小寫,由兩部分組成。第一部分是該端點所在的網關的域名,第二部分是該端點在網關內的本地名稱,它們之間用@來分隔,就像是一個E-mail地址。本地名稱的語法取決於端點的類型,可以具有層次結構,以形成一個從網關名到各端點的命名路徑,端點標識遵循下面的約定。
(1)每個命名路徑的標識項必須用單個斜槓(/)分隔。
(2)每個標識項都是一個由字母、數字或者其他可列印字元組成的字元串,該字元串中不包括定界符號(/、@)和空格。
(3)本地名中可以用通配符“*”和“$”,前者表示這一層上的所有端點,後者表示在這一層上的某一端點,即前者具有“所有的”,而後者具有“任何一個”的含義。
在MGCP中,網關通過其域名(如mg1.anycompany.com)標識。本地名可以用物理接口名(如roger)和終端標識(接入媒體網關中電話號碼所對應的連線埠號)構成。該終端標識和物理接口名用斜槓(/)分隔。如媒體網關的端點名:roger/
[email protected],指域名為mg1.anycompany.com的媒體網關roger接口的第1個連線埠。
MGCP系統結構和呼叫流程
4.1MGCP協定棧
MGCP協定是一種信令協定,它定義在UDP/IP之上。即MGCP使用的網路層協定是IP,傳輸層協定是UDP。這就保證了MGCP協定獨立於底層承載協定之上,如圖2所示。
4.2MGCP訊息
(1)MGCP命令訊息
①MGCP命令格式。MGCP命令由命令行和參數行組成,其中,命令行的格式如下:
命令動詞事務ID端點IDMGCP1.0
參數行由若干組“參數名:參數值”對組成。
具體如圖3所示。
圖2 MGCP協定棧
圖3 MGCP命令格式
②MGCP命令嵌套。允許一層命令嵌套,一般用於創建和通知。
③MGCP命令。MGCP命令訊息包括連線處理和端點處理命令,總共九個命令,如表1所示。
表1MGCP命令訊息
代碼 | 方 向 | 命令名稱 | 命令描述 |
EPCF | MGC→MG | EndpointConfiguration | 用來規定在端點上接收的信號的編碼(是A-law還是m-law)。呼叫代理使用該命令可以將這些信息傳給相應的網關 |
RQNT | MGC→MG | NotificationRequest | 請求網關監視某端點發生的某些事件,如發生,則通知呼叫代理 |
NTFY | MG→MGC | Notify | 網關通知呼叫代理,請求監視的某些事件已發生 |
CRCX | MGC→MG | CreateConnection | 呼叫代理用此命令將某端點和指定的IP位址和UDP連線埠關聯。另外還需要向遠端端點傳送一個創建連線命令,這樣才能建立兩個端點間的連線 |
MDCX | MGC→MG | ModifyConnection | 修改先前建立連線的參數,呼叫代理用該命令將第二個端點的“會話描述”(IP位址、UDP連線埠和打包參數等信息)提供給第一個端點。一旦該過程完成,雙方可以進行雙向通信 |
續表
代碼 | 方 向 | 命令名稱 | 命令描述 |
DLCX | MGC→MG | DeleteConnection | 刪除先前建立的連線 |
AUEP | MGC→MG | AuditEndpoints | 呼叫代理獲得單個端點或一組端點的詳細信息 |
AUCX | MGC→MG | AuditConnection | 呼叫代理獲得端點上連線的詳細信息 |
RSIP | MG→MGC | RestartInProcess | 網關通知端點退出服務或投入服務 |
④命令參數。
a.回響證實(K)
指明已收到回響命令的事務標識。
b.承載信息(B)
指示承載屬性。
c.呼叫ID(C)
是一個全局唯一的參數,它用來標識連線的呼叫(會話)。屬於同一個呼叫的連線共享相同的呼叫標識。用十六進制字元串表示,至多32個字元。
d.連線ID(I)
用於標識連線,用十六進制字元串表示,至多32個字元。
e.被通知實體(N)
被通知實體,用來指定通知送到什麼地方。當缺少該參數時,通知將發給通知請求的始發者。
f.請求ID(X)
請求標識,用於將請求和它所觸發的通知關聯起來。用十六進制字元串表示,至多32個字元。
g.本地連線選項(L)
本地連線選項是呼叫代理建議網關的可選參數。這些參數為:以ms為單位的打包時長(p),首選的壓縮算法(a),以kbit/s為單位的頻寬(b),回聲取消參數(e),增益控制參數(gc),靜音抑制參數(s),業務類型參數(t),資源保留參數(r),加密密鑰(k),網路類型(nt)。每個參數都是可選的,當有多個參數出現時,它們的值用逗號分隔。
h.連線模式(M)
連線模式描述連線的操作模式。
i.被請求的事件(R)
提供一系列已經被請求的事件。每個事件受一個請求的動作限制,或者受一系列動作的限制。
j.請求信號(S)
提供已經被請求的信號名。
k.檢測到的事件(O)
檢測到的事件參數提供一個已經觀察到的事件列表。
l.連線參數(P)
連線參數使用類型字元串和參數值進行編碼,其中類型可以為參數類型標識,也可以是擴展類型,參數值為一個十進制整數。類型和參數值之間用“=”分隔。參數之間用逗號分隔。
m.原因碼(E)
在由媒體網關或MGCP終端發起的刪除連線命令或者重啟進程命令中,必須包含原因碼(ReasonCodes),用來表明刪除連線或者重啟的原因。
n.指定端點ID(Z)
網關指定的連線埠ID,在創建連線回響中返回。是可選參數,用來標識回響端點。
o.請求的信息(F)
當指定了一個非通配的端點標識,請求的信息用於描述指定端點的請求信息。
p.隔離處理(Q)
隔離處理定義怎樣處理“隔離”事件,即在通知請求命令到達之前,網關已經檢查到的事件,但是還沒有將該事件通知呼叫代理。
q.檢測事件(T)
在隔離模式下當前被檢查的事件列表。檢測事件參數是用逗號分隔的一組事件編碼。
r.重啟方式(RM)
重啟方式參數指定重啟類型,該參數使用以下關鍵字。
graceful:表示指定的端點將在指定的延時之後退出服務。已經建立的連線不受影響,但是呼叫代理避免建立新連線,並且試圖文明拆除該存在的連線。
forced:表示指定端點突然退出服務。已經建立的連線會丟失。
restart:表示在確定的重啟延時之後恢復該端點上的服務。當前該端點上還沒有已經建立的連線。
disconnected:表示指定的端點已經被分離,並且試圖建立連線。“重啟時延”指定了該端點分離了多少秒。已經建立的連線不受影響。
cancel-graceful:此方式表示該網關正在取消先前發出的“文明重啟”命令。
s.重啟動時延(RD)
重啟延時,以s為單位。如果不提供該參數,則認為延時時間為無效。
t.事件狀態(ES)
該參數是用逗號分隔的一組事件編碼。
u.性能(A)
當端點被監察時,性能參數通知呼叫代理關於該端點的性能。
v.遠端連線描述語(RC)
用於描述被連線的終端信息,它和本地連線包含相同的域(IP位址、UDP連線埠和打包參數)。對於建立連線命令,當不知道遠端情況時,該參數為空值。
w.本地連線描述語(LC)
包括適合於本地連線的IP位址和連線埠號等會話描述。
(2)MGCP回響訊息
所有的MGCP命令都要接收者回送回響。
①MGCP回響格式。和MGCP命令的格式類似,回響格式由回響行後接一組可選參數行組成。
回響行由回響碼、事務標識和一個由空格隔開的可選注釋組成。
參數行與MGCP命令的格式一樣,這裡不再贅述。
MGCP具體回響格式如圖4所示。
圖4 MGCP回響格式
②MGCP回響碼定義。回響碼為一整數,共四組,如表2所示。是否返回應答參數,依賴於特定的命令。
表2MGCP回響碼範圍含義
回響碼範圍 | 回響碼範圍含義 |
100~199 | 表示臨時應答 |
200~299 | 表明命令成功完成 |
400~499 | 表明命令執行時遇到一個臨時性的錯誤(transienterror) |
500~599 | 表明命令執行時遇到一個永久性的錯誤(permanenterror) |
詳細的回響碼含義如表3所示。
表3詳細的MGCP回響碼及其含義
響 應 碼 | 回響碼含義 |
200 | 請求的事務已經被正常執行 |
250 | 連線被刪除 |
400 | 由於突發錯誤,不能執行該事務 |
401 | 電話已經摘機 |
402 | 電話已經掛機 |
403 | 由於此時端點沒有充足的資源,不能執行該事務 |
404 | 該時頻寬不足 |
500 | 由於端點未知,該事務不能被執行 |
501 | 由於端點未就緒,該事務不能被執行 |
502 | 由於端點沒有充足的資源,該事務不能被執行 |
510 | 由於檢查到協定錯誤,該事務不能被執行 |
511 | 由於命令中包含不能識別的擴展名,該事務不能被執行 |
512 | 由於網關沒有配置檢查請求事件的能力,該事務不能被執行 |
513 | 由於網關沒有配置產生請求信號的能力,該事務不能被執行 |
514 | 由於網關不能傳送指定的通知音,該事務不能被執行 |
515 | 該事務涉及一個錯誤的連線標識(該連線可能已經被刪除) |
516 | 該事務涉及一個錯誤的呼叫標識 |
517 | 不支持或者無效的模式 |
518 | 不支持或者未知的訊息包 |
519 | 端點不存在數字表收號方式 |
續表
響 應 碼 | 回響碼含義 |
520 | 由於端點“正在重啟”,該事務不能被執行 |
521 | 端點已經被重定向到其他呼叫代理 |
522 | 沒有該事件或者信號 |
523 | 未知的動作或者非法的動作組合 |
524 | LocalConnectionOptions |
526 | 頻寬不夠 |
527 | 缺少RemoteConnectionDescriptor |
528 | 不兼容的協定版本 |
529 | 內部硬體故障 |
530 | CAS |
531 | 中繼群故障(例如設備故障) |
4.3MGCP主要呼叫流程
(1)對整個接入設備註冊
接入設備註冊是對整個接入設備向控制器發起註冊,MG必須首先向MGC註冊,才能完成隨後正常的流程接續。當MG設備用戶數比較多時將需要較長的時間,通常這個過程是在MG設備加電冷啟動的時候進行。詳細過程如圖5所示。
圖5 網關註冊流程
註冊流程分為以下幾個步驟完成。
①MG向MGC發出RSIP命令要求註冊。
②MGC收到RSIP後,計算是否為合法註冊,如果合法,就認證通過,傳送ACK。
③MGC下發檢測摘機RQNT命令,並建議摘機事件為永久事件。
④MG向MGC傳送回應ACK訊息。
⑤MGC定期向MG傳送RQNT命令進行鑒權。
⑥MG回送ACK回響訊息。
⑦MG用NTFY向MGC回送鑒權應答。
⑧MGC向MG傳送ACK回響。
(2)單個終端註冊
當MG已經啟動完畢,並且現有MG上的終端設備都已經註冊完畢時,如果在MG上增加了新的終端設備,那么終端設備將通過MG向MGC發起單個終端的註冊過程。詳細過程如圖6所示。
①MG向MGC傳送RSIP命令,重啟方式為restart。
②MGC迴響應ACK。
③MGC向MG傳送RQNT命令,建議監視摘機。
④MG迴響應ACK。
(3)註銷過程
MG在退出服務時向MGC傳送RSIP命令,通知MGC本MG上所有端點退出服務。這個註銷流程除了適應整個MG設備退出服務,也適用於單個端點退出服務,如圖7所示。
圖6 單個終端註冊流程
圖7 註銷流程
①MG向MGC傳送RSIP命令,重啟方式為forced。
②MGC向MG迴響應ACK。
(4)同一MGC控制下的兩個MG設備間的呼叫建立流程
具體流程如圖8所示。
圖8 同一MGC控制下的呼叫建立流程
(5)同一MGC控制下的兩個MG設備間的呼叫釋放流程
具體流程如圖9所示。
圖9 同一MGC控制下的呼叫釋放流程