Работа T-Mail совместно с программным обеспечением BBS
T-Mail может работать совместно с программным обеспечением,
реализующим функции BBS (Bulletin Board System - электронные доски
объявлений), такими, как Maximus, Remote Access, QuickBBS и т.д. Эта работа
организуется следующим образом: T-Mail при получении определенного запроса
от пользователя вызывает программное обеспечение BBS и передает ему
заданные в строке вызова параметры. После этого работу с пользователем
осуществляет программа BBS. После завершения сеанса работы с BBS обычно
управление снова возвращается к T-Mail, который продолжает обычную работу и
ожидает новых звонков.
Задать вызываемое программное обеспечение BBS можно несколькими
способами. В большинстве случаев это производится переменной Process BBS
( t-mail.ctl ). Рассмотрим этот случай подробно.
В качестве подсказки для пользователя можно выдавать в линию краткое
сообщение о том, как осуществить вход в BBS или о том, что в настоящий
момент времени вход в BBS закрыт. Это задается переменными Force_BBS и
Force_NoBBS соответственно ( t-mail.ctl ). Заданный текст будет послан в
линию непосредственно после установления соединения. То, какая из этих
переменных будет выбрана, зависит от того, попадает или нет текущий момент
времени в промежутки, указанные в переменной BBS_Time (она описана ниже).
Например:
---------
Force_BBS Press ESC twice for BBS..
Force_NoBBS Sorry.. Mail only node.
В том случае, если входной звонок осуществлен не от FTN-совместимого
мэйлера, а из терминальной программы, вручную, T-mail получит запрос на
запуск BBS. Обычно это два символа Esc (ASCII 27) подряд или специальная
посылка стандарта IEMSI.
Переменная BBS_Time ( t-mail.ctl ) определяет промежуток (или
промежутки) времени, когда разрешено передавать управление BBS в этой
ситуации. Если эта переменная не определена, то управление BBS передаваться
не будет. Например, если необходимо разрешить работу BBS ночью в будни и
круглосуточно в остальные дни, следует задать:
BBS_Time 1.22:00-5.7:00,5.0:00-6.23:59
Если текущее время НЕ попадает в диапазон, заданный переменной
BBS_Time, то в линию будет выдан текст из файла, заданного переменной
NoBBS_Banner ( t-mail.ctl ). Это может быть, например, информация о времени
работы станции, реклама, и т.п. После этого связь будет прервана.
Если же текущее время попадает в диапазон, заданный переменной
BBS_Time, то в линию будет выдан текст из файла, заданного переменной
BBS_Banner ( t-mail.ctl ). Это может быть, например, приветствие,
наименование вашей системы и так далее. После этого выполняются действия,
заданные переменной Process BBS ( t-mail.ctl ).
Возможны два варианта запуска программы BBS с помощью этой переменной.
Первый вариант заключается в том, что Process BBS задает имя программы (или
командного файла), которая будет запущена. При этом могут быть указаны
параметры командной строки этой программы (файла) с использованием макросов
(они описаны ниже).
Например:
---------
Process BBS bbs.exe *P *B *H *L
при этом строка запуска будет иметь приблизительно следующий вид:
bbs.exe 2 28800 24 57600
Process BBS runbbs.bat *B *H *N
при этом строка запуска будет иметь приблизительно следующий вид:
runbbs.bat 9600 45 0
Второй вариант заключается в том, что производится выход из T-Mail с
кодом завершения (errorlevel), который указан в Process BBS. Дальнейшая
обработка этого события должна осуществляться в командном файле, из
которого запускался T-Mail.
Например:
---------
Process BBS Exit 25
Process BBS Exit 25 bbssoft.exe *P *L
Если после кода завершения указана какая-либо строка,
то при выходе T-Mail создаст командный файл с именем EXITxx.BAT (EXITxx.CMD
для OS/2), где "xx" - номер задачи T-Mail (по умолчанию - EXIT01.BAT или
EXIT01.CMD), в который будет перенесено содержимое этой строки, вместо
макросов будут подставлены реальные значения.
Пример:
-------
Пусть мы имеем систему с несколькими задачами (OS/2). Допустим, что
произошло соединение со скоростью 14400 bps в задаче номер два, которая
работает с COM-портом номер 3. Тогда в результате выполнения следующей
строки:
Process BBS Exit 32 bbs.exe -p*P -b*B -nolock
перед выходом с кодом завершения 32 будет создан командный файл с именем
EXIT02.CMD, который будет состоять из такой строки:
bbs.exe -p3 -b14400 -nolock
Для обработки этого события командный файл для запуска T-Mail может иметь
приблизительно такой вид:
rem ------ файл t.cmd для запуска задачи T-Mail N2 ------------
:start
t-mail -T100 -N2
if errorlevel 32 goto bbs
goto start
:bbs
rem здесь выполняется вызов BBS
call exit02.cmd
rem а затем возврат в T-Mail
goto start
rem -------------------- конец файла t.cmd -------------------------
Переменная Process BBS может быть только одна. В ней можно
использовать следующие макросы:
*B - скорость соединения (DCE baudrate);
*L - скорость фиксации порта (locked port) (или 0);
*P - номер COM-порта;
*O - (только для OS/2 и NT версии) - handle открытого COM порта;
*T - номер задачи (task number);
*N - признак коррекции: 0 - соединение произошло без коррекции
ошибок, не 0 - с коррекцией;
*H - время (в минутах) до окончания периода, когда разрешены
выходы в BBS (BBS_Time).
Для вызова программы BBS можно использовать и другие способы, но они
менее удобны и более сложны. Так, программа BBS может быть вызвана с
помощью переменной Extern_Mail - для этого пользователь после установления
соединения должен ввести необходимую строку символов, чтобы управление было
передано программе, описанной в Extern_Mail ( t-mail.ctl ). Программа BBS
может быть вызвана по флагу с помощью переменной Process_Flag ( t-mail.ctl ).
Можно вызвать программу BBS даже во время почтового сеанса связи - с
помощью переменной Process Online или Process Imm ( t-mail.ctl ).
Естественно, программа BBS может быть и внешним обработчиком соединения,
задаваемым переменной Extern ( t-mail.ctl ), и так далее. Ниже приведены
несколько абстрактных примеров таких нестандартных вызовов.
Примеры:
--------
Process_Flag ex.t-m Exit 99 bbs.exe -d -p*P -b*B -y*N
Process Online req.bbs Exit 99 bbs.exe -d -p*P -b*B -y*N
Extern_Mail dobb dobbs.bat *P *B *L