Raspberry PiとAsteriskを使用して自宅の電話をIP電話化したときのメモ
ここでは、Raspberry PiのインストールからAsteriskのインストール~発信の確認までに関する内容を記述します。
##【用意】
- Raspberry Pi Model B
- microSD 16G class10
- microSD->SD変換アダプタ
- LANケーブル
- auの充電器
- 適当なWindowsマシン
※HDMIケーブルが無い為、sshで接続
##【構築環境】
- Raspbian (Kernel version 3.18)
- Asterisk 13.5.0
##【手順】
OSのインストール
Rasbianを入手して、Win32 Disk ImagerでダウンロードしたRasbianを解凍して、microSDに焼きます。
書き込みが完了するとそのままRaspberry PiにSDカードを差し込むだけでOSを読み込みます。
Asteriskのインストール
LANケーブルを下記のように接続します。
【Windowsマシン】
|
LANケーブル
|
【Hub】
|
LANケーブル
|
【Raspberry Pi】
コマンドプロンプトで「ipconfig」を実行して使用しているPCのIPアドレスを確認します。自分のPCは192.168.0.18でした。
teratermでRaspberry Piに接続するために
Raspberry PiのIPアドレスを探します。
192.168.0.1
192.168.0.2
192.168.0.3
・
・
といった具合に探します。自分は192.168.0.19で見つかりました。
Nmapなど接続されている機器のIPアドレスを探してくれるソフトもあります。
AsteriskのインストールはAsterisk 13 - VOIP-Info.jp Wikiを参照。
「yum install」の箇所を「apt-get install」に置き換えてパッケージをインストールすれば問題なくできます。
IPアドレスの設定
/etc/network/interfacesファイル編集
- iface eth0 inet manualをコメント
- 下記のように設定を変更。これでRaspberry PiのIPアドレスが142.11.0.23固定になります。
- iface eth0 inet static
- address 142.11.0.23
- network 142.11.0.0
- netmask 255.255.0.0
- broadcast 142.11.255.255
- gateway 142.11.0.1
- reboot実行。
- 再起動後、ifconfig実行してIPアドレスが反映されていれば成功
ユーザー作成
sip.confのgeneralセクションに下記の内容を追記します。
ast_user201、passwordha201の箇所はSIPのユーザー名とパスワードです。
必ずコピペで終わらず、ユーザー名とパスワードを変更してください。
ユーザー名、パスワードはランダム英数字15文字以上にすることを強くおすすめします。
参考サイト:ランダム文字列ジェネレーター
[general]
・
(省略)
・
[ast_user201]
type=friend
defaultuser=ast_user201
secret=passwordha201
context=default
canreinvite=no
host=dynamic
dtmfmode=rfc2833
AsteriskのCLIを起動して、sip.confを再読み込みするためにsip reloadを実行します。
root@(none):/home/pi# asterisk -r vvvvvc
(none)*CLI> sip reload
ソフトフォンの設定
先ほど作成したユーザーで接続するためにSIPソフトフォンを導入します
X-LiteやZoiperなどSIPソフトフォンをインストールします。
今回はAndroid版Zoiperを使用します。
Config -> Accounts -> Add account を選択して
Manual configuration -> SIP を選択します。
sip.confで追加したユーザーの設定値を入力します。
- Account name :任意
- Host :142.11.0.23
- User name :ast_user201
- Password :passwordha201
- Authentication user:ast_user201
- Caller ID :(任意)
最後にSaveで保存します。
「Account is Ready」表示があれば接続成功です。
Asterisk側で接続の確認をとる場合
Raspberry Pi側でAsteriskのCLIを起動して、sip show peersを実行します。
root@(none):/home/pi# asterisk -r vvvvvc
(none)*CLI> sip show peers
Host欄に接続しているマシンのIPアドレスが表示すれば接続成功です。
ダイヤルプラン作成
電話の発着信時の挙動(ダイヤルプラン)を設定します。
[default]
include => demo
・
(省略)
・
exten => 1290,1,Playback(queue-thankyou)
AsteriskのCLIを起動して先ほど編集したextensions.confを再読み込みするためにdialplan reloadを実行します。
root@(none):/home/pi# asterisk -r vvvvvc
(none)*CLI> dialplan reload
発信確認
1290をダイヤルすると英語で
「Thank you for your なんちゃら」と英語のアナウンスが流れれば成功です
内線通話
おまけで内線ユーザーをもう1つ作成して、2者間通話をします。
sip.confを編集してSIPユーザーをもう1つ追加します。
しつこいようですが__必ずユーザー名とパスワードを変更してください。__
ユーザー名、パスワードはランダム英数字15文字以上にすることを強くおすすめします。
[general]
・
(省略)
・
[ast_user202]
type=friend
defaultuser=ast_user202
secret=passwordha202
context=default
canreinvite=no
host=dynamic
dtmfmode=rfc2833
続いてダイヤルプランを追加します。
[default]
include => demo
・
(省略)
・
exten => 1290,1,Playback(queue-thankyou)
exten => 201,1,Dial(SIP/ast_user201,30,r)
exten => 202,1,Dial(SIP/ast_user202,30,r)
もう1つスマホ端末またはPCなどを使用してユーザー ast_user202 のREGISTをします。
AsteriskのCLIを起動して、sip.confとextensions.confを再読み込みします。
root@(none):/home/pi# asterisk -r vvvvvc
(none)*CLI> sip reload
(none)*CLI> dialplan reload
SIPユーザーの一覧を表示します。
sip.confで追加したユーザーのHost欄に接続しているマシンのIPアドレスが表示すれば接続成功です。
(none)*CLI> sip show peers
ユーザー ast_user201 でREGISTした端末から202を発信してast_user202 に着信がかかること
ユーザー ast_user202 でREGISTした端末から201を発信してast_user201 に着信がかかること
ができれば成功です。
内線同士で通話ができると一気に楽しくなります。