
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
Cómo recibir llamadas telefónicas con Node-RED
Tiempo de lectura: 9 minutos
Nota: Es posible que algunas de las herramientas o métodos descritos en este artículo ya no reciban soporte o no estén actualizados. Para obtener contenido actualizado o soporte, consulta nuestras últimas publicaciones o contáctanos en el Slack de la comunidad de Vonage
Este es el tercer artículo de la serie de tutoriales "Primeros pasos con Nexmo y Node-RED".
En los tutoriales anteriores has aprendido a enviar y recibir mensajes SMS mediante programación utilizando la SMS API de Nexmo y a gestionar los recibos de entrega.
A continuación, pasarás al siguiente capítulo, en el que explorarás la Voice API de Nexmo.
Al final de este artículo, habrá gestionado su primera llamada entrante con Node-RED.
Requisitos previos
Antes de empezar, necesitarás algunas cosas:
Opcional: ngrok-ponte al día con Aaron's blog post
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
Obtener sus credenciales
Para interactuar con la Voice API, tendrás que tener en cuenta un par de cosas. Una vez que haya creado una Account de Nexmo, vaya al panel de control para encontrar tu clave y secreto API.
A continuación, necesitarás un número virtual habilitado para Voice. Ir a Numbers > Comprar Numbers para conseguir uno.
Configuración del editor Node-RED
En primer lugar, tendrá que instalar el tiempo de ejecución y el editor. Esto puede hacerse en tu máquina local, en un ordenador de placa única (por ejemplo, Raspberry Pi), o en una serie de opciones alojadas en la nube. Este ejemplo utilizará tu máquina local, así que una vez que hayas instalado Node-RED globalmente, simplemente escribe el siguiente comando en tu terminal para empezar.
A continuación, puede acceder al editor Node-RED dirigiendo su navegador a http://localhost:1880.
Una vez que tengas tu editor abierto, necesitarás instalar los nodos Nexmo. Puedes hacerlo en la Gestionar paleta buscando el paquete node-red-contrib-nexmo y haciendo clic en instalar.

Ahora debería ver todos los nodos Nexmo aparecer en el lado izquierdo de su pantalla, entre los otros nodos por defecto.
Gestionar una llamada telefónica entrante con Node-RED
Exponer su servidor local a Internet
En primer lugar, tendrás que exponer tu servidor local a Internet, para que Nexmo pueda acceder a él. Si está ejecutando Node-RED en un servidor web público en lugar de su máquina local, puede saltarse esta etapa.
De lo contrario, una forma conveniente de hacerlo es utilizando un servicio de tunelización como ngrok.
Descargue e instale ngroky ejecútelo en el terminal para iniciar un túnel en el puerto 1880.
Navegue hasta la URL mostrada para encontrar su Editor Node-RED.

Creación de una aplicación Nexmo
En los tutoriales anteriores sobre SMS, podías configurar un número de teléfono directamente con un endpoint; sin embargo, no siempre es así.
Algunas de las API de Nexmo, incluida la Voice API, utilizan Nexmo Applications para mantener la información de seguridad y configuración necesaria para conectarse a los puntos finales de Nexmo.
En la paleta Nexmo Node-RED, varios nodos tienen la capacidad de crear estas Applications: getrecording, earmuff, mute, hangup, transfer, createcall, playaudio, playtts y playdtmf.
Arrastre cualquiera de estos nodos a su espacio de trabajo y haga doble clic sobre él para abrir el editor de nodos.
Junto al icono Nexmo Credentialsseleccione "Añadir nueva nexmovoiceapp..." en el menú desplegable y haga clic en el botón de edición. Rellene los siguientes datos y haga clic en Create New Application.
| KEY | DESCRIPTION |
|---|---|
Name |
Choose a name for your Voice Application, for example inbound call. |
API Key |
Your Nexmo API key, shown in your account overview. |
API Secret |
Your Nexmo API secret, shown in your account overview. |
Answer URL |
YOUR_URL/answer, you'll be hosting a Nexmo Call Control Object (NCCO) here. - more about this later on. |
Event URL |
YOUR_URL/event, you'll need to reference this when setting up the event handler. |
Node-RED creará entonces una nueva Nexmo Application en tu Account y rellenará los campos App ID y Private Key para que los guardes. Después de este paso, no dude en eliminar el nodo Nexmo que utilizó, como un nexmovoiceapp que contiene todas las credenciales Nexmo que este flujo necesita.

A continuación, tendrás que vincular tu número virtual a esta aplicación.
Encuentre la Aplicación Voice que acaba de crear en su Panel Nexmo navegando hasta Voice > Tus Applications.
Haga clic en el nombre de esta aplicación y, a continuación, en la sección Numbers haga clic en el botón Enlace situado junto al número virtual que ha alquilado anteriormente.
Alternativamente, si el número que desea utilizar ya está vinculado a otra aplicación, haga clic en Gestionar número y configúralo para desviar las llamadas entrantes a tu aplicación.

Construir el Objeto de Control de Llamada Nexmo (NCCO)
Las llamadas de Nexmo se controlan mediante Objetos de control de llamadas Nexmotambién conocidos como NCCOs. Un NCCO define una lista de acciones a seguir cuando se gestiona una llamada. Hay muchas acciones diferentes disponibles, encuentra los nodos correspondientes bajo la paleta Nexmo en tu editor Node-RED o consulta la Referencia NCCO para obtener más información.
En este tutorial, utilizarás la acción talk acción.
Arrastre y suelte el nodo talk a su espacio de trabajo, luego conéctelo a un nodo de voice webhook nodo de entrada y un return NCCO nodo de salida.
A continuación, en el nodo voice webhook seleccione GET como método y escriba algo como /answer en el campo URL de respuesta.
Por último, vaya a las propiedades del nodo talk y establezca el campo Text{} con el mensaje que desea que se lea cuando se responda a la llamada. Fíjate en el signo {} junto a la etiqueta Text que indica que este valor puede establecerse dinámicamente utilizando la plantilla plantillas Mustache. También puede seleccionar un Voice Nameconsulte la Guía de texto a voz para consultar la lista completa de opciones.

Configuración de un manejador para la URL del evento
Conectar un http nodo de entrada a un nodo http response así como a un nodo debug nodo, para que pueda ver su recibo de entrega en el área de depuración.
En el nodo http nodo de entrada, seleccione POST como Method y rellene el campo URL con algo como /event.
El nodo http response debe tener 200 como Status codepero no te preocupes, este es el valor por defecto también.
Ahora pulse Desplieguellama a tu número virtual y sigue el flujo de la llamada en la barra lateral de depuración.

Próximos pasos
En este tutorial, has aprendido a reproducir un mensaje de texto a voz a una persona que llama. También puedes reproducir un archivo de audio o desviar la llamada a un número de teléfono. Si quieres ir más allá, ¿por qué no grabar la conversación o configurar un buzón de voz personalizado? No te pierdas cómo hacerlo.
Recursos
Más información sobre la Voice API
Consulte la Referencia NCCO para conocer las múltiples formas de controlar su llamada.
Eche un vistazo a Node-RED
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
