https://d226lax1qjow5r.cloudfront.net/blog/blogposts/receive-phone-calls-node-red-dr/inbound-calls-node-red.png

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:

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.

node-red

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.

nexmo node red

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.

./ngrok http 1880

Navegue hasta la URL mostrada para encontrar su Editor Node-RED.

ngrok inbound call

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.

Next step

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.

link number

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.

Create tts ncco

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.

inbound call debug

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

Compartir:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroDefensor del Desarrollador

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.