VoIP技術者のための実践講座 [第3回WireSharkでIP-PBXシグナリングを見る]



VoIP技術者のための実践講座 [第3回WireSharkでIP-PBXシグナリングを見る]

 

 

今回で3回目の実践講座となります。前回WireSharkでSIPのシグナリングを見てきましたが、今回はIP-PBXではどういったメッセージのやり取りがなされているかを見ていくことにしましょう。「第2回 WireSharkでSIPシグナリングを見る」をまだ見ていない人は先にそちらを見ることをお勧めします。また、IP-PBXのイメージがない方は先に別講座である、「基礎から始めるIP-PBX [第2回 シグナリングにおけるIP-PBXの仕組み]」を見られることをお勧めします。

 

 

SIPサーバのみの場合のSIPパケットを確認

それでは見ていきましょう。まずは前回のおさらいから。SIPサーバのみの場合において、Wiresharkで実際のSIPパケットを確認します。

 

SIP電話機A

SIP ID:y1046,

IP Address: 172.16.200.50

SIP電話機B

SIP ID: y1530

IP Address: 172.16.200.152

SIPサーバー

IP Address: 172.16.200.84

この例を図で書くと以下のような構成です。

sip_explanation1

 

実験はSIPサーバーにインストールしてあるWiresharkのパケットキャプチャをONにして、SIP電話機AからSIP電話機Bに電話を掛け、通話後にSIP電話機Bが電話を切ります。

 

WireSharkでキャプチャしたファイルを以下のフィルターにかけます。

(ip.addr==172.16.200.50 || ip.addr==172.16.200.152)&&sip

 

すると、以下の通り、SIPメッセージが抽出されます。ここまでは前回と似たような内容の話ですね。。

sip_capture_3

フロー図で表示すると以下のようになります。

sip_capture_5

 

SIP電話機AとSIP電話機BがSIPサーバーを介してメッセージをやり取りしていることがわかります。IPアドレス172.16.200.84にあるSIPサーバがメッセージを仲介していることがわかります。

 

 

 

IP-PBXの場合のSIPパケットを確認

それでは本題です。IP-PBXの場合はどうなるのでしょうか。以下の環境で実験しました。

SIP電話機A

内線番号:1530

SIP ID:y1530

IP Address: 172.16.200.152

 

SIP電話機B

内線番号11012

SIP ID: p11012

IP Address: 172.16.200.82

 

IP-PBXサーバー

172.16.200.84

実験はIP-PBXサーバーにインストールしてあるWiresharkのパケットキャプチャをONにして、SIP電話機A(1530)からSIP電話機B(11012)に電話を掛け、通話後にSIP電話機Bが電話を切ります。

 

この検証を図で表すと以下です。今回検証で利用したIP-PBXサーバは下図の”IP-PBX”と”SIP”部分の両方の機能を持ちます。

sip_explanation3

 

それでは実際のパケットをキャプチャした結果を見ていきましょう。パケットキャプチャの仕方は第2回をご覧ください。今回は”sip”でフィルターしています。

 

<キャプチャ結果>

ip-pbx_packet1

 

<解りやすくフローで見てみる>

ip-pbx_flow1

 

IPアドレス172.16.200.84にあるIP-PBXがSIPUAとして振る舞っています。IP-PBXはUAとして、SIP端末A(172.16.200.152)のメッセージを受けてレスポンスを返し、別のUAとして、SIP端末B(172.16.200.82)へリクエストを送信しています。この際、SIP端末Aからのリクエストメッセージにある内線(11012)をSIP IDである、p11012へ正しく交換してUAとして新たに送出しています。

 

※今回、内線(11012)への単純な回線交換でしたが、複雑な場合もあります。例えばもしSIP端末Aからの発信が複数の端末が所属するグループ内線番号宛てであった場合、IP-PBXはグループ内線番号に紐づく複数のSIP端末へINVITEメッセージを送出します。