CentOS7にAsterisk13その1

サーバーをリプレースしたので久しぶりに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/(/.*)?"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください