VXML: ввод в поле, прямой ввод

#input #field #vxml #voicexml

#ввод #поле #vxml #voicexml

Вопрос:

Ситуация:

У меня есть два документа VXML, которые являются частью одного потока. В первом документе пользователю предлагается ввести число (dtmf, max = 3 цифры). Во втором документе пользователю предлагается ввести другое число (dtmf, max = 10 цифр).

Проблема:

Когда пользователю предлагается ввести первое число, и он вводит 4 цифры (например, 1234), последнее число (4) используется в качестве ввода для второго поля.

Ожидаемый:

Последнее число должно быть проигнорировано. Я ожидаю, что генерируется событие «nomatch», потому что я определяю, что maxlength = 3.

Документ 1:

 <form>
<field name="input1" type="digits?minlength=1;maxlength=3">         
    <audio src="prompt1"/>          
    <filled>            
        <submit next="next.jsp" namelist="input1" />            
    </filled>
</field>
  

Документ 2:

 <form>
<field name="input2" type="digits?minlength=1;maxlength=10">            
    <audio src="prompt2"/>          
    <filled>            
        <submit next="next2.jsp" namelist="input2" />           
    </filled>
</field>
  

Вопрос:
Как я могу решить эту проблему в VXML?

Ответ №1:

Попробуйте установить свойство «termtimeout».

Это означает «Время ожидания завершения, используемое при распознавании ввода DTMF».

Например

 <?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1">
    <form>
        <property name="termtimeout" value="0s" />
        <field name="input1" type="digits?minlength=1;maxlength=3">
            <filled>
                <submit next="next.jsp" namelist="input1" />
            </filled>
        </field>
    </form>
</vxml>