Añadir un susurro de llamada a una llamada entrante

Numbers are everywhere in advertising: on billboards, in TV ads, on websites, in newspapers. A menudo estos Numbers a un mismo centro de llamadas, donde un agente tiene que preguntar por qué llama la persona y dónde vio el anuncio. el anuncio.

Mediante los susurros de llamada, el contexto de la llamada entrante se anuncia al operador del centro de llamadas antes de ser conectado a la persona que llama. Esta guía mostrará una aplicación que implementa este enfoque. Un usuario llamará a uno de dos números. La aplicación responde a la llamada y la persona que llama escucha un mensaje de espera. Mientras tanto, la aplicación también hace una llamada a la operativa del centro de llamadas, reproduce un susurro de llamada diferente en función del número que se haya marcado y, a continuación, conecta a la operativa a la conferencia con la operativa del centro de llamadas. a la conferencia con la persona que llama.

Los ejemplos están escritos en node.js con express, y puedes encontrar el código en GitHub.

En esta guía

Usted verá cómo construir añadir un Call Whisper a una llamada entrante:

  • Cómo funciona - una visión general de quién llama a quién y cómo fluye el proceso a lo largo de la aplicación de ejemplo.
  • Antes de empezar - configure la aplicación y los números necesarios para esta guía.
  • Introducción al código - clonar el repositorio y poner en marcha la aplicación.
  • Guía de códigos - profundizar en los pormenores del funcionamiento de la aplicación.
  • Para saber más - consulte otros recursos que pueden resultarle útiles.

Cómo funciona

OperativeApplicationVonage numberUserOperativeApplicationVonage numberUserWhen operativeanswersCallers are connectedUser calls either ofthe numbers linked to this Application/answerConnects to operative's number/answer_outboundAnnounces key informationabout original caller

Antes de empezar

Antes de agarrar y ejecutar el código, hay algunas cosas que tenemos que hacer primero.

Regístrate en Vonage

Regístrate para obtener una cuenta API de Vonage si aún no tiene uno.

Configurar la CLI

Esta guía utiliza el Herramienta de línea de comandos de VonageCompruebe que está instalado antes de continuar.

Crear una aplicación de voz

Utilice la CLI para crear una aplicación Voice API con el comando webhooks que se encargará de contestar una llamada a tu número de Vonage (/webhooks/voice/answer) y el registro de eventos de llamada (/webhooks/voice/event), respectivamente.

Estos webhooks deben ser accesibles por los servidores de Vonage, por lo que en esta guía utilizarás ngrok para exponer su entorno de desarrollo local a la Internet pública. Este artículo explica cómo instalar y ejecutar ngrok y configura Vonage para enviar solicitudes.

Si no dispone de una aplicación, puede crear una utilizando la CLI

vonage apps create 'Your application'

✅ Creating Application
Saving private key ... Done!
Application created

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
  None Enabled

El comando devuelve un ID de aplicación (del que debe tomar nota) y la información de su clave privada (que puede puede ignorar con seguridad a los efectos de esta guía).

Ejecutar ngrok utilizando el siguiente comando:

ngrok http 3000

Anote el nombre de host temporal que ngrok y utilizarlo en lugar de example.com en el siguiente comando:

vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
  --voice-answer-url='https://example.com/webhooks/voice/answer' `
  --voice-event-url='https://example.com/webhooks/voice/event' `
  --voice-fallback-url='https://example.com/webhooks/voice/fallback'
  
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
 VOICE:
    Uses Signed callbacks: On
    Conversation TTL: 41 hours
    Leg Persistence Time: 6 days
    Event URL: [POST] https://example.com/webhooks/voice/event
    Answer URL: [POST] https://example.com/webhooks/voice/answer
    Fallback URL: [POST] https://example.com/webhooks/voice/fallback

Comprar un número de teléfono

Para manejar las llamadas entrantes a tu aplicación, necesitas un número de Vonage. Si ya tienes un número para usar, salta a la siguiente sección para asociar el número existente con tu aplicación.

Puede utilizar la función CLI de Vonage para comprar el número de teléfono:

Buscar un número

Puedes comprar un número usando la CLI de Vonage. El siguiente comando busca un número una compra (especifica un código de país alternativo de dos caracteres comprar un número en otro país).

vonage numbers search US

✅ Searching for numbers

There is 1 number available for purchase in United States

Number       Type    Features         Monthly Cost  Setup Cost
-----------  ------  ---------------  ------------  ----------
16127779311  Mobile  MMS, SMS, VOICE  €0.900.00

Use vonage numbers buy to purchase.

Comprar un número

Una vez que haya encontrado un número que le satisfaga, puede comprarlo utilizando el botón vonage numbers buy mando:

vonage numbers buy US 16127779311 
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for0.90? [y/n] y

✅ Purchasing number
Number 16127779311 purchased

Number: 16127779311 
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set

Nota Para esta guía, necesitará dos números

Introducción al código

El código de este proyecto está en GitHub. Este consiste en un proyecto node.js usando Express y está pensado para darte un ejemplo de trabajo que puedas adaptar a tus propias necesidades. tus propias necesidades.

Clonar el repositorio

Clone o descargue el repositorio en su máquina local, en un nuevo directorio.

Configurar los ajustes

