ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
Asterisk18 を Centos7にインストール
今日のブログ投稿では、centos7システムに新しいAsterisk18をインストールします。
centosシステムを更新
まず、centosシステムを更新します。
$ yum update all
パッケージをインストール
Asterisk18に必要なパッケージをインストールしましょう。
$ yum install vim epel-release gcc gcc-c++ wget make bzip2 patch subversion json-c json-c-devel unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl libtool-ltdl-devel jansson-devel libsrtp-devel openssl openssl-devel dmidecode ncurses-devel libxml2-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel binutils-devel libedit libedit-devel svn
SELinuxを無効にする
必要なパッケージがすべてインストールされたら、SELinuxを無効にして、Asteriskが問題なく動作することを確認します。 現在のSELinuxステータスとCentos7システムで使用されているポリシーを表示するには、sestatusコマンドを使用します。
$ sestatus
# output
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
上記の出力から、SELinuxが有効になっていて、強制モードに設定されていることがわかります。
SELinuxには3つのモードがあります。
- Enforcing(強制) :SELinuxは、SELinuxポリシールールに基づいてアクセスを許可します。
- Permissive(許容) :SELinuxは、強制モードで実行した場合に拒否されたアクションのみをログに記録します。
- Disabled(無効):SELinuxポリシーがロードされていません。
デフォルトでは、CentOS7では、SELinuxが有効になっており、Enforcing(強制)モードになっています。
selinuxを無効にする方法
CentOS 7システムでSELinuxを永続的に無効にするには、以下の手順に従います。
SELinux設定ファイルを開きます。
$ vim /etc/selinux/config
SELinux modeを無効に設定します。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
次に、ファイルを保存して、システムを再起動します。
$ sudo shutdown -r now
システムが再起動されたら、次のコマンドでSELinuxステータスを再度確認できます。
$ sestatus
# output
SELinux status: disabled
Pjsipをインストール
次のステップはPjsipをインストールすることです。 このパッケージは、Asterisk内で使用されます。 Pjsipパッケージをダウンロードしてセットアップしましょう。
$ cd /usr/src/
$ wget https://github.com/pjsip/pjproject/archive/2.10.tar.gz
$ tar zxvf 2.10.tar.gz
$ rm -f 2.10.tar.gz
次に、Centos7システムにPjsipをインストールします。
$ cd pjproject-2.10
$ ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
$ make dep
$ make
$ make install
$ ldconfig
Asterisk18をインストール
Pjsipがインストールされたら、Asterisk18アプリケーションのインストールを開始できます。 Centos7システムにAsterisk18をダウンロードすることから始めましょう。
$ cd /usr/src/
$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
$ tar xvfz asterisk-18-current.tar.gz
$ rm -f asterisk-18-current.tar.gz
これで、Asterisk18をインストールできます。
$ cd /usr/src/asterisk-18*/
$ contrib/scripts/install_prereq install
$ ./configure --libdir=/usr/lib64 --with-jansson-bundled
$ make menuselect.makeopts
$ menuselect/menuselect --enable chan_ooh323 --enable format_mp3 --enable CORE-SOUNDS-JA-WAV --enable CORE-SOUNDS-JA-ULAW --enable CORE-SOUNDS-JA-ALAW --enable CORE-SOUNDS-JA-GSM --enable CORE-SOUNDS-JA-G729 --enable CORE-SOUNDS-JA-G722 --enable CORE-SOUNDS-JA-SLN16 --enable CORE-SOUNDS-JA-SIREN7 --enable CORE-SOUNDS-JA-SIREN14 --enable app_macro --disable BUILD_NATIVE
$ contrib/scripts/get_mp3_source.sh
$ make
$ make install
$ make samples
$ make config
$ ldconfig
Asterisk 18をインストールした後、Asteriskが起動して有効になっていることを確認する必要があります。
$ sudo systemctl enable asterisk
$ sudo systemctl start asterisk
次に、Asterisk18が開始されたことを確認しましょう。
# output
● asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/rc.d/init.d/asterisk; bad; vendor preset: disabled)
Active: active (running) since Wed 2020-11-18 00:36:12 UTC; 1min 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 20001 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS)
Process: 20027 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
これで、Asterisk18がCentos7システムにインストールされました。
コメントはありません。