ADSL全盛の2002年現在、いまや利用されることが少なくなったFAXモデム。しかし、Linuxサーバと組み合わせればFAXサーバとして活用することが可能だ。ADSLを利用して24時間稼働させているインターネットサーバであれば、常時FAX送受信も可能になるだろう。
導入する際のポイントは、シリアルポートを監視させるデーモンと、FAXを送受信するツール(viewfaxなど)を組み合わせて利用する点だ。まず最初に、シリアルポート監視のデーモン「mgetty」のインストールから設定までを解説しよう。
Red Hat Linuxであれば、レッドハットから関連するRPMパッケージが配布されている。このバイナリを利用するのが用意だろう。現在の環境にインストールされているかどうかは、次のようにして確認すればよい。表示されない場合には、システムCD-ROMから探すか、「SpeakEasy.Rpmfind.Net」サイトなどから手に入れればよい。
・RPMパッケージの確認からmgettyの設定
# rpm -qa|grep mge mgetty-viewfax-1.1.28-3 mgetty-sendfax-1.1.28-3 mgetty-voice-1.1.28-3 mgetty-1.1.28-3 |
mgettyは、前述のようにシリアルポートを監視するためのツール(デーモン)だ。FAXの送受信は、viewfax/sendfaxと呼ばれるツールが使われる。これらのツールも上記リスト上のRPMパッケージに含まれているので、別途インストールする必要はない。
ちなみに、インストール後にsendfaxというファイル名(ディレクトリ名)が含まれる物を確認すると、次のようになる。これで設定ファイルなどが含まれているディレクトリが「/etc/mgetty+sendfax」であることも確認できるだろう。
# locate sendfax /etc/logrotate.d/sendfax /etc/mgetty+sendfax /etc/mgetty+sendfax/faxspool.rules.sample /etc/mgetty+sendfax/dialin.config /etc/mgetty+sendfax/login.config /etc/mgetty+sendfax/mgetty.config /etc/mgetty+sendfax/faxheader /etc/mgetty+sendfax/faxrunq.config /etc/mgetty+sendfax/sendfax.config /etc/mgetty+sendfax/voice.conf /usr/lib/linuxconf/lib/fax_to_mgetty+sendfax.sh /usr/lib/mgetty+sendfax /usr/lib/mgetty+sendfax/cour25.pbm /usr/lib/mgetty+sendfax/cour25n.pbm /usr/lib/mgetty+sendfax/viewfax.tif /usr/sbin/sendfax /usr/share/man/man8/sendfax.8.gz |
次にシリアルポートが認識されているかを確認しよう。FAXモデムがCOM1ポートにつながっているのであれば「ttyS0」、COM2であれば「ttyS1」のデバイス名になっているはずだ。「モデム(TA)が認識しているのか調べたい」Tipsも参考にしてほしい。
# setserial -a /dev/ttyS0 /dev/modem, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test |
上記、別Tipsでも解説しているように「/dev/modem」をシンボリックリンクで作成しておくのがおすすめだ(もちろん/dev/ttyS0のままでもよく、自分が分かりやすい方を選べばよい)。mgettyの標準設定ファイル内では、modemとして標準設定されている個所も見られる。
# ln -s /dev/ttyS0 /dev/modem # chmod 660 /dev/modem # ls -l /dev/modem lrwxrwxrwx 1 root root 10 6月 22 01:05 /dev/modem -> /dev/ttyS0 |
mgettyのデーモン起動設定に移ろう。次のように、/etc/inittabファイル内に、終了したら再起動する「respawn」設定で指定する(最下行でよいだろう)。
# vi /etc/inittab
〜中略〜 s1:12345:respawn:/sbin/mgetty -a modem -R 60 -n 1 |
なお、上記のmgettyへ続くパラメータ指定は、デバイスファイルmodem(-a modem)、1回目の呼び出し後60秒以内(-R 45)に次のコールがあれば、2コールで着信(-n 1)を意味する。
次に、上記の設定を有効にするため次のように指定し、デーモンとして起動されているか確認しておこう。
# init q
# ps ax | grep mgetty |
次に、最低限2ファイルを確認しておけば設定完了となる。
# vi /etc/mgetty+sendfax/mgetty.config ログを見る >> # vi /etc/mgetty+sendfax/sendfax.config |
・viewfaxでFAXをコマンドライン表示&送信
viewfaxは、ファックス受信で作成されたG3形式のファイルを直接表示するためのツールだ。/var/spool/incoming/ディレクトリを覗けば、これまでの設定後に受信されたFAXデータが保存されているはずだ。
# cd /var/spool/incoming # viewfax [G3ファイル名] |
また、送信をするためには次のようにfaxspoolと呼ばれるツールを使う。さらにこのコマンドでは送信「予約」だけが行われるので、実際に送信を行うためにはfaxrunqコマンドでキューを送り出す必要がある。
ここでは、簡単に送受信を行うまでを解説しているが、実用的な環境のためにcronでfaxrunqを定期実行する、などのカスタマイズが必要になるだろう。
# faxspool 092-xxx-xxxx test.txt # faxrunq |
なお、「dfaxlow」、「dfaxhigh」と呼ばれるそれぞれのモジュールがghostscriptに組み込まれていなければ正常に送信ができない。次のように指定して、組み込まれているかを確認しておこう。
# ghostscript -h|grep dfax declj250 dfaxlow dfaxhigh djet500c dl2100 dnj650c eps9high eps9mid epson |
Copyright © ITmedia, Inc. All Rights Reserved.