¿Qué hace Twilio?

December 11, 2019
Redactado por

¿Qué hace Twilio?

Todos interactuamos con nuestros teléfonos todos los días. No se puede ir a ningún lado sin ellos. Además, existe una buena posibilidad de que, de alguna manera u otra, usted haya interactuado con un sistema telefónico con tecnología de Twilio. Sin embargo, dado que Twilio funciona en segundo plano para acortar la brecha entre las aplicaciones y los teléfonos basados en la Web, es difícil comprender exactamente cómo encaja Twilio en el flujo de las comunicaciones de los clientes.

¿Qué es lo que realmente hace Twilio? ¿Y cómo lo hace? Para responder estas preguntas, primero necesitaremos un poco de información del mundo de la telefonía.

Mantendremos este debate en un nivel alto, pero, al final de este artículo, hay enlaces a información más detallada sobre algunos conceptos clave.

El mundo de las telecomunicaciones

Hay una red antigua allí afuera. Más antigua que Internet. Una que permite las comunicaciones de voz y SMS como las conocemos. Esta es la red telefónica. Aunque es fundamental para la conectividad a nivel mundial, esta red funciona en un ecosistema relativamente cerrado, de movimiento lento y costoso.

La red telefónica está conectada por operadores. Los operadores son responsables del flujo de voz, texto y datos en todo el mundo. Además, venden conexiones a sus redes.

Para ti y para mí, esa conexión es simple: un teléfono celular o una conexión a Internet. Los consumidores no están al tanto del complejo mundo de lenguajes, protocolos y hardware que se utiliza para brindar una red telefónica global.

Pero para las empresas, no es tan simple. Para desarrollar la funcionalidad personalizada sobre esa conexión, como un sistema telefónico de la empresa (PBX, por sus siglas en inglés) o un centro de llamadas, se requieren muchos elementos adicionales diferentes. Se necesitan software y servidores especializados para hacer el trabajo. También se necesitan instalaciones especializadas para que los equipos se encuentren en un lugar y en funcionamiento. Además, se necesita una fuerza de trabajo especializada para instalar y mantener el equipo.

Imagine invertir años de tiempo y millones de dólares para establecerse. ¿Y si desea cambiarlo? Prepárese para invertir aún más tiempo y dinero a medida que pasa a un nuevo sistema.

No todos los sistemas hablan el mismo idioma

Las redes de telefonía también se ejecutan en una gran variedad de protocolos complejos y, a menudo, de propiedad exclusiva. Internet se comunica, en gran medida, mediante un protocolo básico, el Protocolo de transferencia de hipertexto (HTTP, por sus siglas en inglés). 

Las redes telefónicas utilizan un conjunto diverso de protocolos y cada uno de ellos se ajusta específicamente a la tarea en cuestión. Protocolo de inicio de sesión (SIP, por sus siglas en inglés) para administrar sesiones de voz, video y mensajería en tiempo real. Protocolo extensible de mensajería y presencia (XMPP, por sus siglas en inglés) es un protocolo especializado de mensajería en tiempo real (piense en IRC). Protocolo de transporte en tiempo real (RTP, por tiempo real) para transmitir voz y video sobre IP. Sistema global para las comunicaciones móviles (GSM, por sus siglas en inglés) para conectar dispositivos móviles.

Para nombrar solo algunas. La lista de protocolos puede ser vertiginosa, y los protocolos en sí mismos son muy complejos. No es una tarea fácil implementar estos protocolos.

¿Cómo resuelve Twilio el problema?

Twilio vio que Internet no tenía las mismas complejidades que se encontraron en la red de telefónica.

  • Hay numerosos desarrolladores, ya que es relativamente fácil aprender cómo desarrollar en Internet.
  • Hay un método estándar de comunicación: HTTP.
  • Internet es independiente de la programación de lenguajes. Los desarrolladores pueden escribir sus aplicaciones en un lenguaje familiar.
  • Los costos de capital son muy bajos debido a la existencia de plataformas como servicio (PaaS, por sus siglas en inglés). Los costos de implementación comienzan siendo bajos y aumentan a medida que la empresa crece.
  • Cambiar es mucho más fácil y común. El costo de probar un servicio o una tecnología diferente es muy bajo.

Pero había una gran barrera: Internet no estaba conectado a la red telefónica.

Twilio ve su lugar entre estas dos redes. Twilio trabaja de manera ardua para ofrecer un puente entre los operadores e Internet. Los desarrolladores pueden escribir software que se pueda implementar donde sea económico y fácil de aprender. Y Twilio puede permitir que ese software interopere con el ecosistema de operador altamente especializado.

