Linuxmaniaトップ活用ガイドFAXモデムマシンとして使おう

Linuxmania:活用ガイド


■ FAXモデムマシンとして使おう(上級者向け)


ここでは、Linuxmaniaマシンを使ってFAXモデムマシンとして使うための手順を
説明しています。上級者向けです。


手順


1. まずLinuxmaniaに備え付ける内蔵FAXモデル機器を用意します。
   PCI接続用の内蔵モデルになります。
   市販のものでかまいませんが、Linuxmania パーツShopで購入すると安心です。


2. FAXモデムをマシンに取り付けます。


3. FAXモデム用のドライバを用意します。

まず、# lspci コマンドでモデムCHIPを特定します。
(11c1:044c、Lucent Technology製のようなメッセージを確認します。

# martian ドライバを用意



*http://martian.barrelsoutofbond.org/

*http://www.barrelsoutofbond.org/downloads/martian/martian-full-20080617.tar.gz
* (ビルドは普通に make all でOK)

# dkms、dkms.conf を用意 する必要があります。(dkms パッケージはUbuntu公式リポジトリに収録されています。 モジュールを各カーネルに合わせて簡易な形でビルドを行うためのパッケージです)

* [dkms.conf (Ubuntu9.04用)]

PACKAGE_NAME="martian-full" 
PACKAGE_VERSION="20080625" 

BUILT_MODULE_NAME="martian_dev" 
BUILT_MODULE_LOCATION="kmodule" 
DEST_MODULE_LOCATION="/extra" 
MODULES_CONF_ALIAS_TYPE="ttySM" 

MAKE="make all KERNDIR=/lib/modules/$kernelver SYSSRC=$kernel_source_dir" 
CLEAN="make clean" 

REMAKE_INITRD="yes" 
AUTOINSTALL="yes" 

i. /usr/src 下に martian ソースを展開
ii. martian ソースディレクトリ下に dkms.conf をコピー
iii. dkms add、dkms build、dkms install コマンドを実行

# martian_modem のインストール

i. martian_modem を make all、make install
ii. martian スクリプトを /etc/init.d 下にコピー、sysv-rc-conf でサービス登録しておきます。

以下のように、マシンが起動すれば、自動的にモデム認識させます。

$ sudo cp -p /usr/src/martin-full-200806??/scripts/martin /etc/init.d 
$ sudo sysv-rc-conf --level 2345 martin on 


4. モデムのドライバ設定が終わるとFAXクライアントのアプリケーションをインストールします。


i) efax(CUI)、efax-gtk(GUI) のインストール をします。

$ sudo apt-get install efax efax-gtk 

ii) efax-gtk の設定

* [File]→[Settings] で設定
* [Identity] 自分の名前と電話番号を設定
* [Modem]

o [Serial Device] に 「ttySM0」
o [Modem Class] を 「Class 1」
o [Dial Mode] を トーン回線なら「Tone」、パルス回線なら「Pulse」

* [Logging] で [Log File] を設定 (ホームディレクトリ下に作られる)
* ※事前に/dev/ttySM0を efax-gtkのユーザが読み書き可能な状態にしておく必要があります。



5. FAX受信サービスを立ち上げます。


i) efax(CUI) の設定を行います。

a) /etc/efax.rc を編集します。

DEV=ttySM0 # モデムデバイス名
FROM="+81 1 2345 6789" # 自分の電話番号
NAME="John Doe" # 自分の名前
DIALPREFIX="T" # トーン回線なら「T」、パルス回線なら「P」
TELCVT='sed -e s/+81/0/' # 国際局番を日本の局番に修正
CLASSINIT="-o1" # CLASS1モデムであることを明示的に指定

CONSOLE=$LOG/efax-console.log # コンソールログをログファイルに記録

ANSFNAME="%Y%m%d-%H%M%S" # 受信ファイル名に年も含める
FAXMGR=efax # 受信通知メールを受け取るアカウント
# FAXMGR="faxadmin@example.co.jp"    # 電子メールで通知する場合
# SMTPSERVER="mail.example.co.jp:25" # 外部メールサーバを利用する場合
NOTIFY=〜 # FAX受信時に実行するコマンド。(FAX受信時に変数の内容が eval される)
ANSRINGS=1 # 何回ベルが鳴ったらFAXを受信開始するか
OWNER="efax.dialout" # OWNERを指定すると、モデムデバイスを 所有者変更chown する
MODE="660" # MODE を指定すると、モデムデバイスを chmodする 


