「Asterisk 11」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
 
(3人の利用者による、間の22版が非表示)
2行目: 2行目:
 
1.8系に続くLTSです。なお、Asterisk 10よりバージョン名の命名基準が変わっています。これまでのメジャーリリースは、1.2,1.4,1.6,1.8のようにドット下が偶数でしたが、今後は10,11,12のようになります。<br>
 
1.8系に続くLTSです。なお、Asterisk 10よりバージョン名の命名基準が変わっています。これまでのメジャーリリースは、1.2,1.4,1.6,1.8のようにドット下が偶数でしたが、今後は10,11,12のようになります。<br>
 
:http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11-current
 
:http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11-current
 +
:メンテナンス終了は2016年10月
 +
:セキュリティフィックス提供終了は2017年10月
 
==概要==
 
==概要==
 
Asterisk 11は最新のAsteriskのメジャーリリースで、Asterisk 1.8同様にLTS(Long Term Support:通常4年)になります。Asterisk 11のEOLは2017年10月が予定されています。<br>
 
Asterisk 11は最新のAsteriskのメジャーリリースで、Asterisk 1.8同様にLTS(Long Term Support:通常4年)になります。Asterisk 11のEOLは2017年10月が予定されています。<br>
8行目: 10行目:
 
==インストール方法==
 
==インストール方法==
 
*注意
 
*注意
これまではMeetMeを使用するためにDAHDIが使われていましたが、1.8からDAHDIを使用しない音声会議、Confbridgeが採用されているため、DAHDIは必ずしも必要ではありません。現在のところMeetMeがObsolateという情報はありませんが、今後の動向には注意しておいてください。
+
これまではMeetMeを使用するためにDAHDIが使われていましたが、1.8からDAHDIを使用しない音声会議、Confbridgeが採用されているため、DAHDIは必ずしも必要ではありません。現在のところMeetMeがObsolateという情報はありませんが、今後の動向には注意しておいてください(→[[Asterisk App ConfBridge]])。
 
===前提となるパッケージ類===  
 
===前提となるパッケージ類===  
GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(zaptel)、libxml2<br>
+
GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(zaptel)、libxml2、SQLite3<br>
CentOS サーバインストールの場合、以下のパッケージ追加でコンパイル可能でした。<br>
+
CentOS 6.3 Basic Serverの場合、以下の手順でコンパイル環境を整えます。<br>
 +
開発環境系パッケージを一括インストールしておく。
 +
yum groupinstall "Development Libraries" "Additional Development"
 
パッケージを追加<br>
 
パッケージを追加<br>
  yum install gcc gcc-c++ kernel-devel ncurses-devel openssl-devel libxml2-devel
+
  yum install gcc gcc-c++
 +
yum install libxml2 libxml2-devel openssl-devel ncurses-devel sqlite-devel newt-devel
 
openssl-develをインストールするとkrb5-devel,zlib-develも一緒に付いて来るので別途インストールの必要はありません。<br>
 
openssl-develをインストールするとkrb5-devel,zlib-develも一緒に付いて来るので別途インストールの必要はありません。<br>
開発環境系パッケージを一括インストールしたい場合には、groupinstallを使うと便利です。<br>
+
Asteriskは現在のバージョンではBerkley DBではなくSQLite3をDBとして使用しますので、SQLite3と開発環境が必要です。<br>
  yum groupinstall "Development Libraries" "Development Tools"
+
newt-develがないとmenuselectがフルスクリーンコントロールになりません。テキストベースになります。<br>
 
+
<br>
 +
'''注:Asterisk 11.5からuuid-develが必要です'''<br>
 +
  yum install libuuid-devel uuid-devel
 +
<br>
 
format_mp3など、一部のソースはAsteriskに含まれないため別途入手しますが、この際にSubversionが必要となりますので、Subversionも入れておきます。
 
format_mp3など、一部のソースはAsteriskに含まれないため別途入手しますが、この際にSubversionが必要となりますので、Subversionも入れておきます。
 
  yum install 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
 
  yum update
49行目: 62行目:
 
  # ./contrib/scripts/get_mp3_source.sh
 
  # ./contrib/scripts/get_mp3_source.sh
 
これを実行すればMP3関連のモジュールがコンパイルできるようになります。
 
これを実行すればMP3関連のモジュールがコンパイルできるようになります。
 
  
 
==パッチ==
 
==パッチ==
63行目: 75行目:
 
</pre>
 
</pre>
 
このメッセージが出て起動できないのはAsterisk自体がシェアードライブラリを使うようになったためです。ldconfigを一発叩けば治ります。
 
このメッセージが出て起動できないのはAsterisk自体がシェアードライブラリを使うようになったためです。ldconfigを一発叩けば治ります。
 +
==SELinuxの無効化==
 +
SELinuxは"ちゃんと"使えば良い機能なのですが、どうしてもはやり面倒です。Asteriskを使用している場合で、バックグラウンドのAsteriskに接続できないケースは、このSELiunxが邪魔していることがあります。<br>
 +
そこでここではSELinuxを無効化する方法を解説します。<br>
 +
SELinuxが有効になっているかどうかを確認するには
 +
[root@pbx01 selinux]# getenforce
 +
Permissive
 +
Enforcingとなっていれば有効で、Disabledならば無効です。Permissiveは有効ではあるものの、一時的に無効にされている状態でアクセス制限はかかりません。<br>
 +
一時的にアクセス制を無効にするには
 +
[root@pbx01 selinux]# setenforce 0
 +
を、実行します。<br>
 +
SELinux自体を無効にするには/etc/selinux/configファイルを編集し
 +
SELINUX=enforcing
 +
 +
SELINUX=disabled
 +
に書き換えます。次回再起動時からSELinuxは無効になります。
 +
<!--「石川さんごめんなさい。」と心の中でつぶやいておきましょう-->
 +
 +
==CDR MySQLの移行==
 +
Asteriskは10.x.x以降はcdr_mysqlは'obsolate'扱いとなり今後サポートされません。このため、従来のようにCDRをMySQLで記録するためにはODBC経由でアクセスする必要がありますのでAsteriskのバージョンアップ時には注意してください。<br>
 +
[[Asterisk 11 ODBC]]
  
 
==T.38ゲートウェイ機能==
 
==T.38ゲートウェイ機能==
Asterisk 1.6ではパッチが必要でしたが、Asterisk 10以降は標準でT.38のゲートウェイ機能をサポートするようになりました。
+
Asterisk 10以降で正式サポートされました。<br>
T.38ゲートウェイ機能を有効にする手順を備忘録的に記しておきます。(CentOS 4.6での例)
+
[[Asterisk 11 T.38ゲートウェイ]]
*spandspのインストール
+
==セキュリティ==
:spandspをダウンロードする。http://soft-switch.org/downloads/spandsp/spandsp-0.0.6pre21.tgz
+
Asterisk 11では名前付きACLがサポートされるようになりました。<br>
:ソースコードを展開したフォルダで下記のコマンドを実行する。
+
[[Asterisk 11 名前付きACL]]
<pre>
+
 
# ./configure --prefix=/usr
+
==11.5からの注意==
# make
+
Asterisk 11.5からuuidの開発パッケージが必要になりました。<br>
# make install
+
これがないとres_rtp_asteriskがコンパイルされないため通話ができません。<br>
</pre>
+
<br>
*Asteriskの res_fax モジュールを有効にする
+
debian系ではuuid-devをインストールしてください。RH系ではuuid-develです。
:Asterisk 11のソースコードを展開したディレクトリで ./configure を実行する。
 
:make menuselect を実行し、Resorce Modules 中の res_fax を有効にする。
 
:make install を実行しインストール。
 
*sip.confの [general] 部に下記の設定を入れる
 
<pre>
 
t38pt_udptl=yes,fec,maxdatagram=400
 
</pre>
 
*着信用の extensions.conf はこんな風に。
 
<pre>
 
exten => _X.,1,Noop(${EXTEN})
 
exten => _X.,n,Noop(${ACCOUNTCODE})
 
exten => _X.,n,Set(FAXOPT(gateway)=yes,10)
 
exten => _X.,n,Dial(SIP/${EXTEN})
 
exten => _X.,n,Hangup
 
</pre>
 
*ファイアーウォールの内側にAsteriskサーバがある場合、udptl.conf を変更する必要があるかも。例えば...
 
<pre>
 
;udptlstart=4000
 
;udptlend=4999
 
udptlstart=30001
 
udptlend=31000
 
</pre>
 
:ちなみに、筆者のところでは上記のように設定した上で、UDP/30001~UDP/31000をAsteriskサーバにポート転送しないとFAXの送受信ができませんでした。
 
*T.38対応のATA(SPA112など)をFAXにつないで実験しましょう。
 
参考:https://wiki.asterisk.org/wiki/display/AST/T.38+Fax+Gateway
 
==メモ==
 
とりあえずページ作成。
 

2014年12月7日 (日) 11:50時点における最新版

Asterisk 11.0.0が2012年10月25日(現地時間)リリースされました。
1.8系に続くLTSです。なお、Asterisk 10よりバージョン名の命名基準が変わっています。これまでのメジャーリリースは、1.2,1.4,1.6,1.8のようにドット下が偶数でしたが、今後は10,11,12のようになります。

