Boîte vocale

Introduction

Les Vonage Voice API est le moyen le plus simple de créer des applications vocales de haute qualité dans le Cloud. Dans ce guide, vous apprendrez à enregistrer l'audio des appels entrants à l'aide de .NET et de l'API Voice de Vonage.

Ce guide fournit des instructions pas à pas vous montrant comment.. :

  1. Créer un compte Vonage
  2. Créer une application Vonage
  3. Configurer une application Vonage
  4. Créer une application ASP.NET Core
  5. Ajoutez-y le paquet Vonage
  6. Recevoir un appel et l'enregistrer
  7. Récupérer l'enregistrement auprès de Vonage

Conditions préalables

Il y a quelques conditions préalables à remplir avant de pouvoir lire ce guide. Si vous avez déjà rempli l'une d'entre elles, n'hésitez pas à sauter cette étape.

Créer un Account Vonage

Vous pouvez créer un compte Vonage via le site Web de Tableau de bord. Dans le tableau de bord, vous pouvez créer des Applications et acheter des numéros Vonage. Vous pouvez également effectuer ces tâches à l'aide de la fonction CLI Vonage.

Installer le CLI de Vonage

Les CLI Vonage vous permet d'effectuer de nombreuses opérations sur la ligne de commande. Il s'agit par exemple de créer des applications, d'acheter des numéros et de lier un numéro à une application.

Pour installer le CLI avec NPM, exécutez :

npm install --location=global @vonage/cli

Configurez l'interface de programmation de Vonage pour qu'elle utilise votre clé et votre secret d'API. Vous pouvez les obtenir à partir de la page page des paramètres dans le tableau de bord.

Exécutez la commande suivante dans un terminal, en remplaçant API_KEY et API_SECRET avec les vôtres :

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

Comment gérer Ngrok

Vous devez rendre votre webhook accessible aux API de Vonage sur l'Internet public. Une façon simple d'y parvenir pendant le développement sans avoir à installer votre propre serveur est d'utiliser la fonction Ngrok. Pour en savoir plus, lire notre documentation sur Ngrok.

Téléchargez et installez ngrok, puis exécutez la commande suivante pour exposer votre application sur le port 3000 à l'internet public :

./ngrok http 3000

Si vous êtes un abonné payant, vous pouvez taper :

./ngrok http 3000 -subdomain=your_domain

NOTE : Dans cet exemple, Ngrok va détourner les webhooks de Vonage que vous avez spécifiés lors de la création de votre application Vonage vers localhost:3000. Bien que le port 3000 soit indiqué ici, vous pouvez utiliser n'importe quel port libre qui vous convient.

Créer une application vocale

Il existe deux méthodes pour créer une application vocale :

  1. Utilisation de la CLI de Vonage
  2. Utilisation du tableau de bord

Chacune de ces méthodes est décrite dans les sections suivantes.

Comment créer une application vocale à l'aide du CLI de Vonage

Pour créer votre application à l'aide de la CLI de Vonage, entrez la commande suivante dans l'interpréteur de commandes en remplacement de NGROK_HOST_NAME avec l'hôte ngrok que vous avez obtenu lors de l'installation de ngrok :

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

Cette commande crée une Application Vonage avec Voice capacité. Il configure l'Application avec vos URL de réponse et de webhook d'événement et génère un fichier de clé privée private.keyque vous devez enregistrer dans le répertoire de votre projet.

La commande renvoie un numéro d'identification d'application unique. Utilisez cet ID d'application pour lier votre numéro virtuel Vonage à votre Applications en exécutant ce qui suit :

vonage apps:link APPLICATION_ID --number=VONAGE_NUMBER

Cela permettra de lier ce numéro virtuel Vonage à votre application, ce qui fera que tous les événements vocaux se produisant pour ce numéro seront acheminés vers vos URLs désignées.

Comment créer une application vocale à l'aide du tableau de bord

Vous pouvez créer des Applications vocales dans l'application Tableau de bord.

Pour créer votre application à l'aide du tableau de bord :

  1. Sous Applications dans le tableau de bord, cliquez sur le bouton Créer une nouvelle application bouton.

  2. Sous Nom, saisissez le nom de l'Applications. Choisissez un nom pour faciliter les références futures.

  3. Cliquez sur le bouton Générer une clé publique et une clé privée. Cela créera une paire de clés publique/privée et la clé privée sera téléchargée par votre navigateur. Enregistrez la clé privée qui a été générée.

  4. Sous Capacités sélectionner le Voix bouton.

  5. Dans le cadre de la Réponse URL entrez l'URL de votre webhook d'appels entrants, par exemple, http://example.com/webhooks/answer.

  6. Dans le cadre de la URL de l'événement entrez l'URL de votre webhook d'état d'appel, par exemple, http://example.com/webhooks/events.

  7. Cliquez sur le bouton Générer une nouvelle application bouton.

  8. Vous passez à l'étape suivante de la procédure de création d'une application, où vous devez associer votre numéro Vonage à l'application.

Vous avez maintenant créé votre application.

NOTE : Avant de tester votre application, assurez-vous que vos webhooks sont configurés et que votre serveur webhook fonctionne.

Créer le fichier de projet vocal

Pour commencer, vous allez créer un Voice csproj fichier. Pour faciliter les tests, configurez Kestrel en désactivant HTTPS.

Dans votre terminal, exécutez la commande suivante :

dotnet new mvc --no-https -n VonageVoice

Installer le forfait Vonage

Pour installer le paquet NuGet de Vonage, changez de répertoire dans le répertoire VonageVoice et exécutez la commande suivante :

dotnet add package Vonage

Vous pouvez maintenant ouvrir le VonageVoice.csproj dans Visual Studio.

Note: Ce guide suppose que vous utilisez Visual Studio. Vous pouvez également ouvrir le fichier VonageVoice dans Visual Studio Code ou dans un autre éditeur, mais vous devrez peut-être créer une partie de l'échafaudage que Visual Studio génère pour vous.

Ajouter un contrôleur vocal

Cliquez avec le bouton droit de la souris sur l'icône Controllers et sélectionnez add->Controller. Sélectionnez "Add Empty MVC Controller" et nommez-le VoiceController.

Ajouter using déclarations pour Vonage.Voice, Vonage.Voice.Nccos, Vonage.Voice.Nccos.Endpoints, Vonage.Requestet Microsoft.Extensions.Configuration au début de ce fichier.

Configuration de l'injection

Injecter une dépendance IConfiguration via le constructeur :

private readonly IConfiguration _config { get; set; }

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

Ajouter un itinéraire de réponse à la messagerie vocale

Ajouter un itinéraire à votre VoiceController pour traiter l'appel entrant. Il sera situé à l'adresse suivante /webhooks/answer et renvoie un BCN avec un record qui demande à Vonage de commencer à enregistrer l'appel.

Vous devez également spécifier l'URL d'un autre webhook - /webhooks/recording - à laquelle Vonage adressera une demande lorsque l'enregistrement sera prêt à être téléchargé. Vous coderez ce webhook à l'étape suivante.

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

Ajouter une route d'enregistrement

Une fois l'enregistrement de l'appel terminé, Vonage enverra une demande à l'URL du webhook que vous avez configuré dans l'onglet record dans votre BCN. Cette demande contiendra l'URL à partir de laquelle vous pourrez télécharger le fichier audio.

Dans ce guide, vous utiliserez la fonction GetRecording pour télécharger l'enregistrement sur votre machine locale :

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

Configurer l'application ASP.NET

Ouvrez votre appsettings.json et y ajouter les deux champs suivants :

  • APPLICATION_ID: L'identifiant unique de votre Voice API Application.
  • PRIVATE_KEY_PATH: L'emplacement de la page d'accueil de l'application. private.key fichier.

Exécuter votre application

Dans votre console, accédez à la page csproj et exécutez la commande dotnet run --urls=http://localhost:3000. Ceci lancera l'application sur http://localhost:3000. Ouvrez cette URL dans votre navigateur.

Quelle est la prochaine étape ?

Découvrez les capacités de l'API Voice de Vonage :