2013年2月12日火曜日

通話王とAsterisk

大昔の話ですが、PlanexのBLW-54VP(通話王)とAsteriskをつないだことがあります。
最近まったく使っていない通話王が不憫ということで
ServersMan@VPS上に構築したAsteriskに接続してみることにしました。
やることはたいしてなく、SIP関連の設定を行いネットワークとアナログ電話機をつなぐだけです。
通話王側から発信すると特に問題なく通話ができました。
めでたしめでたし、と思ったのもつかの間、
通話王で着信時に電話を取ろうとすると発信側が切れてしまう現象に出会いました。
Asteriskのログを確認すると
chan_sip.c: SDP syntax error in o= line version
となっており、通信の様子を見てみると…

通話王からの発信ではINVITE時にSDPで
o=<自身の電話番号> 0 0 IN IP4 <自身のIPアドレス>
となっており、セッションIDは'0'、セッションバージョンは'0'になっています。
で、Asteriskからのレスポンスでは
セッションIDとセッションバージョンは同値で非ゼロな値になっています。
続いて通話王への着信であるAsteriskからのINVITEでは
セッションIDとセッションバージョンは同値で先とは異なる非ゼロ値になっています。
それに対する通話王が出すレスポンスでは
セッションIDとセッションバージョンは双方とも0で、
どうもここが悪いらしく直後にAsteriskからBYEを食らっています。
数年前は通話できていたので、
現在のAsterisk 1.6では厳密に見るようになったということでしょうか。

そこで今更感漂うなか通話王の新しいファームウェアがないか探してみたところ、
2007年公開の英語版のバージョン1.0.17.0が見つかりました。
readme.txtを見ると
1. Extend timeout period to 3 minutes
2. Solve the problem of telephone ring after hanging up the phone 
と書かれており2がくさいですね。
ちなみに今書かれているのは日本語ファームウェアのバージョン1.0.9.7で、
別言語のファームウェアを書き込むことで壊れる可能性もありますが、
それでもいいやぐらいの気持ちでで書き換えてみることにしました。
ウェブブラウザで通話王にアクセスし、
[詳細設定]-[システム]-[システムツール]メニューから
ファームウェアアップデートが可能です。
アップデートには2時間ほどかかりましたが無事起動しました。
もちろん設定ページは英語です。
設定はそのまま残っていますが、
デフォルトのパスワードは"password"から"admin"に変わっています。
肝心の発着信はというと…共に正常に動作するようになりました。

0 件のコメント:

コメントを投稿