cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3085
Views
5
Helpful
16
Replies

finesse 11.6 with UCCE - update call variable issue

cukouncukoun
Level 1
Level 1

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

1 Accepted Solution

Accepted Solutions

dekwan
Cisco Employee
Cisco Employee

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

View solution in original post

16 Replies 16

dekwan
Cisco Employee
Cisco Employee

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

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

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

dekwan
Cisco Employee
Cisco Employee

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

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

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

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

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

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

Hi Denise,

did you received any update from Finesse team?

Thanks

Tomas

Hi Tomas,

Not yet. I just sent a reminder message to them.

Thanx,

Denise

Hi Denise,

do you have any update for me?

Thanks

Tomas

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

dekwan
Cisco Employee
Cisco Employee

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

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: