以下文章來源:Hylafax server 安裝設定教學

 

Hylafax 是一款在 linux 底下的免費傳真伺服器,透過它,你的電腦就能用數據機來收發傳真,他可以為個人或者企業提供一個強大而可靠的傳真服務, 而且是免費的。 hyla 就是官網上的那個小青蛙。

Hylafax 官方網站

HylaFAX是一個開放源碼的傳真伺服器. 他可以為個人或者企業提供一個強大而可靠的傳真服務, 而且是免費的.

HylaFax基於Client - Server 架構, 就是說在局域網內, 只需要有一台的伺服器安裝了HylaFAX, 并且這個伺服器連結了一個或多個Fax Modem. 那麼HylaFAX就可以為局域網裡的所有電腦提供傳真服務. 在企業裡應用, 他擁有高負載力的功能. 在個人公司方面, 他將為你提供方便和節省金錢.以下是一些HylaFAX的特點,功能和應用例子:

* HylfaFax是免費的!
* 支持多個Fax Modem同時進行工作, 擁有高負載力.
* 支持Class 1, 1.0, 2.0 和 2.1 的Fax Modem.
* 每天發送和接收傳真可以超過1000個.
* 多國語言支持
* 自動打印接收的傳真
* 可以不打印傳真, 直接存檔到伺服器, 或以附件電郵發送
* 可以直接用伺服器發送傳真
* 自動加上水印
* 用HylaFAX發送短信SMS
* 只可以在Unix或者Linux機器上運行

***有了HalyFAX, 可以用HylaFAX電郵傳真,然後用BlackBerry 收傳真

 

以下內容,紅字部份皆為指令或是您需要修改的內容 ,藍字部份則為設定檔內容。

 

在安裝 hylafax 這程式之前,請先準備好你的數據機(modem),並確定電話線沒有問題後,再連接到電腦。

1.Modem

大部份內接的Fax Modem都是Winmodem (Softmodem), 意思就是說這些Fax Modem未必可以在Linux上運作, 因為Linux對這些softmodem的驅動程式比較少. 大部份外接的Fax Modem 都是Hardware modem, 所以理論上沒有問題.

參考資料:內接數據卡與外接數據機介紹(英文)

如果覺得麻煩的話,可以在Linmodem的網站裡下載scanModem, 他是一個小程式幫忙分析你的Fax Modem是用那種晶片組, 而且會提供安裝的方法和下載的地址.

scanModem的下載點

wget http://linmodems.technion.ac.il/packages/scanModem.gz
gunzip scanModem.gz
sudo ./scanModem
cd modem

在modem 裡有一個modemData.txt, 會告訴你一切關於Fax Modem的資料.

安裝好以後, 測試modem是否正常連接電腦

modem 連接在 com1 則對應為 ttyS0
modem 連接在 com2 則對應為 ttyS1

測試指令
紅字的部份為指令,也就是你要用鍵盤輸入的,藍字為電腦回應。

root@u11:~# cu -l ttyS0

如果設置成功, 會顯示以下內容:

Connected.
at+fclass=?
0,1,8

OK
~.

Disconnected.
root@u11:~#

撥號測試

root@u11:~# cu -l ttyS0

Connected.
at
OK    ←這樣就算進入與數據機的連線了,就可以下AT指令來控制數據機
ATDT你的測試電話   ←撥通後,按一下ENTER就能斷線。
~.

某些 debian 可能沒有 cu 此指令,請下指令安裝 sudo apt-get install cu
某些 centOS/Fedora 沒有 cu 此指令,請下指令安裝 yum -y install uucp

cu指令參考AT指令參考

可用probemodem命令來探測調制解調器,另外在/var/spool/fax/config中有一些典型的配置。

 

2.安裝hylafax主程式

下載二進位(Binary)安裝程式

↑請在此頁面依你的 linux 版本來下載, centOS / Fedora 下載 rpm 檔來安裝

centOS/Fedora 安裝法:

wget http://yum.trixbox.org/centos/5/RPMS/hylafax-4.4.4-1rhel5.i386.rpm
rpm -ivh hylafax-4.4.4-1rhel5.i386.rpm

PS:舊版的可能無法正常執行,請升級到最新版本

wget ftp://ftp.hylafax.org/binary/linux/redhat/6.0.3/hylafax-client-6.0.3-1rhel5.i386.rpm
wget ftp://ftp.hylafax.org/binary/linux/redhat/6.0.3/hylafax-server-6.0.3-1rhel5.i386.rpm
rpm -ivh hylafax-client-6.0.3-1rhel5.i386.rpm
rpm -ivh hylafax-server-6.0.3-1rhel5.i386.rpm 

若出現如下錯誤
error: Failed dependencies:
ghostscript >= 5.5 is needed by hylafax-4.4.4-1rhel5.i386
sharutils is needed by hylafax-4.4.4-1rhel5.i386

表示你少了2個套件,請下指令安裝

yum -y install ghostscript sharutils

 

 

ubuntu 9.04 直接下一行指令就能安裝

sudo apt-get install hylafax-server hylafax-client

此指令會一併安裝 postfix email 發送程式,大概是要用來收到傳真後發email出去的,我目前用不著,但也不會阻止它安裝postfix。也許用 aptitude 指令安裝時就可以不用裝 postfix ,沒試過。

PS:如果是區網裡的其他電腦就安裝hylafax-client.  Server 端可以不用安裝 hylafax-client.

debian/ubuntu 安裝過程中會跳出一些視窗讓你填資料,知道就填,不知就 enter 過去用預設值。

 

 

3.設定

這裡是重點,而且設定選項很多, faxsetup 和 faxaddmodem 都是設定用的,若你是第一次執行faxsetup,會帶 faxaddmodem。

所以這裡我們就執行 faxsetup 來設定吧

faxsetup

底下的選項,因為我是執行過一次了,所以有些預設值可能會跟你第一次執行的不一樣,沒關係,你參照著設定即可
底下的環境是在 ubuntu 9.04 所設

Should an entry be added for the FaxMaster to /etc/aliases [yes]? ←按enter
在/etc/aliases加入別名
Users to receive fax-related mail [root]? ←按enter
root將收到的傳真相關的mail(如果統計報表等)

HylaFAX configuration parameters are:

[1] Init script starts faxq: yes
[2] Init script starts hfaxd yes
[3] Start old protocol: no
[4] Start paging protocol: no
Are these ok [yes]? 
←按enter

You have a HylaFAX scheduler process running. faxq will be restarted shortly, as soon as some other work has been completed.
Can I terminate this faxq process (3709) [yes]? 
 ←按enter

這行是說,它發現你的系統上正執行著 hylafax ,我可以關掉這程序嗎? 當然啦,若你從沒裝過 hylafsx 可能就不會跳出這行

Should I restart the HylaFAX server processes [yes]? ←按enter

Should I run faxmodem for each configured modem [yes]? ←按enter

若你之前曾執行過faxsetup一次,到這裡它就會離開了,若是第一次 run faxsetup,那麼它會接著 run faxaddmodem

Serial port that modem is connected to [...]? ← ttyS0

你的modem若是接在 com1的話,請輸入 ttyS0, 接com2,請輸入 ttyS1

The non-default server configuration parameters are:

CountryCode: 1
AreaCode: 2
FAXNumber: 23701958
LongDistancePrefix: 0
InternationalPrefix: 002
DialStringRules: etc/dialrules
SessionTracing: 11
RecvFileMode: 0644
LogFileMode: 0644
DeviceMode: 0644
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "NothingSetup"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25

Are these ok [yes]?
  ←輸入 no 按 enter

↑因為我run過一次了,要重新設定,所以我輸入 no ,才能重新設定

Country code [1]? ←問你國碼是多少,台灣請輸入886
Area code [2]? 
←問你區碼是多少,台北請輸入2 
Phone number of fax modem [23701958]? 
←問你這台傳真的號碼是多少
Local identification string (for TSI/CIG) ["NothingSetup"]?
  ←輸入你公司的名字吧

↑傳真機的識別ID,一般使用電話號碼或是公司的英文縮寫不可太長 如 sony,當你傳真
時顯示在對方傳真機LCD的字

Long distance dialing prefix [0]?  ←長途碼 0 ,輸入0 Enter
International dialing prefix [002]? 
←國際電話前置碼002,輸入002 Enter
Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]?  
←按enter
Tracing during normal server operation [1]? 
←按enter
Tracing during send and receive sessions [11]?  
←按enter
Continuation cover page (relative to /var/spool/hylafax) []? 
←按enter
設定封面的頁的所在目錄

Timeout when converting PostScript documents (secs) [180]? ←按enter
設定轉換為ps文件的逾時時間180秒

Maximum number of concurrent jobs to a destination[1]? ←按enter
最大同時傳送一個目的的工作數,當然是1了

Define a group of modems [] ←按enter
除非你有好幾台數據機

Time of day restrictions for outbound jobs ["Any"]? ←按enter
限制外送傳真的時間Any(任何時間)

Pathname of destination controls file (relative to /var/spool/hylafax) []? ←按enter
所有安裝目的控制檔的所在目錄 相對於/var/spool/hylafax,enter

Timeout before purging a stale UUCP lock file (secs) [30] ←按enter
好像不使用了

Max number of pages to permit in an outbound job [0xffffffff] ←按enter
外送傳真的最多頁數

Syslog facility name for ServerTracing messages [daemon]? ←按enter
相關於記錄檔是記錄在/var/log/messages中

The non-default scheduler parameters are:
CountryCode: 886
AreaCode: 2
LongDistancePrefix: 0
InternationalPrefix: 002
Are these ok [yes]? 
←按enter

Should I restart the HylaFAX server processes [yes]? ←按enter

Should I run faxmodem for each configured modem [yes]? ←按enter

若你之前曾執行過faxsetup一次,到這裡它就會離開了,若是第一次 run faxsetup,那麼它會接著 run faxaddmodem

Protection mode for received facsimile [0644]? ←輸入644,按enter
收到傳真的檔案權限,如果你要以samba開放目錄,讓使用者讀取請最好改為0644

Protection mode for session logs [0644]?  
↑設定記錄檔的檔案權限,要設600或644隨你

Protection mode for ttyS0 [0644]? 
↑設定連接埠的存取權限,要設600或644隨你

Rings to wait before answering [1]? 
↑設定傳真機要響幾聲後才接起來

Modem speaker volume [off]? ←按enter
Command line arguments to getty program ["-h %l dx_%s"]?  
←按enter
Pathname of TSI access control list file (relative to /var/spool/hylafax) [""]?  
←按enter
Pathname of Caller-ID access control list file (relative to /var/spool/hylafax) [""]?  
←按enter
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]?  
←按enter
Tag line format string ["From %%l|%c|Page %%P of %%T"]?  
←按enter
Time before purging a stale UUCP lock file (secs) [30]?  
←按enter
Hold UUCP lockfile during inbound data calls [Yes]?  
←按enter
Hold UUCP lockfile during inbound voice calls [Yes]?  
←按enter
Percent good lines to accept during copy quality checking [95]?  
←按enter
Max consecutive bad lines to accept during copy quality checking [5]?  
←按enter
Max number of pages to accept in a received facsimile [25]?  
←按enter
↑(一次)傳真進來的最大可接收頁數

Syslog facility name for ServerTracing messages [daemon]?   ←按enter
Set UID to 0 to manipulate CLOCAL [""]?   
←按enter
Use available priority job scheduling mechanism [""]?  
←按enter

CountryCode: 886
AreaCode: 2
FAXNumber: 23701958
LongDistancePrefix: 0
InternationalPrefix: 002
DialStringRules: etc/dialrules
SessionTracing: 11
RecvFileMode: 0644
LogFileMode: 0644
DeviceMode: 0644
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "NothingSetup"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25

Are these ok [yes]?

↑問你以上的設定對不對,若沒錯,enter即可,若想再修改,請輸入 no ,按enter

接下來其它的部份,看不懂的就按enter過去吧

最後

Do you want to run faxaddmodem to configure another modem [yes]? ←按 no

 

