サーバーをリプレースしたので久しぶりにAsteriskのインストールです。
まずはvoip-info.jpを参考にして必要なパッケージを準備。(作業ディレクトリは/usr/local/src)
# yum groupinstall "Development Libraries" "additional Development" # yum install gcc gcc-c++ # yum install libxml2 libxml2-devel openssl-devel ncurses-devel sqlite-devel newt-devel libuuid-devel uuid-devel # yum install json-c json-c-devel # yum install subversion
janssonのインストール
# wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz # tar xzvf jansson-2.7.tar.gz # cd jansson-2.7 # ./configure # make && make install
Pjsip
# wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 # tar xvjf pjproject-2.4.tar.bz2 # ./configure --prefix=/usr/local --libdir=/usr/lib64 --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG' # make dep && make && make install # ldconfig # ldconfig | grep pj
Asterisk
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz # cd asterisk-13.*.* # ./bootstrap.sh # ./configure --libdir=/usr/lib64 # make menuselect # make && make install && make samples
make menu select で必要なものを選択してください。私はpjsipを使用するのでchan_sipを使わないように設定しました。
そして make config は CentOS7 に対応していないので実行しません。かわりに以下のようにsystemctlの起動用ファイルを作成します。
# vim /usr/lib/systemd/system/asterisk.service [Unit] Description=Asterisk PBX and Telephony Daemon After=network-online.target [Service] Type=simple Environment=HOME=/var/lib/asterisk WorkingDirectory=/var/lib/asterisk User=asterisk Group=asterisk ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf ExecStop=/usr/sbin/asterisk -rx 'core stop now' ExecReload=/usr/sbin/asterisk -rx 'core reload' PrivateTmp=true [Install] WantedBy=multi-user.target
ユーザー/グループをasteriskで動作させるための設定
# adduser -u 5000 asterisk -s /sbin/nologin -d /var/lib/asterisk # chown -R asterisk:asterisk /var/lib/asterisk # chown -R asterisk:asterisk /var/log/asterisk # chown -R asterisk:asterisk /var/run/asterisk # chown -R asterisk:asterisk /var/spool/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/run/asterisk # chmod -R u=rwX,g=rX,o= /var/spool/asterisk
SELinux対応
# cd /var/lib # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:var_lib_t:s0 asterisk # chcon -R system_u:object_r:asterisk_var_lib_t:s0 asterisk # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:asterisk_var_lib_t:s0 asterisk # cd /var/run # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:var_run_t:s0 asterisk # chcon -R system_u:object_r:asterisk_var_run_t:s0 asterisk # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:asterisk_var_run_t:s0 asterisk # cd /var/spool # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:var_spool_t:s0 asterisk # chcon -R system_u:object_r:asterisk_spool_t:s0 asterisk # ls -Z | grep asterisk drwxr-x---. asterisk asterisk system_u:object_r:asterisk_spool_t:s0 asterisk
# semanage fcontext -a -t asterisk_var_lib_t "/var/lib/asterisk/(/.*)?" # semanage fcontext -a -t asterisk_var_run_t "/var/run/asterisk/(/.*)?" # semanage fcontext -a -t asterisk_spool_t "/var/spool/asterisk/(/.*)?"