今回はTwilioを使って行った通話のログを取得してみたいと思います。
TwilioはRESTful APIで提供していて、今まで紹介して来た通話に関する処理はもちろんのこと、
そのコール(通話)のログも簡単に管理できます。
もちろん、ダッシュボードでも確認できます。
・Twilio管理画面ログイン → トップメニューの「ログ」をクリック
さてさて!API経由ですともっといろんな情報を取得する事が可能です!
まず、今回の紹介内容はTwilioのPHPライブラリーを使います。
PHPライブラリーについては前回投稿した記事をご覧ください。
http://qiita.com/joohounsong/items/f516f4e1f6c91572e7f5
こちらのソースコードや説明はTwilio公式ドキュメントにも公開しています。
https://jp.twilio.com/docs
日付指定
<?php
require('Services/Twilio.php');
$sid = "Twilio account SID";
$token = "Twilio account Auth Token";
$client = new Services_Twilio($sid, $token);
foreach ($client->account->calls->getIterator(0, 50, array(
"Status" => "completed",
"StartTime" => "2013-05-23"
)) as $call
) {
echo $call->sid."<br>".$call->from."<br>";
}
上のコードですと。
通話開始が「2013年5月23日」で、通話成功したコール(通話)データを取得します。
日付(期間)指定
<?php
require('Services/Twilio.php');
$sid = "Twilio account SID";
$token = "Twilio account Auth Token";
$client = new Services_Twilio($sid, $token);
foreach ($client->account->calls->getIterator(0, 50, array(
"Status" => "completed",
"StartTime>" => "2013-05-01",
"StartTime<" => "2013-05-10"
)) as $call
) {
echo $call->sid;
}
上のコードですと。
期間を設定して、期間の間のログを取得することも可能です。
即時取得
<?php
require("Services/Twilio.php");
$response = new Services_Twilio();
$to = $_POST["To"];
$from = $_POST["From"];
$callSid = $_POST["CallSid"];
$callStatus = $_POST["CallStatus"];
このようにPOSTはもちろん、GETでも取得することが可能です。
これらのパラメーターは actionの設定が可能な動詞もしくはStatus Callback URLが設定されていると指定されているURLに自動的に送るようになっています。
例えば、下のように Dial動詞の actionに上のファイルのURLを設定すると。
Dial動詞が終了した後、自動的にすぐログデータを渡します。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial callerId="+8150xxxxyyyy" action="call-log-response.php">+8180xxxxyyyy</Dial>
</Response>
Twilioのコールログに関しては下記のページで詳しく説明していますので、こちらもご覧ください。
https://jp.twilio.com/docs/api/rest/call