Probing for best speed to talk to modem:
測試你的數據機的速度,請選擇數據機使用class 1不管它是否支援class2 或是class2.0會比較不會有問題,如果你的支援且要使用2或2.0,最好是監測fax server數天或數週,因為和不同傳真機溝通過程中可能會出現問題(傳完後掛不斷,在溝通後立即斷線等)
不同的傳真機或數據機支援不同的class,但是便宜機器一般只支援class 1,且有一些bug會存在因此我測試的結果是好是使用class1
#很多人常問到它的數據機,無法正常的收送傳真:在/var/spool/hylafax/config中有不同的晶片組的設定檔,你可以到網路查詢你的
數據機的晶片組,使用上述目錄的相關設定檔來測試。

faxgetty

Hylafax的預設在啟動時並不自動的調用守護程序faxgetty,必須手工完成該過程。  faxgetty 是 hylafax 與 modem 的溝通工具。

此設定會影響 hylafax 收發傳真的正常,一定要設。

方法有二,擇其一用之:

1、 編輯/etc/inittab文件,在文件的最後加入下面的內容:

vim /etc/inittab

mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0

然運行kill -HUP l 重啟faxgetty。
↑這行是幹什麼用的,我並不清楚

或對rc.local文件進行改動:

2、 在/etc/rc.d/rc.local (某些linux版,並沒有此文件) 文件中加入下面一行:

vim /etc/rc.d/rc.local

/usr/sbin/faxgetty -D /dev/ttyS0    ←注意 ttyS0 大小寫一定要正確

並運行命令:faxgetty -D /dev/ttyS0 立即啟用

ps -aux |grep faxgetty

↑檢查faxgetty是否有啟動

PS:此法雖能在一開機就啟動faxgetty,但是在重啟 hylafax service時, faxgetty 似乎不能自己啟動,須注意,若faxgetty沒有啟動,得自己下指令讓它啟動。

 

參考資料:完整介紹hylafax安裝及設定永遠的unix

4.權限設定

修改權限,方法有二,則一用之。

一.填入可發傳真的 ip

vim /var/spool/hylafax/etc/hosts.hfaxd

這樣client端連到 server 端時就不會問帳密了

二.加帳號

faxadduser -p 密碼 帳號

這樣在連server端時就會問帳密,帳號管理的好處是可以查到誰發了哪些傳真
稍後在安裝WHFC時會問你帳密,請輸入這兒設定的帳密

 

5.fax server狀態

a.faxstat命令查詢服務器狀態:
在某些機器上此指令無法正確回應

debian:~# faxstat
HylaFAX scheduler on debian: Not running
Modem ttyS0 (85789877): Running and idle


↑這才是正確狀態, server 處於閒置狀態(idle),但若出現:

Waiting for modem to come ready

↑這就是有問題了,不能收發傳真了, modem 不曉得什麼原因被卡住了
你可能換另一台系統試試,我也不會解,最後是換另一台電腦測試才ok.

b.用指令發傳真測試

sendfax -n -d 傳真號碼 test.txt

-n 不加封面
-d 後面接傳真號碼

faxstat -r 查詢/var/spool/hylafax/recvq 收到的傳真
faxstat -s 查詢/var/spool/hylafax/sendq 等待傳送的傳真
faxstat -d 查詢/var/spool/hylafax/doneq 完成的傳真

c.刪除傳真任務

telnet localhost 4559
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 u11 server (HylaFAX (tm) Version 4.4.4) ready.
user root
230 User root logged in.
jkill 23
200 Job 23 killed.
quit
221 Goodbye.
Connection closed by foreign host.

紅字的部份為指令,也就是你要用鍵盤輸入的,藍字為電腦回應。

