Pasarela, de bajo coste, para envío de SMS (Primera parte)
Hoy en día, muchos de los servicios web de los que hacemos un uso cotidiano, tienen la posibilidad de enviar notificaciones vía SMS a nuestros teléfonos móviles. De esta forma, podemos recibir los últimos tweets, o nuestras próximas citas en nuestro terminal sin la necesidad de disponer de una tarifa de datos asociada a nuestro móvil. Un servicio gratuito que, sin ninguna duda, aporta un gran valor y es de mucha utilidad para casi todos usuarios.
Es evidente, que para dar servicio a cientos de usuarios, lo mejor es hacer uso de uno de los cientos de servicios de pasarelas SMS que existen por internet, que ofrecen gran variedad de servicios tanto de envío de SMS como para efectuar micropagos así como de sofisticadas APIs que se adaptarán a nuestro proyecto, a un precio asequible. ¿Pero que ocurre cuando el volumen de SMS que vamos a enviar es relativamente bajo?
La respuesta es obvia, el precio se dispara, o al menos la inversión inicial es relativamente alta. Por eso en thecodefarm labs hemos decidido montar una pasarela SMS de bajo coste con múltiples propósitos, reciclando material obsoleto y porque no, simplemente para divertirnos. Así que vamos... ¡Manos a la obra!
Primero, hemos de diferenciar tres partes en este proceso, donde necesitaremos diferentes conocimientos y que rondarán diversas áreas, como son las del software, el hardware y conocer un poco el mercado de las telecomunicaciones. Además necesitaremos lo siguiente:
- Un teléfono móvil compatible con Gammu.
- Un cable de datos para conectar nuestro teléfono con el servidor.
- Un PC/Mac que haga de servidor.
- Una tarjeta SIM.
Hardware
La pieza clave del montaje reside en que el terminal móvil sea compatible con Gammu. No es una tarea difícil, ya que la mayoría de los terminales que podemos tener por casa y que ya no usamos, serán terminales antiguos y estarán soportados por el software sin ningún problema. Para ello, podemos consultar el listado de dispositivos compatibles con Gammu para ver si tenemos algún candidato
Lo siguiente será hacernos con un cable de datos si es que no disponemos ya de uno. La mayoría de los Nokia suelen traer un cable de datos compatible, pero si no es el caso podremos acercarnos a nuestra tienda de móviles favorita y preguntar si disponen de un cable. Por norma general, suelen ser bastante caros (del orden de 30€), así que siempre podemos obtener uno no oficial o de segunda mano en ebay. Que sea USB o RS232, dependerá de la antigüedad del terminal y de las conexiones que disponga nuestro servidor.
Gammu también dispone de soporte para conectar el terminal a través de bluetooth, en el caso de que tanto el terminal móvil como el servidor donde vayamos a instalarlo dispongan de esta característica.
Para concluir con el hardware, necesitaremos una máquina a la que conectar el teléfono móvil e instalar el software. Es conveniente que tenga salida a internet y que nuestro equipamiento de red esté preparado para soportar ciertos servicios, ya que necesitaremos que dicha máquina sea accesible desde el exterior.
Software
Para llevar a cabo este proyecto vamos a hacer uso de Gammu un proyecto basado en software libre que nos permitirá gestionar nuestro terminal. Es una sencilla y potente herramienta que no solo permite gestionar la recepción y el envío de SMS sino que también es capaz de explotar muchas otras características del teléfono móvil (Realizar llamadas, emitir avisos sonoros y lumínicos...). En función del terminal y de la compatibilidad con Gammu dispondremos de más o menos funciones.
Instalación de gammu:
En cualquier versión de Linux, es tan sencillo como buscar en nuestro repositorio el paquete gammu. En el caso de que no esté disponible, será tan sencillo como descargar la versión estable para el sistema operativo que estemos utilizando.
En ubuntu/debian:
apt-get install gammu
En nuestro caso, Gammu fue instalado en un PowerMac G5, por lo que fue necesario seguir los pasos que se encuentran en el Wiki de Gammu para compilar la última versión estable.
Una vez instalado Gammu conectaremos nuestro dispositivo móvil al servidor y consultamos la base de datos de Gammu donde encontraremos los parámetros de configuración necesarios para hacer que nuestro terminal se comunique con Gammu. Deberemos saber que no todos los móviles se comunican mediante la misma interfaz ni el mismo protocolo y que por tanto en caso de necesitarlo, tendremos que instalar los drivers pertinentes en función del cable de datos con el que sea compatible nuestro terminal.
Las pruebas en thecodefarm labs fueron realizadas con un terminal Nokia 3100 cuyo cable de datos, a pesar de ser USB, emula una interfaz RS232. Ya que nuestro PowerMac G5 no dispone de dicha interfaz, se tuvieron que instalar los drivers oportunos para poder comunicarnos con el teléfono.
Una vez obtenidos dichos parámetros, editaremos el fichero /etc/gammurc:
port = /dev/ttyUSB0 connection = fbus-nopower model = 3100
El número de parámetros a editar dependerá del modelo de teléfono y del cable utilizado. Hay muchos terminales que son compatibles con varias configuraciones y deberemos probar hasta encontrar la adecuada.
Una vez configurado todo, ejecutaremos el siguiente comando:
gammu --identify
Comando que nos mostrará las características del terminal, donde podremos ver datos como el fabricante, el modelo, el IMEI del terminal, fecha de fabricación etc. Si no vemos esta información, tendremos que volver a editar el fichero /etc/gammurc con una nueva configuración y volveremos a ejecutar el comando antes indicado.
Si todo ha ido bien, ya tenemos nuestro terminal configurado para enviar SMS. Si tenemos una tarjeta SIM en nuestro terminal con saldo para poder enviar un SMS, podemos hacer la primera prueba de la siguiente forma, donde XXXXXXXXX será el número de teléfono del destinatario:
gammu --sendsms TEXT XXXXXXXXX -text "Hola desde gammu"
Gammu tardará unos instantes en respondernos y el mensaje llegará en breves al destinatario.
Ahora solo nos queda elegir una operadora móvil con la tarifa de SMS más barata del mercado y comenzar a usar nuestra pasarela SMS. En un próximo artículo, explicaremos como desarrollar una pequeña API para poder enviar SMS desde nuestra pasarela.
Hay que resaltar que este sistema realiza el envío de SMS de forma secuencial, por tanto no es posible enviar grandes cantidades de mensajes aunque Gammu si que soporta configuraciones de múltiples terminales. De esta forma podríamos conectar más de un terminal móvil a nuestro servidor para realizar envíos paralelos.
Desde thecodefarm labs no recomendamos el uso de esta pasarela para entornos donde exista un gran trafico de mensajes salientes ni para aplicaciones profesionales.




¡Ey! Nos gustaría saber qué piensas sobre este tema. ¡Dejar un comentario no cuesta nada!
Dejar un comentario
Por favor, asegúrate de que has rellenado todos los campos obligatorios (*).