Ayer leí en el Blog de Javier Castañón (El Camello, el León y el niño. O la evolución del perro al lobo) un interesante post referente a como enviar sms desde la consola, utilizando gsmsendsms, y otro referente a minicom.
En ese momento la cabeza se me puso a mil, pensando en todas las posibilidades que tenía, para realizar:
- Una pequeña aplicación para enviar mensajes
- Un sistema de avisos
- Un sistema de promociones
- …
Así que me puse a leer, a ver que posibilidades había, como hacerlo, en fin esas cosas. Lo intenté con comandos AT. Seguí tanto las indicaciones de
Enviar SMS desde consola con gsmsendsms – gsm-utils en Ubuntu como las de
Enviar SMS desde minicom en Ubuntu con modem GSM. Pero se mezclaba un mensaje con el siguiente, aparecían comandos AT en el mensaje, en fin un fracaso. Seguramente más por mi impaciencia que por otra cosa.
Pero después de un rato (un par de horitas), no se ni porque ni por como, di con Gammu. Gammu, es una utilidad de la línea de comandos, que se utiliza para controlar tu teléfono, y permite realizar una serie de operaciones con él.
Bueno, pasemos a la acción…
Instalar y configurar gammu
Lo primero que tienes que hacer es instalar gammu, esto lo puedes resolver haciendo click en gammu o utilizando el terminal
sudo apt install gammu
Una vez instalado gammu, tienes que averiguar donde tienes conectado el modem usb:
dmesg|grep tty
y te volcará algo como esto:
[ 1917.331663] usb 2-4: GSM modem (1-port) converter now attached to ttyUSB0
[ 1917.331887] usb 2-4: GSM modem (1-port) converter now attached to ttyUSB1
[ 1917.332089] usb 2-4: GSM modem (1-port) converter now attached to ttyUSB2
[ 1917.334716] usb 2-4: GSM modem (1-port) converter now attached to ttyUSB3
[ 1917.336443] usb 2-4: GSM modem (1-port) converter now attached to ttyUSB4
el siguiente paso es configurar gammu, para ello puedes utilizar el configurador:
gammu-config
o simplemente creas un archivo ~/.gammurc con el siguiente contenido:
[gammu]
port = /dev/ttyUSB0
model =
connection = at19200
synchronizetime = yes
logfile =
logformat = nothing
use_locking =
gammuloc =
Sinceramente, yo he intentado conectarme a otro puerto, pero no lo he conseguido. Pero, bueno, hay que tenerlo en cuenta.
Ahora, podemos probar el funcionamiento de gammu con el siguiente comando en el terminal:
gammu getallsms
esto nos devolverá algo así como:
Localización 1, carpeta "", Memoria de la SIM
0 SMS parts in 1 SMS sequences
Y ahora podemos probar a enviar un sms:
gammu sendsms text 123456789
Enter message text and press ^D:
Prueba
Sending SMS 1/1....waiting for network answer..OK, message reference=2
Una vez realizadas todas las pruebas y comprobado el correcto funcionamiento, le toca el paso a Python. Primero instalar Python bindings para Gammu:
sudo apt install python-gammu
y ahora una sencilla aplicación para ir abriendo boca:
import gammu
sm = gammu.StateMachine()
sm.ReadConfig()
sm.Init()
message = {
'Text': 'Mi primera prueba con gammu y python-gammu funciona',
'SMSC': {'Location': 1},
'Number': '123456789',
}
sm.SendSMS(message)
Vía | tensixtyone
Más información | Gammu y Python-Gammu
Vaya esto es un dato muy bueno, me has dado una idea para scribir un poco sobre esto pero para usuarios un poco menos experimentados.
Anda, que wapo!..a ver si tengo un ratito y lo pruebo..jeje.Un saludo, compañero!
mmm… me interesa hacerlo de forma nativa, yo habia podido hacerlo con un windows instalado en una maquina virtual, pero esto da para probarlo y eliminar el MS, gracias por la data
excelente amigo 😀 funciona Como se debe 😀
Muy bueno!! Funciona de diez! Gracias!
Pero que modem o tipo de celular se conecta?
Un módem usb