Twilio API: передача соединения на переадресованный номер?

#twilio #twilio-php #twilio-twiml

#twilio #twilio-php #twilio-twiml

Вопрос:

Я выполняю исходящий вызов, и на основе автоматического сообщения, от которого звонит Twilio, он вызывает мой телефон с подключением.

Вот сценарий, который устанавливает телефонный звонок.

 import os
from twilio.rest import Client


account_sid = "xxxx"
auth_token = "xxxx"
client = Client(account_sid, auth_token)

call = client.calls.create( url='http://myhost.com/rec.php',to=' 1234',from_=' 9876')

print(call.sid)
 

Телефонный звонок выполняется, и сценарий действия отправляет ответ TwiML gather. Вот rec.php

 echo '<Response>
  <Gather input="speech"
        partialResultCallback="http://myhost.com/partial.php"
        action="http://myhost.com/finalresult.php">
  </Gather>
</Response>
 

У меня есть частичная страница, записывающая текст. Но когда я переадресовываю вызов, мой телефон звонит в течение одной секунды, а затем отключается. В отладчике также нет ошибок.

Вот partial.php

 if(contains("To continue in English", $_REQUEST['UnstableSpeechResult'])){

    echo "<?xml version="1.0" encoding="UTF-8"?>
          <Response>
           <Dial> myPhoneNumber</Dial>
          </Response>";
}
 

вот конечный результат, который, я думаю, вызывается по завершении телефонного звонка? я не уверен.

 if(contains("To continue in English", $_POST['SpeechResult'])){
        echo "<?xml version="1.0" encoding="UTF-8"?>
                <Response>
                        <Dial> myPhoneNumber</Dial>
                </Response>";

}
 

Ответ №1:

Согласно документации, partialResultCallback не обрабатывает TwiML.

Веб-ссылки, которые Twilio делает на ваш обратный вызов partialResultCallback, являются асинхронными. Они не принимают никаких TwiML в ответ. Если вы хотите предпринять дополнительные действия на основе этого частичного результата, вам необходимо использовать REST API для изменения вызова.

Не уверен, как звонит ваш телефон, учитывая вышесказанное. Любые дополнительные сведения, которые вы можете предоставить, помогут устранить проблему.

Комментарии:

1. я обновил вопрос с помощью finalresult.php

2. URL-адрес действия вызывается, когда истекает время ожидания / тайм-аута. Тайм-аут по умолчанию составляет 5 секунд, когда ничего не сказано, twilio.com/docs/voice/twiml/gather#speechtimeout . Возможно, набранный абонент вешает трубку во время выполнения вашего TwiML (поэтому он звонит вам один раз, и они зависают, что прерывает ваш вызов).

3. Лично я нет. У меня не было необходимости искать.

4. это моя ошибка. Моя учетная запись была захвачена. Я вернулся к Twilio.