twilio произносит глагол только после нажатия определенной клавиши
Вопрос
Как мне использовать альтернативное действие в twilio?То, что я пытаюсь сделать, - это захватить определенный ключ (*).Если нажать эту клавишу, она выполнит другое действие вместо того, которое используется по умолчанию.Вот что у меня сейчас есть:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather finishOnKey="*" action="/another_thing" method="POST">
<Say>Hi this is the initial message</Say>
</Gather>
<Say>Hi this is the default message. Please enter a 3 digit number</Say>
<Gather numDigits="3" action="/save_number" method="POST" />
</Response>
Итак, в принципе, я хочу подчиниться another_thing
маршрут, если нажата клавиша *.Но что в данный момент происходит, когда я нажимаю клавишу *, так это то, что она переходит к глаголу say прямо под gather.Так там написано Hi this is the default message. Please enter a 3 digit number
вместо моего ожидаемого, которое заключается в том, что оно отправится в another_thing
и выведите все, что там есть.
Возможно ли это с twilio или я делаю что-то не так?Пожалуйста, помогите.Заранее спасибо!
Если это поможет, вот что у меня есть для another_path
:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Hey whats up!</Say>
</Response>
Решение
Здесь евангелист Твилио.
Итак, вы на правильном пути.Вам нужно использовать отдельный маршрут TwiML для сообщения по умолчанию, и тогда все должно быть в порядке.Я бы также посоветовал вам использовать numDigits
вместо finishOnKey
.Если вы используете finishOnKey
, на самом деле вам не прислали этого персонажа.Более подробная информация содержится в документации для <Gather>
.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather numDigits="1" action="/another_thing" method="POST">
<Say>Hi this is the initial message</Say>
</Gather>
</Response>
Этот TwiML будет запущен, и если вызывающий абонент не нажмет клавишу, то <Gather>
будет тайм-аут (вы можете настроить его продолжительность с помощью timeout="3"
например), но он все равно отправит запрос на /another_thing
.Обратите внимание, что тайм-аут начинается после <Say>
завершает.
В вашем /another_thing
маршрут, вы можете изучить Digits
параметр, отправленный Twilio, и решите, что делать.Если они не нажимали клавишу:
<Response>
<Say>Hi this is the default message. Please enter a 3 digit number</Say>
<Gather numDigits="3" action="/save_number" method="POST" />
</Response>
Где как есть они нажали на кнопку *
ключ:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Hey whats up!</Say>
</Response>
Надеюсь, это поможет!