Hace un par de días me reportaron que los mensajes desde web con Mensajitos, hacia teléfonos de telemóvil ya no funcionan más.
Esto es debido a que han implementado un sistema de mensajes interactivos, que utiliza una metodologia cliente-servidor.
El funcionamiento general es bastante simple.
Hay un programa cliente, que se conecta al servidor de mensajes de telemovil, y se encarga de obtener un número de sesión. Este numero es luego utilizado por el cliente para identificarse de vuelta y poder enviar los mensajes.
La ventaja de este protocolo es que nos permite recibir mensajes desde el celular hasta el web. Esto significa que podemos desarrollar una aplicación para platicar en tiempo real con cualquier teléfono de Tigo de Guatemala, Honduras o El Salvador.
A continuación, describo mi primer "encuentro" con el cliente de Mensajes Web de Telemovil. No especifico el servidor de gateway ya que escribo el presente tema con fines didácticos, sin embargo, en futuras versiones de Mensajitos, podrán ver el algoritmo implementado y funcionando.
Descripción del protocolo de envío de mensajes interactivos de telemovil.
Nota: En los siguientes númerales, describo secuencialmente los pasos para el establecimiento de la sesion, y el envio y solicitud de mensajes de Tigo.
Cuando se mencione "solicitud" me refiero a una solicitud de navegador del tipo "GET", es decir, la solicitud se pide al gateway por medio de la dirección especificada.
Cuando se mencione "respuesta" me refiero a la respuesta HTTP dada por el servidor que funciona como gateway de Mensajes, en este caso una respuesta "200 OK", y la información que muestro es el contenido de la respuesta.
1-El cliente flash envía una solicitud de chat (Comando 1) al gateway de envio de mensajes.
La solicitud tiene el formato siguiente:
/interactivo555/client.php?orden=1&nick=usuario&foo=28655
Donde:
orden=Identificador de comando enviado al servidor
nick=Firma de quien envía el mensaje
foo=Valor aleatorio enviado por el cliente
2-El servidor responde con el identificador de sesion del cliente, por ejemplo:
session=059
3-El cliente envía los números de teléfono (Comando 2) que se agregarán a la conversación.
La solicitud se envia de la siguiente manera:
/interactivo555/client.php?orden=21&session=763&nick=kike&dstphone=50378933686&pin=undefined&foo=27397
Donde:
orden=El comando 21 especifica que se agrega el primer numero de telefono, los números consecutivos se envían con el comando 2.
session=Aquí se coloca el numero de sesion que se recibio en la respuesta anterior.
nick=Se repite el valor de la firma
dstphone=Numero de telefono del destinatario del mensaje
pin=No he determinado el valor de este parametro
foo=Valor aleatorio enviado por el cliente
4-El servidor contesta a cada telefono agregado, con el siguiente mensaje:
invitar=50378933686
5-El cliente ya puede enviar mensajes, lo hace con la siguiente solicitud:
/interactivo555/client.php?orden=3&session=059&nick=kike&mensaje=prueba&foo=3751
Donde:
orden=El comando 3 indica envío de mensajes
session=Valor de la sesion actual
nick=firma del mensaje
mensaje=Mensaje a enviar
foo=valor aleatorio
6-Si no hay ningun problema al enviar el mensaje, el servidor responde con:
error=0
7-El cliente queda solicitando al servidor a periodos regulares, los mensajes enviados desde el celular del usuario a la web.
La solicitud es la siguiente:
/interactivo555/client.php?foo=3753&orden=5&session=059
Donde:
foo=Valor aleatorio
orden=Comando 5 es para recibir los mensajes del usuario
session=Valor de la sesión actual
8-El servidor responde con el mensaje recibido, en caso de no haber ninguna respuesta, se mostrara lo siguiente:
&mensaje=