「Asterisk 16」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(注意)
(CentOS 8の記載を追加)
 
(他の1人の利用者による、間の27版が非表示)
8行目: 8行目:
 
Asterisk 16は最新のAsteriskのメジャーリリースで、Asterisk 13同様にLTS(Long Term Support:通常4年)になります。
 
Asterisk 16は最新のAsteriskのメジャーリリースで、Asterisk 13同様にLTS(Long Term Support:通常4年)になります。
 
:https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
 
:https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
 +
===Asterisk 13からの変更点で重要なもの===
 
*app_faxは廃止予定
 
*app_faxは廃止予定
 
:res_faxへ移行のこと
 
:res_faxへ移行のこと
*app_macroは廃止予定
+
*'''app_macroは廃止予定'''
 
:デフォルトではapp_macroはコンパイルされない
 
:デフォルトではapp_macroはコンパイルされない
:app_stack(Gosub)へ移行のこと
+
:app_stack(Gosub)へ移行のこと → [[extension_Macro_To_Gosub]]
:https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+Application_Gosub
 
:https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+Application_Return
 
 
*AMI/ARIのイベントにいくつか変更あり
 
*AMI/ARIのイベントにいくつか変更あり
 
*libjanssonは2.11以上のバージョンが必要
 
*libjanssonは2.11以上のバージョンが必要
22行目: 21行目:
 
:デフォルトではres_config_sqliteはコンパイルされない
 
:デフォルトではres_config_sqliteはコンパイルされない
 
:res_config_sqlite3に移行のこと
 
:res_config_sqlite3に移行のこと
*res_monitorは廃止予定
+
*'''res_monitorは廃止予定'''
 
:app_mixmonitorに移行のこと
 
:app_mixmonitorに移行のこと
 
*libeditは組み込みでは提供されなくなったのでOSのパッケージでインストールのこと
 
*libeditは組み込みでは提供されなくなったのでOSのパッケージでインストールのこと
  
 
==注意==
 
==注意==
将来的にSIPチャネルはPjSipが標準となる模様です。なるべくはやい時期にchan_sipからPjSipへの移行をお勧めします。Asterisk 16からはconfigureのオプションなしでもbundledでpjsipをダウンロードするようです。<br>
+
将来的にSIPチャネルはPjSipが標準となる模様です。なるべくはやい時期にchan_sipからPjSipへの移行をお勧めします。Asterisk 16からはconfigureのオプションなしでもbundledでpjsipをダウンロードするようです。→ [[Asterisk pjsip]]<br>
Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。
+
なおAsterisk 16ではPjSIPはstatsdに依存しています。上のページの注意点をよく読んで設定してください。<br>
 +
<br>
 +
Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。<BR>
 +
'''単純にmake installしてしまうとMacro()もDialのMも動かなくなるのでハマりますよ!'''
  
 
==日本語音声の扱い==
 
==日本語音声の扱い==
 +
core sound packageでJAが使用可能ですが、Asterisk 16で変更された音声に対応しているかどうかは不明です。
 +
 
==インストール==
 
==インストール==
 
===前提となるパッケージ類===  
 
===前提となるパッケージ類===  
libeditが必要となった
+
GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(DAHDIを使う場合)、libxml2、SQLite3、libuuid-devel uuid-devel、json-c、json-c-devel<br>
 +
CentOS 7 minimalからインストールする場合、以下の手順でコンパイル環境を整えます。<br>
 +
CentOS 8 minimalからインストールする場合で、yum installで必要なパッケージが無い旨のエラーが出たときは「--enablerepo=PowerTools」を付与して実行すると上手くいきます。<br>
 +
Asterisk 16からlibeditがパッケージで必要となったため追加しておく必要があります。<br>
 +
開発環境系パッケージを一括インストールしておきます。
 +
yum groupinstall "Development Libraries" "Additional Development"
 +
パッケージを追加<br>
 +
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
 +
 
 +
openssl-develをインストールするとkrb5-devel,zlib-develも一緒に付いて来るので別途インストールの必要はありません。<br>
 +
Asteriskは現在のバージョンではBerkley DBではなくSQLite3をDBとして使用しますので、SQLite3と開発環境が必要です。<br>
 +
newt-develがないとmenuselectがフルスクリーンコントロールになりません。テキストベースになります。<br>
 +
<br>
 +
CentOSのminimalだと足りないツール類がいくつかあるので入れておきます。
 +
yum install wget bzip2 patch
 +
format_mp3など、一部のソースはAsteriskに含まれないため別途入手しますが、この際にSubversionが必要となりますので、Subversionも入れておきます。
 +
yum install subversion
 +
 
 +
Asteriskは10以降でMySQLサポートが"非常に"制限されています。このためCDRをMySQLで管理するような場合にはODBCが必要となるため、AsteriskのODBCサポート(res_odbc)を有効にする場合には以下も必要です。
 +
yum install unixODBC unixODBC-devel mysql-connector-odbc
 +
yum install libtool-ltdl libtool-ltdl-devel
 +
<br>
 +
システムを最新の状態にアップデート
 +
yum update
 +
