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

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

La mensajería móvil y el servicio de mensajes cortos (SMS) en particular, es un canal de comunicación crucial para llegar a sus usuarios. La mensajería también es parte central de la experiencia móvil del consumidor. Sin embargo, la implementación de aplicaciones de mensajería móvil es difícil y costosa debido a las barreras propias de la interacción con servicios de telecomunicaciones cerrados. Este artículo revisa el contexto y los retos de la mensajería móvil, y trata sobre varios enfoques técnicos para responder a estos retos. Después de leer este artículo usted estará listo para incorporar mensajería de texto interactiva en sus propias aplicaciones.

Michael J. Yuan, Chief Scientist, Ringful Health

Photo of Michael YuanEl Dr. Michael Yuan es un reconocido tecnólogo en el área de la computación corporativa y de tecnologías móviles de consumidor. Es el autor de 5 libros sobre ingeniería de software y ha publicado más de 40 artículos en diarios revisados por pares y de la industria. El Dr. Yuan es pionero en el campo emergente del cuidado de la salud orientado al consumidor. Su trabajo en Ringful Health ha sido ampliamente cubierto y reconocido en medios nacionales como el Wall Street Journal, New York Times y Los Angeles Times.



16-02-2012

La barrera de entrada para la mensajería móvil

La naturaleza "cerrada" de la mensajería móvil es una barrera de entrada significativa para los desarrolladores. No obstante, debido a la barrera, las aplicaciones que puedan manejar mensajería móvil cuentan con diferentes ventajas. Por ejemplo, Twitter comenzó como una compañía de mensajería instantánea—por ello el límite de 140 caracteres de los trinos—y luego construyó sobre su éxito para convertirse en la plataforma social gigante que es hoy. Otro ejemplo es Facebook, que también tuvo un programa de SMS activo bastante temprano (enviando texto a FBOOK desde su celular).

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

Qué hay de la notificación "push"

Con el surgimiento de lis súper teléfonos como el iPhone y los teléfonos Android, ahora es posible enviar mensajes directamente a esos teléfonos mediante la red TCP/IP estándar y obviar a los operadores de telefonía. Esos mensajes son llamados mensajespush . Los mensajes push son enviados a través de servidores de Internet controlados por Apple y Google. Los mensajes push están diseñados desde el comienzo para comunicarse con aplicaciones. Estos pueden enviar texto, archivos de medios y datos específicos de aplicación como sonidos de alerta e insignias para mostrar en el ícono de la aplicación. Las notificaciones push son excelentes para aplicaciones de teléfonos inteligentes, pero son mucho menos ubicuas y menos confiables que la mensajería móvil basada en el operador.

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

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

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.

Twilio no es solo mensajería móvil

La API Twilio también le permite hacer y recibir llamadas telefónicas de voz desde sus números virtuales; este soporta llamadas VoIP tipo Skype. Visite el sitio Twilio y la documentación de la API para más información (vea Recursos donde encontrará un enlace).

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

Aprender

  • 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.

Obtener los productos y tecnologías

  • Twilio Proporciona SMA de código largo y APIs de voz a través de su API de servicios web fácil de usar.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


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