Introducción
Este documento describe cómo configurar y resolver problemas del Protocolo de control de gateway de medios (MGCP). MGCP es un protocolo de agente de llamadas/terminal.
Prerequisites
Requirements
No hay requisitos específicos para este documento.
Componentes Utilizados
- Cisco Unified Communications Manager 11.5
- VG320
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Nota: Este documento utiliza ejemplos de configuración, así como resultados de los comandos debug y show como puntos de referencia. Las numerosas funciones de este documento están claramente marcadas con la versión que la función se introdujo tanto en Cisco IOS® como en Cisco IOS® XE.
Definiciones comunes
Atributo |
Definición |
Agente de llamadas |
Los elementos de control de llamadas que desempeñan la función principal y proporcionan inteligencia de llamadas centralizada. |
Terminales |
Los terminales son los dispositivos que controla el agente de llamadas. Por ejemplo: FXO, FXS o un canal DS0. |
PSTN |
Red telefónica pública conmutada. |
Fundamentos de MGCP
El protocolo de control de gateway de medios (MGCP) se define en RFC 2705. MGCP es un protocolo Call Agent/Endpoint, donde el Endpoint es controlado por un Call Agent de algún tipo. Toda la inteligencia de control está controlada por un agente de llamadas que indica al terminal qué acción debe realizar una vez que se detecta un evento. MGCP utiliza los puertos TCP 2428 y UDP 2427.
El puerto TCP 2428 en MGCP se utiliza para abrir un nuevo socket con el Call Agent para determinar si se puede establecer la conexión. Sin este nuevo socket, los mensajes MGCP subsiguientes no se pueden intercambiar. También se utiliza para enviar/recibir mensajes de retorno entre los terminales PRI y el agente de llamadas con el que está registrado. Por último, el puerto TCP 2428 se utiliza para conmutar por error a los agentes de llamada de respaldo en caso de que un agente de llamada primario no responda.
El puerto UDP 2427 en MGCP se utiliza para los mensajes MGCP intercambiados entre los terminales y los agentes de llamadas.
Flujo básico
Este es un ejemplo de un flujo MGCP básico. Puede ver en el ejemplo que la puerta de enlace recibe una nueva llamada de la PSTN en esta puerta de enlace de voz (terminal). A continuación, la puerta de enlace notifica al agente de llamada (CUCM) la nueva llamada que se recibe y, a continuación, el agente de llamada indica a la puerta de enlace que cree una conexión para la nueva llamada. Por último, la puerta de enlace devuelve un mensaje OK al agente de llamada para establecer la llamada.
Identificadores de terminales
Se necesita un identificador por punto final para que el agente de llamada pueda determinar a quién debe enviar un evento o de dónde procede un evento. Los identificadores de terminales tienen dos componentes principales:
- Nombre local de la puerta de enlace (no distingue entre mayúsculas y minúsculas).
- Nombre de dominio de la puerta de enlace que gestiona el terminal (distingue entre mayúsculas y minúsculas).
Examples:
- AALN/S1/SU0/0@AV-VG200-2.cisco.com
- S0/SU0/DS1-0@AV-VG200-1
Configuración básica de MGCP
Este documento ha dividido cada uno de los componentes de la configuración en pasos individuales.
Configuración CLI de gateway
En la puerta de enlace analógica que planea registrar en CUCM, esta es la configuración mínima que se requiere en realidad. Solo tiene que agregar esta configuración para iniciar el proceso de registro, ya que el resto de la configuración se descarga de 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
Configuración de CUCM
Para configurar la puerta de enlace MGCP en CUCM, debe iniciar sesión en Administración de Cisco Unified CM. Una vez que haya iniciado sesión, navegue hasta Device > Gateway:
La selección anterior comienza en la página Find and List Gateway. En este caso, desea seleccionar el botón Add New con un signo más:
Después de seleccionar Add New, se le solicitará que elija un tipo de gateway. Utilice este menú desplegable para elegir el hardware que planea registrar y seleccione Siguiente para elegir el protocolo que desea para este dispositivo (debe seleccionar MGCP):
Ahora que ha seleccionado el hardware y el protocolo utilizados, debe configurar el nombre de dominio, el grupo de Cisco Unified Communications Manager y la información del módulo. Estos son los campos principales que se requieren para registrar un terminal a través de MGCP.
El nombre de dominio consta de 1 a 2 partes. Como mínimo, en el campo Domain Name, debe introducir el nombre de host del router. En mi escenario, el nombre de host es:
VG320
Sin embargo, si tiene un nombre de dominio configurado en el gateway, debe configurar el nombre de dominio completamente calificado de este dispositivo:
Ahora, elija Guardar. Esto actualiza la página y le permite seleccionar una subunidad. Una vez que haya seleccionado una subunidad, elija Guardar nuevamente. Ahora puede ver los puertos configurables:
Para configurar un terminal ahora, haga clic en el puerto en el que tiene su dispositivo analógico conectado (en nuestro caso, es 0/0/0). Una vez que haya seleccionado un puerto, se le solicitará que configure el tipo de puerto:
En este caso, seleccione POTS. Una vez seleccionado, puede introducir todos los valores necesarios para la información del dispositivo como lo haría para cualquier otro punto final de Call Manager. El único campo obligatorio es Grupo de dispositivos; sin embargo, puede introducir valores adicionales como un espacio de búsqueda de llamadas. Una vez hecho esto, puede hacer clic en Guardar. En este momento, verá que el panel izquierdo ha rellenado el campo Agregar un nuevo DN automáticamente. Ahora puede asociar un DN a este puerto, guardar y aplicar la configuración. Una vez hecho esto, en la página de configuración de puertos ahora puede ver el puerto como registrado:
Registro de terminales y configuración de llamadas
En esta sección, tratará los aspectos básicos de MGCP Endpoint Registration y Call Setup. Esto incluye los mensajes de comandos que se ven mientras la puerta de enlace interactúa con el agente de llamadas. En esta situación, CUCM es nuestro agente de llamadas.
Registro de terminales MGCP
Para que un terminal MGCP se registre en CUCM, la puerta de enlace abre el socket TCP 2428 en CUCM. Desde aquí, utiliza el puerto UDP 2427 para enviar mensajes de comando. Una vez que el socket está abierto, la puerta de enlace envía un comando RSIP a CUCM para informarle de que el terminal debe estar fuera de servicio mientras se produce el reinicio, y CUCM envía una confirmación simple al respecto. Una vez finalizado el reinicio, CUCM envía un RQNT con el parámetro R: L/hd. Esto significa que la puerta de enlace debe notificar a CUCM un evento de descolgado.
En este momento, CUCM envía un punto final de auditoría (AUEP) a la puerta de enlace para determinar el estado del punto final dado. La respuesta de la puerta de enlace es un ACK con las capacidades de los terminales. Una vez completada, el terminal se registra con CUCM. Este es un ejemplo de salida de depuración:
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
<---
Configuración de llamadas MGCP
La imagen anterior es un ejemplo de una llamada saliente.
Puede ver que su Call Agent, en este caso CUCM, comienza con un CRCX que se ha recuperado solo a la puerta de enlace para establecer la conexión para la llamada. La puerta de enlace responde con un 200 OK que contiene SDP para lo que admite. Una vez realizado este intercambio, CUCM envía un mensaje RQNT a la puerta de enlace con el parámetro S: G/rt. Indica a la puerta de enlace que reproduzca el tono de llamada en el dispositivo. Una vez que el otro extremo recibe la llamada y responde, CUCM envía un MDCX con SDP a la puerta de enlace para informarle de la información multimedia del dispositivo del otro extremo. La puerta de enlace devuelve un sencillo mensaje 200 OK para confirmarlo y, en este momento, dispone de medios bidireccionales.
Ahora que se ha contestado la llamada, CUCM envía otro RQNT con el parámetro R: D/[0-9ABCD*#]. Indica a la puerta de enlace que informe a CUCM de cualquier DTMF que se haya pulsado mientras la llamada está activa, de modo que se pueda retransmitir al siguiente dispositivo.
Una vez finalizada la llamada, CUCM envía un MDCX a la puerta de enlace con M: recvonly para finalizar el medio, seguido de un DLCX para desconectar la llamada. Este es un ejemplo de salida de depuración:
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
<---
Troubleshooting de MGCP
Cuando resuelve problemas de MGCP, hay algunos comandos show y depuraciones útiles que puede ver para determinar por qué falló el registro o una llamada. Un buen punto de partida es comprobar si la puerta de enlace MGCP está registrada en el agente de llamadas. Puede verificar esto a través del comando show show ccm-manager o 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
Estos comandos se han acortado para contener sólo el resultado pertinente. Para obtener información adicional, puede consultar estos resultados de show:
show mgcp
show mgcp endpoint
show mgcp connection
show ccm-manager
show voice port summary
mostrar estado isdn
show controller [t1/e1] x/x/x
show call active voice brief
show voice call summary
show voice call status
Si los comandos show anteriores desprotegen, puede ejecutar estas depuraciones en el dispositivo para determinar aún más por qué falló su llamada:
debug mgcp [endpoint | error | events | paquetes]
debug mgcp all (para depuración avanzada)
debug ccm-manager [backhaul | config-download | error | eventos]
debug voip ccapi inout
debug vpm signal
debug voip vtsp session
debug isdn q931
Las depuraciones anteriores son un buen punto de partida para lo que necesita para solucionar problemas de registro y configuración de llamadas.
Información Relacionada
RFC 2705:
Rastreador de datos - Solicitud de notificación