|
|
Основные моменты настройки мейлера bforce
|
|
|
─────┐для ответа на входящие вызовы.┌────
|
|
|
└──────────────────────────────┘
|
|
|
|
|
|
Как известно, мейлер bforce может соединяться с другими фидошными станциями как по телефонным линиям, так и по IP каналам. В первом случае мейлер реализует стандартную EMSI-сессию, а во-втором, он способен использовать протоколы BinkP (стандартный порт 24554) и Ifcico (стандартный порт 60179). Первому протоколу соответсвует ноделистовый флаг IBN, а второму -- IFC.
|
|
|
|
|
|
В отличие от других мейлеров (например таких, как t-mail под win32 или binkd), bforce сам не отслеживает входящие вызовы. Этим занимаются другие программы, которые анализируют входящие сообщения и, если они оказываются фидошными вызовами, передают управление мейлеру.
|
|
|
|
|
|
Таким образом для того, чтобы bforce мог отвечать на входящие звонки, требуется настройка дополнительного програмного обеспечения. Ниже я в кратце рассмотрю настройку программы mgetty, которая отслеживает сигналы из com-порта и отвечает на телефонные звонки и настройку супердемона xinetd, который отслеживает входящие вызовы по каналам tcp/ip.
|
|
|
|
|
|
|
|
|
╔═══════════════════════════════════════╗
|
|
|
║1. Ответ на входящие телефонные звонки.║
|
|
|
╚═══════════════════════════════════════╝
|
|
|
|
|
|
Сигналы от модема отслеживает демон (резидент) mgetty. Это программа, которая постоянно сидит в памяти компьютера, заставляет модем поднимать телефонную трубку, анализирует сигнал, поступающий с той стороны телефонной линии и, в соответствиии с результатами этого анализа, передает управление той или иной прикладной программе. В случае фидошного вызова это будет наш bforce.
|
|
|
|
|
|
Mgetty входит в комплект подавляющего большинства дистрибутивов linux. Поэтому я не буду останавливаться на том, где взять эту программу, а только замечу, что для того, чтобы она понимала "специфику" фидошных сообщений, она должна быть откомпилирована с ключом "-DFIDO". Если вы компилируете программу из исходников, обратите на это внимание. Сложнее, если у вас например RPM. Так создатели Red Hat (Fedora Core) включают в дистрибутив пакет программы с отключенной фидошной функцией. В таком случае самое простое -- найти пакет от другого производителя, где эта функция включена. Например на моем RH 9.0 стоит mgetty от ASP (mgetty-1.1.30-2asp.i386.rpm)и прекрасно себя чувствует.
|
|
|
|
|
|
Будем считать, что с установкой разобрались, перейдем к настройке. У меня файлы конфигурации mgetty находятся в каталоге "/etc/mgetty+sendfax/":
|
|
|
|
|
|
[root@news mgetty+sendfax]# ls -l
|
|
|
итого 48
|
|
|
-rw------- 1 root root 1515 Апр 28 2003 dialin.config
|
|
|
-rw------- 1 root root 86 Янв 25 2003 faxheader
|
|
|
-rw------- 1 root root 2368 Янв 25 2003 faxrunq.config
|
|
|
-rw------- 1 root root 1532 Янв 25 2003 faxspool.rules.sample
|
|
|
-rw------- 1 root root 2953 Мар 17 13:04 login.config
|
|
|
-rw------- 1 root root 1641 Окт 30 2004 mgetty.config
|
|
|
-rw------- 1 root root 1046 Янв 25 2003 sendfax.config
|
|
|
-rw------- 1 root root 18101 Янв 25 2003 voice.conf
|
|
|
|
|
|
Приведу несколько цитат из конфигурационных файлов. Основной файл конфигурации mgetty.config
|
|
|
|
|
|
=====================================
|
|
|
debug 4
|
|
|
speed 57600
|
|
|
|
|
|
# настройки порта com1 (ttyS0 в unix-трансляции):
|
|
|
# возможно в вашей системе здесь будет другой значение
|
|
|
# например ttyS1 (com2)
|
|
|
port /dev/ttyS0
|
|
|
debug 3
|
|
|
|
|
|
# указываем, что у нас нет факса:
|
|
|
data-only y
|
|
|
|
|
|
# настраиваем диалог "программа-модем" для инициализации модема:
|
|
|
init-chat "" ATZ OK AT&F OK
|
|
|
|
|
|
# и для ответов на входящие:
|
|
|
answer-chat "" ATA CONNECT \c \r
|
|
|
======================================
|
|
|
|
|
|
|
|
|
Файл анализа входящих вызовов login.config:
|
|
|
|
|
|
===========================================
|
|
|
# Если звонит мейлер, передаем управление bforce:
|
|
|
/FIDO/ fido uucp /usr/local/bin/bforce @
|
|
|
# в этой строке fido и uucp -- пользователь и группа, от имени
|
|
|
# которых запускается mgetty
|
|
|
|
|
|
# Если звонит интернет-пользователь, передаем управление pppd:
|
|
|
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap
|
|
|
|
|
|
# Во всех остальных случаях передаем управление утилите login:
|
|
|
* - - /bin/login @
|
|
|
==============================================
|
|
|
|
|
|
Следует обратить внимание на следующие основные моменты
|
|
|
|
|
|
1. Mgetty должен быть скомпилирован с -DFIDO
|
|
|
2. Файлы конфигурации в /etc/mgetty+sendfax обязаны иметь права chmod 0600 и chown root:root
|
|
|
3. Пути к программам в login.config должны соответствовать реальности (нередко бывает наоборот ;)
|
|
|
4. Пользователь и группа, от имени которых запускается bforce должны быть _корректными_!!! Обычно этот пункт вызывает самые большие проблемы. То не хватает прав на обращение к модему, то не хватает прав для записи в inbound, то еще какой-нибудь геморой. 90% проблем заключены именно в этом пункте.
|
|
|
|
|
|
|
|
|
Дальше. Запуск mgetty осуществляется через файл /etc/inittab
|
|
|
откорректируйте там (или напишите если ее нет) такую строчку:
|
|
|
|
|
|
S0:2345:respawn:/sbin/mgetty -D /dev/ttyS0
|
|
|
|
|
|
Здесь:
|
|
|
S0 -- идентификатор. Должен быть уникальным (нигде больше в этом файле не повторяться).
|
|
|
2345 -- уровни запуска, при которых стартует mgetty (если не знаете что это такое, пропишите как указано здесь).
|
|
|
respawn -- указывает системе перезапускать mgetty после того, как она завершит работу (в любом случае пропишите как указано здесь).
|
|
|
/sbin/mgetty -- путь к программе
|
|
|
-D -- ключ, сообщающих Mgetty, что на линии нет факса (data only)
|
|
|
/dev/ttyS0 -- порт, на котором сидит модем.
|
|
|
|
|
|
Если после перезагрузки на модеме загорелась лампочка TR, то все настройки выполнены правильно и mgetty подхватил модем.
|
|
|
|
|
|
|
|
|
И еще. Управление mgetty осуществляется файлом /etc/nologin.ttyS0 (расширение может быть другим, если модем находится на другом порту). Наличие такого файла запрещает mgetty поднимать трубку. Таким образом, прописав в crontab директивы 'touch /etc/nologin.ttyS0' и 'rm /etc/nologin.ttyS0' можно определять время, когда ваша станция отвечает на входящие.
|
|
|
|
|
|
╔═══════════════════════════════════════╗
|
|
|
║2. Ответ на входящие звонки по tcp/ip.║
|
|
|
╚═══════════════════════════════════════╝
|
|
|
|
|
|
Как было написано выше, bforce понимает не только сеансы по телефонным линиям, но и по tcp/ip. Здесь мейлер тоже не сам отслеживает входящие вызовы а принимает управление от демона xinetd (может быть inetd, но его мы здесь не рассматриваем).
|
|
|
|
|
|
Итак, вам надо:
|
|
|
|
|
|
1. Отредактировать файл /etc/services и проверить в нем наличие следующих строк:
|
|
|
|
|
|
binkp 24554/tcp # Binkley
|
|
|
binkp 24554/udp # Binkley
|
|
|
|
|
|
fido 60179/tcp # Ifmail
|
|
|
fido 60179/udp # Ifmail
|
|
|
|
|
|
2. Скопировать файлы bforce-binkp и bforce-ifc в каталог /etc/xinetd.d/:
|
|
|
|
|
|
# cd /etc/xinetd.d/
|
|
|
[root@news xinetd.d]# ls -l bforce-*
|
|
|
-rw-r--r-- 1 root root 424 Май 3 12:54 bforce-binkp
|
|
|
-rw-r--r-- 1 root root 423 Май 3 13:40 bforce-ifc
|
|
|
[root@news xinetd.d]#
|
|
|
|
|
|
3. Откорректируйте следующие значения в этих файлах:
|
|
|
|
|
|
disable -- должно быть в значении No (значение yes отключает сервис)
|
|
|
user -- должен быть корректным (если вы разобрались с mgetty, то это для вас не вопрос)
|
|
|
server -- проверьте правильность пути к программе.
|
|
|
|
|
|
4. Перезапустите xinetd:
|
|
|
|
|
|
[root@news xinetd.d]# /etc/init.d/xinetd restart
|
|
|
Останавливается xinetd: [ ОК ]
|
|
|
Запускается xinetd: [ ОК ]
|
|
|
[root@news xinetd.d]#
|
|
|
|
|
|
5. Протестируйте, работает ли:
|
|
|
|
|
|
[root@news xinetd.d]# telnet localhost 24554
|
|
|
Trying 127.0.0.1...
|
|
|
Connected to localhost.
|
|
|
Escape character is '^]'.
|
|
|
-"OPT CRAM-MD5-27a76d745143285f7742-SYS vz111 station-ZYZ Tim Tashbaev-LOC Bryansk, Russia-PHN 7-083-273-38-30-NDL MO,V34,TCP,IBN-TIME 2005/05/03 15:23:20-3VER binkleyforce/0.22.8.ugenk4/linux-gnu binkp/1.0-2:6001/10@fidonet
|
|
|
|
|
|
Хм... Работает. Сам удивляюсь. Нечто похожее должно быть и при обращении к порту 60179 (telnet localhost 60179).
|
|
|
|
|
|
В общих чертах так. Если будет не получаться, то рекомендую действовать в следующей последовательности:
|
|
|
1. Перечитать все еще раз с самого начала.
|
|
|
2. Подумать.
|
|
|
3. Полазить в манах (man mgetty, man inittab, man xinetd, etc)
|
|
|
4. Еще раз подумать.
|
|
|
5. Написать в эхоконференцию ru.unix.ftn
|
|
|
|
|
|
|
|
|
Искренне ваш... Igor Mitichev (2:6001/9.0)
|
|
|
3 мая 2005 г. 15:30
|
|
|
|
|
|
Некоторые дополнения по-поводу новых фич
|
|
|
========================================
|
|
|
override .. hidden
|
|
|
С версии 0.22.9 bforce научился запускать внешнюю программу для
|
|
|
каждого линка/его хиддена. Для чего это сделано? Единственно, что
|
|
|
мне приходит в голову - необходимость залочить модем/послать в
|
|
|
него строку иницализации. Но возможно, вы придумаете совершенно
|
|
|
иное применение этой фиче. |