cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1502
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: null on 21-07-2006 04:44:20 PM
HI
I am trying to catch the hangup event [b:031cb77738]telephone.disconnect.hangup[/b:031cb77738] in my CVP application. After caching the event I want it to collect some input and send the call back to ICM. I'm using the [b:031cb77738]Hotevent[/b:031cb77738] element. After caching the hang up event the Audium port is not getting released and ultimately it times out.

Can you please help me figure out how to catch the hang up event efficiently?

Thanks in advance for your help.

Subject: RE: Caching a Hang Up event using Hotevent
Replied by: Michael Bochynski on 21-07-2006 05:03:08 PM
Hi Mamta,

Overriding disconnect and hangup event is strongly discouraged, due to all the tasks Audium is processing when the call ends. One of the repercussions you noticed yourself - sessions are not released.

Audium, and thus CVP, offers onEndCall class functionality, which allows you to define the Java class being called after the call ends. Note that Audium Call Services will handle all the call processing events, such as ending a session, releasing it and going back to ICM, if called as a subdialog. However, your Java class will execute normally and you will have access to all the call data and can do custom processing without interrupting normal call processing.

Please refer to the following Knowledge Base articles for more details:
What situations will cause an On End Call class to be executed?
How can my On End Call class determine how the call ended?
Can I safely access session data during my custom On End Call class?
Start / End of Call Actions

You can also search those forums for similar posts. Moreover please refer to the Programmer Guide for API details and Sample Java code for sample end-of-call class.

Hope it helps,
Michael

Subject: RE: Caching a Hang Up event using Hotevent
Replied by: null on 21-07-2006 06:47:11 PM
Hi
If I use OnEndCall class then I cant send the call back to ICM. The customer requirement is after the caller hangs up we need to collect some caller input send the session back to ICM so that ICM can see all the data caller entered during the whole session.

Can you suggest me a way about how I can go about it in CVP Studio Version 3.4.3.

-Mamta

Subject: catching disconnect
Replied by: Janine Graves on 25-07-2006 04:30:33 PM
Same question is coming up in CVP Training class this week. If the caller hangs up while in the CVP Studio/Audium app, how can the Studio app send data back to ICM?

Thanks, Janine

Subject: RE: catching disconnect
Replied by: null on 25-07-2006 09:48:28 PM
Hi Janine
Can you please let me know if you find anything in CVP training class ? I am trying to find any related documents I can find about how to do this.
Does anybody have any idea about ICM providing some kind of API to pass the data back to ICM from another application such as CVP Studio ?

Thanks in advance for any help.

Subject: RE: catching disconnect
Replied by: Vance Vagell on 26-07-2006 07:46:39 PM
Hi Mamta and Janine,

As always, in CVP VXML Server you can send information back to ICM at the end of a call via Subdialog Return elements. However, it sounds as though you are seeing situations where it makes more sense (or it is necessary) to communicate with ICM at other times throughout the call.

We have a new product called Audium ICM Communications Services (AICS) that addresses this need. Please get in touch with your Account Representative to request additional information about this new product.

Regards,
Vance

Subject: RE: catching disconnect
Replied by: Janine Graves on 27-07-2006 02:48:55 AM
I guess the problem arises by how the IOS voice browser manages to return the call to ICM. If you look at the VXML code created at the end of the application, the audium code does a <transfer> to a fictitious phone number 987654. Since IOS can't transfer to this number, it ends up causing an error of some kind, which causes the call to go back to ICM.

Vance, can someone at Audium explain this process in more detail? It's important for us to really understand the process of what happens when the caller hangs up.

Let me ask you why this wouldn't work: use a HotEvent to catch the 'hangup' and create an exit state for the HotEvent, that goes thru a subdialog-return element (and configure it to return some data), followed by a Hang-Up element. Will the Hang-Up element free the audium license? And will the subdialog-return element cause the IOS to send the call back to ICM? Or will IOS ignore the subdialog-return since the call's already ended.

Please clarify!!!! Thanks!

P.S. - In which version of CVP VXML Server/Studio will the feature you mention be available, will it be CVP 4?

Thanks! Janine

