asterisk 1.8.20.2 へアップデートと RT-200NE パッチ

FreeBSD の ports へ asterisk 1.8.20.2 へのアップデートが到着していました。

asterisk の ports ディレクトリの /usr/ports/net/asterisk/ を確認してみたところ、前回用意していた RT-200NE 適用パッチを記述した Makefile.local が消去されていました。Makefile.local はやっぱり恒常的に ports ディレクトリに残っているファイルではないようです。

Makefile.local を再び作り直して、portupgrade でビルドしました。

PATCHFILES+= chan_sip.rt200ne.110205-01.patch
PATCH_DIST_STRIP+= -p0
NO_CHECKSUM = yes

動作は問題なく、PR-400NE のひかり電話を経由しての通話も成功しました。

PR-400NE へ LINKSYS PAP2-NA を接続

光ネクスト隼のホームゲートウェイの PR-400NE へアナログ電話機アダプタ LINKSYS PAP2-NA を接続してみました。

結果は登録まで出来たのですが、なぜか通話ができませんでした。

前述の ekiga phone と似た現象となっていますが、双方から呼び出し・通話ができませんでした。PR-400NE との接続は、なかなか手強いようです。

PR-400NE へ ekiga phone を接続

先日から手持ちの IP 電話機をフレッツ 光ネクスト スーパーハイスピードタイプ 隼 のホームゲートウェイ PR-400NE へ接続しようといろいろ試みましたが、残念ながらどれも接続出来ない状況が続いています。

そこでソフトフォンの一つの ekiga phone を接続してみました。実際に使用したのは debian squeeze の ekiga 3.2.7 です。

ekiga のアカウント設定の様子

ハードウェアの IP 電話機が全滅でしたが、ekiga phone はすんなりと接続できました。ただし条件付きの一方通行の接続です。

PR-400NE に接続したアナログ電話機から内線電話で ekiga phone を呼び出しは問題なくできました。また通話も綺麗な音声で問題ありませんでした。

しかし ekiga phone から PR-400NE のアナログ電話機を呼び出そうとすると「共通コーデックではありません」と表示されて接続を拒否してしまいます。もちろん通話はできませんでした。

一番下の部分の接続状況に
「共通コーデックではありません」の表示

通話が出来るときには「PCMU」で接続していることが表示されていたため、設定で使用できるコーデックを確認してみました。もちろん PCMU は使用できるようになっています。この PCMU だけを残してその他を無効にしてコーデックを絞り込んでみましたが、同様に「共通コーデックではありません」と表示されて接続できませんでした。逆に設定可能なすべてのコーデックを有効にしても接続できませんでした。原因は不明です。何かよい解決方法はないものかと悩んでいます。

結局、今のところは RT-200NE のパッチを適応した asterisk のみで接続出来ている状況となっています。

光ネクスト隼 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 の [電話設定] – [内線設定(アナログ端末)] の中にあるナンバーディスプレイの項目を無効とすることで解消しました。ナンバーディスプレイ非対応のアナログ電話機を使うときには注意が必要のようです。

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

光ネクスト隼 PR-400NE の設定

フレッツ 光ネクスト スーパーハイスピードタイプ 隼 のホームゲートウェイとして設置された PR-400NE を設定しました。

なお PR-400NE にはスイッチングハブからのケーブル一本だけを取り付けてネットワークの内部と外部の接続点としての役目を果たしてもらっています。

なおオプションの無線 LAN は申し込んでいないため、PR-400NE 上部のソケットは空きのままとなっています。

まず設定の前に以前の光プレミアムで使用していた CTU の設定を記録しておいて、紙にプリントアウトしておきました。これは以前と同じ設定をするためです。

今までの光プレミアムで使っていたサブネット 192.168.24.1 から標準的な 192.168.1.1 へ戻っています。しかしすでに 192.168.24.1 を前提に多数の機器を設定しているため、この設定の変更から行うこととしました。

