[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