Головна > Операційні системи > Unix/Linux >
Налаштування факс сервера під Linux (hylafax)

Налаштування факс сервера під 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, VI.2011


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

Головна  Алфавітний Індекс  Довідка  Додати FAQ  E-mail
Новини  Пошук по сайту

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