目錄

簡介

必要條件

需求

採用元件

背景資訊

通用定義

MGCP基礎知識

基本流程

終結點識別符號

MGCP的基本配置

網關CLI配置

CUCM配置

終端註冊和呼叫設定

MGCP端點註冊

MGCP呼叫設定

排除MGCP故障

相關資訊

簡介

本文說明如何設定媒體閘道控制通訊協定(MGCP)並疑難排解。MGCP是呼叫代理/終端協定。

必要條件

需求

本文件沒有特定需求。

採用元件

- 思科整合通訊管理員11.5

- VG320

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

註：本文檔使用配置示例以及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:

資料跟蹤器 — 通知請求