しかし PR-400NE の自分自身の IP アドレスを設定するところが見当たりません。もしかして 192.168.1.1 へ固定設定してあるのかと思って、自宅サーバーの named や dhcpd を変更して対応しようと諦めかけていました。PR-400NE の DHCP の動作を停止させようとしたところ、この「DHCPv4サーバ設定」の設定のところに PR-400NE の IP アドレスの設定がありました。ここで 192.168.24.1 へ設定変更をして、念願だった DHCP の動作を停止させることもできました! 長年に渡ってこの不要な dhcpd の動作に悩まされていたので、本当に助かりました。

念のため PR-400NE を再起動させて新しい設定に進みました。PR-400NE を設定するパソコンもちゃんと自宅サーバーの dhcpd から発行された IP 設定情報を受け取っていました。

インターネットサービスプロバイダには @nifty を利用しているため、この設定を CTU と同じように設定しました。すると外部へもちゃんと接続できるようになりました。

次に asterisk で直接接続している @nifty の IP 電話の設定です。
ポートの開放は「静的 IP マスカレード設定」で行います。外部からの SIP パケットを asterisk が稼動している自宅サーバーへ振り向ける設定をします。しかしこの設定はパケットフィルタの設定だけで動作するようなので、チェックマークを外して無効としました。(2013-04-04修正) 設定自体はいつでも動作させられるように残しておきました。自宅サーバーの IP は 192.168.24.101 となっています。そこへ UDP 通信の 5060 と 10000 – 20000 のポートを割り振るようにしています。 この「静的 IP マスカレード設定」は必要ですので、チェックマークを入れて有効にしてください。静的IPマスカレードの設定が行われていない場合、発信は可能ですが、着信は発信を行った直後しか着信出来ないことがあります。(2013-04-04修正)

パケットフィルタは「IPv4パケットフィルタ設定」で行います。CTU の設定と同様のもののようですが、設定方法が少し変わっているようです。パケットフィルタリングの仕組みは、基本的に若い番号順にパケットフィルタの内容を評価して行って、該当する項目で処理されて行くもののようです。1番から18番までは初期値として最低限のパケットフィルタが設定されていました。asterisk 用に SIP パケットを処理するフィルタを19番から設定をしてもよいのですが、これよりも優先させたいフィルタを設置する可能性もあるため、ここでは21番から設定を開始しました。外部にある IP 電話のサーバーの IP を whois コマンドで調べて設定を行いました。私の場合、voip09.nifty.com のため 210.227.109.253 です。この 210.227.109.253 と自宅サーバーの 192.168.24.101 の間で UDP パケット通信を通過させる設定を行いました。なお内部の自宅サーバーから外部へ IP 電話サーバーへの通信は特に定義をしなくても出て行くようです。そのため設定例の21番と22番の項目だけを有効にして23番と24番の項目は無効としました。これでちゃんと IP 電話が通話できることを確認しました。なおベルを鳴らすだけでなく、通話そのものも出来ることを確認することが必要ですので注意しておいてください。意外とベルは鳴るのに通話が出来ないことはよくあることです。

パケットフィルタの最後の項目の25番として外部から到来するすべてのパケットを遮断する項目を追加しておきました。これで SIP のパケットは特定のサーバーのみパケットを通しながら、その他のパケットはすべて遮断するようになります。

以上で IP 電話の設定は行いましたが、NTT のひかり電話については、しばらく VTL-TA02X を経由して使用します。そのため初期設定のままの状態となっています。

これで PR-400NE の設定をとりあえず終了しました。これでしばらく様子をみてみます。

フレッツ 光ネクスト 隼 へ切り替えました。

平成18年8月から NTT 西日本のフレッツ光プレミアムを契約していましたが、品目変更に伴う工事費無料のキャンペーンにつられて「フレッツ 光ネクスト スーパーハイスピードタイプ 隼」へ切り替えました。2月上旬にウェブサイトから申し込みをしましたが、工事が行われた3月16日まで一ヶ月ほど待つこととなりました。なおキャンペーンについては期間限定ということもあって、ここでは当該 URL はリンクしておきません。適宜検索してみてください。

