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.
- Más información - Echa un vistazo a otros recursos que podrían resultarte útiles.
Cómo funciona
Antes de empezar
Antes de ponernos manos a la obra con el código, hay algunas cosas que debemos hacer primero.
Regístrate en Vonage
Regístrate para obtener un Account de la 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 llamadas (/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 tienes una aplicación, puedes crear una mediante 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 (que debes anotar) y la información de tu clave privada (que puedes ignorar sin problema a efectos de esta guía).
Correr 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 gestionar las llamadas entrantes a tu aplicación, necesitas un número de Vonage. Si ya dispones de un número, pasa a la siguiente sección para asociar ese número a tu aplicación.
Puedes utilizar el CLI de Vonage para comprar el número de teléfono:
Buscar un número
Puedes comprar un número mediante la CLI de Vonage. El siguiente comando busca un número para comprarlo (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 comando:
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 seguir esta guía, necesitarás dos números
Introducción al código
El código de este proyecto está en GitHub. Se trata de un proyecto de Node.js que utiliza Express y cuyo objetivo es ofrecerte un ejemplo práctico que luego puedas adaptar a tus propias necesidades.
Clona el repositorio
Clona o descarga el repositorio en tu ordenador, en un directorio nuevo.
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 en el que se puede contactar con el operador del centro de atención telefónica, como tu número de móvilINBOUND_NUMBER_1: Uno de los números que has 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
Instala las dependencias
En el directorio donde descargaste el código, ejecuta npm install. Esto instala 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 vas 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
Probemos la demostración. Para ello, necesitas dos teléfonos (uno que haga de «llamante» y otro que haga de «operador del centro de llamadas»), así que quizá tengas que pedirle a un amigo que te ayude o utilizar Skype 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 atención telefónica responda, escuchará el mensaje «susurrado» antes de que se le conecte con la persona que ha llamado.
- 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.
Responde a la llamada entrante e inicia 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 a tu 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 una matriz de NCCO (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 «Whisper» y conecta la llamada
Cuando el operador del centro de llamadas contesta la llamada, el onAnswer Se utiliza la URL; en nuestra aplicación, esa es la /on-answer
punto final. Este es el código que comprueba qué número se ha marcado y determina qué mensaje se debe reproducir.
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 El personal de NCCO les informa de
a qué campaña publicitaria se refiere la llamada, antes de ponerles en contacto con la persona 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.
Más información
- GitHub contiene todo el código de esta aplicación de ejemplo.
- Consulte nuestro Guías vocales para descubrir más cosas que puedes hacer con la voz.
- El Referencia de la Voice API tiene documentación detallada para cada punto final.