21
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Twilioはじめの一歩

Posted at

Twilioを始めようと思う。まずはその取っ掛かりから。

Twilioとは?

公式サイトのTwilioツアーを見てみると、最初に

「電話」とインターネットをつなぐ

と出てくる。一言で言うとコレ。

ここであんまり色々書いてもイメージが湧かないと思うので、
とりあえずはじめの一歩を踏み出してみる。

とりあえずやってみる

https://jp.twilio.com/try-twilio/kddi-web からアカウントを作っておく。最初は無料のトライアルモードで始められる(メールアドレスと電話が必要)。

まずは、以下のファイルを用意する。

test.xml
<Response>
  <Say voice="alice" language="ja-JP">東京特許許可局</Say>
</Response>

これを、どこかインターネットからアクセスできる場所に置く。
ブラウザでアクセスして、xmlが表示される状態であればOK。
(今回はAmazonS3に置いてみた。)

次に、Twilioにログインして、一番上のメニューから「電話番号」を選択し、左側の赤く表示されている電話番号をクリック。
スクリーンショット 2015-01-18 0.10.08.png

「音声通話」の項目があるので、そこに先ほどのXMLのURLを入れ、メソッドをHTTP GETにする。
スクリーンショット 2015-01-18 0.19.24.png

そして設定を保存し、自分の電話から、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楽しい!

21
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?