-
MGCP協議
鎖定
原則上,MGCP協定與前兩者皆不同,H.323和SIP協議是專門針對網絡電話及IP網絡所提出的兩套各自獨立的標準,兩者間並不兼容及互通。反觀MGCP協議,則與IP電話網絡無關,而只涉及網關分解上的問題,也因為如此,該協議可同時適用於支持H.323或SIP協議的網絡電話系統。
MGCP協議制定的主要目的在於將網關功能分解成負責媒體流處理的媒體網關(MG),以及掌控呼叫建立與控制的媒體網關控制器(MGC)兩大部分。同時MG在MGC的控制下,實現跨網域的多媒體電信業務。
由於MGCP更加適應需要中央控管的通信服務模式,因此更符合電信營運商的需求。在大規模網絡電話網中,集中控管是一件非常重要的事情,透過MGCP可利用MGC統一處理分發不同的服務給MG。
- 中文名
- MGCP協議
- 全 稱
- 媒體網關控制協議
- 分 類
- VOIP 協議
- 制定時間
- 1999年
目錄
- 1 簡介
- 2 採用MGCP協議實現IP語音接入的優點
- 3 MGCP呼叫模型
- ▪ 3.1MGCP呼叫控制結構
- ▪ 3.2MG分類
- ▪ 3.3終端標識
- 4 MGCP系統結構和呼叫流程
- ▪ 4.1MGCP協議棧
- ▪ 4.2MGCP消息
- ▪ 4.3MGCP主要呼叫流程
MGCP協議簡介
協議是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協議採用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協議MGCP呼叫模型
MGCP協議3.1MGCP呼叫控制結構
MGCP協議在RFC2705中進行了定義,主要用於控制來自外部呼叫控制單元的IP語音(VoIP)網關。
MGCP定義了一種呼叫控制結構,這種結構使得呼叫控制與業務承載相分離,如圖1所示。
從圖4.27中可以看出,MGCP協議是一個主/從協議。呼叫控制由獨立於媒體網關的媒體網關控制器來完成。即通常情況下,MGC是“主”,MG是“從”,而MG需要被動地執行MGC發出的命令。但也有兩種情況是MG發出命令,MGC來接收,詳細內容參見MGCP消息小節。
MGCP協議3.2MG分類
在這裏,MG是一種網絡單元,在NGN體系結構中,MG可以分為如下幾種。
(1)中繼媒體網關(TrunkMediaGateway,TMG)
是位於電路交換網和IP分組網之間的網關,用於終結大量的數字電路。
(2)接入媒體網關(AccessMediaGateway,AMG)
用於將一種網絡中的媒體轉換成另一種網絡所要求的媒體格式。例如,AMG可完成電路交換網的承載通道和分組網的媒體流之間的轉換。
(3)通用媒體網關(UniversalMediaGateway,UMG)
主要完成媒體流格式轉換與信令轉換功能,具有TMG、內置信令網關、AMG等多種用途,可用於連接PSTN交換機、PBX、接入網、路由器、無線基站等多種設備。
MGCP協議3.3終端標識
端點由端點標識符來標識。端點標識符不區分大小寫,由兩部分組成。第一部分是該端點所在的網關的域名,第二部分是該端點在網關內的本地名稱,它們之間用@來分隔,就像是一個E-mail地址。本地名稱的語法取決於端點的類型,可以具有層次結構,以形成一個從網關名到各端點的命名路徑,端點標識遵循下面的約定。
(1)每個命名路徑的標識項必須用單個斜槓(/)分隔。
(2)每個標識項都是一個由字母、數字或者其他可打印字符組成的字符串,該字符串中不包括定界符號(/、@)和空格。
(3)本地名中可以用通配符“*”和“$”,前者表示這一層上的所有端點,後者表示在這一層上的某一端點,即前者具有“所有的”,而後者具有“任何一個”的含義。
在MGCP中,網關通過其域名(如mg1.anycompany.com)標識。本地名可以用物理接口名(如roger)和終端標識(接入媒體網關中電話號碼所對應的端口號)構成。該終端標識和物理接口名用斜槓(/)分隔。如媒體網關的端點名:roger/1@mg1.anycompany.com,指域名為mg1.anycompany.com的媒體網關roger接口的第1個端口。
MGCP協議MGCP系統結構和呼叫流程
MGCP協議4.1MGCP協議棧
MGCP協議是一種信令協議,它定義在UDP/IP之上。即MGCP使用的網絡層協議是IP,傳輸層協議是UDP。這就保證了MGCP協議獨立於底層承載協議之上,如圖2所示。
MGCP協議4.2MGCP消息
(1)MGCP命令消息
①MGCP命令格式。MGCP命令由命令行和參數行組成,其中,命令行的格式如下:
命令動詞事務ID端點IDMGCP1.0
參數行由若干組“參數名:參數值”對組成。
具體如圖3所示。
②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所示。
②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 | 中繼羣故障(例如設備故障) |
MGCP協議4.3MGCP主要呼叫流程
(1)對整個接入設備註冊
接入設備註冊是對整個接入設備向控制器發起註冊,MG必須首先向MGC註冊,才能完成隨後正常的流程接續。當MG設備用户數比較多時將需要較長的時間,通常這個過程是在MG設備加電冷啓動的時候進行。詳細過程如圖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所示。
①MG向MGC發送RSIP命令,重啓方式為forced。
②MGC向MG迴響應ACK。
(4)同一MGC控制下的兩個MG設備間的呼叫建立流程
具體流程如圖8所示。
(5)同一MGC控制下的兩個MG設備間的呼叫釋放流程
具體流程如圖9所示。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:5次歷史版本
- 最近更新: 皮皮唱唱