しかし元々光プレミアムで通信速度に不満は無かったのですが、光ネクスト隼への変更後も通信速度に変化がなく、当たり前過ぎることに納得してしまいました。プラシーボ効果さえもありませんでした(笑)。

ただ ONU と CTU と VoIP アダプタの三台構成から ONU 一体型のホームゲートウェイ(PR-400NE)に変更になったことで、これらの機器の置き場がすっきりとしたことや、電源アダプタのコンセントを三つも用意することもなくなり大変満足しています。

さらに CTU + VoIP アダプタの構成で今まで悩まされていた CTU の中の DHCP 機能を停止させられない問題から開放されるために大変助かりました。自宅サーバーで DHCPD を稼働させていると CTU の DHCPD と競合してしまって、パソコンへ思わぬ IP アドレスが割り振られることも無くなりました。パソコンであれば CTU の DHCPD を無視して自宅サーバーの DHCPD へ反応させるように設定も可能でしたが、このような機能の無い IP 電話機では CTU の DHCPD の影響を避けるために一台ずつ固定 IP を設定していました。これからは自宅サーバーの DHCPD で一括して管理できるようになりました!(バンザイ)

写真は以前の光プレミアムの ONU + CTU + VoIP の構成の様子です。右端は asterisk と NTT 公衆回線をつないでいるプラネックスの VTL-TA02X です。ONU へは屋外の中継器から直接光ケーブルでつながっていました。そのため余裕を持たせてケーブルを配置してもらっていました。オレンジ色で巻かれているケーブルがそれです。

光プレミアムの構成

これが光ネクスト隼の様子です。ホームゲートウェイの PR-400NE の大きさが多少二回りほど大きくはなっていますが、一体型のゆえすっきりとしたものとなっています。右の VTL-TA02X と比較すると大きさが判ると思います。

光ネクスト隼の構成

 ここで工事の様子を紹介します。工事日の前日に光ケーブルの敷設工事が行われていました。工事の作業員に話を聞いてみると、光ネクスト隼の分岐点が違うために新しい光ケーブルを敷設しているのだそうです。てっきり今までの光ケーブルを流用すると思っていたので、ホームゲートウェイの交換だけの工事ではありませんでした。

工事前日に光ケーブルの敷設

そして工事日の当日高所作業車で乗り付けた作業員さんたちが、古い機器やケーブルを撤去しまじめました。屋外にあった中継器も撤去されてしまいました。現在では屋内へ光コネクタを設置してここからホームゲートウェイへ光ケーブルを引き込むようになっているそうです。

撤去された機器
光ケーブルの中継器(撤去)
光コネクタ(新設)

屋外の光ケーブルの敷設などが終了すると、いよいよ屋内の作業です。上記のとおり光コネクタを壁に取り付けて、そこから光ケーブルをホームゲートウェイへ引き込んで、電源アダプタを取り付けていました。すぐにひかり電話の通話確認などを行った後、インターネットの通信テストが行われて作業が終了しました。この切り替え工事は開始から終了までおよそ一時間の早業でした。

ホームゲートウェイ PR-400NE の箱

作業員さんへお話を伺ったところ、一チームで一日に10件程度を回っているそうです。こうして室内作業をしている途中にも高所作業車は次の現場へ向かって作業を開始しているとのことでした。 3月と4月は引越しシーズンなので、フレッツ光だけでなく電話全般の工事が大量に発生して大変忙しい時期だということでした。

ThinkPad 365X で使える EDO-DRAM まとめ

また新たにインターネット・オークションで二種類の EDO-DRAM を入手しました。どちらも BUFFALO 製の VN8-D64M と VD8-64M です。