Subject: RE: catching disconnect
Replied by: null on 28-07-2006 03:09:57 PM
Hi
I had created a test application with the exact scenario Janine has described here. My test application was supposed to play a menu speech. I am trying to catch the [b:0272a7ad5f]telephone.disconnect.hangup[/b:0272a7ad5f] event using the HotEvent element. Then I used a SubDialog-Return element to send some information back to ICM and the Return element was followed by a Hang-Up element.
When I tested this application the application was able to catch the event but then the port was not released. I got a hung session.

Let me know if I need to attach my test application here.

Thanks
Mamta

Subject: RE: catching disconnect
Replied by: Michael Bochynski on 28-07-2006 04:35:17 PM
Hi Mamta,

As I mentioned previously in this topic, by overwriting hangup event you block the built-in functionality of Audium handling end of call, one of them being releasing the session.

Sending an exit from Subdialog to a Hangup element does not address this issue, since Audium does not even get notified about a hangup event, since you catch it first.

However, the workaround would be to catch the hangup event and then re-throw the event audium_action=hangup.

If you look at the root document generated by your application, or any application for that matter, you will see that there are several catch statement for various events, one being telephone.disconnect.hangup and telephone.disconnect. If you add your own catch of those events, according to the VoiceXML specifications, catch block are parsed in the document order, hence your catch will be a first one. You can then have your own custom processing and then, re-throw audium_action=hangup. This will cause Audium Call Services to thing that the "normal" hangup occurred and will execute a normal hangup action items, as it would without your custom event handling.

Hope this helps,
Michael

Subject: RE: catching disconnect
Replied by: null on 03-08-2006 04:51:15 PM
HI Michael
Thanks for your suggestion. So am I supposed to use an insert VXML element to do this. I have to write a vxml code to define a new event. After the HotEvent which is used to catch the hang up event and then execute the insert VXML element. I'm a new comer to writing VXML code. So I need proper directions as to how to do this.

I will really appreciate your help.

Thanks
Mamta

Subject: RE: catching disconnect
Replied by: null on 04-08-2006 09:33:27 PM
Hi
I am going to going to create a custom voice element to accomplish this. Can I get some examples of sample code for creating a custom voice element.

Thanks
Mamta

Subject: RE: catching disconnect
Replied by: Vance Vagell on 04-08-2006 09:42:26 PM
Hi Mamta,

Here are some resources you may find helpful while creating your custom voice element:

  • Our Progammer Guide, which explains in detail how to create various types of custom components.

  • The Audium Java API Javadocs provide details about all API classes and methods, including VoiceElementBase, which your custom voice elements should extend.

  • Code templates for all types of custom components, including voice elements. This is a highly recommended download. This code provides the structure your custom voice element should follow, you just need to fill in the methods with the desired behavior.

  • Our EnhancedRecord sample voice element, which includes full source code. While this element is fairly complex, it does provide examples of how to implement most voice element functionalities; it is a good reference.

Note that since you are using CVP software, these documents will not refer directly to your products, and the version they discuss may have some minor functionality differences. For CVP-specific documentation, please refer to Cisco TAC.

Regards,
Vance

Subject: RE: catching disconnect
Replied by: null on 07-08-2006 07:33:05 PM
Hi
I developed this sample code using the sample record element as an example. But I cant make it show up as an element on the CVP STudio. I put the class file under deploy--> Application-->classes folder. It doesnt show up under the "Splk" folder as its supposed to. Can you please help me debug this code. When I compiled it I didnt find any bugs. This sample code is supposed to collect some variables in FromExtVXML[0-3] variables like the Cisco Subdialog return element. On hang up this is supposed to return the variables back to ICM and clean up the session using invalidateSession() method.

I'm uploading my code here. Can you please help me.

Thanks
Mamta

Subject: RE: catching disconnect
Replied by: Vance Vagell on 07-08-2006 09:31:35 PM
Hi Mamta,

Whenever an element fails to showup in the Elements pane, it is useful to comment out all but the absolutely necessary code so that the element shows up. Then you can add each part back in, until you find which part causes the problem.

However, there is one primary issue with the element code you posted. The getExitStates() method should not return null; all elements must have at least one exit state. In your case, you could just have a "done" exit state, and connect it to Hang Up element. This is a likely cause for why your element is not showing up in the Elements pane.

For related information, please refer to the following Audium Knowledge Base article:

"Why is my custom element not listed in the Elements pane?"

Regards,
Vance
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Quick Links