LINUX.ORG.RU

Скрипт дозвона - ppp + chat


0

0

Прошу строго не судить, совсем новичёк ибо :) Ставлю Gentoo ч/з диалуп :), модем софтовый. Нумер набирается, модем начинает довольно урчать, потом вываливаестя что-то вроде ~^?}#@!}!Z} , и на этом всё заканчивается с ошибкой соединения.

Пишу примерно следующее: pppd connect 'chat -V ABORT BUSY ABORT ERROR ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT "NO ANSWER" "" ATZ OK ATDP1234567 TIMEOUT 90 CONNECT "" ogin:--ogin: mylogin ssword: mypasswd'

/etc/ppp/options: /dev/modem 57600 #(разное пробовал) lock login modem xonxoff defaultroute noipdefault debug -detach

Какое волшебное слово ждут от меня на том конце (логин-пароль правильные)??

wvdial это волшебное слово знает, т.к. коннектит нормально (правда не через всех провайдеров). Что мне собс-но надо это дозвон && wget1 wget2 ...(emerge -f ...) && выход. А с wvdial && отрабатывает по завершении wvdial-а, те не катит :) Да и потом разобраться всяко надо ;)

зы Маны читал, по Гуглю гулял... ззы весь сабж колбасится в RedHat 9

Так навскидку не скажу (не гуру я :)), могу лишь посоветовать использовать minicom, и попробовать звонить вручную, т.е. набираешь ATZ, ждёшь OK, и так далее, шаг за шагом. Так сможешь выяснить, что именно посылает тебе провайдерский сервер, и на каком этапе происходит ошибка. И когда всё получится, только тогда пиши _правильный_ скрипт дозвона в файл, и оттуда его вызывай (ведь это проще, чем каждый раз вбивать его с консоли :), isn't it?)

З.Ы. Ещё есть вариант, что твой модем хочет получить строку инициализации. Какая именно ему нужна, поможет выяснить wvdial. Нужно сделать wvdialconf - строку инициализации со всеми аппаратными особенностями модема найдёшь в /etc/wvdial.conf

Цитата из мана:

wvdialconf detects your modem, its maximum baud rate, and a good ini- tialization string and generates or updates the wvdial(1) configuration file based on this information.

bsh ★★★
()
Ответ на: комментарий от bsh

Эх, ещё учиться, учиться и учиться (c)

Пока не очень понимаю смысл таких штук вроде ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0, попробую ещё раз поискать в инете что-нибудь.

wvdialconf выдал следующее: ttySHSF0<*1>: ATQ0 V1 E1 -- OK ttySHSF0<*1>: ATQ0 V1 E1 Z -- OK ttySHSF0<*1>: ATQ0 V1 E1 S0=0 -- OK ttySHSF0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttySHSF0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttySHSF0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttySHSF0<*1>: Modem Identifier: ATI -- 56000 ttySHSF0<*1>: Speed 4800: AT -- OK ttySHSF0<*1>: Speed 9600: AT -- OK ttySHSF0<*1>: Speed 19200: AT -- OK ttySHSF0<*1>: Speed 38400: AT -- OK ttySHSF0<*1>: Speed 57600: AT -- OK ttySHSF0<*1>: Speed 115200: AT -- OK ttySHSF0<*1>: Max speed is 115200; that should be safe. ttySHSF0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttySHSF0, using link /dev/modem in config. Modem configuration written to /etc/wvdial.conf.

ttySHSF0<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

/etc/wvdial.conf:

[Modem0] Modem = /dev/ttySHSF0 Baud = 57600 SetVolume = 1 Dial Command = ATDP Init1 = ATZ FlowControl = Software (XONXOFF) Line Termination = CR/LF

[Dialer defaults] Username = myuname Password = mypasswd Phone = 1234567 Stupid Mode = 0 Inherits = Modem0 Modem = /dev/modem Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ISDN = 0 Modem Type = Analog Modem

minicom:

AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0 ATZ OK ATDP1234567 login:mylogin password:mypassword ~~}#.!}!.} }4}"}&} }*} } }%}&\&.. NO CARRIER

