CentOS7 + Asterisk16をビルドしてインストール
Asteriskをソースからビルドしたときの覚書。
環境: CentOS 7.7.1908, Asterisk 16.7.0
Asteriskのバージョンごとのサポート期間
ダウンロードはこちらから。
ダウンロードしたのは「STABLE SNG7-PBX-64bit-1910」
CentOS 7.6がベース。詳細はRelease Notes参照。
インストール方法はこちら。
参考サイト。両サイトを見比べながらインストールした。
直接電話回線と接続する場合は、DAHDIをビルドしてインストールする必要があるらしい。
今回想定しているのはLAN経由なのでスキップ。
バージョン15から通信プロトコルSIPのライブラリに大きな変更があったらしい。
まだよく分かってないがメモ。
必要なパッケージをYUM経由でインストール
# 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 libedit-devel
# yum install json-c json-c-devel
下記ツールも必要になるらしい。
# yum install wget bzip2 patch
# yum install subversion
Asteriskのソースをダウンロード
# cd /opt/software/
# curl -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# tar -xzvf asterisk-16-current.tar.gz
ビルド
# cd asterisk-16.7.0/
# ./configure --with-jansson-bundled
日本語音声ファイルをインストール
# make menuselect
Core Sound Packages → CORE-SOUND-JA*を全て選択
ここに書いてあったので、下記も選択
Add-ons → 「chan_ooh323」「format_mp3」
Core Sound Packages → CORE-SOUND-EN-*の8つ
Music On Hold File Packages → MOH-OPSOUND-GSMまでの上4つ
Extras Sound Packages → EXTRA-SOUNDS-GSMまでの上4つ
mp3関連ソースコードを取得
# ./contrib/scripts/get_mp3_source.sh
このスクリプトを実行すると./addons/mp3/にソースコードをダウンロードする。
./addons/mp3/interface.cにそれらしい記述があるか確認。
なければ./addons/mp3/をまるごと削除してスクリプトを再実行する。
(最初なぜかinterface.cが空になってmakeが通らずハマった)
コンパイル&インストール
# make
エラー
# df -m
「/」が100%になってる。
仮想マシン上でディスク容量を増やす。
参考:【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)
コンパイル続行
# make
# make install
/etc/asterisk/にサンプル設定ファイルを作る
# make samples
コンパイルをやり直す場合は
# make clean
confirueからやり直す場合は
# make distclean
makeコマンドのオプションは公式サイトを参考に。
make configはchkconfigをやるみたいだから、systemctlを使ってサービスを管理。
サービスの作成
# vi /etc/systemd/system/asterisk.service
ここにある通りに記述。
サービスの実行。自動起動はまだしない。
# systemctl daemon-reload
# systemctl start asterisk
確認
# systemctl status asterisk
自動起動するように設定
# systemctl enable asterisk
設定ファイルに何が書いてあるか確認
# less /etc/asterisk/asterisk.conf
サンプル設定ファイルに置き換えてみる。
参考:Asterisk 13 サンプル設定ファイル - VoIP-Info.jp
# cd /etc/asterisk/
# mkdir bak
#cp *.conf *.adsi bak/
# curl -O https://voip-info.jp/downloads/asterisk/conf/conf-sample-13_0627.tar.gz
# tar -xzvf conf-sample-13_0627.tar.gz
サービス再起動と確認
# systemctl restart asterisk
# systemctl status asterisk
エラーが気になるけど後回し。
参考: Connecting to the Asterisk CLI - Asterisk Project - Asterisk Project Wiki
# asterisk -h
このマシンの管理コンソールへ接続
# asterisk -cr
ヘルプ表示
CLI> core show help
sipで接続している端末表示
CLI> sip show peers
それらしい一覧が出てきた。
終了
CLI> quit
テストするだけならiptablesを停止した方が簡単。
sipのポート5060(sip.confに書いてある)を開けただけだと、電話は掛かるけど音声が聞こえない状態になる。
iptablesを停止
# systemctl stop iptables
次回はスマホで繋げてみる。
【関連記事】
環境: CentOS 7.7.1908, Asterisk 16.7.0
Asteriskのバージョンごとのサポート期間
1.全部入りFreePBX Distroをインストールする場合
FreePBX DistroはPBXに必要なAsteriskと管理ツールをパッケージしたもの(OSもセット)。ダウンロードはこちらから。
ダウンロードしたのは「STABLE SNG7-PBX-64bit-1910」
CentOS 7.6がベース。詳細はRelease Notes参照。
インストール方法はこちら。
2.Asteriskをソースからビルドする
今後の事を考えてソールからビルドしてみた。参考サイト。両サイトを見比べながらインストールした。
- Installing Asterisk From Source - Asterisk Project - Asterisk Project Wiki
- Asterisk 16 - VoIP-Info.jp(日本語)
- How To Install Asterisk 16 LTS on CentOS 7 / Fedora - Computing for Geeks
直接電話回線と接続する場合は、DAHDIをビルドしてインストールする必要があるらしい。
今回想定しているのはLAN経由なのでスキップ。
バージョン15から通信プロトコルSIPのライブラリに大きな変更があったらしい。
まだよく分かってないがメモ。
必要なパッケージをYUM経由でインストール
# 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 libedit-devel
# yum install json-c json-c-devel
下記ツールも必要になるらしい。
# yum install wget bzip2 patch
# yum install subversion
Asteriskのソースをダウンロード
# cd /opt/software/
# curl -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# tar -xzvf asterisk-16-current.tar.gz
ビルド
# cd asterisk-16.7.0/
# ./configure --with-jansson-bundled
日本語音声ファイルをインストール
# make menuselect
Core Sound Packages → CORE-SOUND-JA*を全て選択
ここに書いてあったので、下記も選択
Add-ons → 「chan_ooh323」「format_mp3」
Core Sound Packages → CORE-SOUND-EN-*の8つ
Music On Hold File Packages → MOH-OPSOUND-GSMまでの上4つ
Extras Sound Packages → EXTRA-SOUNDS-GSMまでの上4つ
mp3関連ソースコードを取得
# ./contrib/scripts/get_mp3_source.sh
このスクリプトを実行すると./addons/mp3/にソースコードをダウンロードする。
./addons/mp3/interface.cにそれらしい記述があるか確認。
なければ./addons/mp3/をまるごと削除してスクリプトを再実行する。
(最初なぜかinterface.cが空になってmakeが通らずハマった)
コンパイル&インストール
# make
エラー
Assembler messages:ディスク容量がない?確認
Fatal error: can't create dns_recurring.o: No space left on device
make[1]: *** [dns_recurring.o] Error 2
make: *** [main] Error 2
# df -m
「/」が100%になってる。
仮想マシン上でディスク容量を増やす。
参考:【CentOS】LVMでディスク容量を拡張(VMwareのHDD容量を増やす)
コンパイル続行
# make
# make install
/etc/asterisk/にサンプル設定ファイルを作る
# make samples
コンパイルをやり直す場合は
# make clean
confirueからやり直す場合は
# make distclean
makeコマンドのオプションは公式サイトを参考に。
make configはchkconfigをやるみたいだから、systemctlを使ってサービスを管理。
サービスの作成
# vi /etc/systemd/system/asterisk.service
ここにある通りに記述。
サービスの実行。自動起動はまだしない。
# systemctl daemon-reload
# systemctl start asterisk
確認
# systemctl status asterisk
自動起動するように設定
# systemctl enable asterisk
設定ファイルに何が書いてあるか確認
# less /etc/asterisk/asterisk.conf
サンプル設定ファイルに置き換えてみる。
参考:Asterisk 13 サンプル設定ファイル - VoIP-Info.jp
# cd /etc/asterisk/
# mkdir bak
#cp *.conf *.adsi bak/
# curl -O https://voip-info.jp/downloads/asterisk/conf/conf-sample-13_0627.tar.gz
# tar -xzvf conf-sample-13_0627.tar.gz
サービス再起動と確認
# systemctl restart asterisk
# systemctl status asterisk
エラーが気になるけど後回し。
3.Asteriskの管理コンソール実行
asteriskコマンドの確認参考: Connecting to the Asterisk CLI - Asterisk Project - Asterisk Project Wiki
# asterisk -h
このマシンの管理コンソールへ接続
# asterisk -cr
ヘルプ表示
CLI> core show help
sipで接続している端末表示
CLI> sip show peers
それらしい一覧が出てきた。
終了
CLI> quit
4.ファイアウォールの設定
いくつか使用するので下記ページを参考に。テストするだけならiptablesを停止した方が簡単。
sipのポート5060(sip.confに書いてある)を開けただけだと、電話は掛かるけど音声が聞こえない状態になる。
iptablesを停止
# systemctl stop iptables
次回はスマホで繋げてみる。
【関連記事】