Voicemail

Einführung

Die Vonage Voice API ist der einfachste Weg, hochwertige Voice Applications in der Cloud zu erstellen. In dieser Anleitung erfahren Sie, wie Sie mit .NET und der Vonage Voice API Audio von eingehenden Anrufen aufzeichnen können.

Dieser Leitfaden enthält eine Schritt-für-Schritt-Anleitung, die Ihnen zeigt, wie Sie vorgehen:

  1. Einen Vonage Account einrichten
  2. Erstellen einer Vonage-Applikation
  3. Konfigurieren einer Vonage-Applikation
  4. Erstellen einer ASP.NET Core-Anwendung
  5. Fügen Sie das Vonage-Paket hinzu
  6. Anrufe entgegennehmen und aufzeichnen
  7. Abrufen der Aufzeichnung von Vonage

Voraussetzungen

Es gibt ein paar Voraussetzungen, die Sie erfüllen müssen, bevor Sie diesen Leitfaden durcharbeiten können. Wenn Sie eine davon bereits erfüllt haben, können Sie diesen Schritt überspringen.

Vonage Account erstellen

Sie können einen Vonage Account über den Dashboard. Über das Dashboard können Sie Applications erstellen und Vonage Numbers erwerben. Sie können diese Aufgaben auch über die Vonage CLI.

Installieren Sie die Vonage CLI

Die Vonage CLI ermöglicht es Ihnen, viele Vorgänge über die Befehlszeile auszuführen. Beispiele sind die Erstellung von Applications, der Kauf von Numbers und die Verknüpfung einer Number mit einer Application.

Um die CLI mit NPM zu installieren, führen Sie aus:

npm install --location=global @vonage/cli

Richten Sie die Vonage CLI so ein, dass sie Ihren Vonage API-Schlüssel und Ihr API-Geheimnis verwendet. Sie erhalten diese von der Seite Einstellungsseite auf dem Dashboard.

Führen Sie den folgenden Befehl in einem Terminal aus und ersetzen Sie dabei API_KEY und API_SECRET mit Ihrem eigenen:

vonage config:set --apiKey=API_KEY --apiSecret=API_SECRET

Wie man Ngrok betreibt

Sie müssen Ihren Webhook über das öffentliche Internet für die APIs von Vonage zugänglich machen. Eine einfache Möglichkeit, dies während der Entwicklung zu erreichen, ohne einen eigenen Server einzurichten, ist die Verwendung von Ngrok. Um mehr zu erfahren, Lesen Sie unsere Dokumentation über Ngrok.

Laden Sie ngrok herunter und installieren Sie es. Führen Sie dann den folgenden Befehl aus, um Ihre Anwendung auf Port 3000 für das öffentliche Internet freizugeben:

./ngrok http 3000

Wenn Sie ein kostenpflichtiges Abonnement haben, können Sie das eingeben:

./ngrok http 3000 -subdomain=your_domain

HINWEIS: In diesem Beispiel leitet Ngrok die Vonage-Webhooks, die Sie beim Erstellen Ihrer Vonage-Anwendung angegeben haben, an localhost:3000. Obwohl hier der Port 3000 gezeigt wird, können Sie jeden freien Port verwenden, der für Sie geeignet ist.

Erstellen einer Sprachanwendung

Es gibt zwei Methoden zur Erstellung einer Sprachanwendung:

  1. Verwenden der Vonage CLI
  2. Verwendung des Dashboards

Jede dieser Methoden wird in den folgenden Abschnitten beschrieben.

So erstellen Sie eine Sprachanwendung mit der Vonage CLI

Um Ihre Anwendung mit der Vonage CLI zu erstellen, geben Sie den folgenden Befehl in die Shell ein und ersetzen ihn durch NGROK_HOST_NAME mit dem ngrok-Host, den Sie beim Einrichten von ngrok erhalten haben:

vonage apps:create "AspNetTestApp" --voice_answer_url=http://NGROK_HOST_NAME/webhooks/answer --voice_event_url=http://NGROK_HOST_NAME/webhooks/events

Dieser Befehl erstellt eine Vonage Application mit Voice Fähigkeit. Es konfiguriert die Applications mit Ihren Antwort- und Ereignis-Webhook-URLs und generiert eine private Schlüsseldatei private.key, die Sie in Ihrem Projektverzeichnis speichern sollten.

Der Befehl gibt eine eindeutige Application ID zurück. Verwenden Sie diese Anwendungs-ID, um Ihre virtuelle Vonage-Nummer mit Ihrer Applikation zu verknüpfen, indem Sie Folgendes ausführen:

vonage apps:link APPLICATION_ID --number=VONAGE_NUMBER

Dadurch wird die virtuelle Number von Vonage mit Ihrer Anwendung verknüpft, was dazu führt, dass alle Sprachereignisse, die für diese Number auftreten, an die von Ihnen festgelegten URLs weitergeleitet werden.

So erstellen Sie eine Sprachanwendung mit dem Dashboard

Sie können Sprachanwendungen in der Dashboard.

So erstellen Sie Ihre Anwendung über das Dashboard:

  1. Unter Applications im Dashboard, klicken Sie auf die Schaltfläche Erstellen Sie eine neue Anwendung Taste.

  2. Unter Namegeben Sie den Namen der Applikation ein. Wählen Sie einen Namen, damit Sie ihn in Zukunft leichter finden.

  3. Klicken Sie auf die Schaltfläche Öffentlichen und privaten Schlüssel generieren. Dadurch wird ein öffentliches/privates Schlüsselpaar erstellt und der private Schlüssel wird von Ihrem Browser heruntergeladen. Speichern Sie den erzeugten privaten Schlüssel.

  4. Unter Fähigkeiten wählen Sie die Stimme Taste.

  5. In der Antwort-URL geben Sie die URL für den Webhook für eingehende Anrufe ein, zum Beispiel, http://example.com/webhooks/answer.

  6. In der Ereignis-URL geben Sie die URL für Ihren Webhook für den Anrufstatus ein, zum Beispiel, http://example.com/webhooks/events.

  7. Klicken Sie auf die Neue Anwendung generieren Taste.

  8. Sie gelangen nun zum nächsten Schritt des Verfahrens zum Erstellen einer Anwendung, wo Sie Ihre Vonage-Nummer mit der Anwendung verknüpfen müssen.

Sie haben nun Ihre Anwendung erstellt.

HINWEIS: Stellen Sie vor dem Testen Ihrer Anwendung sicher, dass Ihre Webhooks konfiguriert sind und Ihr Webhook-Server läuft.

Erstellen Sie die Sprachprojektdatei

Zu Beginn erstellen Sie eine Voice csproj Datei. Um das Testen zu erleichtern, konfigurieren Sie Kestrel mit deaktiviertem HTTPS.

Führen Sie in Ihrem Terminal den folgenden Befehl aus:

dotnet new mvc --no-https -n VonageVoice

Vonage-Paket installieren

Um das NuGet-Paket von Vonage zu installieren, wechseln Sie in das Verzeichnis VonageVoice Repository und führen Sie den folgenden Befehl aus:

dotnet add package Vonage

Sie können nun die VonageVoice.csproj Datei in Visual Studio.

Hinweis: In dieser Anleitung wird davon ausgegangen, dass Sie Visual Studio verwenden. Alternativ können Sie auch die VonageVoice Ordner in Visual Studio Code oder einem anderen Editor, aber Sie müssen möglicherweise einige der Gerüste erstellen, die Visual Studio für Sie generiert.

Sprachsteuerung hinzufügen

Klicken Sie mit der rechten Maustaste auf das Controllers und wählen Sie add->Controller. Wählen Sie "Add Empty MVC Controller" und benennen Sie ihn VoiceController.

hinzufügen using Aussagen für Vonage.Voice, Vonage.Voice.Nccos, Vonage.Voice.Nccos.Endpoints, Vonage.Requestund Microsoft.Extensions.Configuration am Anfang dieser Datei.

Konfiguration einspeisen

Abhängigkeit injizieren eine IConfiguration Objekt über den Konstruktor:

private readonly IConfiguration _config { get; set; }

public VoiceController(IConfiguration config)
{
    _config = config;
}

Voicemail-Antwort-Route hinzufügen

Fügen Sie eine Route zu Ihrem VoiceController um den eingehenden Anruf zu bearbeiten. Diese befindet sich unter /webhooks/answer und gibt eine NCCO mit einer record Aktion, die Vonage anweist, den Anruf aufzuzeichnen.

Sie müssen auch die URL eines anderen Webhooks angeben - /webhooks/recording - an den Vonage eine Anfrage stellt, wenn die Aufnahme zum Download bereit ist. Sie werden diesen Webhook im nächsten Schritt kodieren.

[HttpGet("/webhooks/answer")]
public string Answer()
{
    var talkAction = new TalkAction
    {
        Text = "Hello, you have reached Steve's number," +
        " he cannot come to the phone right now. " +
        "Please leave a message after the tone."
    };
    var recordAction = new RecordAction
    {
        EndOnSilence = "3",
        BeepStart = "true",
        EventUrl = new[] { $"{Request.Scheme}://{Request.Host}/webhooks/recording" },
        EventMethod = "POST"
    };

    var ncco = new Ncco(talkAction, recordAction);
    return ncco.ToString();
}

Aufzeichnungsroute hinzufügen

Nachdem der Anruf aufgezeichnet wurde, sendet Vonage eine Anfrage an die Webhook-URL, die Sie in der Datei record Aktion in Ihrem NCCO. Diese Anfrage enthält die URL, von der Sie die Audiodatei herunterladen können.

In diesem Leitfaden werden Sie die GetRecording API, um die Aufzeichnung auf Ihren lokalen Rechner herunterzuladen:

[HttpPost("/webhooks/recording")]
public async Task<IActionResult> Recording()
{
    var appId = _config["APPLICATION_ID"];
    var privateKeyPath = _config["PRIVATE_KEY_PATH"];
    var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
    var voiceClient = new VoiceClient(credentials);
    var record = await Vonage.Utility.WebhookParser.ParseWebhookAsync<Record>(Request.Body, Request.ContentType);
    var recording = await voiceClient.GetRecordingAsync(record.RecordingUrl);
    await System.IO.File.WriteAllBytesAsync("your_recording.mp3", recording.ResultStream);
    return StatusCode(204);
}

Konfigurieren Sie die ASP.NET-Anwendung

Öffnen Sie Ihr appsettings.json und fügen Sie ihr die folgenden beiden Felder hinzu:

  • APPLICATION_ID: Der eindeutige Bezeichner Ihrer Voice API Application.
  • PRIVATE_KEY_PATH: Der Ort, an dem sich die Applikation befindet private.key Datei.

Ihre App ausführen

Navigieren Sie in Ihrer Konsole zum Verzeichnis csproj Verzeichnis und führen Sie den Befehl dotnet run --urls=http://localhost:3000. Dies startet die Anwendung auf http://localhost:3000. Öffnen Sie diese URL in Ihrem Browser.

Was kommt als Nächstes?

Erfahren Sie mehr über die Möglichkeiten der Vonage Voice API: