FAXサーバーソフトHylaFaxに複数のiaxmodemモデムを追加し加えてグループ化も行い、クライアントソフトであるWinPrint HylaFaxからそれらを指定してFAXの送出を行う方法について
Hylafaxサーバーに複数のモデムを追加しておき、クライアントソフトウェアから任意のモデムを指定してFAXを送出する。
各々のモデムに関連付けられた設定ファイルにより、
そのファックス文書には経由するモデムごとにユニークなヘッダーインフォメーションを付加できる。
このようにすると、
1台のHylafaxを複数の部署から共有しながら、部署ごとに異なった送信元情報をファックス文書のヘッダーに載せられる。
これらの複数のモデムは、
モデムグループに束ねて用いることもできる。
ある部署用の設定をした複数のモデムを一つのグループにまとめ、
FAXクライアントソフトウェアでは送信の際にこのグループ名を指定して用いることができる。
そうすると、グループに所属するモデムのうちスタンバイ状態にある一つが自動的に選択される。
そのため、利用可能なモデムデバイス名を個別にクライアントで指定しなくても、同時に複数のFAXを送信することができる。
前提として、以下のソフトウェアが次のような手順で正常にインストールできていること。
<使用したソフトウェアとそのバージョン>
○FAXサーバー側
・Hylafax 6.0.5
・IAXmodem 1.2.0
・CentOS 5.7 (64bit)
⇒インストール方法はこちら
○FAXクライアント側 (動作チェックで使用するだけ)
・WinPrint HylaFax 1.0.0.7
・MS Windows 7 (64bit)
⇒インストール方法はこちら
■Hylafaxサーバー側の設定■
FAXモデムとして、ASTERISKと連携できるIAXmodemを使用した。
◇追加のIAXmodemを設定する
iaxmodemのインストール後には、/etc/iaxmodem/ttyIAXがたった一個だけ存在している。
このttyIAXには、iaxmodemモデムを生成するための情報が含まれている。
これをコピーして増やすだけで、iaxmodemモデムが複数準備できる。
ttyIAXファイルをコピーし、必要なiaxmodem数分、増やす。例として4つ増やすことにする。
コピー後、それぞれ内容を編集する。
各ファイル名は、下記に示す
内容のdevice項目(生成させるデバイスファイル)の設定値に対応させると良い。
(注意)
このdevice名には
"_"アンダーバーを絶対に使わないこと。hylafaxが動作しなかった。
[root@localhost ~]#
cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-first-01
[root@localhost ~]#
cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-second-01
[root@localhost ~]#
cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-first-02
[root@localhost ~]#
cp /etc/iaxmodem/ttyIAX /etc/iaxmodem/ttyIAX-second-02
コピーしたttyIAX-firstファイルを編集する
[root@localhost ~]#
vim /etc/iaxmodem/ttyIAX-first-01
device /dev/ttyIAX-first-01 ←生成させるデバイスファイルは、iaxmodemの設定ファイル名と一致させると良い。(前述したとおり、アンダーバーは絶対に使わないこと。)
owner uucp:uucp
mode 660
port 4570
refresh 300
server asterisk-server-address
peername iaxmodem-first-01 ←当然、他のpeernameと重ならないようにする
secret password
cidname John Doe
cidnumber 8005551212
codec slinear
コピーしたttyIAX-secondファイルを編集する
[root@localhost ~]#
vim /etc/iaxmodem/ttyIAX-second-01
device /dev/ttyIAX-second-01
owner uucp:uucp
mode 660
port 4570
refresh 300
server asterisk-server-address
peername iaxmodem-second-01
secret password
cidname John Doe
cidnumber 8005551212
codec slinear
同様にして、コピーしたttyIAX-thirdファイルを編集する
[root@localhost ~]#
vim /etc/iaxmodem/ttyIAX-first-02
同様にして、コピーしたttyIAX-fourthファイルを編集する
[root@localhost ~]#
vim /etc/iaxmodem/ttyIAX-second-02
合せて、ASTERSISK側のiax.confの設定も行う
[root@asterisk ~]#
vim /etc/asterisk/iax.conf
[iaxmodem]
type=friend
username=iaxmodem
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-first-01] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-first-01
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-second-01] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-second-01
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-first-02] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-first-02
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
[iaxmodem-second-02] ←今回追加したiaxmodemに対応するASTERISKの設定
type=friend
username=iaxmodem-second-02
secret=password
host=dynamic
disallow=all
allow=ulaw
allow=slinear
requirecalltoken=no
context=fax_outgoing
これで、iaxmodem増設の設定は完了した。
service iaxmodem restartコマンドでiaxmodemを再起動させる。
IAXmodemの起動後に、iaxmodemが増設される。
/dev/ディレクトリ以下に次のデバイスファイル
が作成されているはず。
ttyIAX-first-01
ttyIAX-first-02
ttyIAX-second-01
ttyIAX-second-02
faxgettyに、今回追加した新モデムを渡すための追加設定を行う
[root@localhost etc]#
vim /etc/inittab
(略)
# Run faxgetty in standard runlevels
iah0:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX
iah1:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-first-01
iah2:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-first-02
iah3:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-second-01
iah4:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX-second-02
(略)
◇hylafaxの設定ファイルを追加する
hylafaxには、FAXモデムごとに設定ファイルが存在している。
これは、使用されるモデムのデバイス名に基づいて、ファックス送出の際に使用される設定ファイルである。選択されるモデムごとに、ファックス文書のタグ(ヘッダー)に記載するインフォメーションなどを設定しておける。
hylafaxの設定ファイルが置かれるディレクトリへ移動し、モデムデバイス毎の設定ファイルをコピーする。
この設定ファイル名は、
config.モデムデバイス名という形式になっている。
[root@localhost ~]#
cd /var/spool/hylafax/etc/
[root@localhost etc]#
cp config.ttyIAX config.ttyIAX-first-01
[root@localhost etc]#
cp config.ttyIAX config.ttyIAX-second-01
[root@localhost etc]#
cp config.ttyIAX config.ttyIAX-first-02
[root@localhost etc]#
cp config.ttyIAX config.ttyIAX-second-02
一つ目のモデムの設定ファイルを編集する(例)
[root@localhost etc]#
vim config.ttyIAX-first-01
CountryCode: 81
AreaCode: xx
FAXNumber: +81.xxx.xxx.xxx
LongDistancePrefix: 0
InternationalPrefix: xxx
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "example Co.Ltd. FIRST BRANCH" ←ファックス送信元情報
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l %%n |%c Page %%P of %%T" ←ファックスヘッダーのフォーマット(意味は下に記載)
MaxRecvPages: 200
#
(以下省略)
ファックスヘッダーフォーマットで使われている記号の意味
%%l ・・・LocalIdentifier項目の値
%%n ・・・FAXNumber項目の値
%c ・・・現在の日時
| ・・・ファックス文書のヘッダー領域を左右に均等に区分するもの(上の例では、二分される)
二つ目のモデムの設定ファイルを編集する(例)
[root@localhost etc]#
vim config.ttyIAX-second-01
CountryCode: 81
AreaCode: xx
FAXNumber: +81.yyy.yyy.yyy
LongDistancePrefix: 0
InternationalPrefix: xxx
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "example Co.Ltd. SECOND BRANCH" ←ファックス送信元情報
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l %%n |%c Page %%P of %%T" ←ファックスヘッダーのフォーマット
MaxRecvPages: 200
#
(以下省略)
他のモデムについても、送信元情報などについて編集しておく
[root@localhost etc]#
vim config.ttyIAX-first-02
[root@localhost etc]#
vim config.ttyIAX-second-02
ロケールを
英語に切り替える(ファックス文書に印字される
日本語の日付が文字化けするため)
[root@localhost ~]# date
2011年 9月 26日 月曜日 19:14:05 JST ←初めはこのように日本語で表記されていた
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8" ←変数の値は、書き換え前このようになっていた
[root@localhost ~]#
vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
[root@localhost ~]# date
Mon Sep 26 19:18:18 JST 2011 ←再起動後に英語表記に切り替わった(再起動はあとで)
hylafaxサーバー側の設定は、これで完了したので、
設定を有効化するためシステムの再起動を行う
[root@localhost etc]#
reboot
再起動後、faxstatコマンドを実行し、追加したモデムが有効になっているか確認する。
[root@localhost etc]#
faxstat
HylaFAX scheduler on localhost.localdomain: Running
Modem ttyIAX (+81.nnn.nnn.nnn): Running and idle
Modem ttyIAX-first-01 (+81.xxx.xxx.xxx): Running and idle
Modem ttyIAX-first-02 (+81.xxx.xxx.xxx): Running and idle
Modem ttyIAX-second-01 (+81.yyy.yyy.yyy): Running and idle
Modem ttyIAX-second-02 (+81.yyy.yyy.yyy): Running and idle
◇必要なら、次のようにしてモデムをモデムグループに束ねる設定も行う
○configファイル内に、次のように
モデムグループの定義を追加する。
[root@localhost ~]#
vim /var/spool/hylafax/etc/config
(例)
ModemGroup: "first-branch:ttyIAX-first-(01|02)"
ModemGroup: "second-branch:ttyIAX-second-(01|02)"
次のような書式になっている。
ModemGroup: "モデムグループ名:正規表現によるモデムデバイス名の指定"
上の例では、
first-branchという名のモデムグループには、モデムデバイスの
ttyIAX-first-01と
ttyIAX-first-02を所属させ、
second-branchという名のモデムグループには、
ttyIAX-second-01と
ttyIAX-second-02を所属させている。
(注意) 正規表現文字列-ttyIAX-first-(01|02)の部分-は、
24文字以内に収めないと動作しなかった。
○さらに構成したモデムグループに属す複数のモデムを使って同時送信を行うために、
同時送信許可を設定する。
[root@localhost ~]#
vim /var/spool/hylafax/etc/destctrls
.* MaxConcurrentJobs = unlimited
「.*」は、正規表現。相手先の電話番号を表す。
「.」が全ての1文字を表し「*」は0回以上の繰り返しを意味しているので、これは全ての文字列に該当する表現になっている。
つまり、どの相手先にも同時送信数を無制限に設定している。
この設定を書き込まなければ、同時送信することができない。
○設定の後、hylafaxサービスを再起動させる。
[root@localhost ~]#
service hylafax restart
Stopping HylaFAX Servers.
HylaFAX: faxq hfaxd (without SNPP support).
(参考)
Handbook:Advanced Server Configuration:Modem Groups
< http://www.hylafax.org/content/Handbook:Advanced_Server_Configuration:Modem_Groups > 2011/10/21
Re: [hylafax-users] Designating group of modems to specific task
< http://www.hylafax.org/archive/2004-02/msg00069.php > 2011/10/21
■Hylafaxクライアント側の設定■
Hylafaxクライアントとして、Windows7にインストールした「WinPrint Hylafax」を取り上げる。
⇒インストール方法はこちら
WinPrint Hylafax側では、
FAX送出で使用するモデムのデバイス名を予め指定できる。
この機能を使うことで、
任意のFAXモデムを指定してFAXの送出が行える。
そうして、関連付けられた設定ファイルに基づきファックス文書のヘッダーに指定した送出元を印字させられる。
◇モデムデバイスあるいはモデムグループを指定する手順
スタートボタンから「デバイスとプリンター」を開く。
↓
インストールしておいた「FAXデバイス」で右クリックメニューを表示させ、「プリンタのプロパティー(P)」を開く。
↓
ポートタブを選び、設定済みの「HFAX:」ポートを選び、「ポートの構成」ボタンをクリックする。
↓
「Printer port settings」ウインドウが開く。
6番目にある
modem項目を編集する。
次の例のように、使用したいモデムデバイス名あるいはモデムグループ名を入力し、「OK」ボタンを押す。
・モデムデバイス名を指定する場合
(例)ttyIAX-second-02
・モデムグループを指定する場合
(例)first-branch
ここで指定したFAXモデムは、hylafaxサーバー側においてFAX送出で使用される。
また、ここで指定したモデムグループは、hylafaxにより解釈され、その所属モデムのうちスタンバイになっているものが使用される。
こうして送出されるファックス文書には、経由するFAXモデムに関連付けられた設定ファイルに基づき、特定の発信元などが印字された。