RaspberryPiにインストールするソフトウェアの、最後のピースはFAXサーバーです。
IAXmodemとの連携があるので、少々面倒です。
HylaFaxのインストール
sudo apt-get install hylafax-server hylafax-client
HylaFaxのコンフィギュレーション
モデムの自動コンフィギュレーションは、IAXmodemが応答せず処理がハングアップするため、これを行わず、それ以外はデフォルト値とします。
sudo faxsetup
[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start paging protocol: no
Are these ok [yes]? ⏎
Should I restart the HylaFAX server processes [yes]? ⏎
Do you want to run faxaddmodem to configure a modem [yes] no⏎
モデムの自動コンフィギュレーションを行なわなかったため、手動で定義します。
ファイルパス:/etc/hylafax/config.ttyIAX
設定内容:
サンプルファイル(SourceForgeサイトのiaxmodemプロジェクト)を参考に作成します。
CountryCode: 81
AreaCode: <自局の市外局番:前ゼロなし>
FAXNumber: +81.<自局の電話番号:前ゼロなし、区切り記号は".">
LongDistancePrefix: 0
InternationalPrefix: 010
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0666
LogFileMode: 0666
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "IAXmodem"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 200
ModemType: Class1 # use this to supply a hint
Class1AdaptRecvCmd: AT+FAR=1
Class1TMConnectDelay: 400 # counteract quick CONNECT response
Class1RMQueryCmd: "!24,48,72,96" # enable this to disable V.17 receiving
Class1TMQueryCmd: "!24,48,72,96" # enable this to disable V.17 sending
ModemResetCmds: AT+VCID=1 # enables CallID display
PagerTTYParity: none
CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="
ファイルパス:/etc/hylafax/sendfax.conf
設定内容:
MaxTries: 2
MaxDials: 2
ファイルパス:/etc/hylafax/hfaxd.conf
設定内容:
LogFacility: daemon # syslog facility (want this 1st))
ServerTracing: 0x003 # just server operation
JobFmt: "%-5j %1a %-12.12e %5P %5D %Y %.27s"
TimeZone: local
HylaFaxにアクセスするユーザーを登録します。
admin
faxadduser -a <パスワード> root
user
faxadduser -p <パスワード> <任意のユーザーID>
ファイルパス: /etc/hylafax/hosts.hfaxd
- 最終行に追加されていることを確認
- 不要な登録があれば、その行を削除
ディレクトリパス:/var/spool/hylafax/log
sudo chmod 644 seqfこれを変更しないと、ログにエラーが出ます。
sudo chmod 644 xferfaxlog
ファイルパス:/etc/hylafax/FaxDispatch
定義内容:
ファイルを新規に作成します。
FILETYPE=pdf;
SENDTO=<送信先メールアドレス>;
TEMPLATE=custom;
ファイルパス: /etc/hylafax/FaxNotify
定義内容:
ファイルを新規に作成します。
FILETYPE=pdf;
SENDTO=<送信先メールアドレス>;
TEMPLATE=custom;
ディレクトリパス:/etc/hylafax/templates
このディレクトリ上に言語ごとのサブフォルダがあり、インストール時に指定した言語のサブディレクトリのテンプレートが使用されます。
ところが、日本語のサブディレクトリはありません。
そこで、雛形としてenフォルダをコピーし、新しくサブディレクトリ(custom)を作成します。
cd /etc/hylafax/templates
sudo cp -r en custom
customディレクトリ上の各テンプレートファイルを編集します。文字コードはUTF-8です。
ファイル名:notify-killed.txt
定義内容:
To: $SENDTO
Subject: Faxの送信要求が削除されました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable
自宅のFAX電話(Hylafax)からのお知らせです。:
Faxの送信要求が削除されました。
送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO
Faxは送信されませんでした。
ファイル名:notify-killed.txt
定義内容:
To: $SENDTO
Subject: Faxの送信が失敗しました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable
自宅のFAX電話(Hylafax)からのお知らせです。:
Faxの送信が失敗しました。
失敗理由:$faxstatus
送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO
原因を解決し、再度、送信してください。
ファイル名:notify-done.txt
定義内容:
From: HylaFAX Agent <$FROMADDR>
To: $SENDTO
Subject: Faxの送信が完了しました - $DESTINATION
From: HylaFAX Agent <$FROMADDR>
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable
自宅のFAX電話(Hylafax)からのお知らせです。:
Faxの送信が完了しました。
送信宛先:$DESTINATION
試行回数:$totdials
ページ数:$npages
ページ幅:$pagewidth(mm)
ページ長:$pagelength(mm)
画像品質:$resolution(dpi) / $dataformat
処理時間:$JTIME ($signalrate)
要求元 :$client / $CALLID1
処理番号:$jobid / $groupid - $commid
処理情報:$JOBINFO
ファイル名:faxrcvd-success.txt
定義内容:
From: HylaFAX Agent <$FROMADDR>
To: $SENDTO
Subject: Faxに新着メッセージが入りました - "$SENDER"
Content-type: text/plain; charset=UTF-8
Content-Transfer-Encoding: Quoted-Printable
自宅のFAX電話(Hylafax)からのお知らせです。:
新しいメッセージが入りました。
着信日時:$RECEIVED
ページ数:$PAGES
処理正常:$ERRCORRECT
画像品質:$QUALITY / $DATAFORMAT
受信時間:$TIMETORECV ($SIGNALRATE)
発信元 :$SENDER / $CALLID1
--- $FILE (ftp://$HOSTNAME:$PORT/$FILE) ---
HylaFaxを構成する3つのサービス(デーモン)の1つであるfaxgettyは、モデムデバイスの後に起動するように定義されています。
ところが、モデムの自動コンフィギュレーションの問題で分かる通り、iaxmodemは完全にアナログモデムデバイスをエミュレートできていません。
起動についても、iaxmodemの起動がデバイスの起動として認識されない問題があります。
したがって、faxgettyのサービス定義を変更する必要があります。
ファイルパス:/lib/systemd/system/faxgetty@.service
設定内容:
◦前提条件をモデムデバイスからiaxmodemサービスに変更します。
BindTo=iaxmodem.service
After=iaxmodem.service
代表する仮想サービスhylafaxと構成する3つのサービスの自動起動登録をします。
sudo systemctl daemon-reload
sudo systemctl enable faxq
sudo systemctl enable hfaxd
sudo systemctl enable hylafax
sudo systemctl enable faxgetty@ttyIAX
Faxクライアントのインストール
FAXの受信や送信するには、別途クライアントソフトをインストールすると便利です。
YajHFCはJAVAで作られたマルチプラットフォームのHylaFaxクライアントソフトウェアです。
普段使っているPCで、受信したFAXを確認したり、FAXを簡単に送信できます。
私のPCはWindowsなので、Windows用のパッケージをインストールしました。
取得先:YajHFC Current version ダウンロードサイト
ダウンロードファイル:Windows installer exe(32+64bit)
ダウンロードしたインストーラーを実行します。
メニューバーから、[Extras]-[Options]
[General]の設定
[Servers]-[Default]の設定
Hylafaxサーバーの設定をします。
Defaultの設定を変更するか、新規に追加登録します。
項目 | 設定値 |
---|---|
Name for this server | 任意の名前 |
Character ser | UTF-8 |
Host name | Raspberry PiのIPアドレス |
Username | 上記「ユーザーの登録」で登録したuserのユーザーID |
Password | 上記「ユーザーの登録」で登録したuserのパスワード |
User passive mode to fetch faxes | チェックしてFTPをパッシブモードにする |