Ok entiendo los planteos, pero realizar una seción pero no es simple,no es un modem USB es una placa externa SIM900 (
), la conecto por serie, y la necesito por su alcance y la posibilidad de agregarle antena mas potente o colocarla mas alto (es para zonas rurales).
Intente anteriormente usar sakis3g y wvdial, pero no logro establecer una conexión:
Por ejemplo con wvdial lo configure con:
[Dialer Defaults]
Modem = /dev/ttyAMA0
Phone = *99***1#
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S10=45 +FCLASS=0
ISDN = 0
New PPPD = yes
Auto Reconnect = on
Carrier Check = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
Baud = 9600
Dial Command = ATDT
Username = ctigprs //Tambien probe clarogprs
Password = ctigprs999 //clarogprs99
Y queda estático en:
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 S10=45 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 S10=45 +FCLASS=0
OK
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Mon Sep 29 20:14:18 2014
--> Pid of pppd: 2394
Y no levanta la interfaz ppp0. Al igual que:
Sakis3G tira scrip error, también probé con pppd directamente
sudo pppd ttyAMA0 nodetach defaultroute noipdefault lock usepeerdns connect 'chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,'IP','
gprs.claro.com.ar'" OK "atdt*99***1#" CONNECT' user ctigprs password ctigprs999
pero igualmente obtengo:
Script chat "" "at" "" "at" "OK" "at&f" "OK" "atz" "OK" "at+cgdcont=1,IP,gprs.claro.com.ar" OK "atdt*99***1#" CONNECT finished (pid 2408), status = 0x3 Connect script failed
Por lo que he probado realizar directamente por HTTP con un poco mas de éxito:
//Begin
AT
AT+CREG?
AT+SAPBR=3,1,"USER","clarogprs"
AT+SAPBR=3,1,"PWD","clarogprs999"
AT+SAPBR=3,1,"Contype","GPRS"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
//GET
AT+HTTPACTION=0
AT+HTTPREAD
//FINISH
AT+HTTPTERM
EL POST es mas cuestionable por que de la forma que lo usan no respeta la API basada en REST diseñada anteriormente.
Por lo que buscaba alguna API mas por desarrollada pero por lo visto no hay.
En cuanto a levantar una TCP/IP directamente sobre el modem y pasar los datos por serie, la estructura web desarrollada es muy compleja desde la autenticación, hasta los parámetros que pasa. Pero hasta ahora es la única posible.
Esto funciona para levantara:
//BEGIN
AT
AT+CREG?
AT+CGATT=1
AT+CIICR
//Indica el IP
AT+CIFSR
//START
AT+CIPSEND
//Si se abre una consola > es que se conecto.
//FINISH
AT+CIPSHUT
AT+CGATT=0
Hasta ahora no encontré una solución prolija, la mejor seria la conexión directa y simplemente usar python request pero no encuentro el error en las configuraciones.
Desde ya gracias por las respuesta.
Saludos.