Sin embargo, Twilio no está realmente en la brecha entre Internet y las telecomunicaciones. Twilio implementa toda su infraestructura en Internet. Mediante el uso de conexiones dedicadas a los operadores, Twilio combina los mundos de Internet y telefonía.

Todo comienza con el número de teléfono

La magia de poder comunicarse con la red telefónica se basa en la capacidad de dirigir comunicaciones a un dispositivo en particular. Como todos sabemos, cada teléfono celular tiene un número de teléfono que identifica de forma exclusiva a ese dispositivo. Un número de teléfono de Twilio proporciona una presencia virtual en la red de telefonía física.

Twilio adquiere y prueba la calidad de bloques grandes de números telefónicos de operadores y proveedores de números en todo el mundo. Además, Twilio cuenta con equipos dedicados y procesos patentados, todos ellos dedicados a la administración de su inventario de números de teléfono.

Los clientes de Twilio pueden buscar en el inventario de números de teléfono de Twilio para encontrar uno que se ajuste a su caso de uso, ya sea por región, país o por cómo puede escribirse de manera alfanumérica.

Cuando se brinda un número (también conocido comúnmente como “adquirido”), Twilio asigna ese número al cliente. El número de teléfono está listo para ser configurado por el cliente.

Y ahí es donde comienza la diversión.

¿Qué se puede hacer con un número de teléfono Twilio?

Hay muchas maneras diferentes en que los desarrolladores pueden utilizar los números que obtienen de nosotros. Sin embargo, los dos productos básicos que alimentan la mayoría de los casos de uso en Twilio son comunicaciones de voz y mensajería.

Imagine una sencilla aplicación para ilustrar nuestros ejemplos aquí: una app meteorológica básica, que permite a los clientes solicitar información sobre el clima actual, así como recibir un mensaje automatizado cada mañana con lo que puede esperar durante el día.

Recibir mensajes: ¿Cuál es el clima?

En este primer ejemplo, queremos que las personas le envíen a nuestra aplicación meteorológica su ubicación para que podamos responderles con su pronóstico.

Llamamos a esto un evento iniciado por el operador. Ese mensaje viaja desde el teléfono de una persona hasta el operador. En el operador, se realizará una búsqueda (parecida a la forma en que se buscan los sitios web en Internet) para ver quién es el propietario del número de teléfono del destinatario. En este caso, el operador verá que Twilio posee el número. Luego, ese mensaje se dirigirá a Twilio a través de un protocolo llamado “SMPP”, el protocolo para los mensajes de texto.

Twilio recibe el mensaje del operador mediante una conexión específica entre Twilio y ese operador. Luego, el mensaje se dirige a la pila de procesamiento de mensajes de Twilio, donde Twilio tiene software escrito para recibir e interpretar ese mensaje.

En este punto, Twilio puede reconocer el número de teléfono que debe recibir el mensaje y buscará si se configuró el número de teléfono con una dirección URL de mensajería. La dirección URL apuntará al punto final de la aplicación que se encargará de los mensajes entrantes.

Entonces, Twilio realizará una solicitud a la aplicación. Esto se denomina “Webhook”.

El webhook es una solicitud HTTP con los detalles del mensaje que se envió al número de teléfono del cliente. Con la información en la solicitud, la aplicación del cliente puede tomar una decisión sobre cómo desea gestionar el SMS y, si lo desea, brindar una respuesta a Twilio sobre cómo proceder.

Respuesta con TwiML: “¡Está cálido afuera!”

La aplicación responderá en un lenguaje que Twilio diseñó denominado “TwiML”, que es una abreviatura de Twilio Markup Language. Esta respuesta contiene un conjunto de instrucciones que le indica a Twilio cómo responder al mensaje entrante.

En este ejemplo, la aplicación está respondiendo con el clima actual. La respuesta de la aplicación tendrá un aspecto similar al siguiente:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Response>
    <Message>¡Hace mucho sol!</Message>
</Response>

Los desarrolladores reconocerán que esto se parece mucho a HTML. Tanto HTML como TwiML son una extensión de XML (Extensible Markup Language). TwiML se diseñó específicamente para que sea familiar para aquellas personas que han trabajado con HTML o XML.

Esta respuesta se envía de vuelta a Twilio a través de HTTP, donde Twilio lo transformará en una respuesta de SMS. Una vez traducido, Twilio lo enviará de vuelta al operador a través del SMPP. Entonces, el operador es responsable de devolver ese mensaje al usuario.

