概要
このドキュメントでは、メディアゲートウェイコントロールプロトコル(MGCP)の設定およびトラブルシューティング方法について説明します。MGCPは、コールエージェント/エンドポイントプロトコルです。
前提条件
要件
このドキュメントに特有の要件はありません。
使用するコンポーネント
- Cisco Unified Communications Manager 11.5
- VG320
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
注:このドキュメントでは、参照ポイントとして、設定例と、デバッグおよび 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をコールエージェントに送信してコールを確立します。

エンドポイントID
コールエージェントがイベントを送信する必要があるユーザやイベントの発信元を判断できるようにするには、エンドポイントごとにIDが必要です。エンドポイントIDには2つの主要コンポーネントがあります。
- ゲートウェイ内のローカル名(大文字と小文字は区別されません)。
- エンドポイントを管理するゲートウェイのドメイン名(大文字と小文字を区別)。
例:
- 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] を選択すると、[Gateway Type]を選択するように求められます。このドロップダウンを使用して、登録するハードウェアを選択し、[Next] を選択してこのデバイスに必要なプロトコルを選択します(MGCPを選択する必要があります)。

使用するハードウェアとプロトコルを選択したら、ドメイン名、Cisco Unified Communications Managerグループ、およびモジュール情報を設定する必要があります。これらは、MGCP経由でエンドポイントを登録するために必要な主なフィールドです。
ドメイン名は1 ~ 2つの部分で構成されます。少なくとも[Domain Name] フィールドには、ルータのホスト名を入力する必要があります。このシナリオでは、ホスト名は次のとおりです。
VG320
ただし、ゲートウェイにドメイン名が設定されている場合は、このデバイスの完全修飾ドメイン名(FQDN)を設定する必要があります。

ここで、Saveを押す必要があります。ページが更新され、サブユニットを選択できるようになります。サブユニットを選択したら、再度[Save] を選択します。これで、設定可能なポートが表示されます。

ここでエンドポイントを設定するには、アナログデバイスを接続しているポートをクリックします(この例では0/0/0)。 ポートを選択すると、ポートタイプを設定するように求められます。

この場合、POTSを選択します。これを選択すると、他のCall Managerエンドポイントと同様に、デバイス情報に必要なすべての値を入力できます。必須フィールドは[デバイスプール(Device Pool)]だけですが、[コーリングサーチスペース(Calling Search Space)]などの追加の値を入力することもできます。この作業が完了したら、[Save] をクリックします。この時点で、左側のペインに[Add a new DN] フィールドが自動的に入力されていることがわかります。DNをこのポートに関連付けて保存し、設定を適用できます。これが完了したら、ポート設定ページに戻り、ポートが登録済みとして表示されます。

エンドポイントの登録とコールセットアップ
このセクションでは、MGCPエンドポイントの登録とコールセットアップの基本について説明します。これには、ゲートウェイがコールエージェントと対話する際に表示されるコマンドメッセージが含まれます。このシナリオでは、CUCMがコールエージェントです。
MGCPエンドポイントの登録

MGCPエンドポイントをCUCMに登録するために、ゲートウェイはTCPソケット2428をCUCMに対して開き、ここからUDPポート2427を使用してコマンドメッセージを送信します。ソケットが開くと、ゲートウェイはCUCMにRSIPコマンドを送信して、再起動の発生時にエンドポイントをサービス停止にする必要があることを通知し、CUCMはこれに対して簡単な確認応答を送信します。再起動が完了すると、CUCMはパラメータR:L/hd。これは、ゲートウェイがCUCMにオフフックイベントを通知する必要があることを示しています。
この時点で、CUCMはAUEP(監査エンドポイント)をゲートウェイに送信し、特定のエンドポイントのステータスを確認します。ゲートウェイからの応答は、エンドポイント機能を含むACKです。これが完了すると、エンドポイントがCUCMに登録されます。次にdebugの出力例を示します。
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)が、コールの接続を確立するためにゲートウェイにrecvonlyを持つCRCXで始まることがわかります。ゲートウェイは、サポート対象のSDPを含む200 OKで応答します。この交換が完了すると、CUCMはパラメータS:G/rtこれは、デバイスにリングバックを再生するようにゲートウェイに指示します。遠端がコールを受信してピックアップした後、CUCMはSDPを含むMDCXをゲートウェイに送信し、遠端デバイスのメディア情報を通知します。ゲートウェイは単純な200 OKを返信してこれを確認し、この時点で双方向メディアが存在します。
コールに応答したので、CUCMはパラメータR:D/[0-9ABCD*#]。これは、コールがアクティブな間に押されたDTMFをCUCMに通知し、次のデバイスにリレーできるようにゲートウェイに指示します。
コールが終了すると、CUCMはM:recvonlyを使用してメディアを終了した後、DLCXを使用してコールを切断します。次にdebugの出力例を示します。
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 |エラー |イベント | packets]
debug mgcp all(高度なデバッグ用)
debug ccm-manager [backhaul | config-download |エラー |イベント]
debug voip ccapi inout
debug vpm signal
debug voip vtsp session
debug isdn q931
上記のデバッグは、登録とコールセットアップの問題のトラブルシューティングに必要な情報の取得に最適です。
関連情報
RFC 2705:
https://tools.ietf.org/html/rfc2705#section-2.3.2