3 Replies Latest reply: Dec 12, 2017 2:09 PM by dekwan RSS

Why Finesse desktop calls SystemInfo API at regular intervals?

hpachpande@expedia.com

Using Finesse 11.5

 

Hello,

I would like to know why the Finesse Desktop call SystemInfo API every minute. This happens regardless of whether Agent is logged-in and idle or is in call. It makes a call to https://finesse-server/finesse/api/SystemInfo?timestamponly&nocache=123456789 where finesse-server is the actual server name.

 

I understand that timestamponly returns much compact version of response of SystemInfo and nocache query string is just to track that request in finesse logs.

 

I didn't understand how Finesse Desktop use this API response.

 

Further background:

We have built custom SPA (Single page application) using Finesse API. This App allows agent to change state, receive call, control call, etc. We noticed that our app is intermittently slow. Change of state (or putting call on hold) takes 7-10 seconds. When we did same test in Finesse Desktop - it didn't have any latency. Upon looking at network traffic, the http-bind calls were seen in both the apps (our custom built app and Finesse Desktop). But, Finesse Desktop did these SystemInfo API call at about every minute. So, we were wondering is that to make finesse server warm so that it can respond to requests much faster or something else.

 

It also could be to switch to secondary finesse server if primary is down. But we are not sure and hence want to understand further.

 

Thanks,

Harshal

  • 1. Re: Why Finesse desktop calls SystemInfo API at regular intervals?
    dekwan

    Hi Harshal,

     

    The Finesse desktop calls the timestamponly version of the SystemInfo at a regular interval to calculate the client/server drift time. You will probably notice a log statement related to that right under the SystemInfo request.

     

    Finesse relies on the SystemInfo Notification event to see if it needs to switch to the secondary Finesse server rather than polling the SystemInfo API itself.

     

    As far as the speed of your API calls versus the the Finesse Desktop, are both the SPA and Finesse desktop on the same network? Is it on the same client machine? The Finesse Desktop doesn't have any special privileges where it gets higher priority. It uses the same REST APIs that are exposed for you to use in your on application.

     

    Also, where is the latency?

       Client -> Finesse server

       Within the Finesse server while processing the request

       Finesse -> Client

     

    Thanx,

    Denise

  • 2. Re: Why Finesse desktop calls SystemInfo API at regular intervals?
    hpachpande@expedia.com

    Hi Denise,

    Our SPA is hosted in AWS. Once SPA is loaded in client browser it calls Finesse APIs to login, change state, etc (just like Finesse Desktop). So, the finesse API requests are being made from same network.

     

    The latency issue is intermittent and happens from any agent desktop randomly. Latency seem to be between client and finesse server. From logs, we realized that, from the time request was made from SPA till the time Finesse logs shows first log entry of associated API request is about 15 seconds in some cases (we tracked times using requestid - sent in Finesse API request header).

     

    We ran one test - where we ran Finesse Desktop and our SPA app side-by-side (using different agentid/deviceid, but same PG) and found out that Finesse Desktop didn't observe any latency, while our SPA did.

     

    One suspicion we have is that Finesse Desktop and Finesse API are hosted on same machine (the finesse server) - so there is no CORS involved. Our SPA app is hosted in AWS (different domain than the finesse servers), so API request requires CORS to be cleared, before actual GET/PUT/POST request can be sent.

     

    Any suggestions are greatly appreciated.

     

    Thanks,

    Harshal

  • 3. Re: Why Finesse desktop calls SystemInfo API at regular intervals?
    dekwan

    Hi Harshal,

     

    Hm. You are correct that the Finesse agent desktop does not need CORS, so your theory may be correct.

     

    I honestly don't know what you can do about it because CORS is needed if your app is in a different domain. So unfortunately, I don't have any suggestions.

     

    Thanx,

    Denise