Linux - loop wn wvdial

 
Vista:

loop wn wvdial

Publicado por jorge (16 intervenciones) el 22/10/2016 00:13:45
Hola a todos:

Utilizo una conexión 3g con un modem usb bajo linux. Actualmente para establecer la conexión utilizo wvdial con la siguiente configureación en el archivo /etc/wdial.conf:

[Dialer Defaults]
Modem Type = USB Modem
ISDN = 0
Modem = /dev/ttyUSB0
Baud = 9600
Auto Reconnect = 1

[Dialer pin]
Init1 = AT+CPIN="1234"

[Dialer check]
Init1 = AT+CPIN?
Init2 = AT+CFUN=?
Init3 = AT+CFUN?

[Dialer signal]
Init1 = AT+CSQ
Init2 = AT+COPS?

[dialer on]
Init1 = AT+CFUN=1

[Dialer off]
Init1 = AT+CFUN=4

[Dialer gps_on]
Init1 = AT*E2GPSCTL=1,1,1

[Dialer gps_off]
Init1 = AT*E2GPSCTL=0,1,0

[Dialer tmo]
Phone = *99#
Username = "pepephone"
Password = "pepephone"
Stupid Mode = 1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
# turn device on if it was switched off before (AT+CFUN=4)
Init3 = AT+CFUN=1
Init4 = AT+CGDCONT=1,"IP","gprs.pepephone.com"

[Dialer gps]
Modem = /dev/ttyUSB0
Init1 = AT*E2GPSNPD

Para lanzar la conexión hay que lanzar los comenados:
$ sudo wvdial off
$ sudo wvdial pin
$ sudo wvdial tmo


...al lanzar el ultimo comando los que aparece en pantalla es lo siguiente:
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CFUN=1
OK
--> Sending: AT+CGDCONT=1,"IP","gprs.pepephone.com"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
CONNECT 7200000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Oct 21 20:32:42 2016
--> Pid of pppd: 19947
--> Using interface ppp0
--> local IP address 10.72.229.39
--> remote IP address 10.64.64.64
--> primary DNS address 80.58.61.250
--> secondary DNS address 80.58.61.254



Esto funciona bien y se establece relativamente rápido una conexión util para navegar por internet. El tema es que ahora me gustaría conocer de forma periódica los siguientes valores:

- Nivel de cobertura
- Antena a la que el modem está conectado
- Temperatura


Todos estos valores se pueden sacar mediante los comandos AT que me indica el fabricante. El tema es que sé como enviar estos comandos AT al modem en un momento puntual (es decir de forma manual) pero no sé como hacer para que sea el wvdial quien lo haga de forma cíclcica ( por ej. cada 60 segundos).
Tampoco sé si esto que necesito se puede implementar dentro del script /etc/wvdial.conf o hay que hacerlo mediante otro proceso externo ajeno al wvdial que está corriendo cuando la conexión a internet está activa (dudo que la solución sea con esta ultima opción ya que lo he intentado y me dice que el dispositivo está ocupado)

Del mismo modo que en el /etc/wdial.conf se puede configurar un reconect cada x tiempo, ¿ se puede configurar un "ejecuta comando" cada x tiempo ?


Espero no haber puesto demasiado rollo y que se entienda bien lo que necesito.


De antemano, gracias por su ayuda.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

loop wn wvdial

Publicado por Tom (482 intervenciones) el 22/10/2016 11:03:12
En principio creo que no puedes ya que probablemente (hace mucho que no uso esto) el pppd sea quien tome el control del puerto serie una vez que se ha lanzado. A ver si alguien pudiera ampliar algo o dar alguna solución ...

Parece ser que algunos modems soportan un standard de multiplexado (GSM 07.10 multiplexing protocol ), y tengo entendido que con programas como cmux podrías crear dispositivos serie adicionales, de modo que podrías enviar comandos AT al mismo puerto pero usando dispositivos distintos (por ejemplo, podrías escribir al ttyUSB1 y el multiplexador lo enviaría al puerto serie del modem).

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

loop wn wvdial

Publicado por jorge (16 intervenciones) el 22/10/2016 21:57:20
Hola:

Gracias por la respuesta.

La verdad es que no sabía que se podían multiplexar puertos. Voy a probar a ver si hay suerte.

Gracias de nuevo

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar