Сервер факсовой печати - это набор нескольких программ: efax и сервер печати, объединенные таким образом, что посылка факса с компьютера превращается в посылку распечатки на принтер.
Установка efax в качестве сервера факсовой печати включает в себя несколько задач. Я решал их несколько раз и собрал весь опыт в этом mini-HOWTO, так что комментарии только приветствуются (<erez@newplaces.com>). Я описываю здесь задачи и их решения. Вот все инструкции в двух словах:
Проверьте, что у вас установлен пакет efax.
На системах, основанных на RPM, это будет команда 'rpm -qv efax'.
Вы можете взять исходные тексты efax с серверов sunsite и redhat: ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/fax/efax08a.tar.gz или пакет rpm: ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/efax-0.8a-3.i386.rpm
В документации efax отсутствует двоеточие в конце записи printcap.
Решение: Добавьте следующую запись в /etc/printcap:
fax:\ :lp=/dev/null:\ :sd=/var/spool/fax:\ :if=/usr/bin/faxlpr: |
Используйте жесткую (hard link), а не символьную ссылку (symbolic) на команду fax.
Запустите команду:
ln /usr/bin/fax /usr/bin/faxlpr |
Отредактируйте /usr/bin/fax, согласно вашим предпочтениям:
выберите правильный Класс факса для вашего модема:
CLASS=2.0 |
NAME="Ваше имя" |
TELCVT='sed -e s/+972/0/ -e s/+/00/' # Израиль |
Исправьте ошибку в строке 586, смените cfile=... на две следующие строки:
cfile=`/usr/bin/tail -1 lock` cfile=`cat $cfile` |
Не должно быть знаков '-':
0) echo "$l" | mail -s "факс на $num послан" $user@$host ;; *) echo "$l" | mail -s "факс на $num не прошел" $user@$host ;; |
lock-файл (/var/spool/fax/lock) создается с неправильными правами. Исправьте это:
touch /var/spool/fax/lock ; chmod 644 /var/spool/fax/lock |
Программа efax работает с файлом /dev/modem, но не работает с символьной ссылкой, так что вам придется создать файл устройства с тем же главным (major) и дополнительным (minor) номером, как и /dev/cua?, к которому подключен модем. Чтобы разрешить доступ к факс-модему всем пользователям, файл должен иметь права доступа rw-rw-rw-.
ls -lL /dev/modem rm /dev/modem mknod /dev/modem c Mj Mi chmod 666 /dev/modem |
Mj = 5, а Mi = 64 для cua0, 65 для cua1 и т.д. Например (для cua1):
mknod /dev/modem c 5 65 |
Вам нужно указать опции -Pfax и -J<номер факса>
Используйте одну из команд:
lpr -Pfax -J <номер факса> [имена файлов] любая команда | lpr -Pfax -J<номер факса> |
После опции -J.
Добавьте следующую запись в файл /etc/printcap
fax:\ :sd=/var/spool/fax:\ :mx#0:\ :sh:\ :rm=машина.домен:\ :rp=fax: |
создайте каталог /var/spool/fax и добавьте имя клиента в файл /etc/hosts.lpd на сервере.
Посылка факса осуществляется так же, как и выше.
Примечание:
Заголовок, который добавляется к страницам факса программой efax, не содержит имя пользователя, посылающего факс, впрочем это можно исправить.
LPRng - это программное обеспечение, управляющее печатью, но использующее другой способ поддержки управляющего файла.
Luca Montecchiani <m.luca@usa.net> обнаружил и исправил эту проблему. В файле /usr/bin/fax нужно изменить две строки cfile=... (с номерами 586,587)
# Исправлено для работы с пакетом LPRng # Luca Montecchiani (08/11/97 m.luca@usa.net) if [ !-z "$CONTROL_FILE" ] then cfile=`cat tail -1 lock` cfile=`cat $cfile` else cfile=$CONTROL_FILE fi |