更新 2013年2月28日
CentOS6.3 x86_64bit minimalをインストールしたマシンにAsteriskをソースからインストールした
・ハードウェアとOS
余計なプログラムを省いているCentOS6.3 64bitのminimalに、asteriskをインストールした。
メモリ512MBで、デュアルコア(2GHz*2)マシンにインストールしてみた。
・ソースコード
asterisk-1.8.9.0(あるいは、Asterisk 1.8.20.1) を用いた。
(注意)asterisk-1.8.9.0では運用中に、「ParkAndAnnounce」を動作させるとサービスが停止した。
他にもバグがありそうなので、Asterisk 1.8.20.1を用いた方が良いと思った。
・パッチ(ひかり電話アダプタにレジストさせるために必要)
asterisk-1.8.9.0(あるいは、Asterisk 1.8.20.1) を、ひかり電話アダプタへの接続に対応させるために、
chan_sip.rt200ne.110205-01.patch というパッチをあてた。(‡対応パッチ)
( パッチをありがとうございます。ホームゲートウェイ RT-400NE(Ver4.37) にレジストできました。)
この対応パッチは、「NTT東日本のひかり電話対応ルータ RT-200NE」ということになっているが、
その他のいくつかのタイプのアダプタにも対応しているようだ。(‡ひかり電話対応)
パッチはasteriskのソースのバージョンにあわせて用意されているので適切なものをあてる必要がある。
・インストール完了後の注意
インストール作業は問題なく完了したようだが、CLIでasteriskへの接続に失敗した。
そこでSELINUXを無効化したのちに、asteriskを再起動すると、CLIでasteriskに接続できた。
以下は、その手順のメモ。
■システムのインストールと準備作業
1、CentOS6.3のminimalをインストールした
300MBほどのisoイメージファイルが、CentOSのミラーサイトからダウンロードできたので、
これを使ってインストールを行った。
2、ネットワークを有効化した
/etc/sysconfig/network-scripts/ifcfg-eth0 を編集し、
次の項目がなければ加えて、さらに値も設定する。
BOOTPROTO="dhcp"ネットワークサービスを再起動して、DHCPでアドレスを取得する。
ONBOOT="yes"
# service network restart
3、システムをアップデートした
#yum update4、念のためシステムを再起動しておく
# reboot
■必要なツールのインストール作業
1、wgetをインストールした(ソースなどのダウンロードで使用)
# yum install wget
2、コンパイラやライブラリなどをインストールした(なければ、configureが通らない)
# yum install gcc gcc-c++ make ncurses-devel libxml2-devel
3、パッチを当てるpatchをインストールした(パッチをあてる場合に必要)
# yum install patch
■Asteriskのソースのダウンロードとインストール作業
以下は、特に断りがない限り、Asterisk 1.8.9.0を例にしている。
1、asteriskソースのダウンロード
# wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.8.9.0.tar.gz
2、ファイルの展開とディレクトリ移動
# tar -zxvf asterisk-1.8.9.0.tar.gz
# cd asterisk-1.8.9.0
3、必要な場合には、パッチをダウンロードしパッチをあてる
ホームゲートウェイなどのひかり電話アダプタとasteriskを接続するには、そのアダプタの種類によっては、
ソースにパッチをあてる必要がある。
ソースのバージョンに対応したパッチを、「voip-info.jp」からダウンロードする(‡対応パッチ)
今回しようしたパッチは、chan_sip.rt200ne.110205-01.patch というものである。
このパッチは、Asterisk-1.8.9.0だけでなく、Asterisk-1.8.20.1にもあてることができた。
ただし、Asterisk-1.8.9.0にあてた場合と表示されるメッセージが異なっていた。
パッチをあてたAsterisk-1.8.20.1でしばらく運用してみたが、特に問題は発生していないようだ。
パッチをあてる
# patch -p0 < chan_sip.rt200ne.110205-01.patch
patching file channels/chan_sip.c
patching file channels/sip/include/sip.h
★asterisk-1.8.20.1の場合には次のように表示された。
patching file channels/chan_sip.c
Hunk #2 succeeded at 1394 (offset 11 lines).
Hunk #3 succeeded at 18815 (offset 773 lines).
Hunk #4 succeeded at 19819 (offset 746 lines).
Hunk #5 succeeded at 19831 (offset 746 lines).
Hunk #6 succeeded at 28832 (offset 835 lines).
Hunk #7 succeeded at 29255 (offset 818 lines).
Hunk #8 succeeded at 30649 (offset 953 lines).
patching file channels/sip/include/sip.h
Hunk #1 succeeded at 102 (offset 1 line)
インストール作業は、READMEファイルを参考に行った。
4、準備作業
# ./configure5、コンパイル
(省略)
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : unknown : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : unknown : linux-gnu :
# make
(省略)
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
6、インストール
# make install
(省略)
+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ make samples +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
7、設定ファイルのインストール
# make samples
8、システム起動時に自動的に起動可能にする設定
自動起動できるようにする
# make config設定を確認する
# chkconfig --list | grep asteriskシステム起動時に自動的に起動しないようにしておくには次のようにする
asterisk 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig asterisk off
■Asteriskを起動してさらにCLIでasteriskに接続を試みた
まずシステムを再起動した。
# rebootそのあとで、asterisk を起動した。
# service asterisk startさらに、CLIで、asteriskに接続を試みた。
# asterisk -r
Asterisk 1.8.9.0, Copyright (C) 1999 - 2011 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) ←エラーが発生して接続できなかった
そこで、次のようにして、いったんSELINUXを無効化した。
■SELINUXの無効化と再起動、そして再度asteriskの起動しCLIでasteriskに接続を試みた
1、SELINUXを無効化した
/etc/selinux/config を編集し、次の項目について値をdisabledとして作成し直す2、システムを再起動した
#SELINUX=enforcing
SELINUX=disabled
# reboot3、SELINUX無効化後に、asteriskを起動して、再度、CLIでasteriskに接続を試した
# service asterisk start無事に、asteriskに接続することができた。
# asterisk -r
Asterisk 1.8.9.0, Copyright (C) 1999 - 2011 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.8.9.0 currently running on localhost (pid = 1341)
Verbosity is at least 3
localhost*CLI>?
! ael agent agi aoc calendar
cc cdr cel channel cli config
console core data database devstate dialplan
dnsmgr dundi event fax features file
group hangup help http iax2 indication
local logger manager mgcp minivm mixmonitor
module moh no originate parkedcalls phoneprov
pri queue realtime reload rtcp rtp
say sip skinny stun timing udptl
ulimit unistim voicemail
localhost*CLI>
さらにこの後で、/etc/selinux/config を再編集し、設定を SELINUX=enforcing に戻して、
システムを再起動し、SELINUXを有効化しても、asterisk -r コマンドでasteriskに接続することができた。
<参考>
(‡ひかり電話対応)
・ ひかり電話対応
< http://voip-info.jp/index.php/%E3%81%B2%E3%81%8B%E3%82%8A%E9%9B%BB%E8%A9%B1%E5%AF%BE%E5%BF%9C > 2013年2月18日
(‡対応パッチ)
・ RT-200NE対応パッチ
< http://voip-info.jp/index.php/RT-200NE%E5%AF%BE%E5%BF%9C%E3%83%91%E3%83%83%E3%83%81 > 2013年2月18日
・RT-200NE
< http://voip-info.jp/index.php/RT-200NE > 2013年2月18日