Contenido


Construya mensajería de texto móvil en sus aplicaciones web

Aprenda cómo enviar y recibir mensajes de texto desde un servidor web

Comments

La mensajería es una parte importante de la experiencia móvil. En el 2010, los norteamericanos enviaron y recibieron más de 2,1 billones de mensajes de texto en sus teléfonos móviles. A nivel mundial, se estima que el número de usuarios activos de mensajería móvil supera a los usuarios de e-mail de dos a uno, haciendo de la mensajería móvil tal vez el canal de comunicación más efectivo y omnipresente actualmente. Además, en comparación con otros canales de comunicación como el e-mail, la mensajería móvil contiene mucho menos spam y es más probable que la lean todos sus destinatarios inmediatamente tras entrega.

No obstante, a diferencia del e-mail, que es un estándar abierto en Internet, la mensajería móvil está canalizada a través de infraestructuras de telecomunicaciones cerradas. Eso ha hecho que los servicios de mensajería móvil sean difíciles y costosos de desarrollar. En este artículo le presento varias técnicas de bajo costo, e incluso gratuitas, para incorporar mensajería móvil a sus aplicaciones.

Fundamentos de la mensajería móvil

Los SMS son el canal más común de mensajería móvil. Prácticamente cada teléfono celular puede enviar y recibir mensajes SMS, los cuales están limitados a 160 caracteres. Considerando las variaciones entre diferentes operadores, un límite seguro para SMS es de 140 caracteres.

El Servicio de Mensajería Multimedia Messaging Service (MMS) es una mejora para los SMS que permite al usuario enviar y recibir fotos y videos cortos a través de sus teléfonos. El tamaño de mensaje normalmente está limitado a 300KB. En el fondo, el MMS usa SMS para señalar a los usuarios y en cuanto el usuario abre el mensaje, el teléfono recupera el contenido multimedia mediante un protocolo de e-mail estándar. Los MMS son bastante populares entre los jóvenes, pero su penetración general en el mercado todavía es relativamente baja, parcialmente a causa de formatos de carga de medios efectiva incompatibles entre los diferentes operadores.

Los SMS y MMS son usados principalmente para comunicación entre pares, permitiendo a los usuarios enviarse mensajes entre sí. Para desarrolladores de aplicación, principalmente estamos interesados en enviar y recibir mensajes hacia y desde aplicaciones. En la jerga de la industria, estamos interesados en mensajes Mobile Terminated (MT)—enviados desde una aplicación hacia un dispositivo móvil—y en mensajes Mobile Originated (MO)—enviados desde un dispositivo móvil hacia una aplicación. Con el fin de enviar y recibir mensajes hacia y desde dispositivos móviles, la aplicación necesita interactuar con servidores gateway administrados por empresas de telecomunicaciones.

Enviando SMS y MMS sin costo

Enviar un mensaje MT mediante SMS o MMS hacia un número telefónico en realidad es bastante simple si usted conoce el número telefónico del destinatario y el operador inalámbrico. Casi todos los operadores inalámbricos tienen gateways de e-mail que reciben mensajes de e-mail y los reenvían hacia los teléfonos como mensajes SMS o MMS. Por ejemplo, para suscriptores de AT&T, usted puede enviar el mensaje por e-mail a number@txt.att.net. AT&T truncará el mensaje en 140 caracteres y lo reenviará al número telefónico. La Figura 1 muestra cómo aparece el mensaje en el teléfono.

Figura 1. Un mensaje SMS reenviado por la gateway de e-mail del operador
Un mensaje SMS reenviado por la gateway de e-mail del operador
Un mensaje SMS reenviado por la gateway de e-mail del operador

De forma similar, los correos electrónicos con fotografías anexas pueden ser reenviados a teléfonos como mensajes MMS mediante la gateway de e-mail MMS del operador. La Table 1 muestra las direcciones de e-mail SMS y MMS de los principales operadores en los EE.UU. Reemplace la palabra "number" de la dirección de e-mail con el número de teléfono de 10 dígitos del destinatario (p. ej., 5125551234@txt.att.net).

Tabla 1. Direcciones de gateway de e-mail SMS y MMS de los principales operadores en los EE.UU.
OperadorGateway SMSGateway MMS
AT&Tnumber@txt.att.netnumber@mms.att.net
Verizonnumber@vtext.comnumber@vzwpix.com
T-Mobilenumber@tmomail.netnumber@tmomail.net
Sprintnumber@messaging.sprintpcs.comnumber@pm.sprint.com
Virgin Mobilenumber@vmobl.comnumber@vmpix.com

El enfoque de gateway de e-mail es bueno para enviar alertas excepcionales o mensajes tipo recordatorio, pero para la mayoría de otros casos de uso, este tiene limitaciones severas:

  • El mensaje proviene de números de teléfono aleatorios y tiene un formato malo. No se ve profesional.
  • El usuario no puede responder al mensaje ni enviar información de regreso a su aplicación. Eso elimina categorías completas de aplicaciones, incluyendo las aplicaciones SMS más exitosas como Twitter y American Idol.
  • Como el mensaje provendrá de un número telefónico diferente cada vez, el usuario no puede marcar el número de teléfono para asociarlo con su aplicación.
  • Usted deberá solicitar al usuario que proporcione información sobre su operador inalámbrico durante el registro, con el fin de correlacionarlo a la gateway de e-mail correcta.

Con el fin de interactuar con usuarios de manera profesional, usted necesita enviar y recibir mensajes desde un número telefónico consistente que pueda ser identificado con su servicio. Tradicionalmente, aquí es donde el código corto entra en acción.

Usando el código corto

Probablemente usted vea códigos cortos todos los días. Estos son los números de 5 dígitos que usted ve en restaurantes, eventos deportivos, o en los signos de venta de las propiedades de finca raíz. Estas le piden que "envíe un mensaje al 12345" para obtener más información sobre un cupón, etc. Los códigos cortos son administrados por "agregadores de texto" a nombre de los operadores. Los principales agregadores en los EE.UU. incluyen mblox, Sybase 365 y otros. Usted puede registrar un código corto con alguno de esos agregadores, y luego proporcionar una API de servicio web basada en HTTP que le permita enviar mensajes mediante su código corto hacia cualquier número de teléfono (MT) y recibir llamados de retorno si cualquiera envía un mensaje a su código corto (MO). Esto suena simple, pero usar códigos cortos de esta forma tiene algunas barreras serias:

  • Primero, el costo de obtener un código corto dedicado es muy alto. Este cuesta varios miles de dólares por mes, además de una tarifa de entrada y una tarifa por mensaje.
  • Segundo, los códigos cortos son regulados por la Mobile Marketing Association (MMA). La MMA requiere que todas las aplicaciones sean pre-aprobadas por cada operador. Este es un proceso largo y costoso.

Afortunadamente, hay compañías que proporcionan códigos cortos compartidos, lo cual le permite aprovechar códigos cortos a bajo costo. Un proveedor líder en este espacio es TextMarks. TextMarks tiene un código corto que es bastante fácil de recordar: 41411. Como es un código compartido por muchas aplicaciones, cada aplicación es distinguida por medio de una palabra. Por ejemplo, yo registré la palabra clave conf con TextMarks, y creé un URL de llamado para la palabra clave (vea la Figura 2). El URL de llamado puede contener plantillas que referencian partes del SMS entrante. Por ejemplo, \p se refiere al número de teléfono del remitente del mensaje entrante, y \0 se refiere al mensaje de texto que sigue a la palabra clave.

Figura 2. Registro de una palabra clave y de un URL de llamado en TextMarks
Registro de una palabra clave y de un URL de llamado en TextMarks
Registro de una palabra clave y de un URL de llamado en TextMarks

