「Asterisk 20」の版間の差分
(→Asterisk 16からの変更点で重要なもの) |
(→新機能) |
||
(同じ利用者による、間の26版が非表示) | |||
1行目: | 1行目: | ||
[[カテゴリ:Asterisk]] | [[カテゴリ:Asterisk]] | ||
+ | [[カテゴリ:Asterisk20]] | ||
[[カテゴリ:pjsip]] | [[カテゴリ:pjsip]] | ||
7行目: | 8行目: | ||
==概要== | ==概要== | ||
Asterisk 20は最新のAsteriskのメジャーリリースで、Asterisk 18同様にLTS(Long Term Support:通常4年)になります。 | Asterisk 20は最新のAsteriskのメジャーリリースで、Asterisk 18同様にLTS(Long Term Support:通常4年)になります。 | ||
− | :https:// | + | :https://docs.asterisk.org/About-the-Project/Asterisk-Versions/ |
− | ===Asterisk | + | ===Asterisk 18からの変更点で重要なもの=== |
*chan_sipは廃止予定(Deprecated扱いで標準ではコンパイルされない) | *chan_sipは廃止予定(Deprecated扱いで標準ではコンパイルされない) | ||
+ | :chan_sipは18でもそうでしたが、ほぼメンテナンスされていないようなので使わないことをお勧めします。 | ||
+ | *chan_alsa,chan_mgcp,chan_skinnyも廃止予定(deprecated)で標準コンパイルされない | ||
*app_macroは廃止予定(Deprecated扱いで標準ではコンパイルされない) | *app_macroは廃止予定(Deprecated扱いで標準ではコンパイルされない) | ||
− | + | 上記はmenuselectで明示指定すればコンパイルはされる | |
*res_config_sqliteは廃止 | *res_config_sqliteは廃止 | ||
+ | |||
===新機能=== | ===新機能=== | ||
*function EXPORT | *function EXPORT | ||
*function 文字列操作 | *function 文字列操作 | ||
:TRIM,LTRIM,RTRIMが追加 | :TRIM,LTRIM,RTRIMが追加 | ||
− | + | その他は [https://github.com/asterisk/asterisk/blob/releases/20/ChangeLogs/historical/CHANGES CHANGE] を参照のこと。 | |
+ | |||
+ | ==注意== | ||
+ | *'''SIPチャネル要注意''' | ||
+ | :SIPチャネルはPjSipが標準となりました。chan_sipはコンパイルされません。廃止予定扱いなのではやい時期にchan_sipからPjSipへの移行を行ってください。Asterisk 21ではもはやchan_sipは含まれていません。<br> | ||
+ | → [[Asterisk pjsip]]<br> | ||
+ | *'''Macro要注意''' | ||
+ | :Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。 | ||
+ | :単純にmake installしてしまうとMacro()もDialのMも動かなくなるのでハマります。 | ||
+ | :extenでMacroを多用している例は多いので早急に対応してください。 | ||
+ | <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時に指定します。 | ||
+ | |||
+ | ===Asteriskソースの入手=== | ||
+ | Asterisk 20のソースは以下からダウンロードできます。なお asterisk-20-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。 | ||
+ | http://downloads.asterisk.org/pub/telephony/asterisk/ | ||
+ | 展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。 | ||
+ | # cd /usr/src | ||
+ | # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz | ||
+ | 入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。 | ||
+ | # tar zxvf asterisk-20-current.tar.gz | ||
+ | # cd asterisk-20.x.x | ||
+ | ===Asteriskのコンパイルとインストール=== | ||
+ | 基本的にconfigureしてmakeするだけですが、Janssonをバンドルで行うので以下のオプションでconfigureします。。 | ||
+ | # ./configure --with-jansson-bundled | ||
+ | extenでMacro()を使用している場合、デフォルトではコンパイルされなくなったので注意してください。make menuselectでappのMacroを明示的にON指定してください(deprecatedの下にあります)。<BR> | ||
+ | <BR> | ||
+ | 以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。<BR> | ||
+ | mv /usr/lib/asterisk/module /usr/lib/asterisk/module.18.bak | ||
+ | |||
+ | あとはコンパイルとインストールを行うだけです。 | ||
+ | # make | ||
+ | # make install | ||
+ | # make samples | ||
+ | # make config | ||
+ | これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。<br> | ||
+ | ==== どうしてもchan_sipを使いたい場合==== | ||
+ | どうしてもchan_sipを使いたい場合にはmenuselectでChannel DriversのDeprecatedからchan_sipを選択してからmakeします。 | ||
+ | |||
+ | ************************************************** | ||
+ | Asterisk Module and Build Option Selection | ||
+ | ************************************************** | ||
+ | |||
+ | Press 'h' for help. | ||
+ | |||
+ | --- Core --- | ||
+ | [*] chan_bridge_media | ||
+ | XXX chan_dahdi | ||
+ | [*] chan_iax2 | ||
+ | XXX chan_motif | ||
+ | [*] chan_pjsip | ||
+ | [*] chan_rtp | ||
+ | --- Extended --- | ||
+ | [*] chan_audiosocket | ||
+ | XXX chan_console | ||
+ | [*] chan_unistim | ||
+ | --- Deprecated --- | ||
+ | XXX chan_alsa | ||
+ | [ ] chan_mgcp | ||
+ | [ ] chan_sip <=* | ||
+ | [ ] chan_skinny | ||
+ | |||
+ | ====『何か』が足りない場合のヒント==== | ||
+ | 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 20以降用に大幅に書き直しました。<br> | ||
+ | :https://github.com/takao-t/asterisk-conf/tree/main/asterisk_20 | ||
+ | :使い方 [[Asterisk_20_サンプル設定ファイル]] | ||
+ | :解説 [[Asterisk_20_サンプル設定ファイル_解説]] | ||
+ | :NVR500の使用例 [[Asterisk+NVR500]] |
2024年8月12日 (月) 05:34時点における最新版
Asterisk 20.0.0が2022年10月19日(現地時間)リリースされました。
- メンテナンス終了は2026年10月19日
- セキュリティフィックス提供終了は2027年10月
目次
概要
Asterisk 20は最新のAsteriskのメジャーリリースで、Asterisk 18同様にLTS(Long Term Support:通常4年)になります。
Asterisk 18からの変更点で重要なもの
- chan_sipは廃止予定(Deprecated扱いで標準ではコンパイルされない)
- chan_sipは18でもそうでしたが、ほぼメンテナンスされていないようなので使わないことをお勧めします。
- chan_alsa,chan_mgcp,chan_skinnyも廃止予定(deprecated)で標準コンパイルされない
- app_macroは廃止予定(Deprecated扱いで標準ではコンパイルされない)
上記はmenuselectで明示指定すればコンパイルはされる
- res_config_sqliteは廃止
新機能
- function EXPORT
- function 文字列操作
- TRIM,LTRIM,RTRIMが追加
その他は CHANGE を参照のこと。
注意
- SIPチャネル要注意
- SIPチャネルはPjSipが標準となりました。chan_sipはコンパイルされません。廃止予定扱いなのではやい時期にchan_sipからPjSipへの移行を行ってください。Asterisk 21ではもはやchan_sipは含まれていません。
- Macro要注意
- Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。
- 単純にmake installしてしまうとMacro()もDialのMも動かなくなるのでハマります。
- extenでMacroを多用している例は多いので早急に対応してください。
インストール
前提となるパッケージ類
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ソースの入手
Asterisk 20のソースは以下からダウンロードできます。なお asterisk-20-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。
http://downloads.asterisk.org/pub/telephony/asterisk/
展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。
# cd /usr/src # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。
# tar zxvf asterisk-20-current.tar.gz # cd asterisk-20.x.x
Asteriskのコンパイルとインストール
基本的にconfigureしてmakeするだけですが、Janssonをバンドルで行うので以下のオプションでconfigureします。。
# ./configure --with-jansson-bundled
extenでMacro()を使用している場合、デフォルトではコンパイルされなくなったので注意してください。make menuselectでappのMacroを明示的にON指定してください(deprecatedの下にあります)。
以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。
mv /usr/lib/asterisk/module /usr/lib/asterisk/module.18.bak
あとはコンパイルとインストールを行うだけです。
# make # make install # make samples # make config
これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。
どうしてもchan_sipを使いたい場合
どうしてもchan_sipを使いたい場合にはmenuselectでChannel DriversのDeprecatedからchan_sipを選択してからmakeします。
************************************************** Asterisk Module and Build Option Selection ************************************************** Press 'h' for help. --- Core --- [*] chan_bridge_media XXX chan_dahdi [*] chan_iax2 XXX chan_motif [*] chan_pjsip [*] chan_rtp --- Extended --- [*] chan_audiosocket XXX chan_console [*] chan_unistim --- Deprecated --- XXX chan_alsa [ ] chan_mgcp [ ] chan_sip <=* [ ] chan_skinny
『何か』が足りない場合のヒント
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以降用に大幅に書き直しました。