Rastrea el uso de tus números de Vonage
Obtén información sobre la efectividad de las comunicaciones con tus clientes llevando un registro de las llamadas recibidas por tus Numbers de Vonage. Al registrar un número diferente para cada una de tus campañas de marketing, puedes ver cuál funciona mejor y usar esa información para mejorar tus futuros esfuerzos de marketing. mejor y usar esa información para mejorar tus futuros esfuerzos de marketing.
El ejemplo de hoy utiliza NodeJS y todo el código es disponible en GitHub, sin embargo, el mismo enfoque podría utilizarse para cualquier otra pila tecnológica.
Requisitos previos
Para poder trabajar con esta guía necesitas:
- A Account de Vonage
- En CLI de Vonage instalado y configurado.
- Un servidor web de acceso público para que Vonage pueda realizar solicitudes de webhook a tu aplicación. Si estás desarrollando localmente recomendamos ngrok.
Comenzar
Antes de tomar el código y sumergirte, deberás configurar una aplicación de Vonage y obtener algunos números para usar con ella.
Cuando creas una aplicación de Vonage, especificas algunos webhook endpoints; estos
son URLs en tu propia aplicación y son la razón por la que tu código debe ser accesible públicamente. Cuando una persona llama a
a tu número de Vonage, Vonage realizará una solicitud web a la answer_url que especifique y siga las
instrucciones que encuentre allí.
También hay un event_url webhook, que recibe actualizaciones cada vez que cambia el estado de la llamada. En esta aplicación, el código
código envía los eventos a la consola para proporcionar información útil durante el desarrollo.
Para crear la aplicación inicial, utiliza la CLI de Vonage para ejecutar el siguiente comando, reemplazando tu URL en dos lugares:
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
Este comando devuelve el UUID (Identificador Único Universal) que identifica su aplicación. Con el identificador de Applications, ya puede añadir la función de voz a su aplicación:
Asegúrese de ajustar el voice-answer-url, voice-event-url para que apunte a su dominio. No tiene que configurar la
URL.
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
Necesitarás un par de números de Vonage para probar esta aplicación. Puedes usar la CLI de Vonage para buscar y comprar un número usando los comandos que se muestran a continuación; cuando busques un número, ingresa cualquier código de país en Formato ISO 3166-1 alfa-2.
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.
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
Puede utilizar cualquier código de país en Formato ISO 3166-1 alfa-2 para este comando. El resultado es el número que ha comprado, así que cópielo (siempre puede obtener una lista con vonage numbers) y vincúlalo a la aplicación que has creado:
vonage apps numbers link 00000000-0000-0000-0000-000000000000 16127779311
✅ Fetching Application
Fetching Owned numbers [===============================================] 1/1 100%
Number linked
Number: 16127779311
Country: 🇺🇸 United States
Type: Toll-free
Features: MMS, SMS, VOICE
Monthly Cost: Not Set
Setup Cost: Not Set
Linked Application ID: 00000000-0000-0000-0000-000000000000
Voice Callback: app
Voice Callback Value: 00000000-0000-0000-0000-000000000000
Voice Status Callback: Not Set
vonage apps numbers link 00000000-0000-0000-0000-000000000000 16127779311
✅ Fetching Application
Fetching Owned numbers [===============================================] 1/1 100%
Number linked
Number: 16127779311
Country: 🇺🇸 United States
Type: Toll-free
Features: MMS, SMS, VOICE
Monthly Cost: Not Set
Setup Cost: Not Set
Linked Application ID: 00000000-0000-0000-0000-000000000000
Voice Callback: app
Voice Callback Value: 00000000-0000-0000-0000-000000000000
Voice Status Callback: Not Set
Repita el paso de compra y vinculación para tantos números como desee utilizar.
Los nuevos usuarios deberán recargar su Account antes de poder comprar un número.
Configurar y ejecutar la aplicación
En primer lugar, obtenga el código de este repositorio. Puede clonar el repositorio a su máquina local o descargar el archivo zip.
Instale las dependencias con este comando: npm install
A continuación, copie la plantilla de configuración .env-example a un archivo llamado .env. En este archivo deberás configurar el número de teléfono
al que Vonage debe conectarse, por lo que puede ser cualquier teléfono que tengas cerca y que puedas contestar.
También puede establecer el número de puerto en la opción .env añadiendo un PORT ajuste
Para iniciar el servidor web: npm start
Compruebe que todo funciona según lo previsto visitando http://localhost:5000. Deberías ver "Hola Vonage" como respuesta.
Atención de llamadas entrantes
Cuando Vonage recibe una llamada entrante a tu número de Vonage, realiza una solicitud al punto final de webhook que configuraste cuando creado una aplicación de voz.
Cuando la persona que llama realiza la llamada, la aplicación recibe el webhook entrante. Extrae el número desde el que la persona que llama
está llamando (el to número) y el número que han marcado (el from number) y pasa estos valores a la lógica de seguimiento de llamadas de
lógica de seguimiento de llamadas.
El webhook entrante es recibido por la aplicación /track-call ruta:
app.get('/track-call', (req, res) => {
const from = req.query.from;
const to = req.query.to;
const ncco = callTracker.answer(from, to);
return res.json(ncco);
});
Rastrear la llamada antes de conectar con el llamante
La lógica para rastrear realmente la llamada está separada en la aplicación de ejemplo. Tenga en cuenta que la aplicación pierde los datos cuando se reinicia el servidor. Para sus propias aplicaciones puede extender esta parte para escribir en una base de datos, una plataforma de registro o algo que se adapte a sus necesidades. o cualquier otra cosa que se adapte a sus necesidades. Después de rastrear la llamada, la aplicación devuelve un Objeto de control de llamadas Nexmo (NCCO) para decirle a los servidores de Vonage qué hacer a continuación con la llamada.
Encontrará este código en lib/CallTracker.js:
class CallTracker {
config;
trackedCalls;
constructor(config) {
this.config = config;
this.trackedCalls = {};
}
/**
* Track the call and return an NCCO that proxies a call.
*/
answer (from, to) {
if(!this.trackedCalls[to]) {
this.trackedCalls[to] = [];
}
this.trackedCalls[to].push({
timestamp: Date.now(),
from: from,
});
return [
{
action: 'connect',
from: to,
endpoint: [
{
type: 'phone',
number: this.config.proxyToNumber,
},
],
},
];
};
}
La OCN utiliza el connect para conectar la llamada entrante con otra llamada al número especificado en el archivo de configuración
archivo de configuración. La dirección from tiene que ser un número de Vonage, por lo que el código utiliza el número rastreado como identificador de llamadas para la
llamada saliente. Verifica el Documentación de la OCNC para el connect acción para
más detalles sobre el objeto de control de llamada.
Conclusión
Con este enfoque has podido vincular algunos números de Vonage a tu aplicación node.js, hacer un registro de llamadas entrantes a esos números y conectar a quienes llaman con un número saliente. Mediante el registro de la marca de tiempo, así como los números de origen y destino, puedes seguir adelante y realizar cualquier análisis que necesites sobre estos datos para obtener los mejores resultados para tu negocio. resultados para su empresa.
¿Y ahora qué?
A continuación se ofrecen algunas sugerencias más de recursos que podrían ser de su agrado como paso siguiente a esta guía:
- Añadir un susurro de llamada a una llamada entrante para anunciar algunos detalles sobre la llamada entrante a la saliente antes de conectar ambas.
- Blog sobre cómo Conecta tu servidor de desarrollo local a la API de Vonage mediante un túnel ngrok.
- En Referencia de Webhooks para Voice muestra los detalles de los webhooks entrantes para
ambos
answer_urlyevent_urlpuntos finales. - Consulte el Documentación de la OCNC para obtener detalles sobre otras acciones que puedes usar para controlar el flujo de tus llamadas de Vonage.