Решено: Завершение GPRS соединения (Debian 4)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
SnakeSolid
Сообщения: 4
ОС: Debian GNU/Linux 4.0 r4a

Решено: Завершение GPRS соединения (Debian 4)

Сообщение SnakeSolid »

Настроил GPRS соединение (телефон ME75, провод DCA-540, Debian GNU/Linux 4.0 r4a). Все подключается, трафик идет. Проблема в том, что если отключиться через poff то телефон продолжает держать GPRS сессию. При повторной попытке подключиться, в консоль начинает валиться "мусор" (если разорвать соединение во время закачки HTML кода, то в консоль будет сыпаться продолжение кода с того места где соединение было разорвано по poff). Нашел старую статью по данному вопросу, но решение предложенное автором статьи (снизить скорость с 115200 до 57600) не помогло.
На данный момент у меня следующие настройки:
  • в /etc/ppp/peers создан файл me75_gprs с содержимым:

    Код:

    noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/me75_gprs_on" disconnect "/usr/sbin/chat -v -f /etc/chatscripts/me75_gprs_off" defaultroute /dev/ttyUSB0 115200 passive noipdefault noproxyarp novj nodeflate nobsdcomp usepeerdns user wap password wap crtscts lcp-echo-failure 0 lcp-echo-interval 0 default-asyncmap escape ff
  • содержимое /etc/chatscripts/me75_gprs_on:

    Код: Выделить всё

    TIMEOUT 30
    ABORT   'NO ANSWER'
    ABORT   'BUSY'
    ABORT   'NO CARRIER'
    ABORT   'ERROR'
    ''      'ATZ'
    OK      'ATE1'
    OK      'AT+CGDCONT=1,"IP","internet"'
    OK      'ATDT*99***1#'
    CONNECT '\c\d'
  • содержимое /etc/chatscripts/me75_gprs_off:

    Код: Выделить всё

    TIMEOUT 30
    ABORT   'BUSY'
    ABORT   'ERROR'
    ABORT   'NO DIALTONE'
    ''      'ATH'
    OK      'AT+CGATT=0'
    OK      '\c\d'

Мне кажется, что в me75_gprs_off нужно написать другие команды для корректного завершения соединения.
Файл журнала при успешном соединении выглядит так:

Код:

Oct 28 17:56:34 localhost pppd[3966]: pppd 2.4.4 started by snake, uid 1000 Oct 28 17:56:35 localhost chat[3967]: timeout set to 30 seconds Oct 28 17:56:35 localhost chat[3967]: abort on (NO ANSWER) Oct 28 17:56:35 localhost chat[3967]: abort on (BUSY) Oct 28 17:56:35 localhost chat[3967]: abort on (NO CARRIER) Oct 28 17:56:35 localhost chat[3967]: abort on (ERROR) Oct 28 17:56:35 localhost chat[3967]: send (ATZ^M) Oct 28 17:56:35 localhost chat[3967]: expect (OK) Oct 28 17:56:35 localhost chat[3967]: ATZ^M^M Oct 28 17:56:35 localhost chat[3967]: OK Oct 28 17:56:35 localhost chat[3967]: -- got it Oct 28 17:56:35 localhost chat[3967]: send (ATE1^M) Oct 28 17:56:35 localhost chat[3967]: expect (OK) Oct 28 17:56:35 localhost chat[3967]: ^M Oct 28 17:56:36 localhost chat[3967]: ATE1^M^M Oct 28 17:56:36 localhost chat[3967]: OK Oct 28 17:56:36 localhost chat[3967]: -- got it Oct 28 17:56:36 localhost chat[3967]: send (AT+CGDCONT=1,"IP","internet"^M) Oct 28 17:56:36 localhost chat[3967]: expect (OK) Oct 28 17:56:36 localhost chat[3967]: ^M Oct 28 17:56:36 localhost chat[3967]: AT+CGDCONT=1,"IP","internet"^M^M Oct 28 17:56:36 localhost chat[3967]: OK Oct 28 17:56:36 localhost chat[3967]: -- got it Oct 28 17:56:36 localhost chat[3967]: send (ATDT*99***1#^M) Oct 28 17:56:36 localhost chat[3967]: expect (CONNECT) Oct 28 17:56:36 localhost chat[3967]: ^M Oct 28 17:56:39 localhost chat[3967]: ATDT*99***1#^M^M Oct 28 17:56:39 localhost chat[3967]: CONNECT Oct 28 17:56:39 localhost chat[3967]: -- got it Oct 28 17:56:39 localhost chat[3967]: send (c\d^M) Oct 28 17:56:40 localhost pppd[3966]: Serial connection established. Oct 28 17:56:40 localhost pppd[3966]: Using interface ppp0 Oct 28 17:56:40 localhost pppd[3966]: Connect: ppp0 <--> /dev/ttyUSB0 Oct 28 17:56:41 localhost pppd[3966]: CHAP authentication succeeded Oct 28 17:56:41 localhost pppd[3966]: CHAP authentication succeeded Oct 28 17:56:47 localhost pppd[3966]: local IP address 10.203.7.103 Oct 28 17:56:47 localhost pppd[3966]: remote IP address 192.168.254.254 Oct 28 17:56:47 localhost pppd[3966]: primary DNS address 83.149.49.238 Oct 28 17:56:47 localhost pppd[3966]: secondary DNS address 83.149.49.234[code] Если отключиться и снова подключиться, то картина такая: [code]Oct 28 17:53:34 localhost pppd[3818]: pppd 2.4.4 started by snake, uid 1000 Oct 28 17:53:35 localhost chat[3819]: timeout set to 30 seconds Oct 28 17:53:35 localhost chat[3819]: abort on (NO ANSWER) Oct 28 17:53:35 localhost chat[3819]: abort on (BUSY) Oct 28 17:53:35 localhost chat[3819]: abort on (NO CARRIER) Oct 28 17:53:35 localhost chat[3819]: abort on (ERROR) Oct 28 17:53:35 localhost chat[3819]: send (AT+CGATT=0^M) Oct 28 17:53:36 localhost chat[3819]: expect (OK) Oct 28 17:53:36 localhost chat[3819]: ~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } } Oct 28 17:53:36 localhost chat[3819]: '}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~ Oct 28 17:53:36 localhost chat[3819]: ^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }' Oct 28 17:53:36 localhost chat[3819]: }"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^? Oct 28 17:53:36 localhost chat[3819]: }#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'} Oct 28 17:53:36 localhost chat[3819]: "}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?} Oct 28 17:53:36 localhost chat[3819]: #@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}" Oct 28 17:53:36 localhost chat[3819]: }(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}# Oct 28 17:53:36 localhost chat[3819]: @!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"} Oct 28 17:53:36 localhost chat[3819]: (}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@ Oct 28 17:53:36 localhost chat[3819]: !}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}( Oct 28 17:53:36 localhost chat[3819]: }"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@! Oct 28 17:53:36 localhost chat[3819]: }!}#} }9}"}&} }*} } }'}"}(}"}%}&I@rJ}#}%B#}%Lb~~^?}#@!}!}#} }9}"}

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

Дак вот собственно вопрос: как правильно прописать завершение GPRS сессии?
P.S.: При подключении, после набора номера, может вываливаться аналогичный "мусор", но такое происходит редко. В любом случае помогает либо перезагрузка телефона, либо подключение с последующим отключением GPRS на телефоне.
Debian GNU/Linux 4.0 r4a (GA-7N400S; SDA2600SEPRS745BOX; 1024 Mb; ATI Radeon 9800SE 128Mb; ST3802110A; WD3200AAKS)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение sash-kan »

SnakeSolid писал(а):
28.10.2008 17:13
Мне кажется, что в me75_gprs_off нужно написать другие команды
а можно попробовать и вообще без него. закомментировав строку
SnakeSolid писал(а):
28.10.2008 17:13
disconnect "/usr/sbin/chat -v -f /etc/chatscripts/me75_gprs_off"
в /etc/ppp/peers/me75_gprs
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
SnakeSolid
Сообщения: 4
ОС: Debian GNU/Linux 4.0 r4a

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение SnakeSolid »

Попробовал убрать строку

Код:

disconnect "/usr/sbin/chat -v -f /etc/chatscripts/me75_gprs_off"

таже история. Соединяется нормально, после отключения не возможно снова соединиться, начинает выдавать данные в консоль.
Проверил такой вариант: подключиться, отключиться не передавая данных, и снова подключиться. Такая последовательность работает нормально. Получить почту или пропинговать любой адрес, то после отключения помогает только перезагрузка телефона или включить и сразу выключить GPRS на телефоне.
Debian GNU/Linux 4.0 r4a (GA-7N400S; SDA2600SEPRS745BOX; 1024 Mb; ATI Radeon 9800SE 128Mb; ST3802110A; WD3200AAKS)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение sash-kan »

не остаётся ли, случайно, в живых процесс pppd после отключения?
если не остаётся — есть два пути.
1. смириться.
2. опробовать этот аппарат в windows с установленным драйвером от производителя. если отключение будет происходить нормально — попробовать отловить команды, которые драйвер передаёт телефону при отключении.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
SnakeSolid
Сообщения: 4
ОС: Debian GNU/Linux 4.0 r4a

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение SnakeSolid »

Нет, процесс pppd завершается. Если оставлять disconnect, то он ждет 30 секунд, говорит что время ожидания вышло (пишет в лог) и завершается. Если без строки, то он сразу же после poff me75_gprs завершается и говорит, что все успешно.
Да, в Windows отключение происходит корректно. Проверял на 2000-й, XP и 98-й.
sash-kan писал(а):
31.10.2008 16:33
2. опробовать этот аппарат в windows с установленным драйвером от производителя. если отключение будет происходить нормально — попробовать отловить команды, которые драйвер передаёт телефону при отключении.

В связи с этим вопрос: каким образом отловить команды, которые передает драйвер при отключении телефона?
Debian GNU/Linux 4.0 r4a (GA-7N400S; SDA2600SEPRS745BOX; 1024 Mb; ATI Radeon 9800SE 128Mb; ST3802110A; WD3200AAKS)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение sash-kan »

SnakeSolid писал(а):
01.11.2008 20:42
каким образом отловить команды, которые передает драйвер при отключении телефона?
включить лог модемного соединения.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
SnakeSolid
Сообщения: 4
ОС: Debian GNU/Linux 4.0 r4a

Re: Решено: Завершение GPRS соединения (Debian 4)

Сообщение SnakeSolid »

В логах Windows пишет следующее:

Код:

11-02-2008 16:50:53.984 - File: D:\\WINNT\\system32\\unimdm.tsp, Version 5.0.2195 - Retail 11-02-2008 16:50:53.984 - File: D:\\WINNT\\system32\\unimdmat.dll, Version 5.0.2195 - Retail 11-02-2008 16:50:53.984 - File: D:\\WINNT\\system32\\uniplat.dll, Version 5.0.2195 - Retail 11-02-2008 16:50:53.984 - File: D:\\WINNT\\system32\\drivers\\modem.sys, Version 5.0.2195 - Retail 11-02-2008 16:50:53.984 - File: D:\\WINNT\\system32\\modemui.dll, Version 5.0.2195 - Retail 11-02-2008 16:50:53.984 - Тип модема: Siemens Mobile Phone USB Modem 11-02-2008 16:50:53.984 - INF-файл модема: oem16.inf 11-02-2008 16:50:53.984 - Секция INF-файла модема: SiemensUSB 11-02-2008 16:50:58.234 - 115200,8,N,1, ctsfl=1, rtsctl=2 11-02-2008 16:50:58.234 - Инициализация модема. 11-02-2008 16:50:58.250 - Послано: AT&FE0V1&D2&C1Q0S0=0<cr> 11-02-2008 16:50:58.296 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.296 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.312 - Послано: AT&FE0<cr> 11-02-2008 16:50:58.343 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.343 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.359 - Послано: AT+FCLASS=0<cr> 11-02-2008 16:50:58.375 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.375 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.390 - Послано: ATS7=60\\Q3<cr> 11-02-2008 16:50:58.406 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.406 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.421 - Послано: AT+CGDCONT=1,\"IP\",\"internet\"<cr> 11-02-2008 16:50:58.437 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.437 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.437 - Установка протокола цифровой линии 11-02-2008 16:50:58.453 - Послано: AT+CBST=7,,1<cr> 11-02-2008 16:50:58.468 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.468 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.468 - Ожидание звонка. 11-02-2008 16:50:58.484 - Послано: ATS0=0<cr> 11-02-2008 16:50:58.500 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.500 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.500 - 115200,8,N,1, ctsfl=1, rtsctl=2 11-02-2008 16:50:58.515 - Инициализация модема. 11-02-2008 16:50:58.531 - Послано: AT&FE0V1&D2&C1Q0S0=0<cr> 11-02-2008 16:50:58.578 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.578 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.593 - Послано: AT&FE0<cr> 11-02-2008 16:50:58.625 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.625 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.640 - Послано: AT+FCLASS=0<cr> 11-02-2008 16:50:58.656 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.656 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.671 - Послано: ATS7=60\\Q3<cr> 11-02-2008 16:50:58.687 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.687 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.703 - Послано: AT+CGDCONT=1,\"IP\",\"internet\"<cr> 11-02-2008 16:50:58.718 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.718 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.718 - Установка протокола цифровой линии 11-02-2008 16:50:58.734 - Послано: AT+CBST=7,,1<cr> 11-02-2008 16:50:58.750 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:50:58.750 - Интерпретированный ответ: ОК 11-02-2008 16:50:58.750 - Набор номера. 11-02-2008 16:50:58.765 - Послано: ATD*##***##<cr> 11-02-2008 16:50:59.296 - Принято: <cr><lf>CONNECT<cr><lf> 11-02-2008 16:50:59.296 - Интерпретированный ответ: Подключение 11-02-2008 16:50:59.296 - Соединение установлено, но уровень сигнала CD низок. Ожидается увеличение уровня сигнала 11-02-2008 16:50:59.328 - Сигнал CD увеличился 11-02-2008 16:50:59.328 - Подключение установлено - 115200 бит/с. 11-02-2008 16:50:59.328 - Контроль ошибок отключен или неопознан. 11-02-2008 16:50:59.328 - Сжатие данных отключено или неопознано. 11-02-2008 16:51:18.234 - Разрыв соединения модема. 11-02-2008 16:51:18.234 - Аппаратный разрыв соединения с помощью понижения DTR. 11-02-2008 16:51:21.218 - Найденный сигнал CD потерян из-за понижения сигнала DTR 11-02-2008 16:51:21.218 - Принято: <cr><lf>NO CARRIER<cr><lf> 11-02-2008 16:51:21.218 - Интерпретированный ответ: Нет несущей 11-02-2008 16:51:21.234 - Послано: ATH<cr> 11-02-2008 16:51:21.250 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.250 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.250 - 115200,8,N,1, ctsfl=1, rtsctl=2 11-02-2008 16:51:21.265 - Инициализация модема. 11-02-2008 16:51:21.281 - Послано: AT&FE0V1&D2&C1Q0S0=0<cr> 11-02-2008 16:51:21.343 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.343 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.359 - Послано: AT&FE0<cr> 11-02-2008 16:51:21.406 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.406 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.421 - Послано: AT+FCLASS=0<cr> 11-02-2008 16:51:21.453 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.453 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.468 - Послано: ATS7=60\\Q3<cr> 11-02-2008 16:51:21.500 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.500 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.515 - Послано: AT+CGDCONT=1,\"IP\",\"internet\"<cr> 11-02-2008 16:51:21.531 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.531 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.546 - Установка протокола цифровой линии 11-02-2008 16:51:21.562 - Послано: AT+CBST=7,,1<cr> 11-02-2008 16:51:21.593 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.593 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.593 - Ожидание звонка. 11-02-2008 16:51:21.609 - Послано: ATS0=0<cr> 11-02-2008 16:51:21.625 - Принято: <cr><lf>OK<cr><lf> 11-02-2008 16:51:21.625 - Интерпретированный ответ: ОК 11-02-2008 16:51:21.625 - Статистика сеанса: 11-02-2008 16:51:21.625 - Чтение: 0 байт 11-02-2008 16:51:21.625 - Запись: 0 байт

Соответственно логам написал в файле отключения следующее:

Код: Выделить всё

TIMEOUT 30
ABORT   \'BUSY\'
ABORT   \'ERROR\'
ABORT   \'NO DIALTONE\'
\'\'      \'ATH\'
OK      \'AT&FE0V1&D2&C1Q0S0=0\'
OK      \'AT&FE0\'
OK      \'AT+FCLASS=0\'
OK      \'ATS7=60\\Q3\'
OK      \'AT+CGDCONT=1,\"IP\",\"internet\"\'
OK      \'AT+CBST=7,,1\'
OK      \'ATS0=0\'
OK      \'\\c\\d\'

Непонимаю зачем три раза инициализируется модем :) . Проверил два раза отключение - корректное, даже пробовал посреди загрузки файла оборвать соединение, после чего подключиться. Подключился.
Как я понял все дело в последней команде - ATS0=0. Так как предшествующие ей шесть строк судя по логу Windows инициализируют модем.
Debian GNU/Linux 4.0 r4a (GA-7N400S; SDA2600SEPRS745BOX; 1024 Mb; ATI Radeon 9800SE 128Mb; ST3802110A; WD3200AAKS)
Спасибо сказали:
Ответить