cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1222
Views
5
Helpful
13
Replies

Finesse not publishing call variable updates for transfer and consult calls

Yogitak
Level 1
Level 1

Hi,

 

We are facing following issue with Finesse notifications

 

The scenario is

  • Agent 1 receives call,  Initiates either consult or transfers call to  agent 2
  • Speaks to agent 2, and then Agent 1 exits the call leaving customer with agent 2
  • So when  agent 1 exits and is in wrap, gadget sends a rest request to update call variable 5 with some value. The rest request is invoked on the current dialog with "requestedAction" of  "UPDATE_CALL_DATA". So we expect to see the updated value in call variable 5 in call control gadget of Agent1. But the value is NOT being displayed.

For Normal and success call we can see following line in log:

Header : [ClientServices] MasterPublisher._parseAndPublishXMLEvent() - Received XML event on node '/finesse/api/User/<userid>/Dialogs': <dialog xml here>

But the above is missing in transfer/consult calls.

 

Can you please help as to why the call variable is not updated and why the publish event is missing  for transfer calls ?

 

Thanks,

Yogita.

13 Replies 13

dekwan
Cisco Employee
Cisco Employee

Hi,

 

Once agent1 exits from the call and is in wrap up, it no longer has permissions to edit that dialog object. As a result, your UPDATE_CALL_DATA request is giving you a 401. I tried this manually on a 12.0 testbed to confirm.

 

If you use postman and try to update the call variables when agent1 is in wrap up, you will see a 401. If you do a GET on agent1's list of dialogs (/dialogs), you will not see any call listed.

 

Thanx,

Denise

Hi Denise,

Thanks for your response. Finesse does update the call variable for normal calls when agent is in wrap. Is 401 returned only in case of transfer/consult calls ?

Also in case of transfer calls we can see that it is going into success handler of rest request. If it is returning 401, shouldnt't it go to error handler ?

If you can please clarify on this.

Regards,
Yogita.

Hi,

 

The reason why it works on a normal call is because the agent is still listed as a participant of the dialog/call. For a transfer, the agent is no longer a participant and therefore doesn't have access to that call anymore.

 

I tested this out using postman, so I didn't look at the success/error handlers. In your success handler, print out the response code and message to see what you are getting. I would also take a look at the client logs to confirm that you are seeing the same behavior as I am (Getting the 401s).

 

Thanx,

Denise

Hi Denise,

 

I checked and the printed the status in my success handler. Its printing 202. But in logs I am not able to see the publish event for "UPDATE_CALL_DATA" and not able to see any value in the callvariable 5. If you can please clarify on this ?

 

Regards,

Yogita.

That is interesting that it is returning a 202. Are you sure it is for that UPDATE_CALL_DATA request? Take a look at the networking tab of the browser's developer tools to see what http status you are getting back for that api call. Also, try this manually via postman to see what you are getting as well.

 

In the webservices logs, do you see the actual API request there?

 

Thanx,

Denise

Yes Denise, it is for UPDATE_CALL_DATA. I checked the network tab and it is 202

Please find below the extract of finesse dialog xml with participant details: "participants":{"Participant":[{"actions":{"action":"UPDATE_CALL_DATA"},"mediaAddress":"agentextn1","mediaAddressType":"AGENT_DEVICE","startTime":"2019-02-18T09:31:13.836Z","state":"WRAP_UP","stateCause":"OTHER","stateChangeTime":"2019-02-18T09:31:44.858Z"},{"actions":{"action":["TRANSFER_SST","CONSULT_CALL","HOLD","UPDATE_CALL_DATA","SEND_DTMF","DROP"]},"mediaAddress":"fromno","mediaAddressType":null,"startTime":"2019-02-18T09:31:13.836Z","state":"ACTIVE","stateCause":null,"stateChangeTime":"2019-02-18T09:31:13.836Z"}]},"state":"ACTIVE","toAddress":"13812902","uri":"/finesse/api/Dialog/50369361"}

Hi,

 

So looks like your deployment allows you to do a UPDATE_CALL_DATA. If this is the case, trace the request from the client to the webservices. Are the below logs from the client side or the webservices side? Do you see the request to update the call variable in the webservices logs?

 

Thanx,

Denise

Hi Denise, Yes I can see the request to update callvariable 5 in webservice log and is getting processed. %CCBU_EVENT_POOL-9-worker-2-6-processCallDataUpdate(): wrapUpAdapter %CCBU_EVENT_POOL-9-worker-2-6-WRAP_UP_ADAPTER_PROCESS_START: %[call_id=50369946][messageId=CallDataUpdateEvent]: processing event %CCBU_EVENT_POOL-9-worker-2-6-WRAP_UP_ADAPTER_CAN_PROCESS: WrapUpAdapter.canProcess() returns: true %CCBU_EVENT_POOL-9-worker-2-6-WRAP_UP_ADAPTER_PROCESS_END: %[call_id=50369946][messageId=CallDataUpdateEvent]: processed event But we can not see the updated value in call control gadget . So if you have any ideas why its not getting reflected there ?

Hi,

 

In the webservices logs, you said its being processed. But are you able to follow the flow where Finesse makes the request to the CTI server and receives an event back with the updated call variable 5? If so, do you see in the logs where Finesse is publishing the updated call variable 5? If you still see this, do you see in the client logs receiving this notification with the updated call variable 5?

 

Basically I am trying to have you trace to see exactly which step the issue is located.

 

Thanx,

Denise

Hi Denise,

 

In webservices log there is no  flow where Finesse makes the request to the CTI server and receives an event back with the updated call variable 5. Also I cant see the Finesse  publishing the updated call variable 5. So can you please clarify why it is not there ? and what can we do to rectify this ? or any alternate solution to update call variables when agent Transfers or consults call  ?

 

Regards,

Yogita.

Hi,

 

Just to make sure I am reading it correctly, you see Finesse get the UPDATE_CALL_DATA request, but do not see Finesse request it to the CTI server (and therefore do not see an event back with the updated call variable 5).

 

It is hard to say without looking at logs why this is happening. I am not able to reproduce this on my setup. As I mentioned earlier, I get a 401. I am wondering if it has something to do with timing where at the time you make the UPDATE_CALL_DATA request, the agent is still listed as a dialog participant (and therefore no 401), but when it gets processed, the agent is no longer listed and Finesse doesn't make the request to CTI? This is purely speculation since I can't see the logs.

 

Can you open a ticket here: https://developer.cisco.com/site/support/ I would need to see the logs to help any further.

 

Thanx,

Denise

Hi Denise,

 

Your understanding is correct,Finesse get the UPDATE_CALL_DATA request, but do not send  Finesse request  to the CTI server (and therefore do not see an event back with the updated call variable 5).

 

We will raise a ticket. Thanks for your responses.

 

Regards,

Yogita.