TwiML está diseñado para ser lo más amigable posible. Twilio admite accesos directos específicos de contexto para optimizar el flujo de respuesta. En este caso, no hay nada en la respuesta que indique a Twilio a quién enviar el mensaje. Cuando se procese en el flujo de mensajes, Twilio enviará de forma automática respuestas como esta al número que envió el mensaje original.

Aquí vemos la magia de Twilio. Twilio convierte los eventos del mundo real en señales virtuales que el software puede manejar, y TwiML es la tecnología principal de Twilio que permite a los desarrolladores responder fácilmente a esos eventos del mundo real. Los desarrolladores pueden utilizar los mismos lenguajes y protocolos que ya utilizan en sus aplicaciones web.

Envío de mensajes: “¡Necesita su paraguas hoy!”

Si bien es agradable que podamos solicitar el clima actual, no tiene mucho sentido hacer que todos lo soliciten todos los días.

En este caso, queremos lo que se denomina un evento iniciado por la aplicación. Estos eventos comienzan con una aplicación del cliente y terminan en los operadores, donde se entregan los mensajes al destino.

Estos eventos se inician mediante la API REST pública de Twilio o la interfaz de programación de aplicaciones.

La API REST toma las solicitudes HTTP entrantes e intenta realizar la acción solicitada. Los clientes de Twilio pueden realizar llamadas telefónicas, enviar mensajes de texto, adquirir números de teléfono e interactuar de cualquier otra manera con todos los productos y servicios de Twilio.

La aplicación meteorológica puede enviar una solicitud HTTP a la API de Twilio para enviar un mensaje de texto desde el número de teléfono de la aplicación al número de teléfono de un cliente, con un mensaje que contenga el pronóstico. Y Twilio enviará una respuesta que confirme la recepción de la solicitud.

Sin embargo, Twilio aún no ha enviado ese mensaje.

La API puede enviar una serie de respuestas. Si se produjo un error en la aplicación, es posible que la API no sepa cómo interpretar la solicitud. Del mismo modo, Twilio responderá si algo sale mal durante el procesamiento de la solicitud. Sin embargo, si suponemos que todo está en funcionamiento y la cuenta del cliente está en regla, Twilio enviará una respuesta que confirme que cumplirá con la solicitud.

No todo a la vez

Dentro de Twilio, ese mensaje se agrega a una cola en la que los mensajes se envían de manera secuencial: primero en entrar, primero en salir o FIFO (por sus siglas en inglés). En el momento en que se publicó este artículo, esa velocidad constante era de un mensaje por segundo. Los cambios que se producirán a principios del 2020 permitirán un mayor rendimiento según la reputación del remitente.

Si una aplicación necesita una velocidad de envío simultánea mayor o para enviar una gran cantidad de mensajes, Twilio ofrecerá soluciones adicionales. Para mensajería de mayor rendimiento, hoy en día, una aplicación puede utilizar un número gratuito. Si se requiere una capacidad de entrega simultánea, de muy alto rendimiento y volumen, la aplicación debe configurarse en un número especial, llamado “código corto”, que está diseñado para mensajería a gran escala.

Después de que Twilio pone en cola el mensaje para la entrega, el servicio responsable de enviar mensajes salientes capta el mensaje. Allí, se pasa al operador a través del SMPP, y el pronóstico del día se entrega al teléfono de destino.

Ese es un evento iniciado por la aplicación a través de la API REST, lo opuesto a un evento iniciado por el operador. Twilio toma una señal virtual y la traduce en un evento del mundo real, y su teléfono se ilumina con una llamada de voz o un mensaje de texto.

Conclusión

Twilio ofrece un punto de entrada sencillo al mundo de la telefonía y ayuda a su empresa a evitar muchas de las complejidades tradicionales. Los desarrolladores pueden obtener rápidamente conectividad mundial si interactúan con Twilio mediante protocolos comunes de Internet y un marcado simple.

Este puente entre la Internet y la red telefónica es solo la base de las ofertas de productos de Twilio, pero ilustra el poder de lo que Twilio puede hacer.

Los desarrolladores pueden crear software en Internet con la tecnología que ya conocen. Interactuar con la plataforma Twilio es mucho más sencillo que interactuar con el caro, complejo y costoso mundo de las telecomunicaciones.

Ahora que ya sabe lo que hacemos, inscríbase y pruébelo.

Shawn Parker es el líder técnico del equipo de ingeniería de crecimiento de Twilio. Puede comunicarse con él en shawn [arroba] twilio.com.

Lectura adicional

Este artículo fue traducido del original "What Does Twilio Do?". Mientras estamos en nuestros procesos de traducción, nos encantaría recibir sus comentarios en help@twilio.com - las contribuciones valiosas pueden generar regalos de Twilio.