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
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
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.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
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
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.
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:
- Hinzufügen eines Flüsteranrufs zu einem eingehenden Anruf einige Details über den eingehenden ankommenden Anruf an den abgehenden Anruf zu übermitteln, bevor die beiden verbunden werden.
- Blog-Beitrag über die Vorgehensweise Verbinden Sie Ihren lokalen Entwicklungsserver mit der Vonage API über einen ngrok-Tunnel.
- Die Webhooks-Referenz für Sprache zeigt die Details der eingehenden Webhooks für
beide
answer_urlundevent_urlEndpunkte. - Siehe dazu die NCCO-Dokumentation um Details zu anderen Aktionen zu erhalten, die Sie verwenden können um den Ablauf Ihrer Vonage-Anrufe zu steuern.