「Asterisk 22」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
1行目: 1行目:
2024年10月16日にリリース予定となったようです。<br>
+
[[カテゴリ:Asterisk]]
正式リリース後にページをまとめますが、21でchan_sip,Macroが削除されている等、注意点があります。
+
[[カテゴリ:Asterisk22]]
 +
[[カテゴリ:pjsip]]
 +
 
 +
Asterisk 22.0.0が2022年10月16日(現地時間)リリースされました。<br>
 +
:メンテナンス終了は2028年10月16日
 +
:セキュリティフィックス提供終了は2029年10月
 +
==概要==
 +
Asterisk 22は最新のAsteriskのメジャーリリースで、Asterisk 20同様にLTS(Long Term Support:通常4年)になります。
 
:https://docs.asterisk.org/About-the-Project/Asterisk-Versions/
 
: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が動くはずです。
  
参考:[[Asterisk_21]]
+
==サンプル設定ファイルと応用例==
==とりあえず==
+
Asterisk 20以降用に大幅に書き直しました。<br>
22.0.0が公開されたようです<br>
+
:https://github.com/takao-t/asterisk-conf/tree/main/asterisk_20
:https://downloads.asterisk.org/pub/telephony/asterisk/
+
:使い方 [[Asterisk_20_サンプル設定ファイル]]
 +
:解説 [[Asterisk_20_サンプル設定ファイル_解説]]
 +
:NVR500の使用例 [[Asterisk+NVR500]]

2024年10月18日 (金) 09:58時点における版


Asterisk 22.0.0が2022年10月16日(現地時間)リリースされました。

メンテナンス終了は2028年10月16日
セキュリティフィックス提供終了は2029年10月

概要

Asterisk 22は最新のAsteriskのメジャーリリースで、Asterisk 20同様にLTS(Long Term Support:通常4年)になります。

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はソースも配布されず完全に廃止されました。

Asterisk pjsip

  • Macro廃止
Macroが完全廃止されました。Gosub/Returnへの書き換えが必要です。
extenでMacroを多用している例は多いので22へ移行する場合には対応してください。


インストール

前提となるパッケージ類

GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(DAHDIを使う場合)、libxml2、SQLite3、libuuid-devel
dnsutilsは使う人がいるかもなので追加。libsrtp2はブラウザフォン対応用、libunboundはRTX/NVRで直収のため。
Debianで説明します。
以下の例はbookworm最小インストール(netinstall)からパッケージを追加した例です。

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時に指定します。
Asterisk 20と同様の環境でコンパイルできました。

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


以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。

mv /usr/lib/asterisk/module /usr/lib/asterisk/module.20.bak

あとはコンパイルとインストールを行うだけです。

# make
# make install
# make samples
# make config

これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。

『何か』が足りない場合のヒント

Asteriskのモジュールでコンパイルされないものが出てきた場合には以下の方法で対処してください。Asteriskの機能アップとともに依存するパッケージも増えているので『新しい機能を使いいのに動かない』ような場合には要チェックです。
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"に依存していることがわかります。
ではluaのパッケージを追加すればOKかというと、それだけでは不足で、Asteriskはソースからコンパイルするので、単純なパッケージ追加だけではなく-devも追加する必要うがあります。なので、例えばLUAならば。

apt install lua5.3
apt install lua5.3-dev

のように、devパッケージも併せてインストールします。
インストールが終わったら再度configureとmake menuselectをしてみましょう。

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

再度確認すると次のようになっているはずです。

                                       --- Extended ---
                                   [*] pbx_ael
                                   XXX pbx_dundi
                                   [*] pbx_lua
                                   [*] pbx_realtime

これで表示が[*]となったので、コンパイル/インストールされることがわかります。このようにして何のパッケージが不足しているかを確認/追加します。
ただしAsteriskのmake menuselectで表示されるパッケージ名称は『一般的な』ものなので自分のディストリでそれが何に相当するのかは調べてください。

日本語音声のインストール

Asteriskの本体に付随する日本語音声は古いためGoogle TTSで合成した日本語音声(トーキー)を用意してあります(Asterisk 18ベース)。githubに用意してありますのでご利用ください。
※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が動くはずです。

サンプル設定ファイルと応用例

Asterisk 20以降用に大幅に書き直しました。

https://github.com/takao-t/asterisk-conf/tree/main/asterisk_20
使い方 Asterisk_20_サンプル設定ファイル
解説 Asterisk_20_サンプル設定ファイル_解説
NVR500の使用例 Asterisk+NVR500