メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

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

Twilio Programmable Voiceを使用すればたった数行のコードで、.NETアプリケーションで通話の発着信ができるようになります。

このクイックスタートでは、開発を容易にするためにTwilioのREST APITwilio C# / .NETヘルパーライブラリー、そしてASP.NETフレームワークを使用してこれを行う方法をお教えします。

このクイックスタートでは、下記のことを学んでいきます:

  1. Twilioにサインアップして、音声通話機能を持ったはじめてのTwilio電話番号を入手する
  2. 通話の発着信を行えるように開発環境をセットアップする
  3. MP3ファイルを再生する通話を発信する
  4. 通話を着信させ、テキストtoスピーチを使用して発信者にメッセージを読み上げる応答を返す

ビデオを見ながらの入門がお好みですか? C#で通話の発着信を行う方法 YouTubeビデオ (英語) をご覧ください。

Show me how it's done!

すでにTwilioアカウントと音声通話機能を持ったTwilio電話番号をお持ちなら、すでに準備万端です!ログインして次のステップまで読み飛ばしてください。

C#で通話を発信できるようになる前に、Twilioアカウントが必要になります。 こちらでサインアップして無料のトライアルアカウントを取得するか、すでにアカウントをお持ちの場合はログインしてください。

The next thing you'll need is a voice-capable Twilio phone number. If you don't currently own a Twilio phone number with voice call functionality, you'll need to purchase one. After navigating to the Buy a Number page, check the "Voice" box and click "Search."

すると、利用可能な電話番号と、その機能の一覧が表示されます。 お好みに合った番号が見つかったら「購入」をクリックすると、それがアカウントに追加されます。

これでTwilioアカウントとプログラマブルな電話番号が手に入ったので、通話の発信に必要な基本ツールが揃ったことになります。

TwilioのHTTP APIを使用して通話を発信できますが、Twilioの公式C# / .NETヘルパーライブラリーを使用してこれをより容易にします。 次はこれをインストールしましょう。

バッチリです! セットアップ方法を教えてください。

すでに他のC# / .NETクイックスタートを終えていて、.NETおよびTwilio .NETヘルパーライブラリーがインストールされている場合は、このステップを読み飛ばしてすぐに最初の通話を発信できます。

最初の通話を発信するには、.NETおよびTwilio .NETパッケージがインストールされている必要があります。

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

Visual Studioのインストールが済んでいる場合は、準備はすべてOKです。 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パッケージをインストールする

ライブラリーをインストールするもっとも簡単な方法は、必要なライブラリーのインストールに使用できる.NETのパッケージマネージャーであるNuGetを使用することです。

Visual Studio

