电脑技术学习

OpenBSD+Samba+eFax架设传真服务器

dn001
1、编译安装相关程序,Samba,GhostScript,eFax,下面是自己处理过的三个port,解压到/usr/ports目录直接make install即可
http://zenz.minidns.net/download/samba-3.0.1-port.tgz
http://zenz.minidns.net/download/ghostscript-7.05-port.tgz
http://zenz.minidns.net/download/efax-0.9-port.tgz

2、配置efax
把/usr/local/share/examples/efax.rc.sample复制到/etc/efax.rc并修改以下项目:

DEV=tty00 # 这里是你的Modem所在位置,在COM1就是tty00,COM2则是tty01,如此类推
FROM="+86 21 00000000" # 这里填入对方回发传真时应该发到哪个号码
NAME="zenz.minidns.net" # 这里是对方看到传真时的发送者
ANSRINGS=1 # 铃响几次后自动接受传真
ANSFNAME="%Y%m%d%H%M%S" #接受到的传真保存的格式(20040118114509)
FAXMGR=zenz # 接受到传真后,发邮件通知此用户
INCOMINGDIR=/var/spool/fax/incoming # 接受到的传真存放位置
LOGDIR=/var/log/fax # 运行纪录存放位置

然后建立相关的目录:

mkdir -p /var/spool/fax/incoming
mkdir -p /var/log/fax
chown -R daemon /var/spool/fax
chmod -R 777 /var/spool/fax
chmod 660 /var/log/fax

修改/etc/printcap文件,加入以下打印设备设置:

fax|Fax Printer:
:lp=/dev/null:sd=/var/spool/fax:if=/usr/local/bin/faxlpr:

配置完毕后,可以发送传真试一试
lpr -Pfax -J 12345678 /usr/local/share/ghostscript/7.05/examples/golfer.ps
其中12345678是接收方传真号码
配置接收很简单,修改/etc/ttys,找到tty00(跟你的Modem对应)一行
修改成这样:

tty00 "/usr/local/bin/fax answer" unknown on

重新启动机器后,从另一传真机发传真过来看看。
在console上发送跟接受正常后,就可以做下一步,用Samba来做传真共享,这涉及到Samba的配置,就不详细说了,主要是传真打印机的设置

[Fax]
comment = Fax Printer
path = /tmp
read only = No
guest ok = No
force user = root
printable = Yes
print command = (num=`/usr/local/sbin/faxnumber %M`;
lpr -Pfax -J "$num" %s;
rm %s; /usr/local/bin/faxpopup %m "$num") &

这里用到一个叫做faxnumber的程序,这其实是一个很简单的telnet客户端,一旦有文件被打印到这个传真打印机,就启动这个faxnumber,登录到发送者的机器,等待返回的信息(发送到的传真号码)。
修改/etc/services加入:

faxnumber 5555/tcp # FaxNumber Service

以下为faxnumber的源程序:
faxnumber.c
http://zenz.minidns.net/download/faxnumber.c

在Windows机器上面,要运行这个响应服务器:
respond-1.6.0beta.zip
http://www.boerde.de/~horstf/download/respond-1.6.0beta.zip

参考资料:
http://robert.silve.free.fr/doc/fax/
http://www.boerde.de/~horstf/

标签: