Главная > Операционные системы > Linux >
Настройка факс сервера под Linux (hylafax). Часть 1

Настройка факс сервера под Linux (hylafax)

Часть 1

Введение

Итак. Возникла острая необходимость инсталляции чего-то, что позволяло бы получать факс на компьютер и отправлять его на определенный адрес электронной почты. Имелось задание, имелось уже около 17.00 времени, имелся компьютер и больше ничего. А нужно было иметь возможность получать факсы сразу по нескольким линиям. Больше двух. Откопали несколько модемов Courier внешних. И, о чудо! Мультикарту от Cronyx. Старая такая, ISA еще, но восьмипортовая, что делало задачу исполнимой. Т.к. к ней можно было подсоединить оставшиеся модемы. Итак. Компьютер, с одним ISA слотом, внутри него стоит мультикарта CRONYX. К двум стандартным COM портам я подсоединил два курьера и к двум выходам карточки я подсоединил оставшиеся два модема. Осталось все это настроить. В моей сумке на тот момент из дистрибутивов был только SuSE Linux 7.2 и я решил сделать все на нем. Тем более что дистрибутивы от SuSE мои самые любимые. Не знаю почему, но так уж повелось. Инсталляция прошла "на ура", впрочем, как и всегда и дистрибутив встал. Только зачем-то я проинсталлировал и KDE, в качестве основного языка выбрал русский и при загрузке у меня начала грузится графическая оболочка еще. KDE был в крокозябрах... Вернее в вопросиках. Не порядок, подумал я, хотя для факс сервера мне нафиг не нужен был KDE, а в консоли все было в порядке, хоть и по-русски. А по-русски я проинсталлировал все потому, что у меня возник очередной оппонент в асе, который говорил, что русский даже в последних версиях Linux настроить очень сложно. В консоли было все хорошо, а вот в X-ах - плохо - вместо русских букв одни вопросики :-( Ну ничего. По пиктограммам я нашел панель управления KDE, зашел туда, открыл опцию работы с языками и увидел, что у меня основной язык русский, а вот почему-то кодировка стоит ISO8859-1, что никаким боком не относится к русскому языку. Ну я быстро выбрал из списка koi8-r, и перегрузил KDE. После чего все стало на свои места - т.е. начало работать по-русски. Так что вот. Глюк, конечно, но он очень быстро устранился и при этом без всяких проблем и вопросов. Ладно. X-ы мне нафиг не нужны, а он при загрузки грузит их. Ну это стандартная проблема. Я быстро пошел в /etc/inittab и в самом его начале увидел такую строчку:

#default runlevel id:5:initdefault:

Непорядок. В этой строчке должна быть цифра три, и тогда будет грузится консоль. Итак, я заменил эту строчку на:

#default runlevel id:3:initdefault:

и сохранил изменения. После этого при перезагрузке я стал попадать сразу в консоль, что мне, в общем-то было и нужно. А если вдруг бы мне захотелось обратно загрузить X-ы, то из консоли достаточно набрать startx и все... Ну это мы отвлеклись от темы. Итак. Этап первый.

Настройка мультикарты

Ну это довольно просто. С учетом того, что я ее много раз настраивал. Карточка обычная, не PNP. Стояло она на пятом прерывании. В общем, я полез в /etc/init.d/serial и в этом файле дописал:

run_statserial -b /dev/ttyS2 uart 16550A port 0x200 irq 5 ^fourport
run_statserial -b /dev/ttyS3 uart 16550A port 0x208 irq 5 ^fourport
run_statserial -b /dev/ttyS4 uart 16550A port 0x210 irq 5 ^fourport
run_statserial -b /dev/ttyS5 uart 16550A port 0x218 irq 5 ^fourport
run_statserial -b /dev/ttyS6 uart 16550A port 0x220 irq 5 ^fourport
run_statserial -b /dev/ttyS7 uart 16550A port 0x228 irq 5 ^fourport
run_statserial -b /dev/ttyS8 uart 16550A port 0x230 irq 5 ^fourport
run_statserial -b /dev/ttyS9 uart 16550A port 0x238 irq 5 ^fourport

Итак, все 8-мь портов карты прописаны. Начал я с ttyS2, т.к. порты ttyS0 и ttyS1 заняты уже стандартными COM портами компьютера. Итого, вместе с ними, у меня получилось 10-ть портов. Не плохо так :-) Да! Если бы у нас была PnP карточка, то тогда нам бы пришлось писать строчки типа:

