Mensajería SMS bajo GNU/Linux Debian y PHP Lic. José Carvajal Lic. Maicol Vargas
Agenda La Mensajería de Texto ¿Qué Necesito? Usos de la Tecnología ¿Cómo desarrollar la plataforma? –Instalación y Configuración –SMS Server Tools Algunas Conclusiones
La Mensajería de Texto SMS - Siglas de Servicio de Mensaje Corto Disponible sobre GSM En la codificación latina se permiten hasta 160 caracteres Es posible enviar mensajes desde: –Su dispositivo móvil –Interfaz Web
La Mensajería de Texto Además de SMS permite: –Notificaciones por correo electrónico –Recordatorios –Noticias –Campañas Electorales –Servicios gubernamentales
La Mensajería de Texto
Ventajas –Unidireccional –Preciso. NO se Redunda –Baratos –Comunicación directa con su cliente Desventajas –La velocidad de entrega no se garantiza –No soporta envío de fotos, vídeo, archivos de texto
SMS Masivo Comunicación directa y personalizada Reducción de costos Sencillo Mejora la imagen de la empresa Envío por grupos
¿Qué Necesito? Un proveedor del servicio GSM Arquitectura GSM Un sistema operativo GPL como Debian GNU/Linux Un lenguaje “Open Source” como PHP Una base de datos como Mysql ó PostgreSQL Modem GSM
¿Qué Necesito?
Usos de la Tecnología Escuela de Informática OVSICORI Integración de SCT BANNER –Nos permiten comunicarnos con el estudiante –Reportar los sismos sentidos –Reportar Morosidad –Servicios estudiantiles
Arquitectura completa de SMSD
Mensaje SMS Cola de salida (outgoing queue) El mensaje SMS es un archivo de texto que se coloca en el directorio outgoing. Esto permite poner varios mensajes en fila para enviar, sin tener que esperar a que se envíe el mensaje anterior. To: Hola mundo! Generación del mensaje
Lista negra Cola de salida Cola de fallidos (Failed queue) SMSD El demonio SMSD examina la cola de salida constantemente para buscar mensajes nuevos. Colas de proveedor ICE Movistar Si ocurre algún problema el mensaje se coloca en la cola de fallidos. Pueden crearse distintas colas de salida cada una con un proveedor de servicio diferente Arquitectura de colas de SMSD
SMSD (manejador del módem, modem handler) ICE Cola de fallidos (Failed Queue) Módem Cada módem puede ser enlazado a una o varias colas de proveedores. El subproceso SMSD controla el módem para enviar los SMS. Si el envío falla, SMSD intentará una segunda vez. Si esto falla de nuevo el archivo SMS se guardará en la cola de fallos. Si el doble intento de envío falla en 3 ocasiones, el programa asume que el modem tiene un problema y lo deshabilita por un tiempo. Procesamiento del envío
SMSD (manejador del módem, modem handler) Fólder de recibidos (Incoming Folder) Móde m El módem recibe el mensaje y lo almacena temporalmente en su memoria interna. SMSD descarga los mensajes del módem. Los mensajes se almacenan en archivos con nombres aleatorios dentro de la carpeta de mensajes recibidos (Incoming Folder). Recepción de mensajes
SMSD Monitor de estado del módem EstadísticasLogfile (Archivos de registro) Manejadores de eventos Otras funciones
SMSD ya viene con algunos resulthandlers de ejemplo: * Gateway 2sms * Gateway sms2 * Auto-responder * Consultas SQL via SMS * Otros. SMSD soporta mensajes de texto en alfabetos GSM, ISO , UTF-8 y UCS2 (Unicode). También mensajes binarios como ringtones, logos y WAP Push. SMSD se puede usar hasta con 64 módems. SMSD se puede ejecutar en Windows, Linux, Solaris, MacOS, FreeBSD y posiblemente en todos los demás sistemas operativos basados en Unix. Algunos datos relevantes
1)Descomprimir. 2)Instalar dependencias y utilidades sudo apt-get install build-essential manpages-dev 3)Ejecutar en la carpeta descomprimida make make install 4)Modificar el archivo de configuración: /etc/smsd.conf Instalación y primeros pasos
5) Modificar el archivo de configuracion /etc/smsd.conf, la siguiente es la configuracion recomendada para el módem GSM Samba 75: # Example smsd.conf. Read the manual for a description devices = GSM1 outgoing = /var/spool/sms/outgoing checked = /var/spool/sms/checked failed = /var/spool/sms/failed incoming = /var/spool/sms/incoming report = /var/spool/sms/report sent = /var/spool/sms/sent logfile = /var/log/smsd.log loglevel = 7 errorsleeptime = 10 stats = /var/log/smsd_stats [GSM1] device = /dev/ttyACM0 init = AT+CPMS="MT","MT","MT" incoming = yes pin = 3132
6)Crear las carpetas que faltan: mkdir /var/spool/sms/failed mkdir /var/spool/sms/report mkdir /var/spool/sms/sent mkdir /var/log/smsd_stats 7)Iniciar el servicio. /etc/init.d/sms3 start Si todo esta bien contestara con Starting SMS Daemon: smsd. 8) Para probar el servicio y la conexion usar el siguiente comando (los números de teléfono hay que antecederlos con 506) : sendsms 'Prueba de un SMS desde Linux'
Conclusiones Es posible implementar con un costo mínimo de tiempo, esfuerzo y de dinero un sistema que permite a la empresa acercarse más a los clientes y reducir los costos de comunicación con los mismos a través de llamadas telefónicas. El uso de la mensajería SMS en un país en el cual se utiliza tan ampliamente puede ayudar a mejorar la imagen de la empresa.