電話API Twilioの基本的な使い方を調べてみた

twilio

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちわ。ラー・カイラムといえば第2艦橋が好きなガノタ市田です。
Developers.ioでは、Twilioのエントリがいくつかありますが、申し込み方法などのアップデートも踏まえ、改めてTwilioの使い方をご紹介したいと思います。

Twilio | Developers.IO

また、次回はCloudWatchによるアラームをTwilioで電話通知してみたいと思いますので、その準備という位置づけのエントリになります。

このエントリの概要

  • Twilioとは
  • Twilio費用について
  • Twilioアカウントの作成
  • 電話番号の購入
  • 電話アナウンスの仕組み
  • 電話アナウンス用ファイルの作成
  • S3 Webサイトホスティング設定
  • 電話してみる

それでは、早速見ていきたいと思います。

Twilioとは

簡単に言うと、クラウド電話APIという電話サービスになります。このクラウド電話APIとは、Web APIでインターネット上から電話をかけたり、電話を受けたり、録音できたり、SMSを送ったりできるサービスです。

Twilio費用について

Twilio自体の課金詳細については下記をご参照頂ければと思います。

料金 | Twilio for KDDI Web Communications

尚、無料アカウントのままでオリジナルのメッセージ応答を返そうとすると、アップグレードの必要がある旨のメッセージが流れたので、今回は有料アカウントにアップグレードしています。アップグレードの手順もご紹介しようと思います。

費用感

最初にアップグレードすると、2000円/月の請求が発生するので、予めご注意ください。 この2000円の中から使った分が引かれていき、残高がなくなるとサービスが利用できなくなる仕組みになっています。

Twilioアカウントの作成

まずは下記ページにアクセスして無料アカウントを作成します。アカウントの作成は無料です。

Twilio | Try Twilio Free

必要事項を入力してアカウントを作ります。

01_signup

ログインすると下記のような管理画面になります。

02_twilioconsole

画面左上にUPGRADE というリンクがあるのでクリックします。

03_upgrade

次の画面で決済手段を選択できます。
クレジットカードかPaypalのどちらかを選択して「アカウントをアップグレードする」 をクリックします。 (オートチャージはデフォルトでオンになっているので、必要に応じてオフにしてください)

04_upgrade-reg

アップグレードが完了すると完了画面になります。

05_done-upgrade

電話番号の購入

次に電話番号を購入します。国はJapan(+81)をプルダウンから選択して、「検索」 をクリックします。

06-buynumber

すると以下のように購入できる番号が出てきますので、今回は「ローカル」の108円 のものを購入します。

07-buynumber2

確認表示が出たら「Buy This Number」 をクリックします。

08-buynumber3

先程の管理画面で購入した番号がアクティブ な番号として登録されていればOKです。
電話番号の箇所をクリックすると詳細内容を確認できます。

09-active

電話アナウンスの仕組み

電話した時に流れるメッセージファイルを作成する前に、簡単に仕組みを確認してみたいと思います。
詳細画面の「A CALL COMES IN」 にあるURLにアクセスしてみます。

10-demo

すると下記のようなXMLの内容が見れると思います。

11-demoxml

試しに購入した電話番号に電話してみると、上記のSayタグ でくくられたメッセージが機械音声で流れると思います。

仕組みまとめ

基本的な仕組みとしては、下記のようになります。

  1. 流したいメッセージを記述したXMLファイルを作成
  2. WebサーバにXMLファイルをアップロード
  3. アップロードしたファイルのURLを管理画面で指定
  4. 電話すると上記XMLの内容が流れる

ということで、今回はWebサーバとしてS3を使ってオリジナルメッセージを流してみたいと思います。

電話アナウンス用ファイルの作成

それでは自由にXMLファイルを作成します。今回は下記の内容で作ってみました。
これをmysumple.xmlとして保存しました。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-JP" voice="alice">こんにちわ。このメッセージはSスリーに保存されています。</Say>
<Pause length="1"/>
<Say language="ja-JP" voice="alice">SスリーとはAWSのオブジェクトストレージのことです。</Say>
</Response>

S3ウェブホスティング設定

次にWebサーバとなるS3を設定します。AWSの管理画面からバケットを作ります。既存のものを利用する場合は適宜読み替えてください。

12-makebucket

今回はtwiliobucket2016というバケット名にしました。

13-twiliobucket

次にWebホスティング用のバケットポリシーを設定します。

14-bucketpolicy

ポリシーは公式ドキュメントのものから適用します。

バケットポリシーの例 - Amazon Simple Storage Service

15-setpolicy

下記はコピペ用です。「Your Bucket」 の箇所は環境に合わせて修正してください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::YourBucket/*"
        }
    ]
}

ちなみにS3にアクセスしてくるIPはTwilioのシステムからのIPになりますが、Twilio自体AWSを利用しているのでAWSで利用する全レンジのIPがアクセス候補になるようです。

TwilioがアクセスしてくるIPアドレスレンジは何ですか?

次にS3のWebホスティング設定を行います。

16-website

次に作成したXMLファイルをアップロードします。アップロード方法はなんでもいいですが、今回は管理画面上でアップロードしました。

17-upload

アップロードできたらファイルのURLを確認します。

19-url

実際に確認したURLにアクセスしてみると、確かにアップロードした内容が見れていると思います。

20-verifyupload

電話してみる

S3側の準備ができたら、Twilioの管理画面に戻って先程のURL設定をS3のURLに変更します。また、メソッドの指定を「HTTP GET」 に変更します。

21-changemessage

この状態で電話をかけると、きちんと「えすすりー」 と発音されたメッセージが流れると思います。

最後に

Twilioの使い方自体はとても簡単なものだったと思います。
次回は、CloudWatchと連携してアラートを電話通知してみたいと思います。

以上になります。

AWS Cloud Roadshow 2017 福岡