Когда T-Mail не осуществляет вызов, не занят выполнением
внешней программы, не находится в режиме терминала и не выполняет сценарий, то
он находится в состоянии ожидания входящего вызова. T-Mail отвечает на входящий вызов только в случае, если
в настоящий момент времени это разрешено переменной Answer (в t-mail.ctl).
Распознавание звонка
происходит по слову, заданному в переменной Ring (t-mail.ctl) (обычно "RING"). Кроме того, вы можете вручную дать
команду ответа с помощью клавиш Alt-A, в этом случае T-Mail немедленно "поднимет трубку" и
приступит к процедуре ответа.
Если вы хотите, чтобы T-Mail реагировал не на первый по счету звонок,
используйте переменную Answer_Ring в t-mail.ctl. Она задает, после какого по счету звонка T-Mail будет "поднимать трубку" и подключать
модем к линии. Во время подсчета звонков вы можете нажать клавишу пробела, и
тогда T-Mail перейдет к ответу, не
дожидаясь окончания подсчета звонков. Сбросить счетчик звонков можно, нажав 'ESC'. Если звонки
прекратились и при этом их число не достигло заданного в Answer_Ring, то после паузы T-Mail перейдет снова в режим ожидания входного звонка.
Максимальный размер этой паузы задается в переменной Max_Ring_Interval (t-mail.ctl).
Пример:
Answer═ 0:00-9:00 ; В какое время отвечать.
Answer_Ring══ 5═ ; Hа какой по счету звонок реагировать.
Ответив на вызов (т.е.
послав в модем соответствующую управляющую строку), T-Mail начинает ожидать соединения. Время этого ожидания
определяется переменной Wait_Carrier (t-mail.ctl). Оператор может увеличить или уменьшить это
время клавишами '+' или '-', или прервать ожидание, нажав клавишу 'ESC'. Когда появляется
сигнал несущей (carrier) и получена строка от модема, соответствующая одной из скоростей
соединения или внешнему обработчику соединения (все строки задаются в файле t-mail.ctl), T-Mail переходит к фазе обработки соединения. В
коммерческой версии можно также определить возможность адаптивного ответа, при
котором входящий звонок факс-машины может вызвать соответствующие действия для
приема факсимильного сообщения. Кроме того, T-Mail может работать в режиме автоответчика.
Если в ответе модема
присутствовала строка, определенная в одной из переменных Extern (t-mail.ctl), то все дальнейшее управление передается
внешнему обработчику соединения. Таким образом, например, по приходу строки CONNECT VOICE можно запустить
какую-либо внешнюю программу (менеджер голосовых звонков), а по приходу строки CONNECT FAX - программу приема факсов,
если это вам необходимо.
Если ни один внешний
обработчик не запущен, то T-Mail:
Время этого ожидания
задается в переменной Wait_Mailer (t-mail.ctl). Если в течение этого времени из линии не будет
принято осмысленной информации, T-Mail выполняет действия, описанные в переменной Process Handshake_Timeout (t-mail.ctl). Если же информация будет принята, то возможны
следующие варианты дальнейших действий T-Mail:
1.
если═ в это═
время разрешен══ выход в═ BBS (переменная═
BBS_Time в t-mail.ctl),═ то
в═ модем═ выдается═ файл,
описанный═ в переменной BBS_Banner (t-mail.ctl), после чего управление передается программе BBS, как это определено в
переменной Process BBS (t-mail.ctl);
2.
если выход в═ BBS запрещен, то в модем═ выдается файл, описанный в переменной═ NoBBS_Banner═ (t-mail.ctl),═
после═ чего═ сеанс═
связи прерывается;
3.
и, наконец,═ если получена посылка═ EMSI или YOOHOO,═ то
выполняется процедура═ handshaking (начальное═ "рукопожатие" систем,═ выполнение подстановок Set═ и AKA из subst.lst,═ проверка
паролей), проверяется скорость соединения═
(она должна быть═ больше или
равна═ указанной в переменной Min_Baud_In (t-mail.ctl)), после чего T-Mail приступает к выполнению═ сеанса связи═ - принимает═ и отправляет═ файлы и═ почту, обрабатывает
файловые запросы и т.д.
Помимо стандартных
сообщений от модема, говорящих о том, что произошло соединение, можно
определить до 16 строк - ответов от модема, при получении которых будут
выполняться определенные действия по обработке соединения. Эти строки
описываются в файле t-mail.ctl таким образом:
Extern <modem string> | <action>
Например:
Extern═ CONNECT 2400═ | do2400.bat
Extern═ CONNECT VOICE | do_voice.bat
Ответ модема
анализируются в первую очередь на соответствие строкам, указанным в переменных Extern.
T-Mail
имеет возможность только принимать почту по стандарту FTS-0001 при входящем вызове. Для этого в t-mail.ctl определяют значение переменной Process FTS-1: программу, которую t-mail будет запускать в качестве протокола X-modem при приеме файлов. Файлы, принимаемые при FTS-1 сессии, помещаются в
каталог, описанный переменной InboundUnProtected в t-mail.ctl.
В файле t-mail.ctl можно описать внешние программы, которые будут
запускаться в случае приема соответствующей посылки или ключевого слова в то
время, пока T-Mail
ожидает начала handshake (после установления соединения). Вот как эти программы (External Mailers) определяются в
файле t-mail.ctl:
Extern_Mail═ [[<addr list>]] <keyword> <action>
Например:
Extern_Mail═ UUрc═ c:\uupc\uu.bat
Extern_Mail═ Guest c:\bbs\dobbs.bat 1 2400
Extern_Mail═ [5030/124 5030/15.*]═ keysign═ pro.bat
Extern_Mail═ [.999]══════════════ login═══ uupc.bat Out Direct
При ответе на вызов, если
будет предъявлено описанное как <keyword> слово (без пробелов), будет запущена
программа или командный файл, соответствующий этому слову. Всего можно описать
до 16 External mailers.
В <action> можно
использовать макросы (см. главу 7, t-mail.ctl).
Пример:
Extern_Mail═ UUрc═ c:\uupc\uu.bat *P *B *N
Для COM3 и 2400 bрs будет запущено c:\uupc\uu.bat 3 2400 1
Если вместо <keyword> задать слово 'Nothing', то внешняя
программа в этом случае будет запущена, если не было принято ни одно ключевое
слово, ни EMSI или YOOHOO handshake. Это возможно только для исходящих вызовов. Если
в случае исходящего вызова и использовании параметра Nothing с удаленной системы будет принято слово 'Nothing', то
соответствующая строке 'Extern_Mail Nothing' внешняя программа, как исключение, запущена не
будет.
Если запуск внешнего
мэйлера осуществляется при исходящем вызове, имеет значение код завершения (errorlevel), с которым
заканчивает работу заданная программа. Если код завершения равен 0, то T-Mail уничтожает служебные письма, сформированные для
системы, которая вызывалась (то есть письма от имени "T-Mail robot"). Это делается для того, чтобы избежать
вечного опроса системы, которая заставляет T-Mail запустить внешний обработчик. Вы можете
организовать работу с несовместимыми с FTN системами, придерживаясь схемы "фиктивных
адресов".
Кроме того, при исходящих
вызовах можно использовать <addr list> - список систем, при вызове которых
активизируется Extern_Mail.
Если система, которую T-Mail
вызывает, не входит в <addr list>, то при установлении сеанса связи внешние
мэйлеры не будут активизироваться в любом случае.
Пример для UUCP-системы:
(t-mail.ctl)
Extern_Mail══════════ ogin═══ uucico.exe -r1 -sall -f *L═ ; for incoming
Extern_Mail [.999] Nothing uucico.exe -r1 -sall -f *L═ ; for outgoing
(subst.lst)
.999═ time CM phone 123-4567
(events.ctl)
Poll═ .999═ 5:00
Согласно этому примеру в
5 часов для адреса .999 сформируется Poll письмо как для обычной TN системы. Если при вызове этой системы будет
получено слово login, то вызовется программа uucico, а после ее успешного завершения Poll письмо удалится и адрес
.999 будет убран из очереди. При вызовах других систем внешний мэйлер uucico.exe по ключевому слову LOGIN активизироваться не
будет.