
Erstellen Sie einen Fluchtplan mit der Vonage Voice API und erhalten Sie einen Ghost Call
Lesedauer: 8 Minuten
Übersicht
In diesem Lernprogramm zeige ich Ihnen, wie Sie die Vonage Voice API nutzen können, um sich auf subtile Weise aus einer Situation zu befreien, in der man lieber nicht sein möchte. Sie können einen Geisteranruf auslösen, indem Sie eine SMS an eine virtuelle Nummer senden!
Der Code dieses Der Code des Projekts ist auf GitHub.
Voraussetzungen
Vergewissern Sie sich, bevor Sie mit dem Bau des Projekts beginnen, dass Sie alles haben:
Node.js und npm auf Ihrem Rechner installiert.
Ngrok für die Erstellung eines sicheren Tunnels zu Ihrem localhost.
Ein Texteditor und Grundkenntnisse in JavaScript.
Verwenden Sie Ngrok, um Ihren lokalen Server freizulegen
Ngrok stellt Ihre lokalen Webhooks im öffentlichen Internet zur Verfügung und ermöglicht es Ihnen, externe Anrufe zu empfangen:
Starten Sie ngrok mit
ngrok http 3000.Notieren Sie sich die HTTPS-Weiterleitungsadresse (z. B.,
https://xyz.ngrok.com).
Einrichten der Vonage-Anwendung
Nachdem Sie sich für einen Vonage Account angemeldet haben:
Erstellen Sie eine neue Applikation: Gehen Sie zu Ihre Applications im Dashboard und schalten Sie die Funktionen Voice und Messages ein.
Berechtigungsnachweise generieren: Erstellen Sie ein öffentliches/privates Schlüsselpaar für die API-Authentifizierung; dadurch wird eine
private.keyherunter, das zu unserem Projektordner hinzugefügt wird.Verknüpfen Sie eine virtuelle Nummer: Erwerben und verknüpfen Sie eine virtuelle Nummer mit Ihrer Anwendung.
Konfigurieren Sie Webhooks: Legen Sie die öffentliche URL Ihres Servers von ngrok als Endpunkt für eingehende Nachrichten und Ereignisse fest. Sie sollte wie folgt aussehen: https://xyz.ngrok.com/inbound für eingehende Nachrichten und https://xyz.ngrok.com/event für Ereignisse.
Messages Inbound and Status URLs
Server-seitige Implementierung
Anfängliche Projekteinrichtung
Erstellen Sie ein neues Projektverzeichnis: Öffnen Sie Ihr Terminal und navigieren Sie dorthin, wo Sie Ihr neues Projekt erstellen möchten. Verwenden Sie dann den folgenden Befehl, um ein neues Verzeichnis für Ihr Projekt zu erstellen und zu wechseln:
mkdir vonage-ghost-call && cd vonage-ghost-callInitialisieren Sie ein Node.js-Projekt: Initialisieren Sie in Ihrem neuen Projektverzeichnis ein Node.js-Projekt. Dadurch wird eine
package.jsonDatei, die die Abhängigkeiten und Skripte Ihres Projekts verwaltet. Verwenden Sie dennpm initum Details anzugeben oder drücken Sie die Eingabetaste, um die Standardeinstellungen zu übernehmen. Das-yFlagge füllt die Vorgaben automatisch aus, ohne nach den Details zu fragen.npm init -yInstallieren Sie die Abhängigkeiten: Nun ist es an der Zeit, die für das Projekt erforderlichen Abhängigkeiten zu installieren:
express: Ein Web-Framework für Node.js.dotenv: Dient zum Laden von Umgebungsvariablen aus einer.envDatei zu laden.@vonage/server-sdk: Das Vonage Server SDK für Node.js.@vonage/voice: Das Vonage Voice API SDK.
Um all diese Pakete in einem Rutsch zu installieren, führen Sie den folgenden Befehl aus, der diese Pakete automatisch zu Ihrer
package.jsonDatei hinzufügt und sie in das Projektnode_modulesVerzeichnis hinzufügt.npm install express dotenv @vonage/server-sdk @vonage/voice
Erstellen Sie die Umgebungsvariablendatei
Erstellen Sie eine .env Datei in Ihrem Projekt und fügen Sie die folgende Umgebung hinzu, die Sie im unten stehenden Codeschnipsel finden.
Die
VONAGE_KEYundVONAGE_SECRETfinden Sie auf dem Dashboard von Vonage.
Vonage DashboardDie
VONAGE_APPLICATION_IDfinden Sie in der von Ihnen erstellten Anwendung, die Sie im Bereich Vonage Applications.Die
FROM_IMPORTANT_FRIENDist die Telefonnummer für den Telefonanruf.Die
ANSWER_URLbestimmt, wie ein Anruf zu behandeln ist und mit wem der Anruf verbunden werden soll. Dazu wird ein NCCO ausgeführt, der zahlreiche Funktionen der Voice API nutzt; ein Beispielwert könnte seinhttps://raw.githubusercontent.com/nexmo-community/ncco-examples/gh-pages/text-to-speech.json.Die
PRIVATE_KEY_PATHist der Pfad derprivate.keyDatei, die wir zuvor heruntergeladen haben, als wir das Paar öffentlicher/privater Schlüssel für die API-Authentifizierung generiert haben.
Implementierung des serverseitigen Codes
In Ihrer index.js Dateistarten Sie das Projekt, indem Sie die erforderlichen Module importieren. Sie richten Express ein, um eingehende HTTP-Anfragen zu verarbeiten, und konfigurieren den Vonage-Client mit den in Ihren Umgebungsvariablen gespeicherten Anmeldedaten:
// Import dependencies
require('dotenv').config();
const express = require('express');
const { Vonage } = require('@vonage/server-sdk');
const app = express();
// Middleware for parsing incoming requests
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
// Initialize Vonage API client with environment variables
const vonage = new Vonage({
apiKey: process.env.VONAGE_KEY,
apiSecret: process.env.VONAGE_SECRET,
applicationId: process.env.VONAGE_APPLICATION_ID,
privateKey: process.env.PRIVATE_KEY_PATH
}); Eingehende SMS-Nachrichten bearbeiten
Der Server wartet auf den Eingang neuer SMS-Nachrichten. Wenn der Server eine neue SMS-Nachricht erhält, tätigt er einen ausgehenden Anruf an die Telefonnummer, die die SMS-Nachricht gesendet hat. Dies ist im Code des Servers enthalten /inbound Teil.
// Route to handle inbound SMS
app.post('/inbound', (req, res) => {
const { from } = req.body;
const requesterNumber = from;
// Function to trigger an outbound call
triggerOutboundCall(requesterNumber);
res.status(200).end();
});
// Server listens to a specified port
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`App listening on port ${PORT}`));
Ausgehender Anruf ohne NCCO
Wenn Sie einen ausgehenden Anruf mit einer aufgezeichneten Nachricht tätigen müssen, können Sie den Anruf ohne Angabe eines NCCO. Mit der Voice API können Sie direkt einen ausgehenden Anruf einleiten und dem Empfänger eine Audiodatei vorspielen, ohne eine erweiterte Anrufsteuerungslogik zu konfigurieren.
function triggerOutboundCall(requesterNumber) {
const ANSWER_URL = process.env.ANSWER_URL; // URL to NCCO JSON
vonage.voice.createOutboundCall({
to: [{ type: type: 'phone', number: requesterNumber }],
from: { type: 'phone', number: process.env.FROM_IMPORTANT_FRIEND },
answer_url: [ANSWER_URL]
}, handleResponse);
}
function handleResponse(err, resp) {
if (err) console.error(err);
else console.log(resp);
}In diesem Fall, ANSWER_URL auf eine JSON-Datei, die den Anrufablauf vorgibt. Zum Beispiel:
[
{
"action": "talk",
"voiceName": "Amy",
"text": "There's an urgent need for you elsewhere. Please excuse yourself."
}
] Ausgehender Anruf bei NCCO
Für ein maßgeschneidertes Anruferlebnis bietet NCCO mehr Flexibilität. Dies ist besonders nützlich für dynamische Anrufströme.
async function makeCallWithNCCO(requesterNumber) {
const ncco = [
{
"action": "talk",
"voiceName": "Amy",
"text": "Hey, sorry to bother you, but I need your help; an urgent unforeseen circumstance has happened."
}
];
try {
const resp = await vonage.calls.create({
to: [{ type: 'phone', requesterNumber }],
from: { type: 'phone', number: process.env.FROM_IMPORTANT_FRIEND },
ncco
});
console.log(resp);
} catch (err) {
console.error(err);
}
}Diese Funktion makeCallWithNCCO erstellt dynamisch den Anrufablauf auf der Grundlage der NCCO-Spezifikationen.
In diesem Beispiel enthält die Variable ncco Variable ein Array von Aktionen zur Steuerung des Aufrufs enthalten. Die talk Aktion liest eine Nachricht, wenn der Anruf entgegengenommen wird.
Schritte zur Ausführung der Anwendung
Stellen Sie sicher, dass
.envüber alle Berechtigungsnachweise verfügt.Starten Sie den Server, indem Sie den
node index.jsBefehl.Senden Sie eine SMS-Nachricht an Ihre virtuelle Nummer, um den Geisteranruf auszulösen!
Die App wird einen Anruf mit der von Ihnen gewählten Methode tätigen - machen Sie sich bereit, einen Grund zu haben, die Situation zu verlassen, in der Sie nicht sein wollten!
Schlussfolgerung
Heute haben Sie gelernt, wie Sie persönliche Bequemlichkeit vermeiden können. Indem Sie eine SMS-Nachricht senden, können Sie einen Anruf auslösen, der einen plausiblen Grund liefert, um aus der Situation herauszukommen, in der Sie nicht sein wollen, indem Sie JavaScript, Node.js und die Vonage Voice API verwenden.
Der Code dieses Der Code des Projekts ist auf GitHub.
Beteiligen Sie sich an der Diskussion und teilen Sie Ihre Erkenntnisse mit uns in der Vonage Entwickler-Community auf Slack oder folgen Sie uns auf X, früher bekannt als Twitter!