[Comm] callback

Alexandr R Ogurtzoff =?iso-8859-1?q?iscander_=CE=C1_mercuri=2Emk=2Eua?=
Ср Июл 7 16:33:26 MSD 2004


В сообщении от Понедельник 05 Июль 2004 15:02 Юрий Хорошков написал(a):
> Здравствуйте Community!
> Подскажите, пожалуйста, ссылки на доки по настройке callback.  На  atmsk
> раньше видел, а сейчас не могу найти.
Наверное погибло при переезде... Я так понимаю речь о клиенте?

Сейчас вроде бы новый kppp умеет callback.
Но на всякий случай вам копия моей прежней статьи на atmsk.ru вдруг 
пригодиться :-)
================================================================
Подключение к Интернет у провайдера  с PAP авторизацией и поддержкой обратного 
дозвона CallBack по протоколу CBCP
Описаный ниже способ не претендует на оптимальность. Но обеспечивает 
соединение и работает. Без всяких гарантий, и пожалуйста не просите меня 
подстроить его под вашу систему.

Система Мастер 2.2 без обновлений.
  При первоначальной прозвонке к провайдеру pppd осуществляет соединение, 
производит PAP авторизацию и согласно протоколу CBCP передает телефонный 
номер по которому должна перезвонить удаленная система. После этого 
соединение разрывается. Наша система начиная с этого момента ждёт дозвона от 
узла провайдера, после осущесвления которого и осуществляется собственно 
соединение, поднятие IP адресов etc.
  Таким образом должны существовать два сценария поведения демона pppd (chat 
скрипта) при соединения в таких условиях. Один для исходящего, второй для 
входящего соединения. А вот тут и начинается самое интересное в дистрибутиве 
Альт демон pppd собран с поддержкой протокола обратного дозвона в том числе и 
CBCP,  в более ранних версиях дистрибутива пакет похоже назывался 
pppd-callback. Так вот второй скрипт - ответа на звонок создается 
автоматически(!) и находится в файле /etc/ppp/callback-client. Протокол 
обработки обратного звонка регистрируется в событиях netevent и дозвон от 
провайдера обрабатывается именно этим скриптом.
          ls -l /etc/ppp/callback-client
        -rwxr-xr-x    1 root     root          211 Apr 19 
19:40 /etc/ppp/callback-client

        cat /etc/ppp/callback-client
        #!/bin/sh
        # Script callback-client
        # Script parameters: delay time in seconds
        DELAY="$1"
        /usr/sbin/chat -v -t 2 "" \d+++\d\c OK ATH0 OK
        sleep $DELAY
        /usr/sbin/chat -v "" ATZ OK "" RING  ATA SAY "RING" CONNECT

Мной добавлено только RING  ATA SAY "RING" ,  хотелось видеть что прошел 
дозвон

Дальше создаём файл дозвона к провайдеру /etc/ppp/chat-cbcp
        ls -l /etc/ppp/chat-cbcp
        -rwxr-x---    1 root     uucp          586 May  6 
14:50 /etc/ppp/chat-cbcp

С содержимым типа такого (!)не забудьте в строке ATDT указать номер своего 
провайдера
        cat  /etc/ppp/chat-cbcp
        #!/bin/sh
        #Request for CallbacK
        #
        /usr/sbin/chat -v                                    \
    TIMEOUT             7                       \
    ABORT               "\nERROR\r"             \
    ABORT               "\nNO DIALTONE\r"       \
    ABORT               "\nBUSY\r"              \
    ABORT               "\nNO ANSWER\r"         \
    ABORT               "\nNO CARRIER\r"        \
    ABORT               "\nLogin incorect\r"    \
    ''                  AT                      \
    SAY                 "Modem Initialization\n" \
    'OK-+++\c-OK'       'ATH0L2M2V1W2X4&c1E1q0' \
    SAY                 "Dialing to ISP\n"      \
    TIMEOUT              60                     \
    OK                  ATDT479700              \
    CONNECT             ''                      \
    SAY                 "Connected...\n"        \
    TIMEOUT 30                                  \
    ogin:               \c
exit 0

Пишем файл      /etc/ppp/options.cbcp
        ls -l /etc/ppp/options.cbcp
        -rw-r--r--    1 root     root          103 Apr 12 
18:10 /etc/ppp/options.cbcp
cat  /etc/ppp/options.cbcp
noipdefault
persist
nodetach
connect '/etc/ppp/chat-cbcp'
user Ваш логин
remotename Имя провайдера
callback Номер дозвона к вам

 И наконец создаём скрипт который будет дозваниваться, он очень простой
        ls -l /etc/ppp/ppp-on-dialer
        -rwxr-x---    1 root     uucp          116 Apr 12 
18:11 /etc/ppp/ppp-on-dialer

 У меня модем на 33600 поэтому скорость порта я задирать не стал, если у вас 
модем на 56К, то можете вписать скорость порта 115200
cat  /etc/ppp/ppp-on-dialer
#!/bin/sh
#
#Try to Connect Farlep CallBack
/usr/sbin/pppd /dev/modem 57600 defaultroute file /etc/ppp/options.cbcp
 Убедитесь что в файле  /etc/ppp/pap-secrets
прописана строка вида
Ваш логин Имя_провайдера  Пароль_у_провайдера
права на файл
 ls -l /etc/ppp/pap-secrets
 -rw-------    1 root     root           26 Apr 11 17:42 /etc/ppp/pap-secrets

При коректно настроеной сети всё готово для соединения с провайдером. Да 
кстати не забудьте. что обратный дозвон у провайдера является отдельной 
услугой, проконсультируйтесь в службе тех.поддержки провайдера о 
предоставлении вам таковой.

 Второй вопрос о том как сделать этот дозвон доступным под пользовательским 
аккаунтом?  Дозваниваться могут пользователи из группы UUCP
 grep uucp /etc/group
uucp:x:14:uucp,iscander,ну и остальные через запятую
Права доступа к файлам следующие
ls -l /usr/sbin/pppd /dev/modem /dev/ttyS1
lrwxrwxrwx    1 root     root           10 Mar 22 11:40 /dev/modem 
-> /dev/ttyS1
crw-rw----    1 root     uucp       4,  65 May  7 12:14 /dev/ttyS1
-rws--x---    1 root     uucp       218904 Oct 24  2002 /usr/sbin/pppd

После этого на рабочем столе пользователя можно создать ссылку на 
файл /etc/ppp/ppp-on-dialer и запускать соединение одним щелчком. Для 
индикации работы ppp меня вполне устраивает апплет в gkrelm 

===================================================================
-- 
С наилучшими пожеланиями
With best regards
Александр Огурцов
Alexandr Ogurtzoff



Подробная информация о списке рассылки community