2013年3月19日火曜日

光ネクスト隼 PR-400NE へ asterisk を接続

先日の休日を使ってフレッツ 光ネクスト スーパーハイスピードタイプ 隼 のホームゲートウェイ PR-400NE へ asterisk 1.8.20 を接続してみました。いつものように VoIP-Info.jp Wiki を参考にさせていただきました。今回は次の二つのページです。
RT-200NE対応パッチ
http://www.voip-info.jp/index.php/RT-200NE%E5%AF%BE%E5%BF%9C%E3%83%91%E3%83%83%E3%83%81

RT-200NE
http://voip-info.jp/index.php/RT-200NE

結果は、RT-200NE 対応パッチを使って接続に成功しました。これで PR-400NE と asterisk をつないでいた FXO のプラネックス VTL-TA02X も不要となりました。フレッツ光を受信する機器周辺が一気に片付いてしまいました。何だかすっきりした感じです。

PR-400NE とスイッチングハブだけとなりました
撤去した VTL-TA02X です
お疲れ様でした

PR-400NE と asterisk を接続した環境です。このブログを参考として PR-400NE へ asterisk を接続を試してみようとする読者さんは、バージョンが今後異なって行くことに注意してください。
asterisk サーバー:FreeBSD 8.3R-p6
asterisk バージョン:1.8.20.1
RT-200NE パッチ:chan_sip.rt200ne.110205-01.patch
PR-400NE ファームウェア:4.37

PR-400NE と asterisk の接続の前に IP 電話機を直接 PR-400NE へ接続しようと試みました。
LINKSYS SPA941
MITEL 5330
SNOM 300
いずれも接続させることは出来ませんでした。私の知識不足も影響していると思いますが、何か接続させるためのコツでもあるのでしょうか? なお PR-400NE の内線電話の詳細設定の「通常端末」と「音声専用端末」の切り替えはどちらも試みています。

さて asterisk による接続ですが、RT-200NE 対応パッチを適用していない状態で接続を試みましたが、残念ながら接続できませんでした。IP 電話機も接続できなかったので、この辺りで少し心が折れてしまいそうでした(涙)。

これまでの結果を踏まえて asterisk の先達たちが丹精込めて作られた RT-200NE 対応パッチを使用させてもらうこととしました。FreeBSD の ports の環境ではアプリケーション・ソフトウェアをインストールするときには、毎度ビルドを行っていることもあり、私自身も何度もパッチを適用させてビルドしてきましたのでパッチの適用作業には何の障害もありません。しかし問題は asterisk のアップデートは非常に頻繁であることです。アップデートの度に手動でパッチを適用させるのは面倒なものです。そこで毎度特定のパッチを適用させてビルドさせるための手段があったことを思い出しました。Makefile.local を使う方法です。私も今回初めての Makefile.local だったので少し試行錯誤がありましたが、無事自動的に RT-200NE のパッチを適用させながらビルドに成功しました。

Makefile.local による RT-200NE の自動パッチ適用方法は次のとおりです。
asterisk の ports の /usr/ports/net/asterisk のディレクトリ直下に Makefile.local を作ります。
# cd /usr/ports/net/asterisk
# touch Makefile.local
Makefile.local の中には次のようにダウンロードしてくるパッチの名称や URL を記述しておきます。
PATCH_SITES+= http://ftp.voip-info.jp/asterisk/patch/local/1.8/channels/
PATCHFILES+= chan_sip.rt200ne.110205-01.patch
PATCH_DIST_STRIP+= -p0
NO_CHECKSUM = yes
これで後はいつものように portupgrade で asterisk を再ビルドするだけです。
# portupgrade -f net/asterisk
RT-200NE対応のパッチは /usr/ports/distfiles/ のディレクトリへ自動的にダウンロードしていました。

RT-200NE 対応パッチを適用した asterisk を再起動させて接続に挑戦しました。

asterisk の設定ファイル sip.conf を次のように設定しました。PR-400NE の IP アドレスは以前のブログで記述のように 192.168.24.1 へ変更してあります。そしてこの [pr400ne] のプロファイルでは extensions.conf の [ntt-in] を呼び出すようにしています。extensions.conf の [ntt-in] では asterisk 配下の電話機を一斉に呼び出す内容にしてあります。
注意点は insecure のとこで、インターネット上の情報の多くが very となっています。これでは接続できませんでした。asterisk 1.8.20 では port,invite が正解のようです。@nifty の IP 電話の設定もここのところを以前は very などとしていて、いつからかのバージョンか忘れてしまいましたが、port,invite へ変更して接続が再び出来るようになっています。

[general] - - - - - - - - - へ追加
maxexpirey=3600
defaultexpirey=3600
  .
  .
rt200ne=192.168.24.1
register => 3:<password>:0003@pr400ne/<ひかり電話の番号>
(注意)asterisk へのパラメータとして rt200ne が使用されています。


[pr400ne] - - - - - - - - - 新設
type=friend
secret=<password>
username=0003
fromuser=3
fromdomain=192.168.24.1
host=192.168.24.1
context=ntt-in
insecure=port,invite <<注意>>
dtmfmode=inband
canreinvite=no
disallow=all
allow=ulaw

PR-400NE の内線電話の設定では「音声専用端末」に設定しました。


これでようやく PR-400NE へ asterisk を接続することに成功しました。PR-400NE の [電話設定] - [内線設定] の 登録状態 の表示がようやく 登録済み と変わりました。



通話テストのために PR-400NE へ接続してあるアナログ電話機から内線 3 番を押してみました。ちゃんと asterisk 配下の IP 電話機が一斉に鳴り出しました。ちゃんと通話もできました。しかし asterisk 配下の IP 電話機から PR-400NE へ接続したアナログ電話機へダイヤルすると様子が変でした。ちゃんとアナログ電話のベルが鳴るのですが、受話器を持ち上げても通話が出来ず、IP 電話機側はまだ呼び出し中の状態となっていました。一旦アナログ電話機の受話器を置くと再度ベルが鳴ります。ここで再度アナログ電話機の受話器を持ち上げると通話が出来るのです。これは PR-400NE の [電話設定] - [内線設定(アナログ端末)] の中にあるナンバーディスプレイの項目を無効とすることで解消しました。ナンバーディスプレイ非対応のアナログ電話機を使うときには注意が必要のようです。

これでアナログ回線を経由しての通話も さようなら することとなりました!

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。