run_statserial /dev/ttyS2 $(AUTO_IRQ) autoconfig
run_statserial /dev/ttyS3 $(AUTO_IRQ) autoconfig
run_statserial /dev/ttyS4 $(AUTO_IRQ) autoconfig
run_statserial /dev/ttyS5 $(AUTO_IRQ) autoconfig
................................................

Хотя у каждого производителя многопортовых карточек могут быть свои специфические параметры. Хоть это и редко встречается. Мне, как видите, пришлось указывать еще и параметры ввода/вывода. Благо, какие для каждого порта надо выставлять было написано в инструкции... Которая не выбросилась за ненадобностью...

Итак. Если бы мы перегрузили систему, то мы бы увидели, что система нашла нашу мультикарту и работает с ней так же, как и с внутренними портами компьютера. Можно перегрузить комп, посмотреть на строчки в которых система пишет, что все пучком и новые порты работают, подсоединить к новому порту внешний модем и убедиться (например при помощи Minicom-а), что все работает нормально и происходит обмен данными с модемом (minicom -s, потом в параметрах serial порта убираем /dev/modem и прописываем путь к порту напрямую, к примеру /dev/ttyS2). Итак. С мультикартой закончили. Переходим теперь к собственной настройке программы hylafax.

Инсталляция Hylafax

Ну, в общем, данная программа входит в состав всех последних дистрибутивов, которые я встречал. Может она входит и в состав всех старых дистрибутивов, которые я тоже встречал, но т.к. в тот момент мне не надо было настраивать fax сервер, я не обращал внимания на эту программу. Так что просто при инсталляции выбирайте этот пакет и данный раздел можно будет Вам не читать. Ну а у тех, кого данного пакета нет или он хочет собрать его их исходников, то вот Вам:

Сайт программы. На нем находится почти все, что Вам нужно для настройки fax сервера во всех его проявлениях. Только потрудиться немного придется... Ну или почитать данную статью :-) но вернемся к "нашим баранам", т.е. инсталляции программы. Все исходники, бинарники и т.д. лежать на FTP сайте проекта - ftp://ftp.hylafax.org/, а конкретно - исходники лежат здесь, а бинарники - здесь. Как инсталлировать программу из rpm, а надеюсь объяснять не надо, а как инсталлировать из исходников в принципе написано здесь. Ну а в кратце, разархивируете куда-нибудь скаченные исходники (к примеру командой 'tar xzvf hylafax-version.tar.gz'), и потом даете команды:

./configure (use all of the defaults)
make
make install (должны обладать правами root)

В принципе все. У Вас, конечно, может оно и не встать, по причине того, что в системе не стоят такие вещи, как

libtiff - можно взять отсюда http://www.libtiff.org
Ghostscript - можно взять здесь http://www.cs.wisc.edu/~ghost/
zlib - обычно уже входит в комплект поставки libtiff или Ghostscript
awk, gawk, mawk, или nawk - к примеру mawk можно взять здесь - ftp://ftp.whidbey.net/pub/brennan/
sendmail или совместимый с ним SMTP сервер - sendmail можно взять отсюда http://www.sendmail.org/

Хотя, я повторяю, можно не заморачиваться - все это обычно уже есть в существующих дистрибутивах.
Ну можно сказать, что мы проинсталлировали hylafax. Ну а дальше -

Конфигурирование hylafax

