T-Mail
может работать совместно с программным обеспечением, реализующим функции BBS (Bulletin Board System - электронные доски
объявлений), такими, как Maximus, Remote Access и т.д. Эта работа организуется следующим образом:
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.24:00
Если текущее время НЕ
попадает в диапазон, заданный переменной BBS_Time, то в линию будет выдан текст из файла, заданного
переменной NoBBS_Banner (t-mail.ctl). Это может быть, например, информация о времени
работы станции, реклама, и т.п. После этого связь будет прервана.
Если же текущее время
попадает в диапазон, заданный переменной BBS_Time, то в линию будет выдан текст из файла, заданного
переменной BBS_Banner (t-mail.ctl). Это может быть, например, приветствие,
наименование вашей системы и так далее. После этого выполняются действия,
заданные переменной Process BBS (t-mail.ctl).
Возможны два варианта
запуска программы BBS с помощью этой переменной. Первый вариант заключается в том, что Process BBS задает имя программы
(или командного файла), которая будет запущена. При этом могут быть указаны
параметры командной строки этой программы (файла) с использованием макросов
(они описаны ниже).
Например:
Process BBS══ max.exe -p*P -s*L -b*B -t*H
при этом строка запуска
будет иметь приблизительно следующий вид:
max.exe -p2 -s57600 -b28800 -t24
Process BBS══ runbbs.bat -c*P -b*B -g -t*H
при этом строка запуска
будет иметь приблизительно следующий вид:
runbbs.bat -c2 -b9600 -g -t45
а содержимое файла runbbs.bat может быть примерно
следующим:
rem === start ===
@echo off
cd \ra
ra_rus %1 %2 %3 %4
rem === end ===
Второй вариант
заключается в том, что производится выход из T-Mail с кодом завершения (errorlevel), который указан в Process BBS. Дальнейшая обработка этого события должна
осуществляться в командном файле, из которого запускался T-Mail. Код завершения - это число в диапазоне 1...255.
Например:
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 -N2
....
if errorlevel 32 goto bbs
....
goto end
....
:bbs
rem═ здесь
выполняется вызов BBS
call exit02.cmd
rem═ а затем
возврат в T-Mail
goto start
....
:end
rem -------------------- конец файла t.cmd -------------------------
Переменная Process BBS может быть только
одна. В ней можно использовать следующие макросы:
*I √ PID
текущей задачи;
*B √ скорость соединения (DCE baudrate);
*L √ скорость фиксации порта (locked port) (или 0);
*P √ номер COM-порта;
*O √ (только для OS/2 и NT
версии) - handle открытого COM-порта;
*T √ номер задачи (task ident);
*N √ признак коррекции: 0 - соединение произошло без коррекции ошибок, не 0 -
с коррекцией;
*H √ время (в минутах) до окончания
периода, когда разрешены выходы в BBS (BBS_Time).
*M √ текущее системное время компьютера (в формате ЧЧ:ММ);
*C √ текущая системная дата
компьютера (в формате ДД/ММ/ГГ).
Для вызова программы 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), и так далее.