症状
IP ステーションから Cisco IOS 音声ゲートウェイまたはルータ経由で電話コールが確立されている場合に、片方の通話者しか音声を受信しません(一方向通信)。
2 つの Cisco ゲートウェイ間でトールバイパス コールが確立されている場合に、片方の通話者しか音声を受信しません(一方向通信)。
考えられる原因
特に、Cisco IOS ゲートウェイ、ファイアウォール、またはルーティングが正しく設定されていないことや、デフォルト ゲートウェイの問題によって、この問題が発生する可能性があります。
推奨処置
Cisco IOS ゲートウェイまたはルータで IP ルーティングがイネーブルになっていることを確認
VG200 などの一部の Cisco IOS ゲートウェイでは、デフォルトで IP ルーティングがディセーブルになっています。 これにより、片通話の問題が発生します。
(注) |
次に進む前に、ルータで IP ルーティングがイネーブルになっている(つまり、グローバル コンフィギュレーション コマンド no ip routing を使用していない)ことを確認します。
|
IP ルーティングをイネーブルにするには、Cisco IOS ゲートウェイで次のグローバル コンフィギュレーション コマンドを入力します。
voice-ios-gwy(config)#ip routing
基本 IP ルーティングの確認
常に最初に基本 IP アクセスを確認するようにします。 RTP ストリームはコネクションレス型であるため(UDP で転送される)、一方向のトラフィックは正常に実行されますが、逆方向はトラフィックが失われることがあります。
次の条件を確認してください。
-
デフォルト ゲートウェイがエンド ステーションに設定されている。
-
上記のデフォルト ゲートウェイの IP ルートが宛先ネットワークにつながっている。
(注) |
次に、さまざまな
Cisco Unified IP Phone でデフォルト ルータまたはゲートウェイの設定を確認する方法を一覧します。
|
-
Cisco Unified IP Phone モデル 7910:[設定(Settings)] ボタンを押し、オプション 6 を選択して、[デフォルト ルータ(Default Router)] フィールドが表示されるまで下向きの音量ボタンを押します。
-
Cisco Unified IP Phone モデル 7960/40:[設定(Settings)] ボタンを押し、オプション 3 を選択して、[デフォルト ルータ(Default Router)] フィールドが表示されるまで下方向にスクロールします。
-
Cisco Unified IP Phone モデル 2SP+/30VIP:**# を押してから、gtwy= が表示されるまで # を押します。
(注) |
Cisco DT24+ ゲートウェイの場合は、DHCP スコープを調べて、スコープに [デフォルト ゲートウェイ(Default Gateway)](003 ルータ)オプションがあることを確認します。 003 ルータ パラメータによって、デバイスおよび PC の [デフォルト ゲートウェイ(Default Gateway)] フィールドに値が入力されます。 スコープ オプション 3 には、ゲートウェイのルーティングを行うルータ インターフェイスの IP アドレスが設定されている必要があります。
|
Cisco IOS ゲートウェイまたはルータの特定の IP アドレスへの H.323 シグナリングのバインド
Cisco IOS ゲートウェイに複数のアクティブ IP インターフェイスがある場合、H.323 シグナリングの一部は送信元に 1 つの IP アドレスを使用し、その他の部分は別の送信元アドレスを参照することがあります。 これにより、片通話になるなど、さまざまな問題が発生する可能性があります。
この問題を回避するには、H.323 シグナリングを特定の送信元アドレスにバインドします。この送信元アドレスは物理インターフェイスまたは仮想インターフェイスに割り当てることができます(ループバック)。 インターフェイス コンフィギュレーション モードで使用するコマンド構文は、次のとおりです。
h323-gateway voip bind srcaddr<ip address>。 Cisco Unified Communications Manager が指す IP アドレスを持つインターフェイスで、このコマンドを設定します。
このコマンドは、Cisco IOS Release 12.1.2T で導入され、『Configuring H.323 Support for Virtual Interfaces』で文書化されています。
(注) |
バージョン 12.2(6) には不具合があるため、実際にはこのソリューションで片通話の問題が発生する可能性があります。 詳細については、Cisco ソフトウェア Bug Toolkit(登録されているお客様専用)で Bug ID CSCdw69681(登録されているお客様専用)を参照してください。
|
Telco またはスイッチとの間で応答監視が正しく送受信されていることを確認
Telco またはスイッチに Cisco IOS ゲートウェイが接続されている実装では、Telco またはスイッチの背後にあるコール先のデバイスがコールに応答するときに、応答監視が正しく送信されることを確認します。 応答監視の受信に失敗すると、Cisco IOS ゲートウェイは順方向の音声パスをカットスルー(オープン)せず、これにより片通話が発生します。 これを回避するには、voice rtp send-recv on を設定する必要があります。
voice rtp send-recv を使用した、Cisco IOS ゲートウェイまたはルータでの双方向通話の早期カットスルー
RTP ストリームが開始するとすぐに、音声パスが逆方向に確立されます。 順方向の音声パスは、Cisco IOS ゲートウェイがリモート エンドから Connect メッセージを受信するまでカットスルーされません。
場合によっては、RTP チャネルがオープンされたあとすぐに(Connect メッセージが受信される前に)双方向音声パスを確立する必要があります。 これを実現するには、voice rtp send-recv グローバル コンフィギュレーション コマンドを使用します。
Cisco IOS ゲートウェイまたはルータで、リンクバイリンク ベースで cRTP 設定を確認
この問題は、トールバイパスなど、複数の Cisco IOS ルータまたはゲートウェイが音声パスに含まれ、圧縮 RTP(cRTP)が使用されているシナリオに適用されます。 cRTP、つまり RTP ヘッダー圧縮は、VoIP パケット ヘッダーを小さくして帯域幅を取り戻す方法です。 cRTP は、VoIP パケット上の 40 バイトの IP/UDP/RTP ヘッダーを 1 パケット当たり 2 ~ 4 バイトに圧縮するため、G.729 で符号化されたコールで cRTP を使用すると、約 12KB の帯域幅が得られます。
cRTP はホップバイホップ ベースで実行され、ホップごとに圧縮解除および再圧縮が行われます。 ルーティングを行うにはそれぞれのパケット ヘッダーを検査する必要があるため、IP リンクの両側で cRTP をイネーブルにします。
また、リンクの両端で cRTP が予想通りに機能していることを確認します。 Cisco IOS のレベルは、スイッチング パスおよび cRTP の同時サポートに応じて異なります。
要約すると、次のような履歴になります。
-
Cisco IOS Software Release 12.0.5T までは、cRTP はプロセス交換されます。
-
Cisco IOS Software Release 12.0.7T では、cRTP に対するファースト スイッチングとシスコ エクスプレス フォワーディング(CEF)スイッチングのサポートが導入され、12.1.1T でも引き続きサポートされています。
-
Cisco IOS Software Release 12.1.2T では、アルゴリズムによるパフォーマンス改善が導入されています。
Cisco IOS プラットフォーム(IOS Release 12.1)を実行している場合、Bug ID CSCds08210(登録されているお客様専用)(「VoIP and FAX not working with RTP header compression ON」)が、使用している IOS バージョンに影響していないことを確認します。
Cisco IOS ゲートウェイまたはルータの NAT に必要な最小ソフトウェア レベルの確認
ネットワーク アドレス変換(NAT)を使用している場合は、最小ソフトウェア レベル要件を満たしている必要があります。 初期バージョンの NAT では、Skinny プロトコル変換がサポートされていないため、片通話の問題が発生します。
NAT と Skinny を同時に使用するために必要な最小ソフトウェア レベルは、IOS ゲートウェイで NAT とともに Skinny および H.323v2 がサポートされている Cisco IOS Software 12.1(5)T です。
(注) |
Cisco Unified Communications Manager で、Skinny シグナリング用にデフォルトの 2000 とは異なる TCP ポートを使用している場合、ip nat service skinny tcp port<number> グローバル コンフィギュレーション コマンドを使用して NAT ルータを調整する必要があります。
|
PIX ファイアウォールで NAT および Skinny を同時に使用するために必要な最小ソフトウェア レベルは 6.0 です。
(注) |
これらのソフトウェア レベルは、ゲートキーパーのフル サポートに必要なすべての RAS メッセージをサポートしているわけではありません。 ゲートキーパーのサポートは、このマニュアルの対象範囲外です。
|
AS5350 および AS5400 での voice-fastpath のディセーブル化
Cisco IOS コマンド voice-fastpath enable は、AS5350 および AS5400 用の非表示のグローバル コンフィギュレーション コマンドで、デフォルトではイネーブルになっています。 これをディセーブルにするには、no voice-fastpath enable グローバル コンフィギュレーション コマンドを使用します。
イネーブルの場合、このコマンドによって、特定のコール用にオープンされる論理チャネルの IP アドレスおよび UDP ポートがキャッシュされ、RTP ストリームはアプリケーション層に到達できなくなり、それよりも下位のレイヤにパケットが転送されます。 そのため、コール数の多いシナリオにおいて、CPU 使用率がわずかに減少します。
保留または転送などの補足サービスが使用されている場合、voice-fastpath コマンドを使用すると、ルータは、保留中のコールが再開されたあとや転送が完了したあとに生成された新しい論理チャネル情報を無視して、キャッシュされている IP アドレスおよび UDP ポートに音声を送ります。 この問題を回避するには、論理チャネルの再定義が考慮され、音声が新しい IP アドレスと UDP ポートのペアに送られるように、トラフィックを常にアプリケーション層に転送する必要があります。 このような理由で、voice-fastpath をディセーブルにして補足サービスをサポートする必要があります。
SoftPhone を使用した VPN IP アドレスの設定
Cisco IP SoftPhone には、Cisco Unified IP Phone モデル 7900 シリーズ電話機のように PC 動作を行う機能が備わっています。 VPN を使用して会社のネットワークに接続するリモート ユーザは、片通話の問題を回避するためにさらに追加の設定を行う必要があります。
このソリューションでは、[ネットワーク オーディオ設定(Network Audio Settings)] で、ネットワーク アダプタの IP アドレスの代わりに VPN IP アドレスを設定する必要があります。
検証
パケット フローの検証に役立つのが、debug cch323 rtp コマンドです。 このコマンドは、ルータの送信パケット(X)と受信パケット(R)を表示します。 大文字は、正しく実行された送信または受信を示し、小文字はドロップされたパケットを示します。 次の例を参照してください。
voice-ios-gwy#debug cch323 rtp
RTP packet tracing is enabled
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#
!--- This is an unanswered outgoing call.
!--- Notice that voice path only cuts through in forward
!--- direction and that packets are dropped. Indeed,
!--- received packets are traffic from the IP phone to the PSTN
!--- phone. These will be dropped until the call is answered.
Mar 3 23:46:23.690: ****** cut through in FORWARD direction *****
XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXXrrrrrrrrrrrrrrrr
voice-ios-gwy#
voice-ios-gwy#
!--- This is an example of an answered call:
voice-ios-gwy#
voice-ios-gwy#
*Mar 3 23:53:26.570: ****** cut through in FORWARD direction *****
XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XXrrrrrXrXrXrXrXrXrXrXrXrXrXrXrrXXrrXrXrXrXrXrXXXXXXXXXXXXXXXXrXXXXXXXXrXrXrXXrrXr
XrXrXrXrXrXrXrXrXXrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
!-- At this point the remote end picks up the phone.
*Mar 3 23:53:30.378: ****** cut through in BOTH direction *****
XRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXR
XXRRXRXRXXRRXRXRXRXRXXRXRXRXRXRXRRXRXXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRXXRXRXRXRXRXRRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XXRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXXRRRXR
!-- End of conversation.