Visual Studioをお使いの場合は、「ファイル」メニューを選び「新規」を選択、続いて「プロジェクト」->「コンソールアプリケーション」を選択します(.NET Core、.NET Frameworkいずれでも動作します。。

Visual Studio 新規コンソールアプリケーション

続いてVisual Studioのメインメニューから「ツール」を選択し、「NuGetパッケージマネージャー」->「パッケージマネージャーコンソール」をクリックし、下記コマンドを入力します:

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

dotnet コマンドラインツールを使用している場合、下記コマンドを使用して新規.NETプロジェクトを作成します:

mkdir twilio-test
cd twilio-test
dotnet new console
dotnet add package Twilio
All set! Let's make a phone ring.

C#で通話を発信する

これで.NETとTwilio .NETライブラリーがインストールできたので、今しがた購入したTwilio電話番号から、1回のAPIリクエストで通話を発信できます。 新規プロジェクトで Program.cs という名前のファイルを開き、下記のコードサンプルを打ち込むかペーストし、すでにあるテンプレートコードと置き換えます。

        
        
        
        

        このコードは引数として渡された2つの電話番号間の通話を開始します。 「from」番号は皆さんのTwilio番号で、「to」番号は通話の発信先です。

        「url」引数は、着信側が電話に応答した際にTwilioが次に何を行うべきかを指示するTwiML (=Twilio Markup Language, Twilioマークアップ言語) を指します。 このTwiMLはTwilioに対してテキストToスピーチを使用してメッセージを読み上げ、それからMP3ファイルを再生するよう支持します。

        しかしコードが動作するようになる前に、皆さんのTwilioアカウントで機能するように少々編集が必要です。

        プレースホルダーのクレデンシャル値を置き換える

        Swap the placeholder values for accountSid and authToken with your personal Twilio credentials. Go to https://www.twilio.com/console and log in. On this page, you’ll find your unique Account SID and Auth Token, which you’ll need any time you send messages through the Twilio Client like this. You can reveal your auth token by clicking on the eyeball icon:

        Program.csを編集し、accountSidおよびauthTokenに対応する値をご使用の一意な値に置き換えます。

        Please note: it's okay to hardcode your credentials when getting started, but you should use configuration to keep them secret before deploying to production. ASP.NET applications should use the built-in configuration system for ASP.NET on the .NET Framework or ASP.NET Core. Other types of .NET applications could use environment variables.

        toおよびfrom電話番号を置き換える

        数分前に購入した、音声通話機能対応の電話番号を覚えていますか? どうぞ、既存のfrom番号をご自身の番号に置き換えてください。 また、E.164形式が使用されていることも確認します。

        [+][country code][phone number including area code]

        to電話番号を、ご自身の携帯電話番号に置き換えます。 通話の着信が行える電話番号であればどれでも使用できますが、ご自身の電話機を使用すれば魔法のような出来事を目の当たりにできる点で良いアイディアです。 上記同様、この値にはE.164形式を使用してください。

        変更を保存し、Visual Studioまたはターミナル上から実行します:

        dotnet run
        

        これにて以上です! Twilio番号からの通話が着信し、短いメッセージが読み上げられます。😉

        トライアルアカウントをご使用の場合、Twilioで検証済みの電話番号に発信先が制限されます。 電話番号はTwilioコンソール内の検証済み発信者番号にて検証できます。 その他のトライアルアカウントの制限については、無料のTwilioトライアルアカウントの仕組みについてのガイドを参照してください。

        通話を発信しました。 どうやって着信させるのですか?

        通話を着信するためにASP.NET MVCをセットアップする

        When your Twilio number receives an incoming call, Twilio will send an HTTP request to a server you control. This callback mechanism is known as a webhook. When Twilio sends your application a request, it expects a response in the TwiML XML format telling it how to respond to the message. Let's see how we would build this in C# using ASP.NET MVC for .NET Framework 4.6.1. If you prefer using ASP.NET Core, check out this article. If you need to use ASP.NET Web API, we have an article for that, as well.

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

        Visual Studio内で、「ファイル」メニューで「新規作成」を選択し、続いて「プロジェクト...」->「ASP.NET Webアプリケーション (.NET Framework) 」を選択します。

        Visual Studio 新規ASP.NET Webアプリケーション (.NET Framework)

        続いて、「MVC」テンプレートを選択します。

        Visual Studio 新規 ASP.NET Webアプリケーション (.NET Framework) - MVC

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

        「ツール」を選択し、「NuGetパッケージマネージャー」->「パッケージマネージャーコンソール」をクリックし、下記コマンドを入力します:

        Install-Package Twilio.AspNet.Mvc -DependencyVersion HighestMinor
        

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

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

              
              
              
              

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

              Visual Studio 新規ASP.NET Webアプリケーション - ホームページ

              アプリケーションはインターネット上からアクセスできる必要があります。 皆さんのアプリケーションが通話を着信できるように、次にそのセットアップ方法をご紹介します。

              Let's set up my app to receive calls.

              ngrokを使用してTwilioがASP.NETアプリケーションと通信できるようにする

              ここまでで、着信通話に応答する小規模なASP.NETアプリケーションを構築しました。 これが動作するには、アプリケーションがTwilioからアクセスできるようにしておくことが必要です。

              ほとんどのTwilioのサービスはWebhookを使用して皆さんのアプリケーションと通信を行います。 たとえばTwilioに通話が着信すると、メッセージの処理方法の指示を得ようと、皆さんのアプリケーションのURLにアクセスを行います。

              ご自身の開発環境でASP.NETアプリケーションに取り組む際、アプリケーションは同一のコンピューター上の他のプログラム以外からアクセスできないため、Twilioと通信することができません。 アプリケーションをインターネット経由でアクセスできるようにして、この問題を解決することが必要です。

              アプリケーションをAzureやAWSにデプロイするなど、これを行うには多くの方法がありますが、おそらく皆さんはTwilioアプリケーションのテストにはもっと手間のかからない方法をお探しでしょう。 アプリケーションをインターネット上からアクセスできるようにする軽量な方法として、ngrokと呼ばれるツールを推奨しています。 NgrokはローカルのWebサーバーが実行しているものと同一のポートをリッスンし、ローカルの開発環境への受信リクエストを転送する、ngrok.ioドメイン上の一意なURLを提供します。 仕組みは以下のとおりです:

              Twilioがローカルサーバーにアクセスできるようにするために、ngrokがどのように役に立つのか

              まだお済みでない場合は、Visual Studio用のngrok拡張をインストールします。 いくつかの素晴らしいヒントや裏技を含むngrokの追加情報については、こちらの詳しいブログ投稿(英語)をご参照ください。

              Visual Studio拡張のインストール後は、Visual Studioを再起動し、プロジェクトを開き直す必要があります。 プロジェクトを再開し、ホームページを表示します。 続いて、こちらの実行中に「ツール」メニューから「ngrokトンネルを開始する (Start ngrok Tunnel) 」を選択します。

              Ngrok Extensions for Visual Studio

              Ngrok Extensions for Visual Studio - 実行中

              これで、外部からアクセスできるURLを用意できました。

              WebhookのURLを設定する

              Twilioにどこを参照して良いか知らせるため、通話の着信時にTwilio電話番号にWebhook URLを呼び出すよう構成することが必要です。

              1. jp.twilio.comにログインし、Consoleの電話番号ページにアクセスします。
              2. 音声機能対応の電話番号をクリックします。
              3. 音声およびFaxセクションを見つけます。 「構成内容 (CONFIGURE WITH) 」は、既定である「Webhook/TwiML Bins (etc.)」にしておく必要があります。
              4. In the “A CALL COMES IN” section, select "Webhook" and paste in your URL: in this quickstart step above, it would be: https://354f5b25.ngrok.io/voice - be sure to add /voice at the end, as this is the route to your VoiceController class.

              Voice Webhook ngrok/voice

              変更点を保存すれば、準備万端です!

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

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

              上記の両方のサーバーの実行により、いよいよお楽しみの準備が整いました。 新しいASP.NET Voiceアプリケーションをテストしましょう!

              携帯電話からTwilio電話番号に通話を発信しましょう。 ngrokコンソールでHTTPリクエストが確認できるはずです。 皆さんのASP.NETアプリケーションは着信リクエストを処理し、TwiMLでレスポンスを返します。 その後通話が接続されると、メッセージが聞こえてきます。

              It worked! All done - what's next?

              関連トピック

              これで、C#による通話の発信と着信通話への応答についての基本が理解できました。

              ここでのASP.NETアプリケーションでは、テキストToスピーチを使用して発信者にメッセージを読み上げるTwiML動詞の<Say>のみを使用しましたが、<Record><Gather>、および<Conference>といった他のTwiML動詞を使用してもっと多くのことを行うことができます。

              以下のページをご覧いただき、さらに理解を深めてください:

              皆さまが何を開発されるのか、目にするのが待ちきれません!

              Rate this page:

              ヘルプが必要ですか?

              We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.