ii) モデムポートで efax を24時間待ち受けさせます。

a) /etc/event.d/ttySM0 ファイルを作成する。
 * [/etc/event.d/ttySM0]

# ttySM0 - fax answer
# 
# This service maintains a getty on ttySM0 from the point the system is # started until it is shut down again. start on stopped rc2 start on stopped rc3 start on stopped rc4 start on stopped rc5 stop on runlevel 0 stop on runlevel 1 stop on runlevel 6 respawn exec fax answer

* ※inittab で respawn 設定するのと同様の意味を持ちます。


iii)FAX受信時にメールで通知をする場合は以下を行います。

a) メールサーバとして masqmail、メールクライアントとして heirloom-mailx を

 インストールします。

$ sudo apt-get install masqmail heirloom-mailx

* ※masqmail は難しい設定が不要なローカル専用MTAで、sendmail の代わりに使えます。
* ※heirloom-mailx は外部のメールサーバと直接交信できるmailx コマンドです。
   /etc/masqmail/masqmail.conf の alias_file 行、およびalias_local_caseless 行を
   コメントアウト。

b) /etc/efax.rc のNOTIFY 行を変更して、受信したFAXをPDFファイルとしてメールに

 添付する設定をします。

NOTIFY='PAGES=`for i in $FILES;do if [ -r "$i" ];then echo -n "$i ";fi; done`;
for p in $PAGES; do efix -o ps $p | ps2pdf - "/tmp/$p.pdf" ; done;
USESMTP=`if [ -n "$SMTPSERVER" ]; then echo "-S smtp=$SMTPSERVER "; fi`;
ATTACH=`for p in $PAGES; do echo -n "-a /tmp/$p.pdf "; done`;
mailx -s "fax/message from $REMID:$PAGES" $ATTACH $USESMTP $FAXMGR < $f;
for p in $PAGES; do rm -f "/tmp/$p.pdf"; done' 



6. これにて準備は完了しました。

以下にFAXサービスの運用方法についてお話します。
以下はコマンドベースを中心にお話しますが、efax-gtk というグラフィカルツールがありますので、
比較的簡単に操作可能です。

a)FAXがかかって来た時に受信対応するには以下のコマンドでサービスを
   起動しておくことが必要です。

$ sudo fax start


b)受信サービスを停止するのは以下のコマンドです。

$ sudo fax stop


c)FAX送信は以下以下のように行います。

送信するファイルはPostScript形式ではなければなりません。

   [参考]PDFファイルをPostScript形式に変換する方法
         AdobeReader と poppler-data パッケージが必要です。

$ sudo apt-get install poppler-data    でインストールし、
$ pdftops test.pdf    でファイル形式変換します。

$ sudo fax send 0332670594 AA.ps

電話番号をハイフンなしで指定し、半角スペースをあけて送信ファイル名を指定します。

  [注意]FAX送信コマンドするときには受信サービスをfax stopで停止しなければなりません。
        送信完了後、fax startによる受信サービスを再開します。




  さて、上記のコマンドベースだけではまだまだ実用で使うには大変です。

  そこで一つのソリューションとして、送信フォルダを用意しておき、そこに置いたPDFを5分に1回
送信するというバッチプログラム(cronで)を動かすことを提案します。ファイル名は電話番号を付けます。
その送信フォルダをsambaで共有フォルダ化しておけば、社内のWindowsやMacマシンからでも送信したい
ファイルを共有フォルダに置いておけば自動的に送信されることになります。
  同様に受信フォルダも共有フォルダ化しておけば社内のあらゆる端末から受信データを取得することも
可能です。


  さらに細かいチューニングや設定を行いたい、ソリューションを丸ごと提供して欲しいという方は、
「Linuxmania FAXソリューション」で個別対応が可能です。




[作成日 2010/5/18]