Как-то мне не очень очевидно, что теперь с этим всем делать-то? Методом неблагородного тыка перебрал уже, наверное, все возможные комбинации, один хрен :( Люди добрые, ПОМОГИТЕ ПОЖАЛУЙСТА ВЫПРЯМИТЬ РУКИ!!!

innuendo
() автор топика
Ответ на: комментарий от innuendo

Добрые люди посоветовали pap и chap помучить, в результате убрал "ogin: ssword", внёс логин-пароль в pap-secrets и chap-secrets, после чего картина поменялась на следующую:

CONNECTSerial connection established.

using channel 8

Using interface ppp0

Connect: ppp0 <--> /dev/modem

sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp>

<accomp>]sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp> <accomp>]rcvd [LCP ConfReq id=0x88 <asyncmap 0xa0000> <auth pap>

<magic 0xea6a967c> <pcomp> <accomp>]

sent [LCP ConfRej id=0x88 <auth pap>]

rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp> <accomp>]rcvd [LCP ConfReq id=0x89 <asyncmap 0xa0000> <auth pap> <magic 0xea6a967c> <pcomp> <accomp>]

sent [LCP ConfRej id=0x89 <auth pap>]

rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp> <accomp>]rcvd [LCP ConfReq id=0x8a <asyncmap 0xa0000> <auth pap> <magic 0xea6a967c> <pcomp> <accomp>]

sent [LCP ConfRej id=0x8a <auth pap>] rcvd [LCP ConfReq id=0x8b <asyncmap 0xa0000> <auth chap MD5> <magic 0xea6a967c>

<pcomp> <accomp>]

sent [LCP ConfRej id=0x8b <auth chap MD5>]

rcvd [LCP ConfReq id=0x8c <asyncmap 0xa0000> <auth pap> <magic 0xea6a967c> <pcomp> <accomp>]

sent [LCP ConfRej id=0x8c <auth pap>]

rcvd [LCP ConfReq id=0x8d <asyncmap 0xa0000> <auth chap MD5> <magic 0xea6a967c>

<pcomp> <accomp>] sent [LCP ConfRej id=0x8d <auth chap MD5>]

sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp> <accomp>]rcvd [LCP ConfReq id=0x8e <asyncmap 0xa0000> <auth pap> <magic 0xea6a967c> <pcomp> <accomp>]

sent [LCP ConfRej id=0x8e <auth pap>] rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11>

<pcomp> <accomp>]rcvd [LCP TermReq id=0x8f] sent [LCP TermAck id=0x8f]

sent [LCP ConfReq id=0x1 <asyncmap 0xa0000> <magic 0x3b16ab11> <pcomp> <accomp>]Modem hangup

Connection terminated.

Ёпрст, как в том анекдоте про нового русского с отключённой трубой, "ну и чё теперь типа ау?" Четыре часа уже угробил, блин! Я уже готов на уши встать, если понадобится, только скажите пожалуйста, ЧТО ДЕЛАТЬ??? :)

innuendo
() автор топика
Ответ на: комментарий от innuendo

>ЧТО ДЕЛАТЬ??? :)

Не паниковать. Не пытаться сразу получить результат. Ясная голова работает эффективнее ;)

Вот уже кое-что выяснилось - твой пров, видимо использует chap-аутентификацию. Кстати, в твоём /etc/ppp/options что-то не видно метода компрессии - это может быть bsdcomp, VJ, mppe - звякни в суппорт и выясни (правда, обычно у провов в суппорте сидят ламера, кроме настройки виндовых звонилок ничего не знающие, но может тебе повезёт :)). Если не удастся - старый добрый метод научного тыка примени :)

Ещё раз внимательно почитай man pppd, хоть он и длинный очень, но полезный :)

bsh ★★★
()
Ответ на: комментарий от bsh

Кстати мне повезло =) Чел на том конце удивился, но виду не подал, начал расспрашивать и пытаться помочь - редчайший случай лдя провайдеров :)

Говорит, что сброс коннекта происходит на моей стороне (очень может быть), хрен знает, wvdial ведь на самом деле договаривается (пробовал и из ентого wvdial.conf сдуть, безрезультатно).

Блин, а умные эти звонилки, однако! Как они так на мах с провом договариваются?!

