0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SIP/RTP デバッグのための tcpdump & Wireshark 実践ガイド

Posted at

この記事は筆者オンリーのAdvent Calendar 20258日目の記事です。

本記事ではSIP/RTP デバッグのための tcpdump & Wiresharkのネタを書いてみようと思います。

VoIP(特に SIP/RTP)を扱っていると、通話が鳴らない/片通話になる/音が途切れる といったトラブルは頻繁に発生します。
この記事では、SIP/RTP のデバッグを行う際によく使う tcpdump と Wireshark の基本〜すぐ使える実践方法 をまとめます。

はじめに

以下の構成で書いていきます。
1.なぜ SIP/RTP デバッグに tcpdump と Wireshark が必要なのか

2.tcpdump で必要なパケットだけを効率よく取る

3.Wireshark で SIP/RTP を読み解く

4.RTP ストリームの再生と音声解析

5.VoIP デバッグでよくある落とし穴

6.まとめ

1. なぜ SIP/RTP デバッグに tcpdump と Wireshark?

SIP はシグナリング、RTP はメディア(音声)を運ぶプロトコルです。
問題の原因を切り分けるには、どの時点で何が起きているのか をパケットレベルで見る必要があります。

例えば:

SIP INVITE が届いていない → 着信しない

200 OK の SDP が誤っている → 音声が片側しか聞こえない

RTP が送られていない/ポートが違う → 無音

NAT/FireWall 配置が原因 → コール確立失敗

tcpdump は 現場での即時キャプチャ、Wireshark は 詳細解析 に最適です。

2. tcpdump で必要なパケットだけを効率よく取る

最低限覚えておきたい tcpdump コマンド
▼ SIP(5060/UDP)を取る
sudo tcpdump -i any -nn port 5060 -w sip.pcap

▼ RTP(10000–20000 など任意ポート)を取る
sudo tcpdump -i any -nn udp portrange 10000-20000 -w rtp.pcap

▼ SIP と RTP をまとめて取る(推奨)
sudo tcpdump -i any -nn udp and ( port 5060 or portrange 10000-20000 ) -w voip.pcap

▼ 端末の IP(例: 192.168.1.50)に絞る
sudo tcpdump -i any -nn host 192.168.1.50 -w filter.pcap

🔍 キャプチャのポイント

-nn はホスト名・プロトコル名を解決しないので高速

-w は生データを保存する(Wireshark 解析用)

any インターフェイスは便利だが CPU コスト高 → NIC がわかれば代わりに eth0 等を指定

VoIP 機器では パケットドロップが発生しないように注意

3. Wireshark で SIP/RTP を読み解く

pcap を Wireshark に読み込んだら、まずは プロトコルツリー で SIP の流れを追います。

よく使う Wireshark ディスプレイフィルタ
SIP
sip

SDP のみ
sdp

RTP
rtp

特定の Call-ID のみ
sip.Call-ID contains "xxxxxx"

IP アドレスで絞る
ip.addr == 192.168.1.50

SIP コールの追跡(Follow SIP Flow)

Wireshark のメニューより
Telephony → SIP → Flow Sequence を開くと、
以下のような シーケンス図 が自動生成されます:

INVITE

100 Trying

180 Ringing

200 OK

ACK

BYE

SIP デバッグでは最も強力な機能のひとつです。

4. RTP ストリームの再生と音声解析

Wireshark は RTP 音声の再生が可能です。

▼ メニュー

Telephony → RTP → RTP Streams

すると、各 RTP ストリームの情報が閲覧できます:

パケットロス

ジッタ

コーデック(G.711 / Opus / G.729 …)

Payload Type

SSRC

"Analyze" → "Play Streams" を押すと、実際に音声を聞くこともできます。

通話品質の劣化原因(ノイズ・欠落)が目で見てわかるのが利点。

5. VoIP デバッグでよくある落とし穴

SIP の NAT 越え(特に家庭用ルータ)

SDP の c= や m= の IP がプライベートアドレスになる

外向き RTP が正しく届かず「片通話」になる

❗ PBX / SBC のポート制限

RTP のポート範囲が異なる機器間で問題が起きがち

❗ コーデック不一致

片側が G.711 μ-law のみ

もう片側が Opus のみ
→ どちらも Offer/Answer が成立せず無音

❗ firewall が UDP を破棄

SIP のみ許可し RTP を落とすケース

6. まとめ

現場では tcpdump で最小限のパケットを確実に取る のが重要

Wireshark は SIP シーケンス確認 と RTP 音声解析 に非常に強い

NAT まわりの問題は特に頻出。SDP を必ず確認する

RTP パケットのロスや遅延は Wireshark の RTP 解析で可視化可能

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?