The Easy Fax Server!
Введение
Составляющие факс - сервера, использующего Hylafax 4.0pl2.rjc11 и дистрибутив Mandrake 7.1
Серверная часть :
-
faxq - основной сервер
-
hfaxd - управляет сетевыми соединениями
-
faxgetty - управляет взаимодействием с модемом
Клиентская часть (можно использовать и на сервере) :
-
sendfax - для отправки факсов
-
faxstat - для проверки очереди
-
faxrm - для удаления задач из очереди
Конфигурационные файлы в каталоге /var/spool/fax/etc/
.
Инсталляция
Рекомендую установить следующие пакеты (входят в состав with Mandrake 7.1) :
Кроме того, данные пакеты доступны на официальном сайте http://www.hylafax.org/links.html
Если Hylafax не установился по умолчанию, выполните следующие команды (добавляем необходимые RPM пакеты) :
rpm -ivh hylafax-common-4.0pl2.rjc11-3mdk
rpm -ivh hylafax-client-4.0pl2.rjc11-3mdk
rpm -ivh hylafax-server-4.0pl2.rjc11-3mdk
Настройка Hylafax
Для настройки сервера выполните следующую команду :
faxsetup -server (с привилегией root)
Выбирайте ответы по умолчанию на все вопросы, кроме :
Country code [1]? введите 33 для Франции
Area code []? введите 1 для Парижа
Long distance dialing prefix [1]? введите 0
International dialing prefix [011]? введите 00
Dial string rules file [etc/dialrules]? введите etc/dialrules.europe
Serial port that modem is connected to []? введите ttyS0 (для COM1) или ttyS1 (для COM2)
Hylafax по умолчанию не запускает демона faxgetty. Поэтому выполняем следующие действия :
1 - Редактируем файл /etc/inittab - добавляем следующую строку в конец :
mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0
Команда
kill -HUP 1 необходима для перезапуска
faxgetty
или
Если вы хотите использовать файл rc.local :
2 - Добавляем следующую строку в
/etc/rc.d/rc.local :
/usr/sbin/faxgetty -D /dev/ttyS0
и запускаем командой :
faxgetty -D /dev/ttyS0
Обратите внимание : команда faxaddmodem предназначена для добавления дополнительных модемов.
После этих действий faxgetty создает файл /var/spool/fax/etc/config.ttyS0 (для com1), в котором находятся настройки для вашего модема, подключаемого к /dev/ttyS0.
В файле /usr/share/fax/hfaxd.conf находятся настройки для демона hfaxd, там я оставил все как было!
Возможные проблемы
Проверяем наличие модема командой probemodem. Стандартные настройки находятся в /var/spool/fax/config/
У меня модем 3Com US Robotics 56k, поэтому я взял файл usr-2.0, скопировал его в /var/spool/fax/etc/, переименовал его на config.ttyS0 и изменил его следующим образом :
# Configuration for using the Class 2.0 command interface
# with a USR v.34 Courier or Sporster modem.
#
# CONFIG: CLASS2.0: USRobotics*-*
#
CountryCode: 33
AreaCode: 1
#FAXNumber: your number ex (for france): 0134123412
LongDistancePrefix: 0
InternationalPrefix: 00
DiadStringRules: etc/dialrules.europe (Important .europe !)
ServerTracing: 1
SessionTracing: 11
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
#LocalIdentifier: "Your Company" (uncomment if wanted on the fax)
#TagLineFont: etc/lutRS18.pcf (idem)
#TagLineFormat: "De %%l|%c|Page %%p sur %%t" (idem)
#MaxRecvPages: 25
ModemType: Class2.0 # use class 2.0 interface
ModemRate: 57600 # 38400 DCE-DTE communication rate
ModemFlowControl: rtscts # XON/XOFF flow control assumed
ModemDialCmd: ATDT0%s # I added 0 because I go through a PABX !!
#ModemNoFlowCmd: AT&H0&I0&R1 # setup modem for no flow control
ModemHardFlowCmd: AT&H1&I0&R2 # setup modem for hardware flow control
#ModemSoftFlowCmd: AT&H2&I2&R1 # setup modem for software flow control
#ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop resets modem
#ModemSetupDCDCmd: AT&C1 # setup so DCD reflects carrier (or not)
ModemResultCodesCmd: ATQ0X4 # enable extended result codes
#ModemSetupAACmd: AT+FAA=1
#ModemSetVolumeCmd: "ATM0 ATM1 ATM1 ATM1 ATM1"
Class2BUGCmd: AT+FBU=0
Class2CQQueryCmd: !(0),(0) # override modem response
Class2NRCmd: AT+FNR=1,1,1,0
Далее добавляем следующие строки в /var/spool/fax/etc/host:
localhost
192.168.1
Теперь все компьютеры домена 192.168.1.0 могут использовать факс!
Запускаем Hylafax
Для автоматического запуска
Hylafax во время загрузки, используйте команду
drakxservices (для Mandrake) или
setup (для Red Hat),
далее выполните:
/etc/rc.d/init.d/hylafax start
Если
faxgetty нет в списке процессов (ps -e), выполните
/usr/sbin/faxgetty -D /dev/ttyS0
Использование Hylafax
Посылаем факс :
sendfax -n -d number file1 file2 ..
Проверяем результаты :
faxstat -s (shows fax in the queue waiting to be sent)
faxstat -d (shows faxes sent)
faxstat -r (shows faxes received)
Удаляем факс из очереди :
faxrm number_of_job
Очистить spool :
faxqclean
Статистика :
faxcron
Использование Hylafax в сети
Настройка сервера
Для сетевого использования я применил ресурсы с http://www.hylafax.org/links.html
В частности Printfax и Repond, с сайта http://www.boerde.de/~horstf/:
Загрузите следующие три файла :
- printfax.pl (perl скрипт)
- respond.zip (respond.exe)
- smb_conf.add (модуль для /etc/smb.conf)
Скопируйте файл printfax.pl в /usr/bin/ и отредактируйте для использования с hylafax :
### Format of commandline
# $cmdlinefmt='mgetty';
$cmdlinefmt='hylafax';
### The faxspoolprogram
### for mgetty+sendfax:
# $faxspool = '/usr/bin/faxspool';
### for hylafax:
$faxspool = '/usr/bin/sendfax';
### Additional faxspool args (e.g. header, coverpage)
### empty:
@faxspool_args = qw(-n);
### for mgetty+sendfax with a special header:
# @faxspool_args = qw( -h /usr/local/etc/mgetty+sendfax/faxheader.smb);
### for hylafax with send email when job is done or requeued and use
### a4 sized paper:
# @faxspool_args = qw(-D -R -s a4);
Обратите внимание :Внимательно просмотрите вашу версию printfax.pl, возможно у вас уже модифицированный вариант!
Добавьте модуль smb_conf.add в /etc/smb.conf :
[Fax] comment = Fax Printer
public = yes
postscript = yes
print command = ( /usr/bin/printfax.pl %I %s %U %m; rm %s ) &
printable = yes
writable = no
path = /var/spool/samba
Проверьте строку print command специально для windows2000
И перезапустите Samba,
/etc/rc.d/init.d/smb restart
Настройка клиента
Рассмотрим стандартную настройку для WINDOWS 95,98,NT,2000...
Распакуем Respond.zip, и скопируем содержащиеся там файлы config.exe и respond.exe в c:\windows :
- Создадим ссылку для respond.exe в меню START->PROGRAMS->Start (для win2000 найдите решение сами)
- Запустите respond.exe или перезагрузите компьютер
Затем необходимо создать сетевой принтер:
- Жмем START->printers->add
- Выбираем сетевой принтер
- Жмем "Обзор" и выбираем FAX принтер (Samba принтер)
- Выбираем драйвер HP -> HP Laserjet 4/4m postscript
- Не печатаем тестовую страницу
- После создания принтера идем в START ->Printers и открываем окно свойств FAX принтера
- Жмем закладку "Сведения" и там кнопку "Очередь"
- Выбираем "Начинать печать после помещения в очередь всего задания"
Ну вот мы и на финишной прямой - открываем Wordpad, что-нибудь там набираем и распечатываем на факс - принтере! Далее должно появиться окно программы respond.exe (конечно если вы ее запустили) с просьбой о вводе номера факса. Просто наберите номер и ваш факс отправляется на факс - сервер hylafax
Для проверки используйте команду faxstat -s на сервере - там вы должны увидеть свой факс.
Стандартная настройка клиента для Linux :
Используйте утилиты с сайта Hylafax!
Почта через Fax
Обмен сообщениями через fax осуществляется локально на сервере с помощью StarOffice.
С другой стороны ваша база данных может быть где угодно в сети, доступ к которой можно осуществлять через StarOffice(ODBC,JDBC,...) Используйте утилиту spadmin и настройте вывод telefax : faxspool (PHONE) (TMP)
В документе, подготовленном для отправки в поле @@#num_tel_fax@@ замените num_tel_fax на поле из базы данных
Читайте StarOffice help, там все объясняется!
Недостаток этого метода в том, что вам придется установить StarOffice на факс - сервере :-( Использование программы respond в сочетании с StarOffice в сети для обмена сообщениями не представляется возможным, потому что необходимо набирать номер факса для каждого получателя!
В настоящее время я пытаюсь найти альтернативное решение.
Ресурсы
http://www-phase.c-strasbourg.fr/inform/faxdoc/expose_fax/fonctionnement.html
http://www.hylafax.org
Несколько слов от автора
Если вам кажется, что документ не полный или содержит ошибки, пишите на адрес . Если у вас есть немного свободного времени - подпишите no patents request!