投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2011年9月22日木曜日

【Linux CentOS 5.7】 HylaFaxで複数のFAXモデムを追加しモデムグループを構成しWinprint HylaFAXから使い分ける

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-01ttyIAX-first-02を所属させ、
second-branchという名のモデムグループには、ttyIAX-second-01ttyIAX-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モデムに関連付けられた設定ファイルに基づき、特定の発信元などが印字された。


投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad