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サーバーにインストールしてあるWiresharkのパケットキャプチャをONにして、SIP電話機AからSIP電話機Bに電話を掛け、通話後にSIP電話機Bが電話を切ります。
WireSharkでキャプチャしたファイルを以下のフィルターにかけます。
(ip.addr==172.16.200.50 || ip.addr==172.16.200.152)&&sip
すると、以下の通り、SIPメッセージが抽出されます。ここまでは前回と似たような内容の話ですね。。
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”部分の両方の機能を持ちます。
それでは実際のパケットをキャプチャした結果を見ていきましょう。パケットキャプチャの仕方は第2回をご覧ください。今回は”sip”でフィルターしています。
<キャプチャ結果>
<解りやすくフローで見てみる>
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メッセージを送出します。