「ABS インストール」の版間の差分
(→ABS自体のインストール) |
(→ABS自体のインストール) |
||
(同じ利用者による、間の15版が非表示) | |||
1行目: | 1行目: | ||
+ | [[カテゴリ:ABS]] | ||
+ | [[カテゴリ:インストール]] | ||
+ | [[カテゴリ:Asterisk]] | ||
注意:ABSはクラウド向けではありません。インターネット上に公開しているサーバ上にインストールすることは想定していません。<br> | 注意:ABSはクラウド向けではありません。インターネット上に公開しているサーバ上にインストールすることは想定していません。<br> | ||
あくまでもローカル環境向けです。 | あくまでもローカル環境向けです。 | ||
19行目: | 22行目: | ||
ABS一式を入手します | ABS一式を入手します | ||
# git clone https://github.com/takao-t/abs.git abs | # git clone https://github.com/takao-t/abs.git abs | ||
− | |||
absディレクトリの中のextenを/etc/asteriskに、panelを/var/www/html/abs(例)にコピーします。 | absディレクトリの中のextenを/etc/asteriskに、panelを/var/www/html/abs(例)にコピーします。 | ||
# cd abs/exten | # cd abs/exten | ||
# cp -r * /etc/asterisk | # cp -r * /etc/asterisk | ||
# cd ../panel | # cd ../panel | ||
− | # mkdir /var/www/html/ | + | # mkdir /var/www/html/absp |
− | # cp -r * /var/www/html/abs | + | # cp -r * /var/www/html/absp |
+ | Asteriskの音声ファイルをABS用に入れ替えます(上書きするだけ) | ||
+ | # cd ../sounds | ||
+ | # cp sounds-ja.tar.z /var/lib/asterisk/sounds/. | ||
+ | # cd /var/lib/asterisk/sounds | ||
+ | # tar zxvf sounds-ja.tar.z | ||
+ | 時間外応答用のデフォルト音声を用意しておきます | ||
+ | # mkdir /var/spool/asterisk/recording | ||
+ | # cp ja/abs-tc*.wav /var/spool/asterisk/recording/. | ||
+ | ABSのユーザ認証用ファイルをWebからアクセスできない位置に移動します。 | ||
+ | # cd /var/www | ||
+ | # mkdir absp | ||
+ | # mv html/abs/userinfo.dat absp/. | ||
+ | ファイルのパーミッションを適切に設定します | ||
+ | # cdown -R www-data:www-data /var/www | ||
+ | 内線情報を作成します。この操作を行うと内線のパスワードも再生成されるので注意してください。 | ||
+ | # cd /etc/asterisk | ||
+ | # ./pj_phonegen.sh > pjsip_wizard.conf | ||
+ | '''注意:このスクリプトが動作しないケースがあります。動作しない場合には最初の方にある /dev/random を /dev/urandom に書き換えてください。'''<br> | ||
+ | SALT=`dd if=/dev/urandom bs=512 count=1|md5sum` | ||
+ | |||
+ | Asteriskのファイル類も適切に設定しますが、付属するスクリプトで一気に行うことができます。 | ||
+ | # cd /etc/asterisk/scripts | ||
+ | # sh -x ./changemode.sh | ||
+ | |||
+ | ==注意事項== | ||
+ | PjSIPに慣れていない人が多いため、PjSIPの罠にはまるケースが出ています。ABSの現在のバージョンでは内線はPjSIPを標準としています。<br> | ||
+ | *ポート番号に注意 | ||
+ | :ABSデフォルトではSIPのポート番号は5070です | ||
+ | *アクセスリスト(ACL) | ||
+ | :pjsip.confのアクセスリスト(ACL)にハマらないように注意してください | ||
+ | |||
+ | [acl] | ||
+ | type=acl | ||
+ | deny=0.0.0.0/0.0.0.0 | ||
+ | permit=192.168.0.0/16 | ||
+ | permit=61.213.230.145/32 | ||
+ | permit=61.213.230.153/32 | ||
+ | permit=202.173.5.198/32 | ||
+ | |||
+ | permitに書かれていないIPアドレス帯からの接続は拒否されますので、デフォルトの設定と異なるIPアドレス帯を使用する場合には書き換えてください。pjsip.confだけをリロードする方法が見つかっていないので設定を反映させるにはAsterisk自体を再起動してください。 | ||
+ | |||
+ | ==ちょっとした内部解説== | ||
+ | ABSの基本はAstDBによる動作です。このため通常はextenを書き換える必要はありません。<br> | ||
+ | ABSのUIとAsteriskはAMIで通信しています。このためファイルのパーミッションが適切でなくとも基本的な機能は動作します。<br> | ||
+ | ABS UIのファイル編集機能を使う場合には上記で示したようにWebからAsteriskのファイルが編集できるように調整する必要があります。<br> | ||
+ | AMIはデフォルトでは以下の設定で認証していますので、なるべくデフォルトでは使用せず調整してください。<br> | ||
+ | /etc/asterisk/manager.conf | ||
+ | ;ABS Panel接続情報 | ||
+ | [abspadmin] | ||
+ | secret = amipass1234 | ||
+ | deny=0.0.0.0/0.0.0.0 | ||
+ | permit=127.0.0.0/255.0.0.0 | ||
+ | read = system,call | ||
+ | write = system,all | ||
+ | 上記の例でインストールした場合、/var/www/html/absp/php/amiauth.php | ||
+ | <?php | ||
+ | |||
+ | define('AMIUSERNAME', 'abspadmin'); | ||
+ | define('AMIPASSWORD', 'amipass1234'); | ||
+ | |||
+ | ?> | ||
+ | |||
+ | ==トランク設定== | ||
+ | 外線を使用する場合にはトランクを正しく設定しておいてください。トランクは必ず"番号"で着信させます。ひかり電話のHGW,OGW等いくつかのトランクに関しては前処理用のcontextが用意してあります。extensions_incoming.confを参照してください。<br> | ||
+ | 最終的には番号を付けて(incoming,番号,1)へ落とせばABSで着信処理ができます。番号がない着信の場合には以下のようにします。 | ||
+ | exten => s,1,Goto(incoming,0312345678,1) | ||
+ | こうすれば0312345678で着信したことになります。<br> | ||
+ | ==AsteriskとWebサーバの起動== | ||
+ | # systemctl start asterisk | ||
+ | # systemctl start apache2 | ||
+ | ==Web UIへのアクセス== | ||
+ | http://サーバのIPアドレス/absp/ にアクセスするとログイン画面が出る(はず)です。ユーザ名 admin パスワード password でログインできます。<br> | ||
+ | この認証は(見ればわかりますが)簡単なシカケで /var/www/abs/userinfo.dat を見ている(md5)だけです。 | ||
+ | ==Web UIの使い方がよくわからない== | ||
+ | おおよそ見ればわかるようにしてあるつもりなのですが、わかりにくい場合にはサンプルの設定を読み込ませてみてください。 | ||
+ | # cd /etc/asterisk/scripts | ||
+ | # ./dbrestore.sh < astdb.sample | ||
+ | サンプルの設定が読み込まれるので参考にしてください。<br> | ||
+ | Web UIからの設定反映は'''即時'''反映です。ですので着信条件等を変更した場合には即時で反映されますので注意してください。<br> | ||
+ | ==電話機の設定== | ||
+ | 注意:ABSではPjSIPを標準としSIPポート番号をデフォルトで5070に変更しています。<br> | ||
+ | <br> | ||
+ | ABSでは内線電話機(ピア)は抽象化されているため内線番号と電話機はABSの設定(内線設定)で紐付けます。<br> | ||
+ | 電話機を登録する場合には pjsip_wizard.confに記載されているユーザ名(phoneX)とパスワードで登録してください。<br> | ||
+ | ラインキー、固定パークキーを使用する場合にはキーの属性BLFにし、以下の値を設定します。 | ||
+ | ラインキー keyX (Xは1~16) | ||
+ | パークキー ParxX (Xは1~8) | ||
+ | 各内線には"規制値"があります。規制値が2以上でないと外線発信は行えません。通常の内線では2に設定します。規制値"3"は管理機能が使える内線です。 |
2021年4月15日 (木) 11:55時点における最新版
注意:ABSはクラウド向けではありません。インターネット上に公開しているサーバ上にインストールすることは想定していません。
あくまでもローカル環境向けです。
目次
Asteriskインストール
Asterisk 16のページを参考にソースインストールしてください。
make samples, make configもやっておきます。
/etc/asteriskに展開されるサンプルの設定ファイルは不要なので削除しておきます。
必要なパッケージ類のインストール
Raspbian(Raspberry Pi) Strecthを例に説明します。他のディストリビューションでは読み替えて実行してください。
Apacheとphp,php-mbstringをインストールしておきます。Gitも入れておいてください。
# apt-get -y install apache2 php php-mbstring # apt-get -y install git
Web UIからファイル編集等を可能にするためAsteriskの実行ユーザをasteriskとし、そのグループにApache(www-data)を追加します。
# adduser -uid 5060 asterisk # adduser www-data asterisk
/etc/default/asteriskファイルを編集し、以下の2行のコメントを外しておきます。
AST_USER="asterisk" AST_GROUP="asterisk"
ABS自体のインストール
ABS一式を入手します
# git clone https://github.com/takao-t/abs.git abs
absディレクトリの中のextenを/etc/asteriskに、panelを/var/www/html/abs(例)にコピーします。
# cd abs/exten # cp -r * /etc/asterisk # cd ../panel # mkdir /var/www/html/absp # cp -r * /var/www/html/absp
Asteriskの音声ファイルをABS用に入れ替えます(上書きするだけ)
# cd ../sounds # cp sounds-ja.tar.z /var/lib/asterisk/sounds/. # cd /var/lib/asterisk/sounds # tar zxvf sounds-ja.tar.z
時間外応答用のデフォルト音声を用意しておきます
# mkdir /var/spool/asterisk/recording # cp ja/abs-tc*.wav /var/spool/asterisk/recording/.
ABSのユーザ認証用ファイルをWebからアクセスできない位置に移動します。
# cd /var/www # mkdir absp # mv html/abs/userinfo.dat absp/.
ファイルのパーミッションを適切に設定します
# cdown -R www-data:www-data /var/www
内線情報を作成します。この操作を行うと内線のパスワードも再生成されるので注意してください。
# cd /etc/asterisk # ./pj_phonegen.sh > pjsip_wizard.conf
注意:このスクリプトが動作しないケースがあります。動作しない場合には最初の方にある /dev/random を /dev/urandom に書き換えてください。
SALT=`dd if=/dev/urandom bs=512 count=1|md5sum`
Asteriskのファイル類も適切に設定しますが、付属するスクリプトで一気に行うことができます。
# cd /etc/asterisk/scripts # sh -x ./changemode.sh
注意事項
PjSIPに慣れていない人が多いため、PjSIPの罠にはまるケースが出ています。ABSの現在のバージョンでは内線はPjSIPを標準としています。
- ポート番号に注意
- ABSデフォルトではSIPのポート番号は5070です
- アクセスリスト(ACL)
- pjsip.confのアクセスリスト(ACL)にハマらないように注意してください
[acl] type=acl deny=0.0.0.0/0.0.0.0 permit=192.168.0.0/16 permit=61.213.230.145/32 permit=61.213.230.153/32 permit=202.173.5.198/32
permitに書かれていないIPアドレス帯からの接続は拒否されますので、デフォルトの設定と異なるIPアドレス帯を使用する場合には書き換えてください。pjsip.confだけをリロードする方法が見つかっていないので設定を反映させるにはAsterisk自体を再起動してください。
ちょっとした内部解説
ABSの基本はAstDBによる動作です。このため通常はextenを書き換える必要はありません。
ABSのUIとAsteriskはAMIで通信しています。このためファイルのパーミッションが適切でなくとも基本的な機能は動作します。
ABS UIのファイル編集機能を使う場合には上記で示したようにWebからAsteriskのファイルが編集できるように調整する必要があります。
AMIはデフォルトでは以下の設定で認証していますので、なるべくデフォルトでは使用せず調整してください。
/etc/asterisk/manager.conf
;ABS Panel接続情報 [abspadmin] secret = amipass1234 deny=0.0.0.0/0.0.0.0 permit=127.0.0.0/255.0.0.0 read = system,call write = system,all
上記の例でインストールした場合、/var/www/html/absp/php/amiauth.php
<?php define('AMIUSERNAME', 'abspadmin'); define('AMIPASSWORD', 'amipass1234'); ?>
トランク設定
外線を使用する場合にはトランクを正しく設定しておいてください。トランクは必ず"番号"で着信させます。ひかり電話のHGW,OGW等いくつかのトランクに関しては前処理用のcontextが用意してあります。extensions_incoming.confを参照してください。
最終的には番号を付けて(incoming,番号,1)へ落とせばABSで着信処理ができます。番号がない着信の場合には以下のようにします。
exten => s,1,Goto(incoming,0312345678,1)
こうすれば0312345678で着信したことになります。
AsteriskとWebサーバの起動
# systemctl start asterisk # systemctl start apache2
Web UIへのアクセス
http://サーバのIPアドレス/absp/ にアクセスするとログイン画面が出る(はず)です。ユーザ名 admin パスワード password でログインできます。
この認証は(見ればわかりますが)簡単なシカケで /var/www/abs/userinfo.dat を見ている(md5)だけです。
Web UIの使い方がよくわからない
おおよそ見ればわかるようにしてあるつもりなのですが、わかりにくい場合にはサンプルの設定を読み込ませてみてください。
# cd /etc/asterisk/scripts # ./dbrestore.sh < astdb.sample
サンプルの設定が読み込まれるので参考にしてください。
Web UIからの設定反映は即時反映です。ですので着信条件等を変更した場合には即時で反映されますので注意してください。
電話機の設定
注意:ABSではPjSIPを標準としSIPポート番号をデフォルトで5070に変更しています。
ABSでは内線電話機(ピア)は抽象化されているため内線番号と電話機はABSの設定(内線設定)で紐付けます。
電話機を登録する場合には pjsip_wizard.confに記載されているユーザ名(phoneX)とパスワードで登録してください。
ラインキー、固定パークキーを使用する場合にはキーの属性BLFにし、以下の値を設定します。
ラインキー keyX (Xは1~16) パークキー ParxX (Xは1~8)
各内線には"規制値"があります。規制値が2以上でないと外線発信は行えません。通常の内線では2に設定します。規制値"3"は管理機能が使える内線です。