cancel
Showing results for 
Search instead for 
Did you mean: 
cancel

End custom back ground Java code execution if caller hangs up

596
Views
0
Helpful
0
Comments
This document was generated from CDN thread

Created by: shaban qaiser on 07-03-2013 01:28:56 AM
Hi,
In CVP script I have a custom Java class at the background of a decision element that waits for a specified timeout to meet a condition before making a decision. The Java code does not return untill the condition is met or the specified timeout expires. The problem is that if caller hangs up while the CVP script is executing the decision element which is running background Java code, CVP license port and session is not released untill Java code returns. So it consumes a port unnecessarily. I have a custom Java code handler for 'onEndCall' as well in the application, but that is also not called before the decision element Java code returns. CVP forum recommends not to catch 'connection.disconnect.hangup' and 'telephone.disconnect.hangup' events through hot events, because that also causes the license port to not releae.
Can any one suggest a solution please?
 
Thanks 

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 07-03-2013 07:33:58 AM
You can catch the hangup event and call a java class where you set a flag.  This flag needs to be checked in your decision element periodically while it is waiting.  If this flag is set, you exit out of your java class and return.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, March 07, 2013 1:51 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hi,
In CVP script I have a custom Java class at the background of a decision element that waits for a specified timeout to meet a condition before making a decision. The Java code does not return untill the condition is met or the specified timeout expires. The problem is that if caller hangs up while the CVP script is executing the decision element which is running background Java code, CVP license port and session is not released untill Java code returns. So it consumes a port unnecessarily. I have a custom Java code handler for 'onEndCall' as well in the application, but that is also not called before the decision element Java code returns. CVP forum recommends not to catch 'connection.disconnect.hangup' and 'telephone.disconnect.hangup' events through hot events, because that also causes the license port to not releae.
Can any one suggest a solution please?

Thanks
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/12734906 or simply reply to this email.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 08-03-2013 04:31:12 AM
Hemal,
Thanks for your guidance. I have tried the solution you recommended but I could not solve the problem. My scirpt is not exaclty what you proposed and the java class at the back end of hot event is not there to set the flag. Here is what I have tried.
1) I have catched hangup event using hot event followed by a hangup node, but hot event is not triggered when the java code is executing and caller hangs up. I thought that this is due to the reason that control is not returning into the script. To solve this I have made the wait in java code small and put another decision element to check that java code is complete and loop back into the java code. But even this does not end the script and release port when the caller hangs up.
2) Hot event back end java class does not have access to session so I could not set the flag. But I am looking into some work around that can set some flag(may be VEvent can do this). Any idea how this can be done. But this will only help if the above problem is solved.

Subject: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Janine Graves on 08-03-2013 09:43:58 AM
Can you turn on Vxml Debug logging and see whether the gateway is
sending the hangup event to vxml server when it occurs? Or whether it's
holding it until vxml server sends the next audio?

Subject: RE: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - Gen
Replied by: shaban qaiser on 11-03-2013 02:59:05 AM
Janine Graves:
Can you turn on Vxml Debug logging and see whether the gateway is sending the hangup event to vxml server when it occurs? Or whether it's holding it until vxml server sends the next audio?

 
Hi Janine,
Thank you very much for your reply. VXML debug logs show that Gateway is not sending the hangup event to VXML server when caller hangs up while call flow is in Java. But looking at the logs I find that actually the VXML server does not send reply to a VXML request made from Gateway before hang up event occured, when it enters into the decision element with Java code at backend till the Java code ends(After 1 minute of wait). So in my opinion it is not the Gateway that is holding the hangup event rather it is VXML server that is not sending the response for a pending VXML request from Gateway when it enters into the Java code. Thus the Gateway does not send the hang up event till VXML server sends VXML response for the pending page request. Which occurs when the Java code completes. I have attached call flow and logs for three scenarios to make things more clear. They are explained below.
1) A normal call flow with only an audio element that ends normally when the audio prompt is complete.
2) A normal call flow with only an audio element that ends by catching the hot event when user hangs up before completing the audio.
3) A call flow with a decision element with Java code at backend. Audio prompt is being played as background music using fetchaudio property of audio element. Call does not end on hang up.
You can look from attached logs that in case 2 the call ended immediatley with hang up. But in case 3 although I hung up the call after 10 seconds the call remained there for complete 1 minute that is the wait time of Java code and activity logs will show you that the call was looping back into the Java code.
I do not know how to fix this, so any help from you will be very valuable.

Thanks

Subject: RE: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - Gen
Replied by: Janine Graves on 11-03-2013 09:32:18 AM
shaban,
 
It appears that the cisco voicexml gateway holds the hangup event until it gets the next vxml page. I don't know the inner workings of the cisco voice browser, but that's what it sounds like from your explanation. The easy work around is to modify your java and your call flow a bit. Have the java code execute in the background and when it's done, set a variable in Element data or Session data indicating it's done, and the (maybe variable name is  'status' and the value is 'done', or 'failure'.

a. Execute the custom java, then go into a loop:
b. Check if status exists, if so, then evaluate if its value.
c. If status variable does not yet exist, then use an Audio element to play an audio file to the caller 'please continue holding' (be aware that the gateway doesn't play this to completion before returning to VxmlServer).
d. Then delay 5 seconds (to allow the audio file to play and to allow your java code to execute).
e. Then loop back to step (b).
You should probably increment a counter so you're not in an infinite loop.
Since this sends things to the gateway every few seconds, then the gateway should send back the hangup as soon as it executes.
 
 
 
 

Subject: RE: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - Gen
Replied by: Paul Tindall on 12-03-2013 03:59:13 AM
The VoiceXML gateway can only talk back to the server via the submit so it can't send the disconnect event if control is currently server-side until it gets the next document.  If it's executing a document which is non-blocking because it's just playing audio then it's already performed the submit and control is now at the server-side and in this case in an extended wait for back-end processing.  If the gateway is executing a document that's blocking then it can report the disconnect event immediately but then you can't do the server-side processing.  Bit of a no-win situation unfortunately.
Detecting immediate disconnect at the server-side isn't straightforward but I'll suggest a couple of things anyway for the more adventurous to try.
1.  Execute custom VoiceXML that will talk to a back-end servlet directly using the <cisco-data> element.  You can use fetchaudio on the element while it's waiting for the response.   As the VoiceXML document is blocking, the disconnect event should be processed immediately and submitted.   I've not tried it personally so no guarantees.
2. Use the Gateway Services API at the back-end to detect call disconnection at the gateway for the particular call-id, terminate/clean-up the back-end processing, return control to the gateway by sending the next VoiceXML doc and pick up the VoiceXML hangup event.
 

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 12-03-2013 05:02:22 AM
Janine,
Thank you very much for giving a new direction. But unfortunately the above change in the script and Java is not helping even. At first it looked to me as well that checking the status flag and looping back into an audio element with a wait message should help in detecting the hang up at worst by a delay of sleep time (5 seconds) in the decision element and the hangup event should be returned from Gateway when I enter back into the audio element with wait message but to my surprise that is not working. Either I am missing something serious or there is some limitations in my call flow. I am still looking into it and if I find any issue with my script I will update.
 
Paul,
Your description of the problem is perfect. The control lies with the VXML Server and there remains a pending VXML page request on VXML server side when script control is into the Java code at the back end of the decision element. We were trying to reduce that time by looping back into the audio element periodically as suggested by Janine, but surprisingly that is not working even. I will dig more on your suggestions and share the findings.
 
Thanks

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 12-03-2013 07:16:58 AM
Why don’t you try and invalidate the session after you set the flag.  If you are calling the class as action element you have access to the invalidateSession() method.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 12, 2013 5:02 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Janine,
Thank you very much for giving a new direction. But unfortunately the above change in the script and Java is not helping even. At first it looked to me as well that checking the status flag and looping back into an audio element with a wait message should help in detecting the hang up at worst by a delay of sleep time (5 seconds) in the decision element and the hangup event should be returned from Gateway when I enter back into the audio element with wait message but to my surprise that is not working. Either I am missing something serious or there is some limitations in my call flow. I am still looking into it and if I find any issue with my script I will update.

Paul,
Your description of the problem is perfect. The control lies with the VXML Server and there remains a pending VXML page request on VXML server side when script control is into the Java code at the back end of the decision element. We were trying to reduce that time by looping back into the audio element periodically as suggested by Janine, but surprisingly that is not working even. I will dig more on your suggestions and share the findings.

Thanks
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/12912876 or simply reply to this email.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 12-03-2013 08:13:26 AM
Hemal,
 
We need to stop script execution when the caller hangs up. I do not understand how you are pointing to invalidateSession in decision element when I do not know that caller has hung up (that is the core problem; to detect by some way that caller has hung up). If you have any idea how can I detect in  decision element that caller has hung up then please share and I will try that. The flag Janine and I were talking about was to check periodically whether Java code has completed its work or not and loop back to an Audio element so that control switches between VXML Gateway and VXML server and hot event be triggered.
 
 Please correct me if I am not following things in the right direction.
 Thanks

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 12-03-2013 08:17:58 AM
You can catch the hangup event and set a flag in the session to check that.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 12, 2013 8:14 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hemal,

I need to stop my execution when the caller hangs up. I did not understand how can I invalidateSession in my decision element when I do not that caller has hung up. If you have any idea how can I detect in my decision element that caller has hung up then please share and I will try that. The flag Janine and I were talking about was to check whether Java code has completed its work or not periodically and loop back to an Audio element so that control switches between VXML Gateway and VXML server and hot event be triggered.

Please correct me if I am not following things in the right direction.

Thanks
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/12918212 or simply reply to this email.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 12-03-2013 08:29:40 AM
Hemal,
 
As you suggested in your first post I have put a hot event to catch hang up in script. But the problem is that hot event catching hang up is not triggering when script is in decision element with Java code executing and caller hangs up. The next idea was that this may be due to the reason that control is not returning back into script, so to exclude that possibility some other solutions are tried which are explained in details with findings in above posts. Please have a look at those posts and if you find some mistake or have some idea kindly share.
 

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 12-03-2013 08:33:58 AM
K,  let me catch up with the other suggestions.  I will run some tests myself and see.  Meanwhile can you tell me what your java code is doing. What is waiting on and how long does that take ?

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 12, 2013 8:30 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hemal,

As you suggested in your first post I have put a hot event to catch hang up in script. But the problem is that hot event catching hang up is not triggering when script is in decision element with Java code executing and caller hangs up. The next idea was that this may be due to the reason that control is not returning back into script, so to exclude that possibility some other solutions are tried which are explained in details with findings in above posts. Please have a look at those posts and if you find some mistake or have some idea kindly share.

--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/12918514 or simply reply to this email.

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: shaban qaiser on 12-03-2013 08:50:53 AM
Hemal,
 
At the moment I have excluded all my business logic from my Java code to make things very simple and I am just trying the following.
1) An Audio Element playing audio(hold music of 16 seconds)
2) Waiting in my decision element for 16 seconds by sleeping the thread of my Java code at the back end of decision element.
3) Returning back to step 1 if a timeout of 60 seconds has not reached othrewise come out of script.
 
The problem may be due to the way I am blocking the script by sleeping the control thread for 16 seconds while in wait. But in my understanding that should only cause the hang up to be delayed at maximum by 16 seconds and hang up hot event should be triggered when I loop back into the Audio element, but that does not happen If I hang up the caller even after 10 seconds.
 
I am attaching the call flow diagram and Java code here so you can have a look at them.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: Hemal Mehta on 12-03-2013 09:29:38 AM
I looked at the code. What is the business logic behind this.  I do not see you calling a webservice, making some backend call etc. Just waiting for 16 secs, checking if the total time elapsed is not 60s. So why not just play the audio of 60s duration or if you need to split the audio to total 60s.
Unless there is some other backend processing happening, what is the point of going in this loop. Are you playing any fetchaudio while you are trying to make this wait in the decision element ? Depending on your business logic there may be a better way to do this.
Don't get into the thread business, unless you really know what you are doing, you can bring down your webserver down if you have tonnes of calls spawning threads
and you do not manage this correctly.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 12-03-2013 09:57:01 AM
Hemal Mehta:
I looked at the code. What is the business logic behind this.  I do not see you calling a webservice, making some backend call etc. Just waiting for 16 secs, checking if the total time elapsed is not 60s. So why not just play the audio of 60s duration or if you need to split the audio to total 60s.
Unless there is some other backend processing happening, what is the point of going in this loop. Are you playing any fetchaudio while you are trying to make this wait in the decision element ? Depending on your business logic there may be a better way to do this.
Don't get into the thread business, unless you really know what you are doing, you can bring down your webserver down if you have tonnes of calls spawning threads
and you do not manage this correctly.

 
Hemal,
 
As I explained in the last post I have made the script and Java code simple enough to test only one thing; when control is in Java code hot event is not triggering. Original Java code is making some backend calls to check that some conditions are met before a timeout occurs. Either condtions are met or timeout has occured Java code returns.
 
The loop in the above script is to just return control into the script and giving Gateway an opportunity to send hang up event if it has occured while sleeping in Java code. The original script and Java code just plays the audio with complete length and does not loop as you are saying to do. And yes it is played as fetchaudio so that the music is played when control is in Java code.
 
If there is a better way to "WAIT" and meanwhile doing backgroud processing with Java, please suggest.
Feel free to ask any other explanation if you want.
 

Subject: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Janine Graves on 12-03-2013 11:25:58 AM
Hemal, Shaban will be doing a web service call in his java. For now,
he's removed it for simplicity and has replaced it with a delay, until
the problem with not receiving the hangup while the java is executing is
fixed.

Subject: Re: New Message from Paul Tindall in Customer Voice Portal (CVP) - General
Replied by: Janine Graves on 12-03-2013 11:29:58 AM
Hi Paul, Where is the description and/or javadocs of using the Gateway Services API? -- Janine Graves

Subject: RE: New Message from Janine Graves in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 12-03-2013 11:37:58 AM
Thanks Janine.  So what’s the point of playing audio for 16s. Just put a sleep of 60s or whatever time you need and  let fetchaudio play in the background for that time.  Meanwhile see if the hotevent is getting triggered.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 12, 2013 11:26 AM
To: cdicuser@developer.cisco.com
Subject: New Message from Janine Graves in Customer Voice Portal (CVP) - General Discussion - All Versions: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General

Janine Graves has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hemal, Shaban will be doing a web service call in his java. For now,
he's removed it for simplicity and has replaced it with a delay, until
the problem with not receiving the hangup while the java is executing is
fixed.
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/12926875 or simply reply to this email.

Subject: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Janine Graves on 12-03-2013 11:29:18 AM
Shaban,

Try this - do the workaround exactly as I mentioned, but instead of
using an Audio element to play 'please continue holding' use a Digits
element. You won't be collecting input from the caller, but this will
force the gateway to play the audio 'please continue holding' to
completion. Therefore, it'll catch and return the hangup event to vxml
server.

In the Settings for the Digits element, set these:
Noinput Timeout: 10ms
MaxNoMatch: 1
MaxNoInput: 1
MinDigits: 1
MaxDigits: 1

Initial Audio Group: Please continue to hold (followed by a few seconds
of recorded silence).

