(無償) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

2013年5月30日木曜日

Asteriskに行き来するRTPパケットのIPアドレスを調べる

Asteriskで電話システムの構築中に、着信はしても片側の音声が聞こえない問題が生じた場合、
RTPパケットという音声パケット(メディアパケット)を調べると解決のヒントになるかもしれない。


たとえば、ある特殊な環境での「公衆電話網上にいる相手に音声が届かない」問題では、
AsteriskからのRTPパケットのルーティングがネットワーク上でうまくできていなかったために、
相手側へ音声が届いていないのだとわかった。

Register先アドレスとは異なる宛先のRTPパケットが、対向からの要求によってAsteriskで作られている場合、
この宛先についても正しくルーティングできなければ、相手に音声は届かない。

RTPパケットが向かうアドレスはRegister先ネットワークアドレスと必ずしも同じであるとは限らない
そしてデフォルトゲートウェイ一本だけで通用しない特殊な環境では、
SIPパケットとRTPパケットそれぞれについてルーティング設定を考慮しなければならない。

このような問題に対処するためには、
Asteriskから送出されているRTPパケットの宛先アドレスを調べればよい。
そして正しくルーティングできるように各ルーターにゲートウェイを設定する。


どのようなRTPパケットがAsteriskから送出されようとしているか、あるいは、
どこからRTPパケットがAsteriskにやってきているかは、次のコマンドで調べる。


◆使用したバージョン
 Asterisk 1.8.20.1

○次のようにして、RTPデバッグをオンにしてから、
localhost*CLI> rtp set debug on
RTP Debugging Enabled
そうして、通常通り、Asterisk電話端末から電話を掛ける。


○すると、次のようなメッセージが通話中に延々とコンソール上に流れる。

メッセージは、Got RTP(Asteriskが受け取ったRTP)と、Sent RTP(Asteriskが送り出したRTP)に分けられる。

この例ではAsteriskが電話機とVOIPゲートウェイの間で中継器として機能している。、
一方からRTPを受け取って、他方へとRTPを流している様子と、
他方からRTPを受け取って、一方へとRTPを流している様子がわかる。
Got  RTP packet from    192.168.1.10:50248 (type 00, seq 019709, ts 224768732, len 000160)
Sent RTP packet to      192.168.2.11:5968 (type 00, seq 055566, ts 224768728, len 000160)

Got  RTP packet from    192.168.2.11:5968 (type 00, seq 014666, ts 090720, len 000160)
Sent RTP packet to      192.168.1.10:50248 (type 00, seq 033646, ts 090720, len 000160) 

Got  RTP packet from    192.168.1.10:50248 (type 00, seq 019710, ts 224768892, len 000160)
Sent RTP packet to      192.168.2.11:5968 (type 00, seq 055567, ts 224768888, len 000160)

Got  RTP packet from    192.168.2.11:5968 (type 00, seq 014667, ts 090880, len 000160)
Sent RTP packet to      192.168.1.10:50248 (type 00, seq 033647, ts 090880, len 000160)

Got  RTP packet from    192.168.1.10:50248 (type 00, seq 019711, ts 224769052, len 000160)
Sent RTP packet to      192.168.2.11:5968 (type 00, seq 055568, ts 224769048, len 000160)
たとえば、この情報から、192.168.2.11というアドレスに、RTPパケットが送出されていることがわかる。
もしこの192.168.2.11がPSTN-VOIPゲートウェイだとして、そこへ正しくルーティングされないなら、
公衆電話網上の相手先に音声が届かないことになる。
この場合なら、192.168.2.11へのゲートウェイをルーターに正しく設定する必要がある。


Asteriskは、このようにデバッグ機能が充実しているので、便利だと思った。