cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1867
Views
0
Helpful
9
Replies

Why is application not being cleared in VVB?

lee yongbeom
Level 1
Level 1

In the screenshot image, the duration of one application is 8:48:26.

Why is this happening?

The problem is that this issue accumulate and increase every day.

VVB version is 11.6

vvb.png

9 Replies 9

jimmy jain
Level 4
Level 4

What is the application timeout for this VXML Application ? Have you caught all Hot-Event's ?

If this report indicates that an application is running for an unusually long time, there may be a problem with the application. The application script may not include error handling that prevents infinite retries if a call is no longer present. If the application does not receive a disconnect signal after a call, the application repeatedly retries to locate the call, and causes the application to run for an unusually long time. To prevent this problem, include the proper error handling in the application script.

Thanks for reply.

Could you show me an example?

Right Click On your VXML application in Call studio  and  verify the Session TimeOut.

Try to monitor if the duration in VVB real time monitoring and Session timeout matches.


You may want to check if below mention HotEvent are catched in your vxml Application as HotEvent's and handled properly , either hangup or go back to ICM .

telephone.disconnect.hangup

error.semantic

error.com.cisco.media.resource.failure.asr

error.com.cisco.media.resource.unavailable.tts

error.noresource

error.badfetch.http.404

error.com.cisco.media.resource.unavailable.asr

error.com.cisco.media.resource.failure.tts

error.badfetch

HotEvent.jpg

As you said, if the CVP application does not receive a disconnect event and the session is not cleared,

what events should be handled for error handling?

Why do not it get a disconnect event?

Why session is not cleared, we may need to dig more into VVB Logs.

But i believe if you set this  VXML Property "fetchtimeout " at application level, set fetchtimeout to some xxSeconds (ex fetchtimeout=50s). Voice Browser should throw this HotEvent (error.badfetch), You catch same as HotEvent in Application and gracefully hangup the call .

To solve this issue, can I set fetchtimeout on the application and add event handling to the hotevent?

Is it ok to release the call in ICM by adding all of the following events?


<catch event="vxml.session.error">

    <return event="vxml.session.error" />

  </catch>

  <catch event="telephone.disconnect.hangup">

    <return event="telephone.disconnect.hangup" />

  </catch>

  <catch event="telephone.disconnect">

    <return event="telephone.disconnect" />

  </catch>

  <catch event="error.unsupported.object">

    <return event="error.unsupported.object" />

  </catch>

  <catch event="error.unsupported.language">

    <return event="error.unsupported.language" />

  </catch>

  <catch event="error.unsupported.format">

    <return event="error.unsupported.format" />

  </catch>

  <catch event="error.unsupported.element">

    <return event="error.unsupported.element" />

  </catch>

  <catch event="error.unsupported.builtin">

    <return event="error.unsupported.builtin" />

  </catch>

  <catch event="error.unsupported">

    <return event="error.unsupported" />

  </catch>

  <catch event="error.semantic">

    <return event="error.semantic" />

  </catch>

  <catch event="error.noauthorization">

    <return event="error.noauthorization" />

  </catch>

  <catch event="error.eventhandler.notfound">

    <return event="error.eventhandler.notfound" />

  </catch>

  <catch event="error.connection.noroute">

    <return event="error.connection.noroute" />

  </catch>

  <catch event="error.connection.noresource">

    <return event="error.connection.noresource" />

  </catch>

  <catch event="error.connection.nolicense">

    <return event="error.connection.nolicense" />

  </catch>

  <catch event="error.connection.noauthorization">

    <return event="error.connection.noauthorization" />

  </catch>

  <catch event="error.connection.baddestination">

    <return event="error.connection.baddestination" />

  </catch>

  <catch event="error.condition.baddestination">

    <return event="error.condition.baddestination" />

  </catch>

  <catch event="error.com.cisco.resource.failure.tts">

    <return event="error.com.cisco.resource.failure.tts" />

  </catch>

  <catch event="error.com.cisco.media.resource.unavailable">

    <return event="error.com.cisco.media.resource.unavailable" />

  </catch>

  <catch event="error.com.cisco.handoff.failure">

    <return event="error.com.cisco.handoff.failure" />

  </catch>

  <catch event="error.com.cisco.callhandoff.failure">

    <return event="error.com.cisco.callhandoff.failure" />

  </catch>

  <catch event="error.com.cisco.aaa.authorize.failure">

    <return event="error.com.cisco.aaa.authorize.failure" />

  </catch>

  <catch event="error.com.cisco.aaa.authenticate.failure">

    <return event="error.com.cisco.aaa.authenticate.failure" />

  </catch>

  <catch event="error.badfetch.https">

    <return event="com.audium.error.badfetch.https" />

  </catch>

  <catch event="error.badfetch.http">

    <return event="com.audium.error.badfetch.http" />

  </catch>

  <catch event="error.badfetch">

    <return event="com.audium.error.badfetch" />

  </catch>

  <catch event="error">

    <return event="error" />

  </catch>

  <catch event="disconnect.com.cisco.handoff">

    <return event="disconnect.com.cisco.handoff" />

  </catch>

  <catch event="connection.disconnect.hangup">

    <return event="connection.disconnect.hangup" />

  </catch>

  <catch event="connection.disconnect">

    <return event="connection.disconnect" />

  </catch>

Yes you can use a CVPSubDialogReturn element, pass back control to ICM and release the call gracefully in ICM.

janinegraves
Spotlight
Spotlight

You should go into the Error Log of the application on C:/cisco/vxmlserver/applications/appname/logs/ and look for "Session Timeout" - this will occur if the VXML Server has too much inactivity and doesn't know the call has left VXML Server. It's indicative of a bug in the vb/vxmlserver interface somewhere.  Then look in the activity log (use the ID at the left most of the error log to tie it to a specific call) and see what the name of the elements were just prior to the timeout.

There are a few scenarios where this occurs, often with Subdialog Invoke (as  in the courtesy callback apps).

If you don't see a timeout, it's possible the caller was actually engaged in the application for 8 minutes. For example, Courtesy Callback keeps the caller in the app for as long as necessary based upon estimated wait time.

Catching exceptions in the HotEvent elements will NOT eliminate the 8 minute duration. And may make it harder to track the actual underlying problem, as VXML Server will suppress logging the events received from the VB.

If your Studio apps should complete within 180 seconds, you can change the ICM Network VRU Script (named GS,Server,V) and set the Timeout to 180 (I believe this is the minimum) - done in Config Mgr/Tools/ListTools/Network VRU Script List. Then ICM will pull the call out of the CVP app after 180 seconds.

Also VVB still has some bugs, so it could possibly be a VVB problem. There are a couple of ES fixes. You should be sure you're up to patch level.

If you  can provide more details on what the app is doing and perhaps post some activity and error logs from  VXMLServer/applications/appname/ showing one of the 8 minute calls, that would make it easier to help.