We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics
Custom Error Voices
-
- Posts: 50
- Joined: Wed Oct 04, 2006 1:34 pm
- Location: SOCAL
- Contact:
Custom Error Voices
I am trying to find a way to overide all default errors such as "Sorry I did not hear you" Or "Sorry, I just can't understand you" and I want to say my own thing with an audio tag. Basicaly I never want to hear anything but my prerecorded messages. I would also like to gather all possible options that could outcome as error message so I can record my own. Can you lead me to the proper area to find these?
Would I over ride error messages like so:
<form id="mainMenu">
<field name="confirmMenuChoice">
<grammar type="application/x-jsgf">1|2</grammar>
<property name="interdigittimeout" value="100ms" />
<prompt timeout="4s">
<audio src="http://mysite.com/saysomething.mp3" />
</prompt>
<filled>
<if cond="confirmMenuChoice==1">
<goto next="unsubscribe.vxml" maxage="0"/>
<elseif cond="confirmMenuChoice==2"/>
<goto next="leavemessage.vxml" maxage="0"/>
</if>
</filled>
<noinput>
<reprompt/>
</noinput>
<nomatch>
<audio src="http://mysite.com/tryagain.mp3" />
<reprompt/>
</nomatch>
</field>
</form>
Thank you for all you help
Would I over ride error messages like so:
<form id="mainMenu">
<field name="confirmMenuChoice">
<grammar type="application/x-jsgf">1|2</grammar>
<property name="interdigittimeout" value="100ms" />
<prompt timeout="4s">
<audio src="http://mysite.com/saysomething.mp3" />
</prompt>
<filled>
<if cond="confirmMenuChoice==1">
<goto next="unsubscribe.vxml" maxage="0"/>
<elseif cond="confirmMenuChoice==2"/>
<goto next="leavemessage.vxml" maxage="0"/>
</if>
</filled>
<noinput>
<reprompt/>
</noinput>
<nomatch>
<audio src="http://mysite.com/tryagain.mp3" />
<reprompt/>
</nomatch>
</field>
</form>
Thank you for all you help
IVR code will override the default noinput and nomatch cases
Hello,
The approach you are taking is correct. That IVR code will override the default <noinput> and <nomatch> cases. The other thing you may want to do is globally <catch> all IVR error messages and play a generic IVR error message for the caller. The default error message is: "A serious error of type {error_type} has occurred exiting."
Regards,
Plum Support
The approach you are taking is correct. That IVR code will override the default <noinput> and <nomatch> cases. The other thing you may want to do is globally <catch> all IVR error messages and play a generic IVR error message for the caller. The default error message is: "A serious error of type {error_type} has occurred exiting."
Code: Select all
<?xml version="1.0"?>
<vxml version="2.0">
<catch event="error.*">
<prompt bargein="false">
<audio src="generalerror.wav">
I'm sorry, this system is experiencing technical difficulties. Please try your call again later.
</audio>
</prompt>
<exit/>
</catch>
<form id="mainMenu">
<field name="confirmMenuChoice">
<grammar type="application/x-jsgf">1|2</grammar>
<property name="interdigittimeout" value="100ms" />
<prompt timeout="4s">
<audio src="http://mysite.com/saysomething.mp3" />
</prompt>
<filled>
<if cond="confirmMenuChoice==1">
<goto next="unsubscribe.vxml" maxage="0"/>
<elseif cond="confirmMenuChoice==2"/>
<goto next="leavemessage.vxml" maxage="0"/>
</if>
</filled>
<noinput>
<reprompt/>
</noinput>
<nomatch>
<audio src="http://mysite.com/tryagain.mp3" />
<reprompt/>
</nomatch>
</field>
</form>
</vxml>
Plum Support
Last edited by support on Sat Feb 20, 2010 3:46 pm, edited 4 times in total.
-
- Posts: 50
- Joined: Wed Oct 04, 2006 1:34 pm
- Location: SOCAL
- Contact:
I am getting an error saying
DocumentParser::FetchDocument - Parse error in file "http://site.com/root.vxml ", line 31, column 26 - The values for attribute 'event' must be names or name tokens
When I add this:
<catch event="error.*">
<prompt bargein="false">
<audio src="generalerror.wav">
</prompt>
<exit/>
</catch>
I looked at catch in the documentation and and it said:
DocumentParser::FetchDocument - Parse error in file "http://site.com/root.vxml ", line 31, column 26 - The values for attribute 'event' must be names or name tokens
When I add this:
<catch event="error.*">
<prompt bargein="false">
<audio src="generalerror.wav">
</prompt>
<exit/>
</catch>
I looked at catch in the documentation and and it said:
I don't think this wild card is working properly. Can you please help me out?The event or events to catch. A space-separated list of events may be specified, indicating that this <catch> element catches all the events named in the list. In such a case a separate event counter (see "count" attribute) is maintained for each event. If the attribute is unspecified, all events are to be caught.
can't use * as a wildcard in IVR application
Hi,
You can't use * as a wildcard in IVR application. Just use <catch event="error" /> instead; it will catch all IVR error.* events for you.
Regards,
Plum Support
You can't use * as a wildcard in IVR application. Just use <catch event="error" /> instead; it will catch all IVR error.* events for you.
Regards,
Plum Support
Last edited by support on Sat Feb 20, 2010 3:46 pm, edited 3 times in total.
-
- Posts: 50
- Joined: Wed Oct 04, 2006 1:34 pm
- Location: SOCAL
- Contact:
The following script did not catch all errors: The scratchpad main_mener.vxml does not exsists so I tried the call and instead of saying "I'm sorry, this system is experiencing technical difficulties. Please try your call again later" it said "invalid scratchpad"
Also is there a way to overide built in responses. I also need to override things like "Sorry, I did not understand you" after a user enters 4 digits when only 3 is required.
Thank you a lot for your help. This would be a project in the gutter without your help.
Also is there a way to overide built in responses. I also need to override things like "Sorry, I did not understand you" after a user enters 4 digits when only 3 is required.
Thank you a lot for your help. This would be a project in the gutter without your help.
Code: Select all
<?xml version="1.0"?>
<vxml version="2.0">
<catch event="error">
<prompt bargein="false">
I'm sorry, this system is experiencing technical difficulties. Please try your call again later.
</prompt>
<exit/>
</catch>
<property name="inputmodes" value="dtmf"/>
<!-- Declare Variables -->
<var name="GVphone" expr="'123'"/>
<var name="document.phone_number" expr="'1234567891'"/>
<var name="document.tempPhoneNumber" expr="'1234567891'"/>
<!-- Prompt Caller ID information -->
<form id="getNumber">
<property name="termmaxdigits" value="true"/>
<field name="enterNumber" type="digits?length=10">
<prompt>Please enter your 10 digit phone number on your numeric keypad</prompt>
<filled>
<assign name="document.tempPhoneNumber" expr="enterNumber"/>
<goto next="#confirmMobileNumber"/>
</filled>
<noinput>
<reprompt/>
</noinput>
</field>
</form>
<!-- Confirm that thier entered number is correct -->
<form id="confirmMobileNumber">
<field name="confirmNumberChoice" type="digits?length=1">
<grammar type="application/x-jsgf">1|2</grammar>
<property name="interdigittimeout" value="4s"/>
<prompt timeout="6s">You entered <say-as type="acronym">
<value expr="document.tempPhoneNumber"/>
</say-as>. If this phone number is correct, press one, if not press two.</prompt>
<filled>
<if cond="confirmNumberChoice==1">
<assign name="document.phone_number" expr="document.tempPhoneNumber"/>
<assign name="application.GVphone" expr="document.tempPhoneNumber"/>
<goto next="main_mener.vxml" maxage="0"/>
<elseif cond="confirmNumberChoice==2"/>
<goto next="#getNumber"/>
</if>
</filled>
<noinput>
<reprompt/>
</noinput>
<nomatch>
Sorry, that was not one of the choices.
<reprompt/>
</nomatch>
</field>
</form>
</vxml>
put absolute URL for the main_mener.vxml page so IVR platfor
In addition to the "error" event handler, you can add a noinput and nomatch handler as well at the top of your vxml document.
As far as your reference to "main_mener.vxml" is concerned -- if your IVR code below is a scratchpad script, it'll be looking for main_mener.vxml relative to the scratchpad location. That won't work -- instead you should put the absolute URL for the main_mener.vxml page so that the IVR platform can load it from your web server.
As far as your reference to "main_mener.vxml" is concerned -- if your IVR code below is a scratchpad script, it'll be looking for main_mener.vxml relative to the scratchpad location. That won't work -- instead you should put the absolute URL for the main_mener.vxml page so that the IVR platform can load it from your web server.
Last edited by support on Sat Feb 20, 2010 3:47 pm, edited 3 times in total.
-
- Posts: 50
- Joined: Wed Oct 04, 2006 1:34 pm
- Location: SOCAL
- Contact:
I don't think you understood my question let me reword it a little better.As far as your reference to "main_mener.vxml" is concerned -- if your code below is a scratchpad script, it'll be looking for main_mener.vxml relative to the scratchpad location. That won't work -- instead you should put the absolute URL for the main_mener.vxml page so that the platform can load it from your web server.
I am trying to override what the system said. I know the file can't be found.... I just don't want it to say "Scratchpad not found" I want it to say something like "I'm sorry, this system is experiencing difficulties, please try again later". The <catch event="error"> is not catching this.
Is this possible?
Thank you again for your help[/code]
IVR code issue with relative reference
There's no way to override the "scratchpad not found" message because it's a valid response from the IVR server that doles out the scratchpad scripts but can not find the one you're asking for. In other words, your <goto next="main_mener.vxml" maxage="0"/> is successful -- but it's going to a scratchpad server that can't find the reference and produces, instead, a stub page with a prompt that says the scratchpad you're asking for doesn't exist.
To prevent that message from coming up, you need to make sure your off-page references are clean in the first place -- which is why I suggested you use an absolute reference for your next IVR attribute rather than the relative reference to "main_mener.vxml"
To prevent that message from coming up, you need to make sure your off-page references are clean in the first place -- which is why I suggested you use an absolute reference for your next IVR attribute rather than the relative reference to "main_mener.vxml"
Last edited by support on Sat Feb 20, 2010 3:47 pm, edited 2 times in total.
-
- Posts: 50
- Joined: Wed Oct 04, 2006 1:34 pm
- Location: SOCAL
- Contact:
What about when a user does not respond to a prompt and it says
"I did not understand you"<reprompt/>
"I still don't understand"<reprompt/>
"I'm Sorry, I just can't understand you"<reprompt/>
Can I override those with my own Audio tag. I think that is the only other thing I would like to override..
Thanks again for all your help
"I did not understand you"<reprompt/>
"I still don't understand"<reprompt/>
"I'm Sorry, I just can't understand you"<reprompt/>
Can I override those with my own Audio tag. I think that is the only other thing I would like to override..
Thanks again for all your help
specify three noinput handlers into your IVR code
Yes, you can put <audio> tags inside of a <noinput> handler. For the IVR case you describe below, you could specify three noinput handlers into your IVR code like this:
Code: Select all
<noinput count="1">
<prompt>
<audio src="noinput_1.wav">I did not understand you</audio>
</prompt>
<reprompt/>
</noinput>
<noinput count="2">
<prompt>
<audio src="noinput_2.wav">I still don't understand</audio>
</prompt>
<reprompt/>
</noinput>
<noinput count="3">
<prompt>
<audio src="noinput_3.wav">I'm Sorry, I just can't understand you</audio>
</prompt>
<reprompt/>
</noinput>