どうもカトーです。CentOSもStreamとRockyに派生して、サーバディストリ難民にならないよう今回はUbutuServer版を入れて触り始めました。社内にインフラ担当はいますが、私も触らないと何かと話が通らないので、早速インストールして設定してみます。今回はUbuntuServerにAsteriskを入れてみようと思います。ちょっと長めなので初回として仮想にインストールまでを、初心者でも分かるように書いてみますよ。
【注意】検索でUbuntu Server Asterisk 辺りで来た人やディストリになっているFreePBX設定を期待した方は、申し訳ないですが、次の記事をご期待ください。この記事は単純にCentOSからUbuntuServer版を仮想に入れて確認という内容です。
まずはUbuntu Server ダウンロードだ!

早速ダウンロードします。現時点のバージョンは20.04.1です。ちなみにLTSとは、Long Term Supportの略でサポート期間が長いバージョンです。この20.04.01はリリースから5年間となっています。
仮想で入れるからネットワーク設定は予め(´・ω・)ス

ubuntu-20.04.1-live-server-amd64.isoをダウンロードしたら、今回はVM VitualBox 仮想環境にインストールしてみます。事前準備の注意点として仮想マシンがホストを経由して同じセグメントに入れるようにブリッジアダプターを設定します。

ISOイメージでブート、日本語は無いようなのでEnglishで進みます。

インストール時にアップデートするか聞かれます。インストール後に手動で行いますので、Continu without updating をで進みます。

記号とか大変なのでキーボードレイアウトはJapaneseに変更しておきます。

ネットワーク設定の画面では、追加したネットワークアダプタが表示されています。ちなみにですが、少し前はeth0とかwlan0でしたが、CentOS同様にsystemd命名規則で、en(イーサーネット)+p0( 0番目のバス)+s8(8番目のスロット)という意味です。OSが再起動してもインターフェース名が変わらないので嬉しいですね。ついでなので、IPは固定化しておきます。


プロクシは無しで進みます。
パッケージのミラーサーバ-です。これもそのまま進みます。

ストレージ設定の画面です。今回はこのまま進みます。

こんな感じでやりますよ?と出ますので、そのまま進みます。

ストレージのデータがリセットされちゃうけど大丈夫?いっとく?と出るので、Continueで進みます。

次にユーザーとホスト設定です。adminとか使えないようです。

SSH使えるようにします?入れます?と聞かれるのでチェックを入れてそのまま進みます。
パッケージの選択がでます。ひとまず何もいれずに進みます。
インストール完了のようですので、Rebootします。こちらの環境ではリブートできなかったので強制電源停止して再起動を行いました。

無事起動してたようなので、まずはアップデートします。
sudo apt update sudo apt -y upgrade
つい su – してyumりたくなりますね。ここは、ハッとして ! Good なaptです。またここでも一応はリブートしておきます。
まずはAsteriskをインストール

インストールする方法はapt方法とソースを持ってきて入れる方法がありますが、少し前は日本語パッチが合わなくてソースから持って来ていましたが、今回も持ってきてビルドしてみます。
ステップ1 まずはUbuntuをアップデートしておく
sudo apt update sudo apt -y upgrade sudo systemctl reboot
ステップ2 ビルド依存環境をインストールしておく
sudo apt update sudo add-apt-repository universe sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev
※こちらの環境ではadd-apt-repository unverse のユニバースレポジトリは既に有効でした。
Asterisk 18をダウンロードする
$ sudo apt policy asterisk asterisk: Installed: (none) Candidate: 1:16.2.1~dfsg-2ubuntu1 Version table: 1:16.2.1~dfsg-2ubuntu1 500 500 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
$wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
$tar xvf asterisk-18-current.tar.gz
$ cd asterisk18.1.1
現時点で18.1.1でした。
$ contrib/scripts/get_mp3_source.sh A addons/mp3 A addons/mp3/dct64_i386.c A addons/mp3/MPGLIB_TODO A addons/mp3/mpg123.h A addons/mp3/layer3.c A addons/mp3/mpglib.h A addons/mp3/decode_ntom.c A addons/mp3/interface.c A addons/mp3/MPGLIB_README A addons/mp3/common.c A addons/mp3/huffman.h A addons/mp3/tabinit.c A addons/mp3/Makefile A addons/mp3/README A addons/mp3/decode_i386.c Exported revision 202.
依存関係が問題ないか確認します。
$sudo contrib/scripts/install_prereq install

途中で世界電話番号的なものを入れておきます。日本は81番です。
………(略) Setting up vpb-driver-source (4.2.61-1build1) ... Processing triggers for libglib2.0-0:amd64 (2.64.3-1~ubuntu20.04.1) ... Processing triggers for libc-bin (2.31-0ubuntu9.1) ... Processing triggers for systemd (245.4-4ubuntu3.3) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for install-info (6.7.0.dfsg.2-5) ... Setting up libgmime-2.6-dev (2.6.23+dfsg1-4) ... Setting up libgmime-3.0-dev:amd64 (3.2.7-1) ... ############################################# ## install completed successfully #############################################
と出れば成功です。次はセットアップを行います。
ステップ4: ビルドと初期設定
./configure
チェックが走った後に
checking for GTK2... no
configure: creating ./config.status
config.status: creating makeopts
config.status: creating autoconfig.h
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :
$make menuselect


ひとまず音声絡みを入れておきます。
make
> chan_ooh323.so [CC] format_mp3.c -> format_mp3.o [CC] mp3/common.c -> mp3/common.o [CC] mp3/dct64_i386.c -> mp3/dct64_i386.o [CC] mp3/decode_ntom.c -> mp3/decode_ntom.o [CC] mp3/layer3.c -> mp3/layer3.o [CC] mp3/tabinit.c -> mp3/tabinit.o [CC] mp3/interface.c -> mp3/interface.o [LD] format_mp3.o mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o -> format_mp3.so [CC] res_config_mysql.c -> res_config_mysql.o [LD] res_config_mysql.o -> res_config_mysql.so Building Documentation For: third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons +--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-------------------------------------------+
$sudo make install
asterisk-extra-sounds-en-gsm-1 100%[====================================================>] 4.06M 61.1KB/s in 57s
2021-01-09 23:31:39 (72.7 KB/s) - ‘asterisk-extra-sounds-en-gsm-1.5.2.tar.gz’ saved [4253587/4253587]
make[1]: Leaving directory '/home/kato/asterisk-18.1.1/sounds'
find rest-api -name "*.json" | while read x; do \
/usr/bin/install -c -m 644 $x "/var/lib/asterisk/rest-api" ; \
done
+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
ドキュメントもオプションで入れることができます。
$sudo make progdocs
最後に、コンフィグとサンプルを入れてみます。
sudo make samples sudo make config sudo ldconfig
ここまで準備として記載してみました。躓くとドはまりするSIPですが、次回はサンプルを動かして統括的にどうするか検証してみます。
