Here is an example of what my VXML looks like
Code: Select all
<?xml version="1.0"?>
<vxml version="2.1">
<catch event="connection.disconnect.hangup error.disconnect.hangup">
<exit/>
</catch>
<catch event="nomatch" count="1">
<prompt> this is the first nomatch error </prompt>
<reprompt/>
</catch>
<catch event="nomatch" count="2">
<prompt> this is the second nomatch error </prompt>
<reprompt/>
</catch>
<catch event="nomatch" count="3">
<prompt> this is the last nomatch error </prompt>
</catch>
<catch event="noinput" count="1">
<prompt> this is the first noinput error </prompt>
<reprompt/>
</catch>
<catch event="noinput" count="2">
<prompt> this is the second noinput error </prompt>
<reprompt/>
</catch>
<catch event="noinput" count="3">
<prompt> this is the last noinput error </prompt>
</catch>
<form id="app_builder_main_form_id">
<field type="digits?length=3" name="beddbecadee">
<grammar type="application/srgs+xml" root="ROOT" mode="dtmf">
<rule id="ROOT" scope="public">
<one-of>
<item>
"9"
<tag> tagged = "repeat_prompt_key"; </tag>
</item>
</one-of>
</rule>
</grammar>
<prompt> Enter any 3 digits or 9 to repeat </prompt>
<filled>
<if cond="beddbecadee.tagged || beddbecadee == 9">
<goto nextitem="beddbecadee" />
<else />
<prompt>Great you entered <value expr="beddbecadee.tagged || beddbecadee" /></prompt>
</if>
</filled>
</field>
</form>
</vxml>
Voice: Enter any 3 digits or 9 to repeat
Human: Press 9
Voice: Enter any 3 digits or 9 to repeat
Human: Press 3 (Throws no match)
Voice: This is the first no match error
Voice: Enter any 3 digits or 9 to repeat
...
Current Result:
Voice: Enter any 3 digits or 9 to repeat
Human: Enters 9
Voice: Enter any 3 digits or 9 to repeat
Human: Enters 3 (Throws no match)
Voice: This is the first no match error
Disconnects
Notice how the execution does not properly reprompts after the catch not match error. I can confirm the reprompt works ok if you do not pass through the <goto> item before for instance:
This works Ok:
Voice: Enter any 3 digits or 9 to repeat
Human: Press 5 (Throws no match)
Voice: This is the first no match error
Voice: Enter any 3 digits or 9 to repeat (reprompted)
Human: Press 546
Voice:Great you entered 546
What can I be doing wrong? is there a way to let the FIA understand the prompt that was previously played after a goto tag?