このドキュメントでは、メディアゲートウェイコントロールプロトコル(MGCP)の設定およびトラブルシューティングの方法について説明します。MGCPはコールエージェント/エンドポイントプロトコルです。
このドキュメントに関する固有の要件はありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
注:このドキュメントでは、参照点として、設定例とdebugおよびshowコマンドの出力を利用します。このドキュメントの多くの機能は、Cisco IOS®とCisco IOS® XEの両方に導入されたバージョンで明確に示されています。
Attribute |
定義 |
コールエージェント |
プライマリの役割を果たし、集中型コールインテリジェンスを提供するコール制御要素。 |
エンドポイント |
エンドポイントは、コールエージェントが制御するデバイスです。たとえば、FXO、FXS、またはDS0チャネルなどです。 |
PSTN |
公衆電話回線網。 |
メディアゲートウェイコントロールプロトコル(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には2つの主要コンポーネントがあります。
例:
このドキュメントでは、各設定コンポーネントを個々の手順に分けて説明しています。
CUCMに登録する予定のAnalog Gatewayでは、これは実際に必要な最小限の設定です。残りの設定は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でMGCPゲートウェイを設定するには、Cisco Unified CM Administrationにログインする必要があります。ログインしたら、Device > Gatewayの順に移動します。
前の選択では、Find and List Gatewayページが表示されます。ここで、プラス記号の付いたAdd Newボタンを選択します。
Add Newを選択すると、ゲートウェイタイプの選択を求めるプロンプトが表示されます。このドロップダウンを使用して、登録するハードウェアを選択し、Nextを選択してこのデバイスに必要なプロトコルを選択します(MGCPを選択する必要があります)。
使用するハードウェアとプロトコルを選択したら、ドメイン名、Cisco Unified Communications Managerグループ、およびモジュール情報を設定する必要があります。これらは、MGCP経由でエンドポイントを登録するために必要な主なフィールドです。
ドメイン名は1 ~ 2つの部分で構成されます。少なくとも、Domain Nameフィールドには、ルータのホスト名を入力する必要があります。このシナリオでは、ホスト名は次のとおりです。
VG320
ただし、ゲートウェイでドメイン名が設定されている場合は、このデバイスの完全修飾ドメイン名(FQDN)を設定する必要があります。
ここで、Saveを選択します。ページが更新され、サブユニットを選択できるようになります。サブユニットを選択したら、再度Saveを選択します。これで、設定可能なポートが表示されます。
エンドポイントを今すぐ設定するには、アナログデバイスが接続されているポートをクリックします(この場合は0/0/0)。ポートを選択すると、ポートタイプの設定を求めるプロンプトが表示されます。
この場合は、POTSを選択します。これを選択すると、他のCall Managerエンドポイントと同様に、デバイス情報に必要なすべての値を入力できます。必須フィールドはデバイスプールだけですが、コーリングサーチスペースなどの追加の値を入力できます。設定が完了したら、Saveをクリックします。この時点で、左側のペインにAdd a new DNフィールドが自動的に入力されていることが確認できます。これで、DNをこのポートに関連付けて保存し、設定を適用できます。これが完了したら、ポート設定ページに戻り、ポートが登録済みとして表示されます。
このセクションでは、MGCPエンドポイントの登録とコールセットアップの基本について説明します。これには、ゲートウェイがコールエージェントと対話する際に表示されるコマンドメッセージが含まれます。このシナリオでは、CUCMがコールエージェントです。
MGCPエンドポイントをCUCMに登録するために、ゲートウェイはCUCMに対してTCPソケット2428を開きます。ここから、UDPポート2427を使用してコマンドメッセージを送信します。ソケットが開くと、ゲートウェイはRSIPコマンドをCUCMに送信して、再起動の発生時にエンドポイントをサービス停止にする必要があることを通知し、CUCMはこれに関する簡単な確認応答を送信します。再起動が完了すると、CUCMはパラメータR:L/hdを含むRQNTを送信します。これは、ゲートウェイが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 <---
上の図は、発信コールの例です。
コールエージェント(この場合はCUCM)が、コールの接続を確立するためにゲートウェイにrecvonlyするCRCXで始まることがわかります。ゲートウェイは、サポート対象のSDPを含む200 OKで応答します。この交換が完了すると、CUCMはパラメータS:G/rtを含むRQNTメッセージをゲートウェイに送信します。これは、デバイスに対してリングバックを再生するようにゲートウェイに指示します。遠端がコールを受信してピックアップした後、CUCMはSDPを含むMDCXをゲートウェイに送信し、遠端デバイスのメディア情報を通知します。ゲートウェイはこれを確認するために単純な200 OKを返信し、この時点で双方向メディアが存在します。
コールに応答したので、CUCMはパラメータR: D/[0-9ABCD*#]を含む別のRQNTを送信します。これは、コールがアクティブな間に押されたDTMFをCUCMに通知し、次のデバイスにリレーできるようにゲートウェイに指示します。
コールが終了すると、CUCMはMDCXを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のトラブルシューティングを行う際、登録またはコールが失敗した原因を判別するために表示できる便利な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コマンドで確認できた場合は、デバイスで次のデバッグを実行して、コールが失敗した理由をさらに調べることができます。
debug mgcp [エンドポイント |エラー |イベント |パケット]
debug mgcp all(高度なデバッグ用)
debug ccm-manager [バックホール | 設定ダウンロード | エラーをスローします。 | イベント]
debug voip ccapi inout
debug vpm signal
debug voip vtsp session
debug isdn q931
上記のデバッグは、登録とコールセットアップの問題のトラブルシューティングに必要な情報を得るための出発点として最適です。
RFC 2705: