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
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
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:
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
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.90 €0.00
Use vonage numbers buy to purchase.
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.90 €0.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 for €0.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
vonage numbers buy US 16127779311
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for €0.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 compradoINBOUND_NUMBER_2: El otro número que ha compradoDOMAIN: 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.
- Llama a uno de los Numbers que has comprado.
- 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.
- Cuando el operador del centro de llamadas conteste, oirá el mensaje "susurrado" antes de que se le conecte con el interlocutor original. llamada original.
- 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.