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

Local Apps and Subdialog Invoke

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

Created by: Arvand Owji on 03-04-2010 08:48:38 AM
Hi,
Im calling a local CVP app using subdialog invoke. In my child app, I have Subdilaog_Start and Subdialog_end and I return only one value back to the parent application.
In my parent application, I call the subdialog with these prams:
subdialog_uri=http://host/CVP/Srver.....Application=............
Local Application=True
Return Value=Result
 
This doesnt work as expected. Although the child application is invoked and ends properly but the subdialog_invoke element seems to be hanging there until session timeout occurs. If I set subdialog Invoke local application to false, then everything works properly. Also if I keep local app set to true and instead i remove the expected return value from subdialog, everything works as well.
So the question is how to invoke a local CVP app (that is never visited by icm) and has return values? It seems the problem is with local application and the return value. I appreciate it if somebody can provide me some help on this. Thanks in advance.

Subject: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - General D
Replied by: Janine Graves on 03-04-2010 12:57:40 PM
For local app, set subdialog_uri="/CVP/Server?application=HelloWorld"
Local Application=True
Return Value=Result

Cisco Developer Community Forums wrote:
> Arvand Owji has created a new message in the forum "General Discussion
> - All Versions":
>
> --------------------------------------------------------------
> Hi,
> Im calling a local CVP app using subdialog invoke. In my child app, I
> have Subdilaog_Start and Subdialog_end and I return only one value
> back to the parent application.
> In my parent application, I call the subdialog with these prams:
> *subdialog_uri=http://host/CVP/Srver.....Application=............*
> *Local Application=True*
> *Return Value=Result*
> Â
> This doesnt work as expected. Although the child application is
> invoked and ends properly but the subdialog_invoke element seems to be
> hanging there until session timeout occurs. *If I set subdialog Invoke
> local application to false, then everything works* properly. Also if I
> keep local app set to true and instead i remove the expected return
> value from subdialog, everything works as well.
> So the question is how to invoke a local CVP app (that is never
> visited by icm) and has return values? It seems the problem is with
> local application and the return value. I appreciate it if somebody
> can provide me some help on this. Thanks in advance.
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/2089854>
>
> or simply reply to this email.

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Arvand Owji on 03-04-2010 03:43:48 PM
Janine,
Thanks for your reply. I tried that (i think I tried it before too). If I remove the the host as you suggested:
 
/CVP/Server?application=ChildApp&callid={Data.Session.callid}
 
But the child app never gets executed and the Subdialog invoke just hangs in there until session times out. I also get the following error in global error logger:
 
 CVP VXML Server encountered a Bad-Fetch Error - URL: http://CVPA1:7000/CVP/en-us/../Server?DNIS=904611&ANI=1111111111&callid=87E18DCD3E6I11DFAFC5DA44EE2F7E34&application=ParentApp
 
So it seems when I remove the host, CVP cant find the application. 

Subject: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - General D
Replied by: Janine Graves on 03-04-2010 04:54:40 PM
The '/en-us/../' is part of the URL that is sent from the ICM and is
coming from the app_media_lib and locale ECC variables:
"http://IP:7000/CVP/en-us/../Server?application=<appname>&ANI=...&DNIS=..."

But, the error message in your log looks like ICM is passing in a call
and looking for an app called  "ParentApp" - do you have such an app?*

*I've had many problems with Subdialog Invoke, but it is possible to get
it working if you are diligent and do everything right.
1. Make sure the ChildApp starts with SubdialogStart (not
CVP_Subd_Start) and ends with SubdialogReturn.
2. The data passed in the Subd_Invoke must be in name=value format and
that name must match EXACTLY what you put into the SubdStart in the
ChildApp.
3.The SubdReturn must return data in the form name=value and that name
must match exactly what the SubdInvoke is expecting as a ReturnValue.
4.When entering the URL, do NOT include any carriage return or blank
spaces at the end of the URL.
5. Make sure the ChildApp is available as a valid app on the same
VxmlServer.




Cisco Developer Community Forums wrote:
> Arvand Owji has created a new message in the forum "General Discussion
> - All Versions":
>
> --------------------------------------------------------------
> Janine,
> Thanks for your reply. I tried that (i think I tried it before too).
> If I remove the the host as you suggested:
> Â
> /CVP/Server?application=ChildApp&callid={Data.Session.callid}
> Â
> But the child app never gets executed and the Subdialog invoke just
> hangs in there until session times out. I also get the following error
> in global error logger:
> Â
> Â CVP VXML Server encountered a Bad-Fetch Error - URL:
> http://CVPA1:7000/CVP/en-us/../Server?DNIS=904611&ANI=1111111111&callid=87E18DCD3E6I11DFAFC5DA44EE2F7E34&*application=ParentApp*
> Â
> Doesn't this seem like a configuration error? I have never seen a url
> like this to call a CVP app:Â http://CVPA1:7000/CVP/en-us/
> --
> To respond to this post, please click the following link:
>
> <http://developer.cisco.com/web/cvp/forums/-/message_boards/message/2090009>
>
> or simply reply to this email.

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Arvand Owji on 03-04-2010 07:02:04 PM
Thanks again for the reply. I am doing everything exactly as you are suggesting. The fact is that the child gets executed properly, and it logs shows that it has been executed and ended as expected, however as soon we finish executing the child, we hear the famous "Im sorry, we are experiencing technical difficulty.." message. Note that everything works without any problem if I set the local application parameter to false. However having local app pram set to true in subdialog invoke causes the problem. Can you confirm for me that you are also using "Local application" in subdialog invoke set to true as well? Thanks again.

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Bill Westby on 05-04-2010 05:10:59 PM
Thanks again for the reply. I am doing everything exactly as you are suggesting. The fact is that the child gets executed properly, and it logs shows that it has been executed and ended as expected, however as soon we finish executing the child, we hear the famous "Im sorry, we are experiencing technical difficulty.." message. Note that everything works without any problem if I set the local application parameter to false. However having local app pram set to true in subdialog invoke causes the problem. Can you confirm for me that you are also using "Local application" in subdialog invoke set to true as well? Thanks again.

I use CVP subdialog's a lot for parent / child calls, found you can't go parent -> child -> child but that's another story...
 
I always call applications as Local Application = true but do not specify the http:// in the URI since it is a local application:
 
Example CVP Subdiallog Invoke parameters:
Subdialog URI: /CVP/Server?application=<yourchildappname>&callid={Data.Session.callid}
Local Application: True
Parameters : ....
Return Value : ....
 
I'm stretching here but setting Local App to false would allow http for off-box URIs, but setting it local causes CVP to handle the server resolution location and only expects a path to the local app from the root of the current runtime location.
 
Bill Westby.
 

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Janine Graves on 06-04-2010 04:35:42 AM
Hi Bill,
I'm attaching my own ParentApp and ChildApp Studio applications. To test these, unzip the contents and import each app into Studio. Then change the DefaultAudioPath IN BOTH APPS to point to the system prompts folder on YOUR media server. Then deploy both apps from Studio and run deployAllNewApps.bat on VxmlServer.
 
This should work, if not there's an error on your gateway or VxmlServer. If it does work, then there's a bug in one of your apps. Either way, this will help you pinpoint what's going wrong.
 
Janine
www.TrainingTheExperts.com

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Janine Graves on 06-04-2010 05:18:38 PM
HI Bill,
After calling in and testing the ParentApp and ChildApp, I modified them a little bit. Try importing the files (you'll have to go to the forum on the web to get the files) and changed the default audio path for both the Parent and Child. Deploy the apps and call in, they work on my system.
 
 

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Arvand Owji on 07-04-2010 06:43:46 PM
I actually tried my own app on a completely different deployment and it worked. I am sure that there is a miss configuration on my Gateway/VXMLServer that prevents local app sub-dialogs to run. As I mention before, If I set the local app to true and have my subdialog uri in a form of /CVP/Server/..... The subdialog wouldnt even be invoked and I get an error message in the CVP Log:
 
 CVP VXML Server encountered a Bad-Fetch Error - URL: http://CVPA1:7000/CVP/en-us/../Server?DNIS=904611&ANI=1111111111&callid=87E18DCD3E6I11DFAFC5DA44EE2F7E34&<strong style="font-weight: bold;">application=ParentApp
 
Im not sure where and what is causing this problem. I think I need to look at the gw logs too. Maybe I would get more info on this there. 

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Arvand Owji on 18-04-2010 05:00:14 PM


Thanks again for the reply. I am doing everything exactly as you are suggesting. The fact is that the child gets executed properly, and it logs shows that it has been executed and ended as expected, however as soon we finish executing the child, we hear the famous "Im sorry, we are experiencing technical difficulty.." message. Note that everything works without any problem if I set the local application parameter to false. However having local app pram set to true in subdialog invoke causes the problem. Can you confirm for me that you are also using "Local application" in subdialog invoke set to true as well? Thanks again.


I use CVP subdialog's a lot for parent / child calls, found you can't go parent -> child -> child but that's another story...
 
I always call applications as Local Application = true but do not specify the http:// in the URI since it is a local application:
 
Example CVP Subdiallog Invoke parameters:
Subdialog URI: /CVP/Server?application=<yourchildappname>&callid={Data.Session.callid}
Local Application: True
Parameters : ....
Return Value : ....
 
I'm stretching here but setting Local App to false would allow http for off-box URIs, but setting it local causes CVP to handle the server resolution location and only expects a path to the local app from the root of the current runtime location.
 
Bill Westby.
 

Bill, when you do Parent->Child->Child what behavior do you get? I might have a work around for that. 

Subject: RE: Re: New Message from Arvand Owji in Customer Voice Portal (CVP) - Gener
Replied by: Arvand Owji on 22-05-2010 01:31:13 PM
Just as a quick update. Cisco fixed nest subdialog issue on CVP 8 and for CVP 7, they released an ES that fixes the issue. Refer to release note of CVP 7.0(2) ES 33
CreatePlease to create content
Content for Community-Ad
FusionCharts will render here