简介
本文档介绍如何配置媒体网关控制协议(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:
数据跟踪器 — 通知请求