Первый пользователь — cbuser. Согласно опции * — это пустое определение пользователя — для тестирования. Второй пользователь user — это реальное определение пользователя, телефон для обратного звонка — 320779. Все остальные пользователи не будут использовать функцию callback — опция «-».
С помощью команды chmod сделайте сценарии callback-server и callback-client исполнимыми. После этого необходимо немного отредактировать скрипт callback-server (см. листинг 17.16).
#!/bin/sh
# Script callback-server
# Script parameters: delay time in seconds, callback number
DELAY="$1"
NUMBER="$2"
/usr/sbin/chat –v –t 2 "" ATH0
sleep $DELAY
/usr/sbin/chat –v "" AT OK ATS39=5DT$NUMBER CONNECT
Данная конфигурация уже должна работать, но иногда модем не успевает инициализироваться, поэтому после команды sleep $DELAY следует добавить еще одну команду sleep, например, sleep 25. Обратите внимание: используется тональный набор (АТ-команда DT). Напомню, что для импульсного набора используется команда DP (ATDP).
Вот и все, осталось только проверить корректность работы сервера.
17.3.4. Настройка клиентов. Способ 1
Создайте новое соединение и приступите к его конфигурации. При этом, на вкладке «Тип сервера» выключите все параметры, кроме программного сжатия данных. Единственный допустимый сетевой протокол — TCP/IP (см. рис. 17.2).
Рис. 17.2. Свойства соединения
Затем создайте в любом текстовом редакторе, например, в Блокноте, сценарий для обратного звонка (листинг 17.17).
proc main
delay 1
# это ваше «волшебное» слово
transmit "please^M"
# Ожидание запроса номера
# телефона
waitfor "phone"
# Передача номера
transmit "123456^М"
# Ожидание вызова
waitfor "RING"
# Ожидание соединения модемов
waitfor "CONNECT"
endproc
Сохраните свое творение как файл callback.scp. В операционной системе Windows NT данный файл нужно записать в каталог \WINNT\SYSTEM32\RAS. После этого перейдите на вкладку Сценарии и выберите только что созданный сценарий (см. рис. 17.3).
Рис. 17.3. Сценарий callback.scp
Затем перейдите на вкладку Общие и нажмите на кнопку «Настройка». В появившемся окне перейдите на вкладку Подключение и нажмите на кнопку «Дополнительно». Далее, в строке инициализации модема необходимо ввести AT&C1SO=1 (см. рис. 17.4). Команда &С1 устанавливает сигнал CD — без него этот способ работать не будет. Команда SO устанавливает количество звонков, после которых модем клиента будет снимать трубку (1 звонок). Для модема Motorola Premier 33.6 установите такую строку инициализации:
AT&F&C0S0=1Q0V1&D3\V4
Рис. 17.4. Дополнительные параметры связи
Более серьезный пример файла сценария callback вы найдете на прилагаемом компакт-диске в каталоге /mnt/cdrom/doc/callback.
В операционной системе Windows NT обратный вызов настраивается несколько иначе. С этой целью откройте окно запуска удаленного доступа: Пуск→Программы →Стандартные→Удаленный доступ (Start→Programs→Accessories→Remote access). Нажмите на кнопку «Другое» («More»). Выберите пункт меню «Параметры пользователя» («Users preferences») и перейдите на вкладку Ответный вызов («Callback»). Отметьте пункт «Да, требуется ответный вызов по указанным номерам». Номер телефонной линии, на которой установлен модем, можно изменить, нажав на кнопку «Изменить».
17.3.5. Настройка клиентов. Способ 2
Как я уже говорил, для второго способа не нужно создавать никаких сценариев для Windows-клиентов. И, как правило, никаких проблем с настройкой Windows здесь не возникает — нужно просто использовать обыкновенное соединение. Базовая настройка соединения производится так же, как и в первом случае (см. рис. 17.2).
Однако при использовании второго способа могут возникнуть проблемы с настройкой Linux-клиентов. На Linux-клиентах должна быть установлена та же версия pppd, что и на серверах. И так же, как и на сервере, ее необходимо пропатчить. После обновления демона pppd нужно настроить файл /etc/ppp/callback-client (см. листинг 17.18).
#!/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
# Вместо параметра $DELAY установите значение, которое подходит
# для вашего модема