Ahora TextMarks Enviará cada mensaje que comience con CONF al URL de llamado. Por ejemplo, si alguien envía "conf Michael Jack" al 41411 desde el teléfono celular 5125551234, mi URL de llamado recibirá una solicitud GET como sigue:

Listado 1. Solicitud GET de muestra
http://app.ringful.com/conf?
    attendees=Michael+Jack&
    phonenumber=15125551234

La aplicación maneja la solicitud. Esta puede analizar el mensaje, guardar los asistentes a la conferencia en la base de datos, alertar a los asistentes y luego generar una respuesta para el remitente del mensaje. El cuerpo de respuesta HTTP desde el URL de llamado será enviado de regreso al usuario como el mensaje de texto de respuesta. Eso hace que sea muy fácil construir aplicaciones SMS que respondan a entradas de usuario (por ejemplo, retornar un cupón para un restaurante o el precio de venta de una casa).

En cuanto el usuario envía el texto de su palabra clave, él o ella quedará registrado como suscriptor de esa palabra. Usando su API de desarrollador, TextMarks también le permite enviar mensajes SMS a sus suscriptores en cualquier momento y usted puede enviar mensajes a todos los suscriptores al mismo tiempo o uno a la vez. El siguiente llamado API envía un mensaje a todos los suscriptores para su palabra clave:

Listado 2. Llamado API para enviar un mensaje a todos los suscriptores a su palabra clave
POST TO: http://dev1.api2.textmarks.com/GroupLeader/broadcast_message/
Parameters:
    auth_user=YOUR_USERNAME
    auth_pass=YOUR_PASSWORD
    api_key=API_KEY_FROM_TEXTMARKS
    tm=YOUR_KEYWORD
    msg=The+message+to+send+out

El siguiente llamado envía un mensaje a un suscriptor individual para su palabra clave:

Listado 3. Llamado API para enviar un mensaje a un solo suscriptor a su palabra clave
POST TO: http://dev1.api2.textmarks.com/GroupLeader/send_one_message/
Parameters:
    auth_user=YOUR_USERNAME
    auth_pass=YOUR_PASSWORD
    api_key=API_KEY_FROM_TEXTMARKS
    tm=YOUR_KEYWORD
    to=RECIPIENT_PHONE_NUMBER
    msg=The+message+to+send+out

Aunque TextMarks es bastante útil, para los usuarios todavía es extraño para recordar e ingresar un prefijo para sus mensajes de texto con su palabra clave cada vez que le envían un mensaje de texto. Además, usted no puede enviar mensajes MT a ninguna de las personas que no le hayan enviado primero su palabra clave en un mensaje de texto. La noción completa de códigos cortos y palabras clave está diseñada para la difusión de mensajes a gran escala, al contrario de las interacciones de uno-a-uno que necesitan muchas aplicaciones. Para interacciones de uno-a-uno, el código largo es probablemente la mejor opción y la más económica.

Usando código largo

El término "código largo" se refiere a números de teléfono regulares de diez dígitos. En lugar de alquilar códigos cortos por miles de dólares por mes, en realidad usted puede alquilar números telefónicos regulares por tan poco como US$ 1 por mes (o incluso obtenerlos gratuitamente en el caso de Google Voice). Como esos números de teléfono no están asociados con teléfonos físicos, también son llamados "números virtuales". Luego usted puede enviar y recibir mensajes móviles a través de esos números virtuales.

Un proveedor líder de servicios web que interactúa con códigos largos es Twilio. Usando la API de Twilio usted puede recibir cualquier mensaje enviado a ese número telefónico, incluso internacionales.

Twilio proporciona una consola de administración que le permite manejar múltiples números virtuales. Como esos números solo cuestan US$ 1 por mes, es posible que usted obtenga uno para cada una de sus aplicaciones, de forma que el usuario nunca necesite usar ningún tipo de palabra clave para distinguir entre aplicaciones. Twilio tiene una tarifa de 1 centavo por SMS enviado o recibido a través de su API.

