Enviar un SMS con un modem USB desde Ubuntu

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

7 comentarios en “Enviar un SMS con un modem USB desde Ubuntu”

Responder a Shupacabras Cancelar la respuesta

Publicar comentario