热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

构建简单易用的FAX服务器

文章标题:构建简单易用的FAX服务器。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  作者: CCID
  
  
  摘要:本文说明了如何将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.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"选择网络上的FA
推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
author-avatar
Ss_爱咩咩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有