「DAHDIインストール」の版間の差分
(→参考情報) |
細 (「DAHDIインストール」を保護しました ([編集=管理者のみ許可] (無期限) [移動=管理者のみ許可] (無期限))) |
(3人の利用者による、間の4版が非表示) | |
(相違点なし)
|
2017年11月18日 (土) 17:51時点における最新版
DAHDIのインストール手順
Asterisk 1.4の現在バージョンではZaptel,DHADIいずれも使用可能。1.6からはDAHDIのみ使用可能。
目次
セットパッケージの提供
現在、DAHDIとDAHDI Toolをセットにしたものも提供されていますので、個別にダウンロードせずに、こちらを使用してもかまいません。
http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/
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
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を使用しない場合
注:DAHDI Linux 2.2.0では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は再インストールする必要はありません。
Asterisk 1.4での留意点
Asterisk 1.4の後期ではasterisk.confにdahdichannameオプションが追加されています。設定値はyesまたはnoで、デフォルトはyesのようです。
- dahdichanname = no の場合
*CLI> core show channeltypes Type Description Devicestate Indications Transfer ---------- ----------- ----------- ----------- -------- IAX2 Inter Asterisk eXchange Driver (Ver 2) yes yes yes Local Local Proxy Channel Driver yes yes no Zap DAHDI Telephony Driver no yes no SIP Session Initiation Protocol (SIP) yes yes yes Agent Call Agent Proxy Channel yes yes no ---------- 5 channel drivers registered.
- dahdichanname = yes の場合
*CLI> core show channeltypes Type Description Devicestate Indications Transfer ---------- ----------- ----------- ----------- -------- IAX2 Inter Asterisk eXchange Driver (Ver 2) yes yes yes Local Local Proxy Channel Driver yes yes no DAHDI DAHDI Telephony Driver no yes no SIP Session Initiation Protocol (SIP) yes yes yes Agent Call Agent Proxy Channel yes yes no ---------- 5 channel drivers registered.
dahdichannameオプションはasterisk.confの[options]セクションに記述します。上記の結果からわかるようにnoが指定されている場合には、チャネル名が"Zap"にすり替えが行われます。このためDAHDIを使用していてもextensionsを書き換えず動かすことができます。
ただしこのオプション指定はAsterisk 1.6では廃止されているようですので、Asterisk 1.6に移行する際にはextenのテクノロジ書き換えを忘れないようにしてください。
参考情報
Digiumの回線インタフェース類を使用しない場合、DAHDIの回線インタフェース向けモジュールは必要ありません。Zaptel同様にdahdi_dummyのみあればMeetMeとIAXトランキングが動作します。このため不必要なモジュールをコンパイル/インストールせずにDAHDIを使う場合には以下のようにします。
玄箱ではどのみちdahdi_dummyしか使えないので、余計なものをコンパイル&インストールするのは無駄です。必要なものだけをコンパイルするには以下のように行います。
linux/drivers/dahdi/Kbuild を編集します。要らないものをコメントアウトします。
obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI) += dahdi.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DUMMY) += dahdi_dummy.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC) += dahdi_dynamic.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_DYNAMIC_LOC) += dahdi_dynamic_loc.o ~略~ #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TOR2) += tor2.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_PCIRADIO) += pciradio.o #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_XPP) += xpp/ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_JPAH) += dahdi_echocan_jpah.o obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE) += dahdi_echocan_sec.o
この状態でmake installすると最低限のモジュールだけでDAHDIを動かすことができます。