Как повторить значения, введенные DTMF

#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 атрибуте тоже есть «речь»).