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:
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:
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
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
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
--> 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


0