inputfieldvxmlvoicexml

VXML: Field input, forward typing


Situation:

I have two VXML documents that are part of one flow. In the first document the user is prompted to enter a number (dtmf, max = 3 digits). The second document prompts the user to enter another number (dtmf, max = 10 digits).

Problem:

When the user is prompted to enter the first number and he enters 4 digits (e.g. 1234), the last number (4) is used as input for the second field.

Expected:

The last number must be ignored. I expect that a "nomatch" event is thrown because I define that the maxlength = 3.

Document 1:

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

Document 2:

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

Question: How can I solve this issue in VXML?


Solution

  • Try to set "termtimeout" property.

    It means "The terminating timeout to use when recognizing DTMF input."

    For example

    <?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>