当前位置:Linux教程 - Linux - 简单易用的FAX服务器

简单易用的FAX服务器



        
    LinuxByte注:本站有HylaFAX下载

    原文作者:hacklinux 翻译:sword_martin


    摘要: 本文说明了如何将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|%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.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-phase.c-strasbourg.fr/inform/faxdoc/expose_fax/fonctionnement.html
    http://www.hylafax.org


    发布人:netbull 来自:LinuxAid