返回列表 回复 发帖

[其它] Hylafax 常见问题

作者: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
返回列表
开源邮件服务器 开源邮件服务器 web 开源邮件 开源 mail 开源 邮件服务器 邮件技术 mail技术 反垃圾邮件 反垃圾mail mail投递
邮件服务器 mail服务器 开源软件 mail软件 mail服务新品牌 开源邮件服务新品牌
开源mail服务新网站 邮件服务新品牌 mail tmail mailserver 163邮件 sendmail |Linux维护|Linux代维|成都Linux维护|成都Linux代维