883
Views
0
Helpful
0
Comments

Options
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 01-24-2014 11:54 AM
This document was generated from CDN thread
Created by: David Robinson on 26-03-2009 04:01:43 PM
I'm working with a customer that has a Studio app that does a database lookup. Periodically this database lookup performance degrades.
The app is invoked by ICM Run External Script.
Expectation is that DB Lookup will occur within 2 seconds.
What we would like to do is have the app session timeout expire in 2 seconds + some value, probably 2 seconds more for a total of 4 seconds, so in case the DB gets hung, the app will exit back to ICM and let the ICM script continue gracefully.
Understanding is that general settings / session timeout value is an inactivity countdown between the VXML GW and the VXML Server. If the VXML GW has not heard from the VXML Server within the session timeout value, then the app will terminate and release the VXML Server license.
Questions:
1) When the session timeout expires is there some kind of condition/error code that occurs by default that can be returned to ICM? If so, where is this set and can it be altered by the Studio app?
2) When a session timeout expires for the app, does normal exit process work? For example will this invoke a subdialog return step?
3) If the app has an Endpoint setting of "on call end -" will this be invoked when the session timeout expires?
4) Lowest value that can be set for session timeout in Studio is 1 minute. This is stored in seconds in the VXML Server app settings.xml. Would it be possible to lower this value to 4-5 seconds in the settings.xml? Of course this would be a manual process and would have to be reset every time the app was deployed.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 26-03-2009 04:34:45 PM
The Session Timeout that you are referring to (configured in Studio) is
different from what you describe.
The Session Timeout is how long Vxml Server (!) waits for the Gateway to
complete each vxml page and come back to Vxml Server with the response.
This is so that Vxml Server can release its license if the Gateway goes
away and doesn't come back asking for the next page. This rarely occurs,
but does occasionally occur.
When the Session Timeout occurs, the application will visit the 'Error
Element' (if there's one configured) and in the End of Call java class
(if you write one), you can access 'call result' which will have the
value 'timeout' and 'how call ended' will have the value
'app_session_complete'
The timer which the Gateway uses to time responses from the Vxml Server
is called 'timeout' and I think this is the one you are interested in.
1) The default timeout can be set on the gateway using the command:
'http client response timeout 10' (10sec default timeout)
2) And/or it can be set in the Studio Application's Project
/Properties/RootDocSettings/VoiceXML Property to override the gateway
setting for that phone call's visit to the app name: timeout
value: 20s (you MUST use the time unit 's')
3) And/or it can be set in any Voice Element in its Settings
tab/VoiceXML Properties to temporarily override those mentioned above,
but ONLY until the next vxml page is sent to the gateway name:
timeout value: 10s (you MUST use the time unit 's')
When this timeout value is exceeded, the gateway sends the event
'error.badfetch' or error.badfetch.http to the Vxml Server, where you
can use a HotEvent element to specify one of these events and then
handle it 'gracefully' (Use 2 hotEvent elements to catch both of these
events).
If you look in the Cisco Vxml Features guide, it claims the following
events are thrown by the gateway and can be caught
using a HotEvent element (but I can't vouch for this):
error.badfetch.http.-2 refers to a timeout error (has a connection, but hasn't received a response yet)
error.badfetch.http.-7 refers to a connection error (can't get or lost the connection)
error.badfetch.http.-6 refers to a buffer overload error
Janine
www.TrainingTheExperts.com
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> I'm working with a customer that has a Studio app that does a database
> lookup. Periodically this database lookup performance degrades.Â
> Â
> The app is invoked by ICM Run External Script.
> Expectation is that DB Lookup will occur within 2 seconds.
> Â
> What we would like to do is have the app session timeout expire in 2
> seconds + some value, probably 2 seconds more for a total of 4
> seconds, so in case the DB gets hung, the app will exit back to ICM
> and let the ICM script continue gracefully.
> Â
> Understanding is that general settings / session timeout value is an
> inactivity countdown between the VXML GW and the VXML Server. If the
> VXML GW has not heard from the VXML Server within the session timeout
> value, then the app will terminate and release the VXML Server license.
> Â
> Questions:
> Â
> 1) When the session timeout expires is there some kind of
> condition/error code that occurs by default that can be returned to
> ICM? If so, where is this set and can it be altered by the Studio app?
> 2) When a session timeout expires for the app, does normal exit
> process work? For example will this invoke a subdialog return step?Â
> 3) If the app has an Endpoint setting of "on call end -" will this be
> invoked when the session timeout expires?
> 4) Lowest value that can be set for session timeout in Studio is 1
> minute. This is stored in seconds in the VXML Server app
> settings.xml. Would it be possible to lower this value to 4-5
> seconds in the settings.xml? Of course this would be a manual
> process and would have to be reset every time the app was deployed.
> Â
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1237459>
>
> or simply reply to this email.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 26-03-2009 04:36:40 PM
In this case, you'd probably create an audio element right before you do
your database lookup. That audio element can say to the caller 'please
hold while we look that up' AND in the Settings tab for that audio
element, change the VoiceXML Property 'timeout' to whatever you want it
to be for that one database dip (ex, 4s).
Janine
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> I'm working with a customer that has a Studio app that does a database
> lookup. Periodically this database lookup performance degrades.Â
> Â
> The app is invoked by ICM Run External Script.
> Expectation is that DB Lookup will occur within 2 seconds.
> Â
> What we would like to do is have the app session timeout expire in 2
> seconds + some value, probably 2 seconds more for a total of 4
> seconds, so in case the DB gets hung, the app will exit back to ICM
> and let the ICM script continue gracefully.
> Â
> Understanding is that general settings / session timeout value is an
> inactivity countdown between the VXML GW and the VXML Server. If the
> VXML GW has not heard from the VXML Server within the session timeout
> value, then the app will terminate and release the VXML Server license.
> Â
> Questions:
> Â
> 1) When the session timeout expires is there some kind of
> condition/error code that occurs by default that can be returned to
> ICM? If so, where is this set and can it be altered by the Studio app?
> 2) When a session timeout expires for the app, does normal exit
> process work? For example will this invoke a subdialog return step?Â
> 3) If the app has an Endpoint setting of "on call end -" will this be
> invoked when the session timeout expires?
> 4) Lowest value that can be set for session timeout in Studio is 1
> minute. This is stored in seconds in the VXML Server app
> settings.xml. Would it be possible to lower this value to 4-5
> seconds in the settings.xml? Of course this would be a manual
> process and would have to be reset every time the app was deployed.
> Â
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1237459>
>
> or simply reply to this email.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 27-03-2009 05:06:40 PM
Dave,
Since you want the gateway to timeout if the Vxml Server doesn't return
the data in a certain amount of time, you'll have to set the Vxml
Property named 'timeout' to some small value. In order to do that,
you'll need to set it in the Studio App as a root doc't property (or in
an audio element).
And you'll have to have either a CVP_Subdialog_Start element or an Audio
element in your app, otherwise the root document won't be sent to the
Vxml Gateway.
This should work.
There's been some discussion on the Developer's forum about events
thrown by the gateway (ex, caller hangs up, or timeout expires) not
being handled by Vxml Server until it is done doing a db lookup - I
don't know the details (you can search the Forum)- but you may need to
start the db lookup in a separate thread and then loop in the studio app
until the data arrives from the db or the gateway timeout expires.
Janine
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> So this app does not have any prompts, menus or other customer
> interactions. Its purpose is to retrieve data and pass to ICM for
> processing. Should be a quick app - 2 or 3 seconds.
> Â
> What I'm trying to do is have the app expire/timeout and return
> control to ICM in a short period - say 5-6 seconds. This would occur
> IF the DB was hung and the app stalled, if the DB was underperforming,
> etc.. In this case I would expect the GW not to request any further
> pages from the VXML Server because it was waiting on the VXML Server
> to start with. If the DB request node was stalled, wouldn't using
> the Studio timeout feature accomplish this goal?
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1241118>
>
> or simply reply to this email.
Subject: RE: Re: New Message from David Robinson in Customer Voice Portal (CVP&
Replied by: David Robinson on 27-03-2009 04:54:26 PM
So this app does not have any prompts, menus or other customer interactions. Its purpose is to retrieve data and pass to ICM for processing. Should be a quick app - 2 or 3 seconds.
What I'm trying to do is have the app expire/timeout and return control to ICM in a short period - say 5-6 seconds. This would occur IF the DB was hung and the app stalled, if the DB was underperforming, etc.. In this case I would expect the GW not to request any further pages from the VXML Server because it was waiting on the VXML Server to start with. If the DB request node was stalled, wouldn't using the Studio timeout feature accomplish this goal?
Created by: David Robinson on 26-03-2009 04:01:43 PM
I'm working with a customer that has a Studio app that does a database lookup. Periodically this database lookup performance degrades.
The app is invoked by ICM Run External Script.
Expectation is that DB Lookup will occur within 2 seconds.
What we would like to do is have the app session timeout expire in 2 seconds + some value, probably 2 seconds more for a total of 4 seconds, so in case the DB gets hung, the app will exit back to ICM and let the ICM script continue gracefully.
Understanding is that general settings / session timeout value is an inactivity countdown between the VXML GW and the VXML Server. If the VXML GW has not heard from the VXML Server within the session timeout value, then the app will terminate and release the VXML Server license.
Questions:
1) When the session timeout expires is there some kind of condition/error code that occurs by default that can be returned to ICM? If so, where is this set and can it be altered by the Studio app?
2) When a session timeout expires for the app, does normal exit process work? For example will this invoke a subdialog return step?
3) If the app has an Endpoint setting of "on call end -" will this be invoked when the session timeout expires?
4) Lowest value that can be set for session timeout in Studio is 1 minute. This is stored in seconds in the VXML Server app settings.xml. Would it be possible to lower this value to 4-5 seconds in the settings.xml? Of course this would be a manual process and would have to be reset every time the app was deployed.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 26-03-2009 04:34:45 PM
The Session Timeout that you are referring to (configured in Studio) is
different from what you describe.
The Session Timeout is how long Vxml Server (!) waits for the Gateway to
complete each vxml page and come back to Vxml Server with the response.
This is so that Vxml Server can release its license if the Gateway goes
away and doesn't come back asking for the next page. This rarely occurs,
but does occasionally occur.
When the Session Timeout occurs, the application will visit the 'Error
Element' (if there's one configured) and in the End of Call java class
(if you write one), you can access 'call result' which will have the
value 'timeout' and 'how call ended' will have the value
'app_session_complete'
The timer which the Gateway uses to time responses from the Vxml Server
is called 'timeout' and I think this is the one you are interested in.
1) The default timeout can be set on the gateway using the command:
'http client response timeout 10' (10sec default timeout)
2) And/or it can be set in the Studio Application's Project
/Properties/RootDocSettings/VoiceXML Property to override the gateway
setting for that phone call's visit to the app name: timeout
value: 20s (you MUST use the time unit 's')
3) And/or it can be set in any Voice Element in its Settings
tab/VoiceXML Properties to temporarily override those mentioned above,
but ONLY until the next vxml page is sent to the gateway name:
timeout value: 10s (you MUST use the time unit 's')
When this timeout value is exceeded, the gateway sends the event
'error.badfetch' or error.badfetch.http to the Vxml Server, where you
can use a HotEvent element to specify one of these events and then
handle it 'gracefully' (Use 2 hotEvent elements to catch both of these
events).
If you look in the Cisco Vxml Features guide, it claims the following
events are thrown by the gateway and can be caught
using a HotEvent element (but I can't vouch for this):
error.badfetch.http.-2 refers to a timeout error (has a connection, but hasn't received a response yet)
error.badfetch.http.-7 refers to a connection error (can't get or lost the connection)
error.badfetch.http.-6 refers to a buffer overload error
Janine
www.TrainingTheExperts.com
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> I'm working with a customer that has a Studio app that does a database
> lookup. Periodically this database lookup performance degrades.Â
> Â
> The app is invoked by ICM Run External Script.
> Expectation is that DB Lookup will occur within 2 seconds.
> Â
> What we would like to do is have the app session timeout expire in 2
> seconds + some value, probably 2 seconds more for a total of 4
> seconds, so in case the DB gets hung, the app will exit back to ICM
> and let the ICM script continue gracefully.
> Â
> Understanding is that general settings / session timeout value is an
> inactivity countdown between the VXML GW and the VXML Server. If the
> VXML GW has not heard from the VXML Server within the session timeout
> value, then the app will terminate and release the VXML Server license.
> Â
> Questions:
> Â
> 1) When the session timeout expires is there some kind of
> condition/error code that occurs by default that can be returned to
> ICM? If so, where is this set and can it be altered by the Studio app?
> 2) When a session timeout expires for the app, does normal exit
> process work? For example will this invoke a subdialog return step?Â
> 3) If the app has an Endpoint setting of "on call end -" will this be
> invoked when the session timeout expires?
> 4) Lowest value that can be set for session timeout in Studio is 1
> minute. This is stored in seconds in the VXML Server app
> settings.xml. Would it be possible to lower this value to 4-5
> seconds in the settings.xml? Of course this would be a manual
> process and would have to be reset every time the app was deployed.
> Â
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1237459>
>
> or simply reply to this email.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 26-03-2009 04:36:40 PM
In this case, you'd probably create an audio element right before you do
your database lookup. That audio element can say to the caller 'please
hold while we look that up' AND in the Settings tab for that audio
element, change the VoiceXML Property 'timeout' to whatever you want it
to be for that one database dip (ex, 4s).
Janine
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> I'm working with a customer that has a Studio app that does a database
> lookup. Periodically this database lookup performance degrades.Â
> Â
> The app is invoked by ICM Run External Script.
> Expectation is that DB Lookup will occur within 2 seconds.
> Â
> What we would like to do is have the app session timeout expire in 2
> seconds + some value, probably 2 seconds more for a total of 4
> seconds, so in case the DB gets hung, the app will exit back to ICM
> and let the ICM script continue gracefully.
> Â
> Understanding is that general settings / session timeout value is an
> inactivity countdown between the VXML GW and the VXML Server. If the
> VXML GW has not heard from the VXML Server within the session timeout
> value, then the app will terminate and release the VXML Server license.
> Â
> Questions:
> Â
> 1) When the session timeout expires is there some kind of
> condition/error code that occurs by default that can be returned to
> ICM? If so, where is this set and can it be altered by the Studio app?
> 2) When a session timeout expires for the app, does normal exit
> process work? For example will this invoke a subdialog return step?Â
> 3) If the app has an Endpoint setting of "on call end -" will this be
> invoked when the session timeout expires?
> 4) Lowest value that can be set for session timeout in Studio is 1
> minute. This is stored in seconds in the VXML Server app
> settings.xml. Would it be possible to lower this value to 4-5
> seconds in the settings.xml? Of course this would be a manual
> process and would have to be reset every time the app was deployed.
> Â
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1237459>
>
> or simply reply to this email.
Subject: Re: New Message from David Robinson in Customer Voice Portal (CVP) - Genera
Replied by: Janine Graves on 27-03-2009 05:06:40 PM
Dave,
Since you want the gateway to timeout if the Vxml Server doesn't return
the data in a certain amount of time, you'll have to set the Vxml
Property named 'timeout' to some small value. In order to do that,
you'll need to set it in the Studio App as a root doc't property (or in
an audio element).
And you'll have to have either a CVP_Subdialog_Start element or an Audio
element in your app, otherwise the root document won't be sent to the
Vxml Gateway.
This should work.
There's been some discussion on the Developer's forum about events
thrown by the gateway (ex, caller hangs up, or timeout expires) not
being handled by Vxml Server until it is done doing a db lookup - I
don't know the details (you can search the Forum)- but you may need to
start the db lookup in a separate thread and then loop in the studio app
until the data arrives from the db or the gateway timeout expires.
Janine
Cisco Developer Community Forums wrote:
> David Robinson has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> So this app does not have any prompts, menus or other customer
> interactions. Its purpose is to retrieve data and pass to ICM for
> processing. Should be a quick app - 2 or 3 seconds.
> Â
> What I'm trying to do is have the app expire/timeout and return
> control to ICM in a short period - say 5-6 seconds. This would occur
> IF the DB was hung and the app stalled, if the DB was underperforming,
> etc.. In this case I would expect the GW not to request any further
> pages from the VXML Server because it was waiting on the VXML Server
> to start with. If the DB request node was stalled, wouldn't using
> the Studio timeout feature accomplish this goal?
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1241118>
>
> or simply reply to this email.
Subject: RE: Re: New Message from David Robinson in Customer Voice Portal (CVP&
Replied by: David Robinson on 27-03-2009 04:54:26 PM
So this app does not have any prompts, menus or other customer interactions. Its purpose is to retrieve data and pass to ICM for processing. Should be a quick app - 2 or 3 seconds.
What I'm trying to do is have the app expire/timeout and return control to ICM in a short period - say 5-6 seconds. This would occur IF the DB was hung and the app stalled, if the DB was underperforming, etc.. In this case I would expect the GW not to request any further pages from the VXML Server because it was waiting on the VXML Server to start with. If the DB request node was stalled, wouldn't using the Studio timeout feature accomplish this goal?
Labels: