Asteriskのインストール Hatena Bookmark

出典: Asterisk works Wiki

目次

Asteriskとは?

AsteriskはIP-PBXソフトウェアである。 高価なPBX機器の機能をソフトウェアで実現する。 しかもGPLライセンスのオープンソースソフトウェアで提供されている。

ソースの入手

Asteriskとその関連モジュールはftp://ftp1.digium.com/pub/からダウンロードできます。 Asteriskにはzaptelとlibpriという2つのライブラリがあったほうがよいので(無くても一部機能が使えなくなるだけ)これもダウンロードします。この2つも同じところからダウンロード可能です。

2006/12時点での安定版の最新モジュールは次の通りです。

zaptelzaptel-1.2.11.tar.gz
libprilibpri-1.2.4.tar.gz
Asteriskasterisk-1.2.13.tar.gz

インストール

インストールはzaptel、libpri、Asteriskの順に行います。

zaptelのインストール

カーネルの開発パッケージの確認

zaptelのインストールにはkernelの開発パッケージが必要です。 rpmコマンドで確認する。

# rpm -qa |grep kernel
# kernel-xen-2.6.18-1.2798.fc6
# kernel-xen-2.6.18-1.2849.fc6
# kernel-xen-devel-2.6.18-1.2849.fc6  <==これが必要
# kernel-headers-2.6.18-1.2849.fc6

あれば、次に進みます。無ければyum等を使ってインストールしましょう。 開発パッケージでなく、カーネルソースをインストールしてもいいです。

zaptelのインストール

zaptelのインストールは簡単です。

# tar zxvf zaptel-1.2.11.tar.gz
# cd zaptel-1.2.11
# make
# make install
# make config

これだけです。

libpriのインストール

libpriのインストールも簡単です。

# tar zxvf libpri-1.2.4.tar.gz
# cd libpri-1.2.4
# make
# make install

これだけです。

Asteriskのインストール

いよいよAsteriskのインストールです。ここでFedoraCore6にインストールするときにはちょっと注意が必要です。asterisk-1.2.13.tar.gzには不具合があってそのままではmake出来ません。 Asterisk-DEVの[[メーリングリストに解決方法>http://www.mail-archive.com/asterisk-dev@lists.digium.com/msg24451.html]]が載っていました。解決するにはソースを書き換える必要があります。

# tar zxvf asterisk-1.2.13.tar.gz
# cd asterisk-1.2.13
# cd channels
# vi chan_phone.c

chan_phone.cを開いたら、linux/compiler.hをインクルードしている行をコメントアウトします。 その後はmake、make installするだけです。

# cd ../
# make
# make install

以上でAsteriskのインストールはおしまいです。 設定ファイルのサンプルや、ドキュメントが必要なら続けて次のコマンドを実行します。

# make samples  <=サンプル設定の生成
# make progdocs <=ドキュメントの生成

Asteriskの設定

Asteriskの設定ファイルは/etc/asterisk/にあります。 Asteriskの設定ファイルではセミコロン;がコメント記号となります。#は電話番号で利用されるため気をつけましょう。 ここでは最低限、SIPで接続するのに必要な設定を紹介します。筆者(森下)が勉強不足なため詳しくは解説できません。 /etc/asterisk/ディレクトリにはたくさん設定ファイルがありますが、編集するのはextensions.confとsip.confのみです。 この設定例では3台のSIPクライアントを登録します。それぞれのSIP番号は5001、5002、5003です。

extensions.confの設定

[globals]セクションに次の行を追加してください。

PHONE1NM=SIP/5001
PHONE2NM=SIP/5002
PHONE3NM=SIP/5003

次に[test-local]というセクションを作って以下のように設定します。

[test-local]

exten => 5001, 1, Dial(${PHONE1NM},20,Ttm)
exten => 5001, 2, Hangup

exten => 5002, 1, Dial(${PHONE2NM},20,Ttm)
exten => 5002, 2, Hangup

exten => 5003, 1, Dial(${PHONE3NM},20,Ttm)
exten => 5003, 2, Hangup

sip.confの設定

番号5001に対応したSIPクライアントの設定は次の通りです。このまま、sip.confに追記します。

[5001]
type=friend
secret=pc5001
aith=md5
nat=yes
host=dynamic
reinvite=no
canreinvite=no
qualify=1000
dtmfmode=inband
callerid="PC 1" <5001>
disallow=all
allow=ulaw
allow=alaw
context=test-local

[5001]がextensions.confに[globals]に設定した番号に対応することを表しているようです。 secretの値がこのクライアントの認証パスワードとなります。 calleridがこのSIPクライアントの表示名、 contextの値はたぶん、extensions.confに追加した[test-local]セクションに対応していることを現しています。 5002、5003の分も5001の部分を書き換えて追記します。

Asteriskの起動・停止

起動は次のコマンドを実行します。

# /usr/sbin/asterisk -vvv &

停止は次のコマンドです。

# /usr/sbin/asterisk -r
#CLI> stop now

ソフトフォンで接続する

Tools/X-Liteで説明します。

個人用ツール