Вопросы и Ответы

Что такое "сервер факсовой печати"?

Сервер факсовой печати - это набор нескольких программ: efax и сервер печати, объединенные таким образом, что посылка факса с компьютера превращается в посылку распечатки на принтер.

Как его установить?

Установка efax в качестве сервера факсовой печати включает в себя несколько задач. Я решал их несколько раз и собрал весь опыт в этом mini-HOWTO, так что комментарии только приветствуются (<erez@newplaces.com>). Я описываю здесь задачи и их решения. Вот все инструкции в двух словах:

Программа efax

Проверьте, что у вас установлен пакет 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

Запись в printcap

В документации efax отсутствует двоеточие в конце записи printcap.

Решение: Добавьте следующую запись в /etc/printcap:

fax:\
        :lp=/dev/null:\
        :sd=/var/spool/fax:\
        :if=/usr/bin/faxlpr:

Команда fax

Используйте жесткую (hard link), а не символьную ссылку (symbolic) на команду fax.

Запустите команду:
ln /usr/bin/fax /usr/bin/faxlpr

Файл /usr/bin/fax

Отредактируйте /usr/bin/fax, согласно вашим предпочтениям:

выберите правильный Класс факса для вашего модема:
CLASS=2.0
Установите поле FROM="ваш международный телефонный номер"
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 ;;

Каталог /var/spool/fax

Создайте каталог /var/spool/fax
mkdir /var/spool/fax
chmod 777 /var/spool/fax

lock-файл

lock-файл (/var/spool/fax/lock) создается с неправильными правами. Исправьте это:

touch /var/spool/fax/lock ; chmod 644 /var/spool/fax/lock

Файл /dev/modem

Программа 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

Каталог /var/lock.

Смените права доступа к каталогу /var/lock

chmod 1777 /var/lock

Как послать факс с сервера?

Вам нужно указать опции -Pfax и -J<номер факса>

Используйте одну из команд:

lpr -Pfax -J <номер факса> [имена файлов]
любая команда | lpr -Pfax -J<номер факса>

Как мне указать номер факса?

После опции -J.

Как мне послать факс с другого Unix в сети?

Добавьте следующую запись в файл /etc/printcap

fax:\
        :sd=/var/spool/fax:\
        :mx#0:\
        :sh:\
        :rm=машина.домен:\
        :rp=fax:

создайте каталог /var/spool/fax и добавьте имя клиента в файл /etc/hosts.lpd на сервере.

Посылка факса осуществляется так же, как и выше.

Примечание:

Заголовок, который добавляется к страницам факса программой efax, не содержит имя пользователя, посылающего факс, впрочем это можно исправить.

Пользователям Caldera и LPRng

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