池澤あやかさんがTwilio使って電話しているのを見まして(MacPeople)、面白そうだなあと思ったので、私もやってみました。前に「Zabbix Conference Japan 2013」で「Zabbix × Twilio でサーバー監視電話連絡の自動化」という発表を聞いたことがあって、Twilioが気になってはいたんですよね。けけけ、けっして、池澤あやかさんがやってたから真似した訳ではないです。
そもそもTwilioとは何か?
公式ページから引用しましょう。
「Twilio を使えば、標準的なウェブ言語を使用して、簡単に、インテリジェントな音声通話アプリケーションを構築できます。 Twilio は従来のテレコム サービスの世界と IPコミュニケーションの橋渡しをします。」
自由かつオープンにテレコムサービスを利用できる。素晴らしいです。本来はNGN(Next Generation Network)にこのような役割が期待されていたと思うんですけどね。残念ながら、いまだNGNは自由でもオープンでもないですからねえ。残念なことです。
利用するにはまず登録が必要です。Twilioのサイトに行く。
日本だとKDDIのグループ会社であるKDDIウェブコミュニケーションズが事業として運営しているようです。うーん、通信キャリアの色が付くのは微妙だなあ。
ともあれ、登録。利用登録ボタンから登録するだけです。テストコールもかかってきます。トライアル中は無料。ただ、いつトライアル終わるのかが不明瞭です。使用量が一定量に達したら使えなくなるみたいです。
Rubyから電話をかける方法は、Twilioのブログに載っていますし、ログイン後の「Api Explorer」というコーナーでサンプルスクリプトを見ることもできます。サンプルは、なんと、Curl/Ruby/PHP/Python/Node.js/Java/C#が用意されています。好きな言語で書けるのはいいですなあ。
Twilioはマークアップ言語TwiMLを使います。TwiMLでTwilioにしゃべらす内容などを書きます。TwiMLはTwilioが読める場所に無いといけません。つまりインターネット公開する必要があります。私は自分のWebサーバを使いました。持っていない人は、TwiML用のホスティングサービスなどがありますので、そちらを使うといいかも。
日本語も話せますが、とりあえず英語にしてみました。
このwelcome.xmlをWebサーバに置きます。
ここでは仮にhttp://hogehoge/welcome.xmlとしておきます。
続いて、Rubyでコードを書きます。Ruby 2.1.1を使用。
まずはtwilio-rubyを入れます。
# gem install twilio-ruby
サンプルを参考に(というかそのまま)書く。
これで準備完了。
$ ruby call.rb
と実行すると、電話がかかってきました!
試用期間中はTwilioの宣伝文言が入りますが、その後、男性の声で「Welcome to Twilio!」と話してくれました。
TwilioのWebサイトを見てみると、IVRとかも作れちゃうようです。
これは色々な可能性があるなあ。