Message |
[+]
Avaya Orchestration Designer
» REST WS Failure - or lack of user understanding, 14/06/2017 09:53:19
» Go to message
|
|
Thanks Ross,
How do I enable that level of logging for Rest requests? That might help me debug. I definitely don't get the same results as you're getting.
Thanks again.
Michael
|
|
[+]
Avaya Orchestration Designer
» REST WS Failure - or lack of user understanding, 13/06/2017 20:10:48
» Go to message
|
|
Orchestration Designer: 7.1
Tomcat: 8.0
Java: 1.8/8.0
I have a rest web service operation that I'm trying to invoke and have run into a couple of problems. The details of the rest service operation are as follows:
HTTP Method: Post
URL Format: Query or Path
Input Parameters: None
Message Body: <XML formatted string>
Output Parameters: decryptedValue
Output Format: String
Use Java Object: Checked
Customer Content Type: text/plain
For the first issue, when I attempt to execute the rest operation, the application hangs until when the request is sent to the server. I see a log entry on the server when the request is received, and when it's sent back. However, the OD application sits there even after the request has been received from the server, until the time out value has been reached.
If I add each of the variables from the XML formatted string to the Input Parameters dialog, the rest operation works without fail. The problem is this causes the variables and values to be added to the query string or the path string, which means the information is logged to standard tomcat server request logs. This exposes the information, which fails the customers security requirements.
Why is the Input Parameters a required element?
For the second issue, the rest service returns plain text. No XML, no JSON, no HTML. Although the return has no effect (I've tried every combination so far), the returned value does not get assigned to the Output Parameter assigned variable. I see the result in the web service response, but the value is not assigned to the variable. I've tried both with and without the "Use Java Object" checkbox selected. Currently, the value is selected because that's the only way to select the "String" Output Format, however no matter what is selected, the returned value does not get assigned to the variable. Unfortunately, since the value is not assigned to the variable, I can't even attempt to post-process the results in a custom servlet.
How can I obtain the rest result value?
If needed, I can provide a working sample rest service application and speech application. IDK if it matters, but the rest services are based on Jersey.
Thank you,
Michael
|
|
[+]
Avaya Orchestration Designer
» "##" returning "no match" event in prompt, 12/06/2017 11:22:51
» Go to message
|
|
Hi Ross,
Thanks for the quick response. The type-ahead setting on the EP is enabled. This is part of the confusion. Following is the VXML that is being used, which shows the grammar as well.
<!-- BEGIN CUT -->
0:<?xml version="1.0" encoding="UTF-8"?>
1:<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" xml:lang="en-us">
2:<meta name="author" content="Avaya Aura Orchestration Designer"/>
3:<meta name="runtime-version" content="07.10.12.02"/>
4:<meta name="runtimecommon-version" content="07.10.12.02"/>
5:<meta name="copyright" content="Copyright (c) 2002-2011, Avaya"/>
6:<form id="GetCallerId">
7:<property name="maxnbest" value="1"/>
8:<var name="nbest" expr="1"/>
9:<var name="GetCallerId___value"/>
10:<var name="GetCallerId___confidence"/>
11:<var name="GetCallerId___utterance"/>
12:<var name="GetCallerId___inputmode"/>
13:<var name="GetCallerId___interpretation" expr="'undefined'"/>
14:<var name="GetCallerId___noinputcount" expr="'0'"/>
15:<var name="GetCallerId___nomatchcount" expr="'0'"/>
16:<var name="GetCallerId___dtmf_grammar"/>
17:<var name="graminterp___GetEmployee_DTMF" expr="'undefined'"/>
18:<field name="GetCallerId" modal="false">
19:<property name="interdigittimeout" value="3000ms" />
20:<property name="termtimeout" value="1000ms" />
21:<prompt bargein="true" bargeintype="speech" timeout="5000ms">
22:<voice name="Samantha"><audio src="../Audiofiles/UUS_USA_CTI_TTS12_en.wav"/>
23:</voice></prompt>
24:<grammar type="application/srgs+xml" mode="dtmf" root="GetEmployee_DTMF" weight="1.0" xml:lang="en-us" version="1.0" tag-format="semantics/1.0"><rule id="GetEmployee_DTMF" scope="public"><ruleref uri="#dtmf_grammar" /><tag>out.cxtag=rules.dtmf_grammar;out.dtmf_grammar=rules.dtmf_grammar;</tag></rule><rule id="dtmf_grammar" scope="private"><tag>out='';</tag><item repeat="1-15"><ruleref uri="#dtmf_grammarrepeat"/><tag>out+=rules.dtmf_grammarrepeat</tag></item></rule><rule id="dtmf_grammarrepeat" scope="private"><tag>out='';</tag><one-of><item>0<tag>out+="0";</tag></item><item>1<tag>out+="1";</tag></item><item>2<tag>out+="2";</tag></item><item>3<tag>out+="3";</tag></item><item>4<tag>out+="4";</tag></item><item>5<tag>out+="5";</tag></item><item>6<tag>out+="6";</tag></item><item>7<tag>out+="7";</tag></item><item>8<tag>out+="8";</tag></item><item>9<tag>out+="9";</tag></item></one-of></rule></grammar>
25:<catch event="noinput">
26:<assign name="_avayaNoinputCounter" expr="_avayaNoinputCounter + 1"/>
27:<assign name="GetCallerId___noinputcount" expr="try {_avayaNoinputCounter} catch (errMsg) {'0'}"/>
28:<assign name="GetCallerId___nomatchcount" expr="try {_avayaNomatchCounter} catch (errMsg) {'0'}"/>
29:<submit next="PromptErrorHandler?___DDSESSIONID=F7D858DA34EEBA84D544E6D3BBE7B951%3A%2FITSMIVR2" namelist="GetCallerId___noinputcount GetCallerId___nomatchcount" method="post" enctype="multipart/form-data"/>
30:</catch>
31:<catch event="nomatch">
32:<assign name="_avayaNomatchCounter" expr="_avayaNomatchCounter + 1"/>
33:<assign name="GetCallerId___noinputcount" expr="try {_avayaNoinputCounter} catch (errMsg) {'0'}"/>
34:<assign name="GetCallerId___nomatchcount" expr="try {_avayaNomatchCounter} catch (errMsg) {'0'}"/>
35:<submit next="PromptErrorHandler?___DDSESSIONID=F7D858DA34EEBA84D544E6D3BBE7B951%3A%2FITSMIVR2" namelist="GetCallerId___noinputcount GetCallerId___nomatchcount" method="post" enctype="multipart/form-data"/>
36:</catch>
37:<filled>
38:<assign name="GetCallerId___confidence" expr="getnbest('confidence', nbest)"/>
39:<assign name="GetCallerId___utterance" expr="getnbest('utterance', nbest)"/>
40:<assign name="GetCallerId___inputmode" expr="getnbest('inputmode', nbest)"/>
41:<assign name="GetCallerId___dtmf_grammar" expr="getnbest('interpretation.dtmf_grammar', nbest)"/>
42:<if cond="GetCallerId___inputmode == 'dtmf'">
43:<assign name="graminterp___GetEmployee_DTMF" expr="GetCallerId___dtmf_grammar"/>
44:<if cond="containsUndefined(graminterp___GetEmployee_DTMF) == false">
45: <assign name="GetCallerId___interpretation" expr="graminterp___GetEmployee_DTMF"/>
46:</if>
47:<else/>
48: <assign name="GetCallerId___interpretation" expr="getnbest('interpretation.cxtag', nbest)"/>
49:</if>
50:<if cond="startswith(GetCallerId___interpretation, 'undefined') == true ">
51: <assign name="GetCallerId___interpretation" expr="getnbest('interpretation', nbest)"/>
52:</if>
53:<assign name="GetCallerId___value" expr="GetCallerId___interpretation"/>
54:<assign name="GetCallerId___noinputcount" expr="getnbestnmni(_avayaNoinputCounter, nbest)"/>
55:<assign name="GetCallerId___nomatchcount" expr="getnbestnmni(_avayaNomatchCounter, nbest)"/>
56:</filled>
57:</field>
58:<catch event="connection.disconnect">
59:<assign name="GetCallerId___noinputcount" expr="try {_avayaNoinputCounter} catch (errMsg) {'0'}"/>
60:<assign name="GetCallerId___nomatchcount" expr="try {_avayaNomatchCounter} catch (errMsg) {'0'}"/>
61:<submit next="AvayaDefaultDisconnectHandler?___DDSESSIONID=F7D858DA34EEBA84D544E6D3BBE7B951%3A%2FITSMIVR2" namelist="GetCallerId___noinputcount GetCallerId___nomatchcount" method="post" enctype="multipart/form-data"/>
62:</catch>
63:<block>
64:<submit next="LogCallerResponse?___DDSESSIONID=F7D858DA34EEBA84D544E6D3BBE7B951%3A%2FITSMIVR2" namelist="GetCallerId___value GetCallerId___confidence GetCallerId___utterance GetCallerId___inputmode GetCallerId___interpretation GetCallerId___noinputcount GetCallerId___nomatchcount GetCallerId___dtmf_grammar" method="post"/>
65:</block>
66:</form>
67:</vxml>
68:
<!-- END CUT -->
|
|
[+]
Avaya Orchestration Designer
» "##" returning "no match" event in prompt, 12/06/2017 11:00:16
» Go to message
|
|
I have a situation where I press "#" at a prompt, I get the correct "no input" event returned. If I press "##" in quick succession, I get a "no match" event.
What would cause this? I need to allow the caller the ability to press the pound key twice to "skip" the prompt. If I press the pound key twice, in slow succession, the application works as expected. Why is the "termination character" returning a "no match" event instead of a "no input" event.
Michael
|
|
[+]
Avaya Orchestration Designer
» PDC Question - Variable list that also allows new implicit variable creation, 06/06/2017 16:30:03
» Go to message
|
|
Out of curiosity, what does the LifeCycle class do? Are there any routines that are pertinent the new variable life cycle?
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 06/06/2017 15:53:31
» Go to message
|
|
Ahhh, that explains my confusion. Somewhere, I read once, that the default was 45 seconds. That may not be true for the AEP. That makes perfect sense, now. I'll add this to my list of steps to perform at the beginning of any project. :)
Also, I agree that 45 seconds is far too long. The web service operation timeout for these applications is being set at runtime from a value stored in a database. Fortunately, I've placed all the web service operations in a Data project. When I found the entry in the help system, it uses the "fetchtimeout" property as an example for the External Property pallet item. This gives me the tools I need.
Thanks a bunch, Ross. I appreciate the indispensable help you folks always provide. :)
Michael
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 06/06/2017 15:43:17
» Go to message
|
|
How can I set this global timeout value in a Data project that utilizes the web service operation?
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 06/06/2017 15:41:14
» Go to message
|
|
Adding an explicit property to set the global timeout to the default value of 45 seconds provides a work-around that resolves this problem. The bigger questions, however, are:
why is the developer required to explicitly set the default value for the timeout when adjusting the web service operation timeout value?
why does setting the web service operation timeout value override the default timeout value of the parent container?
Michael
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 06/06/2017 15:29:59
» Go to message
|
|
I'm going to add the explicit fetch timeout of 45 seconds proprety to the AppRoot node (I can't see your image, but that's the ONLY non-prompt location I can place the external property).
I'll post the results of that test shortly.
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 06/06/2017 15:26:15
» Go to message
|
|
Sorry for the delay.
The fetch timeout is caused by the web service operation timeout (look at the 3rd line of the log snippet you pasted ["Timed out fetching URL"]). Why is this not being handled in the try/catch? The fetch timeout for the Data node is 45 seconds. The web service timeout is much smaller.
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 02/06/2017 10:29:23
» Go to message
|
|
Attached is both the trace file and the MPP session and VB log file. Let me know if there's anything else you need. :)
Michael
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 02/06/2017 10:08:04
» Go to message
|
|
I just changed the web service timeout from 45 to 20 seconds. The default fetch timeout is 45 seconds. I get the same result... "The system is experiencing technical difficulties". It doesn't matter if the fetch times out first or the web service times out first.
Michael
|
|
[+]
Avaya Orchestration Designer
» PDC Question - Variable list that also allows new implicit variable creation, 01/06/2017 17:48:26
» Go to message
|
|
Is it possible to create several variables when the PDC is enabled? If so, how?
I can create a variable when the PDC pallet item is used, but my FlowItem is the class that extends IImplicitVariable. I'm thinking I could provide a similar interface as the CTI connector plugin, where the ctiinfo variable is created when the connector is enabled, but the Initialize function allows the creation of a new variable, or the use of the existing variable, dependent on a boolean property selection. I just don't know how to create a new variable at PDC enablement time.
Thanks again for the help.
Michael
|
|
[+]
Avaya Orchestration Designer
» WSOP Timeout causing "System experiencing technical difficulties", 01/06/2017 12:57:16
» Go to message
|
|
My apologies... I've only seen this in the SOAP web service operation, Axis 2 only. I haven't tested this with Axis 1.
Michael
|
|
[+]
Avaya Orchestration Designer
» PDC Question - Variable list that also allows new implicit variable creation, 01/06/2017 12:23:30
» Go to message
|
|
This is a long shot, I know, but is it possible to provide the user a variable list that allows them to select an implicit variable or enter the name of a new implicit variable to create? I know how to present each of these conditions independent of each other, but is there a way to combine these functions into a single property item?
Thank you,
Michael
|
|