Twilioというサービスについて調べてみました。
概要
今回、電話を使ったソフトウェアを作ってみたいということで、どのようにして作るのか調べてみました。
調べたところ、Twilioというサービスが良いということだったので、Twilioについて調べた結果と、実際に少し使ってみて理解に苦しんだ部分をここに書いていきます。
Twilioとは
Twilioは、アメリカの企業であり、Twilioの提供しているWebAPIを利用して、電話を用いたソフトウェアの開発を容易にします。
日本においては、KDDIウェブコミュニケーションズが代理店としてTwilioの機能を提供しています。
公式Webサイトは下記に載せておきます。
Twilio for KDDI Web Communications | クラウド電話API
WebAPIを簡単に利用できるライブラリをいくつかのプログラミング言語では用意しています。
ライブラリが存在するのは、C#、JAVA、Node.js、PHP、Python、Ruby、JavaScriptなどです。
利用方法
Twilioは、公式Webサイトからアカウントを作成すると利用できます。
実際に、アカウントを取った後に、どのように利用すれば良いのか、プログラムを書けば良いのか分かりにくいです。
そのため、公式のドキュメントがあり、そこに書かれている通りにやっていくと使い方を覚えていくことができます。
全てではないですが、アメリカ発のサービスなのに日本語でドキュメントが書かれています。
なので、英語が分からない、読みたくないという人でも使い方を覚えやすいと思います。
ここから先は、このドキュメントを読む前にTwilioの簡単な仕組みを覚えておくと、理解が早くなると思ったので、それについての話を書いていきます。
WebAPIについて
Twilioでは、電話番号を取得して、その電話番号から電話をかける、電話がかかってくるなどの処理をすることができます。
(他にも、いくつかの便利な機能がありますが、ここでは説明を簡略化させるために、この2つに絞って説明します。)
そして、前述したWebAPIは、電話をかけるというような能動的な処理には利用するのですが、電話が取得した電話番号にかかってきた時には、この限りではなく、電話がかかってくると、Twilioのコントロールパネルで設定したWebサーバに、リクエストを送ります。
このリクエストには、電話をかけてきた電話番号などの情報が送られます。
その情報を元に、Webサーバでは「TwiML」というTwilio独自のXMLを使って、その後の電話での処理を書いた情報を送ります。
このことから、Twilioの使い方によってはTwiMLを置いておく、もしくは生成するWebサーバを用意しておく必要があります。
逆に、電話をかけるという処理をしたい場合はWebAPIを利用して電話をかけます。
この時も、TwiMLを使ってXML形式の情報を送って操作します。
ちなみに、開発言語ごとにあるライブラリではこのTwiMLを生成してくれるものもあります。
このような仕組みで動いているということを知っておくと、ドキュメントの理解がしやすいと思います。
料金
電話を利用するので、当たり前ですが通話料が発生します。
もちろんデバッグとして電話を受け取ったり、かけたりしても通話料が発生します。
この通話料ですが、WebAPIの利用料も入っています。
そのため、利用料の計算がしやすいと思います。
まとめ
調べたことと、少し理解に苦しんだ部分をまとめました。
Twilioには他にも、複数人で通話できるグループ電話の機能やテキストの読み上げなどたくさんの機能があります。
皆さんも、Twilioを使いこなして、電話を使ったソフトウェアの開発をしてみてください。