參考資料

  • hylafax的檔案結構
    1. 所有的設定檔主要目錄是放在/var/spool/hylafax有的是/var/spool/fax 
      如果你要查詢所有的hylafax檔案所在的,請打rpm -ql hylafax
      假設目錄在/var/spool/hylafax
      其重要目錄說明如下:
      bin 這裡存放一些程式,如收傳真,及不同格式的轉換程式等
      config 數據機的樣本設定檔
      etc 所有真正的設定檔
      pollq,docq,doneq,
      sendq,recvq
      所有的queue
      log 記錄了每一筆的收送的交談內容
      info 記錄了每一台曾經收送的傳真機(有call id)的一些參數,以加速傳真不用再查詢一次
      status 傳真機的狀態檔
  • 清除 done 的記錄

    rm -fr /var/spool/hylafax/doneq/*

     

    6.發傳真

    Windows 底下
    a.
    下載 WHFC

    官網直接下載點

    這程式是在 windows 底下用來連接 fax server 的程式,安裝就用預設值按下一步即可。

    設定WHFC:
    在Fax/SystemPreferences中,輸入相關資料
    在Fax/UserPreferences中,輸入使用者資料

    這裡若有問你帳密,請輸入你剛剛在 server 端設定的帳密

    b.下載 Adobe PostScript Printer driver 安裝

    直接下載點備用載點

    其實是只要任何一台有支援 PostScript 的印表機即可,所以若你不想下載這個程式的話,你也可以安裝xp系統內的 apple 印表機"Apple LaserWriter 12/640 PS"

    選擇本地印表機,在可用的連接埠中選擇 WHFCFAX ,再按下一步(共三次),在印表機名稱中輸入一個您可以識別名稱,如:HylaFAX ,取消「列印測試頁」,開始進行安裝。

    若CLIENT的OS為WIN2K以上的,則在傳真前一定要先執行WHFC.exe,而在WIN9X下則是會自動啟動Whfc.exe。

    c.開始發傳真

    打開word或 notepad ,輸入些內容,選列印,然後選擇 HylaFAX 這台印表機。輸入傳真號碼就可傳真了。

    預設傳真文字檔是不帶系統字型的,也就是說,你用標楷體打了些中文字傳真出去,對方收到的內容是不帶標楷體的。

    解法如下:

    開始==>設定==>控制台==>印表機與傳真==>HylaFAX==>右鍵==>內容==>列印喜好設定==>紙張/品質==>進階==>TrueType字型==>下載成軟體字型。

    參照下圖操作:

    fax01.gif 


    Linux 底下

    這裡介紹 ubuntu 9.04 底下透過 hylafax 發傳真的方法
    我們將使用 gfax 這套軟體,但若直接透過 apt-get 指令安裝的版本是舊的 0.7.6
    我們直接到 gfax 的官網去下載新版的 0.7.7 的 deb 檔來安裝,新版有一個最大的好處,就是它會自動幫你安裝 fax 印表機,能讓你透過列印的方式來傳真。

    使用方法:
    a.裝完之後,需先啟動 gfax 程式
    從開始選單→辦公→Gfax Facsimile Program 記得設一下連接到 hylafax server 的帳號
    b.開啟文字檔,選檔案→列印→印表機請選Gfax_Facsimile_Printer
    c.就會跳出一視窗讓你輸入傳真號碼,即可傳真。

    PS:每次要傳真之前,都一定要先開啟 "辦公→Gfax Facsimile Program" 此程式,這樣點選檔案列印時,才能呼叫它來傳真。

     

    其它的 hylafax client端程式可參考此頁
    http://www.hylafax.org/content/Desktop_Client_Software 


    常見問題

    a. 傳真上方的Tagline變亂碼

    修改/var/spool/hylafax/etc/hylafax.ttySx
    TagLineFormat: "From:%%l %%n|%F %T|Page %%P of %%T"

    b. 傳真中文字型時字體會分離

    可將文件先轉成pdf, 再傳真

    c. 送出的傳真缺行, 重疊或只顯示半行
    若為class 2 Modem請改為class 1
    若為class 1請調整Modem flow control為xonxoff試試

     

    參考資料:

    如何安裝 HylaFAX Server
    Migrate Alone
    Steven's Experience

    Installing a fax viewer solution
    RedHat Enterprise Linux Server 5.0 + HylaFAX + HylaFAX-clinet + JHylaFax

    How to build a Hylafax server

    arrow
    arrow
      全站熱搜

      kingjoy1235 發表在 痞客邦 留言(0) 人氣()