https://d226lax1qjow5r.cloudfront.net/blog/blogposts/connect-phone-call-to-stitch-in-app-voice-dr/Call-to-InApp-Voice.jpg

Cómo conectar una llamada telefónica a Nexmo In-App Voice

Publicado el May 12, 2021

Tiempo de lectura: 3 minutos

El sitio Voice API de Nexmo le permite crear aplicaciones de voz programables de alta calidad en la nube. Con la Voice API, puede gestionar llamadas salientes y entrantes en JSON, grabar y almacenar llamadas, crear una multiconferencia, enviar mensajes de texto a voz en 23 idiomas con variedades de voces y acentos, etc.

Nexmo StitchNexmo Stitch, un nuevo producto que actualmente se encuentra en la versión preliminar para desarrolladores, permite la comunicación a través de múltiples canales, como la mensajería y la voz dentro de la aplicación.

En este post, vamos a aprender cómo desviar una llamada telefónica entrante desde un número de teléfono Nexmo a un usuario Stitch mediante la implementación de un Webhook y vinculándolo a una aplicación Nexmo Voice.

Antes de empezar necesitarás algunas cosas:

  • Node.js instalado en su máquina

  • Instale el Nexmo Beta CLI:

  • Configure la CLI para utilizar su Clave Nexmo API y Secreto API. Usted puede obtener estos de la página de configuración en el Panel de control de Nexmo:

$ nexmo setup api_key api_secret

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.

Desviar una llamada a un usuario de Stitch

Cuando un usuario llama a un número de teléfono virtual de Nexmo asociado a una aplicación de voz, Nexmo recupera los objetos de control de llamadas de Nexmo (NCCO) de su endpoint answer_url Webhook endpoint. Intentaremos responder a la llamada con una voz sintetizada que lea algo de texto y luego conecte la llamada a un usuario de Stitch. Usaremos el NCCO para crear el flujo de llamada.

Creación de un punto final webhook

Soy una persona de JavaScript, así que voy a escribir el Webhook usando Node y ExpressJS. Si prefieres un lenguaje diferente, siéntete libre de usar otra cosa - hay librerías cliente Nexmo para JavaScript, Java, Python, PHP, Rubyy .NET¡!

Necesitaremos instalar algunas cosas:

$ npm install express body-parser --save

Crea un index.js archivo, instanciar express y body-parser, y escuchar al servidor en el puerto 3000.

'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

const server = app.listen(3000, () => {
  console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});

Vamos a añadir un endpoint para /event que registre todos los eventos procedentes de la aplicación Nexmo:

app.post('/event', (req, res) => {
  console.log(req.body);
  res.status(200).end();
});

También necesitamos un endpoint para /answerque responda a peticiones HTTP GET, que entregará la NCCO cuando la Aplicación Nexmo recupere el archivo answer_url. Utilizaremos un talk para que la llamada genere un texto a voz que informe al usuario de que está llamando a . Jamieseguido de un bloque connect bloque. Tendremos que añadir un tipo especial rtc al endpoint para conectar la llamada con un usuario existente de Stitch. Puede añadir su propio número de teléfono en el campo from campo

app.get('/answer', (req, res) => {
  var ncco = [
    {
      action: "talk",
      text: "Thank you for calling Jamie"
    },
    {
      "action": "connect",
      "from": "449876543210",
      "endpoint": [
        {
          "type": "rtc",
          "user": "jamie"
        }
      ]

    }
  ];
  res.json(ncco);
})

Ahora vamos a ejecutar el servidor:

$ node index.js

Mientras desarrollas, puedes ejecutar el servidor localmente, y utilizar ngrok para hacer que el servidor esté disponible públicamente en Internet, para que Nexmo pueda llegar a él. Tenemos un ¡tutorial sobre cómo hacerlo!

Ahora tendremos que conectar el Webhook a una Aplicación Nexmo. Voy a suponer que ya tienes una y te mostraré cómo actualizar esa aplicación para que utilice el Webhook que acabamos de crear.

Actualice su aplicación existente con URL de Webhooks

Necesita el ID de la solicitud para actualizar la información. Puede utilizar el comando app:list con la CLI de Nexmo:

$ nexmo app:list

La CLI debería devolver una lista de cada ID de app y un nombre de app. Ahora, utilice el ID de aplicación correcto para actualizar la aplicación con las URL de webhook:

$ nexmo app:update aaaaaaaa-bbbb-cccc-dddd-0123456789ab "My Voice App" https://6e5c2f7a.ngrok.io/answer https://6e5c2f7a.ngrok.io/event

Por último, debe asociar su aplicación con el número virtual que alquila a Nexmo. Vamos a utilizar el Nexmo CLI de nuevo. Utilice el comando nexmo link:app seguido del número de teléfono, que debe comenzar con un código de país y luego el ID de la aplicación. Por lo tanto, el comando debe tener este aspecto:

$ nexmo link:app 449876543210 aaaaaaaa-bbbb-cccc-dddd-0123456789ab

Cuando la vinculación se realiza correctamente, la CLI devuelve el mensaje "Número actualizado".

Conclusión

Ahora que has vinculado tu número a tu aplicación, cada vez que alguien llame a tu número Nexmo va a ser conectado con un usuario de Stitch a través de In-App Voice. Si quieres probar esto, puedes ver el archivo JavaScript que detalla cómo puede implementar la llamada utilizando los SDK de Stitch.

¿Y ahora qué?

Si quieres seguir aprendiendo a utilizar Nexmo Stitch SDK para JavaScript, echa un vistazo a nuestros quickstarts de In-App Messaging donde te mostramos cómo crear una conversación simple, invitar y chatear con otro usuario y utilizar más escuchadores de eventos para mostrar el historial de chat y cuando un usuario está escribiendo. Si tiene más preguntas sobre el uso de Stitch le animamos a unirse a la comunidad Nexmo slack y echa un vistazo a nuestro #stitch o envíenos un correo electrónico directamente a ea-support@nexmo.com.

Compartir:

https://a.storyblok.com/f/270183/384x384/dabe7c5397/laka.png
Alex LakatosAntiguos alumnos de Vonage

Alex Lakatos es JavaScript Developer Advocate para Nexmo. En su tiempo libre es voluntario en Mozilla como Tech Speaker y Reps Mentor. Desarrollador de JavaScript en la web abierta, ha estado empujando sus límites todos los días. Cuando no está programando en Londres, le gusta viajar por el mundo, así que es probable que te lo encuentres en la sala de espera de un aeropuerto.