「DAHDIインストール」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(設定ファイルの調整)
(「DAHDIインストール」を保護しました ([編集=管理者のみ許可] (無期限) [移動=管理者のみ許可] (無期限)))
 
(8人の利用者による、間の19版が非表示)
1行目: 1行目:
 
DAHDIのインストール手順<br>
 
DAHDIのインストール手順<br>
 
Asterisk 1.4の現在バージョンではZaptel,DHADIいずれも使用可能。1.6からはDAHDIのみ使用可能。<br>
 
Asterisk 1.4の現在バージョンではZaptel,DHADIいずれも使用可能。1.6からはDAHDIのみ使用可能。<br>
 +
==セットパッケージの提供==
 +
現在、DAHDIとDAHDI Toolをセットにしたものも提供されていますので、個別にダウンロードせずに、こちらを使用してもかまいません。<br>
 +
http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/
 
==DAHDI+CentOS 5.2==
 
==DAHDI+CentOS 5.2==
 
CentOS 5.2の基本インストールはサーバインストールの場合です。<br>
 
CentOS 5.2の基本インストールはサーバインストールの場合です。<br>
 
インストール終了後は yum update でシステムを更新しておいてください。<br>
 
インストール終了後は yum update でシステムを更新しておいてください。<br>
 
===追加パッケージ===
 
===追加パッケージ===
以下のパッケージをCentOSに追加します。<br>
+
以下のパッケージをCentOSに追加します。すでに追加してある場合には必要ありません。<br>
  yum install gcc gcc+c++ kernel-devel ncurses-devel
+
  # yum install gcc gcc-c++ kernel-devel ncurses-devel
 +
 
 
===DAHDIの入手と展開===
 
===DAHDIの入手と展開===
 
DAHDIは http://downloads.digium.com/pub/telephony/dahdi-linux/ からダウンロードできます。
 
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
+
  # 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
+
  # tar zxvf dahdi-linux-2.1.0.3.tar.gz
  cd dahdi-linux-2.1.0.3
+
  # cd dahdi-linux-2.1.0.3
 
===DAHDIのコンパイルとインストール===
 
===DAHDIのコンパイルとインストール===
 
パッケージが揃っていればmakeするだけです。<br>
 
パッケージが揃っていればmakeするだけです。<br>
 
make install中にDigiumボードのファームウェアをダウンロードしますのでネットワーク接続が必要です。<br>
 
make install中にDigiumボードのファームウェアをダウンロードしますのでネットワーク接続が必要です。<br>
  make
+
  # make
  make install
+
  # make install
 
===DAHDI Toolsの入手と展開===
 
===DAHDI Toolsの入手と展開===
 
Zptelでは同梱されていましたが、DHADIからはドライバそのものとToolsに分けて配布されています。<br>
 
Zptelでは同梱されていましたが、DHADIからはドライバそのものとToolsに分けて配布されています。<br>
 
dahdi-toolsは http://downloads.digium.com/pub/telephony/dahdi-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
+
  # 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
+
  # tar zxvf dahdi-tools-2.1.0.2.tar.gz
  cd dahdi-tools-2.1.0.2.tar.gz
+
  # cd dahdi-tools-2.1.0.2
 +
 
 
===DAHDI Toolsのコンパイルとインストール===
 
===DAHDI Toolsのコンパイルとインストール===
 
configure,makeを行います。なお、make menuselectも使用できます。
 
configure,makeを行います。なお、make menuselectも使用できます。
  ./configure
+
  # ./configure
  make
+
  # make
 
コンパイルが完了したらmake installとconfigを行っておきます。
 
コンパイルが完了したらmake installとconfigを行っておきます。
  make config
+
  # make config
  make install
+
  # make install
 
===設定ファイルの調整===
 
===設定ファイルの調整===
DAHDIの設定ファイルは /etc/dahdi に置かれます。ロードするモジュールを設定するには modules ファイルを編集します。例えばdahdi_dummyだけしか使用しないのであれば以下のようにdahdI_dummyを追加します。
+
DAHDIの設定ファイルは /etc/dahdi に置かれます。ロードするモジュールを設定するには modules ファイルを編集します。例えばdahdi_dummyだけしか使用しないのであれば以下のようにdahdi_dummyを追加します。
 
  # Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
 
  # Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
 
  # Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
 
  # Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
53行目: 58行目:
 
dahdi_dummyはその名の通り、ztdummy同様にタイミングだけを生成するモジュールです。Digiumのカード類などのハードウェアを実装していなければ、このdahdi_dummyだけロードすればよく、他のモジュールはロードする必要はありません。<br>
 
dahdi_dummyはその名の通り、ztdummy同様にタイミングだけを生成するモジュールです。Digiumのカード類などのハードウェアを実装していなければ、このdahdi_dummyだけロードすればよく、他のモジュールはロードする必要はありません。<br>
 
なお、DAHDIのスタート時に、ハードが実装されていなければ自動的にdahdi_dummyがロードされますが、ここでは明示的に設定しています。<br>
 
なお、DAHDIのスタート時に、ハードが実装されていなければ自動的にdahdi_dummyがロードされますが、ここでは明示的に設定しています。<br>
 +
 
===ロードのテスト===
 
===ロードのテスト===
 
インストール、設定が完了したら起動してテストしてみます。<br>
 
インストール、設定が完了したら起動してテストしてみます。<br>
  /etc/init.d/dahdi start
+
  # /etc/init.d/dahdi start
 
  Loading DAHDI hardware modules:
 
  Loading DAHDI hardware modules:
 
   dahdi_dummy:                                            [  OK  ]
 
   dahdi_dummy:                                            [  OK  ]
65行目: 71行目:
 
  dahdi                190600  1 dahdi_dummy
 
  dahdi                190600  1 dahdi_dummy
 
  crc_ccitt              6337  1 dahdi
 
  crc_ccitt              6337  1 dahdi
上記のようにロードされるはずです。
+
上記のようにロードされるはずです。<br>
 +
確認できたなら一旦、DAHDIを止めて次のステップに移ります。<br>
 +
# /etc/init.d/dahdi stop
 +
===udevの調整===
 +
Asteriskをユーザ名asteriskで起動する場合、DAHDIのパーミッションが問題となりますので、ここでudevを調整しておきます。<br>
 +
以下のコマンドでユーザとグループを登録しておきます。<br>
 +
# 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を使用したくない場合にはソースを調整します。<br>
 +
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を書き換えず動かすことができます。<br>
 +
ただしこのオプション指定はAsterisk 1.6では廃止されているようですので、Asterisk 1.6に移行する際にはextenのテクノロジ書き換えを忘れないようにしてください。<br>
 +
==参考情報==
 +
Digiumの回線インタフェース類を使用しない場合、DAHDIの回線インタフェース向けモジュールは必要ありません。Zaptel同様にdahdi_dummyのみあればMeetMeとIAXトランキングが動作します。このため不必要なモジュールをコンパイル/インストールせずにDAHDIを使う場合には以下のようにします。<br>
 +
玄箱ではどのみちdahdi_dummyしか使えないので、余計なものをコンパイル&インストールするのは無駄です。必要なものだけをコンパイルするには以下のように行います。<br>
 +
<br>
 +
linux/drivers/dahdi/Kbuild を編集します。要らないものをコメントアウトします。<br>
 +
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を動かすことができます。

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を動かすことができます。