PPP Callback и звонилки для OS/2
Много лет я использовал в OS/2 звонилку InJoy. Не то, чтобы она мне сильно нравилась, было бы точнее сказать, что она меня устраивала. Хотя её невозможность нормально работать на автопилоте меня несколько раздражала, но не настолько, чтобы искать что-то "более другое".
Но после того, как киевских пользователей телефона нагнула тотальной повремянкой одна очень нехорошая компания, мне пришлось покупать карточку с CallBack. Реализован CallBack у большинства провайдеров (в частности, у моего) с использованием протокола CBCP. Этот протокол создан специально для этих целей, встроен в windows звонилку (как, впрочем, и в любой современный *nix ppp) и позволяет реализовывать callback без скриптов и прочих извращений.
Injoy 2.3 CBCP не поддерживает. В InJoy 3.0 CBCP есть в списке заявленных возможностей, но на практике он неработоспособен. Т.е. после коннекта авторизация проходит, после чего удалённый сервер кладёт трубку и не перезванивает. После ~получасового разбирательства (в котором участвовала Cisco моего знакомого провайдера) было выяснено, что CBCP сессия даже не начиналась. Injoy был отправлен в shredder. Попинав гугл и знакомых на предмет "более другой" звонилки я был послан на... сайт LGS.
SFPPP: добиваемся работы
Скачав Safe Fire PPP, я запустил pmppp. В приятном PM-ном интерфейсе было много всего, там было даже окошко "About", но не было самого главного — настроек CallBack ;-) С фразами типа "не очень-то и хотелось" я перешёл к консольной части программы. Вот тут всё оказалось просто замечательно. Заработало всё сразу и без лишних телодвижений. Вот конфигурационный файл, который я использую для дозвона:;Sitel CallBack config (sitel.cfg) !include "default.cfg" [ppp] @include "cl_ppp" port.name=com1 port.speed=115200 port.modem.dial=ATDP port.modem.init=AT&F1 port.phones=2053203 port.script.timeout=200 ; My Login and password auth.client.clientname=mylogin auth.client.clientpass=mypass callback.mode=CLIENT ; My phone callback.client.phone=2220022 bind=io:cl_pppstack.io [plugman] message.hook=dnshook.cmd ; End of cfg fileДля запуска дозвона я использую команду
Рюшечки
После того, как всё заработало, мне захотелось добавить некоторых вкусностей. А именно:- Ведение log файла для учёта времени проведённого в online
- Включение лампочки на клавиатуре при входе в режим online и выключение её при разрыве связи (у меня на HP клавиатуре есть для подобных извращений LED "messages").
- Запись в log файл и пайп скорости коннекта при callback.
- Скопировать dnshook.cmd в custom_hook.cmd и добавить секцию:
/* This section enable connect speed logging in callback mode */ if arg(1)='MSG_00000020' & arg(2)=8 & arg(3)="CALLBACK" then do call sf_Set_Var "mode_callback", 1 end /* logging connect string to file and PIPE */ if arg(1)="MSG_00000007" & arg(2)=20 & sf_Get_Var("mode_callback")=1 then do call lineout 'sitel.log', date("U")||" "||time()||" Connect string: "||arg(3); call sf_Set_Var "mode_callback", 0; call stream "\PIPE\SFPPP_INFO",'c','open write'; call charout "\PIPE\SFPPP_INFO","Speed: "||arg(3); call stream "\PIPE\SFPPP_INFO", 'c', 'close'; end /* logging begin of the session to log file and turning LED on */ if arg(1)='MSG_00000003' then do 'hpled on' call lineout 'sitel.log', date("U")||" "||time()||" Start of the session"; end /* logging end of the session to log file and turning LED off */ if arg(1)='MSG_00000004' then do call lineout 'sitel.log', date("U")||" "||time()||" End of the session"; 'hpled off' end
- Заменить в файле конфигурации (у меня sitel.cfg) dnshook.cmd на custom_hook.cmd.
Alex Samorukov
Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