Twilio PHP SDK, сделать исходящий вызов, получить DTMF-вход от пользователя и перенаправить вызов

Я пытаюсь сделать исходящий звонок из Twilio, используя Twilio PHP SDK. Но я не могу понять, как извлечь DTMF-вход из этого вызова, а затем выполнить какое-то действие на основе этого ввода, например, подключить вызываемый номер к другому номеру, если нажата 1.

Вот мой код для исходящего звонка:

$call = $client->calls->create(
$phone, "+1xxxx",
array(
"url" => "http://demo.twilio.com/docs/voice.xml",
"method" => "GET",
"statusCallbackMethod" => "POST",
"statusCallback" => "http://xxxx.com/twilio/call_xxx",
"statusCallbackEvent" => array(
"answered")
)
);

И код для обработки запроса webhook:

    //Use the Twilio PHP SDK to build an XML response
$response = new Twiml();

//If the user entered digits, process their request
if(array_key_exists('Digits', $_POST)) {
switch ($_POST['Digits']) {
case 1:
$dial = $response->dial();
$dial->number($phone);
break;
default:
$response->say('Goodbye.');
}
} else {

//If no input was sent, use the <Gather> verb to collect user input
$gather = $response->gather(array('numDigits' => 1));

// use the <Say> verb to request input from the user
$gather->say("This is xxx. $name just requested a voucher. Press 1 to connect with them now.");

// If the user doesn't enter input, loop
$response->redirect('/twilio/call_xxxx');
}

//Render the response as XML in reply to the webhook request
header('Content-Type: text/xml');
echo $response;

Где я делаю ошибку?

2

Решение

Вы делаете ошибку здесь, основываясь на вашем коде это:

"url" => "http://demo.twilio.com/docs/voice.xml",
"method" => "GET",

действительно должно быть:


"url" => "http://xxxx.com/twilio/call_xxx",
"method" => "POST",

получить TwiML для потока вызовов, а также передать Digits ты ищешь.

Что касается statusCallback, если вам это нужно, вам придется создать другую конечную точку с другим кодом (имеет отношение к отслеживанию статуса вызова).

Я бы посоветовал, чтобы он сначала работал без statusCallback (вы можете временно удалить строки statusCallback …).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]