FAX受信サーバ

社内のファイルサーバ(samba)にFAXモデムを取り付けて、FAX受信サーバを構築しました。
※FAX専用機の用紙が感熱ロール紙なので節約(ペーパーレス)という名目です。
以下の3つのRPMパッケージをインストールします。

mgetty-viewfax-1.1.21-4
mgetty-sendfax-1.1.21-4
mgetty-1.1.21-4

ファイルサーバのOSがVine 2.1.5なのでapt-getコマンドでインターネットからダウンロード・インストールします。
mgettyの設定ファイル/etc/mgetty+sendfax/mgetty.configを編集します。

debug 4
fax-id +81-23-622-xxxx
speed 38400
port ttyS0
switchbd 0
fax-only yes
ringback no
modem-type cls2

FAXモデムはサン電子のMS56KAFを使いました(余っていたやつです)。
Rockwell互換らしく”switchbd”の指定が必要でした。
次にFAX受信後の動作を決める/etc/mgetty+sendfax/new_faxを作成します。

#!/bin/sh
PATH="/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
HUP="$1"
SENDER="$2"
PAGES="$3"
shift 3
CONVERT="/usr/X11R6/bin/convert"
TIFFDIR="/home/FAX"
MAILTO="user@domain"
MAILER="/usr/sbin/sendmail"
# convert to Multi-Paged TIFF
BASENAME=`basename $1 .01`
TIFFPATH=$TIFFDIR/$BASENAME.tiff
case $BASENAME in
fn*) GEOMETRY="" ;; # find out resolution
*) GEOMETRY="-geometry 1728x2339!"
esac
files=
for i in $@
do
files="$files fax:$i"
done
$CONVERT -monochrome -size 1728x2339 $GEOMETRY $files $TIFFPATH
if [ $? -eq 0 ]; then
chown nobody:nobody $TIFFPATH
# rm -f /var/spool/fax/incoming/$BASENAME.*
fi
(
echo "Subject: fax received ($PAGES Pages)"
echo "To: $MAILTO"
echo ""
echo "see file \\fileserver\FAX\$BASENAME.tiff"
) | $MAILER $MAILTO
exit 0

↑は受信したFAXデータをImageMagickに付属のconvertツールでマルチページTIFFに変換したファイルをsambaでアクセスできるディレクトリに置き、メールでファイルの場所を知らせるスクリプトです。
PDFも作成できるのですが、セグメンテーションフォルトが発生するので止めました。

前の記事

heartbeat