Verfolgen Sie die Nutzung Ihrer Vonage Numbers

Verschaffen Sie sich einen Überblick über die Effektivität Ihrer Kundenkommunikation, indem Sie die Anrufe verfolgen, die bei Ihren Vonage Numbers. Wenn Sie für jede Ihrer Marketingkampagnen eine andere Nummer registrieren, können Sie sehen, welche Nummer am besten abschneidet. und können diese Informationen nutzen, um Ihre zukünftigen Marketingmaßnahmen zu verbessern.

Das heutige Beispiel verwendet NodeJS und der gesamte Code ist verfügbar auf GitHub, Der gleiche Ansatz könnte jedoch auch für jeden anderen Technologie-Stack verwendet werden.

Voraussetzungen

Um diesen Leitfaden durcharbeiten zu können, benötigen Sie:

  • A Vonage-Konto
  • Die Vonage CLI installiert und eingerichtet werden.
  • Ein öffentlich zugänglicher Webserver, damit Vonage Webhook-Anfragen an Ihre Anwendung stellen kann. Wenn Sie lokal entwickeln, empfehlen wir empfehlen wir ngrok.

Los geht's

Bevor Sie sich den Code schnappen und loslegen können, müssen Sie eine Vonage-Anwendung einrichten und einige Numbers für die Verwendung mit dieser Anwendung erhalten. Wenn Sie eine Vonage-Anwendung erstellen, geben Sie einige Webhook Endpunkte; diese sind URLs in Ihrer eigenen Anwendung und sind der Grund dafür, dass Ihr Code öffentlich zugänglich sein muss. Wenn ein Anrufer Ihre Vonage-Nummer anruft, stellt Vonage eine Web-Anfrage an die answer_url Endpunkt, den Sie angeben, und folgen Sie den Anweisungen, die es dort findet.

Außerdem gibt es eine event_url Webhook, der bei jeder Änderung des Anrufstatus Aktualisierungen empfängt. In dieser Anwendung gibt der Code die Ereignisse auf der Konsole aus, um während der Entwicklung nützliche Informationen zu liefern.

Um die erste Anwendung zu erstellen, verwenden Sie die Vonage CLI, um den folgenden Befehl auszuführen, und ersetzen Sie Ihre URL an zwei Stellen Stellen:

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

Dieser Befehl gibt die UUID (Universally Unique Identifier) zurück, die Ihre Applikation identifiziert. Mit der Application id, können Sie nun die Sprachfunktion zu Ihrer Anwendung hinzufügen:

Stellen Sie sicher, dass Sie die voice-answer-url, voice-event-url auf Ihre Domäne verweisen. Sie müssen die Fallback-URL nicht festlegen. 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

Um diese Anwendung auszuprobieren, benötigen Sie ein paar Vonage Numbers. Sie können die Vonage CLI verwenden, um eine Nummer zu suchen und zu kaufen, indem Sie die unten aufgeführten Befehle verwenden; geben Sie bei der Suche nach einer Nummer eine beliebige Landesvorwahl in ISO 3166-1 Alpha-2-Format.

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

Sie können jeden Ländercode in ISO 3166-1 Alpha-2-Format für diesen Befehl. Das Ergebnis ist die Nummer, die Sie gekauft haben, also kopieren Sie diese (Sie können jederzeit eine Liste mit vonage numbers) und verknüpfen Sie sie mit der von Ihnen erstellten Anwendung:

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

Wiederholen Sie den Schritt des Kaufs und der Verknüpfung für so viele Numbers, wie Sie verwenden möchten.

Für neue Nutzer müssen Sie Ihr Konto aufladen, bevor Sie eine Nummer kaufen können.

Einrichten und Ausführen der Applikation

Holen Sie sich zunächst den Code von dieses Repository. Sie können entweder einen Klon des Repository auf Ihren lokalen Rechner klonen oder die Zip-Datei herunterladen.

Installieren Sie die Abhängigkeiten mit diesem Befehl: npm install

Kopieren Sie dann die Konfigurationsvorlage .env-example in eine Datei namens .env. In dieser Datei müssen Sie die Rufnummer konfigurieren Nummer, zu der Vonage eine Verbindung herstellen soll. Dies kann ein beliebiges Telefon sein, das Sie in der Nähe haben und an das Sie gehen können.

Sie können die Anschlussnummer auch in den Feldern .env Datei durch Hinzufügen einer PORT Einstellung

So starten Sie den Webserver: npm start

Überprüfen Sie, ob alles wie erwartet funktioniert, indem Sie http://localhost:5000. Sie sollten als Antwort "Hallo Vonage" sehen. Antwort sehen.

Eingehende Sprachanrufe bearbeiten

Wenn Vonage einen eingehenden Anruf an Ihre Vonage-Nummer empfängt, stellt es eine Anfrage an den Webhook-Endpunkt, den Sie bei der Installation von eine Sprachanwendung erstellt.

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

Wenn der Anrufer den Anruf tätigt, empfängt die Anwendung den eingehenden Webhook. Sie extrahiert die Nummer, von der der Anrufer anruft (die to Nummer) und die von ihnen gewählte Nummer (die from Nummer) und übergibt diese Werte an die Anrufverfolgungslogik weiter.

Der eingehende Webhook wird von der /track-call Route:

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);
});

Verfolgen des Anrufs vor dem Verbinden des Anrufers

Die Logik für die eigentliche Verfolgung des Anrufs ist in der Beispielanwendung getrennt. Bitte beachten Sie, dass die Anwendung die Daten verliert wenn Sie den Server neu starten! Für Ihre eigenen Applications können Sie diesen Teil erweitern, um in eine Datenbank, eine Logging Plattform oder etwas anderes, das Ihren eigenen Bedürfnissen entspricht. Nach der Verfolgung des Aufrufs gibt die Anwendung ein Nexmo Call Control Objekt (NCCO) den Servern von Vonage mitzuteilen, was sie als nächstes mit dem Anruf.

Sie finden diesen Code in 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,
          },
        ],
      },
    ];
  };
}

Das NCCO verwendet die connect Aktion, um den eingehenden Anrufer mit einem anderen Anruf zu der Nummer zu verbinden, die Sie in der Konfigurationsdatei angegeben haben. Die from Nummer muss eine Vonage-Nummer sein, daher verwendet der Code die verfolgte Nummer als Anrufer-ID für den ausgehenden Anruf. Prüfen Sie die NCCO-Dokumentation für die connect Aktion für mehr Details über das Anrufsteuerungsobjekt.

Schlussfolgerung

Mit diesem Ansatz konnten Sie einige Vonage Numbers mit Ihrer node.js-Anwendung verknüpfen, eine Aufzeichnung der eingehende Anrufe an diese Numbers und verbinden die Anrufer mit einer abgehenden Nummer. Durch die Aufzeichnung des Zeitstempels und der der From und To Numbers können Sie diese Daten beliebig analysieren, um die besten Ergebnisse für Ihr Unternehmen zu erzielen. Ergebnisse für Ihr Unternehmen zu erzielen.

Wie geht es weiter?

Hier sind einige weitere Vorschläge für Ressourcen, die Sie als nächsten Schritt nach diesem Leitfaden nutzen könnten: