« Back to General Discussion - All Versions

Get session data from subdialog

Combination View Flat View Tree View
Threads [ Previous | Next ]
Hi,

I have a question about Subdialogs. I have two applications which one of them has subdialog invoke and another has subdialog start and subdialog return elements.

My question is; Do I have to send some session data to subdialog application as a parameter to use that session data in it? Can I read or write main application's session data from subdialog application without passing that session data to the subdialog as a parameter?

Thanks.

The subdialog works like a standard VXML subdialog - it executes in its
own 'context'. Meaning, the subdialog can't access anything from the
main application unless you pass it into the subdialog as a parameter.
Same is true when returning from the subdialog back to the original app
  • any data you want available must be passed as a return value.

I thought so, but I couldn't be sure.

Thanks Janine.

Hi,
I am using subdialog invoke element in App-A and with this element, I am passing few parameters to App-B.
Again from App-B, I need to return some values back to App-A. I have few problems in this regard....
 
1. How do I pass value in App-B to App-A?
2. How do I access the return values from App-B to App-A in App-A
3. In App-A how can I used that returned value further in my call flow?
 
Thanks,
Sreeram.

Have you looked at the Element Specifications Reference Manual? It tells you how to use the Subdialog Invoke and where it stores the result returned from AppB; and it explains how to use the SubdialogReturn to return data back to AppA.
 
Basically, everything is passed as name=value pairs, and must be received by the other application by using that exact name.
 
So, to pass data back from AppB to AppA:  modify the SubdialogReturn in AppB by setting 'ReturnValue'  status={Data.Session.mystatus}
Then in AppA, mofidy the SubdialogInvoke by setting 'ReturnValue': status
 
In AppA, the ReturnValue's become element data for the SubdialogInvoke element. {Data.Element.SubdialogInvoke_01.status}
 
Janine
www.TrainingTheExperts.com

Hi Janine,
 
Thank you for your quick response.  I have followed the steps suggested by you.
But I still have the error and the activity log shows "Subdialog_Invoke,element,error,error.semantic"
 
I am passing 4 parameter from App-A to App-B through Subdialog Invoke element(See App-AtoApp-B.jpg)
I am able to get all the 4 parameters in App-B perfectly by setting the parameter names in Subdialog Start element. 
Now, I am returning a value from App-B through "CVP Subdialog Return" element (See ReturnValue.jpg)
       External VXML 0 is set as RET_TRANSCODE={Data.Session.TRANSCODE}
In App-A I am setting 'Return Value' in Subdialog Invoke element as "RET_TRANSCODE" (See App-AtoApp-B.jpg)
I am using the same name passed from App-B to App-A(i.e., RET_TRANSCODE), but I still have the error.
 
I have tried accessing the return value of App-A in a subdialog return in App-A as {Data.Element.Subdialog_Invoke.RET_TRANSCODE} (See App-A_SubdialogReturn.jpg)
 
Please let me know what went wrong.

Thank you,
Sreeram.
Attachments:

Don't use cvp subd return. Just use subd return


Sent from my Verizon Wireless BlackBerry

-----Original Message-----
From: Cisco Developer Community Forums <cdicuser@developer.cisco.com>
Date: Fri, 13 Nov 2009 14:40:12
To: cdicuser@developer.cisco.com<cdicuser@developer.cisco.com>
Subject: New Message from Sreeram Judala in Customer Voice Portal (CVP) -
General Discussion - All Versions: RE: Re: Get session data from subdialog

Sreeram Judala has created a new message in the forum "General Discussion - All Versions":

--------------------------------------------------------------
Hi Janine,
 
Thank you for your quick response.  I have followed the steps suggested by you.
But I still have the error and the activity log shows "Subdialog_Invoke,element,error,error.semantic"
 
I am passing 4 parameter from App-A to App-B through Subdialog Invoke element(See App-AtoApp-B.jpg)
I am able to get all the 4 parameters in App-B perfectly by setting the parameter names in Subdialog Start element. 
Now, I am returning a value from App-B through "CVP Subdialog Return" element (See ReturnValue.jpg)
       External VXML 0 is set as RET_TRANSCODE={Data.Session.TRANSCODE}
In App-A I am setting 'Return Value' in Subdialog Invoke element as "RET_TRANSCODE" (See App-AtoApp-B.jpg)
I am using the same name passed from App-B to App-A(i.e., RET_TRANSCODE), but I still have the error.
 
I have tried accessing the return value of App-A in a subdialog return in App-A as {Data.Element.Subdialog_Invoke.RET_TRANSCODE} (See App-A_SubdialogReturn.jpg)
 
Please let me know what went wrong.

Thank you,
Sreeram.
--
To respond to this post, please click the following link:

<http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1769868>

or simply reply to this email.

You have to use SubdialogReturn NOT CVP_Subdialog_Return!

Hi,
 
I am using Sub-dialog Invoke element and I am able to transfer values from App-A to App-B and vice-versa.
But, when I tried to pass hashmap with 60-70 values, I am seeing the below message in my activity logs.
 
A session has timed out after 2 minutes. This is most likely caused by a start of call class or action element at the top of the callflow not completing before the voice browser's fetch timeout occurred. To resolve it ensure this class executes in a timely manner or run it in the background. Session timeouts may also occur under high load or if there are issues with a load balancer or voice browser.
 
I am also able to transfer a hashmap with few values(say 10-20) and from App-A to App-B.
 
I have also tried with multiple "session timeouts" like 1-minute, 5 minutes, 15 minutes and 30 minutes.
But still, I am not able to transfer the hashmap to App-B.
 
Please let me know, whether there is any restriction on the amount of data we pass from App-A to App-B.
 
 
Thanks,
Sreeram.

there IS a limit on the amount of data that can be passed. I don't know
what the limit is, but it sounds like you've exceeded it.


Cisco Developer Community Forums wrote:
> Sreeram Judala has created a new message in the forum "General
> Discussion - All Versions":
>
> --------------------------------------------------------------
> Hi,
> Â
> I am using Sub-dialog Invoke element and I am able to transfer values
> from App-A to App-B and vice-versa.
> But, when I tried to pass hashmap with 60-70 values, I am seeing the
> below message in my activity logs.
> Â
> A session has timed out after 2 minutes. This is most likely caused by
> a start of call class or action element at the top of the callflow not
> completing before the voice browser's fetch timeout occurred. To
> resolve it ensure this class executes in a timely manner or run it in
> the background. Session timeouts may also occur under high load or if
> there are issues with a load balancer or voice browser.
> Â
> I am also able to transfer a hashmap with few values(say 10-20)Â and
> from App-A to App-B.
> Â
> I have also tried with multiple "session timeouts" like 1-minute, 5
> minutes, 15 minutes and 30 minutes.
> But still, I am not able to transfer the hashmap to App-B.
> Â
> Please let me know, whether there is any restriction on the amount of
> data we pass from App-A to App-B.
> Â
> Â
> Thanks,
> Sreeram.
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/1854761>
>
> or simply reply to this email.

Ranjana,
Can you help us find out the limitation of size and number of parameters that can be passed in session data using Subdialog Invoke.
 
Thanks,
Sreeram