http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11-current
メンテナンス終了は2016年10月
セキュリティフィックス提供終了は2017年10月

概要

Asterisk 11は最新のAsteriskのメジャーリリースで、Asterisk 1.8同様にLTS(Long Term Support:通常4年)になります。Asterisk 11のEOLは2017年10月が予定されています。

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

Asterisk-addonsは1.8系からAsterisk本体に統合されています。

インストール方法

  • 注意

これまではMeetMeを使用するためにDAHDIが使われていましたが、1.8からDAHDIを使用しない音声会議、Confbridgeが採用されているため、DAHDIは必ずしも必要ではありません。現在のところMeetMeがObsolateという情報はありませんが、今後の動向には注意しておいてください(→Asterisk App ConfBridge)。

前提となるパッケージ類

GCC、G++(GNU-C++)、OpenSSL、Ncurses、bison、カーネルソース(zaptel)、libxml2、SQLite3
CentOS 6.3 Basic Serverの場合、以下の手順でコンパイル環境を整えます。
開発環境系パッケージを一括インストールしておく。

yum groupinstall "Development Libraries" "Additional Development"

パッケージを追加

yum install gcc gcc-c++
yum install libxml2 libxml2-devel openssl-devel ncurses-devel sqlite-devel newt-devel

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

注:Asterisk 11.5からuuid-develが必要です

yum install libuuid-devel uuid-devel


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

カーネルが更新された場合にはリブートしておきます。
以上でインストール環境は整ったはずです。
事前にDAHDIをインストールするために環境を整えた場合にはgcc-c++とopenssl-develの追加だけでコンパイル可能になるはずです。

ソースの入手

Asterisk 11のソースは以下からダウンロードできます。

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

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

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

入手したら展開しておきます。以降それぞれの作業は、それぞれの展開したサブディレクトリで行います。

# tar zxvf asterisk-11.x.x.tar.gz
# cd asterisk-11.x.x

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

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

# ./configure
# make
# make install
# make samples
# make config

これで新規インストールは完了します。最後の make config で起動時に自動起動するようになります。
なおAsteriskでもmake menuselectがサポートされておりコンパイルするモジュールを選択したり組み込むモジュールを選択することができるようになっています。

MP3を使用する場合の注意

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

# ./contrib/scripts/get_mp3_source.sh

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

パッチ

  • 日本語対応
11.0.1まで対応。オートパッチかダウンロードで。
http://ftp.voip-info.jp/asterisk/patch/11.0.1/
  • RT-200NE系(ひかり電話ホーム)対応パッチ
http://ftp.voip-info.jp/asterisk/patch/local/11/channels/

起動できない場合の対処

/usr/sbin/asterisk: error while loading shared libraries: libasteriskssl.so.1: cannot open shared object file: No such file or directory

このメッセージが出て起動できないのはAsterisk自体がシェアードライブラリを使うようになったためです。ldconfigを一発叩けば治ります。

SELinuxの無効化

SELinuxは"ちゃんと"使えば良い機能なのですが、どうしてもはやり面倒です。Asteriskを使用している場合で、バックグラウンドのAsteriskに接続できないケースは、このSELiunxが邪魔していることがあります。
そこでここではSELinuxを無効化する方法を解説します。
SELinuxが有効になっているかどうかを確認するには

[root@pbx01 selinux]# getenforce
Permissive

Enforcingとなっていれば有効で、Disabledならば無効です。Permissiveは有効ではあるものの、一時的に無効にされている状態でアクセス制限はかかりません。
一時的にアクセス制を無効にするには

[root@pbx01 selinux]# setenforce 0

を、実行します。
SELinux自体を無効にするには/etc/selinux/configファイルを編集し

SELINUX=enforcing

SELINUX=disabled

に書き換えます。次回再起動時からSELinuxは無効になります。

CDR MySQLの移行

Asteriskは10.x.x以降はcdr_mysqlは'obsolate'扱いとなり今後サポートされません。このため、従来のようにCDRをMySQLで記録するためにはODBC経由でアクセスする必要がありますのでAsteriskのバージョンアップ時には注意してください。
Asterisk 11 ODBC

T.38ゲートウェイ機能

Asterisk 10以降で正式サポートされました。
Asterisk 11 T.38ゲートウェイ

セキュリティ

Asterisk 11では名前付きACLがサポートされるようになりました。
Asterisk 11 名前付きACL

11.5からの注意

Asterisk 11.5からuuidの開発パッケージが必要になりました。
これがないとres_rtp_asteriskがコンパイルされないため通話ができません。

debian系ではuuid-devをインストールしてください。RH系ではuuid-develです。