Насчёт компрессии вообше интересно (в винде не знал такого =)), так ли это существенно?

Метод тыка уже почти исчерпал себя, но я не сдаюсь =) (и обратно в винды уж точно не пойду, не уговорите!!!)

p.s. Ух ты YOPT, цедый рабочий день на эту ботву за*бенил! Но - "руки не для суки", будем лечить :~))

innuendo
() автор топика
Ответ на: комментарий от innuendo

>Насчёт компрессии вообше интересно (в винде не знал такого =)), так ли это существенно?

Очень может быть. Например, пров использует mppe, а у тебя pppd может быть собран без него, ну или модуль mppe сам не подгружается...

И кстати,

>minicom:

>AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0 ATZ OK ATDP1234567 login:mylogin password:mypassword ~~}#.!}!.} }4}"}&} }*} } }%}&\&.. NO CARRIER

Тут бы следовало наоборот, сначала послать модему ATZ (сброс настроек) и дождаться OK, а уж после послать строку инициализации, т.е. AT s7=45_blah_blah... , а уж потом ATDP, а то получается, что ты посылаешь модему строку инициализации, а потом сбрасываешь настройки ;)

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

Общий совет - не вноси в скрипт дозвона за раз более одного изменения, а то запутаешься, от чего происходит то, или другое событие.

По опыту скажу, что в таких ситуациях, в 90% случаев дело в какой-то дурацкой и элементарной ошибке ;).

З.Ы. Вообще-то я в инете сижу из локалки с шлюзом в инет, и дайлапом до этого баловался чисто из любопытства и спортивного интереса, получится ли. Получилось, и с тех пор я им в общем-то и не пользовался. Так что у меня самого в этом вопросе опыта почти что и нет :). Но через несколько часов на форуме появится больше знающих людей - может они подскажут что-то более конкретное - удачи :)

bsh ★★★
()

У меня мандражка 10
Я обычно из под рута в терминале набирал kppp и звонил к провайдеру.
Это положение меня задолбало
Я поставил пакет wvdial из дистрибутива
Посмотрел man wvdial, man wvdial.conf
Создал /etc/wvdial.conf и поставил туда из мана
простейшую конфирурацию
там только номер дозвона (ATDP1234567),
имя юзера и пароль
а также модем /dev/ttyS1
PPPD = yes
скорость и все
Зашел в терминал su - root
и набрал wvdial
и все заработало
Все это было сегодня утром когда собирался на работу
и заняло это всего 15 минут
До этого я никогда не юзал wvdial
Но я знаю что с виндоуза спокойно коннектятся
к провайдеру
значит и у меня должно быть легко
Так и вышло - лез куда ни надо
Попробуй с виндоза сначало законектится
Посмотри лог (в каком-то файле под вин сохраняется) если надо

anonymous
()
Ответ на: комментарий от anonymous

Так wvdial у меня тож с полпинка завёлся, только я так и не нашёл, как задания к нему прикрутить. Да и просто хотелось разобраться %^0

А логи я почти полностью кстати постил, по-моему...

Большое всем спасибо, вечером продолжу :)

innuendo
() автор топика
Ответ на: комментарий от innuendo

Так бы сразу и сказал, а то логи чето-то постил. Все делается в шелле.

Смотри скрипт 'Перископ'.
http://www.linux.org.ru/view-message.jsp?msgid=478915

Когда хозяин в отъезде но имеет доступ в инет и хочет залезти
через сеть к себе в комп издалека-далеко.

Комп по диал-апу коннектится к провайдеру в определенное время.
Узнается присвоенный АйПи адрес, который потом передается
на внешний емаил.

Хозяин смотрит этот емаил издалека-далека и видит АйПи своего компа.
И теперь зная АйПи он прямо лезет на свой копм.

Через час работы скрипт закрывает коннект с инетом.

Этот скрип можно сильно переделать под себя.

13.7.4 Periscope: A Useful Networking Script
http://www.linux.org.ru/view-message.jsp?msgid=478915

anonymous
()

Говорила мама не юзать вин модемы...

Я вообще то не уверен ,что это поможет но вот тут можно посмотреть http://ezhikov.by.ru/legs.html

trm111
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.