Asteriskを使ってみる(1)
Asteriskをインストール
以前、スマホを自宅の子機にする話を書いたのですが、その後、フリーのIP-PBXであるAsteriskにも興味が沸いたので構築してみることにしました。
とりあえずの目標は「ひかり電話の着信をIP-PBXを介し、指定したスマホで受ける」です。その先は鳴り分けとかもやってみたいですね。
まあ、とにもかくにもフリーのIP-PBXであるAsteriskのインストールですね。voip-info.jp様のページを参考にしてインストールしました。結構、いろんな組み合わせを試しましたが、最終的には以下の組み合わせで構築しました。
ハイパーバイザ:Citrix Hypervisor 8.1
OS:CentOS 6.10
IP-PBX:Asterisk1.6
(1) CentOS 6.10のセットアップ
CentOS6.10用のVMをHypervisorに作ります。今回はストレージを30GBで割り当てました。仮想DVDにはCentOS 6.10 のインストール用ISOをダウンロードしてセットします。
あとはServerモードでGUIなしのインストールをし、ネットワークの設定(/etc/sysconfig/network-scripts/ )を確認し、プライベートの固定IPを割り当てておきます。
(2) Asteriskのダウンロード
Asteriskのバージョンは1.6を選定しました。ネットでも情報が多そうなのと、新しすぎず、古すぎずといったところで選びました。 (実はCentOS8 + Asterisk1.8 や、 CentOS 7 + Asterisk1.3 も試したりしました。いずれも、私の環境ではコンパイルエラーになったり、Asteriskが起動できても停止と起動を頻繁に繰り返したりとうまくいきませんでした)
#Asterisk 1.6ダウンロードと展開
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar zxvf asterisk-16-current.tar.gz
cd asterisk-16
(3) Asteriskのコンパイル準備
各種ツールをインストールします。
#開発ツールのインストール
yum install wget bzip2 patch
yum install subversion
yum install gcc gcc-c++
yum groupinstall “Additional Development”
yum groupinstall “Development tools”
yum install libxml2 libxml2-devel openssl-devel ncurses-devel sqlite-devel newt-devel libuuid-devel libedit-devel
#json-c
yum install json-c json-c-devel
#mysql
wget https://repo.mysql.com/yum/mysql-connectors-community/el/8/x86_64/mysql-connector-odbc-8.0.19-1.el8.x86_64.rpm
yum install mysql-connector-odbc
yum install unixODBC unixODBC-devel mysql-connector-odbc
yum install libtool-ltdl libtool-ltdl-devel
最後にインストール済みパッケージをまとめてupdate。
#update
yum update
ここまでできたらコンパイルの準備OKです。
(4) Asterisk 1.6 インストール
いよいよAsterisk1.6をコンパイルしてインストールします。
#configure
./configure –with-jansson-bundled
あと、日本語音声ファイルを追加するためにAsteriskの日本語音声モジュールを追加するためにmenuselect画面で「CoreSoundPakages – CORE_SOUNDS_JA_*」 にチェックをつけます。
#Asteriskモジュール選択
make menuselect
#インストール実行
make
make install
make samples
make config
ここまでエラーが出なければもうひと踏ん張りです。
この後、Asterisk1.6の設定サンプルファイルをダウンロードして配置します。
#Asterisk1.6 サンプルファイルダウンロード元
https://voip-info.jp/downloads/asterisk/conf/
#Asteriskの設定ファイル配置場所
/etc/asterisk
(5)実行権限設定
この後、Asteriskをrootで実行しないようにするために、ユーザー「asterisk」を作成して権限を割り当てます。
#パーミッション設定
groupadd asterisk
useradd -d /var/lib/asterisk -s /sbin/nologin -g asterisk asterisk
chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /etc/asterisk
chmod -R u=rwX,g=rX,o= /var/lib/asterisk
chmod -R u=rwX,g=rX,o= /var/log/asterisk
chmod -R u=rwX,g=rX,o= /var/spool/asterisk
chmod -R u=rwX,g=rX,o= /etc/asterisk
「vi /etc/asterisk/asterisk.conf」の設定変更も必要です。 runuser, rungroupを「asterisk」に設定します。作業としてはコメントアウトされていたrunuserとrungroupを探して、コメントアウトを外すだけでした。
(6) 起動確認
最後にasteriskを起動して実行ユーザーを確認します。
#起動確認
/etc/init.d/asterisk start
/etc/init.d/asterisk status
ps -u asterisk
これで一応、Asteriskのインストールは完了です。
尚、この後、SIPクライアントから接続できるようにファイアウォールの設定変更が必要です。OSで iptables が自動起動されるようになっていたので、Asteriskが利用できるようにするために5060番のポートを開放する必要がありました。
ディスクの使用容量は以下の通りで、30GBのうち16%しか消費していませんでした。
メモリは2Gしか割り当てていませんが、私一人でテストするだけなので、とりあえずはこれで十分。