Suivi de l'utilisation de vos numéros Vonage
Découvrez l'efficacité de vos communications avec vos clients en gardant une trace des appels reçus par vos numéros de Vonage. Numbers Vonage. En enregistrant un numéro différent pour chacune de vos campagnes de marketing, vous pouvez voir lequel est le plus performant et utiliser ces informations pour améliorer vos futurs efforts de marketing. et utiliser ces informations pour améliorer vos futurs efforts de marketing.
L'exemple d'aujourd'hui utilise NodeJS et tout le code est disponible sur GitHub, mais la même approche pourrait être utilisée pour n'importe quelle autre pile technologique.
Conditions préalables
Pour travailler avec ce guide, vous avez besoin de.. :
- A Account Vonage
- Les CLI Vonage installé et mis en place.
- Un serveur web accessible au public pour que Vonage puisse faire des demandes de crochets web à votre application. Si vous développez localement, nous recommandons ngrok.
Acheter des numéros de téléphone à commande vocale Lier les numéros de téléphone à l'application Vonage
Commencer
Avant de vous plonger dans le code, vous devez créer une application Vonage et obtenir des Numbers à utiliser avec elle.
Lorsque vous créez une application Vonage, vous spécifiez certains éléments suivants webhook Ces points d'extrémité
sont des URL dans votre propre application et sont la raison pour laquelle votre code doit être accessible au public. Lorsqu'un appelant appelle
votre numéro Vonage, Vonage envoie une requête web au point de terminaison answer_url que vous avez spécifié et suivez les instructions qu'il y trouve.
instructions qu'il y trouve.
Il existe également un event_url qui reçoit des mises à jour chaque fois que l'état de l'appel change. Dans cette application, le code
affiche les événements sur la console afin de fournir des informations utiles au cours du développement.
Pour créer l'application initiale, utilisez le CLI de Vonage pour exécuter la commande ci-dessous, en remplaçant votre URL à deux endroits. endroits :
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
Cette commande renvoie l'UUID (Universally Unique Identifier) qui identifie votre application. Avec l'identifiant de l'Application, vous pouvez maintenant ajouter la fonctionnalité vocale à votre application :
Veillez à paramétrer l'option voice-answer-url, voice-event-url pour qu'il pointe vers votre domaine. Vous ne devez pas définir l
DE SECOURS.
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
Vous aurez besoin de quelques numéros Vonage pour essayer cette application. Vous pouvez utiliser le CLI de Vonage pour rechercher et acheter un numéro à l'aide des commandes indiquées ci-dessous ; lors de la recherche d'un numéro, entrez n'importe quel code de pays dans le champ Format ISO 3166-1 alpha-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
Vous pouvez utiliser n'importe quel code de pays dans Format ISO 3166-1 alpha-2 pour cette commande. Le résultat est le nombre que vous avez acheté, alors copiez-le (vous pouvez toujours obtenir une liste avec vonage numbers) et liez-la à l'application que vous avez créée :
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
Répétez l'étape de l'achat et de la mise en relation pour autant de numéros que vous souhaitez utiliser.
Pour les nouveaux utilisateurs, vous devrez recharger votre Account avant de pouvoir acheter un numéro.
Configurer et exécuter l'application
Tout d'abord, obtenez le code de ce dépôt. Vous pouvez soit cloner le dépôt sur votre machine locale ou télécharger le fichier zip.
Installez les dépendances avec cette commande : npm install
Copiez ensuite le modèle de configuration .env-example dans un fichier appelé .env. Dans ce fichier, vous devrez configurer le numéro de téléphone auquel Vonage doit se connecter.
auquel Vonage doit se connecter. Il peut s'agir de n'importe quel téléphone à proximité et auquel vous pouvez répondre.
Vous pouvez également définir le numéro de port dans la rubrique .env en ajoutant un PORT réglage
Pour démarrer le serveur web : npm start
Vérifiez que tout fonctionne comme prévu en visitant http://localhost:5000. La réponse devrait être "Hello Vonage". réponse.
Traiter les appels vocaux entrants
Lorsque Vonage reçoit un appel entrant à votre numéro Vonage, il fait une demande au point de terminaison webhook que vous avez défini lors de votre a créé une application vocale.
Lorsque l'appelant passe l'appel, l'application reçoit le webhook entrant. Elle extrait le numéro de l'appelant
appelle (le to ) et le numéro qu'ils ont composé (le from ) et transmet ces valeurs à la logique de suivi des appels.
logique de suivi des appels.
Le webhook entrant est reçu par l'application /track-call l'itinéraire :
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);
});
Suivre l'appel avant de connecter l'appelant
La logique de suivi de l'appel est distincte dans l'exemple d'application. Veuillez noter que l'application perd les données lorsque vous redémarrez le serveur ! Pour vos propres Applications, vous pouvez étendre cette partie pour écrire dans une base de données, une plateforme de journalisation ou autre chose pour répondre à vos propres besoins. ou quelque chose d'autre pour répondre à vos propres besoins. Après avoir suivi l'appel, l'application renvoie un fichier Objet de contrôle d'appel Nexmo (NCCO) pour indiquer aux serveurs de Vonage la suite à donner à l'appel. appel.
Vous trouverez ce code dans 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,
},
],
},
];
};
}
Le BCN utilise le connect pour connecter l'appelant entrant à un autre appel vers le numéro que vous avez spécifié dans le fichier de configuration.
dans le fichier de configuration. L'action from doit être un numéro Vonage, de sorte que le code utilise le numéro suivi comme identifiant de l'appelant pour l'appel sortant.
appel sortant. Vérifier le Documentation du NCCO pour le connect action pour
pour plus de détails sur l'objet de contrôle des appels.
Conclusion
Avec cette approche, vous avez pu lier quelques numéros Vonage à votre application node.js, enregistrer les appels entrants vers ces numéros et connecter les appelants à un numéro sortant. appels entrants vers ces numéros et connecter les appelants à un numéro sortant. En enregistrant l'horodatage ainsi que les numéros de départ et d'arrivée, vous pouvez aller de l'avant et effectuer toute analyse nécessaire sur ces données afin d'obtenir les meilleurs résultats pour votre entreprise. résultats pour votre entreprise.
Quelle est la prochaine étape ?
Voici quelques suggestions de ressources qui pourraient vous être utiles après ce guide :
- Ajouter un murmure d'appel à un appel entrant d'annoncer certains détails de l'appel entrant à l'appel sortant avant de connecter les deux. l'appel entrant à l'appel sortant avant de connecter les deux.
- Article de blog expliquant comment Connectez votre serveur de développement local à l'API de Vonage en utilisant un tunnel ngrok..
- Les Référence Webhooks pour Voice montre les détails des webhooks entrants pour
à la fois
answer_urletevent_urlpoints finaux. - Se référer à la Documentation du NCCO pour obtenir des détails sur les autres actions que vous pouvez utiliser pour contrôler le flux de vos appels Vonage. pour contrôler le flux de vos appels Vonage.