はじめに

AlmaLinuxにAsteriskをインストールしたときのメモです。 本記事だけでなく Asterisk Documentation も合わせて確認するようにしてください。

checkmark1 INFO

Asterisk (LTS) の最新バージョンは Asterisk 22 です。 この記事は Asterisk 20 ベースの情報のため最新と異なる場合があります。

ダウンロードと解凍

Asterisk公式ページからソースコードをダウンロードし、解凍します。

curl -sLO https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar xzf asterisk-20-current.tar.gz
cd asterisk-20.6.0/

ビルド環境を整備

CRBリポジトリの有効化とビルドに必要なパッケージをインストールします。

install_prereq install を実行すると必要なものを勝手に拾ってきます。

systemd-develinstall_prereq でインストールされないため手動でインストールします。 無いとSystemdでサービスが起動しない。

mp3ファイルを扱わない場合は get_mp3_source.sh の実行は不要です。

dnf config-manager --enable crb

./contrib/scripts/install_prereq install
./contrib/scripts/get_mp3_source.sh

dnf -y install systemd-devel

ビルドオプションを設定

./configurepjproject はデフォルトでバンドルされるため省略しています。

make menuselect でTUIが立ち上がるので必要なものを選択する。 Save & Exit で保存・終了できる。

言語が日本語/英語のものとコーデックがWAV/ULAWのものは選択しておくとよい。

./configure --with-jansson-bundled
make menuselect

checkmark1 INFO

この先のオプションはメモのため、要件に応じて選択すること。

  • Add-ons (See README-addons.txt) / format_mp3 [コーデック]
  • Codec Translators / codec_opus [コーデック]【スキップ可】
  • Core Sound Packages [ボイス集]
    • CORE-SOUNDS-EN-WAV
    • CORE-SOUNDS-EN-ULAW
    • CORE-SOUNDS-JA-WAV
    • CORE-SOUNDS-JA-ULAW
  • Music On Hold File Packages [保留音]
    • MOH-OPSOUND-WAV
    • MOH-OPSOUND-ULAW
  • Extras Sound Packages [ボイス集]
    • EXTRA-SOUNDS-EN-WAV
    • EXTRA-SOUNDS-EN-ULAW

ビルド

ビルドする。そこそこ時間がかかります。

make
make install
make config
make samples

asterisk ユーザを作成

サービス実行ユーザを作成する。 各ディレクトリのオーナーを変更する。

useradd -d /var/lib/asterisk -M -s /sbin/nologin
chown -R asterisk:asterisk /var/{lib,log,spool,run}/asterisk

/etc/sysconfig/asterisk の設定

vi /etc/sysconfig/asterisk
# AST_USER をアンコメントする
# AST_GROUP をアンコメントする

ldconfig

/etc/tmpfiles.d/asterisk.conf の設定

/var/run はtmpfsのため起動するたびに初期化される。 起動時に自動作成されるように設定する。

echo 'd /run/asterisk 755 asterisk asterisk' > /etc/tmpfiles.d/asterisk.conf

MP3ファイルを再生するための設定

ソースを含めても mpg123 がないとmp3ファイルを再生できないためインストールする。(なぜ?)

dnf -y install mpg123

systemd にサービスを登録

サービスファイルは用意されているため、コピーして使う。

systemctl enable asterisk は動作しないため、手動でリンクを張る。

cp ./contrib/systemd/asterisk* /etc/systemd/system/
ln -s /etc/systemd/system/asterisk.service /etc/systemd/system/multi-user.target.wants/asterisk.service

systemctl daemon-reload

Asteriskを起動・CLI接続

asterisk -r でAsterisk CLIに接続できます。

systemctl start asterisk

asterisk -r

お疲れ様でした。

ここから先の設定については後日改めて書き起こそうと思います。