Приведенный сценарий основан на примере для РРР из главы 6. Для повышения надежности сценария добавлены метки и команды обнаружения ошибок.

# Выполняем настройку параметров
setup:
# Запрашиваем адреса у РРР
get $local 0.0.0.0
# Выбираем порт
port cual
# Устанавливаем скорость порта
speed 57600
# Создаем счетчик цикла
get $loopcntr О
# Коммутация с удаленным сервером
dialin:
# Аппаратная инициализация модема и очистка буфера ввода
reset
flush
# Набираем номер РРР-сервера и проверяем ответ модема
dial *70,301-555-1234
# Если занято (BUSY), набрать номер снова
if $errlvl == 3 goto redial
# В случае иной ошибки прервать выполнение
if $errlvl ! = 1 goto dial-error
# Иначе - инициализировать счетчик цикла
get $loopcntr 0
It Делаем паузу в две секунды, чтобы сервер успел подготовиться
sleep 2
#    Регистрация на удаленном сервере
login:
в Передаем символ возврата каретки, чтобы «разбудить» сервер
send \r
#    Ожидаем приглашения Username> и передаем имя пользователя
wait name> 20
if Serrlvl != 0 goto try-again
send kristin\r
# Ожидаем приглашения Password> и передаем пароль
wait word> 10
if $errlvl != 0 goto server-failure
password
# Ожидаем приглашения командной строки сервера РРР
wait > 20
if $errlvl != О goto server-failure
# Передаем команду, регламентированную сервером РРР
send ррр enabled\r
# Успех! Мы подключились,
connected:
#    Переводим интерфейс в режим РРР
mode РРР
# Завершаем работу сценария
exit
# Подпрограммы обработки ошибок
# Набирать номер до трех раз. Между попытками делать паузы по 5 секунд
redial:
inc Sloopcntr
# Sloopcntr > 3 goto busy-failure
sleep 5
goto dialin
tt Повторная попытка «разбудить» сервер
try-again:
inc Sloopcntr
if $loopcntr > 1 goto server-failure
goto login
dial-error:
print He удалось подключиться к Sremote.
quit
server-failure:
print Сервер Sremote не ответил,
quit
busy-failure:
print Линия сервера Sremote занята. Перезвоните позже,
quit

Данный сценарий представляет собой реалистичный пример использования наиболее востребованных команд dip. Тем не менее есть шансы столкнуться с особыми проблемами при написании подобных сценариев. В таком случае поможет широкий выбор доступных в dip команд. Если посредством dip задачу решить не удается, обратитесь к инструменту expect. Полное описание языка сценариев expect дается в книге Дона Либиса (Don Libes) «Exploring Expect» (Изучаем Expect), O'Reilly & Associates.