[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > Linux > 正文
如何將Linux配置為一個FAX服務器
本文出自:http://www.zdnet.com.cn 作者: ccid (2002-01-11 08:10:00)
一. 介紹

  下面介紹的配置採用了Hylafax 4.0p2.rjc11,其運行Mandrake7.1之上。在服務
器端,Hylafax由三個守護程序組成:
  faxq: 主要的服務程序
  hfaxd: 管理網絡連接
  faxgetty:管理調制解調器間的會話
  在客戶端運行的程序如下(這些程序也可以在服務器上運行):
  sendfax:發送傳真
  faxstat:檢查傳真隊列
  faxrm:從隊列中刪除一項工作。
  相關的配置文件在/var/spool/fax/etc/文件夾內。
二. 安裝

  我強烈建議你安裝以下軟件包(它們都包含在Mandrake 7.1中):
    ghostscript ftp://ftp.cs.wisc.edu/pub/ghost/aladdin
    libtiff ftp://rufus.w3.org/linux/redhat
  也可以從官方網站http://www.hylafax.org/links.html獲取這些資源。安裝Hylafax,
需要安裝下列RPM包:
    rpm -ivh hylafax-common-4.0pl2.rjc11-3mdk
    rpm -ivh hylafax-client-4.0pl2.rjc11-3mdk
    rpm -ivh hylafax-server-4.0pl2.rjc11-3mdk
三. 配置Hylafax

  運行下列命令對服務器進行配置:
  faxsetup -server (必須以root身份進行該操作)
  除了以下的幾項外,對其它的詢問選項都選取OK,即選取默認設值:
  ﹒ Country code [1]? enter 33 for France
  ﹒ Area code []? enter 1 for Paris
  ﹒ Long distance dialing prefix [1]? enter 0
  ﹒ International dialing prefix [011]? enter 00
  ﹒ Dial string rules file [etc/dialrules]? enter etc/dialrules.europe
  ﹒ Serial port that modem is connected to []? enter ttyS0 (for COM1) or 
ttyS1 (for COM2)
  Hylafax的默認設置在啟動時並不自動的調用守護程序faxgetty,可以手工完成該
過程。 
  1、 編輯/etc/inittab文件,在文件的最插入下面的內容:
  mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0
  然運行kill -HUP l 重啟faxgetty。
  或者對rc.local文件進行改動:
  2、 在/etc/rc.d/rc.local文件中加入下面幾行:
    /usr/sbin/faxgetty -D /dev/ttys0
  並運行命令:faxgetty -D /dev/ttys0
  注意:用faxaddmodem命令可以添加多個調制解調器。
  完成這些處理,就為faxgetty創建了文件/var/spool/fax/etc/config.ttyS0
(串口1),其中包括了/dev/ttyS0調制解調器的配置。文件/usr/share/fax/hfaxd.conf
包含了hfaxd守護程序的配置,我沒有對其進行任何改動。

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

  我的調制解調器是3Com的US Robotics 56K,因此我將usr-2.0文件復制到
/var/spool/fax/etc中,改名為config.ttyS0,並做如下修改:
    # Configuration for using the Class 2.0 command interface
    # with a USR v.34 Courier or Sporster modem.
    #
    # CONFIG: CLASS2.0: USRobotics*-*
    #
    CountryCode: 33
    AreaCode: 1
    #FAXNumber: your number ex (for france): 0134123412
    LongDistancePrefix: 0
    InternationalPrefix: 00
    DiadStringRules: etc/dialrules.europe (Important .europe !)
    ServerTracing: 1
    SessionTracing: 11
    RecvFileMode: 0600
    LogFileMode: 0600
    DeviceMode: 0600
    RingsBeforeAnswer: 1
    SpeakerVolume: off
    GettyArgs: "-h %l dx_%s"
    #LocalIdentifier: "Your Company" (uncomment if wanted on the fax)
    #TagLineFont: etc/lutRS18.pcf (idem)
    #TagLineFormat: "De %%l|%c|Page %%p sur %%t" (idem)
    #MaxRecvPages: 25
    ModemType: Class2.0 # use class 2.0 interface
    ModemRate: 57600 # 38400 DCE-DTE communication rate
    ModemFlowControl: rtscts # XON/XOFF flow control assumed
    ModemDialCmd: ATDT0%s # I added 0 because I go through a PABX !!
    #ModemNoFlowCmd: AT&H0&I0&R1 # setup modem for no flow control
    ModemHardFlowCmd: AT&H1&I0&R2 # setup modem for hardware flow control
    #ModemSoftFlowCmd: AT&H2&I2&R1 # setup modem for software flow control
    #ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop resets modem
    #ModemSetupDCDCmd: AT&C1 # setup so DCD reflects carrier (or not)
    ModemResultCodesCmd: ATQ0X4 # enable extended result codes
    #ModemSetupAACmd: AT+FAA=1
    #ModemSetVolumeCmd: "ATM0 ATM1 ATM1 ATM1 ATM1"
    Class2BUGCmd: AT+FBU=0
    Class2CQQueryCmd: !(0),(0) # override modem response
    Class2NRCmd: AT+FNR=1,1,1,0
  接下來在/var/spool/fax/etc/host中添加以下幾行:
    localhost
    192.168.0.1
  允許所有在域192.168.1.0中的機器使用傳真。 
四. 啟動Hylafax

  若要在啟動的時候自動的運行Hylafax,在Mandrake中運行drakxservices命令,
Red Hat中運行setup命令,接著手工運行下面的命令:
    /etc/rc.d/init.d/hylafax start
  如果進程列表(ps -e)中沒有faxgetty,試試下面的命令:
    /usr/sbin/faxgetty -D /dev/ttyS0
五. 如何使用Hylafax

  發送傳真:
    sendfax -n -d number file1 file2 
  檢查結果:
  faxstat -s (顯示隊列中等發送的傳真)
  faxstat -d (顯示已發送的傳真)
  faxstat -r (顯示接收的傳真)
  從隊列中去除一個傳真:
  faxrm number_of_job
  清除緩沖池:
  faxqclean
  顯示統計結果:
  faxcron

六. 在網絡中使用Hylafax

  服務器的配置:
  在http://www.hylafax.org/links.html上你可以找到很多關Hylafax的鏈接,
我選擇在
  http://www.boerde.de/~horstf下載Printfx和Repond   

  需要下載三個文件:
  printfax.pl(perl script)
  respond.zip(respond.exe的壓強包)
  smb_conf.add(要添加到/etc/smb.conf的模塊)
  將printfax.pl復制到/usr/bin/目錄下,並做如下修改:
    ### Format of commandline
    # $cmdlinefmt=mgetty;
    $cmdlinefmt=hylafax; 
    ### The faxspoolprogram
    ### for mgetty+sendfax:
    # $faxspool = /usr/bin/faxspool;
    ### for hylafax:
    $faxspool = /usr/bin/sendfax;
    ### Additional faxspool args (e.g. header, coverpage)
    ### empty:
    @faxspool_args = qw(-n);
    ### for mgetty+sendfax with a special header:
    # @faxspool_args = qw( -h /usr/local/etc/mgetty+sendfax/faxheader.smb);
    ### for hylafax with send email when job is done or requeued and use
    ### a4 sized paper:
    # @faxspool_args = qw(-D -R -s a4);
  注意:在修改前請檢查printfax.pl的版本號,也許你下載的版本已經做了修改了。
  在/etc/smb.conf中添加smb_conf.add模塊:
    [Fax] comment = Fax Printer
    public = yes
    postscript = yes
    print command = ( /usr/bin/printfax.pl %I %s %U %m; rm %s ) &
    printable = yes
    writable = no
    path = /var/spool/samba
  檢查print命令,特別是windows2000下的打印命令。
  重啟Samba。/etc/rc.d/init.d/smb restart
  客戶端的配置:
  下面是在WINDOWS95/98/NT/2000下典型的客戶端配置。安裝Respond.zip,其中包括
config.exe和respond.exe:
  1、將這兩個文件復制到widows目錄下,如c:windows
  2、在START->PROGRAMS->Start下做一個respond.exe的鏈接(如何在win2000下做快
捷鏈接,請查找win2000的幫助)。
  3、運行respond.exe或者重啟計算機。
  接著必須創建網絡打印機:
  1、點擊START->printers->add
  2、選擇網絡打印機
  3、點擊"browse"選擇網絡上的FAX打印機(Samba打印機)
  4、選擇HP->HP Laserjet 4/4m postscript的驅動程序
  5、不要打印測試頁 
  6、創建完打印機,到START->Printers中點擊FAX打印機的屬性。
  7、在屬性對話框中點擊detail及spooler按鈕。
  8、選中"Start printing after the last page"
  客戶端的安裝到這裡就完成了。下面,打開Wordpad輸入一些文本在fax打印機上打印!
接著屏幕上出現響應打印對話框(如果你運行了respond.exe),詢問對方傳真號碼,輸入傳
真號碼並選擇OK這份傳真就會被送到hylafax傳真服務器了。
  在服務器上輸入faxsat -s檢查系統是否工作正常,正常情況下應該能夠看到剛剛
發送的傳真。
  Linux下客戶端的典型配置:
  使用Hylafax網站上的實用工具。 
七. 用FAX發送郵件

  在服務器端StarOffice可以用FAX發送郵件。另外,數據庫可以放置在網絡的任何
地方,並且能被StarOffice(通過ODBC,JDBC)訪問。用spadmin工具配置電子傳真的
輸出:faxspool(PHONE)(TMP)。
  在傳真文件中設置@@#num_tel_fax@@,用數據庫的字段名替代num_tel_fax。
StarOffice的幫助文件中有全部相關解釋。
  這種方式的缺點是:你必須在傳真服務器上安裝StarOffice。(在網絡中用respond
發送傳真郵件時並不直接與StarOffice聯系,因為必須手工輸入接收方的傳真號碼!)我
現在正在研究另外一種解決方案。
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
如何將Linux配置為一個FAX服務器 (2002-01-11 08:10:00)
命令詳解:efax (2001-05-23 09:26:34)
faxsrv-mini-HOWTO 傳真機服務器 (2001-04-27 15:28:03)
用Linux(FreeBSD)當Windows的Fax Server (2001-04-16 14:14:48)
 

★  樊強制作 歡迎分享  ★