Code:
$ cat /usr/local/options.gprs
debug
nodetach
show-password
/dev/usb/tts/0
57600
#2400
crtscts
persist
lock
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
nodeflate
nomppe
#lcp-echo-interval 6
#lcp-echo-failure 10
connect /usr/local/peers/gprs-connect-chat
disconnect /usr/local/peers/gprs-disconnect-chat
local
noipdefault
ipcp-accept-local
ipcp-accept-remote
defaultroute
usepeerdns
noauth
user mts
password mts
Code:
$ cat /usr/local/peers/gprs-connect-chat
#!/bin/sh
# chat-gprs-connect
# The actual chat script:
exec chat \
TIMEOUT 5 \
ECHO ON \
ABORT '\nBUSY\r' \
ABORT '\nERROR\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nNO CARRIER\r' \
ABORT '\nNO DIALTONE\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
TIMEOUT 12 \
SAY "Press CTRL-C to close the connection at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","internet.mts.ru"' \
OK ATD*99# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"
Code:
$ cat /usr/local/peers/gprs-disconnect-chat
##!/bin/sh
# chat-gprs-disconnect
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "\K" \
"" "+++ATH" \
SAY "\nPDP context detached\n"
запускаю:
Code:
$ pppd file /usr/local/options.gprs
Press CTRL-C to close the connection at any stage!
defining PDP context...
AT
OK
ATH
OK
ATE1
OK
AT+CGDCONT=1,"IP","internet.mts.ru"
OK
waiting for connect...
ATD*99#
CONNECT
Connected.
If the following ppp negotiations fail,
try restarting the phone.
Serial connection established.
using channel 4
Using interface ppp0
Connect: ppp0 <--> /dev/usb/tts/0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x15bd8932>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <pcomp> <accomp> <auth pap>]
sent [LCP ConfRej id=0x1 <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <magic 0x15bd8932>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0>]
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth pap>]
sent [LCP ConfAck id=0x2 <asyncmap 0x0> <auth pap>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]
sent [PAP AuthReq id=0x1 user="mts" password="mts"]
sent [PAP AuthReq id=0x2 user="mts" password="mts"]
rcvd [PAP AuthAck id=0x2 ""]
PAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe -H -M -S -L -D +C>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 10.2.190.232>]
sent [IPCP ConfAck id=0x1 <addr 10.2.190.232>]
rcvd [IPCP ConfNak id=0x1 <addr 10.2.190.233> <ms-dns1 213.87.0.7> <ms-dns3 213.87.1.1>]
sent [IPCP ConfReq id=0x2 <addr 10.2.190.233> <ms-dns1 213.87.0.7> <ms-dns3 213.87.1.1>]
rcvd [IPCP ConfAck id=0x2 <addr 10.2.190.233> <ms-dns1 213.87.0.7> <ms-dns3 213.87.1.1>]
not replacing existing default route to br0 [192.168.1.1]
local IP address 10.2.190.233
remote IP address 10.2.190.232
primary DNS address 213.87.0.7
secondary DNS address 213.87.1.1
Script /tmp/ppp/ip-up started (pid 239)
Script /tmp/ppp/ip-up finished (pid 239), status = 0x0
ip адрес получил, интерфейс создался. в 9 случаях из 10 (если не 49 из 50) обмен пакетами прекращается сразуже после установки соединения. Реже он прекращается на этапе получения ip адреса и прочих параметров.
причем если посмотреть tcpdump -ni ppp0, то видно как уходят в интерфейс пакеты, но дальше телефона они не выходят. Я провел следующий эксперимент: поставил телефон рядом магнитофоном, который дает наводки на телефон. Прием и передача не происходит. Хотя если подключиться с кпк с WM на борту, в колонках отчетливо слышно как идет передача данных, кстати данные также передаются на этапе установки соединения.
Поискав в гугле, описав симптоматику я пришел к выводу что излечить меня может следующее:
options ppp_async flag_time=0 в modules.conf,
однако модуля такого в сборке asus`овской нету, вероятно этот модуль сразу включен в ядро.