Hola,
Lamentablemente aqui va otro articulo tecnológico. Aunque la idea inicial era mantener mis frikadas personales fuera del ambito de esta pagina.
Este articulo explicara como configurar un modem ZTE MF 626 adquirido en Movistar con 9000 puntos y 12€ para funcionar el Linux Debian 5.0.
El articulo se basa en la información recopilada en Internet, que hay bastante. Dejar claro que el objetivo no es conectar a una red 3G sino configurar el modem que este operativo y ser capaz de enviar mensajes SMS en este caso utilizado para linkarlo con Nagios mi sistema de monitorización y recibir un SMS cada vez que la conexión a Internet falle.
Bueno, Metámonos en harina.
Identificación del dispositivo.
at+cgmi
ZTE INCORPORATED
OK
at+cgmm
MF626
OK
AT+CGMR
MF626V1.0.0B06
Esto se obtiene mediante utilidades como minicom mediante comandos AT.
iba a poner unos links a referencias, pero buscando en google por AT +GSM te apareceran infinidad de links.
El software que estoy utilizando es:
* usb_modeswitch: handle USB devices with multiple modes
* Version 1.0.5 (C) Josua Dietze 2009
* Based on libusb 0.1.12 Este software se encarga de cambiar el usb de modo storage a modo modem.
Tenemos 2 opciones para configurarlo ejecutandolo manualmente cada vez que pinchemos el lapiz, o que detecte que lo pinchado es el lapiz y ejecutarse automaticamente. (yo lo tengo de esta manera).
GNOKII Version 0.6.26
Este software no es realmente necesario pero dado que el modem lo utilizare en mi caso para enviar y recibir SMS esta es una buena opcion para hacerlo.
Al pinchar el lapiz usb, con lsusb veremos que tiene el ID 19d2:2000 esto es el dispositivo de almacenamiento y no es lo que queremos ya que no hay nada de interes ahi.
necesitamos instalar y configurar el usb_modesswitch.
nos descargamos el programita de la web y lo guardamos donde mas nos guste habra que compilarlo y todo eso. www.draisberghof.de/usb_modeswitch/
Segun el manual lo único que hay que hacer es make install
Modificamos el fichero de configuracion seccion de STE 626 como sigue
########################################################
# ZTE MF628+ (tested version from Telia / Sweden)
ZTE MF626
# ZTE MF633
# ZTE MF636 (aka "Telstra / BigPond 7.2 Mobile Card")
#
# Contributor: Joakim Wennergren
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0066
# only for reference and 0.x versions
MessageEndpoint=0x01
# if that command doesn't work, try the other ("eject")
;MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
Es posible que haya que modificar el TargetVendor y el TargetProduct si no coinciden con los nuestros. esto lo veras tirando de lsusb.
En este punto yo intentaria ejecutar el modemswitch a mano para ver si funciona #usb_modeswitch -W -c /etc/usb_modeswitch.conf
deberia cambiar los id y dejar los asi: Bus 005 Device 002: ID 19d2:0066 ONDA Communication S.p.A. (ya he dicho que los ID dependen de tu dispositivo)
Parace que funciona vamos a automatizarlo.
generamos el fichero /etc/udev/rules.d/15-zte-mf622.rules con el siguiente contenido.woop:/etc/udev/rules.d# cat 15-zte-mf622.rules
ACTION!="add", GOTO="ZTE_End"
# Is this the ZeroCD device?
SUBSYSTEM=="usb", SYSFS{idProduct}=="2000",
SYSFS{idVendor}=="19d2", GOTO="ZTE_ZeroCD"
# Is this the actual modem?
SUBSYSTEM=="usb", SYSFS{idProduct}=="0066",
SYSFS{idVendor}=="19d2", GOTO="ZTE_Modem"
LABEL="ZTE_ZeroCD"
# This is the ZeroCD part of the card, remove
# the usb_storage kernel module so
# it does not get treated like a storage device
# guybrush modification.
# call modeswitch instead of removing the usb storage.
#RUN+="/sbin/rmmod usb_storage"
RUN+="/usr/sbin/usb_modeswitch -W -c /etc/usb_modeswitch.conf"
LABEL="ZTE_Modem"
# This is the Modem part of the card, let's
# load usbserial with the correct vendor
# and product ID's so we get our usb serial devices
RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0066",
# Make users belonging to the dialout group
# able to use the usb serial devices.
MODE="660", GROUP="dialout"
LABEL="ZTE_End"
Ya sabes revisa los ID para que coincidan con los tuyos.
En teoria ya esta, cuando pinches el modem, o rearranques, el dispositivo se quedara como modem y no como cdrom. (espero no haberme dejado nada pues estoy teclando de memoria hace ya varios meses que lo tengo configurado. si veis que falta algo ya sabeis un emilio y lo modifico.
Una vez configurado esto podeis probar con minicom si el modem responde a comandos AT lo que significara que ya tenemos modem. :-) (El dispositivo a utilizar en el minicom lo indicara el usb_modemswitch al ejecutarlo)
GNOKII
La instalacion de gnokii es bastante clara de hecho es un paquete debian.
aqui os pondre mi fichero de configuracion como referencia.
(ojo he quitado todas las lineas comentadas y mi numero de tlf que no es cuestion) $ cat /etc/gnokiirc
[global]
port = /dev/ttyUSB1
model = AT
initlength = default
connection = serial
use_locking = yes
serial_baudrate = 115200
smsc_timeout = 10
[xgnokii]
allow_breakage = 0
[gnokiid]
bindir = /usr/sbin/
[connect_script]
TELEPHONE = XXXXXXXXXX
[disconnect_script]
[logging]
debug = off
rlpdebug = off
xdebug = off
podreis utilizar el gnokii para enviar sms o leerlos.
aqui teneis un scripito para enviaros los sms por mail cuando recibais uno. $ cat sms2mail.sh
#!/bin/bash
#ojo Posicion 1 es 0
LASTVALUE=`cat /home/XX/sms/last_status`
CURRVALUE=`gnokii --showsmsfolderstatus 2>&1 |grep "Combined ME and" |cut -c42-47`
CURRVALUE=`expr ${CURRVALUE} - 1`
if [ ${CURRVALUE} -gt ${LASTVALUE} ]
then
NEWSTART=`expr ${LASTVALUE} + 1`
echo "gnokii --getsms MT ${NEWSTART} ${CURRVALUE}"
gnokii --getsms MT ${NEWSTART} ${CURRVALUE} 2>&1 |mailx -s "NEW SMS" yo@yo.com
echo ${CURRVALUE} >/home/XX/sms/last_status
fi
Con esto recibireis en el mail la publicidad de movistar :-)
La parte de nagios
Como ya hemos dicho al principio la idea es utilizar el modem para mandar sms y recibirlos para poder configurarlo en nagios y que nos avise por sms de las cosas criticas.
no os voy a enseñar a configuar contactos y demas eso os lo dejo a vosotros es funcionamiento basico de nagios.
aqui teneis el comando que utilizo yo para que nagios envie el mensaje.
en el commands.cfg tenemos lo siguiente
# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /usr/bin/printf "%b" "$NOTIFICATIONTYPE$ $SERVICEDESC$ on $HOSTALIAS$ is $SERVICESTATE$ at $LONGDATETIME$" | /usr/bin/gnokii --sendsms $CONTACTEMAIL$
}
ya es cosa nuestra configurar los contactos, las ventanas de notificacion y los servicios que queremos se notifiquen utilizando el notify*by*sms
en mi caso yo configuro 2 contactos por cada persona poniendo en el email el telefono para el sms
con esto conseguimos tener completamente separado las alertas que iran por sms y las que no.
asi como los horarios y todo eso.
define contact{
contact_name yop
use generic-contact
alias yop
email yop@yo.com
}
define contact{
contact_name yop-sms
use generic-contact-sms
alias yop-sms
email xxxxxxxxx
}
Bueno pues con esto lo doy por finalizado el articulo dudas y sugerencias pues ya sabeis en el foro y ya vere lo que se puede hacer.