cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1460
Views
40
Helpful
16
Replies

Cisco Finesse 11.5: The state getting changed to Not-Ready after completing a Chat or an Email task

AliSkrober86132
Level 1
Level 1

Agents are getting back to the Not- ready - Break or Not-ready - Lunch state after completing an active chat or email task.

 

So far I'm able to recreate the following scenario.,

 

  • The agent is on Not-ready - Lunch state then changes the state to ready state.
  • Get presented with an email/SMS task and accepts and reply to it.
  • After that, fill all the required details into the Interaction Capture pane and click on the Done button.
  • Once the task gets completed, the agent gets moved back to the Not-Ready- Lunch state instead of the Ready state.

Has someone faced the same issue, is it a configuration issue or a known bug please let me know.

16 Replies 16

I think you're going to get better results at the regular contact center forum and not the developer forum. Is this on UCCE (ECE) or UCCX?

 

david

Eric Tucker
Spotlight
Spotlight

what EXACT version of 11.5? when was the last CCX cluster reboot?

It's 11.5 as far as I know, Can you tell me how to get the full version number? I will try to post here once I have the information, It uses UCCE.

Hi,

 

Using the CLI (SSH to the Finesse server with the admin credentials), you can use the command "show version active" to see the full version and ES's that were installed.

 

Thanx,

Denise 

I was reading up on the cisco website, I have a side question but related to the issue, can I change the Agent state using javascript, I know it can be done using API calls, but can I change it manually?

 

Another issue is that if we can change the Agent state manually/from js only with no API calls, then the cisco CTI server will not know the current agent state, which can cause problems? 

 

Here are some of the links I went through,

https://community.cisco.com/t5/collaboration-voice-and-video/how-to-change-finesse-agent-state-using-rest-api/ba-p/3102429

https://developer.cisco.com/docs/finesse/#!userchange-agent-state

Hi,

 

Are you trying to change the agent state for voice or for tasks? Also, when you say "change the Agent state using javascript", do you mean using the Finesse JavaScript library (https://developer.cisco.com/docs/finesse/#!javascript-library) or do you mean manipulating the current screen using the DOM.

 

If you are using the Finesse JavaScript library, the library sits on top of the REST APIs, so even though you aren't using them explicitly, they are being used.

 

Thanx,

Denise

Q) "Are you trying to change the agent state for voice or for tasks?"

A) For now, for tasks like SMS/MMS, emails, and chat

 

Q) "Also, when you say "change the Agent state using javascript", do you mean using the Finesse JavaScript library (https://developer.cisco.com/docs/finesse/#!javascript-library) or do you mean manipulating the current screen using the DOM."

A) Our company develops Gadgets for Cisco Finesse (I have just started as a dev here), I know it's doable through REST API (use Javascript or backend language like C# or Java tp consume the API), and that is probably the recommended way; I wanted to know if you provide/recommend DOM manipulation to change the Agent states, I would like to know your opinion on that. 

 

"If you are using the Finesse JavaScript library, the library sits on top of the REST APIs, so even though you aren't using them explicitly, they are being used."

Ok, so this means we have a REST API and a separate Javascript library (it uses REST API to do some of the operations), correct?

 

Correct me if I'm wrong, So here is my understanding that there are two right ways to change the Agent state, either manually by using the UI or using the REST API.

 

Thanks a ton, Denise

AliSkrober86132
Level 1
Level 1

Please excuse my ignorance, I'm new to this, I'm a developer, and we develop third party gadgets for Cisco finesse (CF); how do I know if there is a UCCE or UCCX involved?

Can you also point me to an article or document that provides a basic overview of the CF architecture, which shows all the different components required to run a CF? 

Hi,

 

You had asked:

 

how do I know if there is a UCCE or UCCX involved?

  -> You can use the SystemInfo API and take a look at the developmentType field: https://developer.cisco.com/docs/finesse/#!systeminfo/systeminfo

 

Can you also point me to an article or document that provides a basic overview of the CF architecture, which shows all the different components required to run a CF? 

  -> This Finesse overview page might be of help: https://developer.cisco.com/docs/finesse/#!finesse-overview/technical-overview

 

Thanx,

Denise

AliSkrober86132
Level 1
Level 1

It's UCCE, what else should I check for?

<SystemInfo>
  <currentTimestamp>2020-08-27T19:09:48.793Z</currentTimestamp>
  <deploymentType>UCCE</deploymentType>
  <lastCTIHeartbeatStatus>success</lastCTIHeartbeatStatus>
  <license></license>
  <peripheralId>5000</peripheralId>
  <primaryNode>
  <!--Changed to protect client's privacy-->
    <host>xyz.abc.123.com</host>
  </primaryNode>
  <secondaryNode>
  <!--Changed to protect client's privacy-->
    <host>zyx.cbz.321.com</host>
  </secondaryNode>
  <status>IN_SERVICE</status>
  <statusReason></statusReason>
  <systemAuthMode>NON_SSO</systemAuthMode>
  <timezoneOffset>-360</timezoneOffset>
  <uri>/finesse/api/SystemInfo</uri>
  <xmppDomain><!--Removed to protect client's privacy--></xmppDomain>
  <xmppPubSubDomain><!--Removed to protect client's privacy--></xmppPubSubDomain>
</SystemInfo>

AliSkrober86132
Level 1
Level 1

Hi @dekwan,

I saw a few of these request failing

 

-- Request

POST https://123.net/api/finesse/users/8500/status HTTP/1.1
Host: 123
Connection: keep-alive
Content-Length: 64
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
Content-Type: application/json
Origin: https://xyz.com
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://xyz.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9

{"status":"READY","reason":"","time":"2020-10-13T19:56:01.406Z"}

 

-- Response

HTTP/1.1 500 Internal Server Error
Transfer-Encoding: chunked
Content-Type: application/json
Vary: Origin
Server: Kestrel
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://xyz.com
Strict-Transport-Security: max-age=2592000
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Tue, 13 Oct 2020 19:56:01 GMT

54
{"isSuccessful":false,"errorMessage":"Could not find person with cisco login 8500."}
0

 

-----Some Chrome Console logs:

​Container : FailoverMonitor._handlePreBoshUserLoad: login extension : 4675
​Container : FailoverMonitor._handlePreBoshUserLoad: Establishing BOSH connection...
​Container : FailoverMonitor._setStatus(): notifying listeners of status=connecting
​Container : [ClientServices] MasterPublisher._connInfoHandler() - Connection status: connecting
​ EventTunnel._checkToSendConnected(): status=true, _initPresence=false
​ EventTunnel._checkToSendConnected(): status=true, _initPresence=false
​ EventTunnel._checkToSendConnected(): status=true, _initPresence=true
​Container : [ClientServices] MasterPublisher._connInfoHandler() - Connection status: connected
​Container : FailoverMonitor._connectionConnectHandler(): Cancel EventTunnel timer
​Container : FailoverMonitor._connectionConnectHandler(): Cancel failed BOSH connection timeout
​Container : FailoverMonitor._connectionConnectHandler(): BOSH is now connected!
​Container : PageServices.onLoad(): BOSH established! Commencing sign-in process
​Container : FailoverMonitor._checkThisServer(): Checking to see if this server is ready... [BOSH=true][FinesseUserAvailable=true]
​Container : FailoverMonitor._cleanupAndRecover(): Resubscribing to system info events
​Container : FailoverMonitor._cleanupAndRecover(): Stop polling for system info
​Container : FailoverMonitor._cleanupAndRecover(): Stop polling autopilot to see if other side is ready
​Container : FailoverMonitor._cleanupAndRecover(): Cancel lastchance timeout so we don't failover since we recovered
​Container : FailoverMonitor._cleanupAndRecover(): disengaging AutoPilot
​Container : FailoverMonitor._cleanupAndRecover(): This is fresh login.
​Container : [ClientServices] User: requestId='undefined', Making REST request: method=GET, url='xyz'
​Container : FailoverMonitor._handlePresenceEvent(): user 'finesse' has presence=available
​Container : [ClientServices] User: requestId='undefined', Returned with status=200,
content='<User> returns the whole user object with Not_Ready state

 

The above logs match this known issue https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuy14779/?rfs=iqvred

Hi,

 

What API request are you trying to make?

 

I see "POST https://123.net/api/finesse/users/8500/status HTTP/1.1", but that is not a valid REST API. If my memory serves me right, the only POST in the desktop APIs is to make a call.

 

The API to change voice agent state: https://developer.cisco.com/docs/finesse/#!userchange-agent-state

The API to change the media agent state: https://developer.cisco.com/docs/finesse/#!mediachange-agent-state-with-reason-code

 

Thanx,

Denise

123.net and XYZ.com was my attempt to hide the client's server address.

Hi,

 

I was referring to the "/api/finesse/users/8500/status" part of the request. Is this the API request you were making? This is not a valid Finesse REST API.

 

Thanx,

Denise