通話スクリーニング

20130624.png音声通話アプリケーションでは、番号リストに従って決まった順番に電話をかけることがよくあります。最初の番号で電話がつながらなければ 2 番目の番号にかけるような場合です。宛先の番号が応答したら、通話を受け付けるよう入力を促します。応答がない場合は次の電話番号へ移ります。

今回のブログではTwilio for KDDI Web Communications公式サイトにも紹介されておりますが、その応用編としてIVRを使うところをご紹介できればと思います。

callscreen.php

コードの説明

「$numbers」に複数の電話番号を設定します。 このファイルがTwilioから呼ばれると分岐条件に満たす場合、配列に設定されている電話番号の順番で電話をかけます。 Twilioはコールに対するステータスを「POST」で渡しますので、呼ばれたスクリプトからPOSTでステータスを取得できます。
そのステータスが「completed」ではない場合、通話が成立されていないことを意味しますので、次の電話番号へ電話をかけるようになっています。

  • Dail動詞にactionを指定することでDial動詞実行後設定されているurlに処理を渡します。
  • Number動詞にurlを指定すると発信先に電話をかけた際の処理をそのurlに渡すことが可能です。

screen_for_machine.php

このファイルは「callscreen.php」の「Number url」から呼ばれます。
つまり「Number」に設定された発信先の電話番号に電話を掛けた際に実装する処理を書いておきます。
Twilioはこのように一つのファイルだけではなくいろんなどころえのファイル分岐が可能です。
※ このファイルでは単なるメッセージを再生していますが、分岐処理の実行文として各コマンドを設定すれば普通にコマンドを実行することが可能です。

まとめ

今回のサンプルはサーバー障害対応ツールとして開発しました。
元々の処理

  • サーバーから障害が発生すると1番目に設定されている電話番号に電話をかける。
  • 1番目の電話番号が留守番だったら2番目に設定されている電話番号に電話をかける。
  • 2番目の人が電話に出て
    • 「1」を押したらエスカレーションに電話をかける
    • 「2」サーバーを再起動する
    • 「3」仮想マシンを追加する

こちらを応用すれば携帯でサーバーの障害をコントロールすることが可能で、あるボタンの操作で障害のレポートを作成させたりすることも可能です。

この記事をシェア


最新記事

すべての記事へ