(無償) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

投げ銭

★投げ銭をしてくださるなら、下記のPayPal専用リンクからできます。m(_ _)m ★

2013年2月20日水曜日

CentOS6.3 x86_64bit minimalをインストールしたマシンにAsteriskをソースからインストールした

更新 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"
ONBOOT="yes"
ネットワークサービスを再起動して、DHCPでアドレスを取得する。
# service network restart


3、システムをアップデートした
#yum update
4、念のためシステムを再起動しておく
# 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、準備作業
# ./configure
(省略)
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 :
5、コンパイル
# 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として作成し直す
#SELINUX=enforcing
SELINUX=disabled
2、システムを再起動した
# reboot
3、SELINUX無効化後に、asteriskを起動して、再度、CLIでasteriskに接続を試した
# service asterisk start
# 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>
無事に、asteriskに接続することができた。

さらにこの後で、/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日

投げ銭

★投げ銭をしてくださるなら、下記のPayPal専用リンクからできます。m(_ _)m ★