DAHDI
Digium Asterisk Hardware Device Interface
Zaptelが商標の問題から使用できなくなったため、Asterisk 1.6からはZapではなくDahdiが使用される(Zaptelは1.4系で終了)。現在のAsterisk 1.4系ではZaptelとDAHDIのいずれも使用できるが、将来的に1.6に移行するのであれば、DAHDIを使用する環境に統一する方が良い。
初期正式版リリースはdahdi-2.0.0。DAHDI 2.0.0とDAHDI Tools 2.0.0に分けて提供される。
現在(2009/11)のリリースでは、DAHDI本体とDHADI Toolsが統合されたパッケージが用意されている。
目次
レイアウト
/ -- etc/ -- dahdi -- init.conf | modules | system.conf | +- dev/ -- dahdi -- Zapと同様、DAHDIデバイス
設定ファイル
/etc/asterisk/zapata.confは/etc/asterisk/chan_dahdi.confに変更。
モジュール
直接Zapを使用していたモジュールはDAHDIを使用するように変更される。該当モジュールは以下の通り。
- chan_zap.so -> chan_dahdi.so
- app_zapbarge.so -> app_dahdibarge.so
- app_zapras.so -> app_dahdiras.so
- app_zapscan.so -> app_dahdiscan.so
- codec_zap.so -> codec_dahdi.so
チャネル名
ZAP/で指定されていたチャネル名はすべてDAHDI/に変更される。
インストール
- DAHDI本体
- ソースを展開しmakeする。この際、Linuxのディストリビューションによってkernel-sourceやkernel-develが必要となるので注意。
- makeが完了したならばmake installを実行するだけ。make install中にボード用ファームウェアをインターネット経由で落としに行こうとするので注意。
- DAHDI-Tools
- 従来まで同梱されていた設定ファイルや起動スクリプトやユーティリティは、こちらに含まれるようになった。
- make,make install,make configを行う。
- make menuselectも使えるので必要なものだけコンパイルしてもよい。
参考情報
ZaptelやDAHDIでLinuxカーネルメッセージに以下が大量に出力される場合の対処方法。
rtc: lost some interrupts at 1024Hz.
XenのDmain-0等で発生する模様。動作そのものは一見問題ないように見えるが・・・
RTCの割り込みが落ちているという意味なので、RTC割り込みを使わなければよい。DAHDIの場合ならば drivers/dahdi/dahdi_dummy.c に以下の一行を追加する。
#define USE_HIGHRESTIMER #else #define USE_RTC #endif #else #if 0 #define USE_RTC #endif #endif #endif <--これの後に #undef USE_RTC <--この1行を追加
これによりmakeしなおすと、dahdi_dummyはRTCを使用せず、kernel tickを使用するようになるので、先ほどのメッセージは出なくなる。