4,723
回編集
差分
編集の要約なし
:https://docs.asterisk.org/About-the-Project/Asterisk-Versions/
===Asterisk 20からの変更点で重要なもの===
*chan_sipは廃止(ソースコードも含まれない)
*chan_alsa,chan_mgcp,chan_skinnyも廃止
*app_macroは廃止
*res_config_sqliteは廃止
===新機能===
==注意==
*'''SIPチャネル要注意'''
:SIPチャネルはPjSipが標準となりました。chan_sipはソースも配布されず完全に廃止されました。<br>
→ [[Asterisk pjsip]]<br>
*'''Macro廃止'''
:Macroが完全廃止されました。Gosub/Returnへの書き換えが必要です。
:extenでMacroを多用している例は多いので22へ移行する場合には対応してください。
<br>
==インストール==
===前提となるパッケージ類===
GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(DAHDIを使う場合)、libxml2、SQLite3、libuuid-devel<br>
dnsutilsは使う人がいるかもなので追加。libsrtp2はブラウザフォン対応用、libunboundはRTX/NVRで直収のため。<br>
Debianで説明します。<br>
以下の例はbookworm最小インストール(netinstall)からパッケージを追加した例です。<br>
apt -y install build-essential libedit-dev uuid-dev libxml2-dev ncurses-dev libsqlite3-dev sqlite3 libssl-dev subversion git net-tools dnsutils libsrtp2-dev libunbound-dev
Asteriskの基本的な部分は上記のパッケージ追加で問題ないと思います。なおJanssonはAsteriskのバンドルでインストールしますので、configure時に指定します。<br>
Asterisk 20と同様の環境でコンパイルできました。<br>
===Asteriskソースの入手===
Asterisk 20のソースは以下からダウンロードできます。なお asterisk-22-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。
http://downloads.asterisk.org/pub/telephony/asterisk/
展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。
# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。
# tar zxvf asterisk-22-current.tar.gz
# cd asterisk-22.x.x
===Asteriskのコンパイルとインストール===
基本的にconfigureしてmakeするだけですが、Janssonをバンドルで行うので以下のオプションでconfigureします。。
# ./configure --with-jansson-bundled
<BR>
以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。<BR>
mv /usr/lib/asterisk/module /usr/lib/asterisk/module.20.bak
あとはコンパイルとインストールを行うだけです。
# make
# make install
# make samples
# make config
これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。<br>
====『何か』が足りない場合のヒント====
Asteriskのモジュールでコンパイルされないものが出てきた場合には以下の方法で対処してください。Asteriskの機能アップとともに依存するパッケージも増えているので『新しい機能を使いいのに動かない』ような場合には要チェックです。<br>
make menuselectを実行します。コンパイルされていないモジュールを探します。例えば以下はLUAが使いたいけど、使えない場合に調べてみると'pbx_lua'がコンパイルされていない例です。
**************************************************
Asterisk Module and Build Option Selection
**************************************************
Press 'h' for help.
--- Core ---
[*] pbx_config
[*] pbx_loopback
[*] pbx_spool
--- Extended ---
[*] pbx_ael
XXX pbx_dundi
XXX pbx_lua
[*] pbx_realtime
XXXで表示されるものは『何か』が足りないのでコンパイル/インストールされないものです。カーソルを該当する箇所に移動すると、画面の下の方をみると次のような表示があるはずです。
Lua PBX Switch
Depends on: lua(E)
Support Level: extended
Depends onが何に依存しているかの情報で要するに"lua"に依存していることがわかります。<br>
ではluaのパッケージを追加すればOKかというと、それだけでは不足で、Asteriskはソースからコンパイルするので、単純なパッケージ追加だけではなく-devも追加する必要うがあります。なので、例えばLUAならば。
apt install lua5.3
apt install lua5.3-dev
のように、devパッケージも併せてインストールします。<br>
インストールが終わったら再度configureとmake menuselectをしてみましょう。
# ./configure --with-jansson-bundled
# make menuselect
再度確認すると次のようになっているはずです。
--- Extended ---
[*] pbx_ael
XXX pbx_dundi
[*] pbx_lua
[*] pbx_realtime
これで表示が'''[*]'''となったので、コンパイル/インストールされることがわかります。このようにして何のパッケージが不足しているかを確認/追加します。<br>
ただしAsteriskのmake menuselectで表示されるパッケージ名称は『一般的な』ものなので自分のディストリでそれが何に相当するのかは調べてください。
===日本語音声のインストール===
Asteriskの本体に付随する日本語音声は古いためGoogle TTSで合成した日本語音声(トーキー)を用意してあります(Asterisk 18ベース)。githubに用意してありますのでご利用ください。<br>
※core-sounds.txtを確認したところ、18と20で音声の差異は無いようです。
git clone https://github.com/takao-t/asterisk-sound-ja.git
tarでまとめたものを展開します。
cd asterisk-sound-ja
cp core-sound-ja.tgz /var/lib/asterisk/sounds/.
cd /var/lib/asterisk/sounds/
tar zxvf core-sound-ja.tgz
これで sounds/ja の下に日本語音声ファイル類が入ります。LANGUAGE系の設定をjaにすると日本語音声が使えます。
==ユーザの追加と設定==
Asteriskをasterisk:asteriskで起動させるために以下のようにグループ/ユーザを追加します。UID,GIDの5060は単なる趣味です。
addgroup --gid 5060 asterisk
adduser --uid 5060 --gid 5060 asterisk --disabled-password
Asteriskの実行ユーザ/グループは /etc/defaults/asterisk を編集します。以下の部分のコメントを外します。
# Uncomment the following and set them to the user/groups that you
# want to run Asterisk as. NOTE: this requires substantial work to
# be sure that Asterisk's environment has permission to write the
# files required for its operation, including logs, its comm
# socket, the asterisk database, etc.
AST_USER="asterisk" <==ここと
AST_GROUP="asterisk" <==ここ
ディレクトリ/ファイル類の権限も調整しておきましょう。
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /usr/lib/asterisk
chown -R asterisk:asterisk /etc/asterisk
これでsystemctlで起動すればAsteriskが動くはずです。