La API de servicio web de Twilio también está bien diseñada y es fácil de usar. Twilio lo ha simplificado adicionalmente al proporcionar SDKs a los desarrolladores en varios lenguajes de programación. Estos son algunos ejemplos basados en su SDK Java. El siguiente listado muestra cómo enviar un mensaje a un número de teléfono celular.

Listado 4. Enviando un mensaje SMS hacia cualquier número celular mediante la API Twilio
public static void sendSms (String from, String to, 
        String msg) throws Exception {
    TwilioRestClient client = 
        new TwilioRestClient YOUR_API_KEY, null);
    String path = "/2010-04-01/Accounts/"+
        client.getAccountSid()+"/SMS/Messages";

    Map<String, String> vars = 
        new HashMap <String, String> ();
    vars.put("From", from);
    vars.put("To", to);
    vars.put("Body", msg);

    TwilioRestResponse tresp = 
        client.request(path, "POST", vars);
    if (tresp.isError()) {
        throw new Exception ("Twilio response error: " 
            + tresp.getResponseText());
    }
}

Para mensajes MO, Twilio funciona de la misma manera que TextMarks: este reenvía el mensaje al URL de llamado registrado en la consola administrativa y responde al usuario con el cuerpo de respuesta HTTP del URL de llamado. Por ejemplo, si un usuario envía "Hola mundo" a mi número virtual, mi URL de llamado registrado recibirá un GET HTTP como sigue:

http://my.callback.com/process?
    From=5125551234&To=3215554567&Body=Hello+World

Observe que el llamado Twilio tiene un parámetro To que identifica el número virtual del destinatario. Esto es necesario porque la cuenta Twilio pudo registrar múltiples números virtuales. Mi servlet en el URL de llamado puede manejar luego el mensaje entrante y generar una respuesta.

¿Qué sucede con los MMS?

Hasta ahora, con excepción de las gateways de e-mail MMS, todos los servicios de los que he hablado manejan interacciones SMS. Los MMS son inherentemente mucho más complejos que los SMS, porque el contenido multimedia debe ser adaptado para cada uno de los teléfonos de cada operador. Por ejemplo, cada dispositivo tiene una resolución de pantalla diferente y espera formatos de video diferentes, y cada red tiene su límite en términos de tamaños máximos de mensaje.

La dificultad de los MMS está subrayada por el hecho de que incluso Twitter solo comenzó a soportar MMS en operadores limitados en los EE.UU. en septiembre del 2011—años después de que su servicio de SMS se convirtiera en un éxito blockbuster.

Afortunadamente, nuevas iniciativas como Hulk Mobile están desarrollando y comercializando nuevos servicios web que soportan mensajería MMS entre operadores. La API MMS de Hook Mobile todavía no está abierta para el público (usted debe inscribirse como socio), ¡pero ciertamente este es un emocionante espacio para observar!

Para usuarios de teléfonos móviles, la mensajería push es una alternativa atractiva frente a MMS, por lo que trataré push en un artículo futuro.


Recursos para Descargar


Temas relacionados

  • El área CTIA es una fuente autorizada para el uso de mensajería móvil y estadísticas de penetración.
  • El área MMA Mobile Advertising Guidelines es el lineamiento de la industria sobre aproximaciones y procesos permitidos para comprometer a los consumidores mediante campañas de mensajería móvil.
  • TextMarks es un proveedor líder de servicios de soluciones SMS de bajo costo, basadas en su código corto 41411.
  • Hook Mobile es un proveedor líder de soluciones MMS entre operadores.
  • Twilio Proporciona SMA de código largo y APIs de voz a través de su API de servicios web fácil de usar.

Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=
ArticleID=793852
ArticleTitle=Construya mensajería de texto móvil en sus aplicaciones web
publish-date=02162012