カーネルが更新された場合にはリブートしておきます。<br>
 +
 
 
===janssonのインストール===
 
===janssonのインストール===
 
個別インストールせずbundledインストールが可能です。configureのオプションで指定してください。
 
個別インストールせずbundledインストールが可能です。configureのオプションで指定してください。
46行目: 77行目:
 
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。
 
入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。
 
  # tar zxvf asterisk-16-current.tar.gz
 
  # tar zxvf asterisk-16-current.tar.gz
  # cd asterisk-13.x.x
+
  # cd asterisk-16.x.x
  
 
===Asteriskのコンパイルとインストール===
 
===Asteriskのコンパイルとインストール===
 +
基本的にconfigureしてmakeするだけです。
 +
# ./configure
 +
*16でjanssonをbundleインストールするには以下を実行します(通常はこの方法)
 +
# ./configure --with-jansson-bundled
 +
日本語音声ファイルをインストールする場合には./configureの後 make menuselectを実行します。
 +
# make menuselect
 +
メニュー画面から '''Core Sound Packages'''で'''CORE_SOUND-JA-....'''の必要なフォーマットのファイルを選択し、[Save & Exit]でmenuselectを終了します。<BR>
 +
extenでMacro()を使用している場合、デフォルトではコンパイルされなくなったので注意してください。make menuselectでappのMacroを明示的にON指定してください(deprecatedの下にあります)。<BR>
 +
<BR>
 +
以前のバージョンからアップグレードを行う場合、変更されたモジュール類が多いので、一旦、以前のモジュールをディレクトリごと名前変更してバックアップしてからインストールしてください。<BR>
 +
mv /usr/lib/asterisk/module /usr/lib/asterisk/module.13.bak
 +
 +
あとはコンパイルとインストールを行うだけです。
 +
# make
 +
# make install
 +
# make samples
 +
*make configはCentOS 7では注意
 +
:[[Asterisk Startup systemd]]<br>
 +
CentOS 7以前のOSならばmake configしておくと自動起動します。
 +
# make config
 +
これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。<br>
 +
 
===MP3を使用する場合の注意===
 
===MP3を使用する場合の注意===
 +
MP3関連(MoHなど)を使用する場合には、MP3系のソースはAsterisk本体に含まれていないため、コンパイル時にエラーになりますが、ソース入手のスクリプトが付属しています。
 +
# ./contrib/scripts/get_mp3_source.sh
 +
これを実行すればMP3関連のモジュールがコンパイルできるようになります。
 +
 
===SIPチャネルとしてPjsipを使う場合===
 
===SIPチャネルとしてPjsipを使う場合===
 +
Asterisk 16からPjSIPはデフォルトでbundled扱いでダウンロード/コンパイルが行われます。このためconfigureを実行するだけでPjSIPも組み込まれます。
 +
 
==サンプル設定ファイル==
 
==サンプル設定ファイル==
 +
単純な使用ならばAsterisk 13用の設定ファイルが使えます。<BR>
 +
:[[Asterisk 13 サンプル設定ファイル]]
 +
PjSIPを使用して電話機を収容したい場合には以下のファイルを使ってください。<BR>
 +
:PjSIP用サンプル設定ファイル https://www.voip-info.jp/images/8/87/Conf-sample-pj.zip
 +
 
==ひかり電話ホームの使用==
 
==ひかり電話ホームの使用==
 +
*chan_sipの今後のサポートが怪しいので、PjSIPを使ってください。
 +
:[[pjsip ひかり電話HGW]]を参照してください。
 +
:chan_sipをどうしても使いたい場合にはMACアドレス認証を使ってください。
 +
:<del>パッチを作るかどうかはお悩み中</del>
 +
:今後はパッチは提供しません。chan_sipが廃止方向にあるのでpjsipを使ってください。

2020年8月3日 (月) 14:25時点における最新版


Asterisk 16.0.0が2018年10月9日(現地時間)リリースされました。

メンテナンス終了は2022年10月
セキュリティフィックス提供終了は2023年10月

概要

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

https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions

Asterisk 13からの変更点で重要なもの

  • app_faxは廃止予定
res_faxへ移行のこと
  • app_macroは廃止予定
デフォルトではapp_macroはコンパイルされない
app_stack(Gosub)へ移行のこと → extension_Macro_To_Gosub
  • AMI/ARIのイベントにいくつか変更あり
  • libjanssonは2.11以上のバージョンが必要
  • cdr_syslogは廃止予定
デフォルトではコンパイルされない
  • res_config_sqliteは廃止予定
デフォルトではres_config_sqliteはコンパイルされない
res_config_sqlite3に移行のこと
  • res_monitorは廃止予定
app_mixmonitorに移行のこと
  • libeditは組み込みでは提供されなくなったのでOSのパッケージでインストールのこと

注意

将来的にSIPチャネルはPjSipが標準となる模様です。なるべくはやい時期にchan_sipからPjSipへの移行をお勧めします。Asterisk 16からはconfigureのオプションなしでもbundledでpjsipをダウンロードするようです。→ Asterisk pjsip
なおAsterisk 16ではPjSIPはstatsdに依存しています。上のページの注意点をよく読んで設定してください。

