From e0d853d5f1d46cd0738b8aa155967146e277618b Mon Sep 17 00:00:00 2001 From: Evgeniy Kozhuhovskiy Date: Tue, 3 May 2005 21:23:20 +0000 Subject: [PATCH] added docs by Igor Mitichev --- debian/bfha.def | 3 + docs/bforce-binkp | 14 +++++ docs/bforce-ifc | 14 +++++ docs/readme.txt | 153 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 docs/bforce-binkp create mode 100644 docs/bforce-ifc create mode 100644 docs/readme.txt diff --git a/debian/bfha.def b/debian/bfha.def index 4345667..263b5a8 100644 --- a/debian/bfha.def +++ b/debian/bfha.def @@ -5,3 +5,6 @@ my $rep_from = "\"Statistics generator\" "; my $rep1_subj = "Sessions history"; my $rep2_subj = "Sessions history"; my $rep3_subj = "Links statistics"; + +# We are reading configs, isnt it? :) +1; diff --git a/docs/bforce-binkp b/docs/bforce-binkp new file mode 100644 index 0000000..66bc651 --- /dev/null +++ b/docs/bforce-binkp @@ -0,0 +1,14 @@ +# xinetd service bforce-binkp +# Shamelessly stolen from RU.UNIX.FTN +# Original author Eugeny Davidov <2:5030/1900.3> +# Modified for ALTLinux by Sir Raorn +service binkp +{ + disable = no + socket_type = stream + wait = no + protocol = tcp + user = fido + server = /usr/bin/bforce + server_args = -i binkp +} diff --git a/docs/bforce-ifc b/docs/bforce-ifc new file mode 100644 index 0000000..a75909f --- /dev/null +++ b/docs/bforce-ifc @@ -0,0 +1,14 @@ +# xinetd service bforce-ifc +# Shamelessly stolen from RU.UNIX.FTN +# Original author Eugeny Davidov <2:5030/1900.3> +# Modified for ALTLinux by Sir Raorn +service fido +{ + disable = no + socket_type = stream + wait = no + protocol = tcp + user = fido + server = /usr/bin/bforce + server_args = -i -a auto +} diff --git a/docs/readme.txt b/docs/readme.txt new file mode 100644 index 0000000..4cb73ff --- /dev/null +++ b/docs/readme.txt @@ -0,0 +1,153 @@ + Основные моменты настройки мейлера 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 \ No newline at end of file