投げ銭

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

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(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モデムに関連付けられた設定ファイルに基づき、特定の発信元などが印字された。


2011年9月18日日曜日

【MS Windows7】 HylafaxのクライアントソフトウェアWinPrint HylaFaxを使ってfaxを送信する

Windows7(64bit)に、HylafaxのクライアントソフトであるWinPrint HylaFaxをインストールしFAXを送信する手順


HylaFaxサーバーとそのクライアントソフトウェアを連携させることで、リモートのIPネットワーク上にあるWindows、Mac、Linuxクライアントなどから、プリントアウトする要領で手軽にFAXを送ることが可能になる。

以下は、WinPrint HylaFaxというWindows用のクライアントソフトウェアのインストール手順である。

(前提条件)
http://akira-arets.blogspot.com/2011/09/linux-centos56-iaxmodemhylafax.html に、iaxmodemとhylafaxのインストール手順あり。



作業手順
とくに断りがない限り、Windows7側での操作である。

□クライアントソフトウェアであるWinPrint HylaFaxをダウンロードする

http://www.hylafax.org/content/Desktop_Client_Softwareのリンクリストから、Winprint HylaFAX for Windows 7のページを開く。
ダウンロードリンク からWinPrintHylafax-for-Windows7.7zをダウンロードする。


□インストール作業を行う

(注意)新しいバージョンでは、インストール方法が全く変わっているかもしれない。

7z形式で圧縮されているので解凍し、WinPrintHylafax-for-Windows7-Release_ENGフォルダを取り出す。

この内にさらに、Only-For-Windows-64bitと、Only-For-Windows-32bitというフォルダがある。
Windows7 64bitの場合は、Only-For-Windows-64bitフォルダを取り出す。

内に、3つのファイルがあるので、そのうち次の2つのファイルを選択する。
HylaPrintUI.exe
HylaPrintMon.dll
これら2つのファイルを、C:\Windows\System32にコピーする。
(このとき、windows標準のエクスプローラーを使用すること。)

そうしてから、あと一つのHylaPrintMonReg.exeを「管理者として実行」し、INSTALLボタンをクリックする。INSTALL-OK.が表示されると成功。

(Error number:3006が表示される場合、UNINSTALLボタンをクリックしてから、INSTALLボタンを押してみると解決するかもしれない。 )



□「プリンタ」を追加する

「デバイスとプリンタ」から、「プリンタの追加」ボタンをクリックする。

「ローカルプリンタを追加します(L)」をクリックする。
「新しいポートの作成(C)」を選び、ポートの種類としてWinprint Hylafaxを選択し、次へ進む。

開いたウインドウには、HFAX1:と表示されているので、OKをクリックする。

プリンターの追加ウインドウが開くので、次の通りに選択し、次へ進む。
製造元:   Xerox
プリンター:  Xerox Phaser 6120PS

後は、必要に応じて適当に設定して進めばよい。
ただし、プリンター名は、FAXとしておくと分かりやすい



□Hylafaxの動作しているLinuxマシンで、FAXユーザーを追加する

先ず、Linuxユーザーとして追加し、Linuxパスワードを設定する
[root@localhost ~]# useradd myname
[root@localhost ~]# passwd myname
それから、このユーザーを次のようにFAXユーザーとして追加する
[root@localhost ~]# faxadduser myname


□「プリンタ」を設定する

追加したプリンタのアイコンを右クリックし、メニューから「プリンタのプロパティー(P)」を開く
ポートタブから、HAFX1: WinPrint Hylafax Port ・・・を選び、「ポートの構成(C)」ボタンをクリックする。

Printer port settingウインドウが開く。
次の基本項目を編集する。上で設定したFAXユーザー情報を入力する
・ Hylafax server: 192.168.1.1  ←Hylafaxが動作しているLinuxマシンのアドレス(ファイアーウォールは開いていますか?)
・ User name: myname  ←faxuseraddで追加したLinuxユーザー
・ Password: mypswd  ←Linuxログインパスワード

また、Email:項目に電子メールアドレスを設定しておくと、FAXの送達状態をHylafaxがメールで通知してくれる。
(ただし、サーバーでsendコマンドを使ってメールが送信できるようにしておく必要がある。)
Nortification:項目で、その通知が行われるイベントを設定できるようになっている。

○ところで、6番目にあるmodem:項目には、FAX送信で使用するモデムデバイスやモデムグループを指定することもできる。
この機能を使って経由するモデムを切り替えることで、ファックス文書に印字する発信元などの情報も自動的に切り替えることが可能。
さらにまた、モデムグループを使えば、グループに所属させているいくつかのモデムのうちスタンバイ状態にあるものが一つ自動的に選択されるようになるので、同時に複数のFAX送信を行えるようになる。
⇒詳細はこちらを参照



□FAXを送信してみる。

テスト用の文書を適当なアプリケーションから開き、上で追加したプリンタを使って印刷する。
Send Faxというウインドウが開くので、「FAX number:」に相手先電話番号を入力し、「Send FAX」ボタンをクリックする。

次のような経路でFAXが送出される。
アプリケーション→ WinPrint Hylafax→ hylafax→ iaxmodem→ ASTERISK→ 電話回線

数秒後に、電話回線につながった相手先のFAX機で着信し、文書を受信することができた。

【Linux CentOS 5.7】 iaxmodemとhylafaxのインストールと基本設定作業

CentOS 5.7(64bit)に、iaxmodemとhylafaxをインストールする手順

HylaFaxというFAXサーバとそのクライアントソフトウェアを使えば、ネットワークを通じてWindowsマシンなどから手軽にFAXを送信することができるようになる。
さらに、HylaFaxで使用するモデムとしてiaxmodemを使えば、Asteriskと連携することができるようになる。

(前提)ASTERISKのインストールが完了していて、外線への発信ができていること。


今回、CentOS 5.7(64bit)にインストールしたバージョン
・iaxmodem-1.2.0
・hylafax-6.0.5

(注意)
この条件でインストールした場合、コマンドラインからsendfaxコマンドを使ってFAXを送出しようとしても、フォント周りのエラーが表示されできなかった。
しかし、そのような状態でも、代わりにhylafaxのクライアントソフト(たとえば、Hylafax WinPrint)を用いれば、正常にFAXを送出することができた
クライアントソフトを使った場合、sendfaxコマンドで必要だったプロセスがクライアントソフト上で解決されたために、FAXを送出できたのだろう。
FAXサーバーとしての本質的な機能は正常にインストールされているようだ。クライアントソフトウェアを使ってFAXを送出するなら、この条件でも問題はないと思う。(後述)

○クライアントソフトであるHylafax WinPrintのインストール手順については次のページに記載。
http://akira-arets.blogspot.com/2011/09/ms-windows7-winprint-hylafaxfax.html



■インストール共通手順■

◇システムを最新にアップデートする。

[root@localhost ~]# yum update
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-238.19.1.el5 #1 SMP Fri Jul 15 07:31:24 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux


◇コンパイルに必要なモノをインストールする。

[root@localhost ~]# yum install gcc gcc-c++
Installed:
  gcc.x86_64 0:4.1.2-51.el5 gcc-c++.x86_64 0:4.1.2-51.el5
Dependency Installed:
  cpp.x86_64 0:4.1.2-51.el5 glibc-devel.x86_64 0:2.5-65 glibc-headers.x86_64 0:2.5-65 kernel-headers.x86_64 0:2.6.18-274.3.1.el5 libstdc++-devel.x86_64 0:4.1.2-51.el5

Complete!

 
■iaxmodemのインストールと設定■


◇必要なライブラリをインストールする

[root@localhost ~]# yum install libjpeg libjpeg-devel libtiff libtiff-devel
Installed:
  libjpeg-devel.i386 0:6b-37         libjpeg-devel.x86_64 0:6b-37         libtiff-devel.i386 0:3.8.2-7.el5_6.7         libtiff-devel.x86_64 0:3.8.2-7.el5_6.7

Complete!
[root@localhost ~]# yum install ghostscript ghostscript-devel ghostscript-fonts sox
Installed:
  ghostscript.i386 0:8.70-6.el5_7.3    ghostscript.x86_64 0:8.70-6.el5_7.3    ghostscript-devel.i386 0:8.70-6.el5_7.3    ghostscript-devel.x86_64 0:8.70-6.el5_7.3
  sox.x86_64 0:12.18.1-1.el5_5.1

Dependency Installed:
  alsa-lib.x86_64 0:1.0.17-1.el5  ghostscript-fonts.noarch 0:5.50-13.1.1  libICE.i386 0:1.0.1-2.1             libSM.i386 0:1.0.1-3.1        libXt.i386 0:1.0.2-3.2.el5
  libXt.x86_64 0:1.0.2-3.2.el5    libogg.x86_64 2:1.1.3-3.el5             libvorbis.x86_64 1:1.1.2-3.el5_4.4  urw-fonts.noarch 0:2.3-6.1.1

Complete!

◇iaxmodemをダウンロードしインストールを行う
 
[root@localhost iaxmodem]# wget http://sourceforge.net/projects/iaxmodem/files/iaxmodem/iaxmodem-1.2.0/iaxmodem-1.2.0.tar.gz/download
`iaxmodem-1.2.0.tar.gz' へ保存完了 [3075769/3075769]
[root@localhost iaxmodem]# tar zxvf iaxmodem-1.2.0.tar.gz

[root@localhost iaxmodem]# cd iaxmodem-1.2.0
[root@localhost iaxmodem-1.2.0]#

一つ目のライブラリをインストールする。
[root@localhost iaxmodem-1.2.0]# cd lib/libiax2/
[root@localhost libiax2]# ./configure
[root@localhost libiax2]# make
[root@localhost libiax2]# make install
[root@localhost libiax2]# cd ../..
[root@localhost iaxmodem-1.2.0]#

二つ目のライブラリをインストールする。
[root@localhost iaxmodem-1.2.0]# cd lib/spandsp/
[root@localhost spandsp]# ./configure
[root@localhost spandsp]# make
[root@localhost spandsp]# make install
[root@localhost spandsp]# cd ../..
[root@localhost iaxmodem-1.2.0]#

これらのライブラリをシステムに登録する。すでに/usr/local/libが登録されていればこの作業は不要。
[root@localhost iaxmodem-1.2.0]# touch /etc/ld.so.conf.d/iaxmodem-i386.conf
[root@localhost iaxmodem-1.2.0]# echo '/usr/local/lib' >> /etc/ld.so.conf.d/iaxmodem-i386.conf
[root@localhost iaxmodem-1.2.0]# cat /etc/ld.so.conf.d/iaxmodem-i386.conf
/usr/local/lib
[root@localhost iaxmodem-1.2.0]# ldconfig

ビルドしてバイナリを生成し、パスの通ったディレクトリにコピーする。
[root@localhost iaxmodem-1.2.0]# ./build
[root@localhost iaxmodem-1.2.0]# ls ./iaxmodem
./iaxmodem
[root@localhost iaxmodem-1.2.0]# cp -p iaxmodem /usr/local/sbin/


◇設定ファイルを編集する

ディレクトリを作成し、iaxmodemの設定ファイルをコピーする。
[root@localhost iaxmodem-1.2.0]# mkdir /etc/iaxmodem
[root@localhost iaxmodem-1.2.0]# cp -p iaxmodem-cfg.ttyIAX /etc/iaxmodem/ttyIAX
[root@localhost iaxmodem-1.2.0]# vim /etc/iaxmodem/ttyIAX
device          /dev/ttyIAX
owner           uucp:uucp
mode            660
port            4570
refresh         300
server          127.0.0.1  ←ASTERISKの動作しているコンピューター
peername        iaxmodem ASTERISKのiax.confで設定するもの
secret          password
cidname         John Doe
cidnumber       8005551212
codec           slinear

ASTERISKのiax.confサンプルファイルの一番下に、このiaxmodemに対応した設定を追加する
[root@asterisk asterisk]# vim /etc/asterisk/iax.conf
(略)
[iaxmodem]
type=friend
username=iaxmodem
secret=password
host=dynamic
disallow=all
allow=ulaw ←実際の運用時にはulawが用いられた。
allow=slinear
requirecalltoken=no
context=fax_outgoing
(略)
念のため挙げると、[general]項目は次のようにした。
[general]
autokill=yes
maxregexpire = 300
iaxcompat=yes
language=jp
bandwidth=high
disallow=all
allow=slinear
allow=ulaw
allow=alaw
jitterbuffer=no ←yesにするとFAX伝送に時間がかかった。noのままにする。
forcejitterbuffer=no


ASTERISKのextensions.confに、fax送信用のコンテクストとエクステンションを追加する
[root@asterisk asterisk]# vim /etc/asterisk/extensions.conf
[fax_outgoing]
exten => _0.,1,Dial(SIP/${EXTEN}@外線発信用デバイス名)

ASTERISKを再起動させる
[root@asterisk asterisk]# service asterisk restart



◇iaxmodemを自動起動させるための設定

[root@localhost iaxmodem-1.2.0]# cp -p iaxmodem.init.fedora /etc/init.d/iaxmodem
[root@localhost iaxmodem-1.2.0]# chmod +x /etc/init.d/iaxmodem
[root@localhost iaxmodem-1.2.0]# chkconfig --add iaxmodem
[root@localhost iaxmodem-1.2.0]# chkconfig iaxmodem on
[root@localhost iaxmodem-1.2.0]# chkconfig --list | grep iaxmodem
iaxmodem        0:off   1:off   2:on    3:on    4:on    5:on    6:off

◇iaxmodemのログ用ファイルを置く
[root@localhost iaxmodem-1.2.0]# mkdir /var/log/iaxmodem
[root@localhost iaxmodem-1.2.0]# touch /var/log/iaxmodem/iaxmodem


◇IAXmodemを起動する
[root@localhost iaxmodem-1.2.0]# service iaxmodem start

IAXmodem を起動中:                                         [  OK  ]
[root@localhost iaxmodem-1.2.0]# ls /dev/ | grep ttyIAX
ttyIAX    ・・・デバイスが作成されている


◇念のため、Asterisk側で、iaxmodemが正常にレジストされているか確認する

Asterisk CLIを起動し、iax2のレジスト状況を確認する
[root@asterisk asterisk]# asterisk -r
asterisk-01*CLI> iax2 show peers 
Name/Username    Host                 Mask             Port          Status
iaxmodem/iaxmod  192.168.xxx.yyy  (D)  255.255.255.255  58553         Unmonitored
設定したiaxmodemモデムが、192.168.xxx.yyyからレジストしていることが分かる。



以上で、iaxmodemのセッティングは完了。


◇initでiaxmodemを起動する設定を行う

エディタをつかって、斜体で書かれた行を挿入する。
[root@localhost iaxmodem-1.2.0]# vim /etc/inittab
(略)
# Run gettys in standard runlevels
(略)
# Run iaxmodem in standard runlevels
im1:2345:respawn:/usr/local/sbin/iaxmodem ttyIAX

(略)

引数のttyIAXは、後で/etc/iaxmodemディレクトリに置かれる設定ファイルである。

◇試しに起動して、チェックを行う

システムの再起動を行い、iaxmodemを起動させる。
[root@localhost ~]# reboot

再起動後、プロセスを確認する。
[root@localhost ~]# ps -A | grep iaxmodem
 3043 pts/0    00:00:00 iaxmodem
iaxmodemのデバイスファイルが生成されていることを確認する。
[root@localhost ~]# ls /dev/ttyIAX
/dev/ttyIAX



■hylafaxのインストールと設定■

以下はソースからインストール手順である。

しかし、代わりにyumを用いてパッケージからインストールすることもできる。
(下記リンクの手順で、Hylafax+ 5.5.9 のインストールができた。)
http://akira-arets.blogspot.jp/2017/07/linux-centos69-hylafaxplus-installing.html



◇必要なモノをインストールする

[root@localhost ~]# yum install mgetty-voice zlib-devel
Installed:
  mgetty-voice.x86_64 0:1.1.33-9.fc6                        zlib-devel.i386 0:1.2.3-4.el5                        zlib-devel.x86_64 0:1.2.3-4.el5

Complete!


◇hylafaxをダウンロードしインストールを行う

[root@localhost hylafax]# wget ftp://ftp.hylafax.org/source/hylafax-6.0.5.tar.gz
`hylafax-6.0.5.tar.gz' へ保存終了 [1295267]
[root@localhost hylafax]# tar xvfz hylafax-6.0.5.tar.gz
[root@localhost hylafax]# cd hylafax-6.0.5
[root@localhost hylafax-6.0.5]#

[root@localhost hylafax-6.0.5]# ./configure
(省略)
Press Return to Continue
番号を指定し値を入力し、パラメーターを変更する。

HylaFAX configuration parameters (part 1 of 2) are:

[ 1] Directory for applications:        /usr/local/bin
[ 2] Directory for lib data files:      /usr/local/lib/fax
[ 3] Directory for lib executables:     /usr/local/sbin
[ 4] Directory for system apps:         /usr/local/sbin
[ 5] Directory for manual pages:        /usr/local/man
[ 7] Directory for spooling:            /var/spool/hylafax
[ 8] Directory for uucp lock files:     /var/lock
[ 9] Uucp lock file scheme:             ascii
[10] PostScript imager package:         gs
[11] PostScript imager program:         /usr/bin/gs
[12] Manual page installation scheme:   bsd-source-cat
[13] Default page size:                 North American Letter
[14] Default vertical res (lpi):        98
次のように質問されるので、パラメーター番号を指定する。
Are these ok [yes]? 13
設定値がわからなければ、?を入力して、説明を表示させる。
Default page size [North American Letter]? ?

"?" is not a known page size; the following are known page sizes:

Name                    Abbrev  Width   Height  Width   Height  Top     Left


ISO A3                  A3      14030   19840   13200    18480  472     345
ISO A4                  A4       9920   14030    9240    13200  472     345
ISO A5                  A5       7133    9921    6455     9236  472     345
ISO A6                  A6       5055    6991    4575     6508  472     345
ISO B4                  B4      12048   17196   11325    16010  472     345
North American Letter   NA-LET  10200   13200    9240    12400  472     345
American Legal          US-LEG  10200   16800    9240    15775  472     345
American Ledger         US-LED  13200   20400   11946    19162  472     345
American Executive      US-EXE   8700   12600    7874    11835  472     345
Japanese Letter         JP-LET   8598   12141    7600    10200  900     400
Japanese Legal          JP-LEG  12141   17196   11200    15300  900     400
設定できる値がわかったので、A4を指定する。
Default page size [North American Letter]? A4
さらに、14番のパラメーターの値も変更する。
Are these ok [yes]? 14
同様に、設定可能な値リストを表示させる。
Default vertical res (lpi) [98]? ?
ファインモードを設定するので、196を入力する。
"?" is not a valid vertical resolution; choose either "98" lines/inch
(low resolution) or "196" lines/inch (often called fine resolution)
.
Default vertical res (lpi) [98]? 196
入力された値に変更されたパラメーターリストが表示される。
HylaFAX configuration parameters (part 1 of 2) are:

[ 1] Directory for applications:        /usr/local/bin
[ 2] Directory for lib data files:      /usr/local/lib/fax
[ 3] Directory for lib executables:     /usr/local/sbin
[ 4] Directory for system apps:         /usr/local/sbin
[ 5] Directory for manual pages:        /usr/local/man
[ 7] Directory for spooling:            /var/spool/hylafax
[ 8] Directory for uucp lock files:     /var/lock
[ 9] Uucp lock file scheme:             ascii
[10] PostScript imager package:         gs
[11] PostScript imager program:         /usr/bin/gs
[12] Manual page installation scheme:   bsd-source-cat
[13] Default page size:                 ISO A4
[14] Default vertical res (lpi):        196
確認してから、yesを入力する。
Are these ok [yes]?yes
さらに、パラメーターリストが現れるが、これは変更せずにyesを入力する。
HylaFAX configuration parameters (part 2 of 2) are:

[15] Location of getty program:         /sbin/agetty
[16] Location of voice getty program:   /sbin/vgetty
[17] Location of sendmail program:      /usr/sbin/sendmail
[18] Location of TIFF tools:            /usr/bin
[19] Location of SysV init scripts:     /etc/rc.d/init.d
[20] Location of SysV start scripts:    ../rc2.d ../rc3.d ../rc4.d ../rc5.d
[21] Location of SysV stop scripts:     ../rc0.d ../rc1.d ../rc6.d
[22] Name of SysV start script:         S97hylafax
[23] Name of SysV stop script:          K05hylafax
[24] Init script starts faxq:           yes
[25] Init script starts hfaxd           yes
[26] Start paging protocol:             no
Are these ok [yes]? yes
(省略)

[root@localhost hylafax-6.0.5]# make
[root@localhost hylafax-6.0.5]# make install



◇初期設定を行う

[root@localhost hylafax-6.0.5]# /usr/local/sbin/faxsetup
(略)
Country code [1]? 81 ←日本
Area code []? xx ←日本国内の市外局番から0を除いたもの
Long distance dialing prefix [1]? 0 ←日本での場合は0
International dialing prefix [011]? 010 ←環境に適当なものを入力
(略)
Do you want to run faxaddmodem to configure a modem [yes]? no

Done verifying system setup.
この内容は、/var/spool/hylafax/etc/config というファイルに保存されていた。


ソースからコンパイル作業を行ったiaxmodem-1.2.0 ディレクトリから、IAXmodem用のconfigの原型を持ってくる。
これがなければ、たとえば送出したファックスにタグ(ヘッダー)を付けられなかった。
[root@localhost iaxmodem-1.2.0]# cp -p ./config.ttyIAX /var/spool/hylafax/etc/config.ttyIAX


ファックスのFromタグに表示させる名称を、必要に応じて編集しておく。(ただし英数字のみ可)
[root@localhost ~]# vim /var/spool/hylafax/etc/config.ttyIAX
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."  ←ファックス送信元情報
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l %%n   |%c   Page %%P of %%T"  ←ファックスヘッダーのフォーマット(意味は下に記載)
MaxRecvPages:           200
#
(以下省略)
ファックスヘッダーフォーマットで使われている記号の意味
%%l  ・・・LocalIdentifier項目の値
%%n ・・・FAXNumber項目の値
%c ・・・現在の日時
| ・・・ファックス文書のヘッダー領域を左右に均等に区分するもの(上の例では、二分される)


ロケールを英語に切り替える(ファックス文書に印字される日本語の日付が文字化けするため
[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のfaxgettyというプログラムに、iaxmodemモデムに繋がる/dev/ttyIAXを渡す。

/etc/rc.local に、/usr/local/sbin/faxgetty /dev/ttyIAX を記述する方法と、
inittabを使う方法がある。いずれかの方法で設定すればよい。


[root@localhost hylafax-6.0.5]# vim /etc/rc.local
最後の行に追加する。
/usr/local/sbin/faxgetty /dev/ttyIAX

あるいは、次のようにする。
[root@localhost hylafax-6.0.5]# vim /etc/inittab
# Run gettys in standard runlevels
(略)
# Run iaxmodem in standard runlevels
im1:2345:respawn:/usr/local/sbin/iaxmodem ttyIAX
# Run faxgetty in standard runlevels
imh1:2345:respawn:/usr/local/sbin/faxgetty /dev/ttyIAX

(略)

[注意]
このfaxgettyの行は、iaxmodemの行の後に追加すること。引数/dev/ttyIAXが、iaxmodemにより設定ファイルに基づいて生成されるからである。



◇システム起動時にhylafaxが自動起動されるように設定する

 [root@localhost hylafax-6.0.5]# chkconfig hylafax on



◇iaxmodemなど必要なプロセスと共にhylafaxを起動させる

システム再起動後、全てが連動する。
[root@localhost hylafax-6.0.5]# reboot


以上でインストール作業の完了



■動作チェック■

【FAXの送信】

sendfaxコマンドを使ってfaxを送信しようとすると次のようなエラーが出て失敗した。

[root@localhost ~]# sendfax -n -d 電話番号 テキストファイル
/usr/local/sbin/textfmt: No font metric information found for "Courier-Bold".(略)
しかし、クライアントソフトウェアのWinPrint HylaFaxを使ってHylaFaxサーバーへアクセスすると、正常にfaxを送ることができた

WinPrint Hylafaxは、Windowsのプリンタデバイスのように振舞うクライアントソフトウェアである。
文書を扱う適当なWindowsのアプリで「印刷」実行するだけで、Hylafaxサーバーに文書の送出を指示し、任意の宛先へFAXを送ることができる。

この場合、次のように送出される。

Windowsアプリ⇒ WinPrint Hylafax⇒ Hylafax⇒ IAXmodem⇒ ASTERISK⇒ 電話回線

WinPrint Hylafaxの設定については、こちらのリンクを参考
http://akira-arets.blogspot.com/2011/09/ms-windows7-winprint-hylafaxfax.html


◇送信中には、ASTERISKのCLIには、次のようなメッセージが表示された
asterisk-01*CLI>
    -- Accepting AUTHENTICATED call from 192.168.yyy.zzz:
       > requested format = slin,
       > requested prefs = (),
       > actual format = ulaw, ←双方で使うコーデックとしてulawが選択されている
       > host prefs = (ulaw|slin),
       > priority = mine
    -- Executing・・・(省略)・・・
たとえばiaxmodem側とasterisk側で共にulawが使われている場合、コーデックの変換はなく、そして次に説明するPLCは用いられない。(ulawとalawの組み合わせでも問題ない)
音声FAX通信ではPLCが生じていないことは大切である。

PLCとは、パケットがロスしたときにそれがわからないよう無音を挿入するための機能である。
音声を使うFAX通信では、パケットロス時にPLCによって無音が挿入されるとうまく通信ができなくなってしまう。
通信中に20msの無音に遭遇するとFAXモデムは"carrier loss"を検出するからだ。
"carrier loss"は、FAXプロトコルでは次の手順に移るという意味を持っているため通信は失敗してしまう。

FAX送信でエラーが頻発する場合、asteriskを含めた相手先のアナログ電話への経路途中で、PLCが発生していないことを確かめる必要があるだろう

(参考)
・Asterisk IAXmodem < http://www.voip-info.org/wiki/view/Asterisk+IAXmodem > 2011/10/30
・Member "asterisk-1.6.2.20/doc/tex/plc.tex" of archive asterisk-1.6.2.20.tar.gz:
< http://fossies.org/unix/misc/asterisk-1.6.2.20.tar.gz:a/asterisk-1.6.2.20/doc/tex/plc.tex > 2011/10/30


【FAXの受信】

◇ASTERISKのextensions.confに、fax着信用のコンテクストとエクステンションを追加する
[root@asterisk asterisk]# vim /etc/asterisk/extensions.conf
[fax_incoming]

exten => incoming-fax,1,Dial(IAX2/iaxmodem)
当然、この例では、
外線から着信するデバイスの設定で、着信先コンテクストにはfax_incomingを指定し、
さらに、registerステートメントで、着信先エクステンションとしてincoming-faxを指定する必要がある。

◇外線からhylafaxへFAXを送信する

外線からFAX機などを使って文書を送信し、コンテクストfax-incomingのエクステンションincoming-faxに着信させると、
iaxmodemにダイヤルされ、hylafax側でiaxmodemが応答しfaxが受信される。


hylafaxの受信用ディレクトリを確認する
[root@localhost ~]# ls /var/spool/hylafax/recvq/
fax000000006.tif
このように、インデックスがつけられてtif形式で画像ファイルとしてFAXは保存される。

投げ銭

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

Ad

Ad