ABS インストール

2021年4月15日 (木) 11:55時点におけるTakahashi (トーク | 投稿記録)による版 (ABS自体のインストール)

注意: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"は管理機能が使える内線です。