02-12-2018 02:08 AM
Hi all,
we are experiencing issue with CTI call variable issue from Finesse desktop. Updating of standard CallVariables1-10 and custom ECC variables working without any issue BUT we are not able to update customerAccountNumber and customerPhoneNumber variables from Finesse. These variables are normally used by dialer on outbound calls and we are able to update them without any issues from CTIOS desktop but not from finesse :-(
When we tried to update them from Finesse, Finesse decline this due to some unknown (Invalid input) reasons:
0003244291: 10.105.170.103: Feb 12 2018 10:20:33.398 +0100: %CCBU_http-apr-8082-exec-14-6-REQUEST_START: %[method_name=PUT][parameter_name={ }][resource_name=/Dialog/16851191][usr=12345]: Request start
0003244292: 10.105.170.103: Feb 12 2018 10:20:33.404 +0100: %CCBU_http-apr-8082-exec-14-6-API_REQUEST: %[REQUEST_URL=Dialog/16851191][agent_id=12345][requestId=null][request_method=dialog.PUT][request_parameters= requestedAction:UPDATE_CALL_DATA mediaProperties: Call Variables Collection: [ name:callVariable8 value:0604294289, name:callVariable10 value:636540240277510000.58648, name:user.ECC_CallRecID value:ECC636540240277510000.58648, name:customerAccountNumber value:AAAAA] mediaId:1]: Request from client to webservice api
0003244293: 10.105.170.103: Feb 12 2018 10:20:33.404 +0100: %CCBU_http-apr-8082-exec-14-4-RUNTIME_ERROR: %[ERROR_DESCRIPTION=com.cisco.ccbu.finesse.cti.service.dialog.CCEDialogCtiService][exception=RuntimeException][noname=com.cisco.ccbu.finesse.api.exception.InvalidInputException]: Runtime error
0003244294: 10.105.170.103: Feb 12 2018 10:20:33.406 +0100: %CCBU_http-apr-8082-exec-14-4-EXCEPTION_INFO: %[build_date=Jan 01, 1970 1:00 AM][build_type=rel][exception=com.cisco.ccbu.finesse.api.exception.InvalidInputException
at com.cisco.ccbu.finesse.cti.service.dialog.DialogValidator.validateCallVariable(DialogValidator.java:399)
at com.cisco.ccbu.finesse.cti.service.dialog.DialogValidator.validateCallVariables(DialogValidator.java:363)
at com.cisco.ccbu.finesse.cti.service.dialog.DialogValidator.validatePUTMediaProperties(DialogValidator.java:241)
at com.cisco.ccbu.finesse.cti.service.dialog.DialogValidator.validatePUTRequest(DialogValidator.java:165)
at com.cisco.ccbu.finesse.cti.service.dialog.DialogValidator.validateDialogObject(DialogValidator.java:109)
at com.cisco.ccbu.finesse.cti.service.dialog.DialogCtiService.validate(DialogCtiService.java:215)
at com.cisco.ccbu.finesse.cti.service.AbstractCtiService.validate(AbstractCtiService.java:80)
at com.cisco.ccbu.finesse.api.queuemanager.QueueManager.handleRequestImpl(QueueManager.java:137)
at com.cisco.ccbu.finesse.api.queuemanager.QueueManager.handleRequest(QueueManager.java:90)
at com.cisco.ccbu.finesse.api.dialog.DialogService.update(DialogService.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
So my questions is how Finesse server know which normal and ECC variables are available (configured on the UCCE) so which variables can be used on the call? Because on the logs we see that API request from desktop was declined directly by Finesse and no request was sent to CTI server.Based on this Finesse server needs to know which variables are available.
Thanks
Tomas
Solved! Go to Solution.
03-19-2018 09:59 AM
Hi Tomas,
Sorry for the month long delay for an update, but it FINALLY got a conclusion for this.
Per Finesse's design, it only allows updates to custom ECC variables (ones that start with user.*). This has always been the design. After a discussion with the CCE team, it seems like CCE allows updates to system defined variables.
Since this was always Finesse's design, an enhancement defect was opened for this issue and the Finesse PO will evaluate it accordingly. The bugId is CSCvi53784. I just opened it, so not sure if it is already visible to the public yet.
Thanx,
Denise
02-12-2018 09:41 AM
Hi Tomas,
Yes, Finesse does do some validation check before sending the request to the CTI to update the call variables. Finesse does not allow the updating of Outbound Agent ECC variables. It checks to see if the call variable name is one of the BA* variables on its list. I do not know the reasoning behind this restriction.
Thanx,
Denise
02-12-2018 11:01 AM
Hmm,
Ok but it does not make sense why there should be this restriction...It could be good if someone from cisco could explain this.
And customerAccountNumber attribute does not have BA string on its name.
Tomas
02-12-2018 11:05 AM
Hi Tomas,
I will ask the Finesse team the reasoning behind this. I will get back to you when I get a response from them.
Thanx,
Denise
02-14-2018 09:41 AM
Hi Tomas,
Can you show me the format of the customerAccountNumber variable? Is it user.customerAccountNumber? What is the body you are sending to update the call variable?
Thanx,
Denise
02-14-2018 01:04 PM
Hi Denise,
sure I can. You could see it directly from the issue description where was finesse API UPDATE_CALL_DATA method called:
0003244292: 10.105.170.103: Feb 12 2018 10:20:33.404 +0100: %CCBU_http-apr-8082-exec-14-6-API_REQUEST: %[REQUEST_URL=Dialog/16851191][agent_id=12345][requestId=null][request_method=dialog.PUT][request_parameters= requestedAction:UPDATE_CALL_DATA mediaProperties: Call Variables Collection: [ name:callVariable8 value:0604294289, name:callVariable10 value:636540240277510000.58648, name:user.ECC_CallRecID value:ECC636540240277510000.58648, name:customerAccountNumber value:AAAAA] mediaId:1]: Request from client to webservice api
We tried it just with a customerAccountNumber as a variable name and update it with value of AAAAA
Tomas
02-14-2018 01:55 PM
Hi Tomas,
Sorry, I just realized that you had sent me that information in the initial post. Finesse's API only allows updates on call variables with name of callVariable* and user.*. If you change your variable to user.customerAccountNumber, it should work.
Now, why does Finesse have that restriction? I asked the Finesse team, but I haven't gotten an answer yet.
Thanx,
Denise
02-14-2018 10:35 PM
Hi Denise,
thanks for answer.I hope that you will receive answer also from finesse team soon.
We cant rename this variable on the IPCC side to user.customer... because then it will be a standard ECC variable as others variables and have nothing to do with this original customerAccountNumber variable. We need to use this one because only this one is part of the Agent_Real_Time table where we used it for reporting :-). One thing which we can try is just to rename this variable to user.customerAccountNumber on the UPDATE_CALL_DATA API method - I will let you know.
Thanks
T
02-15-2018 12:06 PM
Denise,
as I said I tried to modify UPDATE_CALL_DATA API request and I changed name of the variable from customerAccountName to user.customerAccountName. Finnese server allowed this update (maybe because user. was at the variable name begining so it met variable name rules as you mentioned previously) and forwarded this update to the CTI server BUT update of this variable was declined by CTI server (Failed to find this ECC variable) which was seen on the CTI server logs - Finesse and CTI server logs are below.
What is strange is that customerPhoneNumber and customerAccountNumber attributes could be seen on the CTISetCallDataReq message (below) which is used by Finesse server to updating all variables on the CTI server so from my point of view it should normally work and its bug if its not working.
Finesse logs:
0005915170: 10.105.170.103: Feb 15 2018 09:56:06.177 +0100: %CCBU_http-apr-8082-exec-19-6-REQUEST_START: %[method_name=PUT][parameter_name={ }][resource_name=/Dialog/16851345][usr=12345]: Request start
0005915171: 10.105.170.103: Feb 15 2018 09:56:06.181 +0100: %CCBU_http-apr-8082-exec-19-6-API_REQUEST: %[REQUEST_URL=Dialog/16851345][agent_id=12345][requestId=null][request_method=dialog.PUT][request_parameters= requestedAction:UPDATE_CALL_DATA mediaProperties: Call Variables Collection: [ name:callVariable8 value:0604294289, name:callVariable10 value:636542817613540000.58648, name:user.ECC_CallRecID value:ECC636542817613540000.58648, name:user.customerAccountNumber value:AAAAA] mediaId:1]: Request from client to webservice api
0005915173: 10.105.170.103: Feb 15 2018 09:56:06.182 +0100: %CCBU_COMMAND_POOL-1-worker-97-6-FINESSE ALLOWED ACTIONS: %[extension=58648][finesseActions=[TRANSFER_SST, CONSULT_CALL, HOLD, UPDATE_CALL_DATA, SEND_DTMF, DROP]]: Actions allowed by Finesse
0005915174: 10.105.170.103: Feb 15 2018 09:56:06.182 +0100: %CCBU_COMMAND_POOL-1-worker-97-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :5520906 , peripheralId: 5000, connectionDeviceIdType : 0, callData: CTISetCallDataReq [peripheralId=-1, connectionDeviceIdType=-1, callId=16851345, connectionDeviceId=58648, ANI=null, userToUserInfo=null, callerEnteredDigits=null, callVariable1=null, callVariable2=null, callVariable3=null, callVariable4=null, callVariable5=null, callVariable6=null, callVariable7=null, callVariable8=0604294289, callVariable9=null, callVariable10=636542817613540000.58648, callWrapupData=null, customerPhoneNumber=null, customerAccountNumber=null, routerCallKeyDay=-1, routerCallKeyCallId=-1, routerCallKeySequenceNumber=-1, callOriginatedFrom=\u0000]CTISetCallDataReq [ invokeID=null, cti_sequence_id=-1, msgID=26, msgName=UnsupportedCTIMessage, deploymentType=CCE]][cti_message_name=SetCallDataReq]: Message going to the backend cti server
0005915175: 10.105.170.103: Feb 15 2018 09:56:06.183 +0100: %CCBU_http-apr-8082-exec-19-6-REQUEST_END: %[elapsed_time=4]: Request complete
0005915176: 10.105.170.103: Feb 15 2018 09:56:06.187 +0100: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_event_read_time=1518684966186][cti_message=CTICallDataUpdateEvent [peripheralId=5000, callType=9, connectionDeviceIdType=0, callId=16851345, connectionDeviceId=58648, newConnectionDevId=58648, newCallId=16851345, newConnectionDeviceIdType=0, ani=null, dnis=null, dialedNumber=null, callVariable1=null, callVariable2=null, callVariable3=null, callVariable4=null, callVariable5=null, callVariable6=null, callVariable7=null, callVariable8=0604294289, callVariable9=null, callVariable10=636542817613540000.58648, callWrapupData=null]CTICallDataUpdateEvent [ invokeID=null, cti_sequence_id=5590745, msgID=25, msgName=CallDataUpdateEvent, deploymentType=CCE]]: Decoded Message to Finesse from backend cti server
0005915177: 10.105.170.103: Feb 15 2018 09:56:06.187 +0100: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_event_read_time=1518684966187][cti_message=CTISetCallDataConf [ invokeID=5520906, cti_sequence_id=5590746, msgID=27, msgName=SetCallDataConf, deploymentType=CCE]]: Decoded Message to Finesse from backend cti server
CTI server logs:
09:56:06:475 cg1A-ctisvr Session 2729: MsgType:SET_CALL_DATA_REQ (InvokeID:0x543e0a PeripheralID:5000
09:56:06:475 cg1A-ctisvr Session 2729: ConnectionDeviceIDType:CONNECTION_ID_STATIC ConnectionCallID:16851345 NumNamedVariables:2
09:56:06:475 cg1A-ctisvr Session 2729: NumNamedArrays:0 CallType:NULL_CALLTYPE CalledPartyDisposition:CD_INVALID CampaignID:0
09:56:06:475 cg1A-ctisvr Session 2729: QueryRuleID:0 ConnectionDeviceID:"58648" CallVariable8:"0604294289"
09:56:06:475 cg1A-ctisvr Session 2729: CallVariable10:"636542817613540000.58648" ExpandedCallContxt:<TotalBytes=84>
09:56:06:475 cg1A-ctisvr Session 2729: user.customerAccountNumber="AAAAA" user.ECC_CallRecID="ECC636542817613540000.58648" )
09:56:06:475 cg1A-ctisvr Trace: CTIApplication::MergeECCData: Failed to find ECC variable named "user.customerAccountNumber".
T
02-16-2018 10:52 AM
Hi,
Yeah, if the variable isn't named user.customerAccountNumber, then the CTI will reject that since it doesn't match. The Finesse team is still trying to chase down the reasoning behind the Finesse fronted validation check.
Thanx,
Denise
02-21-2018 06:01 AM
Hi Denise,
did you received any update from Finesse team?
Thanks
Tomas
02-21-2018 11:08 AM
Hi Tomas,
Not yet. I just sent a reminder message to them.
Thanx,
Denise
03-13-2018 03:06 AM
Hi Denise,
do you have any update for me?
Thanks
Tomas
03-13-2018 11:47 AM
Hi Tomas,
They did get back to me, but it doesn't truly answer the question, so I'm trying to chase it down even more.
Basically, in the CCE config tool, ECC variables must be prefixed with user*. So, that is why Finesse makes that validation that the variable must start with user*. I am trying to chase down the question of if Finesse should be able to update the outbound variables, since that is the one that you are trying to update. You had said it works for CTIOS, so I am not sure if it is just a restriction Finesse is putting in place.
Either way though, in this current version of Finesse, updating those variables will not work.
Thanx,
Denise
03-19-2018 09:59 AM
Hi Tomas,
Sorry for the month long delay for an update, but it FINALLY got a conclusion for this.
Per Finesse's design, it only allows updates to custom ECC variables (ones that start with user.*). This has always been the design. After a discussion with the CCE team, it seems like CCE allows updates to system defined variables.
Since this was always Finesse's design, an enhancement defect was opened for this issue and the Finesse PO will evaluate it accordingly. The bugId is CSCvi53784. I just opened it, so not sure if it is already visible to the public yet.
Thanx,
Denise
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide