Raspberry Pi 3にSIPサーバ「Asterisk」をインストールして、スマートフォンを子機とした内線電話を構築してみました。
SIPサーバ「Asterisk」の設定
最初に、Raspberry Pi 3を内線電話サーバにするため、次のコマンドでasterisk をインストールしました。
$ sudo apt-get install asterisk
インストールが終了すると、主に触る設定ファイルは「sip.conf」「extension.conf」の2つで
場所は /etc/asteriskにあります。
まずは、デフォルトの初期設定を退避します。
sudo cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.original sudo cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.original
コメントが入った大きなファイルは削除し、ゼロから作成します。
sudo rm /etc/asterisk/sip.conf sudo rm /etc/asterisk/extension.conf
sip.confファイルの設定
「sip.conf」でソフトフォンを子機登録するためにユーザーと番号を作ります。「Asterisk サンプル設定ファイル sip.conf」にsip.confで設定できる項目についての説明があります。
[general] context=default bindport=5060 bindaddr=0.0.0.0 language=ja localnet=192.168.10.0/255.255.255.0 [201] type=friend defaultuser=201 secret=pass canreinvite=no host=dynamic [202] type=friend defaultuser=202 secret=pass canreinvite=no host=dynamic [203] type=friend defaultuser=203 secret=pass canreinvite=no host=dynamic
これは、以下の意味になります。
内線番号 201 を ユーザー名 201 パス pass 内線番号 202 を ユーザー名 202 パス pass 内線番号 203 を ユーザー名 203 パス pass
extensions.confの設定
次は、互いに内線電話をかけることができるようにextensions.confに次のダイアルプランを作成します。「Extension道場」にextensions.confで設定できる項目についての説明があります。
内線番号「201」にかかってきたら 通話 内線番号「202」にかかってきたら 通話 内線番号「203」にかかってきたら 「Hello-World」の音声
[default] exten => 201,1,Dial(SIP/201,30,r) exten => 201,2,Hangup() exten => 202,1,Dial(SIP/202,30,r) exten => 202,2,Hangup() exten => 203,1,Answer() exten => 203,2,Playback(hello-world) exten => 203,3,Hangup()
これで、Asterisk側の基本設定は終了したので、再起動します。
$ sudo service asterisk restart
asteriskの登録状況を次のコマンドで確認します。
# asterisk -r vvvvvc Asterisk 11.13.1~dfsg-2+deb8u3, Copyright (C) 1999 - 2013 Digium, Inc. and others. Created by Mark SpencerAsterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 11.13.1~dfsg-2+deb8u3 currently running on raspberrypi (pid = 665) raspberrypi*CLI> sip show registry Host dnsmgr Username Refresh State Reg.Time 0 SIP registrations. raspberrypi*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 201/201 (Unspecified) D Auto (No) No 0 Unmonitored 202/202 (Unspecified) D Auto (No) No 0 Unmonitored 203/203 (Unspecified) D Auto (No) No 0 Unmonitored 3 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 3 offline]
SIPクライアントアプリをインストールしたスマートフォンの設定
AQUOS PAD「SH-08E」とiPhone 5CにそれぞれSIPクライアントアプリ「Zoiper IAX SIP VOIP Softphone」、「AGEphone」をインストールし、SH-08Eに内線番号「202」、iPhone 5Cに内線番号「201」を割り当てます。
AGEphoneをインストールしたiPhone 5Cの設定
iPhone 5CにAGEphoneをインストールします。AGEphoneを起動すると次のように表示されます。AGEphone起動後、SIPサーバ「Asterisk」に接続しに行きます。接続が完了すると、「ダイアルできます」が表示されます。
AGEphoneの簡易設定で次のように設定します。「ドメイン」はRaspberry Pi 3のIPアドレス、パスワードは「pass」となります。
iPhone 5Cでスクリーンショットを取るときは、[電源]ボタンと[ホームボタン]を、同時に1秒以上押し続けます。キャプチャするときにシャッター音がなり、「アルバム」タブから「スクリーンショット」を選択することで、、一覧表示することができます。メールに添付すれば簡単にパソコンに取り込めます。
Zoiper IAX SIP VOIP SoftphoneをインストールしたAQUOS PAD「SH-08E」の設定
AQUOS PAD「SH-08E」にZoiper IAX SIP VOIP Softphoneをインストールします。Zoiper IAX SIP VOIP Softphoneを起動すると次のように表示されます。AGEphone起動後、SIPサーバ「Asterisk」に接続しに行きます。接続が完了すると、「202 is ready」が表示されます。
Zoiper IAX SIP VOIP Softphoneを次のように設定します。
- 初期画面の最上の「config」をクリックします。メニューの最上の「Accounts」をクリックします。
- 「Addacount」をクリックします。
- 「Accountsetup」で「Yes」をクリックします。
- 「Acount setup」で 「Manual configuration」をクリックします。
- 「SIP」を選択すると次の画面が表示されます。
- 「Account name」は登録した内線番号、「Host」はRaspberry Pi 3のIPアドレス、「Username」は登録した内線番号、「Password」は登録したパスワードとなります。
アンドロイド端末でスクリーンショットを取るときは、[電源]ボタンと音量ボタンの[-]を、同時に1秒以上押し続けます。キャプチャするときにシャッター音がなり、「Pictures > Screenshots」に保存されます。パソコンに接続したときにはUSBメモリとしてパソコン側からアクセスできるので、簡単にパソコンに取り込めます。
Asterisk側で接続の確認をとる場合は、Raspberry Pi側でAsteriskのCLIを起動して、「sip show peers」を実行します。
root@(none):/home/pi# asterisk -r vvvvvc Asterisk 11.13.1~dfsg-2+deb8u3, Copyright (C) 1999 - 2013 Digium, Inc. and others. Created by Mark SpencerAsterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 11.13.1~dfsg-2+deb8u3 currently running on raspberrypi (pid = 716) raspberrypi*CLI> sip show peers Name/username Host Dyn Forcerport Comedia ACL Port Status Description 201/201 192.168.10.5 D Auto (No) No 5060 Unmonitored 202/202 192.168.10.6 D Auto (No) No 33448 Unmonitored 203/203 (Unspecified) D Auto (No) No 0 Unmonitored 3 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 1 offline]
Host欄に接続しているマシンのIPアドレスが表示すれば接続成功です。
内線番号による通話
この設定で、201の子機から202をコールすると、SIPクライアントが30秒間呼ばれるようになります。呼ばれた内線番号が無効(クライアントなし)なら切断、話中ならBusyトーンが返ります。通話中のAQUOS PAD「SH-08E」のIPクライアントアプリ「Zoiper IAX SIP VOIP Softphone」の表示画面を次に示します。
通話中のiPhone 5CのSIPクライアントアプリ「AGEphone」の表示画面を次に示します。
また、子機から203番にコールすると、「Hello-World」の音声が流れます。