最初は昔買ったfonとかnanopiに入れようかと思ったけど、
複数のVoIPゲートウェイを接続して見たかったからHUBがあるルーターって選択肢として結構ありかも。
OpenWrtインストール
分解してUARTまで接続したけど、実はそんなことしなくても大丈夫だった。https://openwrt.org/toh/buffalo/wzr-hp-ag300h
- 初期化する
- 192.168.11.1にアクセスすると管理画面が開く(root/パス無しで)
- ファームアップにて[openwrt-18.06.4-ar71xx-generic-wzr-hp-ag300h-squashfs-factory.bin]を書き込む
- 192.168.1.1にアクセスすると管理画面が開く
- ファームアップにて[openwrt-18.06.4-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin]を書き込む
@import “中古ルーターにAsteriskを入れてみる\openwrt.png”
その他の設定は良きに計らう
asteriskをインストール
root@OpenWrt:~# opkg install asterisk15 asterisk15-cdr \
asterisk15-chan-sip asterisk15-codec-ulaw asterisk15-res-rtp-asterisk \
asterisk15-format-gsm asterisk15-codec-gsm asterisk15-format-pcm asterisk15-res-agi
GUIからでも良いけど、なんとなくまずは相互通話
/etc/asterisk/sip.conf[general]
context=default
port=5060
bindaddr=0.0.0.0
language=ja
;nat=yes
allowguest=no
allow=ulaw
allow=alaw
allow=gsm
[user1]
type=friend
defaultuser=user1
secret=password1
host=dynamic
canreinvite=no
[user2]
type=friend
defaultuser=user2
secret=password2
host=dynamic
canreinvite=no
/etc/asterisk/extensions.conf[default]
exten => 1,1,Dial(SIP/user1,30,r)
same => n,Hangup()
exten => 2,1,Dial(SIP/user2,30,r)
same => n,Hangup()
/etc/init.d/asterisk restart通話できた!
USBメモリを使えるようにする
何かと使えるようにしておくと便利かhttps://openwrt.org/docs/guide-user/storage/usb-drives-quickstart
https://rc30-popo.hatenablog.com/entry/20160103/1451829248
/etc/asterisk/extensions.conf
exten => 5,1,Goto(my-ivr,s,1)
[my-ivr]
exten => s,1,Set(dir=/mnt/sda1/)
exten => s,n,Ringing()
exten => s,n,Wait(3)
exten => s,n,Answer()
exten => s,n,Playback(${dir}music)
みたいなUSBシリアル変換を使えるようにする
これもついでにhttps://qiita.com/hnw/items/9b5c99fa73e3716f67d2
今回は確かこれのはず
http://www.aitendo.com/product/13039
opkg install kmod-usb-serial-pl2303
これで/dev/ttyUSB0みたいに認識できた。やっはりUSBがあるルーターは便利だ。夢が広がる。
(死ぬほどあるFON2405Eの出番がますます無くなる・・・)
PHPインストール
opkg install php7 php7-cli zoneinfo-asia
phpagi
PCでやった時と同じようにphpagi.php - The main phpagi class.を/usr/share/asterisk/agi-binに保存する。改行コードとかに注意する。
あとはdtmf.phpを少し変更して
#!/usr/bin/php-cli -q
<?php
/**************************************************
* dtmf.php
**************************************************/
set_time_limit(30);
require_once('phpagi.php');
error_reporting(E_ALL);
//die("Syntax ok\n"); // line A: uncomment for syntax test
define('ANS_TONE', '/usr/share/asterisk/sounds/dtmf');
define('LOG_PATH', '/tmp/dtmf.log');
define('TIMEOUT', 1000);
/* log用 */
$fp = fopen(LOG_PATH, "w");
fwrite($fp, date("Y/m/d H:i:s")."\t"."Log File.\n");
/* AGI */
$agi = new AGI();
$agi->answer();
do
{
$result = $agi->get_data('/usr/share/asterisk/sounds/beep', 3000, 20);
$keys = $result['result'];
fwrite($fp, date("Y/m/d H:i:s")."\tDTMF=".$keys."\n");
} while($keys != '111');
$agi->hangup();
?>
も一緒に保存した。あとは、
/etc/asterisk/extensions.conf
exten => 6,1,agi(dtmf.php)
これで出来た。
0 件のコメント:
コメントを投稿