This is regarding CVP 9.0, here Media server is a dedicated separate server(not co-resident).
If any prompt gets missed out in Media server by user mistake, then VXML gateway(iOS browser) returns an error badfetch and caller is getting dropped abruptly after survivability.
Is there any option where this situation can be handled more gracefully through 'CVP studio' and 'VXML code', like caller moves to the next option bypassing that audio prompt and such event is logged so that necessary action can be taken timely?
You can handle this event in Your Call studio with the help of hot events.
in the hot events node you can catch error.badfetch and transfer the path accordingly.
Thank you Chintan!!
I have received one problem regarding to the approach suggested by Chintan as below, your views ??
"We used Hot events in case of bad fetch due to communication problem between the components and bad fetch due to unavailability of resource.
But currently for any CVP application it is not recommended to handle bad fetch from application and same is not followed for any of the projects,
It is recommended to handle any bad fetch issues from ICM and the same is followed in current TTSL production system.
Cause : We found multiple call issue due to handling of bad fetch in the application which effected the reporting."
we are also using Hot event in CVP application to capture the error and will take appropriate action according to call flow.
But my CVP application quite complex and we want to know the name of audio file which is missing, so my support team can see the name of audio file in logs and replace the same in media server .
Could you please help, how to capture missing audio file name in cvp application instead of voice gateway?
Unfortunately, the VoiceXML Gateway doesn't return the URI of the
missing audio file to VXML Server.
So you have 3 options
1) Instead of looking in the VXML Server logs, monitor the IIS logs and
look for the 404 errors (C:\inetpub\logs\Logfiles\W3SVC1)
or 2) Instead of using the Audio element in Studio, use the element that
Paul Tindall posted on the DevNet forum - it allows you to specify that
the VXML Gateway should play the modified Audio element's audio to
completion. Therefore, 404 badfetch.http exceptions will be logged with
the audio element requesting them. This will at least point you in the
right direction - you'll know which Studio element requested the missing
or 3) Request the cisco modify the VXML Gateway's voice browser to
return the URI of the missing audio back to VXML Server to report.
Hi Janine and Hemal,
Thank u very much for your valuable input. could you please share the details or link of element that Paul Tindall posted on the DevNet forum.
I think Janine was referring to this one.
Besides the points that Janine listed you can also write a script that will go and filter out all bad fetches from activity logs. Also do you know that sometime all 404 bad fetches are not necessarily missing audios.
It can be caused by gateway issues also.
Hope all is well .
Can you please post a screenshot of a basic script showing how to use the HotEvent node. I tried it in my lab with no success and couldn't find any examples in the published documentation and discussions.
Thank you in advance.
hey lara, do you want screenshot now also?
i was just away from the forum but can provide with the example screen shot
It would be highly appreciated if you can post a screenshot of a basic HotEvent configuration.
you can defined it as above, one thing i found while working with hot event was the event should match to what you see in your error logs.
Thank you for the above.
Actually I need to know to where this node should be connected. Where should it be placed in the script? where do I have to connect the GoTo exit state?
Thank you in advance.
It depends on your business requirements.
I would prefer to connect exit state of Hot Events to CVP Sub-dialog return and send it to ICM for Queuing!!
In my opinion something potential would have failed on CVP and its not good idea to continuing the call treatment on the same.
I got your point thank you. But where this node should be placed within the script?
Anywhere in your application.
you can have multiple hot-event elements catching different error events (e.g. HTTP badfetrch, ASR/TTS no resource etc).
and connect all of them to single CVP subd.
The HotEvent element is a global VoiceXML event handler. You can put it anywhere in the application (I used to put it on a separate Studio page named ErrHandling). Nothing points to the HotEvent element. You connect its exit state to an Audio element to tell the caller there's a problem, then connect to CVP_Subd_Return to return to ICM and let it know there's an issue.
Starting in CVP10.5 you can also catch events in the Events tab of almost every element if you want different handling of an event for different elements.
The StartOfCall element also have an Events tab, where you could catch both Java Exceptions (like Say it Smart exceptions) and VXML Events (like error.badfetch.http.404) globally for the entire application.
I need some help on this same issue with hot events. However, I'm using studio 11.5 and the hot events do not seem to be working. I need to sanity check the log that a hot event is monitoring?
I have an error being returned by the new Rest Element that I can't seem to capture and the application is just ending.
Wondering if its a bug or I'm in the wrong log
This is in the application error logs
A built-in element encountered an exception of type com.sun.jersey.api.client.ClientHandlerException.
This error is in the call server error logs
I haven't used CVP11.5 yet, but in CVP11 rest errors can't be caught as
You can go into the Events tab of the RestClient element and catch the
Java Events where you specify java.lang.Exception (case-sensitive) -
that'll catch all java exceptions in that element.
I got that error recently but don't remember why - it could be that no
results were returned from the web service but I had something on the
XMLPath/JSONPath line - it's best NOT to put anything on that line until
you've used a Decision element and checked if the Element Data for the
Rest Element named status_code is 200 (or whatever your success code it).