クラウド電話API “Twilio”で起こされてみた

     - 開発ツール , ,  


どうも、開発部のクラヴマガです。

弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。
そこで問題になるのが、障害などによる深夜対応・・・。
データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に
電話連絡をもらっていたのですが、クラウド環境では別会社に頼むか、社内で人員を確保するか・・・、
とはいえリソースも原価もかけられないし・・・と悩んでいました。

調べてみるとAPI経由で電話やSMSを送信できるサービス「twilio」というものがありました。
これなら人員確保や外部委託しなくても実現できるかも。

というわけでさっそく試しました。

最終的にはアラートメールをトリガにして、担当者に電話連絡⇒応答者がプッシュボタンで返答⇒SMSで誰が対応を開始したか一斉送信
を行うつもり。

まず今回は、「電話で連絡」と「SMSでメッセージ送信」をやってみます。

事前準備

  1. トライアルアカウント作成
    まずはtwilioへアクセスして、トライアルアカウントを作成。
    ある程度は無料で電話やSMSを送れるみたいです。
  2. 続いて電話番号を購入
    今回はSMSもテストしたかったので、米国の電話番号を取得しました(番号によってSMSができるものとできないものがあり、日本の電話番号はできない模様)
  3. ライブラリの設置
    PHPで実装するつもりなので、
    ・PHP用のライブラリをダウンロード、サーバ上へアップロード
    APIライブラリよりphpのライブラリ(twilio-php-master.zip)を取得
    ・テスト用サーバへFTPアップロード・適当なディレクトリで展開

電話をかけてみる

先程ライブラリを展開したディレクトリ(testTwilio)へ移動し、phpファイル(testCall.php)を作成。

※・[AccountSid]:アカウントセッティングよりAccountSIDを確認して設定
・[AuthToken] :アカウントセッティングよりAuthTokenを確認して設定
・[CallNumber]:事前準備で購入手続きをした電話番号を設定
・[Reciveing Number]:ログインアカウント作成時登録した電話番号を設定

で、実行。

すんなり電話が掛ってきました。

IMG_call

電話にでると女性の声でテキスト読みあげてくれます。
設定・実装すれば固定メッセージの読み上げ、メールの内容なども読んでくれるみたいです。

SMSを送信する

同じディレクトリに今度はSMS送信用のphpファイル(testSms.php)を作成。

で、実行。

こちらもすぐにSMSが送信されてきました。
IMG_sms

感想

なんかものすごく簡単です。
他にも電話同士をつないだり、コールセンターの電話受付の様に電話のダイヤルプッシュごとに処理を実行したりできる様なので、障害復旧の自動化なんかもできるかも・・・?

なんとなく感じはつかめたので、次回はプロトタイプを作成します!


DACエンジニア採用情報

  関連記事

【HTML5】4ツール出力ファイルサイズ比較

こんにちは、近江です。 前回もHTML5のSwiffyについて書かせて頂きましたが、まだまだHTML5について調査しています。 今回はSwiffyを含めた4つのHTML5系ツールで、同じ素材で同じアニメーションを作成した時のファイルサイズを比較したいと思います。 何故ファイルサイズの比較をするかと言 …

【小ネタ】タスク管理ツール移行: Trello から Asana

  プロジェクトチームのタスク管理ツールを Trello から Asana に変えることになり、 タスクの移行が意外と簡単にできた、というお話です。 Trello と Asana もともと使っていたのは Trello(トレロ)です。 プロジェクト > タスクグループ > タスク …

Burpの使い方!

こんにちは、第二ソリューション開発部の谷口です。 受託開発の部署で開発を担当してます。 APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。 Burpとは Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確 …

自社サービスのDocker化(後編)

こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …

Android 非同期処理についてまとめてみた

Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/articl …

自社サービスのDocker化(前編)

こんにちは。 インフラ開発部の上田です。 普段は自社開発システムのインフラ担当として、日々頑張って仕事をしています。 今回は、近年話題になっているDockerについて、取り上げてみようと思います! なぜDockerなのか・・・? そもそもDockerとは何か・・・?   当社では様々なサー …

x-callback-urlを使ってみた

x-callback-urlとは? iOSのアプリ間連携の仕様の一つみたいです。簡単に言うと、ディープリンクを行うためにカスタムURLスキームを利用するが、アプリ毎にバラバラな規則でURLスキームを設定するとアプリ間連携をスムーズに行うことができないため、どのような規則でURLスキームを設定するかを …

いまさらですが… GNU screen チートシート

最近はローカル環境で開発するようになってきたので、screen コマンドを使う機会も少なくなって来たような気がします。で、使ってないと忘れてしまうので、チートシートを作ってみました。 参照サイト GNU screen [quick_reference] 起動 コマンド 動作 screen -S &l …

最強のSQLクライアント(GUIツール)「TeamSQL」を使ってみた!

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 エンジニアの皆さん、SQLクライアント(GUIツール)って何使ってます? わたくしはこ …

Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!

  はじめに みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 XmediaOneの開発で採用しているプログラム言語はS …