Subject: RE: New Message from Janine Graves in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 12-03-2013 12:50:58 PM
I did look at this again and was able to reproduce this issue while calling a web service and hanging up.     I will have to try the workaround suggested by Paul.  While it is a interesting scenario, the likelihood of this happening in well designed app should be very low.  First of all a backend app that takes a minute to come back has got to have some issues.  A user will likely hangup if backend takes too long.
However that can be addressed by reducing this delay and also informing the customer upfront on the delay in getting his/her info.   I see may be one out of 10000 calls that may hang up while calling webservice.  I have seen little more at the time of entering the auth credentials, menu selections etc where the system may have not understand the user and he/she hangs up.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 12, 2013 11:26 AM
To: cdicuser@developer.cisco.com
Subject: New Message from Janine Graves in Customer Voice Portal (CVP) - General Discussion - All Versions: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General

Janine Graves has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hemal, Shaban will be doing a web service call in his java. For now,
he's removed it for simplicity and has replaced it with a delay, until
the problem with not receiving the hangup while the java is executing is
fixed.
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/12926875 or simply reply to this email.

Subject: RE: Re: New Message from Paul Tindall in Customer Voice Portal (CVP) - Gene
Replied by: Paul Tindall on 12-03-2013 01:01:38 PM
Janine,
It's another technology area on the Developer Network.   Developer Guide is on this page http://developer.cisco.com/web/gsapi/home
 

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 13-03-2013 03:28:08 AM
Hi Janine,
 
Digits element does help to detect hang up event. Hangup event is triggered when the script loops back into the Digits element. It does only delay the hang up event by the sleep time in Java code (16 seconds) at maximum. What I have done is explained below.
1) A Digits element with settings as you specified and a small silence audio file as main audio element(because if that is not present the Call Studio gives error on validating script) and a back ground music of 16 seconds with fetch audio.
2) The above Digits element followed by the Decision element with Java code at back and doing nothing but just sleep for 16 seconds in code.
 
I was not clear whether you want me to put the hold music in the audio element or in fetch audio, but I have put it in fetch audio as my original design requirement is to go into the Java code as soon as possible to check that status flag is set and end the script, so I do not want the music to be played till end if the back end system decides that the work is complete.
 
Hang up event is thrown as soon as script loops back into the Digits elements. But I am surprised that a simple Audio element with the same settings of audio as in Digits element is not cuasing the Gateway to send hang up in the same way.
 
Although looping back into the Audio element is not a clean solution for my design, but It can be a reasonable work around if some how I am able to cuase Audio element behave like the Digits element is behaving after hang up. So this will at least help to catch hang up event after a configureable/reasonable delay.
 

Subject: Re: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Janine Graves on 13-03-2013 08:09:18 AM
Shaban, The VoiceXML Specification (http://www.w3.org/TR/voicexml20/) states that exceptions are NOT  caught during the playing of audio. It must be either at collecting of input, transfer of phone call, ending a subdialog, or during an <object> (these are called "Input Form Items). You are correct to begin by playing fetchaudio to the caller so the gateway returns to vxml server immediately to start the web service call. But then after kicking off the web service call in the background, you can immediately check your flag (is the w/s done) and then use your "Digits" element to play 'please continue holding' (with a few seconds of silence) and then remove the delay from the Studio app (since the prompt in the digits is your delay). Janine On 3/13/2013 4:28 AM, Cisco Developer Community Forums wrote: shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hi Janine,   Digits element does help to detect hang up event. Hangup event is triggered when the script loops back into the Digits element. It does only delay the hang up event by the sleep time in Java code (16 seconds) at maximum. What I have done is explained below. 1) A Digits element with settings as you specified and a small silence audio file as main audio element(because if that is not present the Call Studio gives error on validating script) and a back ground music of 16 seconds with fetch audio. 2) The above Digits element followed by the Decision element with Java code at back and doing nothing but just sleep for 16 seconds in code.   I was not clear whether you want me to put the hold music in the audio element or in fetch audio, but I have put it in fetch audio as my original design requirement is to go into the Java code as soon as possible to check that status flag is set and end the script, so I do not want the music to be played till end if the back end system decides that the work is complete.   Hang up event is thrown as soon as script loops back into the Digits elements. But I am surprised that a simple Audio element with the same settings of audio as in Digits element is not cuasing the Gateway to send hang up in the same way.   Although looping back into the Audio element is not a clean solution for my design, but It can be a reasonable work around if some how I am able to cuase Audio element behave like the Digits element is behaving after hang up. So this will at least help to catch hang up event after a configureable/reasonable delay.   -- To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/12955301 or simply reply to this email. -- Janine Graves

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 14-03-2013 04:29:37 AM
Janine/Paul/Hemal,
 
I am very thankful to you for taking interest in this problem. This discussion has provided new insights. I am not able to try the suggestions of Paul yet as I have some other tasks along with this one to complete. Although the workaround Janine has proposed can be used but I am willing to try some new things including Paul's suggestions if they can produce a more elegant solution. I will update as soon as I make any progress on it.
 
One more idea is to extend some component of Call Studio to meet our requirements. Can you please recommend that it can solve the problem or not?
 
Thanks

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 14-03-2013 07:13:57 AM
Shaban,
           Out of curiosity, what do you have that takes so long to come back.  For me a response time of anything greater than 10s in production is in the unacceptable range.  In my lab sometimes I get 30-40s response time due to some limitations with the server etc.  However the same call takes 1s in production. The scenario that you are trying to address comes into play typically only when you have long processing times at backend and the callers gets frustrated and hangs up, which tells me that something is not right.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Thursday, March 14, 2013 4:30 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Janine/Paul/Hemal,

I am very thankful to you for taking interest in this problem. This discussion has provided new insights. I am not able to try the suggestions of Paul yet as I have some other tasks along with this one to complete. Although the workaround Janine has proposed can be used but I am willing to try some new things including Paul's suggestions if they can produce a more elegant solution. I will update as soon as I make any progress on it.

One more idea is to extend some component of Call Studio to meet our requirements. Can you please recommend that it can solve the problem or not?

Thanks
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/13012792 or simply reply to this email.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 14-03-2013 08:46:36 AM
Hemal,
 
It is not processing that is taking that much long. Infact the back end system is waiting for some resources to become available that are being used by other calls and are necessary for the processing of each call. So if all those resources are in use already, the next call has to wait till one of the previous calls using the resource releases one.
 
So I have to do the following in short; keep playing a hold music to caller and in parrallel keep checking with the backend system that one of the resource is available. As soon as a resource becomes available I need to start processing of call without wasting any time.
 
If you have a better idea to handle the case it can be very helpful.
 
Thanks

Subject: RE: New Message from shaban qaiser in Customer Voice Portal (CVP) - General
Replied by: Hemal Mehta on 19-03-2013 08:58:10 AM
When you are waiting for the resources to be freed up at backend, what kind of system have you deployed. Are you using any queuing, JMS etc ?  While the actual issue could be addressed by what Paul suggested, you need to also work on minimizing your wait time.   This issue becomes relevant only when wait times are long.
Hemal

From: Cisco Developer Community Forums [mailto:cdicuser@developer.cisco.com]
Sent: Tuesday, March 19, 2013 8:39 AM
To: cdicuser@developer.cisco.com
Subject: New Message from shaban qaiser in Customer Voice Portal (CVP) - General Discussion - All Versions: RE: End custom back ground Java code execution if caller hangs up

shaban qaiser has created a new message in the forum "General Discussion - All Versions": -------------------------------------------------------------- Hi Janine,

Can you please comment that this problem can be solved or not by extending some element in Call Studio?

Thanks
--
To respond to this post, please click the following link: http://developer.cisco.com/web/cvp/community/-/message_boards/view_message/13246038 or simply reply to this email.

Subject: RE: End custom back ground Java code execution if caller hangs up
Replied by: shaban qaiser on 19-03-2013 08:39:20 AM
Hi Janine,
 
Can you please comment that this problem can be solved or not by extending some element in Call Studio?
 
Thanks
CreatePlease to create content