Posted at

Twilioなら通話ログの取得も簡単です。独自の通話ログ管理も手軽!

More than 5 years have passed since last update.

今回はTwilioを使って行った通話のログを取得してみたいと思います。

TwilioはRESTful APIで提供していて、今まで紹介して来た通話に関する処理はもちろんのこと、

そのコール(通話)のログも簡単に管理できます。

もちろん、ダッシュボードでも確認できます。

・Twilio管理画面ログイン → トップメニューの「ログ」をクリック

さてさて!API経由ですともっといろんな情報を取得する事が可能です!

まず、今回の紹介内容はTwilioのPHPライブラリーを使います。

PHPライブラリーについては前回投稿した記事をご覧ください。

http://qiita.com/joohounsong/items/f516f4e1f6c91572e7f5

こちらのソースコードや説明はTwilio公式ドキュメントにも公開しています。

https://jp.twilio.com/docs

日付指定


call-log-completed.php

<?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日」で、通話成功したコール(通話)データを取得します。

日付(期間)指定


call-log-date.php

<?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;
}


上のコードですと。

期間を設定して、期間の間のログを取得することも可能です。

即時取得


call-log-response.php

<?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動詞が終了した後、自動的にすぐログデータを渡します。


dial.xml

<?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