Zaptel-1.2の問題点
mixさんのご指摘で判明しましたが、zaptel-1.2系は日本向けの処理部分のチェックがなされておらず、CFLAGSに-DJAPANを付けるとコンパイルが通りません。
とりあえずの逃げとしては、-DJAPANを付けないでコンパイルしてください。
原因については、一応、ソースを追ってみたところ、どうも従来のwcfxo部分をwctdmで吸収しなおしたようなのですが、これが日本対応部分の変更を忘れているようで以下の方法で修正すれば-DJAPANを付けてコンパイルが通ります。ただし、実際の挙動についてはまだ検証していませんのでご注意ください。皆さんからの、ご報告をお待ちしております。
-----wctdm.c 325行目付近 int battery; int lastpol; int polarity; int polaritydebounce; #ifdef JAPAN <--+ int ohdebounce; | 追加 #endif <--+ } fxo; 907行目付近 wc->mod[card].fxo.battery = 0; #ifdef JAPAN if ((!wc->mod[card].fxo.ohdebounce) && wc->mod[card].fxo.offhook) { (この行を修正する) -----wctdm24xxp.c 343行目付近 int polaritydebounce; #ifdef JAPAN <--+ int ohdebounce; | 追加 #endif <--+ } fxo; 1140行目付近 #ifdef JAPAN if ((!wc->mods[card].fxo.ohdebounce) && wc->mods[card].fxo.offhook) { (この行を修正する)
zaptel-1.2.2 の -DJAPAN 対応パッチ
zaptel-1.2のソースコードの修正と Makefile の -DJAPAN の追加を patch ファイル zaptel-1.2.2_japan.patch.gz にまとめました。
パッチの当て方は、次の通りです。
1) どこか適当なディレクトリ (たとえば、/usr/src) で zaptel-1.2.2.tar.gz を解凍
cd /usr/src tar xzf zaptel-1.2.2.tar.gz2) zaptel-1.2.2 のディレクトリに移動 cd zaptel-1.2.23) パッチ zaptel-1.2.2_japan.patch.gz を当てる
gunzip (パス)/zaptel-1.2.2_japan.patch.gz patch -p1 < (パス)/zaptel-1.2.2_japan.patch または、 zcat (パス)/zaptel-1.2.2_japan.patch.gz | patch -p1 *(注) (パス) の部分は、patch ファイルが置かれたディレクトリを指定します。
あとは、普通に make します。
make linux26 (Linux kernel version 2.6.x の場合)