目录

简介

先决条件

要求

使用的组件

背景信息

通用定义

MGCP基础知识

基本流程

终端标识符

MGCP的基本配置

网关CLI配置

CUCM 配置

终端注册和呼叫设置

MGCP终端注册

MGCP呼叫设置

排除MGCP故障

相关信息

简介

本文档介绍如何配置媒体网关控制协议(MGCP)并对其进行故障排除。MGCP是呼叫代理/终端协议。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

- Cisco Unified Communications Manager 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终端一样输入设备信息的所有必需值。唯一的必填字段是设备池，但您可以输入其他值，如呼叫搜索空间。完成此操作后，您可以单击Save。此时，您会看到左侧窗格已为您填充Add a new DN字段。您现在可以将DN与此端口关联、保存并应用配置。完成此操作后，返回端口配置页面，您现在可以看到端口已注册：

终端注册和呼叫设置

本节介绍MGCP终端注册和呼叫设置的基础知识。这包括网关与呼叫代理交互时看到的命令消息。在此场景中，CUCM是我们的呼叫代理。

MGCP终端注册

对于要注册到CUCM的MGCP终端，网关将打开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会将MDCX发送到Gateway，并使用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 voice call summary

show voice call status

如果前面的show命令已签出，您可以在设备上运行这些调试，以进一步确定呼叫失败的原因：

debug mgcp [endpoint | 错误 | 事件 | 数据包]

debug mgcp all（用于高级调试）

debug ccm-manager [回程 | config-download | 错误 | 事件]

debug voip ccapi inout

debug vpm signal

debug voip vtsp session

debug isdn q931

对于解决注册和呼叫设置问题所需的功能，以上调试是很好的起点。

相关信息

RFC 2705：

数据跟踪器 — 通知请求