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
Для запуска дозвона я использую команду sfppp -Csitel.cfg.

Рюшечки

После того, как всё заработало, мне захотелось добавить некоторых вкусностей. А именно: С SFPPP реализовать всё это не было совсем несложно. Для этого потребовалось:
  1. Скопировать 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
    
    
  2. Заменить в файле конфигурации (у меня sitel.cfg) dnshook.cmd на custom_hook.cmd.
После чего вышеописанные вкусности заработали. В завершение заметки хотелось бы напомнить, что sfppp является shareware-программой, написанной киевским автором, и стоит совсем недорого.
Alex Samorukov


Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