OD 8.11.08.01
Onecloud AEP/MPP -> Onecloud forward proxy -> Customer on-prem F5 -> Customer on-prem VXML server
The AEP has a launch URL that is on the OC forward proxy
https://vxmltest.glb.avayacloud.com:12345/OTCS/Start
but it changes to the localhost.
https://itest1.corp.com/OTCS/s1020_ppOTCSGreeting
That won't work as Onecloud only knows about the F5 behind the proxy vxmltest.glb.avayacloud.com, not the individual instance itest1.corp.com.
30/03/2022 15:09:19:763 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : no variable for complex: session:sessionid=u428dc9aepmpp1-2022089200919-7&__VPapploggingurl=https://avayacloud.com/axis/services/VPReport4&__VPapploggingurl_2=https://avayacloud.com/axis/services/VPReport4&__VPapplog=/axis2/services/VPAppLogService&__VPvpms=avayacloud.com|avayacloud.com&__VPappvars=/axis2/services/VPAppVarsService&__VPVarAppDate=1647996466156&__VPVarAppURL=https://avayacloud.com/axis/services/VPAppRuntimeVars&__VPVarAppURL2=https://avayacloud.com/axis/services/VPReport4&__VPVarGlobalDate=1648148846684&__VPbreadcrumb=enabled&__VPmaxbackuplogfiles=10&__VPlogname=%default%RMHuCmrmxK3L4iIV&__VPlogpassword=&__VPloglevel=Info&__VPapptracelevel=o|d|e|d|d|d|d&__VPappname=0:Onprem
Then the application attempts to invoke another servlet called RAM, which is used to create VXML pages for WAV files, but somehow the URL is changed and all processing stops.
30/03/2022 15:09:21:809 [TraceWriter.writeln] INFO - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : Using SCESession D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS servlet : s1020_ppOTCSGreeting
30/03/2022 15:09:21:814 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : Module Local Call to : [RAM/Start]
30/03/2022 15:09:21:816 [TraceWriter.writeln] INFO - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : ** Pushed Stack Frame [/RAM]
30/03/2022 15:09:21:816 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : request url copy is [ https://itest1.corp.com/OTCS/s1020_ppOTCSGreeting ]
30/03/2022 15:09:21:817 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : location is [/RAM/Start?___DDSESSIONID=D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS]
30/03/2022 15:09:21:817 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : redirecting to [https://itest1.corp.com/RAM/Start?___DDSESSIONID=D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS]
The Java code in my application invokes OD runtime classes that I do not have access to and no where do we specify the full URL.
/**
* Returns the entry point URL to the application being invoked.
* Last generated by Orchestration Designer at: (timestamp generation disabled)
*/
public String getWebAppEntryPoint(com.avaya.sce.runtimecommon.SCESession mySession) {
String entryPoint = mySession.getParameter("module.RAM.entrypoint");
if (entryPoint != null)
return checkEntryPoint(entryPoint, mySession);
return(checkEntryPoint("RAM/Start", mySession));
By decompiling the OD code, which we have no access to change, I can see it attempts to format the next URL based on the request it received, which some component must’ve transalted to what we see
public final void redirect(SCESession mySession, String location) throws IOException, ServletException {
if (!mySession.isRequestStillValid(getClass(), true)) {
System.out.println("*** Abandoning thread sessionid [" + mySession
.getSessionId() + "], request invalid, forward stopped");
return;
}
Long start = (Long)mySession.getProperty("___sage.pagerequest.start");
if (start != null) {
long stop = System.currentTimeMillis();
Performance.update("_avaya-servlet-request|Servlet Request", stop - start.longValue(), mySession.getServlet().getServletName());
mySession.removeProperty("___sage.pagerequest.start");
}
HttpServletRequest request = mySession.getRequest();
HttpServletResponse response = mySession.getResponse();
if (request == null) {
ReportInfo.alarm("Warning", "Unable to forward to " + location + " request is null, application stoping sessionid[" + mySession
.getSessionId() + "],", mySession);
return;
}
if (response == null) {
ReportInfo.alarm("Warning", "Unable to forward to " + location + " response is null, application stoping sessionid[" + mySession
.getSessionId() + "],", mySession);
return;
}
URL reqURL = new URL(mySession.getRequestCopyURL());
URL locURL = new URL(reqURL, location);
if (mySession.isDDTraceEnabled() == true) {
mySession.getTraceOutput().writeln(1, "request url copy is [" + mySession
.getRequestCopyURL() + "]");
mySession.getTraceOutput().writeln(1, "location is [" + location + "]");
mySession.getTraceOutput().writeln(1, "redirecting to [" + locURL.toString() + "]");
}
30/03/2022 15:09:21:817 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : location is [/RAM/Start?___DDSESSIONID=D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS]
30/03/2022 15:09:21:817 [TraceWriter.writeln] DEBUG - D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS : redirecting to [https://itest1.corp.com/RAM/Start?___DDSESSIONID=D1EB3345BE8F9238C67160B4AB69E6CA:/OTCS]