Author Message
SandeepParvathreddy
Joined: Dec 6, 2013
Messages: 86
Offline
Hi team,

Greetings.

Could you please advice on the below query by one of the customer using Load balancer[ https://kemptechnologies.com/]

AAEP -- 7.1.0.0.1106
AAOD -- 07.01.08.04
AES connector version -- 07.01.08.04

Customer Notes:
The solution is One Virtual Server that embraces several real servers under it (Tomcat instances), and provides rotation of the Tomcats among call sessions.

On the side of the EPMS Applications we have an http://virtual_server_IP:8080/appl/Start configured. [19X.1X8.XXX.181]

While checking the implementation of the load balancer on Experience portal we have found out that when the application is trying to get CTI data (initial call) it is actually goes to execute http command: http://virtual_server_IP:8080/aesconnector/... [19X.1X8.XXX.181]
It means that for the load balancer it is a different http request and it uses actually aesconnector that belongs to the next available Tomcat instance under KEMP Virtual servers, though it is being executed within the same session.

We find it wrong and would prefer to use aesconnector that belongs to the same Tomcat server instance that the session has started on.

I believe that CTI Command takes the server IP on the EPMS Application side, that is why it takes the same IP as Virtual Server. Is there any way to make the CTI command go via the real server IP address (localhost) or try to get the CTI data from the same tomcat instance.

Is this feasible by the OD app or is this something under the control of Load Balancer?

Attached the app trace for reference.

App trace snippet:
26/06/2017 11:29:18:051 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Assigning [0] to [rc]
26/06/2017 11:29:18:066 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Using SCESession 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB servlet : Return
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Using SCESession 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB servlet : CheckRc_IpAddr
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : ** Popped Stack Frame [/IpAddressGetter]


Getting IP address of the Real server - tomcat session has been started on
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Storing :IpAddressGetter___outIP_ADDRESS to complex: IpAddressGetter:outIP_ADDRESS as [19X.1X8.XXX.65]
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------





26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Storing :IpAddressGetter___outRC to complex: IpAddressGetter:outRC as [0]
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Assigning [IpAddressGetter:outIP_ADDRESS] to [IpAddress]
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : [condition1] Expression [IpAddressGetter:outRC] String Equal [9]
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : [condition2] Expression [IpAddressGetter:outRC] String Equal [8]
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Using SCESession 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB servlet : GetDataFromWebXml
26/06/2017 11:29:18:082 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Using SCESession 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB servlet : CheckXml_RC
26/06/2017 11:29:18:098 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : [condition1] Expression [RETURN_CODE] String Equal Ignorecase [8]
26/06/2017 11:29:18:098 INFO - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : Using SCESession 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB servlet : GetCTI
26/06/2017 11:29:18:098 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.execute: encrypted value is HeOhNXdyzSLGw3DI3/6GBrzJZAoTNukd4u5frb98sE8=

GetCTICallInfo is using the Loadbalancer IP address and is actually going to 19X.1X8.XXX.70
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

26/06/2017 11:29:18:098 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.execute: request to manager is http://19X.1X8.1XX.181:8080/aesconnector/CallInfoInitialCall?extension%3D341006&k=HeOhNXdyzSLGw3DI3%2F6GBrzJZAoTNukd4u5frb98sE8%3D
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

26/06/2017 11:29:18:098 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.execute: setting session cookie to 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.execute: callinfo from Manager is callid=310&ani=0526344467&dnis=8188045&extension=341006&ucID=00001003101498465750&uui= &state=established
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.processCallInfoResults: rawResponse: callid=310&ani=0526344467&dnis=8188045&extension=341006&ucID=00001003101498465750&uui=+&state=established
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CallInfo.doGetCallInfo: Populating call info variable values...
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.setCallInfoVariableValues: Call ID 310
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.setCallInfoVariableValues: Calling # (ANI) 0526344467
26/06/2017 11:29:18:113 DEBUG - 63D330C2419ACFC04D7D368DA9E50AFE:/R0_MCB : CTICommand.setCallInfoVariableValues: Called # (DNIS) 8188045
Filename app_trace.log [Disk] Download
WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
In the load balance setting, the application can be configured to call the AES Connector on it's own app server machine. There are two ways to configure this:

In Eclipse design environment, go to the Properties of the project and select Avaya AES Connector in the Pluggable Connectors tab, then select "Communicate to the AESC using localhost..." checkbox and enter the port. Essentially, this sets up the app to invoke AES connector functions through localhost and port.
The config data from the UI interaction above actually get stored in web.xml as the follows (given the port is 8080):

<context-param>
<param-name>sage.cti.localport</param-name>
<param-value>8080</param-value>
<description>port for AESC communication</description>
</context-param>

So, you can just manually add this in the web.xml of the app after deployment.
SandeepParvathreddy
Joined: Dec 6, 2013
Messages: 86
Offline
Thanks Wilson for the inputs. Will pass it to the customer team and pass you the feedback.
Go to:   
Mobile view