vxml

vXML number readback error


ANSWER : <say-as interpret-as="number_digit"> Per https://msdn.microsoft.com/en-us/library/dd450828(v=office.13).aspx

I have a simple field (shown below) to collect the callers 9 digit account number.

It works correctly in that it collects the number, and it reads it back. My problem is that when it reads back the number, it considers it a whole number. For example if they enter 111111111 it reads it as 111,111,111 (one hundred and eleven million..ect.)

Obviously I would like it to read back one digit at a time, example:

"You entered 1, 2, 3, ect. "

Here is my simple code:

<field name="accountnumber" type="digits?minlength=9;maxlength=9">            
    <prompt>
What is your 9 digit account number
</prompt>         
    <filled>            
                <prompt>  You said <value expr="accountnumber"/> </prompt>
    </filled>
</field>

Solution

  • You need to place your <value> inside a <say-as> tag:

    <say-as interpret-as="digits">
      <value expr="accountnumber"/>
    </say-as>
    

    The interpret-as attribute may somewhat depend on what your VXML engine supports. For example, Voxeo uses "digits", Microsoft seems to use "number:digit", and the SSML 1.0 spec says "characters". Some also use the attribute type instead of interpret-as.