#twilio
Вопрос:
Я пытаюсь написать какой-нибудь TwiML, в котором пользователь будет вводить номер телефона с клавиатуры, и я хочу ответить и повторить введенный им номер.
<Response>
<Gather input="speech dtmf" finishOnKey="#" timeout="4" numDigits="5" action="https://handler.twilio.com/twiml/EHb45a578e1b6a7a33187bb7e72f721dd1" method="GET">
<Say>Please enter your number</Say>
</Gather>
<Say>You entered: {Digits}</Say>
</Response>
Ответ №1:
Евангелист-разработчик Twilio здесь.
При использовании <Gather>
вы устанавливаете action
атрибут для URL-адреса. Как только <Gather>
пользователь запишет ответ пользователя, он отправит новый HTTP-запрос на этот action
URL-адрес и не продолжит текущий TwiML. Таким образом, в вашем примере последнее <Say>
использоваться не будет.
Похоже, вы установили свой action
URL-адрес в ячейку TwiML. С помощью ячеек TwiML вы можете выполнить некоторую интерполяцию шаблона на основе параметров входящего запроса. Будет указан параметр, содержащий цифры, которые нажал пользователь Digits
.
Итак, вам нужна новая ячейка TwiML, в которой есть только вторая <Say>
ячейка из вашего примера, и используйте эту ячейку TwiML в качестве action
URL-адреса.
<Response>
<Say>You entered: {Digits}</Say>
</Response>
Если вы хотите выйти за рамки ячеек TwiML, вам нужно будет написать приложение, которое может получать запросы на веб-соединение от Twilio, анализировать ответ и считывать Digits
параметр (или SpeechResult
параметр, так как в вашем input
атрибуте тоже есть «речь»).