Zaptel-1.2の問題点

2010年5月28日 (金) 22:46時点におけるVm-user (トーク | 投稿記録)による版 (122.1.17.176 (会話) による編集を Takahashi による版へと差し戻しました。)

 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 の場合)