Introdução
Este documento descreve como configurar e solucionar problemas do Media Gateway Control Protocol (MGCP). O MGCP é um protocolo Call Agent/Endpoint.
Pré-requisitos
Requisitos
Não existem requisitos específicos para este documento.
Componentes Utilizados
- Cisco Unified Communications Manager 11.5
- VG320
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
Observação: este documento utiliza exemplos de configuração, bem como saídas dos comandos debug e show como pontos de referência. Os vários recursos neste documento estão claramente marcados com a versão que o recurso foi introduzido no Cisco IOS® e no Cisco IOS® XE.
Definições comuns
Atributo |
Definição |
Chamar agente |
Os elementos de controle de chamadas que desempenham a função principal e fornecem inteligência centralizada de chamadas. |
Endpoints |
Os endpoints são os dispositivos controlados pelos agentes de chamadas. Como: FXO, FXS ou um canal DS0. |
PSTN |
Public Switched Telephone Network (Rede de Telefonia Pública Comutada). |
Fundamentos de MGCP
O Media Gateway Control Protocol (MGCP) é definido pelo RFC 2705. O MGCP é um protocolo Call Agent/Endpoint, em que o Endpoint é controlado por um Call Agent de algum tipo. Toda a inteligência de controle é controlada por um agente de chamadas que instrui o endpoint sobre a ação a ser tomada quando um evento for detectado. O MGCP usa a porta TCP 2428 e a porta UDP 2427.
A porta TCP 2428 no MGCP é usada para abrir um novo soquete com o Agente de Chamada para determinar se a conexão pode ser estabelecida. Sem esse novo soquete, as mensagens de MGCP subsequentes não podem ser trocadas. Ele também é usado para enviar/receber mensagens de retorno entre os pontos finais PRI e o agente de chamadas no qual está registrado. Finalmente, a porta TCP 2428 é usada para failover para agentes de chamada de backup no caso de um agente de chamada principal não responder.
A porta UDP 2427 no MGCP é usada para mensagens MGCP trocadas entre os endpoints e os agentes de chamada.
Fluxo básico
Este é um exemplo de um fluxo de MGCP básico. Você pode ver no exemplo que o gateway recebe uma nova chamada do PSTN neste gateway de voz (endpoint). Em seguida, o Gateway notifica o Agente de Chamadas (CUCM) sobre a nova chamada recebida, e o Agente de Chamadas instrui o Gateway a criar uma conexão para essa nova chamada. Finalmente, o Gateway envia um OK de volta ao agente de chamadas para estabelecer a chamada.
Identificadores de ponto final
É necessário um identificador por endpoint para que o agente de chamadas possa determinar quem precisa enviar um evento ou de onde ele vem. Os Identificadores de endpoints têm dois componentes principais:
- Nome local nesse Gateway (não diferencia maiúsculas de minúsculas).
- Nome de Domínio do Gateway que gerencia o ponto de extremidade (diferencia maiúsculas de minúsculas).
Examples:
- AALN/S1/SU0/0@AV-VG200-2.cisco.com
- S0/SU0/DS1-0@AV-VG200-1
Configuração Básica de MGCP
Este documento dividiu cada um dos componentes de configuração em etapas individuais.
Configuração CLI do gateway
No gateway analógico que você planeja registrar no CUCM, essa é a configuração mínima realmente necessária. Você só precisa adicionar essa configuração para iniciar o processo de registro, já que o restante da configuração é baixado do 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
Configuração do CUCM
Para configurar o Gateway MGCP no CUCM, você precisa fazer login no Cisco Unified CM Administration. Depois de fazer login, navegue até Device > Gateway:
A seleção anterior inicia você na página Find and List Gateway. Nesse caso, você deseja selecionar o botão Add New com um sinal de adição:
Depois de selecionar Add New, você será solicitado a escolher um Tipo de gateway. Use este menu suspenso para escolher o hardware que você planeja registrar e selecione Próximo para escolher o protocolo desejado para este dispositivo (você precisa selecionar MGCP):
Agora que você selecionou o hardware e o protocolo usados, é necessário configurar o Nome do domínio, o Grupo do Cisco Unified Communications Manager e as Informações do módulo. Esses são os principais campos necessários para registrar um endpoint via MGCP.
O nome de domínio é composto de 1 a 2 partes. No mínimo, no campo Domain Name, você precisa digitar o Host Name do roteador. No meu cenário, o nome do host é:
VG320
No entanto, se você tiver um nome de domínio configurado no gateway, será necessário configurar o Nome de domínio totalmente qualificado deste dispositivo:
Agora, escolha Salvar. Isso atualiza a página e permite selecionar uma Subunidade. Depois de selecionar uma Subunidade, escolha Salvar novamente. Agora você pode ver suas portas configuráveis:
Para configurar um endpoint agora, clique na porta na qual o dispositivo analógico está conectado (no nosso caso, é 0/0/0). Depois de selecionar uma porta, você será solicitado a configurar o tipo de porta:
Nesse caso, selecione POTS. Uma vez selecionado, você pode digitar todos os valores necessários para as informações do dispositivo como faria para qualquer outro ponto final do Call Manager. O único campo obrigatório é Pool de dispositivos, no entanto, você pode inserir valores adicionais, como um Espaço de pesquisa de chamada. Depois de fazer isso, você pode clicar em Salvar. Neste ponto, você verá que o painel à esquerda preencheu o campo Add a new DN para você. Agora você pode associar um DN a essa porta, salvar e aplicar a configuração. Depois que isso for feito, na página de configuração da porta, você poderá ver a porta como registrada:
Registro de endpoint e configuração de chamada
Nesta seção, você aborda os conceitos básicos de registro de ponto final de MGCP e configuração de chamada. Isso inclui as Mensagens de Comandos vistas quando o Gateway interage com o Agente de Chamadas. Neste cenário, o CUCM é nosso agente de chamadas.
Registro de ponto final MGCP
Para que um endpoint MGCP se registre no CUCM, o Gateway abre o soquete TCP 2428 para o CUCM. A partir daqui, ele usa a porta UDP 2427 para enviar mensagens de comando. Quando o soquete estiver aberto, o Gateway enviará um comando RSIP ao CUCM para informá-lo de que o endpoint deve ser retirado de serviço enquanto ocorre a reinicialização, e o CUCM envia uma confirmação simples sobre isso. Após a conclusão da reinicialização, o CUCM envia um RQNT com o parâmetro R: L/hd. Isso denota que o Gateway deve notificar o CUCM sobre um evento fora do gancho.
Nesse ponto, o CUCM envia um AUEP (Audit Endpoint, ponto de extremidade de auditoria) ao Gateway para determinar o status de um determinado ponto de extremidade. A resposta do Gateway é um ACK com os recursos de endpoints. Quando isso for concluído, o endpoint será registrado no CUCM. Este é um exemplo de saída de depuração:
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
<---
Configuração de chamada MGCP
A imagem anterior é um exemplo de uma chamada de saída.
Você pode ver que seu Agente de Chamada, neste caso o CUCM, começa com um CRCX que tem acesso somente ao Gateway para estabelecer a conexão para a chamada. O Gateway responde com um 200 OK que contém o SDP para o que ele suporta. Quando essa troca for feita, o CUCM enviará uma mensagem RQNT ao Gateway com o parâmetro S: G/rt. Isso instrui o Gateway a reproduzir a chamada de volta para o dispositivo. Depois que a extremidade oposta recebe a chamada e a atende, o CUCM envia um MDCX com SDP para o Gateway para informá-lo sobre as informações de mídia do dispositivo da extremidade oposta. O Gateway devolve um simples 200 OK para confirmar isso e, nesse ponto, você tem uma mídia bidirecional.
Agora que a chamada foi atendida, o CUCM envia outro RQNT com o parâmetro R: D/[0-9ABCD*#]. Isso instrui o Gateway a informar ao CUCM sobre qualquer DTMF que seja pressionado enquanto a chamada está ativa, para que ele possa ser retransmitido para o próximo dispositivo.
Quando a chamada é concluída, o CUCM envia um MDCX ao Gateway com M: recvonly para encerrar a mídia, seguido por um DLCX para desconectar a chamada. Este é um exemplo de saída de depuração:
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
<---
Solucionar problemas de MGCP
Quando você soluciona problemas de MGCP, existem alguns comandos show úteis e depurações que você pode visualizar para determinar por que o registro ou uma chamada falhou. Um ótimo ponto de partida é verificar se o Gateway MGCP está Registrado no Agente de Chamadas. Você pode verificar isso por meio do comando show show ccm-manager ou 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
Esses comandos foram abreviados para conter apenas a saída pertinente. Para obter informações adicionais, consulte estas saídas de 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 ative voice brief
show voice call summary
show voice call status
Se os comandos show anteriores fizerem check-out, você poderá executar essas depurações no dispositivo para determinar ainda mais por que sua chamada falhou:
debug mgcp [endpoint | erro | events | pacotes]
debug mgcp all (para depuração avançada)
debug ccm-manager [backhaul | config-download | erro | eventos]
debug voip ccapi inout
debug vpm signal
debug voip vtsp session
debug isdn q931
As depurações anteriores são um ótimo ponto de partida para o que você precisa para solucionar problemas de registro e configuração de chamada.
Informações Relacionadas
RFC 2705:
Rastreador de Dados - Solicitação de Notificação