Tu aplicación necesitará saber más sobre ti y tu aplicación antes de poder ejecutarse. Copie la .env-example archivo a .env y edite este nuevo archivo para reflejar la configuración que desea utilizar:

  • CALL_CENTER_NUMBER: El número de teléfono para contactar con el operador del centro de llamadas, por ejemplo, su número de móvil.
  • INBOUND_NUMBER_1: Uno de los Numbers que ha comprado
  • INBOUND_NUMBER_2: El otro número que ha comprado
  • DOMAIN: El nombre de dominio donde se ejecutará tu aplicación, por ejemplo el mío es: ff7b398a.ngrok.io

Instalar las dependencias

En el directorio donde descargaste el código, ejecuta npm install. Esto trae Express y otras dependencias necesarias para este proyecto.

Iniciar el servidor

Con la configuración hecha y las dependencias en su lugar, ¡tu aplicación está lista para funcionar! Ejecútala con:

npm start

Por defecto, la aplicación se ejecuta en el puerto 3000. Si va a utilizar ngrokya puedes empezar tu túnel.

Cuando cambie el nombre del túnel ngrok, recuerde actualizar las direcciones URL de su aplicación con la función vonage apps capabilities update mando.

Pruébalo

Vamos a probar la demo. Para ello necesitas dos teléfonos (uno para ser el "llamante" y otro para ser el "operador del centro de llamadas"), así que para hacer la primera llamada.

  1. Llama a uno de los Numbers que has comprado.
  2. La persona que llama escuchará un mensaje de bienvenida y, a continuación, sonará el número de teléfono del operador del centro de llamadas.
  3. Cuando el operador del centro de llamadas conteste, oirá el mensaje "susurrado" antes de que se le conecte con el interlocutor original. llamada original.
  4. Ahora inténtalo de nuevo pero llama al otro número y escucha el "susurro" diferente.

Guía de códigos

La demo es divertida, pero si usted está interesado en la construcción de este usted mismo, entonces hay algunos puntos clave que usted probablemente quieras ver. Esta sección examina las secciones clave del código para cada paso del proceso para que puedas encontrar dónde tienen lugar las cosas y puedas adaptar esta aplicación a tus necesidades.

Responder a la llamada entrante e iniciar una llamada saliente

Cada vez que alguien llame a uno de los números vinculados a la aplicación de Vonage, Vonage recibirá una llamada entrante entrante. Vonage notificará a tu aplicación web sobre esa llamada. Para ello, realizará una solicitud de webhook de su aplicación web answer_url en este caso caso /answer. Cuando se responde a la llamada, la aplicación conecta a esa persona con el operador del centro de llamadas.

lib/rutas.js

app.get('/webhooks/voice/answer', (req, res) => {
  const  answer_url = 'http://'+process.env['DOMAIN']+'/on-answer'
  console.log(answer_url);

  res.json([
    {
      "action": "talk",
      "text": "Thanks for calling. Please wait while we connect you"
    },
    {
      "action": "connect",
      "from": req.query.to,
      "endpoint": [{
        "type": "phone",
        "number": process.env['CALL_CENTER_NUMBER'],
        "onAnswer": {"url": answer_url}
      }]
    }
  ]);
});

Nota: Eche un vistazo al Referencia de Voice API para más información.

La respuesta que devolvemos es un array de OCN (Objetos de control de llamadas Nexmo). El primero es el mensaje hablado que escucha la persona que llama; el segundo conecta con la otra persona que llama y especifica qué URL debe utilizarse cuando esa persona responde a la llamada.

Reproduce un susurro y conecta la llamada

Cuando el operador del centro de llamadas contesta la llamada, el onAnswer en nuestra aplicación es la URL /on-answer punto final. Es el código que busca qué número se ha marcado y calcula qué anuncio hay que hacer.

lib/rutas.js

// Define the topics for the inbound numbers
const topics = {}
topics[process.env['INBOUND_NUMBER_1']] = 'the summer offer';
topics[process.env['INBOUND_NUMBER_2']] = 'the winter offer';

Cuando se conecte la llamada, reproduzca un susurro de llamada al agente mediante el botón talk acción NCCO, informándoles de qué campaña publicitaria sobre la que versa la llamada, antes de conectarlos con el interlocutor que espera en la conferencia.

lib/rutas.js

app.get('/on-answer', function(req, res) {
  // we determine the topic of the call based on the inbound call number
  const topic = topics[req.query.from]
  res.json([
    // We first play back a little message telling the call center operator what
    // the call relates to. This "whisper" can only be heard by the call center operator
    {
      "action": "talk",
      "text": "Incoming call regarding "+topic
    }
  ]);
});

Aquí hay muchas posibilidades que pueden ayudarte a personalizar los susurros. Puede pasar el número de la persona que llama con el botón url en on-answer y buscarlos, lo que le permitirá saludarlos por su nombre o proporcionarles alguna otra información. Las posibilidades son infinitas, pero esperamos que esta guía le ofrezca un ejemplo práctico que pueda utilizar y personalizar. personalizar.

Para saber más

  • GitHub contiene todo el código de esta aplicación de ejemplo.
  • Consulte nuestro Guías vocales para saber más cosas que puedes hacer con la voz.
  • En Referencia de la Voice API tiene documentación detallada para cada punto final.