【发布时间】:2020-05-03 11:42:12
【问题描述】:
我正在按照 Javascript 快速入门在我的网站上部署 Twilio:https://www.twilio.com/docs/voice/client/javascript/quickstart
我收到多个电话并将信息注册到我的数据库中,如果我不希望我的 Twilio 客户端接听来电,我可以根据此 url 使用 callSid 挂断:https://www.twilio.com/docs/voice/api/call-resource?code-sample=code-update-a-call-resource-to-end-the-call&code-language=PHP&code-sdk-version=5.x
代码:
<?php
include "../../../twilio_client/vendor/autoload.php";
use Twilio\Rest\Client;
$callsid = $_POST['callsid'];
// put your Twilio API credentials here
$accountSid = 'AC2XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$authToken = '67XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$twilio = new Client($accountSid, $authToken);
$call = $twilio->calls($callsid)->update(array("status" => "canceled"));
$calla = $twilio->calls($callsid)->fetch();
$parentCall = $calla->parentCallSid;
$call = $twilio->calls($parentCall)->update(array("status" => "completed"));
?>
这很好用,所以以同样的方式,但如果我想使用 callSid 接听来电,我根据这个 url 尝试了这个:https://www.twilio.com/docs/voice/api/call-resource?code-sample=code-update-a-call-in-progress-with-twiml
代码:
<?php
include "../../../twilio_client/vendor/autoload.php";
use Twilio\Rest\Client;
$callsid = $_POST['callsid']; //callSid
$usrclient = $_POST['usrclient'];//client connected to receive calls
// put your Twilio API credentials here
$accountSid = 'AC2XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$authToken = '67XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$twilio = new Client($accountSid, $authToken);
$call = $twilio->calls($callsid)->update(array("twiml" => "<Response><Dial><Client>".$usrclient."</Client></Dial></Response>"));
?>
但它不起作用,它向我显示了这个错误:
[Wed Jan 15 23:14:06.493068 2020] [:error] [pid 30189] [client 190.239.139.220:18718] PHP Fatal error: Uncaught exception 'Twilio\\Exceptions\\RestException' with message '[HTTP 400] Unable to update record: Call is not in-progress.
我该如何解决?
我需要你的帮助。
谢谢。
【问题讨论】:
-
完全理解您的呼叫流程是一项挑战,因此,如果您有图表或一些要点说明您希望呼叫流程如何,一旦网站访问者启动客户端发出呼叫,这会很有帮助。
标签: php twilio twilio-api twilio-php