Действия после ответа на звонок
Ответив на звонок (т.е. послав в модем соответствующую управляющую
строку), T-Mail начинает ожидать соединения. Время этого ожидания
определяется переменной Wait_Carrier ( t-mail.ctl ). Оператор может увеличить
или уменьшить это время клавишами '+' или '-', или прервать ожидание, нажав
клавишу 'ESC'. Когда появляется сигнал несущей (carrier) и получена строка
от модема, соответствующая одной из скоростей соединения или внешнему
обработчику соединения (все строки задаются в файле t-mail.ctl ), T-Mail
переходит к фазе обработки соединения. В коммерческой версии можно также
определить возможность адаптивного ответа, при котором входной звонок
факс-машины вызовет соответствующие действия для приема факсимильного
сообщения в том случае, если входной звонок осуществляется с факсмашины.
Если в ответе модема присутствовала строка, определенная в одной из
переменных Extern ( t-mail.ctl ), то все дальнейшее управление передается
внешнему обработчику соединения. Таким образом, например, по приходу строки
CONNECT 2400 можно запустить какую-либо внешнюю программу, а по приходу
строки CONNECT FAX - программу приема факсов, если это вам необходимо.
Если ни один внешний обработчик не запущен, то T-Mail:
# Если выход в BBS разрешен (BBS_Time в t-mail.ctl ), то выдает в модем
строку, описанную в переменной Force_BBS ( t-mail.ctl ), если нет - то
строку, описанную в переменной Force_NoBBS ( t-mail.ctl ).
# Ждет поступления информации из линии.
Время этого ожидания задается в переменной Wait_Mailer ( t-mail.ctl ).
Если в течение этого времени из линии не будет принято осмысленной
информации, T-Mail выполняет действия, описанные в переменной Process BBS
( t-mail.ctl ). Если же информация будет принята, то возможны следующие
варианты дальнейших действий T-Mail:
# управление передается внешнему обработчику ключевого слова (External
Mailer), если из модема поступило ключевое слово, описанное в одной
из переменных Extern_Mail ( t-mail.ctl ). Это может произойти как на
входных, так и на выходных звонках. Если (при выходном звонке) сеанс
связи внешнего мэйлера закончился с кодом завершения 0 (т.е.,
благополучно), то T-Mail удаляет из очереди тот фиктивный адрес
узла, с помощью которого T-Mail звонил на систему, используя внешний
мэйлер;
# если определено соединение по FTS-0001, то с помощью внешней
программы, описанной в переменной Process FTS-1 ( t-mail.ctl ),
производится прием почты по стандарту FTS-0001. T-Mail поддерживает
только прием почты по стандарту FTS-0001;
# если приняты два символа ESC подряд или получена посылка IEMSI, то:
если в это время разрешен выход в BBS (переменная BBS_Time в
t-mail.ctl ), то в модем выдается файл, описанный в переменной
BBS_Banner ( t-mail.ctl ), после чего управление передается
программе BBS, как это определено в переменной Process BBS
( t-mail.ctl );
если выход в BBS запрещен, то в модем выдается файл, описанный в
переменной NoBBS_Banner ( t-mail.ctl ), после чего сеанс связи
прерывается;
# и, наконец, если получена посылка EMSI или YooHoo, то выполняется
процедура handshaking (начальное "рукопожатие" систем, проверка
паролей), проверяется скорость соединения (она должна быть больше
или равна указанной в переменной Min_Baud ( t-mail.ctl )), после чего
T-Mail приступает к выполнению сеанса связи - принимает файлы и
почту, отправляет почту/файлы, обрабатывает файловые запросы.