Macroが廃止予定にされているので注意が必要です。Macroを多用している場合には早い時期にGosub/Returnへの書き換えが必要です。
単純にmake installしてしまうとMacro()もDialのMも動かなくなるのでハマりますよ!

日本語音声の扱い

core sound packageでJAが使用可能ですが、Asterisk 16で変更された音声に対応しているかどうかは不明です。

インストール

前提となるパッケージ類

GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(DAHDIを使う場合)、libxml2、SQLite3、libuuid-devel uuid-devel、json-c、json-c-devel
CentOS 7 minimalからインストールする場合、以下の手順でコンパイル環境を整えます。
CentOS 8 minimalからインストールする場合で、yum installで必要なパッケージが無い旨のエラーが出たときは「--enablerepo=PowerTools」を付与して実行すると上手くいきます。
Asterisk 16からlibeditがパッケージで必要となったため追加しておく必要があります。
開発環境系パッケージを一括インストールしておきます。

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

openssl-develをインストールするとkrb5-devel,zlib-develも一緒に付いて来るので別途インストールの必要はありません。
Asteriskは現在のバージョンではBerkley DBではなくSQLite3をDBとして使用しますので、SQLite3と開発環境が必要です。
newt-develがないとmenuselectがフルスクリーンコントロールになりません。テキストベースになります。

CentOSのminimalだと足りないツール類がいくつかあるので入れておきます。

yum install wget bzip2 patch

format_mp3など、一部のソースはAsteriskに含まれないため別途入手しますが、この際にSubversionが必要となりますので、Subversionも入れておきます。

yum install subversion

Asteriskは10以降でMySQLサポートが"非常に"制限されています。このためCDRをMySQLで管理するような場合にはODBCが必要となるため、AsteriskのODBCサポート(res_odbc)を有効にする場合には以下も必要です。

yum install unixODBC unixODBC-devel mysql-connector-odbc
yum install libtool-ltdl libtool-ltdl-devel 


システムを最新の状態にアップデート

yum update

カーネルが更新された場合にはリブートしておきます。

janssonのインストール

個別インストールせずbundledインストールが可能です。configureのオプションで指定してください。

./configure --with-jansson-bundled

Asteriskソースの入手

Asterisk 16のソースは以下からダウンロードできます。なお asterisk-16-current.tar.gz が最新バージョンへのシンボリックリンクとなっていますので、これをダウンロードすれば最新バージョンが入手できます。

http://downloads.asterisk.org/pub/telephony/asterisk/

展開するディレクトリはどこでもかまいませんが、ここでは/usr/src/とします。

# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

入手したら展開しておきます。展開すると現在のAsteriskのバージョンのディレクトリに展開されます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。

# tar zxvf asterisk-16-current.tar.gz
# cd asterisk-16.x.x

Asteriskのコンパイルとインストール

基本的にconfigureしてmakeするだけです。

# ./configure
  • 16でjanssonをbundleインストールするには以下を実行します(通常はこの方法)
# ./configure --with-jansson-bundled

日本語音声ファイルをインストールする場合には./configureの後 make menuselectを実行します。

# make menuselect

メニュー画面から Core Sound PackagesCORE_SOUND-JA-....の必要なフォーマットのファイルを選択し、[Save & Exit]でmenuselectを終了します。
extenでMacro()を使用している場合、デフォルトではコンパイルされなくなったので注意してください。make menuselectでappのMacroを明示的にON指定してください(deprecatedの下にあります)。

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

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

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

# make
# make install
# make samples
  • make configはCentOS 7では注意
Asterisk Startup systemd

CentOS 7以前のOSならばmake configしておくと自動起動します。

# make config

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

MP3を使用する場合の注意

MP3関連(MoHなど)を使用する場合には、MP3系のソースはAsterisk本体に含まれていないため、コンパイル時にエラーになりますが、ソース入手のスクリプトが付属しています。

# ./contrib/scripts/get_mp3_source.sh

これを実行すればMP3関連のモジュールがコンパイルできるようになります。

SIPチャネルとしてPjsipを使う場合

Asterisk 16からPjSIPはデフォルトでbundled扱いでダウンロード/コンパイルが行われます。このためconfigureを実行するだけでPjSIPも組み込まれます。

サンプル設定ファイル

単純な使用ならばAsterisk 13用の設定ファイルが使えます。

Asterisk 13 サンプル設定ファイル

PjSIPを使用して電話機を収容したい場合には以下のファイルを使ってください。

PjSIP用サンプル設定ファイル https://www.voip-info.jp/images/8/87/Conf-sample-pj.zip

ひかり電話ホームの使用

  • chan_sipの今後のサポートが怪しいので、PjSIPを使ってください。
pjsip ひかり電話HGWを参照してください。
chan_sipをどうしても使いたい場合にはMACアドレス認証を使ってください。
パッチを作るかどうかはお悩み中
今後はパッチは提供しません。chan_sipが廃止方向にあるのでpjsipを使ってください。