Asterisk Timer

2007年4月15日 (日) 22:42時点におけるTakahashi (トーク | 投稿記録)による版 (新しいページ: 'Asteriskを動作させる上で、ちょっとやっかいと思われるのがタイマーです。Asteriskの一部の機能は動作タイミングをZaptelから取得し...')
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

Asteriskを動作させる上で、ちょっとやっかいと思われるのがタイマーです。Asteriskの一部の機能は動作タイミングをZaptelから取得していたり、Zaptelの仮想デバイスを用いているためZaptelが正しく動作する、すなわちZaptelが動作できるタイミングソースが無いと動かない機能があります。Zaptelを必要とするのはAsteriskのアプリケーションの中でも、MeetMeとIAXトランキングのふたつだけですので、もしこれら機能を使わなければztdummyやzaptelをインストールする必要はありません。

ztdmmuy

通常、zaptelはDigiumのハードウェア(TDM400Pなど)からタイミング信号を取得して動作しています。このためzaptelはDigium製のハードが無いと動作しません。
この代替として組み込むのがztdummyです。ztdummyはタイミング信号を得るために、Linuxカーネルが2.4の場合にはUSB-UHCIドライバを使用します。つまりカーネル2.4環境ではUSB-UHCIが組み込まれていないとztdummyは動作しません。
ところがマザーボードによってはUSB-OHCIドライバを使うもの(NECのUSBホストコントローラを使うもの)があり、この環境ではztdummyが動作しないという問題があります。残念ながらUSB-UHCIとUSB-OHCIはドライバの構造が全く異なるため、USB-OHCIで動作するztdummyは作ることができない模様です。

代替手段

USB-UHCIが使えない環境では以下の手段でタイマーを使用することができます。

  • Kernel 2.6系のLinuxを使う
Kernel 2.6系ではカーネル内蔵タイマーの精度が向上しているため、これを使ってztdummyを動かすことができます。現バージョンのzaptelはKernel 2.6に対応しており、コンパイル時にカーネルバージョンを判断することで、2.6系ではカーネル内蔵タイマーを使うようになっています。このためKernel 2.6系ではzaptel+ztdummyが特になにもしなくても動くはずです。多くのLinuxディストリビューションは現在、Kenrel 2.6ですから、この方法が一番簡単でしょう。
  • Kernel 2.4系の場合
Linuxのリアルタイムクロック(RTC)を使う手段が存在します。ただし、カーネルの再構築が必要で、RTCサポートオプションをオフにしたカーネルを使う必要があります。
この場合にはzaptelとzaprtcと呼ばれるRTCサポートモジュールを使います。zaprtcはここからダウンロードできます。zaprtcを使う場合にはztdummyは必要ありません。