作者:csc@ocean-pioneer.com
建立日期:2003/04/05
更新日期:2006/06/08
注意的問題
RedHat9.0的問題,如果你要使用本文下面的faxrcvd,則 metasend並沒有在套件中,你可以自己下載metamail套件及安裝,否則將無法執行mail的傳送問題,再者faxrcvd的參數是6 還是4要參考原始安裝的faxrcvd
目前版本為了和一般的軟體設定相同在/etc建立了hylafax的目錄
當你設定好要更新時請記得要先備份faxrcvd
硬體設備建議使用外接式數據機,不要使用內接式的數據卡,而外接式數據機最好能支援class2或2.0
FAQ:
1. 傳真和電話有什麼不一樣?
傳真和一般的電話都是利用電話線路,因此只要是電話線路就可以來當傳真使用,但是傳真使用自己的通訊協定,必須另外加一台終端設備(數據機+電腦軟體或傳真機等)才可以收送傳真
2. 為什麼需要傳真伺服器?
一般在買數據機時會包含了一些傳真的軟體,你可以使用它,也十分好用,但是在公司時你總不會為每一個人裝一台數據機一條電話線,及一套軟體吧,而且電腦要一直開著才可以,因此共用一台來收送不是比較好嗎?把他當做一般的傳真機看,是相同的道理
3. 這裏所謂的傳真伺服器是什麼?
我們這裏定義的傳真伺服器的運作流程如下:
電腦->區域網路->linux傳真伺服器->數據機->電話網路->對方公司的傳真機
以下就 linux fax伺服器及windows client之設定做說明 :
1. 下載軟體:
伺服器的軟體(hylafax)
請至www.hylafax.org下載程式,本網站還包含了相關程式網站鍵結及文件
註:你可以看到一雙綠色青蛙(hyla)就是一種雨蛙的名稱。
1. 安裝:
2. 載檔案linux伺服器端的程式後執行rpm -ivh 檔案名稱 設定:
1. 確定數據機
檢查數據機是否裝好,電源是否打開,及連接埠是那一個(一般是ttyS0)
,在linux下com port去出一般稱"cua?",進來的叫"ttyS?" 因為com port具有雙向的功能然而現在
己經合併使用ttyS?來代表serial port (問號是以0開始遞增的數字) 例如:
內定為COM 1為ttyS0,COM 2為 ttyS1(請注意大小寫,是有分別)
有時我們會以modem鏈結到ttyS?
2. 執行faxsetup
首先會秀出一些說明,接著第一個問題是
You do not appear to have a "fax" user in the password file.
HylaFax needs this to work properly. add it [yes]?
新增一個使用者fax,YES 按enter
Should an entry be added for the FaxMaster to /etc/aliases [yes]?
在/etc/aliases加入別名,YES 按enter
Users to receive fax related mail [root]?
root將收到的傳真相關的mail(如果統計報表等) ,enter
Country code [1]?
電話國碼886(台灣)輸入886 enter
Area code []?
區碼(台北2)(就是02去掉0) 輸入2 enter
Long distance dialing prefix [1]?
長途碼 0 ,輸入0 Enter
International dialing prefix [011]?
國際電話前置碼002,輸入002 Enter
Dial string rules file (relative to /var/spool/hylafax)["etc/dialrules"]?
撥號規則檔設為/var/spool/hylafax/etc/dialrule,按enter
Tracing during normal server operation [1]?
啟動除錯選項按enter
Default tracing during send and receive session [0xfffffffff]?
收送傳真的除錯,我也不懂按enter吧
Continuation cover page (relative to /var/spool/hylafax) []?
設定封面的頁的所在目錄,enter
Timeout when converting PostScript documents (secs) [180]?
設定轉換為ps文件的逾時時間180秒,enter
Maximum number of concurrent jobs to a destination[1]?
最大同時傳送一個目的的工作數,當然是1了
Define a group of modems []
除非你有好幾台數據機,enter
Time of day restrictions for outbound jobs ["Any"]?
限制外送傳真的時間Any(任何時間),enter
Pathname of destination controls file (relative to /var/spool/hylafax) []?
所有安裝目的控制檔的所在目錄 相對於/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]?
相關於記錄檔是記錄在/var/log/messages中
接著秀出你先前的設定問你要不要更改
沒錯的話就按enter
Restarting Hylafax server process.
Should I restart the Hylafax server process [yes]?
要啟動hylafax了,按enter
You do not appear to have any modem configured for use. Modems are
ocnfigured for use with HylaFax with the faxaddmodem[8C] command.
Do you want to run faxaddmomdem to configure a modme [yes]?
你尚未指定任何數據機.現在是否要設定使用faxaddmodem命令(這個命令可以新增數據機),Enter
Serial port that modem is connected to []?
數據機的連接埠一般為ttyS0
country code[1]
886
Area code [415]?
(台北,基隆) 2
Phone number of fax modem [+1,9999.5555.1212]?
你數據機所接的電話號碼,+1是國碼(台灣+886)逗點後面就是區碼加電話號碼
Local Identifications string (for TS/CIG) ["NothingEtup"]?
傳真機的識別ID,一般使用電話號碼或是公司的英文縮寫不可太長 如 sony,當你傳真
時顯示在對方傳真機LCD的字
Long distance dialing prefix [1]?
0
International dialing prefix [011]?
002
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
Protection mode for received facsimile [0600]?
收到傳真的檔案權限,如果你要以samba開放目錄,讓使用者讀取請最好改為0644
Protection mode for session logs [0600]?
記錄檔的檔案權限
Protection mode for ttyS0 [0600]?
連接埠的存取權限
Rings to wait before answering [1]?
enter
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)[""]?
Tsi存取控制檔的目錄所在
Pathname of Caller-ID access control list file (relative to /var/spool/hylafax)[""]?
Caller-ID 存取控制檔的目錄所在
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]?
所有的傳真最上面有一行包含了(送件人,收件人,日期,公司等)資料我們稱為tag line所使用的字型
Tag line form string ["From %%1|%c|Page %%P of %%T"]?
Tag line的格式
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]?
(一次)傳真進來的最大可接收頁數
Syslog faxility name for ServerTracing messages [daemon]?
enter
Set UID to 0 to manipulate CLOCAL [""]?
enter
Use available proiority job scheduling mechanism [""]?
enter
Are these ok [yes]?
上述設定對不對
接下來........
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中有不同的晶片組的設定檔,你可以到網路查詢你的
數據機的晶片組,使用上述目錄的相關設定檔來測試
3. 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 傳真機的狀態檔
2. bin
faxrcvd 收到傳真所要做的動作(收到傳真內定會送給FAXMaster一封信內使用超連結(ftp)來取回傳真檔
我們可以修改其收到傳真的方式,如將傳真以附件檔寄給你,或是送到印表機等
notify,notify.awk 收送傳真的通知動作
pdf2fax 將pdf檔轉為可傳真的格式tiff class F
ps2fax 將ps檔轉為可傳真的格式tiff class F
tiff2fax 將tiff傳為可傳真的格式tiff class F
3. etc
config.* 你的連接埠的設定,config.連接埠的名稱,如config.ttyS0
hosts.hfaxd client存取傳真伺服器的設定檔
lastrun 傳真伺服器最後收送的時間
setup.modem 測試數據機的程式
lutRS18.pcf tag line的字型檔
xferfaxlog 收送傳真的記錄檔
4. status
any.info 你的hylafax的版本資料
ttyS0 依你連接埠的名稱而有不同,內容為傳真伺服器的狀態
4. 基本操作
1. 新增使用者
faxadduser #其實它就是在/var/spool/hylafax/etc/hosts.hfaxd加入使用者
例如:
faxadduser -p password username
faxadduser username #不指定密碼則密碼是空白的(只要user對了不用密碼就可以傳真)
2. 刪除使用者
faxdeluser #在/var/spool/hylafax/etc/hosts.hfaxd刪除使用者
例如:
faxdeluser username
3. 查詢傳真機的狀態
faxstat 查詢/var/spool/hylafax/status/ttyS0內容
faxstat -r 查詢/var/spool/hylafax/recvq 收到的傳真
faxstat -s 查詢/var/spool/hylafax/sendq 等待傳送的傳真
faxstat -d 查詢/var/spool/hylafax/doneq 完成的傳真
(指令好像無法正確回應)
4. 查詢傳真的報表(本月以內)
xferfaxstats 其實它是依據/var/spool/hylafax/etc/xferfaxlog檔案來分析
必須要有root或是fax的權限才可以執行
5. 送傳真(snedfax)
在faxserver可以使用命令列來送傳真,其命令是sendfax,可以直接使用的檔有文字檔(不支援中文),如果要有中文必需使用bg5ps將其轉換才可以
ps檔,pdf檔,tiff檔
sendfax -n [-d 傳真號碼] 檔案名稱 #-n 不使用封面檔
sendfax -n -d 1234567 -d 2345678 mytestfile #可指定多個傳真號碼
sendfax -n -d 1234567 -a 時間 mytestfile #可以使用-a 排程
由於選項過多因此其它請自己參考man sendfax
6. 移除尚未傳送的傳真(faxrm)
一般來講自己只可以移除自己的傳真,除非你有管理者的權限,在傳真工作交付hylafax會傳回一個工作id 你可以根據工作id來刪除它
faxrm id
7. 新增數據機(faxaddmodem)
根據互動式交談設定之
5. whfc設定(Windows HylaFax Client尚有其它的軟體可以使用,你可以在sourceforge.net上搜尋)
(wiin xp/2000建議不要使用本程式,因為要先執行wfhc的程式才可以傳真)
一般的傳真軟體都是使用列印傳真,其好處是不管原來是那一種格式都會轉成同一種格式ps
再傳送到fax server上等待傳真
安裝時選unstanrd將德文版的部份取消(有時會造成顯示錯亂)
* win98
* 直接安裝沒有問題 win95
先到www.cnet.com找尋winsock2.0將其下載安裝後再安裝whc,
有時在執行登錄system時會有程式啟動錯誤(可能時不支援vc++的程式庫),
手動編輯機碼 HKY_LOCAL_MACHINE :
內的/system/CurrentControlset/control/print/monitors/WHFcMon
1.新增字串值 Driver 值 whfcmon.dll
2.新增字串值 spooldir 值 c:windows emp
3.新增Dword StrangeChar 值 14
* 後重開機 winnt
列印傳真時會有問題,必需先執行whfc後才可傳真 安裝完畢後:
新增印表機 http://www.frogfax.com/modules/spxsection/item.php?itemid=7
95->apple laser writer
98-> apple laser writer 16/600 ps
port:WHFC FAX : (WHFC faxprinter port)
設定whfc
1. 先在server上執行faxadduser test
2. 請在程式集whfc執行 whfc
3. 在fax選單中選user preferences 填入name:test,login:test,e-mail:test
4. HYLAFAX基本上是以E-MAIL來通知使用者你所交付傳真的狀況 在fax 選單中選system preferences 填入host name 可填入ip(裝有hylafax的linux server)
1. 現在使用列印到apple laser writer 印表機時會有呼叫whfc填入號碼就可以傳真了 接收傳真的設定
hylafax的收/送傳真是分開設定的如下介紹如何設定接收部份
要設定接收傳真必須使用faxgetty 詳細的內容可以使用man faxgetty
請在/etc/inittab中找到#run gettys in standard runlevels下
加入一行7:2345:respawn:/usr/sbin/faxgetty ttyS0 #其中ttyS0是你數據機的連接埠
如此faxgetty便可以監聽ttyS0以便回應傳入的要求
重新開機
執行ps -aux 可以看到 faxgetty 在執行
2. 收到傳真轉為mail的副件寄給使用者-(目前程式有個功能FaxDispatch(派發收到傳真)
修改收到的傳真變成e-mail寄給一堆人,只要修改/etc/hylafax/etc/FaxDispatch中的檔案格式(我有試過tif,及 pdf),及別名/etc/aliases中 Faxrecv,其中的收件人就可以收到傳進來的傳真,可以是pdf也可以是tif的格式
*現在可以收傳真但是,我想將傳真直接e-mail給使用者則管理接收傳真後的通知程式位於
/var/spool/fax/bin/faxrcvd,修改其通知部份為使用metasend這個軟體其內容為下:
============================================================================
#! /bin/sh
# faxrcvd file devID commID error-msg
# 變數為四個最新版已經改為6個
if [ $# != 4 ]; then
echo "Usage: $0 file devID commID error-msg"
exit 1
fi
test -f etc/setup.cache || {
SPOOL=`pwd`
cat<" -f $FILE -m image/tiff -s "FaxGetty $SENDER" -S 4000000 -t $TOADDR
#刪除收到的檔案(其實不刪除hylafax也會自動七天後刪除,要依的收到的量為主,收到傳真量大
#則每收一通刪一通
rm $FILE
這是我後來修改的,另外將收到的傳真依時間給標題
RECV_DATE=`date +%c`
metasend -b -F "Hylafax 傳真接收代理" -f $FILE -m image/tiff -s "$RECV_DATE $SENDER" -S 4000000 -t $TOADDR
==========================================================================================
metasend使用參數
-b 非互動式(批次模式)
-F 送件者
-f 檔名
-m 指定MIME-type(image/tiff)
-s 標題
-S 超過大小分割郵件(不指定也可以)
-t 收件人,因為此程式設為FaxMaster,只要在/etc/aliase加入 FaxMaster: e-mail1,e-mail2
就可以指定多個收件人
3. 如果你是用分機來做fax server.
1. 不要檢查撥號音
2. 外線撥0或9
ModemDialCmd: ATDT9W%s #撥 9
ModemDialCmd: ATDT0W%s #撥 0
雜項: hosts.hfaxd的格式:
除了一般主機的名字外使用者的格式為
client:uid:passwd:adminwd(簡易設法只設名字)
-------------------------------------------
test
my
teddy
===========================================
即可
目前這個檔案格式有變,請使用faxadduser /faxdeluser,其內容我看變為如下
^test@
win98看tif檔的程式
最好的程式是98內建的程式,我試過大部份別的透圖軟體,均不及格(顯示的比例有誤)
在win98我的電腦->控制台->新增移除程式->windows 安裝程式->選附屬應用程式->imaging
將其打勾裝上去,就可以看tif檔
tif的好處是分頁
為什麼要設定列印傳真
一般的client 軟體是利用Apple Laser Writer(印表機的驅動程式)將原始資料列印為ps檔,再將這個檔案傳送到hylafax來傳送
這樣我不管是什麼資料都可以傳送
收到傳真後列印
會使用到fax2ps 及 gs
先用fax2ps將收到的傳真轉為ps,再使用gs 處理後印出來(印到那裏你自己決定)
修改faxrcvd內容中metamail那一行以下面這一行取代,再依據自己環境更改
/usr/bin/fax2ps $1 | gs -q -sDEVICE=ljet3 -dNOPAUSE -sOutputFile=- | lp
統計報表
在你裝好之後它會在/etc下的crond.daily及crond.hourly各加入一個檔hylafax,
在crond.daily使用程式faxcron的工作後送一份統計報表給faxmaster
在crond.hourly使用程式faxqclean清除一些舊的收送檔
以上你均可以也可以手動操作
使用samba的印表機來傳真
有一種方法是使用samba分享的印表機來傳真
其原理是在samba建立一個虛擬印表機,一收到ps檔後會email送給使用者一封信(因為尚未指定傳真號碼)
使用者由email-link到網頁,再由網頁輸入傳真號碼,正式交付傳真
請參考http://inconnu.isu.edu/~ink/new/projects/smbfax
其實hylafax上面的HYLAFAXFAQ有詳細的資料可以參考
和其它CLIENT 的軟體
其它windows clinet軟體介紹
1.winprinthylafx
(http://winprinthylafax.sourceforge.net/):這個軟體是最簡單的client軟體,但有兩個問題,
1. 不可以使用其首頁所寫的12/640 的印表機(中文字會支離破碎),要使用16/600或其它
2. 一般設定好了傳送出去的文件每頁的抬頭會被截斷,經測試因其預設的文件為US Letter(你要將其改為A4,除了印表機,連接埠也要設)
2.frogfax
(http://www.frogfax.com/modules/spxsection/item.php?itemid=7):設是新釋放出來的免費軟體,功能較完整,我只在xp上試用,還不錯
http://csc.ocean-pioneer.com/docum/csc_hylafax.html |