Iam使用twilio可编程语音,同时尝试跟踪出站呼叫的呼叫状态并保存日志是否用户应答或切断呼叫,但问题我没有得到任何日志,而在检查twilio调试器时它显示错误:15003
这里是我的代码:
<?php
require_once "vendor/autoload.php";
use Twilio\Rest\Client;
$AccountSid= 'AC04421826f5ffaa58eaefa1ba6984dac2';
$AuthToken= 'token';
$client = new Client($AccountSid, $AuthToken);
try {
$call = $client->account->calls->create(
// to call.
"+9120000000",
"+1209000001",
array(
"url" => "http://demo.twilio.com/docs/voice.xml",
"method" => "GET",
"statusCallbackMethod" => "POST",
"statusCallback" => "localhost/twilio/log.txt",
"statusCallbackEvent" => array(
"initiated", "ringing", "answered", "completed"
)
)
);
echo "Started call: " . $call->sid;
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
答案 0 :(得分:1)
Twilio福音传教士在这里。
您似乎已将statuscallback属性设置为指向localhost
。
localhost
是一个只能从您自己的本地计算机访问的域,因此Twilio无法访问您本地计算机上运行的localhost
。
我建议checking out ngrok这是一个简单的工具,可让您通过可公开寻址的域公开本地计算机上运行的网络服务器。
希望有所帮助
答案 1 :(得分:0)
此处的问题是无法将GET或POST请求直接写入log.txt文件,该文件应托管在http域中。
更改以下代码
"statusCallback" => "localhost/twilio/log.txt",
到
"statusCallback" => "http://yourdomain.com/twilio/log.php",
因为你需要一个可以写入log.txt的附加文件log.php
<?php
$status = implode(',',$_REQUEST) ;
$handle = fopen('log.txt','a');
fwrite($handle, $status);
?>