Причем конфигурирование на основе системы SuSE 7.2.
Итак. Для конфигурации hylafax существует неплохая программа - faxsetup. С ее помощью всегда производят начальное конфигурирование hylafax. С ее помощью добавляют и конфигурируют модемы на начальном этапе. Итак, пускаем данную программу и начинаем отвечать на вопросы. Вопросы простые и понятные, так что останавляваться на них не будем. Остановимся только на некоторых вещах, которые могут вызвать проблемы. После окончания конфигурирования модема, программа настройки начинает тестировать модем. Выглядит это как подбор скорости модема, 38400, 19200 и так далее вниз. Система ДОЛЖНА определиться со скоростью модема. Если она дойдет до скорости 2400 и ничего не найдет, а напишет что-то вроде - не смогла определить или что-то еще, то модем НЕ СКОНФИГУРИРОВАН (даже, если в момент работы лампочки на модеме и мигали - т.е. происходил обмен данными)! И надо искать причины этого. У меня, к примеру, модемы на мультикартах не детектились. Как оказалось - проблема в том, что был конфликт по IRQ мультикарты с USB. Нафиг отключив USB у меня сразу все стало детектится. После инсталляции модема, прописывается файл вида config.ttySx в /var/spool/fax/etc (вообще, все что имеет отношение к hylafax лежит в директориях /var/spool/fax - здесь, конфигурации программы, спулы всякие (т.е. отправленные и полученные факсы) и т.д.) и еще в /usr/lib/fax - здесь располагаются всякие программы, демоны и т.д. У меня еще был один баг, который я решил, внимательно посмотрев на исходники программы. При инсталляции у меня писалось в /etc файлы типа config.ttySx, а config._ttySx в результате чего модемы просто не были сконфигурированы, а просто мигали лампочками и упорно не брали трубки. Я уже тогда вешаться хотел. Но посмотрев исходники, и исправив все, начал тащится :-) Ну да ладно. Итак, сконфигурировав модемы, мне осталось заставить сделать так, чтобы система реагировала нужным образом на входящий звонок. Для этого я полез в /etc/inittab и там добавил строчки вида:

mo1:35:respawn:/usr/lib/fax/faxgetty /dev/ttyS0
mo2:36:respawn:/usr/lib/fax/faxgetty /dev/ttyS1
mo3:37:respawn:/usr/lib/fax/faxgetty /dev/ttyS2
mo4:38:respawn:/usr/lib/fax/faxgetty /dev/ttyS3

Я вставил эти строчки после строки:

#fax getty (hylafax)

Все. После этого система ждет входящих звонков и при звонке принимает факсы и складывает их в /var/spool/fax/recvq Файлы она хранит в виде tiff. ДА! Забыл. Был у меня еще один глюк. Faxgetty хотела почему-то конфиги все в /var/spool/fax/bin/etc/ Т.к. было уже очень поздно, я не стал особо вникать, чего это она вдруг, а просто скопировал /var/spool/fax/etc в /var/spool/fax/bin. После этого у меня просить перестали, а начали работать. Все классно, Факсы принимаются, процесс, так сказать, идет. Но передо мной стояла еще одна задача - полученные факсы отправлять по определенному адресу электронной почты. Итак

настройка системы отправки полученных факсов на электронную почту

Вообще, как оказалось, это делается довольно просто. Что делать с полученными факсами отвечает скрипт faxrcvd, который располагается в /var/spool/fax/bin. Для организации отправки факсов, я переписал существующий скрипт (стандартный скрипт только отправляет уведомление факсмастеру о том, что пришел новый факс) другим - вот этим, и добавил к нему скрипт, который собственно кодирует tiff и отправляет его на e-mail. Просто записывайте эти скрипты в /var/spool/fax/bin/, расставляйте permissions 755 и владельца/группу root/root. И все. После этого при получении факса они будут сохраняться в /var/spool/fax/recvq и отправляться по адресу FaxMaster. Этого факсмастера надо в скрипте заменить на нормальный адрес электронной почты. К примеру - victor@linux.ru :-) И, собственно говоря, все. Ежели Вы не ходите, чтобы у Вас в спуле сохранялись полученные факсы - в скрипте faxrcvd раскомментируйте строчки

if faxrcvd-mail "$FILE" "$DEVICE" "$COMMID" "$MSG" "$TOADDR" fax | \
/usr/sbin/sendmail $TOADDR; then
rm -f $FILE
fi

И все. Входящие факсы НЕ будут сохраняться. Скрипт faxrcvd можно модифицировать по своему вкусу. К примеру, так, чтобы отправлялся не на один адрес, а на два и т.д. и т.п.

Итак. Я рассказал в этой части статьи о том, как настроить факс сервер с отправкой полученных факсов на один адрес электронной почты. Во второй части статьи я расскажу о том, как организовать отправку факсов через этот факс сервер и как можно работать с факс сервером через клиентское ПО, в т.ч. и при помощи Windows клиентов. Все замечания, комментарии, пожелания и ругань, просьба отправлять мне.

Федосеев Виктор (Firebird). victor@linux.ru, 2001
Источник: linux.ru


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

© УкрFAQ 2011
Сайт создан в системе uCoz