簡介
本文說明如何設定媒體閘道控制通訊協定(MGCP)並疑難排解。MGCP是呼叫代理/終端協定。
必要條件
需求
本文件沒有特定需求。
採用元件
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
註:本文檔使用配置示例以及debug和show命令輸出作為參考點。本檔案中的許多功能已清楚標示為功能已匯入Cisco IOS®和Cisco IOS® XE的版本。
通用定義
屬性 |
定義 |
通話代理 |
扮演主要角色並提供集中呼叫智慧的呼叫控制元素。 |
端點 |
端點是呼叫代理控制的裝置。例如:FXO、FXS或DS0通道。 |
PSTN |
公共交換電話網路。 |
MGCP基礎知識
媒體閘道控制通訊協定(MGCP)由RFC 2705定義。MGCP是一種呼叫代理/終端協定,其中終端由某種型別的呼叫代理控制。整個控制智慧由呼叫代理控制,呼叫代理會指示終端在檢測到事件後執行什麼操作。MGCP使用TCP埠2428和UDP埠2427。
MGCP中的TCP埠2428用於開啟帶有呼叫代理的新套接字,以確定是否可以建立連線。如果沒有此新套接字,後續的MGCP消息將無法交換。它還用於在PRI終端與其註冊到的呼叫代理之間傳送/接收回傳消息。最後,TCP埠2428用於在主呼叫代理無響應時故障切換至備份呼叫代理。
MGCP中的UDP埠2427用於終端和呼叫代理之間交換的MGCP消息。
基本流程
以下是基本MGCP流量的範例。您可以在此範例中看到閘道從此語音閘道(端點)上的PSTN接收新呼叫。然後,網關將收到的新呼叫通知呼叫代理(CUCM),然後呼叫代理指示網關為此新呼叫建立連線。最後,網關向呼叫代理傳送一個OK以建立呼叫。
終結點識別符號
每個端點都需要一個識別符號,以便呼叫代理能夠確定它需要傳送事件的人或事件的來源。端點識別符號有兩個主要元件:
- 網關中的本地名稱(不區分大小寫)。
- 管理終結點的網關的域名(區分大小寫)。
示例:
- AALN/S1/SU0/0@AV-VG200-2.cisco.com
- S0/SU0/DS1-0@AV-VG200-1
MGCP的基本配置
本檔案將每個組態元件分割為多個單獨步驟。
網關CLI配置
在計畫註冊到CUCM的模擬網關上,這是實際所需的最低配置。您只需新增此配置即可開始註冊過程,因為其餘配置隨後會從CUCM下載:
VG320(config)# mgcp call-agent 10.50.217.100 2427 service-type mgcp version 0.1
VG320(config)# ccm-manager config server 10.50.217.100
VG320(config)# ccm-manager config
VG320(config)# ccm-manager mgcp
VG320(config)# mgcp
**Note on the ISR4000s if you fail to down load your configuration file, you must add the command:
VG320(config)# ip tftp source-interface GigabitEthernet x/x/x
CUCM配置
要在CUCM中配置MGCP網關,您需要登入到Cisco Unified CM Administration。登入後,導航到Device > Gateway:
上一個選擇在「查詢並列出網關」(Find and List Gateway)頁面啟動。在此處,您需要選擇帶加號的Add New按鈕:
選擇Add New後,系統將提示您選擇網關型別。使用此下拉選單可以選擇您計畫註冊的硬體,然後選擇下一步為此裝置選擇所需的協定(您需要選擇MGCP):
選擇使用的硬體和協定後,您需要配置域名、Cisco Unified Communications Manager組和模組資訊。以下是通過MGCP註冊終端所需的主要欄位。
域名由1至2個部分組成。在Domain Name欄位中至少需要輸入路由器的Host Name。在我的方案中,主機名是:
VG320
但是,如果在網關上配置了域名,則需要配置此裝置的完全限定域名:
現在,選擇Save。這將更新頁面並允許您選擇子單位。選擇子單位後,請再次選擇儲存。現在,您可以看到您的可設定連線埠:
若要立即配置終端,請按一下將模擬裝置插入到的埠(在我們的情況下為0/0/0)。選擇連線埠後,系統會提示您設定連線埠型別:
在這種情況下,您選擇POTS。選中此選項後,您可以像為任何其他Call Manager端點那樣為裝置資訊輸入所有必要的值。唯一的必需欄位是Device Pool,但您可以輸入其他值,如呼叫搜尋空間。完成此操作後,您可以按一下Save。此時,您現在會看到左側窗格已為您填寫Add a new DN欄位。現在,您可以將DN與此連線埠關聯、儲存和應用組態。完成此操作後,回到port configuration頁面,您現在可以看到埠已註冊:
終端註冊和呼叫設定
本節介紹MGCP端點註冊和呼叫設定的基礎知識。其中包括網關與呼叫代理互動時看到的命令消息。在此場景中,CUCM是我們的呼叫代理。
MGCP端點註冊
為了使MGCP端點註冊到CUCM,網關開啟TCP套接字2428到CUCM。在此處,它使用UDP埠2427傳送命令消息。一旦套接字開啟,網關會向CUCM傳送一個RSIP命令,通知它重啟時必須將終端從服務中移除,CUCM會傳送一個簡單的確認消息。重新啟動完成後,CUCM會傳送一個引數為R: L/hd的RQNT。這表示網關必須通知CUCM摘機事件。
此時,CUCM將稽核終端(AUEP)傳送到網關以確定給定終端的狀態。來自網關的響應是帶有終端功能的ACK。完成此操作後,終端即向CUCM註冊。以下是偵錯輸出範例:
000138: *Apr 23 19:41:49.010: MGCP Packet sent to <CUCM IP>:2427--->
RSIP 39380951 aaln/S0/SU0/0@VG320.dillbrowLab.local MGCP 0.1
RM: restart
<---
000139: *Apr 23 19:41:49.030: MGCP Packet received from <CUCM IP>:2427--->
200 39380951
<---
000140: *Apr 23 19:41:49.030: MGCP Packet received from <CUCM IP>:2427--->
RQNT 3 AALN/S0/SU0/0@VG320.dillbrowLab.local MGCP 0.1
X: 2
R: L/hd
Q: process,loop
<---
000141: *Apr 23 19:41:49.030: MGCP Packet sent to <CUCM IP>:2427--->
200 3 OK
<---
000142: *Apr 23 19:41:49.050: MGCP Packet received from <CUCM IP>:2427--->
AUEP 4 AALN/S0/SU0/0@VG320.dillbrowLab.local MGCP 0.1
F: X, A, I
<---
000143: *Apr 23 19:41:49.050: MGCP Packet sent to <CUCM IP>:2427--->
200 4
I:
X: 2
L: p:10-20, a:PCMU;PCMA;G.nX64, b:64, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-220, a:G.729;G.729a;G.729b, b:8, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-110, a:G.726-16;G.728, b:16, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-70, a:G.726-24, b:24, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-50, a:G.726-32, b:32, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:30-270, a:G.723.1-H;G.723;G.723.1a-H, b:6, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:30-330, a:G.723.1-L;G.723.1a-L, b:5, e:on, gc:1, s:on, t:10, r:g, nt:IN, v:T;G;D;L;H;R;ATM;SST;PRE
M: sendonly, recvonly, sendrecv, inactive, loopback, conttest, data, netwloop, netwtest
<---
MGCP呼叫設定
上一個影象是出站呼叫的示例。
您可以看到,您的呼叫代理(本例中為CUCM)從已恢復至網關的CRCX開始,以便為呼叫建立連線。網關以200 OK作出響應,其中包含所支援內容的SDP。完成此交換後,CUCM會向網關傳送帶有引數S: G/rt的RQNT消息。這指示網關向裝置播放回鈴音。在遠端收到呼叫並接聽後,CUCM隨後將帶SDP的MDCX傳送到網關,使其知道遠端裝置的媒體資訊。網關發回一個簡單的200 OK來確認這一點,此時您有雙向媒體。
現在呼叫已應答,CUCM會傳送另一個引數為R: D/[0-9ABCD*#]的RQNT。這指示網關讓CUCM知道呼叫處於活動狀態時按下的任何DTMF,以便將其中繼到下一裝置。
呼叫完成後,CUCM會向Gateway傳送一個MDCX,並使用M:recvonly終止介質,然後使用DLCX斷開呼叫。以下是偵錯輸出範例:
001005: *May 13 14:28:15.633: MGCP Packet received from <CUCM IP>:2427--->
CRCX 174 AALN/S0/SU1/0@VG320.dillbrowLab.local MGCP 0.1
C: A000000001b79063000000F5
X: 21
L: p:20, a:PCMU, s:off, t:b8
M: recvonly
R: L/hu
Q: process,loop
<---
001006: *May 13 14:28:15.637: MGCP Packet sent to <CUCM IP>:2427--->
200 174 OK
I: 6
v=0
c=IN IP4 <Gateway IP>
m=audio 16410 RTP/AVP 0 101 100
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtpmap:100 X-NSE/8000
a=fmtp:100 192-194
<---
001007: *May 13 14:28:15.789: MGCP Packet received from <CUCM IP>:2427--->
RQNT 175 AALN/S0/SU1/0@VG320.dillbrowLab.local MGCP 0.1
X: 22
R: L/hu
S: G/rt
Q: process,loop
<---
001008: *May 13 14:28:15.789: MGCP Packet sent to <CUCM IP>:2427--->
200 175 OK
<---
001009: *May 13 14:28:17.793: MGCP Packet received from <CUCM IP>:2427--->
MDCX 176 AALN/S0/SU1/0@VG320.dillbrowLab.local MGCP 0.1
C: A000000001b79063000000F5
I: 6
X: 23
L: p:20, a:PCMU, s:off, t:b8
M: sendrecv
R: L/hu, L/hf, D/[0-9ABCD*#]
S:
Q: process,loop
v=0
o=- 6 0 IN EPN AALN/S0/SU1/0@VG320.dillbrowLab.local
s=Cisco SDP 0
t=0 0
m=audio 18946 RTP/AVP 0 101
c=IN IP4 <Phone IP>
a=rtpmap:101 telephone-event
a=fmtp:101 0-15
<---
001010: *May 13 14:28:17.797: MGCP Packet sent to <CUCM IP>:2427--->
200 176 OK
<---
001011: *May 13 14:28:17.797: MGCP Packet received from <CUCM IP>:2427--->
RQNT 177 AALN/S0/SU1/0@VG320.dillbrowLab.local MGCP 0.1
X: 24
R: L/hu, D/[0-9ABCD*#], L/hf
S:
Q: process,loop
<---
001012: *May 13 14:28:17.797: MGCP Packet sent to <CUCM IP>:2427--->
200 177 OK
<---
001015: *May 13 14:28:20.813: MGCP Packet received from <CUCM IP>:2427--->
DLCX 178 AALN/S0/SU1/0@VG320.dillbrowLab.local MGCP 0.1
C: A000000001b79063000000F5
I: 6
X: 25
R: L/hd
S:
Q: process,loop
<---
001016: *May 13 14:28:20.845: MGCP Packet sent to <CUCM IP>:2427--->
250 178 OK
P: PS=151, OS=24160, PR=146, OR=23360, PL=0, JI=0, LA=0
<---
排除MGCP故障
當您對MGCP進行故障排除時,您可以檢視一些有幫助的show命令和調試,以確定註冊或呼叫失敗的原因。一個很好的入手點是檢查您的MGCP網關是否已註冊到呼叫代理。您可以通過show命令show ccm-manager或show mgcp檢查此情況:
VG320# show ccm-manager
MGCP Domain Name: VG320.dillbrowLab.local
Priority Status Host
============================================================
Primary Registered <CUCM IP>
First Backup None
Second Backup None
Current active Call Manager: <CUCM IP>
Backhaul/Redundant link port: 2428
Failover Interval: 30 seconds
Keepalive Interval: 15 seconds
Last keepalive sent: 17:42:40 UTC Jul 12 2019 (elapsed time: 00:00:15)
Last MGCP traffic time: 17:42:55 UTC Jul 12 2019 (elapsed time: 00:00:00)
VG320# show mgcp
MGCP Admin State ACTIVE, Oper State ACTIVE - Cause Code NONE
MGCP call-agent: <CUCM IP> 2427 Initial protocol service is MGCP 0.1
MGCP validate call-agent source-ipaddr DISABLED
MGCP validate domain name DISABLED
MGCP block-newcalls DISABLED
這些命令已縮短,僅包含相關輸出。有關其他資訊,您可以檢視以下show輸出:
show mgcp
show mgcp endpoint
show mgcp connection
show ccm-manager
show voice port summary
show isdn status
show controller [t1/e1] x/x/x
show call active voice brief
顯示語音呼叫摘要
顯示語音呼叫狀態
如果前面的show命令簽出,您可以在裝置上運行這些調試,以進一步確定呼叫失敗的原因:
debug mgcp [endpoint | 錯誤 | 活動 | packets]
debug mgcp all(用於高級調試)
debug ccm-manager [回程 | config-download | 錯誤 | 活動]
debug voip ccapi inout
debug vpm signal
debug voip vtsp session
debug isdn q931
對於解決註冊和呼叫建立問題所需的功能,以上調試是很好的起點。
相關資訊
RFC 2705:
資料跟蹤器 — 通知請求