クラウド電話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エンジニア採用情報

  関連記事

no image
AWSにRailsアプリをデプロイする(公開編)

次にデプロイするため“aws rails デプロイ”でググってみるとunicorn、nginxというキーワードがでてくるので とりあえずこれを設定していきます。   アプリのsecret_key_baseの設定 [crayon-5b2bb7b72d5ed374163 …

kubernetes の全ノード上で同じコンテナを動かす

今回は、kubernetes上で同一コンテナを全ノードで動かす方法を紹介したいと思います。kubernetes自体の起動方法はここでは割愛します。 はじめに 以前、CoreOSのFleet上でmackerel-agentを動かすということを行いました。今回は、kubernetes上で同じようにクラス …

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

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

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

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

ゼロからAngularでSPAを作ってみた(1) はじめてのアプリ編

はじめに Single Page Application (SPA)って知っていますか? Webサイトでコンテンツのリンクをクリックした時に妙に表示が早いな〜というとき、実はページを移動するのではなくてページの一部のみを書き換えていたりします。 こういったサイトの作り方を Single Page A …

modern.IEを使ってMac上でWindows10を動かす

Microsoftが提供している modern.IE というプロジェクトがある。そこで提供されている仮想環境を使って、MacにWindows10をインストールしてみる。ちなみに、このプロジェクトの本来の目的はInternet Explorerの表示確認やデバッグの支援。 VirtualBoxの準備 …

x-callback-urlを使ってみた

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

ゼロからAngularでSPAを作ってみた(2) デプロイ・公開編

前回のおさらいと今回やること 前回(はじめてのアプリ編)では、Angular で簡単なチャットアプリを作るところまでやりました。ディレクトリ構成については説明できていなかったのですが、次のようになっています。(主なディレクトリとファイルのみ抜粋) + dist (ビルド・コンパイル後のファイルのディ …

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

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

Vagrantの機能を使って開発環境の効率をあげてみた。

プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …