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しか割り当てていませんが、私一人でテストするだけなので、とりあえずはこれで十分。