Previous Next Contents

2. Звонки с помощью minicom

Многие руководства по PPP рекомендуют выйти из minicom после того, как он был использован для дозванивая. Но в действительности не нужно покидать эту удобную программу...

2.1. Настройка minicom

Выполните "minicom -s" и выберите пункт меню "Serial port setup". Первым стоит пункт "Serial Device" - это самая важная установка: ваш модем поключается к последовательному устройству. (Кто хочет заставить minicom работать с несколькими последовательными устройствами одновременно ?) Нажмите return для подтверждения и esc чтобы выйти в начальное меню установок. Выберите "Exit to minicom" и напечатайте "atdt99999". Ваш модем немедленно начнет набирать номер и вы услышите щелчок, когда модем поднимет трубку. Конечно, "99999" - несуществующий номер.

2.2. Запуск PPP вручную

Возможно, вы пытались звонить по телефону вашего провайдера вместо "99999". Вы видели беспорядочные символы на экране после регистрации (если нет, напечатайте "ppp")? Они говорят о том, что на другом конце линии запущен "pppd" (или его эквивалент). Если это так, то вы со своей стороны можете попытаться запустить демон "pppd" и впоследствии оценить содержимое лог-файлов.

Чтобы запустить "pppd" внутри minicom, вы можете определить новый метод закачки "наверх" (то есть, от вас) или переопределить установку "kermit programm" из меню конфигурации "Filename and paths":


            A - Download directory :

            B -   Upload directory :

            C -   Script directory :

            D -     Script program : /usr/bin/runscript

            E -     Kermit program : /usr/sbin/pppd file /etc/ppp/mini_options

Сейчас, если вы видели эти беспорядочные символы, при следующем звонке вашему провайдеру вы можете нажать Alt-K, чтобы запустить "pppd".

Оставшаяся часть этого mini-HOWTO посвящена вопросам автоматизации логгирования и запуска "pppd".

2.3. Изучение логов

Хотя я не собираюсь объяснять как настраивается PPP, я вкратце опишу как читать логи. Чтобы выделить значимую информацию из лога "/var/log/debug" (или "/var/log/daemon.log") выполните команды


                tail -n 40  /var/log/debug |\

                        grep -E " pppd\[[0-9]*\]:" |\

                        sed -e "s/^.*pppd\[/[/" 

Вы увидите сообщения вроде этих


                sent [LCP ConfReq id=0x1 ]

                rcvd [LCP ConfRej id=0x1 ]

которые показывают что мы отправили запрос на установку максимального размера принимаего блока (mru) в значение 296. Другая сторона отвергла эту установку ("configuration rejected"). В этом случае я только удалил опцию "mru" из файла "/etc/ppp/options" (см. ниже).

2.4. Настройка телефонных номеров

Если вышеприведенные действия были успешными, вы можете захотеть сохранить телефонный номер в базе данных minicim'а. Нажмите Alt-D для вызова меню звонков и с помощью курсорных клавиш выберите "Edit":


                A -  Name                : Xeno

                B -  Number              : 022039697303

                C -  Dial string #       : 1

                D -  Local echo          : No

                E -  Script              : /etc/ppp/login.script

                F -  Username            : ppp-382

                G -  Password            : top-secret

                H -  Terminal Emulation  : VT102

                I -  Backspace key sends : Delete

                J -  Linewrap            : Off

                K -  Line Settings       : Curr 8N1

Это пример записи для одного из моих провайдеров. Сценарий "/etc/ppp/login.script" показан ниже. Две специальные переменные заведены в этом сценарии: $(LOGIN) и $(PASS), которые устанавливают такие значения как имя пользователя (F) и пароль (G). Эта особенность придает minicom'у некоторую гибкость, потому что вам нужен только один скрипт, чтобы автоматически подсоединяться к нескольким провайдерам.

2.5. Сценарий регистрации

"minicom" запускает сценарий регистрации (login-script) после того как он примет строку "CONNECT". Чтобы быть точным, "minicom" не выполняет сценарий сам, а вызывает для этого утилиту "runscript" в качестве дочернего процесса.

Ниже показан пример, который я использую для моего провайдера.


                # v1.0, 20.08.96 Winfried TrЭmper 

                print ""

                print "Автоматическая регистрация через /etc/ppp/login.script"

        

                ## раскомментируйте, если вам нужно нажать , чтобы

                ## получить строку приглашения

                #send ""

        

                expect {

                        "ogin:"

                        "ogin>"

                        "sername:"

                        "sername>"

                        "NO CARRIER" exit 1

                }

                send "$(LOGIN)"

                expect {

                        "assword:"

                        "assword>"

                        timeout 20

                }

                send "$(PASS)"

                expect {

                        "port"  send "ppp"

                        "Start your PPP now"

                        "}!}!}"

                        timeout 10

                }

                print ""

                print "Сейчас переключаемся в ppp-режим ..."

                print ""



                ! /usr/sbin/pppd  file /etc/ppp/mini_options



                print ""

                print "команда  killall -TERM pppd  прекращает работу pppd"

Способность "runscript" вызывать внешние программы используется для запуска "pppd". Скопируйте ваш собственный файл options для ppp в "/etc/ppp/options.ttyS1" (здесь вы можете заменить "ttyS1" на устройство, к которому подключен ваш модем) и удалите все строки из /etc/ppp/options, которые относятся к вашему модему (вроде "connect", "crtscts" или "modem"). Вставьте опции, которые специфичны для ppp-соединения через minicom в "/etc/ppp/mini_options". Одной из этих опций будет


                disconnect "chat '' '\d\d+++\d\dATH\r\c'"

Она должна быть, так как "pppd" читает данные через стандартный поток ввода и не может заставить модем бросить трубку через "crtscts".

2.6. Автоматический дозвон при запуске

Используйте опцию "-d", чтобы звонить по определенному номеру при запуске minicom. Также вы можете попробовать


                open -sl -- minicom -d 1

чтобы перебросить minicom в другую консоль (см. Consoles-Many mini-HOWTO).

2.7. Будущие расширения

Поскольку "pppd" - демон, он не предназначен для интерактивного общения с пользователем или наблюдения. Это так. И после всего этого мы используем юниксы...

Каноническое решение позади. Есть добровольцы хакнуть minicom? Желаемые расширения такие:


Next Previous Contents