Global Integration Bootcamp Madrid 2017
Kabel patrocina el Global Integration Bootcamp Madrid 2017
28 marzo, 2017
Zapatero Hololens
El expresidente del Gobierno, José Luis Rodriguez Zapatero, se prueba las HoloLens en Smart Island
19 abril, 2017

Introducción a Twilio

Hoy en día, lo de ‘trabajar en la nube’ es algo habitual, por lo que voy a hablar en estas líneas sobre un servicio que permite dotar de funciones telefónicas a nuestras aplicaciones o páginas web, llevando este concepto al mundo de la telefonía.

Twilio es una empresa que fue fundada en el año 2008, con sede en San Francisco, California. Ofrece una serie de servicios: Voz y Vídeo, Mensajería y Autenticación, de los que se hablará más adelante en profundidad.

Estos servicios de Twilio tienen un coste, aunque pueden probarse de forma gratuita.

Los precios de estos servicios vienen especificados en la web corporativa de TwilioPrecios de Twilio. Si además se es cliente de la plataforma Microsoft Azure, se dispondrá de una oferta especial de 1000 mensajes o 1000 minutos para llamar totalmente gratis. Para obtener esta oferta, es necesario registrarse en el siguiente enlace: oferta Twilio con Windows Azure.

 

Conceptos

Twilio ofrece sus servicios a través de unas APIs de programación RESTful. Las bibliotecas de cliente están disponibles en varios idiomas. Se pueden consultar en este enlace: bibliotecas API de Twilio.

Aspectos fundamentales de las APIs de Twilio son: los verbos y el lenguaje de marcado (TwiML). En las líneas siguientes, se va a profundizar sobre estos conceptos.

Verbos de Twilio

A continuación, se presenta una lista de verbos de Twilio:

VERBOS

DESCRIPCIÓN

Dial Conecta a la persona que llama con otro teléfono.
Gather Recopila los dígitos numéricos especificados en el  teclado del teléfono.
Hangup Finaliza una llamada
Play Reproduce un archivo de audio.
Pause Espera en silencio una cantidad de segundos especificada.
Record Graba la voz de la persona que llama y devuelve la dirección URL de un archivo que contiene la  grabación.
Redirect Transfiere el control de una llamada o SMS al TwiML en una URL distinta.
Reject Rechaza una llamada entrante a su número de  Twilio sin cobrarle.
Say Convierte texto en voz para hacer una llamada. Por ejemplo, el verbo <Say> indica a Twilio que entregue por voz un mensaje en una llamada.
Sms  Envía un mensaje SMS.

Tabla 1: Tabla con los principales verbos de Twilio.

TwiML

TwiML es un lenguaje de marcado propio de Twilio, con un conjunto de instrucciones basadas en XML que hacen uso de los verbos anteriormente citados, que informan a Twilio sobre cómo procesar una llamada o un SMS.
Como ejemplo, el siguiente TwiML convierte el texto “Hello Kabel”.

Ilustración 1: Ejemplo lenguaje TwiML

Ilustración 1: Ejemplo lenguaje TwiML

Si se quiere ampliar información sobre los verbos de Twilio, sus atributos y TwiML, puede hacerse a través del siguiente enlace: TwiML. Para saber más sobre la API de Twilio se puede visitar: API de Twilio.

 

Servicios

Se ha comentado anteriormente que Twilio ofrece diversos servicios. En este apartado se profundizará un poco más en ellos y se describirán a alto nivel las diversas soluciones que ofrecen estos servicios para conseguir su cometido.

Voz y Video:

Ofrece APIs y SDKs para dotar de capacidad de llamada a aplicaciones web o móviles. Existen dentro de este servicio diferentes soluciones:

Phone to phone

Esta API es utilizada para controlar, realizar y recibir llamadas telefónicas desde y hacia teléfonos de todo el mundo.

App to phone

SDK móvil y de Internet para hacer llamadas desde una aplicación a teléfonos móviles o fijos. Hace uso para ello de una red WIFI o de datos.

App to app

SDKs para aplicaciones móviles y web que admiten establecer una comunicación ‘punto a punto’ de llamadas y video llamadas HD.

Many to many

Una API para integrar en una aplicación conferencias de audio con controles de moderador.

VoIP to anywhere

Una interfaz SIP (protocolo de inicio de sesiones) para añadir capacidad de voz programable a una infraestructura existente de VoIP.

Carrier conectivity

Ofrece conectividad para una infraestructura existente de VoIP. Se obtiene una conexión PSTN (Red de Telefonía Conmutada Pública) a través de la mejor compañía disponible.

IP media relay

Este servicio en la nube se utiliza para retransmitir los medios de voz y video para las implementaciones de App to App WebRTC (Web Real-Time Communication) que utilizan sus propios SDK.

Mensajería:

Esta API de Twilo fue lanzada en febrero de 2010. Soluciones dentro de este servicio son:

Text messaging (SMS)

Esta API de Twilio permite enviar y recibir mensajes de texto a través de la red de un operador a cualquier teléfono, en cualquier parte del mundo.

Picture messaging (MMS)

Acepta intercambiar mensajes de imagen (MMS) entre teléfonos móviles a través de la red de un operador sin necesidad de una aplicación móvil independiente.

In-app chat

Twilio Programmable Chat SDK’ da la posibilidad de llevar chat en vivo a sus aplicaciones móviles y web.

Notifications

Twilio Notify’ para orquestar alertas y notificaciones en varios canales.

 

Autenticación

En febrero de 2015, Twilio adquirió Authy, una startup respaldada por Combinator que ofrecía servicios de autenticación de dos factores a usuarios finales, desarrolladores y empresas. Este servicio permite diferentes tipos de autenticación:

Two-factor Authentication

Reforzar e incluso reemplazar el nombre de usuario y contraseña tradicionales para los sitios web, los productos SaaS y las aplicaciones móviles.

Authy Soft Token

Este tipo de autenticación está recomendado para el acceso de empleados, socios y clientes a portales confidenciales y aplicaciones web. Un excelente reemplazo para ‘tokens 2FA (Two Factor Authentication)’.

Authy OneCode

Recomendado a usuarios que necesitan una capa de seguridad adicional o una copia de seguridad pero que no disponen de la aplicación: Authy. También es utilizado para llegar a personas con discapacidades físicas, telefónicas o con teléfono fijo, de acuerdo con la ADA (American Disabilities Act) en los Estados Unidos.

Authy OneTouch

Proporciona el proceso de autenticación más racional y potente. Recomendado para implementar 2FA (Two Factor Authentication) al iniciar sesión o para confirmar una transacción.

 

Ejemplo para Dummies

A continuación, se va a proceder a detallar un pequeño ejemplo de cómo construir una aplicación .NET para enviar SMS con Twilio.

En primer lugar lo que debemos hacer es acceder al formulario que Twilio proporciona para darnos de alta: formulario alta Twilio.

Una vez dados de alta, conseguiremos acceder a nuestra consola personal. En ella podremos realizar diferentes configuraciones de nuestros servicios, mirar estadísticas de los mismos y un largo etcétera, pero el que más nos interesa para nuestro propósito es el que nos da la posibilidad de aprender a crear nuestro servicio, eligiendo uno de los que Twilio nos ofrece, en este caso el de SMS.

Ilustración 2: Consola personal Twilio.

Ilustración 2: Consola personal Twilio.

 

En esta consola haremos click en ‘All products & services’ en la pestaña vertical de la izquierda y buscaremos la opción de ‘Programmable SMS’ y más tarde ‘Getting Started’. Esto nos guiará por el proceso para poder incorporar esta funcionalidad a nuestra aplicación. Este proceso es extensible al resto de servicios. Quiero hacer notar que además de ofrecer la API, Twilio presenta documentación suficiente para dar uso a la funcionalidad que nos proporciona.

Una vez hecho esto, tendremos que:

  1. Conseguir un número de teléfono de Twilio. En primera instancia nos será asignado un teléfono con notación americana, pero éste se puede cambiar por un número de teléfono español (eso sí, de los propuestos en una lista).

Una vez seleccionado el número, deberemos rellenar un formulario para asociar el número de teléfono elegido a una dirección física.

  1. En este paso Twilio realiza un test, enviando un mensaje confeccionado por nosotros, desde el teléfono elegido a un número de teléfono verificado con anterioridad (al ser una cuenta de ‘test’ sólo permite interactuar con números de teléfono verificados e introducidos en este apartado), para confirmar que todo funciona correctamente.
  1. En este apartado, se envía un mensaje a nuestro número de teléfono Twilio y se puede apreciar lo que ocurre en esta petición. Éste sería el flujo de envío de un SMS desde el móvil a nuestra aplicación:
Ilustración 3: Petición HTTP de Twilio.

Ilustración 3: Petición HTTP de Twilio.

 

  1. Se envía un SMS a nuestro número de teléfono Twilio
  2. Twilio hace una petición HTTP a nuestra aplicación
  3. Nuestra aplicación da las instrucciones pertinentes a Twilio en forma de lenguaje ‘TwinML’
  4. Twilio ejecuta las instrucciones y responde con un SMS
  1. Por último, se da la posibilidad de acceder a la documentación para incorporar esta funcionalidad a una aplicación creada por nosotros. En el caso que nos ocupa elegimos la opción: C#|ASP.NET MVC: notificaciones SMS y MMS (C# | ASP.NET MVC ).
  1. Una vez realizados estos pasos en la consola personal de nuestra cuenta de Twilio, construimos una sencilla aplicación web en MVC con .NET, mediante el IDE de desarrollo Visual Studio.

 

  • Descargar en Visual Studio, mediante el gestor de paquetes Nuget, las librerías de Twilio.
Ilustración 4: Gestor de paquetes NUGET con librerías de Twilio.

Ilustración 4: Gestor de paquetes NUGET con librerías de Twilio.

 

  • A continuación, se muestra la lógica de la aplicación de test, mediante la visualización del controlador: Home Controller. La llamada a la API de Twilio está en el POST del método Index.
Ilustración 5: Controlador: Home Controller

Ilustración 5: Controlador: Home Controller

 

  • En el fichero de configuración: config, incluiremos en el apartado ‘app.settings’  las ‘keys’ para indicar las credenciales de la cuenta Twilio y el número de teléfono Twilio que hemos elegido previamente en nuestra consola.
Ilustración 6: Sección 'app.settings' del fichero de configuración.

Ilustración 6: Sección ‘app.settings’ del fichero de configuración.

 

  • Respecto a la vista, mencionar que se ha utilizado bootstrap para agilizar el maquetado de la misma, ya que el objeto de este ejemplo es el uso de Twilio para enviar SMS. Cada uno configurará esta vista como le parezca más adecuado.

Y de este modo conseguimos probar, enviando un SMS a un número de teléfono previamente verificado en nuestra cuenta de Twilio, el servicio de envío SMS desde una aplicación propia.

 

Si queréis comentarnos lo que sea podéis hacerlo en info@kabel.es.

También podéis seguirnos en Twitter y LinkedIn.

 

Kabel Geek


 

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER