我想记录来自statuscallback twilio的响应

时间:2016-01-13 17:40:37

标签: php twilio

ini_set('max_execution_time', 3000);

require 'Services/Twilio.php';

$version = "2010-04-01";

$sid = 'xxxxxx';
$token = 'xxxxxx';

$phonenumber = 'xxxxxxxxxx';

$client = new Services_Twilio($sid, $token, $version);

try {

    $call = $client->account->calls->create($phonenumber, "3104200693", "http://demo.twilio.com/docs/voice.xml", array(
        "Method" => "GET",
        "StatusCallback" => "http://localhost/twilio/call-response.php",
        "StatusCallbackMethod" => "GET",
        "StatusCallbackEvent" => array("initiated", "ringing", "answered", "completed"),
        "IfMachine" => "Continue",
    ));

    //header("Location: http://localhost/twilio/call-response.php");
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

这是我拨打号码的twilio代码,我用这个成功呼叫,但我想将响应存储在数据库中,如是否已完成呼叫,如果已接听,则接听人员或机器的电话。

请帮忙。

2 个答案:

答案 0 :(得分:1)

Twilio服务器将向StatusCallback指定的URL发送HTTP请求。很明显,希望Twilio无法联系到您的localhost。 1)您的计算机可能无法从网络外部实际访问,2)localhost对每个人来说都是不同的。

您需要提供可从互联网公开访问的网址。这意味着您需要在服务器中运行代码,或者使用http://ngrok.com之类的服务在开发期间建立到本地计算机的隧道。

答案 1 :(得分:0)

我不认为"StatusCallback" => "http://localhost/twilio/call-response.php"会让你得到电话回复。你应该给一个服务器URL。

例如

"StatusCallback" => "http://example.com/twilio/call-response.php"

call-response.php 中,

<?php

file_put_contents(__DIR__."/status_log.txt", json_encode($_REQUEST));
// twilio call status and other sata will be written to this file. Please check this file after call.
// I am giving because i dont know correct twilio returning params

?>

More info here