Как ответить на ожидающий или входящий вызов, используя его callSid на клиенте Twilio, используя PHP? - PullRequest
0 голосов
/ 16 января 2020

Я развертываю Twilio на своем веб-сайте после Javascript Быстрый старт: https://www.twilio.com/docs/voice/client/javascript/quickstart

Я получаю несколько вызовов и регистрирую информацию в своей базе данных, если я не хочу, чтобы мой Клиент Twilio отвечает на входящий вызов, я могу повесить трубку, используя callSid в соответствии с этим URL: 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.

Как я могу это исправить?

Мне нужна ваша помощь.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Вы получаете ошибку HTTP 400, которая BAD REQUEST. Twilio определяет это как: The data given in the POST or PUT failed validation. Inspect the response body for details. https://www.twilio.com/docs/usage/your-request-to-twilio

И у вас есть ошибка: call is not in-progress

Насколько я могу судить, ваш $ _POST [' usrclient '] не правильно. Проверьте свой POST, чтобы убедиться, что он действителен.

Вы также можете проверить свой скрипт, изменив Twiml на что-то простое и вызвав его самостоятельно. Тогда вы узнаете, сценарий это или usrclient

<Response><Say>Ahoy there</Say></Response>
0 голосов
/ 17 января 2020

Вы можете вернуть TwiML без изменения вызова, поскольку вызов не установлен. Вы вернули TwiML в URL-адресе голосового SID приложения на стороне клиента Twilio на стороне веб-сайта (twilio. js), указав ему набрать номер вашего клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...