Как поставить вызов Twilio на удержание

Я пытаюсь реализовать Twilio, но не уверен, почему я не могу сделать это правильно. Я инициировал вызов, используя стандартные процедуры Twilio от twilio.device.connect. После того, как вызов инициирован, я обновляю вызов на новый URL-адрес, чтобы приостановить его.

$client = new Services_Twilio($accountSid, $authToken); 
$call = $client->account->calls->get($call_sid); 
$call->update( 
    array( 
        "Url"    => "http://localhost/voice.xml",               
        "Method" => "POST",  
    )
);

Теперь здесь вместо того, чтобы поставить конечного пользователя на удержание, он просто отключает вызов и воспроизводит музыку на моей стороне. Почему это происходит?


person user3279694    schedule 26.08.2015    source источник
comment
Почему бы не использовать TwiML? Также вы инициируете вызов через JS-клиент? Если это так, то APP, связанный с этим, должен указывать на конечную точку, содержащую некоторый XML, где вы можете выполнить свою функцию удержания.   -  person ecorvo    schedule 27.08.2015
comment
да, это то, что я делаю, но это просто отключить вызов   -  person user3279694    schedule 08.09.2015
comment
Глядя на ваш код, который не является TwiML, вы используете REST API. Где твой TwiML?   -  person ecorvo    schedule 09.09.2015


Ответы (2)


Евангелист Twilio здесь.

Я бы посоветовал проверить, не регистрирует ли Twilio какие-либо ошибки:

https://www.twilio.com/user/account/monitor/alerts

Если вы пытаетесь перенаправить Twilio на «http://localhost», это не сработает, потому что Twilio, очевидно, не знает, как достичь локального хоста, работающего на вашей собственной машине.

Если вы хотите открыть веб-сервер, работающий на вашем локальном компьютере, в Интернете через общедоступный URL-адрес, воспользуйтесь отличным инструментом под названием ngrok.

person Devin Rader    schedule 27.08.2015
comment
нет, я не использую локальный хост, это общедоступный URL-адрес, но когда я выполняю приведенный выше код, он начинает удерживать музыку для меня, а не для конечного пользователя, а для конечного пользователя он просто отключает вызов между ними - person user3279694; 08.09.2015

причина в том, что после тега <Play> в файле "http://localhost/voice.xml"... < strong>больше не выполняется TwiML.

Решение состоит в том, чтобы перенаправить вызов обратно в исходное состояние.

person Vivek Kumar    schedule 04.05.2016