Hi,
The way the termmaxdigits property works is that if the 'length' or 'maxlength' properties for the built-in digits grammar are matched then the input window will immediately end and the script will continue. However, since you accept variable length input, the input will not terminate when the minlength digits are entered.
There are a few ways we would suggest handling this case.
Firstly, we have found that an interdigittimeout of around 3s is sufficient for mostly all users, even if they are reading a number off of a credit card or something along those lines. This value is also a reasonable wait time after entering digits without becoming too long to be confusing to the caller.
Additionally, you can use the 'termchar' value to immediately terminate input at any input field. The termchar is a special character (the '#' key by default) that will immediately end the input window for an input field. You could use this termchar as a manual way for your callers to end input once they have finished entering digits. This is usually done in the prompt played to the user, either at a specific prompt or as a note at the beginning of the call. For instance, you could change the prompt to "Please enter the check sequence number located on the check. Please include the leading zeroes. You can press the pound key when you are finished entering your sequence number."
You can specify your own value for the termchar by setting the termchar property in your code:
http://www.plumvoice.com/docs/dev/voice ... s:termchar
One thing we would like to note, as you mentioned you have numerous spots in your code where minlength and maxlength are not defined and you are still experiencing these delays. Although we would suggest using the termchar and reducing the interdigittimeout as we have mentioned above, we thought it would be helpful to note that you can globally define properties in a root document file and then include this document in any file in which you would like these properties to be set.
An example of a root.vxml document that you could use to define these global properties would be:
Code: Select all
<?xml version="1.0"?>
<vxml version="2.0">
<property name="inputmodes" value="dtmf"/>
<property name="interdigittimeout" value="3s"/>
<property name="termmaxdigits" value="true"/>
</vxml>
You could then include this file in any document in which you wish to use these properties by defining the application attribute in your <vxml> tag definition as such:
Code: Select all
<vxml version="2.0" application="root.vxml">
This way, you don't have to worry about duplicating the properties within each script you write.
Hopefully that helps you with your desired result, but feel free to ask any additional questions.
Regards,
Plum Support