これらの新しい EDO-DRAM を含めて、これまでに入手している EDO-DRAM を実際に ThinkPad 365X へ装着して動作確認をしてみました。結果は次のとおりです。

メーカー   型番    容量  動作状況
BUFFALO  VN8-D64M 64MB 認識せず
BUFFALO  VD8-64M  64MB 動作
BUFFALO  VN8-64M  64MB 動作
BUFFALO  NX8-64M  64MB 半分の容量として動作
BUFFALO  VD8-32M  32MB 動作
PRINCETON 64MB    64MB 動作
Panasonic  EUXD32XX06E 32MB 動作
Panasonic  Nr64-32M  32MB 動作

 今回入手した BUFFALO VN8-D64M が全く認識してくれませんでした。このメモリは ThinkPad 235 では動作しているので問題はないものと思われます。Double Banks タイプのメモリであることが影響しているのでしょうか?

Damn Small Linux (DSL) の apt-get など

ThinkPad 365X へインストールして使用中の Damn Small Linux 4.4 ですが、もう古い OS のため、リポジトリの URL などが移転・変更・消失してしまっているようです。また apt-get コマンドの使用を考えていないのか必要なディレクトリも用意されていないので、この辺りの整備を行いました。

/etc/apt/sources.list は次の一行のみを追加して、その他はコメントアウト(行頭へ # を挿入する)します。

deb http://archive.debian.org/debian-archive/debian sarge main contrib non-free

次に不足しているディレクトリやファイルを作ります。mkdir コマンドのオプション -p は、ディレクトリ・ツリーも一緒に作ってしまうものです。

# sudo mkdir -p /var/lib/apt/lists/
# sudo touch /var/lib/apt/lists/lock
# sudo mkdir -p /var/lib/apt/lists/partial/
# sudo mkdir -p /var/cache/apt/archives/partial/

これで apt-get の準備ができました。update コマンドで apt のツリーを更新しておきます。これは一度切りで十分です。なぜならもう更新元の archive.debian.org 自身も更新しないからです。

# sudo apt-get update

この後、必要とするアプリケーション・ソフトウェアをインストールすることができます。私は ThinkPad 365X の時刻合わせのために ntpdate をインストールしました。

# sudo apt-get install ntpdate

こうして少しずつ使える Thinkpad 365X へ仕立てていますが、如何せん古すぎる・遅すぎるマシンの宿命で、firefox を立ち上げてもその遅さに呆れ果ててしまっています(笑)。何となく X 上で GUI での操作ではなく、CUI 主体で操作する方向へ持って行った方が良さそうな気がしてなりません。

Damn Small Linux (DSL) で swap を作る

昨日 ThinkPad 365X へ Damn Small Linux 4.4 をインストールする記事を紹介いたしました。

ここで第一パーティション (/dev/hda1) に DSL をインストールするためのファイルをコピーしてハードディスク・インストールを行いました。今日はこの第一パーティション (/dev/hda1) を開放して linux-swap として設定する内容を紹介します。もちろん私の備忘録をかねています♪

fdisk コマンドで第一パーティション (/dev/hda1) のシステム ID を 83 (linux) から 82 (linux-swap) へ変更します。詳しい操作方法は別途調べてください。

# sudo fdisk /dev/hda

次に mkswap コマンドで swap 領域を作ります。

# sudo mkswap /dev/hda1

これで再起動させると swap が設定されます。再起動させないで swap を使用したい場合には swapon コマンドを使用します。

# sudo swapon /dev/hda1

逆に swap の使用を中止したい場合には swapoff コマンドを使用します。

# sudo swapoff /dev/hda1

私は、swapoff コマンドをハードディスクのパーティション操作を GParted などを使って行うときに swap の使用を一時的に中止する場合などでよく使っています。滅多に使うことはありませんが覚えておく(メモしておく)と便利なコマンドです。

ちなみにメモリの使用量やスワップの使用量を確認するのは free コマンドです。

# free