2015年4月14日火曜日

Raspberry Pi と asterisk で家庭内IP電話網を作る

Raspberry Pi で PBX (IP 電話サーバ)を構築し、
古いスマホで内線電話を掛けられるようにしてみました。
5歳女子に渡してみたところ、自分用の電話ができたのが
嬉しかったのか、ことあるごとに電話が掛かってきます。

ちゃんと設定すると外線との発着信も可能なのですが、
今回は飽くまでリアルなおもちゃ電話として使えるものを
目指します。

Raspberry Pi は先日ファイルサーバにした Rasbpian の環境を使います。


Asterisk vs RasPBX

Raspberry Pi を PBX にするために Aterisk という
ソフトウェアを使います。
実はRaspberry Pi にはRasPBXというディストリビューションがあります。
これを使うといきなり PBX が動作し、Webブラウザから設定変更等も
できるようです。

ただ、今回はおもちゃ電話が目的で、他の用途と兼用したいので
RasPBX ではなく Asterisk 単体でインストールしました。

Asterisk のインストール

apt-get でインストールするだけです。
pi@raspberrypi ~ $ sudo apt-get install asterisk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
        :

必要なユーザも自動的に作成されます。

Asterisk の設定:/etc/asterisk/sip.conf



まず、/etc/asterisk/sip.conf で電話番号を作ります。
巨大な設定ファイルですがほとんどコメントアウトされています。
general セクションだけ探して書き換えたら、あとは末尾に
書き足せばOKです。
[general]
localhost=192.168.11.0/255.255.255.0
[5130]
type=friend
username=5130
secret=PASSWORD
canreinvite=no
host=dynamic

[5134]
type=friend
username=5134
secret=PASSWORD
canreinvite=no
host=dynamic

general に指定するネットワークアドレスは Raspberry Pi が
繋がっているネットワークのものに書き換えてください。

カッコ書きの数字は電話番号です。
何桁でも構わないですが、先頭の番号だけは揃えておくと
後の設定が楽です。

username と PASSWORD は電話機を登録する際の
ID とパスワードなのですが、宅内だけで使う場合は
イイカゲンで構いません。

Asterisk の設定:/etc/asterisk/rtp.conf

デフォルトで10,000個のポートを使用するようになっているので
適当に減らします。

rtpstart=10000
;rtpend=20000
rtpend=10010

Asterisk の設定:/etc/asterisk/extensions.conf

[default] セクションを下記のように変更します。

exten => _5XXX,1,Dial(SIP/${EXTEN},30)
exten => _5XXX,2,Congestion
exten => _5XXX,102,Busy

「_5XXX」というのは「5で始まる4ケタ」という意味です。
sip.conf で作った電話番号に合わせて適当に書き換えてください。

Asterisk の再起動

ここまでできたら Asterisk の設定は完了。
日本語化?案内音声の変更?は?何それ?美味しいの?

再起動します。
pi@raspberrypi ~ $ sudo service asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.

スマホの設定

Google play / AppStore で "SIP" と検索すると色々なアプリが見つかります。
使いやすいものを入れれば良いかと思います。

Android はOSがSIPの機能を持っているのですが、
使いにくいので別アプリを入れるのがお奨めです。

子どもでも比較的分かりやすそうなものとして、私は次のアプリを入れました。

いずれのアプリも sip.conf で設定した電話番号とユーザ名、パスワードを設定します。
WiFi を ON にして Raspberry Pi と同じネットワークに接続しておく必要があります。

電話を掛けてみる

以上で全ての設定が終わりました。
電話を掛けてみましょう。
発信側は当然のことながら、着信側もバックグラウンドでアプリを起動しておく
必要があるのでご注意ください。

古いスマホを子供に渡しておくと親のスマホに本当に着信するので
結構盛り上がります。

0 件のコメント:

コメントを投稿