ゼロからはじめるぜ! Twilio – 第2回

20130704-01.jpg

こんにちは! Twilio チーム ネットワークエンジニアの まさ です。
今回は、Twilio を使って実際に電話を体験していただきます。

必要なものは、テキストエディタ、Web ブラウザ、そして、インターネットから URL でアクセスできる領域にファイルをアップロードできる環境と、その環境にファイルをアップロードするためのソフト(WinSCP や FTP クライアント)です。

アップロード環境がない方へ。最近では、仮想サーバのレンタルがだいぶお手頃価格になりました。 br />AWS、Nifty クラウド、Windows Azure をはじめ、様々な企業が大小取り揃えています。もちろん、どこをお使い頂いても OK です。

ちなみに、弊社も CloudCore VPS を月額換算 945 円からご用意しております。Twilio に加え CloudCore VPS までご利用頂き、本当にありがとうございます。
CloudCore VPS のお申込み

 

はじめようぜ! TwiML

「TwiML って何て発音するの?」というお問い合わせをよく受けます。名前は非常に大事なものです。私もTwilio チームに来た時、最初にこの質問をしました。

  • 英語式に発音 : トぅぃもー
  • 日本式に発音 : トぅぃむる

米国 Twilio のスタッフは全員が英語式、私達 KDDI ウェブコミュニケーションズのスタッフを含め国内では日本式で発音することが多いです。
前者の場合、単に「もー」とするだけではなく、軽く舌先で前歯の奥に触れ、それが「エル」である感を十分に出してください。また「トぅぃむる」より、やや速く発音します。

さて、TwiML ですが、書式は XML です。適当なテキストエディタを使いプレインテキストで書き、拡張子を .xml で保存すれば出来上がりです。この時、文字コードは必ず UTF-8 で保存してください。

 

TwiML の書き方は簡単。

これだけです。この「中身」の部分に必要な指示を書いていきます。TwiML の詳しい説明は以下リンクを参照します。ここで、必要な指示や付随するパラメータを調べながら作ります。

TwiML のドキュメント

 

TwiML : 電話を転送しよう!

では、はじめてのTwiML にチャレンジします。今回の目標はこれ!!

 

【今回の目標】
050-A に電話を架けると 03-9999-8877 に転送し、発信者と転送先が電話でつながる

20130704-02.jpgまずは、これを実現する TwiML を書きましょう。Twilio にとっては、転送先である 03-9999-8877 に電話を架けることになります。よって、<Dial> 動詞を使って「電話を架ける」という指示を出します。
ちなみに、この 03-9999-8877 は実在しない番号ですので、みなさんが利用可能な電話番号に読み替えてください。もちろん、固定電話でも携帯電話でも構いません。

 

なお、トライアルアカウントをお使いのみなさんは、最初の Twilio 電話番号が発行される際に「電話番号を認証させてくれ」と聞かれ電話番号を入力したはずです。トライアルアカウントでは、この時に認証した電話番号へのみ発信できます。

 

今回の目標を叶える TwiML は以下の通りです。

<Dial> 動詞は、<Dial> ~ </Dial> の間に、宛先の電話番号を E.164 形式で記述します。「E.164 形式ってなんぞや?」と思ってしまった方、第 1 回目の記事を復習しましょう。
また、callerId というパラメータを渡しますが、これは、相手の液晶パネルに表示する発信元電話番号になります。

 

注意点

Twilio では、Dial の中で callerId パラメータ を省略すると、相手に「非通知」として発信します。
また、callerIdパラメータは、ご自身が保有する Twilio 電話番号以外は指定できません。
これは、電話のなりすまし行為を抑止するための仕様です。例中の +8150A には、必ず、実際に Twilio から発行された電話番号を記述してください。

 

これを test2.xml という名前で保存し、インターネット上から有効な URL でアクセスできる場所にアップロードします。私は、 http://hogehoge/twilio/twiml/test2.xml でアクセスできる場所にアップロードしてみます。

20130704-03.jpgのサムネイル画像

さて次は、Twilio 側の設定です。
ご自身のアカウントで管理画面にログインし、電話番号のメニューを開きます。

 

20130704-04.jpg

電話番号を購入した後、何も設定をしていないと、このように最初から demo.twilio.com の URL が入っています。この 050-A の電話番号部分はリンクになっていますので、これをクリックします。

 

20130704-05.jpg

この画面が 050-A の電話番号に対する管理ページです。Voice Request URL の欄は「050-A に電話が架かってきた時に Twilio が叩く URL」です。リクエストは POST か GET かを選べます。今回は POST のままで大丈夫です。

 

この欄に、先ほどアップロードした test2.xml までの URL を入力します。私の場合、URL は
http://hogehoge/twilio/twiml/test2.xml
ですので、先に入っている URL を消してからこれを入力し「変更を保存する」ボタンを押します。うまくいくと「電話番号の設定が完了しました」が画面上部に表示されます。

 

メニューの「電話番号」をクリックし、電話番号一覧のページに戻ります。この時、一覧の URL がまだ変わっていないようであれば、ブラウザをリロードしてみてください。

 

20130704-06.jpg

はい、このように、050-A のURL が http://hogehoge/twilio/twiml/test2.xml に設定されました。
これで準備完了です。

 

携帯電話からでも固定電話からでもいいので、実際に 050-A へ電話を架けてみてください。トライアルアカウントの場合、電話がつながる前に、英語で「これはトライアルです」という男性の声が流れますが、アップグレードしたアカウントでは流れません。

少し間をおいて、03-9999-8877 の電話が鳴りますので取ってください、そして話してみましょう。この時、ナンバーディスプレイ対応の電話機なら、050-A が表示されているはずです。

どうですか!? 電話はつながりましたか? (^-^)

このようにシンプルなコードを書くだけで電話を転送できます。では実際、どんなことに活用できるでしょうか?

 

互いに電話番号を知らせずに二者を電話でつなぐサービス

例えば、塾のオプションサービスとして、生徒さんと講師さんの電話番号をお互い伏せたまま電話でつなげる、といった活用法はどうでしょう。

 

実際に体験して頂くことで「電話 API」の面白さが少しでも伝わったかと思います。TwiML には、電話を架ける <Dial> 動詞 以外にも、音声ファイルを流す <Play> 動詞や、人工合成音声でテキストを喋らせる <Say> 動詞 など、いろいろご用意しています。
以下のドキュメントを活用し、色々試してみてくださいね。

TwiML のドキュメント

次回は、もう少し踏み込んだ使い方にチャレンジします。

この記事をシェア

最新記事

すべての記事へ