DAHDIインストール

提供: VoIP-Info.jp
2009年2月3日 (火) 17:07時点におけるTakahashi (トーク | 投稿記録)による版 (udevの調整)
移動先: 案内検索

DAHDIのインストール手順
Asterisk 1.4の現在バージョンではZaptel,DHADIいずれも使用可能。1.6からはDAHDIのみ使用可能。

DAHDI+CentOS 5.2

CentOS 5.2の基本インストールはサーバインストールの場合です。
インストール終了後は yum update でシステムを更新しておいてください。

追加パッケージ

以下のパッケージをCentOSに追加します。

# yum install gcc gcc+c++ kernel-devel ncurses-devel

DAHDIの入手と展開

DAHDIは http://downloads.digium.com/pub/telephony/dahdi-linux/ からダウンロードできます。

# wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-2.1.0.3.tar.gz
# tar zxvf dahdi-linux-2.1.0.3.tar.gz
# cd dahdi-linux-2.1.0.3

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

パッケージが揃っていればmakeするだけです。
make install中にDigiumボードのファームウェアをダウンロードしますのでネットワーク接続が必要です。

# make
# make install

DAHDI Toolsの入手と展開

Zptelでは同梱されていましたが、DHADIからはドライバそのものとToolsに分けて配布されています。
dahdi-toolsは http://downloads.digium.com/pub/telephony/dahdi-tools/ からダウンロードできます。

# wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-2.1.0.2.tar.gz
# tar zxvf dahdi-tools-2.1.0.2.tar.gz
# cd dahdi-tools-2.1.0.2.tar.gz

DAHDI Toolsのコンパイルとインストール

configure,makeを行います。なお、make menuselectも使用できます。

# ./configure
# make

コンパイルが完了したらmake installとconfigを行っておきます。

# make config
# make install

設定ファイルの調整

DAHDIの設定ファイルは /etc/dahdi に置かれます。ロードするモジュールを設定するには modules ファイルを編集します。例えばdahdi_dummyだけしか使用しないのであれば以下のようにdahdI_dummyを追加します。

# Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
# Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
# Digium TE220: PCI-Express dual-port T1/E1/J1
# Digium TE420: PCI-Express quad-port T1/E1/J1
#wct4xxp                                             <-- Digiumのカードを使ってなければコメントアウト

# Digium TE120P: PCI single-port T1/E1/J1
# Digium TE121: PCI-Express single-port T1/E1/J1
# Digium TE122: PCI single-port T1/E1/J1
#wcte12xp                                           <-- 同様にコメントアウト
~中略~
# Digium TC400B: G729 / G723 Transcoding Engine
#wctc4xxp

# Xorcom Astribank Devices
#xpp_usb

# DAHDI Dummy                                       <--追加
dahdi_dummy                                         <--追加

dahdi_dummyはその名の通り、ztdummy同様にタイミングだけを生成するモジュールです。Digiumのカード類などのハードウェアを実装していなければ、このdahdi_dummyだけロードすればよく、他のモジュールはロードする必要はありません。
なお、DAHDIのスタート時に、ハードが実装されていなければ自動的にdahdi_dummyがロードされますが、ここでは明示的に設定しています。

ロードのテスト

インストール、設定が完了したら起動してテストしてみます。

# /etc/init.d/dahdi start
Loading DAHDI hardware modules:
 dahdi_dummy:                                             [  OK  ]

Running dahdi_cfg:                                        [  OK  ]

lsmodでロードを確認します。

Module                  Size  Used by
dahdi_dummy             9384  0
dahdi                 190600  1 dahdi_dummy
crc_ccitt               6337  1 dahdi

上記のようにロードされるはずです。
確認できたなら一旦、DAHDIを止めて次のステップに移ります。

# /etc/init.d/dahdi stop

udevの調整

Asteriskをユーザ名asteriskで起動する場合、DAHDIのパーミッションが問題となりますので、ここでudevを調整しておきます。
以下のコマンドでユーザとグループを登録しておきます。

# groupadd -g 5060 asterisk
# adduser -g 5060 -u 5060 -d /var/lib/asterisk -s /sbin/nologin asterisk

/etc/udev/rules.d に dahdi.rules ファイルがインストールされているはずなので、これを以下のように名前を変更します。

# cd /etc/udev/rules.d
# mv dahdi-rules 99-dahdi.rules

DAHDIを再度起動してオーナとグループを確認します。

# /etc/init.d/dahdi start
Loading DAHDI hardware modules:
 dahdi_dummy:                                             [  OK  ]

Running dahdi_cfg:                                        [  OK  ]
# ls -l /dev/dahdi/
total 0
crw-rw---- 1 asterisk asterisk 196, 254 Feb  3 16:58 channel
crw-rw---- 1 asterisk asterisk 196,   0 Feb  3 16:58 ctl
crw-rw---- 1 asterisk asterisk 196, 255 Feb  3 16:58 pseudo
crw-rw---- 1 asterisk asterisk 196, 253 Feb  3 16:58 timer

RTCを使用しない場合

Zaptelと同じですが、dahdi_dummyでRTCを使用したくない場合にはソースを調整します。
dahdi_dummyは drivers/dahdi/ の下の dahdi_dummy.c です。

#define USE_RTC
#endif
#endif
#endif

#undef USE_RTC              <--追加します

#include <linux/kernel.h>
#include <linux/errno.h>

ソースを変更したならば再度、make,make installを行います。DAHDI Toolsは再インストールする必要はありません。