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

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

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.900.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 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

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

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.

CallerVonageAppCallerVonageAppCaller calls one ofthe tracking numbersCalls Vonage numberInbound Call(from, to)

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 :