ボイスメール

はじめに

について Vonage Voice API は、クラウドで高品質の音声アプリケーションを構築する最も簡単な方法です。このガイドでは、.NETとVonage Voice APIを使って着信コールの音声を録音する方法を学びます。

このガイドでは、その方法をステップ・バイ・ステップで説明しています:

  1. Vonageアカウントの設定
  2. Vonageアプリケーションの作成
  3. Vonageアプリケーションの設定
  4. ASP.NET Coreアプリケーションの作成
  5. Vonageパッケージを追加する
  6. 電話を受け、録音する
  7. Vonageから録音を取得する

前提条件

このガイドをお読みいただく前に、いくつかの前提条件があります。そのうちのどれかをすでに完了している場合は、そのステップをスキップしてください。

Vonageアカウントの作成

でVonageアカウントを作成できます。 ダッシュボード.ダッシュボードでは、アプリケーションの作成やVonage Numbersの購入ができます。また Vonage CLI.

Vonage CLIをインストールする

について Vonage CLI を使えば、コマンドラインで多くの操作を実行できる。アプリケーションの作成、Numbersの購入、Numbersとアプリケーションのリンクなどがアプリケーションに含まれる。

CLIをNPMでインストールするには、以下を実行する:

npm install --location=global @vonage/cli

Vonage API KeyとAPI Secretを使用するようにVonage CLIを設定します。これらは 設定ページ ダッシュボードの

ターミナルで以下のコマンドを実行する。 API_KEY そして API_SECRET 自分のものと一緒に:

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

ングロックの運営方法

あなたのWebhookは、公共のインターネットを介してVonageのAPIにアクセスできるようにする必要があります。開発中に独自のサーバを立ち上げることなくこれを実現する簡単な方法は ングロク.もっと詳しく知りたい方は、 Ngrokに関するドキュメントを読む.

ngrokをダウンロードしてインストールし、以下のコマンドを実行して、ポート3000のアプリケーションをパブリック・インターネットに公開する:

./ngrok http 3000

もしあなたが有料会員なら、このように入力できる:

./ngrok http 3000 -subdomain=your_domain

注: この例では、Ngrok は Vonage アプリケーションを作成したときに指定した Vonage ウェブフックを次のように転送します。 localhost:3000.ここでは3000番ポートを示しているが、都合の良い空いているポートを使うことができる。

音声アプリケーションの作成

Voiceアプリケーションを作成するには、2つの方法があります:

  1. Vonage CLIの使用
  2. ダッシュボードの使用

それぞれの方法については、以下のセクションで説明する。

Vonage CLIを使用して音声アプリケーションを作成する方法

Vonage CLIを使用してアプリケーションを作成するには、以下のコマンドをシェルに置き換えて入力します。 NGROK_HOST_NAME を、ngrok をセットアップしたときに取得した ngrok ホストと置き換えます:

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

このコマンドは、音声付きVonageアプリケーションを作成します。 能力.アプリケーションにアンサーとイベントのウェブフックURLを設定し、秘密鍵ファイルを生成します。 private.keyプロジェクト・ディレクトリに保存してください。

コマンドは一意のアプリケーションIDを返します。このアプリケーションIDを使用して、以下を実行し、Vonageバーチャル番号をアプリケーションにリンクします:

vonage apps:link APPLICATION_ID --number=VONAGE_NUMBER

これにより、Vonage Virtual Numberがお客様のアプリケーションにリンクされ、その番号で発生するすべての音声イベントがお客様の指定したURLにルーティングされます。

ダッシュボードを使用して音声アプリケーションを作成する方法

で音声アプリケーションを作成できます。 ダッシュボード.

ダッシュボードを使用してアプリケーションを作成します:

  1. アンダー Applications をクリックします。 新規アプリケーションの作成 ボタンをクリックする。

  2. アンダー 名称アプリケーション名を入力します。後で参照しやすいように名前を決めてください。

  3. ボタンをクリックする 公開鍵と秘密鍵の生成.これで公開鍵と秘密鍵のペアが作成され、ブラウザから秘密鍵がダウンロードされます。生成された秘密鍵を保存します。

  4. アンダー 能力 を選択する。 ボタンをクリックする。

  5. の中で 回答URL ボックスに、着信コールのWebhookのURLを入力します、 http://example.com/webhooks/answer.

  6. の中で イベントURL ボックスに、コール・ステータスWebhookのURLを入力します、 http://example.com/webhooks/events.

  7. をクリックする。 新規アプリケーションの作成 ボタンをクリックする。

  8. アプリケーションの作成手順の次のステップに進み、Vonage番号をアプリケーションにリンクさせます。

これでアプリケーションの作成は完了です。

注: アプリケーションをテストする前に、Webhookが設定され、Webhookサーバーが動作していることを確認してください。

音声プロジェクトファイルの作成

まず、Voiceを作成します。 csproj ファイルを使用してください。テストを容易にするために、HTTPS を無効にして Kestrel を構成してください。

ターミナルで以下のコマンドを実行する:

dotnet new mvc --no-https -n VonageVoice

Vonageパッケージのインストール

Vonage NuGet パッケージをインストールするには、ディレクトリを VonageVoice リポジトリを開き、以下のコマンドを実行する:

dotnet add package Vonage

を開くことができます。 VonageVoice.csproj ファイルを作成する。

:このガイドでは、Visual Studioを使用していることを前提としています。あるいは VonageVoice フォルダーをVisual Studio Codeや他のエディターで作成する必要があるかもしれない。

音声コントローラーの追加

を右クリックする。 Controllers フォルダを開き、add->Controller を選択します。Add Empty MVC Controller" を選択し、名前を付けます。 VoiceController.

追加 using のステートメント Vonage.Voice, Vonage.Voice.Nccos, Vonage.Voice.Nccos.Endpoints, Vonage.Requestそして Microsoft.Extensions.Configuration このファイルの一番上にある

インジェクト構成

を注入する。 IConfiguration オブジェクトをコンストラクタ経由で生成する:

private readonly IConfiguration _config { get; set; }

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

留守番電話応答ルートの追加

にルートを追加する。 VoiceController にある。これは /webhooks/answer を返す。 エヌシーシーオー を持つ。 record アクションを実行し、Vonageに通話の録音を開始するよう指示します。

また、別のウェブフックのURLを指定する必要があります。 /webhooks/recording - このWebhookは、録画がダウンロード可能になったときにVonageがリクエストするものです。次のステップでこのWebhookをコーディングします。

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

録音ルートの追加

通話の録音が終了すると、Vonageは、次の手順で設定したWebhook URLにリクエストを送信します。 record アクションを実行します。このリクエストにはオーディオファイルをダウンロードできるURLが含まれます。

このガイドでは GetRecording APIを使用して録画をローカル・マシンにダウンロードする:

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

ASP.NETアプリの設定

あなたの店を開く appsettings.json ファイルに以下の2つのフィールドを追加する:

  • APPLICATION_ID:Voice APIアプリケーション固有の識別子。
  • PRIVATE_KEY_PATH:Applicationsの場所。 private.key ファイル。

アプリの実行

コンソールで csproj ディレクトリでコマンドを実行する。 dotnet run --urls=http://localhost:3000.これでアプリケーションは http://localhost:3000.そのURLをブラウザで開いてください。

次はどうする?

Vonage Voice APIの機能の詳細をご覧ください: