You are viewing the Japanese site, but your language preference is set to English. Switch to English site →

Menu

Expand
このページを評価:

C#/.NET向けProgrammable Voiceクイックスタート

必要なものはコード数行のみ。Twilio Programmable Voiceを使用し、.NETアプリケーションから通話の発着信を行うことができます。

このクイックスタートでは、REST APITwilio C#/.NETヘルパーライブラリーASP.NETフレームワークを使用し、簡単に開発する方法を説明します。

このクイックスタートでは、以下について説明します。

  1. Twilioにサインアップし、音声対応のTwilioの電話番号を初めて取得する
  2. 開発環境を設定し、通話の発着信を行う
  3. MP3を再生する通話を発信する
  4. 通話の着信・応答時に、Text to Speechを使用し発信側に対しメッセージを読み上げる

ビデオもご用意しています。C#により通話の発着信を行う方法(YouTube)をご覧ください。

どうなるか確認しましょう

Twilioにサインアップし、Twilioの電話番号を取得する

Twilioアカウント、音声対応のTwilio電話番号をすでにお持ちの場合は、ログインし、次のステップに進んでください。

C#から電話をかけるには、Twilioアカウントが必要です。ここでサインアップし、無料トライアルアカウントを取得するか、すでにお持ちのアカウントにログインします。

次に、音声対応のTwilioの電話番号を用意します。音声通話機能付きのTwilio電話番号をお持ちではない場合は、ご購入いただく必要があります。 [Buy a Number](番号を購入する)ページに移動し、[Voice]ボックスをチェックし、[Search](検索)をクリックします。

使用可能な電話番号とその機能のリストが表示されます。好みの番号を探し、[Buy](購入)をクリックし、アカウントに追加します。

これでTwilioアカウントとプログラム可能な電話番号が揃い、通話に必要な基本ツールが準備できました(日本の場合、Regulatory Bundleが必須です)。

TwilioのHTTP APIを使用し、電話をかけることもできますが、Twilioの公式C#/.NETヘルパーライブラリーを使用することにより、作業がさらに簡単になります。インストール方法を説明します。

OKです。セットアップの手順を確認します。

.NETとTwilio .NETパッケージをインストールする

他のC#/.NETのクイックスタートのいずれかをすでに終えており、.NETとTwilio .NETヘルパーライブラリーがインストールされている場合には、このステップを省略し、最初の通話に進むことができます。

Twilioを使用した最初の通話には、.NETとTwilio .NETパッケージがインストールされている必要があります。

Visual Studioまたは.NET Coreをインストールする

Visual Studioがインストールされている場合は、すぐに続行できます。Visual Studio以外のエディターで.NET Coreを使用する場合は、ターミナルを開いて次のコマンドを実行することにより、マシンに.NET Coreがすでにインストールされているかを確認できます。

dotnet --version

次のように表示されます:

$ dotnet --version
2.1.4

.NET Coreがまだインストールされておらず、Visual Studioを使用しない場合は、Microsoftから.NET Coreをダウンロードできます。

Twilio .NETパッケージは、.NET Framework 3.5以降と、.NET Standard 1.4に対応しているすべてのフレームワークをサポートしています。

Twilio .NETパッケージをインストールする

ライブラリーをインストールする最も簡単な方法は、NuGet(.NETパッケージマネージャー)を使用することです。必要なライブラリーを選びインストールできます。

Visual Studio

Visual Studioを使用している場合は、[File](ファイル)メニューから[New](新規作成)>[Project](プロジェクト)>[Console App](コンソールアプリ)の順に選択します(.NET Coreまたは.NET Frameworkのいずれかが機能します)。

Visual Studio New Console App

次に、Visual Studioのメインメニューから[Tools](ツール)>[NuGet Package Manager](NuGetパッケージマネージャー)>[Package Manager Console](パッケージマネージャーコンソール)を選択し、次のコマンドを入力します。

Install-Package Twilio
.NET Coreコマンドライン

dotnetコマンドラインツールを使用している場合は、次のコマンドを実行し新しい.NETプロジェクトを作成します。

mkdir twilio-test
cd twilio-test
dotnet new console
dotnet add package Twilio
完了です。電話をかけてみましょう。

C#を使用し通話を発信する

.NETとTwilio .NETライブラリーがインストールされたため、APIリクエストを一回送るだけで、購入したばかりのTwilioの電話番号から通話を発信できます。Program.csという新しいプロジェクトのファイルを開き、次のコードサンプルを入力または貼り付けて、すでに存在するテンプレートコードを置き換えます。

        
        
        

        このコードにより、引数として渡される2つの電話番号の間で音声通話が開始します。「from」番号はTwilioの番号であり、「to」番号は通話相手の番号です。

        URL引数はTwiML(Twilio Markup Language)を提示します。TwiMLは、受信者が応答した際に、Twilioが何をすべきか伝える役割を持ちます。このTwiMLにより、Text To Speech機能を通じメッセージを読み込み、MP3を再生するようにTwilioに指示します。

        このコードを機能させる前に、自分のTwilioアカウントで動作するように少し編集する必要があります。

        プレースホルダの認証情報値を置き換える

        accountSidauthTokenのプレースホルダ値を、ご自身のTwilio認証情報に置き換えます。https://www.twilio.com/consoleに移動し、ログインします。このページでは、お客様固有のアカウントSIDと認証トークンを確認できます。この作業は、今回のようにTwilio Clientによりメッセージを送信する際に必要となります。「目」のアイコンをクリックすると、Auth Tokenが表示されます。

        Program.csを編集しaccountSidauthTokenの値を一意の値に置き換えます。

        注意: 最初は認証情報を直接コードに埋め込んでも問題ありませんが、本番環境にデプロイするまでには、必ず設定を使用し、認証情報を保護してください。ASP.NETアプリケーションは、.NET FrameworkまたはASP.NET Core上のASP.NET向けの組み込み設定システムを使用します。他の種類の.NETアプリケーションでは、環境変数を使用できます。

        tofromの電話番号を置き換える

        数分前に購入した音声対応の電話番号を覚えていますか。入力されているfromの番号を、その番号に置き換えます。必ずE.164形式を使用してください。

        [+][国コード][エリアコードを含む電話番号]

        次に、toの電話番号をご自身の携帯電話番号に置き換えます。通話を受信できる電話番号であればどの番号でも構いませんが、プロセスを実際に体験するために、ご自身の番号を使用することをお勧めします。上記のように、この値にはE.164形式を使用します。

        変更を保存し、Visual Studioまたはターミナルから次のコードを実行します。

        dotnet run

        これで完了です。Twilioの番号から電話がかかり、携帯電話が鳴ります。応答すると短いメッセージが聞こえます。😉

        Twilioのトライアルアカウントを使用している場合、Twilioにより確認された番号のみに通話を発信できます。電話番号は、Twilio Consoleの認証済み発信者IDにより認証できます。その他のトライアルアカウントの制限については、無料のTwilioトライアルアカウントでの作業方法に関するガイドをご覧ください。

        電話をかけました!メッセージを受け取る方法を教えてください。

        着信通話のためにASP.NET MVCを設定する

        お使いのTwilio電話番号に着信があると、Twilioはお使いのサーバーにHTTPリクエストを送信します。このコールバックメカニズムは、Webhookと呼ばれています。 Twilioがアプリケーションにリクエストを送信すると、Twilioは、メッセージへの応答方法を説明する応答をTwiML XML形式で受け付けます。.NET Framework 4.6.1向けASP.NET MVCを使用し、C#で構築する方法を見てみましょう。ASP.NET Coreを使用する場合は、こちらの記事をご覧ください。また、ASP.NET Web APIを使用する場合は、こちらの記事をご覧ください

        Visual Studioで新しいASP.NET MVCプロジェクトを作成する

        Visual Studioの[File](ファイル)メニューから[New](新規作成)>[Project](プロジェクト)>[ASP.NET Web Application (.NET Framework)(ASP.NET Webアプリケーション(.NET Framework))]の順に選択します。

        Visual Studio New ASP.NET Web Application (.NET Framework)

        次に、「MVC」テンプレートを選択します。

        Visual Studio New ASP.NET Web Application (.NET Framework) - MVC

        Twilio.AspNet.Mvcパッケージをインストールする

        Visual Studioのメインメニューから[Tools](ツール)>[NuGet Package Manager](NuGetパッケージマネージャー)>[Package Manager Console](パッケージマネージャーコンソール)を選択し、次のコマンドを入力します。

        Install-Package Twilio.AspNet.Mvc -DependencyVersion HighestMinor

        新規コントローラーを作成する

        Controllersというディレクトリに、VoiceController.csという新規コントローラーを作成し、次のコードを使用することにより、着信通話を処理できるサーバーを作成します。

              
              
              

              Visual Studioからプロジェクトを実行します。localhostで実行されているASP.NET MVCのホームページとランダムなポート番号が表示されます。

              Visual Studio New ASP.NET Web Application - Home page

              アプリケーションをインターネット経由でアクセスできるようにする必要があります。アプリケーションが通話を着信できるように、次の設定を行います。

              通話を受信するようにアプリを設定しましょう。

              ngrokを使用し、TwilioをASP.NETアプリケーションと通信させる

              着信通話を受け付けるための小規模のASP.NET MVCアプリケーションを構築しました。これが機能するには、Twilioがアプリケーションにアクセスできるようにする必要があります。

              大半のTwilioサービスは、Webhookを使用することによりアプリケーションと通信します。例えば、Twilioが通話を受けると、メッセージの処理方法の指示を受けるためにアプリケーションを使用しURLに接続します。

              自分の開発環境にあるASP.NETアプリケーションの作業をしている場合、そのコンピューター上の他のプログラムからしかアプリにアクセスできません。つまり、Twilioからはアクセスできません。インターネットでアプリケーションにアクセスできるようにし、この問題を解決する必要があります。

              アプリケーションをAzureやAWSにデプロイするなど、方法はいくつかありますが、Twilioアプリケーションのテストには手間の少ない方法を採用します。インターネットでアプリケーションに簡単にアクセスできるようにするためには、ngrokというツールをお勧めしますngrokは、ローカルWebサーバーが実行されているのと同じポートでリッスンし、ngrok.ioドメインで一意のURLを指定し、着信リクエストをローカルの開発環境に転送します。以下のように機能します。

              How ngrok helps Twilio reach your local server

              まだインストールしていない場合は、Visual Studio向けngrok拡張機能をインストールします。ngrokの活用方法などの詳細については、こちらの詳細なブログ記事をご覧ください。

              Visual Studio拡張機能をインストールした後、Visual Studioを再起動し、プロジェクトを再度開く必要があります。もう一度プロジェクトを起動し、ホームページを表示します。次に、プロジェクトが実行されている間に、[ツール](Tools)メニューから[Start ngrok Tunnel](ngrokトンネルを起動)を選択します。

              Ngrok Extensions for Visual Studio

              Ngrok Extensions for Visual Studio - running

              これで、新しい外部URLができました。

              Webhook URLを設定する

              Twilioが参照する場所を認識できるように、新しい通話を受けるたびに、Webhook URLを呼び出すよう、Twilioの電話番号を設定します。

              1. twilio.comにログインし、Consoleの[Numbers](番号)ページに移動します。
              2. 音声対応の電話番号をクリックします。
              3. [Voice & Fax](音声とファックス)セクションを探します。デフォルトの[Configure With](設定方法)選択項目には、[Webhooks]、[TwiML Bins]など、必要なものを設定します。
              4. [A CALL COMES IN](次で通話を受信)セクションで、[Webhook]を選択し、URLを貼り付けます。上記のクイックスタート手順では、次のようになります。https://354f5b25.ngrok.io/voice - 最後に必ず/voiceを追加してください。これは、VoiceControllerクラスへのルートになります。

              Voice Webhook ngrok/voice

              変更内容を保存すると、準備完了です。

              アプリケーションをテストする

              Visual Studioでプロジェクトを実行していること、そしてngrokトンネルが実行されていることを確認してください。ngrokを再起動した場合は、正しいURLを使用するようにコンソールでWebhookを更新する必要があります。

              これらの両方が実行されている状態のまま、新しいASP.NET音声アプリケーションをテストします。

              自分の携帯電話から、自分のTwilio電話番号に電話をかけます。ngrokコンソールにHTTPリクエストが表示されます。ASP.NETアプリは着信リクエストを処理し、TwiMLで応答します。通話が接続されると、メッセージが聞こえます

              うまくいきました!完了 - 次のステップ

              次のステップ

              C#を使用した通話の発着信に関する基本が理解できました。

              ここでASP.NETアプリは、TwiML動詞<Say>のみを使用し、音声合成機能により発信者に向けてメッセージを読み上げましたが、<Record><Gather><Conference>などのTwiML動詞を使用し、他にもさまざまな機能を実行できます。

              詳細については、以下のページをご覧ください。

              コミュニケーションの未来を構築。

              このページを評価:

              サポートが必要ですか?

              コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。

                    
                    
                    

                    フィードバックいただき、ありがとうございました。

                    フィードバックいただいた理由を選択してください。その他、ご意見をいただければ、今後のドキュメントの改善に役立てさせていただきます。

                    フィードバックを送信中...
                    🎉 フィードバックいただき、ありがとうございました。
                    何らかの問題が発生しました。もう一度試してください。

                    フィードバックいただき、ありがとうございました。

                    Twilioを紹介して$10ゲットしてください。次の3ステップです。

                    ステップ1

                    リンクの取得

                    無料の個人用紹介リンクをこちらから取得してください

                    ステップ2

                    $10受け取るには

                    あなたの顧客がサインアップし、リンクからアップグレードすると、プレゼントします

                    ステップ3

                    $10ゲット

                    1,250通の無料SMS
                    または、1,000分の無料音声通話
                    または、12,000チャット
                    そのほか