Факс-сервер печати - это набор из нескольких программ: efax и принт-сервера,
настроенных с таким расчетом, чтобы сделать отправку факсов такой же легкой,
как и печать на принтере.
При настройке efax в качестве факс-сервера печати можно наткнуться на
несколько проблем. Так как я работал с ним некоторое время, я решил собрать
их решения в mini-HOWTO, комментарии приветствуются по адресу
(erez@newplaces.com). Я привел здесь и проблемы и их решения, и все
инструкции рахбил по коротким шагам :
ПО efax
Убедитесь, что у вас есть пакет efax.
На RPM-основанных системах используйте команду 'rpm -qv efax'.
Вы можете взять исходные тексты efax в формате tar.gz с sunsite:
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
The printcap entry.
В документации efax пропущено : в конце записи printcap.
Решение: Добавьте следующие строки в /etc/printcap:
fax:\
:lp=/dev/null:\
:sd=/var/spool/fax:\
:if=/usr/bin/faxlpr:
Команда fax
Используйте для команды fax жесткую связь, а не символическую.
Команда:
ln /usr/bin/fax /usr/bin/faxlpr
Файл /usr/bin/fax.
Отредактируйте /usr/bin/fax под ваши потребности:
Выберите правильный Fax Class для вашего модема:
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`
а в строках 586,587 не должно быть знаков '-' в строках:
0) echo "$l" | mail -s "fax to $num succeeded" $user@$host ;;
*) echo "$l" | mail -s "fax to $num failed " $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
Вы должны использовать fax-принтер, используя опцию -P, и опцию -J с номером
факса.
Ипользуйте одну из приведенных команд lpr:
lpr -Pfax -J <Номер-Факса> [имена-файлов]
любая_команда | lpr -Pfax -J <Номер-Факса>
После опции -J.
Добавьте указанную запись в файл /etc/printcap и клиентские Linux системы,
создайте каталог спула, и т.д...
fax:\
:sd=/var/spool/fax:\
:mx#0:\
:sh:\
:rm=host.domain:\
:rp=fax:
Добавьте имена клиенских машин в /etc/hosts.lpd на машине факс-сервера.
Используйте его как было описано выше.
Заметьте:
Заголовок, который efax добавляет на страницы факса не соответствует имени
пользователя, который отправил факс. (может быть обновлено).
ПО управления печатью LPRng использует другие методы обработки управляющего
файла.
Спасибо Luca Montecchiani (m.luca@usa.net), который обнаружил проблему и ее
решение. Вот обновленный файл /usr/bin/fax. Следующие строки заменяют две
строки cfile=... под номерами 586,587
# Modified to work also with the LPRng package
# 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
|