クラスタ内 Cisco IP Phone コールのトラブルシューティング
この付録のケース スタディでは、クラスタ内コールと呼ばれる、1 つのクラスタ内にある 2 台の Cisco IP Phone 間のコール フローについて詳細に説明します。また、このケース スタディでは、Cisco CallManager と Cisco IP Phone の初期化、登録、およびキープアライブの各プロセスについても取り上げます。クラスタ内コール フローに関する詳細な説明はその後に続きます。各プロセスの説明は、「トラブルシューティング ツール」で取り上げているトレース ユーティリティおよびツールを使用して行われています。
この章では、次のトピックについて取り上げます。
• トポロジの例
• Cisco IP Phone の初期化プロセス
• Cisco CallManager の初期化プロセス
• 自己起動プロセス
• Cisco CallManager の登録プロセス
• Cisco CallManager の KeepAlive プロセス
• Cisco CallManager のクラスタ内コール フローのトレース
トポロジの例
Cluster 1 および Cluster 2 という 2 つのクラスタがあり、Cluster 1 には CCM3 および CCM4 という 2 つの Cisco CallManager 、Cluster 2 には CCM1 および CCM2 という 2 つの Cisco CallManager があると仮定します。
このケース スタディのトレースは、Cluster 2 にある CCM1 から収集されたものです(図B-1 を参照)。コール フローのベースは、Cluster 2 にある 2 台の Cisco IP Phone です。これら 2 台の Cisco IP Phone の IP アドレスは、それぞれ、172.16.70.230(電話番号 1000)、172.16.70.231(電話番号 1001)です。
図B-1 Cisco IP Phone と Cisco IP Phone 間のクラスタ内コールのトポロジの例
Cisco IP Phone の初期化プロセス
Cisco IP Phone の初期化(ブート アップ)プロセスの詳細な手順を次に示します。
手順
ステップ 1 DHCP サーバで適切なオプション(Option 066、Option 150 など)が設定されていれば、Cisco IP Phone は初期化時に DHCP サーバに対して要求を送信し、IP アドレス、Domain Name System(DNS; ドメイン ネーム システム)サーバのアドレス、および TFTP サーバの名前またはアドレスを取得します。また、DHCP サーバで該当するオプション(Option 003)が設定されている場合は、デフォルト ゲートウェイのアドレスも取得します。
ステップ 2 DHCP が TFTP サーバの DNS 名を送信する場合は、その名前を IP アドレスにマッピングするために DNS サーバの IP アドレスが必要になります。DHCP サーバが TFTP サーバの IP アドレスを送信する場合は、この手順を省略します。このケース スタディでは、DNS は設定されてないので、DHCP サーバは TFTP の IP アドレスを送信しました。
ステップ 3 TFTP サーバ名が DHCP 応答に含まれていない場合、Cisco IP Phone はデフォルトのサーバ名を使用します。
ステップ 4 設定ファイル(.cnf)は TFTP サーバから取得されます。すべての .cnf ファイルには、
SEP<mac_address>.cnf という名前が付いています。この電話機を初めて Cisco CallManager に登録する場合は、デフォルト ファイルの SEPdefault.cnf が Cisco IP Phone にダウンロードされます。このケース スタディでは、1 台目の Cisco IP Phone は IP アドレス 172.16.70.230(MAC アドレスは SEP0010EB001720)、2 台目の Cisco IP Phone は IP アドレス 172.16.70.231(MAC アドレスは SEP003094C26105)をそれぞれ使用します。
ステップ 5 すべての .cnf ファイルには、プライマリおよびセカンダリの Cisco CallManager の IP アドレスが含まれています。Cisco IP Phone は、この IP アドレスを使用してプライマリ Cisco CallManager に接続して登録します。
ステップ 6 Cisco IP Phone が Cisco CallManager に接続して登録すると、Cisco CallManager は、使用する実行ファイルのバージョン(ロード ID と呼ばれます)をその Cisco IP Phone に通知します。指定されたバージョンが Cisco IP Phone 上の実行ファイルのバージョンと一致しない場合、Cisco IP Phone は新しい実行ファイルのバージョンを TFTP サーバに要求し、自動的にリセットします。
Cisco CallManager の初期化プロセス
この項では、CCM1(IP アドレス 172.16.70.228 で識別される)から取り込んだトレースを使用して、Cisco CallManager の初期化プロセスについて説明します。前述のように、SDI トレースは、エンドポイント間で送信されたすべてのパケットに関する詳細情報を提供するので、非常に効果的なトラブルシューティング ツールです。
この項では、Cisco CallManager の初期化時に発生するイベントについて説明します。トレースの見方を理解していれば、Cisco CallManager の各プロセスのトラブルシューティング、およびそれらのプロセスがサービス(会議、転送など)に及ぼす影響のトラブルシューティングを適切に行うことができます。
次のメッセージは、Cisco CallManager SDI トレース ユーティリティから出力され、Cisco CallManager の 1 つ(このケース スタディでは CCM1)に対する初期化プロセスを示しています。
• 最初のメッセージは、Cisco CallManager が自分の初期化プロセスを開始したことを示しています。
• 2 番目のメッセージは、Cisco CallManager がデフォルト データベース(このケース スタディではプライマリ データベースまたはパブリッシャ データベース)の値を読み取ったことを示しています。
• 3 番目のメッセージは、Cisco CallManager が TCP ポート 8002 で各種メッセージを受信したことを示しています。
• 4 番目のメッセージは、それらのメッセージを受信した後に、Cisco CallManager が 2 つ目の Cisco CallManager(CCM2(172.16.70.229))を自分のリストに加えたことを示しています。
• 5 番目のメッセージは、Cisco CallManager が起動し、Cisco CallManager バージョン 3.1(1) を実行していることを示しています。
16:02:47.765 CCM|CMProcMon - CallManagerState Changed - Initialization Started.
16:02:47.796 CCM|NodeId: 0, EventId: 107 EventClass: 3 EventInfo: Cisco CM Database Defaults Read
16:02:49.937 CCM| SDL Info - NodeId: [1], Listen IP/Hostname: [172.16.70.228], Listen Port: [8002]
16:02:49.984 CCM|dBProcs - Adding SdlLink to NodeId: [2], IP/Hostname: [172.16.70.229]
16:02:51.031 CCM|NodeId: 1, EventId: 1 EventClass: 3 EventInfo: Cisco CallManager Version=<3.1(1)> started
自己起動プロセス
Cisco CallManager は稼働状態になると、その内部で他のプロセスをいくつか起動します。それらのプロセスには、MulticastPoint Manager、UnicastBridge Manager、番号分析、ルート リストなどがあります。これらのプロセスの実行中に出力されるメッセージは、Cisco CallManager の機能に関連する問題のトラブルシューティングに非常に役立ちます。
たとえば、ルート リストが機能を停止して使用不可になっているとします。この問題のトラブルシューティングを行うには、これらのトレースを監視して、Cisco CallManager が RoutePlanManager をすでに起動したか、および RouteLists のロードを試行しているかを確認します。次に示す設定の例は、RouteListName=''ipwan'' および RouteGroupName=''ipwan'' がロードおよび起動していることを示しています。
16:02:51.031 CCM|MulicastPointManager - Started
16:02:51.031 CCM|UnicastBridgeManager - Started
16:02:51.031 CCM|MediaTerminationPointManager - Started
16:02:51.125 CCM|MediaCoordinator(1) - started
16:02:51.125 CCM|NodeId: 1, EventId: 1543 EventClass: 2 EventInfo: Database manager started
16:02:51.234 CCM|NodeId: 1, EventId: 1542 EventClass: 2 EventInfo: Link manager started
16:02:51.390 CCM|NodeId: 1, EventId: 1541 EventClass: 2 EventInfo: Digit analysis started
16:02:51.406 CCM|RoutePlanManager - Started, loading RouteLists
16:02:51.562 CCM|RoutePlanManager - finished loading RouteLists
16:02:51.671 CCM|RoutePlanManager - finished loading RouteGroups
16:02:51.671 CCM|RoutePlanManager - Displaying Resulting RoutePlan
16:02:51.671 CCM|RoutePlanServer - RouteList Info, by RouteList and RouteGroup Selection Order
16:02:51.671 CCM|RouteList - RouteListName=''ipwan''
16:02:51.671 CCM|RouteList - RouteGroupName=''ipwan''
16:02:51.671 CCM|RoutePlanServer - RouteGroup Info, by RouteGroup and Device Selection Order
16:02:51.671 CCM|RouteGroup - RouteGroupName=''ipwan''
次のトレースは、RouteGroup がデバイス 172.16.70.245 を追加していることを示しています。このデバイスは Cluster 1 に配置された CCM3 で、H.323 デバイスであると見なされます。このケース スタディでは、RouteGroup は、Cisco IOS Gatekeeper の許可を得てコールを Cluster 1 の CCM3 にルーティングするために作成されています。Cluster 1 に配置された Cisco IP Phone へのコールのルーティング中に問題が発生した場合、その原因を特定するには次のメッセージが役立ちます。
16:02:51.671 CCM|RouteGroup - DeviceName=''172.16.70.245''
16:02:51.671 CCM|RouteGroup -AllPorts
一部の初期化プロセスは、Cisco CallManager が「Dn」(電話番号)を追加していることを示しています。これらのメッセージを確認することで、Cisco CallManager がデータベースから電話番号を読み取ったかどうかを判別できます。
16:02:51.671 CCM|NodeId: 1, EventId: 1540 EventClass: 2 EventInfo: Call control started
16:02:51.843 CCM|ProcessDb - Dn = 2XXX, Line = 0, Display = , RouteThisPattern, NetworkLocation = OffNet, DigitDiscardingInstruction = 1, WhereClause =
16:02:51.859 CCM|Digit analysis: Add local pattern 2XXX , PID: 1,80,1
16:02:51.859 CCM|ForwardManager - Started
16:02:51.984 CCM|CallParkManager - Started
16:02:52.046 CCM|ConferenceManager - Started
次のトレースでは、Cisco CallManager の Device Manager が 2 つのデバイスを静的に初期化しています。IP アドレス 172.17.70.226 のデバイスはゲートキーパーを表し、IP アドレス 172.17.70.245 のデバイスは異なるクラスタにある別の Cisco CallManager を取得します。その Cisco CallManager は、H.323 Gateway としてこの Cisco CallManager に登録されます。
16:02:52.250 CCM|DeviceManager: Statically Initializing Device; DeviceName=172.16.70.226
16:02:52.250 CCM|DeviceManager: Statically Initializing Device; DeviceName=172.16.70.245
Cisco CallManager の登録プロセス
SDI トレースでは、登録プロセスも重要な要素です。デバイスは電源がオンになると、DHCP を介して情報を取得し、TFTP サーバに接続して自分の .cnf ファイルを取得し、その .cnf ファイルで指定されている Cisco CallManager に接続します。そのデバイスは、MGCP ゲートウェイ、Skinny ゲートウェイ、または Cisco IP Phone である可能性があります。したがって、Cisco ネットワークでデバイスが正常に登録されたかどうかを検出できることが重要になります。
次のトレースでは、Cisco CallManager が登録のための新しい接続を受信しています。登録するデバイスは、MTP_nsa-cm1(CCM1 上の MTP サービス)および CFB_nsa-cm1(CCM1 上の Conference Bridge サービス)です。これらは Cisco CallManager で動作しているソフトウェア サービスですが、内部的には異なる外部サービスとして扱われるため、TCPHandle、ソケット番号、ポート番号、およびデバイス名が割り当てられます。
16:02:52.750 CCM|StationInit - New connection accepted. DeviceName=, TCPHandle=0x4fbaa00, Socket=0x594, IPAddr=172.16.70.228, Port=3279, StationD=[0,0,0]
16:02:52.750 CCM|StationInit - New connection accepted. DeviceName=, TCPHandle=0x4fe05e8, Socket=0x59c, IPAddr=172.16.70.228, Port=3280, StationD=[0,0,0]
16:02:52.781 CCM|StationInit - Processing StationReg. regCount: 1 DeviceName=MTP_nsa-cm1, TCPHandle=0x4fbaa00, Socket=0x594, IPAddr=172.16.70.228, Port=3279, StationD=[1,45,2]
16:02:52.781 CCM|StationInit - Processing StationReg. regCount: 1 DeviceName=CFB_nsa-cm1, TCPHandle=0x4fe05e8, Socket=0x59c, IPAddr=172.16.70.228, Port=3280, StationD=[1,96,2]
Cisco CallManager の KeepAlive プロセス
ステーション、デバイス、またはサービスと Cisco CallManager は、それらの相互間の通信チャネルに関する情報を保持するために次のメッセージを使用します。このメッセージは、Cisco CallManager とステーション間の通信リンクがアクティブ状態を維持するための KeepAlive シーケンスを開始します。次のメッセージは、Cisco CallManager とステーションのどちらからでも発信できます。
16:03:02.328 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=MTP_nsa-cm2, TCPHandle=0x4fa7dc0, Socket=0x568, IPAddr=172.16.70.229, Port=1556, StationD=[1,45,1]
16:03:02.328 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=CFB_nsa-cm2, TCPHandle=0x4bf8a70, Socket=0x57c, IPAddr=172.16.70.229, Port=1557, StationD=[1,96,1]
16:03:06.640 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=SEP0010EB001720, TCPHandle=0x4fbb150, Socket=0x600, IPAddr=172.16.70.230, Port=49211, StationD=[1,85,2]
16:03:06.703 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=SEP003094C26105, TCPHandle=0x4fbbc30, Socket=0x5a4, IPAddr=172.16.70.231, Port=52095, StationD=[1,85,1]
次のトレースに含まれるメッセージは、Cisco CallManager とステーション間の通信リンクがアクティブであることを示す KeepAlive シーケンスを表しています。これらのメッセージも、Cisco CallManager とステーションのどちらからでも発信できます。
16:03:02.328 CCM|MediaTerminationPointControl - stationOutputKeepAliveAck tcpHandle=4fa7dc0
16:03:02.328 CCM|UnicastBridgeControl - stationOutputKeepAliveAck tcpHandle=4bf8a70
16:03:06.703 CCM|StationInit - InboundStim - IpPortMessageID: 32715(0x7fcb) tcpHandle=0x4fbbc30
16:03:06.703 CCM|StationD - stationOutputKeepAliveAck tcpHandle=0x4fbbc30
Cisco CallManager のクラスタ内コール フローのトレース
この項の SDI トレースは、クラスタ内コール フローの詳細を示しています。コール フローの Cisco IP Phone は、電話番号(dn)、tcpHandle、および IP アドレスで識別できます。Cluster 2 に配置された Cisco IP Phone(dn:1001、tcpHandle:0x4fbbc30、IP アドレス:172.16.70.231)は、同一クラスタ内の別の Cisco IP Phone(dn:1000、tcpHandle:0x4fbb150、IP アドレス:172.16.70.230)にコールを発信しています。TCP ハンドル値、タイム スタンプ、またはデバイスの名前を調べることで、デバイスをトレース上で追跡できます。デバイスをリブートするかオフラインにするまで、デバイスの TCP ハンドル値は変わりません。
次のトレースは、Cisco IP Phone(1001)がオフフックになっていることを示しています。下記のトレースは、一意のメッセージ、TCP ハンドル、および着信側の番号を示しています。これらは Cisco IP Phone に表示されます。この時点では、まだユーザが番号をダイヤルしていないので、発信側の番号は表示されていません。下記の情報は、Cisco IP Phone と Cisco CallManager 間の Skinny Station メッセージの形式で表示されます。
16:05:41.625 CCM|StationInit - InboundStim - OffHookMessageID tcpHandle=0x4fbbc30
16:05:41.625 CCM|StationD - stationOutputDisplayText tcpHandle=0x4fbbc30, Display= 1001
次のトレースは、Cisco CallManager から Cisco IP Phone に発信された Skinny Station メッセージを示しています。最初のメッセージは、発信側の Cisco IP Phone のランプをオンにします。
16:05:41.625 CCM|StationD - stationOutputSetLamp stim: 9=Line instance=1 lampMode=LampOn tcpHandle=0x4fbbc30
Cisco CallManager は、stationOutputCallState メッセージを使用して、特定のコールに関する情報をステーションに通知します。
16:05:41.625 CCM|StationD - stationOutputCallState tcpHandle=0x4fbbc30
Cisco CallManager は、stationOutputDisplayPromptStatus メッセージを使用して、コールに関するプロンプト メッセージを Cisco IP Phone に表示します。
16:05:41.625 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbbc30
Cisco CallManager は、stationOutputSelectSoftKey メッセージを使用して、Skinny Station で特定のソフトキーのセットを選択します。
16:05:41.625 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
Cisco CallManager は、次のメッセージを使用して、表示用の正確な回線コンテキストについて Skinny Station に指示します。
16:05:41.625 CCM|StationD - stationOutputActivateCallPlane tcpHandle=0x4fbbc30
次のメッセージでは、番号分析プロセスによって、着信番号の識別、およびデータベース内にルーティングの一致があるかどうかの確認ができる状態になっています。エントリ cn=1001 は発信側の番号を表しています。dd="" はダイヤルされた番号であり、着信側の番号を示しています。電話機が StationInit メッセージを送信し、Cisco CallManager が StationD メッセージを送信した後に、Cisco CallManager は番号分析を実行します。
16:05:41.625 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="")
16:05:41.625 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
次のデバッグ メッセージは、Cisco CallManager が発信側の Cisco IP Phone に内部発信音を鳴らしていることを示しています。
16:05:41.625 CCM|StationD - stationOutputStartTone: 33=InsideDialTone tcpHandle=0x4fbbc30
Cisco CallManager は着信メッセージを検出し、Cisco IP Phone のキーパッド ボタン 1 が押されたことを認識すると、ただちに出力トーンを停止します。
16:05:42.890 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 1 tcpHandle=0x4fbbc30
16:05:42.890 CCM|StationD - stationOutputStopTone tcpHandle=0x4fbbc30
16:05:42.890 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
16:05:42.890 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="1")
16:05:42.890 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.203 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 tcpHandle=0x4fbbc30
16:05:43.203 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="10")
16:05:43.203 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.406 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 tcpHandle=0x4fbbc30
16:05:43.406 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="100")
16:05:43.406 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.562 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 tcpHandle=0x4fbbc30
16:05:43.562 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="1000")
Cisco CallManager は、一致していると判別できるだけの番号を受信すると、番号分析の結果をテーブル形式で表示します。一致するものがすでに見つかっているので、Cisco CallManager は、それ以降に電話機で押された番号をすべて無視します。
16:05:43.562 CCM|Digit analysis: analysis results
16:05:43.562 CCM||PretransformCallingPartyNumber=1001
|DialingRoutePatternRegularExpression=(1000)
|PotentialMatches=PotentialMatchesExist
|DialingSdlProcessId=(1,38,2)
|PretransformDigitString=1000
|PretransformPositionalMatchList=1000
|PositionalMatchList=1000
|RouteBlockFlag=RouteThisPattern
次のトレースは、Cisco CallManager がこの情報を着信側の電話機に送信していることを示しています(電話機は tcpHandle 番号で識別されます)。
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, CallingParty=1001, CalledPartyName=1000, CalledParty=1000, tcpHandle=0x4fbb150
次のトレースは、Cisco CallManager が、着信側の Cisco IP Phone にある着信コール用ランプを点滅するように指示していることを示しています。
16:05:43.578 CCM|StationD - stationOutputSetLamp stim: 9=Line instance=1 lampMode=LampBlink tcpHandle=0x4fbb150
次のトレースは、Cisco CallManager が、呼び出し音や表示通知などのコール関連の情報を着信側の Cisco IP Phone に提供しています。ここでも、トレース全体を通して同じ tcpHandle が使用されているので、すべてのメッセージが同じ Cisco IP Phone に送信されていることを確認できます。
16:05:43.578 CCM|StationD - stationOutputSetRinger: 2=InsideRing tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputDisplayNotify tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbb150
Cisco CallManager が発信側の Cisco IP Phone にも同様の情報を提供していることに注意してください。ここでも、Cisco IP Phone は tcpHandle によって識別されます。
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, CallingParty=1001, CalledPartyName=, CalledParty=1000, tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, CallingParty=1001, CalledPartyName=1000, CalledParty=1000, tcpHandle=0x4fbbc30
次のトレースでは、Cisco CallManager がアラート音または呼び出し音を発信側の Cisco IP Phone で鳴らし、接続が確立されたことを通知しています。
16:05:43.578 CCM|StationD - stationOutputStartTone: 36=AlertingTone tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputCallState tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbbc30
この時点で、着信側の Cisco IP Phone はオフフックになるので、Cisco CallManager は発信側で呼び出し音を鳴らすのを停止します。
16:05:45.140 CCM|StationD - stationOutputStopTone tcpHandle=0x4fbbc30
次のメッセージでは、Cisco CallManager が Skinny Station に Unicast RTP ストリームの受信を開始するように指示しています。そのために、Cisco CallManager は着信側の IP アドレス、コーデック情報、およびパケット サイズ(ミリ秒)を提供します。PacketSize は、RTP パケットの作成に使用されるサンプリング時間(ミリ秒)の整数です。
(注) 通常、この値は 30 ミリ秒に設定されます。このケース スタディでは、20 ミリ秒に設定されています。
16:05:45.140 CCM|StationD - stationOutputOpenReceiveChannel tcpHandle=0x4fbbc30 myIP: e74610ac (172.16.70.231)
16:05:45.140 CCM|StationD - ConferenceID: 0 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
同様に、Cisco CallManager は着信側(1000)に情報を提供します。
16:05:45.140 CCM|StationD - stationOutputOpenReceiveChannel tcpHandle=0x4fbb150 myIP: e64610ac (172.16.70.230)
16:05:45.140 CCM|StationD - ConferenceID: 0 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
Cisco CallManager は、RTP ストリーム用のオープン チャネルを確立するために、着信側から確認応答メッセージを受信します。また、着信側の IP アドレスも受信します。このメッセージにより、Skinny Station に関する 2 種類の情報が Cisco CallManager に通知されます。1 つは、オープン アクションのステータスです。もう 1 つは、リモート エンドへの伝送に使用する受信ポートのアドレスと番号です。RTP ストリームのトランスミッタ(発信側)の IP アドレスは ipAddr で、PortNumber は RTP ストリーム トランスミッタ(発信側)の IP ポート番号です。
16:05:45.265 CCM|StationInit - InboundStim - StationOpenReceiveChannelAckID tcpHandle=0x4fbb150, Status=0, IpAddr=0xe64610ac, Port=17054, PartyID=2
Cisco CallManager は、次のメッセージを使用して、指定のリモート Cisco IP Phone の IP アドレスとポート番号に音声およびビデオ ストリームの伝送を開始するようにステーションに指示しています。
16:05:45.265 CCM|StationD - stationOutputStartMediaTransmission tcpHandle=0x4fbbc30 myIP: e74610ac (172.16.70.231)
16:05:45.265 CCM|StationD - RemoteIpAddr: e64610ac (172.16.70.230) RemoteRtpPortNumber: 17054 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:03:25.328 CCM|StationD(1): TCPPid=[1.100.117.1] OpenMultiReceiveChannel conferenceID=16777217 passThruPartyID=1000011 compressionType=101(Media_Payload_H263) qualifierIn=?. myIP: e98e6b80 (128.107.142.233)|<CT::1,100,11,1.1><IP::><DEV::>
16:03:25.375 CCM|StationInit: TCPPid=[1.100.117.1] StationOpenMultiMediaReceiveChannelAck Status=0, IpAddr=0xe98e6b80, Port=65346, PartyID=16777233|<CT::1,100,105,1.215><IP::128.107.142.233>
16:03:25.375 CCM|StationD(2): TCPPid = [1.100.117.2] star_StationOutputStartMultiMediaTransmission conferenceID=16777218 passThruPartyID=16777250 remoteIpAddress=e98e6b80(66.255.0.0) remotePortNumber=65346 compressType=101(Media_Payload_H263) qualifierOut=?. myIP: e98e6b80 (128.107.142.233)|<CT::1,100,105,1.215><IP::128.107.142.233>
次のトレースでは、前述のメッセージが着信側に送信されています。RTP メディア ストリームが着信側と発信側の間で開始されたことを示すメッセージが、これらのメッセージの後に続きます。
16:05:45.312 CCM|StationD - stationOutputStartMediaTransmission tcpHandle=0x4fbb150 myIP: e64610ac (172.16.70.230)
16:05:45.328 CCM|StationD - RemoteIpAddr: e74610ac (172.16.70.231) RemoteRtpPortNumber: 18448 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:05:46.203 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x4fbbc30
最後に、発信側の Cisco IP Phone がオンフックになります。そのため、Skinny Station と Cisco CallManager 間のすべての制御メッセージ、および Skinny Station 間の RTP ストリームが終了します。
16:05:46.203 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x4fbbc30
クラスタ間 Cisco IP Phone コールのトラブルシューティング
この付録のケース スタディでは、異なるクラスタに配置された別の Cisco IP Phone にコールを発信する Cisco IP Phone について説明します。このタイプのコールは、クラスタ間 Cisco IP Phone コールとも呼ばれます。
この章では、次のトピックについて取り上げます。
• トポロジの例
• クラスタ間 H.323 通信
• コール フロー トレース
• コール フローの失敗
トポロジの例
このケース スタディでは、次に示すトポロジの例を使用します。2 つのクラスタがあり、各クラスタには 2 つの Cisco CallManager があります。また、Cisco IOS Gateways と Cisco IOS Gatekeeper も配置されています。
クラスタ間 H.323 通信
Cluster 1 の Cisco IP Phone が Cluster 2 の Cisco IP Phone にコールを発信します。クラスタ間 Cisco CallManager 通信は、H.323 バージョン 2 プロトコルを使用して行われます。Cisco IOS Gatekeeper もアドミッション制御に使用されます。
Cisco IP Phone は Skinny Station プロトコルを使用して Cisco CallManager に接続でき、Cisco CallManager は H.323 Registration, Admission, and Status(RAS)プロトコルを使用して Cisco IOS Gatekeeper に接続できます。admission request(ARQ; アドミッション要求)メッセージが Cisco IOS Gatekeeper に送信され、この Gatekeeper は H.323 バージョン 2 プロトコルを使用してクラスタ間コールが発信できることを確認した後、admission confirmed(ACF; アドミッション確認)メッセージを送信します。この処理が実行されると、RTP プロトコルを使用して、異なるクラスタにある Cisco IP Phone 間に音声パスが作成されます。
コール フロー トレース
この項では、CCM000000000 ファイルに取り込んだ SDI トレースの例を使用して、コール フローについて説明します。このケース スタディで取り上げるトレースでは、コール フロー自体に焦点を絞っています。
このコール フローでは、Cluster 2 に配置された Cisco IP Phone(2002)が Cluster 1 に配置された Cisco IP Phone(1001)にコールを発信しています。TCP ハンドル値、タイム スタンプ、またはデバイスの名前を調べることで、デバイスをトレース上で追跡できます。デバイスをリブートするかオフラインにするまで、デバイスの TCP ハンドル値は変わりません。
次のトレースでは、Cisco IP Phone(2002)はオフフックになっています。このトレースは、一意のメッセージ、TCP ハンドル、および発信側の番号を示しています。これらは Cisco IP Phone に表示されます。次のデバッグ出力は、着信側の番号(1001)、H.225 接続、および H.245 確認メッセージを示しています。コーデック タイプは G.711 mu-law です。
16:06:13.921 CCM|StationInit - InboundStim - OffHookMessageID tcpHandle=0x1c64310
16:06:13.953 CCM|Out Message -- H225ConnectMsg -- Protocol= H225Protocol
16:06:13.953 CCM|Ie - H225UserUserIe IEData= 7E 00 37 05 02 C0 06
16:06:13.953 CCM|StationD - stationOutputCallInfo CallingPartyName=, CallingParty=2002, CalledPartyName=1001, CalledParty=1001, tcpHandle=0x1c64310
16:06:14.015 CCM|H245Interface(2) OLC indication chan number = 2
16:06:14.015 CCM|StationD - stationOutputOpenReceiveChannel tcpHandle=0x1c64310 myIP: e74610ac (172.16.70.231)
16:06:14.015 CCM|StationD - ConferenceID: 0 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:06:14.062 CCM|StationInit - InboundStim - StationOpenReceiveChannelAckID tcpHandle=0x1c64310, Status=0, IpAddr=0xe74610ac, Port=20444, PartyID=2
16:06:14.062 CCM|H245Interface(2) paths established ip = e74610ac, port = 20444
16:06:14.187 CCM|H245Interface(2) OLC outgoing confirm ip = fc4610ac, port = 29626
次のトレースは、発信側と着信側の番号を示しています。これらの番号は IP アドレスおよび 16 進数値に関連付けられています。
16:06:14.187 CCM|StationD - stationOutputStartMediaTransmission tcpHandle=0x1c64310 myIP: e74610ac (172.16.70.231)
16:06:14.187 CCM|StationD - RemoteIpAddr: fc4610ac (172.16.70.252)
次のトレースは、Cisco IP Phone(2002)のパケット サイズと MAC アドレスを示しています。このトレースの後に接続解除メッセージが続き、その後にオンフック メッセージが続きます。
RemoteRtpPortNumber: 29626 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:06:16.515 CCM| Device SEP003094C26105 , UnRegisters with SDL Link to monitor NodeID= 1
16:06:16.515 CCM|StationD - stationOutputCloseReceiveChannel tcpHandle=0x1c64310 myIP: e74610ac (172.16.70.231)
16:06:16.515 CCM|StationD - stationOutputStopMediaTransmission tcpHandle=0x1c64310 myIP: e74610ac (172.16.70.231)
16:06:16.531 CCM|In Message -- H225ReleaseCompleteMsg -- Protocol= H225Protocol
16:06:16.531 CCM|Ie - Q931CauseIe -- IEData= 08 02 80 90
16:06:16.531 CCM|Ie - H225UserUserIe -- IEData= 7E 00 1D 05 05 80 06
16:06:16.531 CCM|Locations:Orig=1 BW=64 Dest=0 BW=-1 (-1 implies infinite bw available)
16:06:16.531 CCM|MediaManager - wait_AuDisconnectRequest - StopSession sending disconnect to (64,2) and remove connection from list
16:06:16.531 CCM|MediaManager - wait_AuDisconnectReply - received all disconnect replies, forwarding a reply for party1(16777219) and party2(16777220)
16:06:16.531 CCM|MediaCoordinator - wait_AuDisconnectReply - removing MediaManager(2) from connection list
16:06:16.734 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x1c64310
コール フローの失敗
この項では、SDI トレースを確認しながら、クラスタ間コール フローの失敗について説明します。次のトレースでは、Cisco IP Phone(1001)はオフフックになります。TCP ハンドルが Cisco IP Phone に割り当てられます。
16:05:33.468 CCM|StationInit - InboundStim - OffHookMessageID tcpHandle=0x4fbbc30
16:05:33.468 CCM|StationD - stationOutputDisplayText tcpHandle=0x4fbbc30, Display= 1001
16:05:33.484 CCM|StationD - stationOutputSetLamp stim: 9=Line instance=1 lampMode=LampOn tcpHandle=0x4fbbc30
次のトレースでは、ユーザが着信側の Cisco IP Phone の番号(2000)をダイヤルし、番号分析プロセスが番号を一致させようとしています。
16:05:33.484 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="")
16:05:33.484 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:35.921 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="2")
16:05:35.921 CCM|Digit analysis:potentialMatches=ExclusivelyOffnetPotentialMatchesExist
16:05:36.437 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="20")
16:05:36.437 CCM|Digit analysis:potentialMatches=ExclusivelyOffnetPotentialMatchesExist
16:05:36.656 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="200")
16:05:36.656 CCM|Digit analysis:potentialMatches=ExclusivelyOffnetPotentialMatchesExist
16:05:36.812 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="2000")
これで番号分析が完了しました。次のトレースは、その結果を示しています。次の PotentialMatches=NoPotentialMatchesExist 参照は、Cisco CallManager がこの電話番号と一致しないことを示しています。この点に注意することが重要です。最後に、リオーダー音が発信側(1001)に送信され、その後にオンフック メッセージが続きます。
16:05:36.812 CCM|Digit analysis: analysis results
16:05:36.812 CCM||PretransformCallingPartyNumber=1001
|DialingRoutePatternRegularExpression=(2XXX)
|PotentialMatches=NoPotentialMatchesExist
16:05:36.828 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, CallingParty=1001, CalledPartyName=, CalledParty=2000, tcpHandle=0x4fbbc30
16:05:36.828 CCM|StationD - stationOutputStartTone: 37=ReorderTone tcpHandle=0x4fbbc30
16:05:37.953 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x4fbbc30