ABS インストール
注意:ABSはクラウド向けではありません。インターネット上に公開しているサーバ上にインストールすることは想定していません。あくまでもローカル環境向けです。
以下はDebian 12(bookworm)ベースの環境でインストールする方法です。Raspberry Piもこの方法です。
まずOSを入れ最新の状態にアップデートしておいてください。(apt -y update, apt -y upgrade)。
作業は基本的にrootの権限が必要です。sudoしろなどはいちいち説明しませんので、特記なき場合にはroot権>限で作業を行ってください。
当たり前ではありますが、ネットワークの設定等も正しく行っておいてください。特にPBXで使用する場合にはIPアドレスは固定すると思いますので、固定しておいてください。また、ssh等でアクセスできる環境を想定していますので、sshも設定しておいてください。
Asteriskのインストール
以下をパッケージ追加します。Asteriskのコンパイルに必要です。
Raspberry Piのデフォルトインストールならば開発環境はインストールされていますが、以下のコマンドを実行しても、すでに入っているパッケージはそのままなので問題ありません。
apt -y install build-essential libedit-dev uuid-dev libxml2-dev libncurses-dev libsqlite3-dev sqlite3 libssl-dev subversion git net-tools dnsutils libsrtp2-dev libunbound-dev
Asteriskのソースをダウンロードします。ここではAsterisk 22を入れます。
ABS自体はAsterisk 18でも動作しますが、古いバージョンを入れる理由は特にはないでしょう。
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
参考:githubからcloneしてきてもかまいませんが、ブランチによっては最新版(未リリース)なので注意
展開します。
tar zxvf asterisk-22-current.tar.gz
Asteriskを展開したディレクトリで作業します。
cd asterisk-22.5.2 (22の最新版が22.5.2の場合)
configureを実行します
./configure --with-jansson-bundled
もし途中でエラーが出て失敗する場合には何か足りないものがあるはずです。
makeします。
make
完了したらmake install,make samples,make configします
make install make samples make config
インストールが完了したら以下のコマンドで asterisk:asterisk のユーザ/グループを登録します。
応答が要求されたら適当に答えます
addgroup --gid 5060 asterisk adduser --uid 5060 --gid 5060 asterisk --disabled-password
ディレクトリとファイルの所有者/グループをasteriskにします
chown -R asterisk:asterisk /var/log/asterisk chown -R asterisk:asterisk /var/lib/asterisk chown -R asterisk:asterisk /var/spool/asterisk chown -R asterisk:asterisk /usr/lib/asterisk chown -R asterisk:asterisk /etc/asterisk
Asteriskの実行ユーザ/グループを"asterisk"にします。
/etc/default/asterisk ファイルを編集します(Debianの場合)。以下の個所のコメントを外します。
# Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisk's environment has permission to write the # files required for its operation, including logs, its comm # socket, the asterisk database, etc. AST_USER="asterisk" <-ここ AST_GROUP="asterisk" <-ここ
Asteriskの音声ファイルも日本語化しておきましょう。コンパイルしたディレクトリとは別なディレクトリで 以下を実行して日本語音声を入手します。
git clone https://github.com/takao-t/asterisk-sound-ja.git
cloneが終わったら、以下のコマンドで音声ファイルをコピーしておきます。
cp ./asterisk-sound-ja/core-sound-ja.tgz /var/lib/asterisk/sounds/.
ディレクトリを移動して展開します
cd /var/lib/asterisk/sounds tar xvf core-sound-ja.tgz
展開し終わったらcore-sound-ja.tgzは要らないのですが、よほどディスク容量に困ってなければ置いたまま>でかまいません。
オーナ/グループを変更しておきます
chonw -R asterisk:asterisk /var/lib/asterisk/sounds/ja
ABSのインストール
ABS「そのもの」はAsteriskのextenのかたまりなのですが、操作用のWebUI(ABS Panel)が付属するため、以下 をインストールします。
apt install apache2 php php-mbstring php-sqlite3
githubから適当なディレクトリにcloneします。
git clone https://github.com/takao-t/abs.git
cloneしたディレクトリに移動し作業します。
まず/etc/asteriskを削除します。samplesで入れたサンプル設定が入っているだけなので通常は問題ないはず
ですが、もしも自分で設定した何かが入っている場合にはバックアップしてください。
rm -r /etc/asterisk/*
ABSのexten類をコピーします
cp -r exten/* /etc/asterisk/.
ABSのサウンドファイルをコピーします
cp sound/abs-sounds-ja.tgz /var/lib/asterisk/sounds/.
ABSのサウンドファイルを展開しておきます
cd /var/lib/asterisk/sounds tar xvf abs-sounds-ja.tgz
/etcに移動しファイルの権限を変更します。
cd /etc/asterisk chown -R asterisk:asterisk asterisk/*
初期のpjsip_wizard.confを生成します。pjsip_wizard.confは最初から入っていますが、パスワードが公開さ れているのと同じなので必ず初期pjsip_wizard.confを生成するようにしてください。/etc/asteriskに移動し、以下を実行します。
./pj_phonegen.sh > pjsip_wizard.conf
Asteriskを起動します。起動したらCLIで動作していることを確認してください。
systemctl restart asterisk
Asteriskが正常に起動されていればAsteriskの設定は一旦ここまでです。
次にWebUIのインストールを行います。gitでcloneしたABSのディレクトリに戻ってください。
WebUIのトップディレクトリ(URL)を決めます。ここでは http://{IPアドレス}/absp とします。この場合、De
bianのApache標準インストールでは/var/www/html/abspとなります。ここにWebUI関連のファイルをコピーしま
す。
mkdir /var/www/html/absp cp -r panel/* /var/www/html/absp/. chown -R www-data:www-data /var/www/html/absp
これでほぼ使えるのですが、1点だけ確認しておきます。ABS PanelはAMI経由でAsteriskを操作します。デフ>ォルトのインストールではユーザ名とパスワードが『決め打ち』になっていますが、AMIのbindがlocalhostだ>けになっているのでサーバを他の用途に使っておらず、ログインユーザもいないようなら問題はないのですが>、他にログインユーザがいるような場合にはユーザとパスワードを変更してください。
/etc/asterisk/manager.confの次のセクションがWebUI用です。
;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');
?>
これで基本のインストールは終わりです。http://{IPアドレス}/abspにアクセスしてください。最初のユーザ 登録画面が開きますので、ユーザ名とパスワードを登録してログインしてください。このユーザが最初の管理ユーザとなります。従来はファイルでユーザを管理していたため、最初の管理ユーザの設定はファイルで行う必要がありましたが、新しいWebUIではユーザ情報をAstDBに保存するようにしたため、このようにWebUIだけで ユーザの新規登録が可能となっています。もし管理ユーザのパスワードがわからなくなってしまった場合には、AstDBから/ABS/PANELUSER/のキーにあるユーザ名を削除してください。
- CLI> database show ABS/PANELUSER
/ABS/PANELUSER/admin : ======hashed password======
このような形でユーザ情報が保存されています。
つまりAsteriskが動作していないとWebUIは使えません。