Twilioを始めようと思う。まずはその取っ掛かりから。
Twilioとは?
公式サイトのTwilioツアーを見てみると、最初に
「電話」とインターネットをつなぐ
と出てくる。一言で言うとコレ。
ここであんまり色々書いてもイメージが湧かないと思うので、
とりあえずはじめの一歩を踏み出してみる。
とりあえずやってみる
※ https://jp.twilio.com/try-twilio/kddi-web からアカウントを作っておく。最初は無料のトライアルモードで始められる(メールアドレスと電話が必要)。
まずは、以下のファイルを用意する。
<Response>
<Say voice="alice" language="ja-JP">東京特許許可局</Say>
</Response>
これを、どこかインターネットからアクセスできる場所に置く。
ブラウザでアクセスして、xmlが表示される状態であればOK。
(今回はAmazonS3に置いてみた。)
次に、Twilioにログインして、一番上のメニューから「電話番号」を選択し、左側の赤く表示されている電話番号をクリック。
「音声通話」の項目があるので、そこに先ほどのXMLのURLを入れ、メソッドをHTTP GET
にする。
そして設定を保存し、自分の電話から、twilioの番号に電話をかける。
うまくいっていれば、どこかぎこちない自動音声が流れるはず。
※トライアルモードの場合は、最初にトライアルモードである旨の案内が流れます。
何が起こっているのか?
この時点で、すでに電話とインターネットを繋げることに成功している。
動きを追っていくと、次のようなイメージになるかと思う。
- 自分の電話からTwilio電話番号に向けて電話をかける
- Twilioは、かかってきたTwilio電話番号に設定されている「音声通話」のリクエストURLに対してリクエストを行う
- Twilioは、リクエストの結果として
test.xml
の内容を取得する - このXMLは、Twilioに対してSayタグの中身を読み上げさせる命令になっているので(TwiML:後述)、Twilioは着信元の電話に対して「東京特許許可局」と音声を流す
つまり、電話からTwilio経由でインターネット上の情報(test.xml)をリクエストし、その内容を(Twilioに音声に変換してもらって)取得している、ということになる。
自分の電話=ブラウザ、Twilio電話番号=URL、Twilio=Webサーバと考えれば、イメージしやすいかも?
Twilio電話番号は、普通の電話番号と違って、電話機に紐付けられているわけではない。あくまでTwilioの機能にアクセスするためのインターフェース。なので、先ほどの例でも複数の電話からTwilio電話番号にかけても、通話中にならずに全て受け付けらる。…という考え方でいいはず。
TwiMLって?
今回アップロードしたXMLは、TwiMLと呼ばれるもので、Twilioに対して動作の指定を行う。
Twilioでアプリケーションを作る際の要となる。
今回使ったテキストの読み上げのほかにも、mp3ファイルを再生したり、通話を転送したり、通話を録音したり、番号のプッシュを受け付けたり、いろいろなことができる。
詳細は公式リファレンスを参照。
もちろん、インターネット上にあるTwiMLファイルをそのまま使わずとも、WebアプリからTwiMLを生成して渡してもよい。
ということは、時間帯によって動作を変えたり、着信番号によって動作を変えたり(リクエスト中のパラメータに着信番号等の通話情報が含まれる)といったことができる!
いろいろなことができる気がしてこないだろうか…?
ほかにはどんなことができる?
今回は電話からTwilioに向けて発信したが、Twilioから電話に向けて発信することもできる。
また、音声を送受信する端末としてブラウザも使えるので、電話<->ブラウザ間の通話や、ブラウザ同士での通話も可能。普通の電話と違って1対1の通話ではないので、複数の端末が同時に通話に参加することも可能となる。
さらにSMSも扱えるらしい(けどこれはよく知らない…)。
Webアプリを作るとしても、主要な言語に対してライブラリが用意されているので安心。
まとめ
なんだかTwilioの回し者みたいになってしまったけど、Twilio楽しい!