はじめに
このドキュメントでは、WiresharkでJabber SIPコールの問題をトラブルシューティングする方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- SIPシグナリング
- Jabberコールフロー
- Wiresharkとパケットフィルタリングの基本的な知識
使用するコンポーネント
- Jabber for Windows 15.0.2
- CUCM 15su2
- Wireshark 4.4.7
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
Session Initiation Protocol(SIP;セッション開始プロトコル)は、VoIP通信におけるシグナリングの標準プロトコルです。SIPは、コールのセットアップ、変更、およびティアダウンを管理します。コールを確立できない場合、問題はSIPシグナリングにあることがよくあります。Cisco Jabberは、音声またはビデオコールの発信時にシグナリングにSIPを使用します。Wiresharkを使用すると、エンジニアはSIPメッセージをキャプチャして分析し、エラーを特定し、コールセットアップ障害の原因を特定できます。
トラブルシュート
1. 影響を受けるコールフローを特定して切り分けます。これは、問題に関係するネットワークデバイスを判別するための重要なステップです。このドキュメントの目的では、CUCMに登録されている2つのJabberクライアント間のポイントツーポイントコールを基準として使用します。ただし、この基本的なトラブルシューティングは複数のシナリオに適用されます。
2. Wiresharkを開きます。
3. 正しいネットワークインターフェイスを選択し、影響を受けるデバイスでWiresharkパケットキャプチャを開始します。

4. 問題を複製し、タイムスタンプ、着信者番号、発信者番号、およびコール中の特定のエラーや動作などの重要な情報を記録します。
5. Wiresharkパケットキャプチャを停止して収集します。

6. パケットキャプチャを開き、Telephony > VoIP Calls > Identify the test callの順に選択し、Flow Sequenceをクリックします。

7. Wiresharkは、デバイスの観点からコールフロー図を表示します。フローのネットワークデバイスの部分を特定し、SIPシグナリングを分析して、SIPエラーまたはコールが終了した理由や開始されなかった理由を探します。

8. 調査の対象となるSIPメッセージがある場合、そのメッセージをクリックすると、Wiresharkによってパケットキャプチャ内のメッセージが自動的に強調表示されます。その後、その特定のパケットに対してディープインスペクションを実行できます。パケットの詳細に表示されているSession Initiation Protocol(SIP;セッション開始プロトコル)情報を、ここで展開します。

9. Wiresharkのパケット詳細セクションには、そのパケットに関するすべての情報が含まれています。ここから、これらのエラーやメッセージのコールID、From、To、Date、Time、Errors、およびReasonなどの詳細情報を取得できます。この情報は、コールフローパスに沿ってこのコールを追跡する必要がある場合に役立ちます。
10. SIPコールで最もよく発生するエラーを次の表に示します。
コード
|
意味
|
考えられる原因
|
修正/アクション
|
403禁止
|
承認されましたが、要求は拒否されました
|
ユーザには権限がなく、SIPドメインが正しくない、ポリシーでブロックされている。
|
ダイヤルプラン/アクセス許可を確認します。
|
404が見つかりません
|
ユーザー/拡張子が見つかりません
|
ユーザが作成されていない、登録されていない、ダイヤル番号が間違っている。
|
ユーザが存在することを確認します。エンドポイント登録を確認します。ルーティング/ダイヤルプランを確認します。
|
408要求タイムアウト
|
宛先からの応答なし
|
ネットワークの問題、ファイアウォール/NATブロック、デバイスのオフライン。
|
接続をテストします(ping/traceroute)。SIP/RTPポートを開き、デバイスがオンラインであることを確認します。
|
415サポートされていないメディアタイプ
|
メディアの種類がサポートされていません。
|
SDPにはサポートされていないコーデック/形式が含まれています。
|
コーデックを調整し、互換性のあるSDPオファー/応答を確認する
|
480 Temporarily Unavailable(一時的に使用不能)
|
ユーザに到達できません。
|
デバイスが登録されていない、応答不可、ネットワーク損失。
|
エンドポイントステータスの確認、登録の確認、ネットワーク到達可能性の確認
|
486ビジー(こちら)
|
エンドポイントがビジーです。
|
別のコールのユーザ、サイレントがアクティブ。
|
後で再試行してください。コールウェイティングまたは転送を有効にしてください。
|
488は許容されない
|
メディアネゴシエーションに失敗しました。
|
コーデックの不一致、SRTPとRTPの不一致、サポートされていないDTMF方式。
|
コーデックリストの位置合わせ、暗号化設定の確認、DTMFタイプの照合
|
500内部サーバエラー
|
サーバ側の障害。
|
SIPサービスのクラッシュ、設定ミス
|
サーバログ/設定を確認し、SIPサービスを再起動します。
|
503サービス使用不可
|
サーバが使用できないか、過負荷になっている。
|
サーバダウン、メンテナンス、過負荷。
|
サーバの状態の確認、バックアップへのフェールオーバー、負荷の軽減
|
11. この時点で、問題がリレーされる場所の全体像を把握しておく必要があります。一般的なシナリオは次のとおりです。
- Jabberがエラーを生成するか、通話を終了します。その場合、Jabberログを収集し、前に取得したパケットの詳細セクションの情報を使用してコールを追跡する必要があります。Jabberログ分析には、テキストエディタを使用することを推奨します。この場合、コールID情報を使用してフィルタリングすることにより、そのコールに関連する情報を表示できます。また、フィルタリングするための便利なキーワードは、sipioであり、ログ内のすべてのSIPメッセージを表示できます。問題の原因となる可能性のあるSIP障害関連のエラーやイベントを検索する必要があります。
- Jabberは別のデバイスまたはサーバからエラーを受信します。この場合、コールフローのサーバ部分から追加のログを収集する必要があります。場合によっては、Call Managerのログとトレース、Expresswayのログとゲートウェイのデバッグなどがあります。必要な情報は、影響を受けるコールフローによって異なります。
SIP用のWireshark表示フィルタ
Wiresharkで表示フィルタを使用すると、特定の情報、複数のコール、またはメッセージをフィルタリングして表示できます。次の表に例を示します。
目的
|
表示フィルタ
|
注意事項
|
すべてのSIPトラフィック
|
sip
|
SIPシグナリングのみを表示します(メディアなし)。
|
招待メッセージ
|
sip.Method==「INVITE」
|
コールセットアップ分析に使用されます。
|
メッセージの登録
|
sip.Method==「REGISTER」
|
登録/認証の問題について。
|
すべてのSIPエラー(4xx/5xx/6xx)
|
sip.Statusコード>= 400
|
失敗した要求を迅速に切り分けます。
|
特定のSIPエラー(403など)
|
sip.Statusコード== 403
|
1つのタイプの障害だけを確認します。
|
コールIDによるフィルタリング
|
sip.Call-ID == "abcd1234@domain.com"
|
単一のコール/セッションをエンドツーエンドで追跡します。
|
特定のIPとの間でSIPを実行
|
ip.addr == 192.168.1.50およびsip
|
1つのエンドポイントのSIPトラフィックに注目します。
|
すべてのRTPトラフィック
|
rtp
|
RTPメディアストリームのみを表示します。
|
結論
この構造化されたワークフローは、エンジニアがCisco Jabber SIPコールの問題を効率的にトラブルシューティングするために使用できます。Wiresharkは、SIPフローの可視化とパケット分析を組み合わせることで、Jabberコールのセットアップの問題を解決する重要なツールとなります。