摘要: 本文說明了如何將Linux配置為一個fax服務器。
一、介紹
下面介紹的配置采用了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%cPage %%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.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這份傳真就會被送到 <
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這份傳真就會被送到 <
印對話框(如果你運行了respond.exe),詢問對方傳真號碼,輸入傳真號碼並選擇OK這份傳真就會被送到 <