Document toolboxDocument toolbox

.Release Notes v13.6.1

Release Summary

This release caters to the fixes in the synchronizer related to, Cisco REST API error handling, the issue of opening multiple connections to the CCX database and complex CCX queries taking most CPU.

Enhancements

Changes in Synchronizer

  • In the previous version, when the Cisco REST API for fetching stats used to behave inappropriately, the synchronizer component was not able to handle the error on its end. In return, it restarted itself each time and started opening multiple connections to CCX to fetch the stats. This issue has now been fixed. The synchronizer now waits for 3 seconds for the Cisco REST API to respond and if it doesn't, it skips the real-time stats and goes ahead to sync historical stats. If the API keeps on behaving abnormally, the Wallboard will keep on showing the older agent stats. 
  • The sync time for fetching the updated list of Teams and Queues from CCX was 5 seconds. Since the change in Queues and Teams is not supposed to be so frequent, the sync time for this is now increased to 30 minutes so that it reduces the number of connections to CCX and optimizes the performance. 
  • Removed Complex queries that previously ran on CCX. We now improved the queries performance to replicate necessary data locally and run historical reports based on the local database.  

Change in SLA value

In the previous version, the value of SLA was shown as a rounded-off figure. 
This setting is now configurable. You can now set the variable, SLA_Decimal in the file synchronizer-variables.env,to true or false.

When the value is set to true, it shows the SLA value up to two decimal points such as 79.73 in all gadgets.


Fixed Issues

Issue Summary

JIRA Issue

Status

Wallboard's Synchronizer makes many unclosed connections with the CCX database when the Cisco API does not respond properly. This causes high CPU utilization on the CCX machine. CBWP-5 - Getting issue details... STATUS FIXED


Opened Issues

Issue Summary

JIRA Issue

Priority

Workaround

When a queue or team is deleted from CCX, it reflects on Wallboard only after an hour.

CBWP-10 - Getting issue details... STATUS

MINOR

After an hour, it gets deleted automatically. Unless it is there, the gadgets with the deleted items keep on working.
If an agent's First Name is not set in CUCM, the data table gadget will not populate any data when the "First Name" column is selected for display

CMD-72 - Getting issue details... STATUS

MAJOR

Restart the Agent service 
When deployed in HA, sometimes the Synchronizer component gets stuck for 2-5 minutes, due to unknown reasons. It then resumes functioning normally.

EAP-11427 - Getting issue details... STATUS

MINOR

It starts working automatically
Font sizes look smaller when there're a minimum number of cards being displayed in the gadget

EAP-11595 - Getting issue details... STATUS

MINOR

It is adjusted according to the maximum number of cards that may appear in each square box
If there is a lesser amount of data for one category of the current state attribute (response distribution ratio between "Ready", "Not Ready", "Talking"), the label of that current state value does not appear on the gadget.

EAP-10434 - Getting issue details... STATUS

MINOR

This issue is observed rarely based upon the total sample group of all state values and the ratio among them.

The legend keys showing which slice represents what is still available on the bottom of the gadget.

Sometimes in template five, the agent State names do not appear properly for PIE & Doughnut charts

EAP-11424 - Getting issue details... STATUS

MINOR


The speedometer needle moves to the left from zero for SLA values less than 10.

EAP-11423 - Getting issue details... STATUS

MINOR


The duration of the success message on the "Application Settings" screen is shorter than expected

EAP-10810 - Getting issue details... STATUS

MINOR


Some permissions related to "Application Settings"(i.e. "Create" and "Delete") are of no use at the moment and are reserved for the future. 

EAP-10790 - Getting issue details... STATUS

MINOR

Do not assign these permissions (Application setting create and delete) to any user 
When the non-active VM or synchronizer comes up after failover, the stats on the gadget become zero for a few seconds and get updated later

EAP-10126 - Getting issue details... STATUS

MINOR

No workaround
If the user has saved the password with the Keep me logged in option, the login button starts appearing as disabled whenever the user comes again on the login page.

EAP-9753 - Getting issue details... STATUS

MINOR

Just click on the password field and press enter to log in.
If all permissions are deleted from a role, then the user also automatically gets removed from the role having no permissions in it 

EAP-9634 - Getting issue details... STATUS

MINOR

Delete only the unnecessary permissions or add desired permissions in the role and reassign the role to the user
You cannot delete the default roles assigned to a user. The default roles are, "Agent" and "Supervisor". 

EAP-10092 - Getting issue details... STATUS

MINOR

Create a new Role and add Users to it 
The "Updated On" date field on the Dashboard List page cannot be translated.

EAP-9993 - Getting issue details... STATUS

MINOR

The date is visible in the English format

When the network connectivity breaks down between the Synchronizer and UCCX, all of the stats being displayed on the Wallboard will become zero after 1 minute. The stats are updated again when the connectivity is restored

CMD-77 - Getting issue details... STATUS

MINOR

No workaround
Plus sign is not visible to browse the user's profile picture

CMD-79 - Getting issue details... STATUS

MINOR

Use Google Chrome browser
The state duration time in an Agent Service  is sometimes 5 to 6 sec ahead

CMD-58 - Getting issue details... STATUS

MINOR

The issue exists only with CCX version 12.5.
The SSO configurations are enabled, but for UMM you cannot login with Contact Center Agents

EAP-11603 - Getting issue details... STATUS

MINOR

Plan for the next release

Tested Cases

 

The following scenarios are tested and verified with CCX's RtCSQsSummary table and CUIC Historical Reports Contact Service Queue ActivityContact Service Queue Activity by IntervalContact Service Queue Priority Summary Report.

#ScenariosReal-time Stats

Historical Stats (line/bar charts)

1Call is received on Queue A and connected to Agent A

Queue A:

Calls Received = 1

Calls Answered = 1

Queue A:

Calls Received = 1

Calls Answered = 1

2Call is received on Queue A, got RONA on Agent A, and got Abandoned

Queue A:

Calls Received = 1

Abandoned = 1

Answered = 0 

Queue A:

Calls Received = 1

Abandoned = 1

Answered = 0 

3Call is received on Queue A and Blind-transferred from Agent A to Agent B of Same Queue via Extension (Agent B accepts the call)

Queue A:

Calls Received = 1

Calls Answered = 1

Queue A:
Calls Received = 1

Calls Answered = 1

4Call is received on Queue A and Blind-transferred from Agent A to Agent B of Same Queue via Extension (Calls gets Abandoned before Agent B Answer the call)

Queue A:

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 1

Queue A:

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 1

5Call is received on Queue A and Blind-transferred from Agent A to Agent B of Same Queue via Queue DN (Agent B accepts the call)

Queue A:

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

Queue A:

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

6Call is received on Queue A and Blind-transferred from Agent A to Agent B of the same Queue via Queue DN (Calls gets abandoned before Agent B Answer the call)

Queue A:

Calls Received = 2
Calls Answered = 1
Calls Abandoned = 0

Queue A:

Calls Received = 2
Calls Answered = 1
Calls Abandoned = 1

7Call is received on Queue A and Blind-transferred on the agent of Queue B via Extension (Agent B accepts the call)

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

8Call is received on Queue A and Blind-transferred on the agent of Queue B via Extension (Calls gets Abandoned before Agent B Answer the call)


Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

9Call is received on Queue A and Blind-transferred on the agent of Queue B via Queue DN (Agent B accepts the call)

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

10Call is received on Queue A and Blind-transferred on the agent of Queue B via Queue DN (Calls gets Abandoned before Agent B Answer the call)


Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B:

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 1

11Call is received on Agent A of Queue A and Consult-transferred to Agent B of the same Queue via Extension (Agent B accepts the call)

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

12Call is received on Agent A of Queue A and Consult-transferred to Agent B of the same Queue via Queue DN (Agent B accepts the call)

Queue A: 

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

Queue A: 

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

13Call is received on the agent of Queue A and Consult-transferred on the Agent of the Queue B via Extension (Agent B accepts the call)

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

14Call is received on the agent of Queue A and Consult-transferred on the Agent of the Queue B via Queue DN (Agent B accepts the call)

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

15Call is received on Agent A of Queue A and Conference is made to Agent B of Queue A via Extension  

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

16Call is received on Agent A of Queue A and Conference is made to Agent B of Queue A via Queue DN

Queue A: 

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

Queue A: 

Calls Received = 2
Calls Answered = 2
Calls Abandoned = 0

17Call is received on Agent A of Queue A and Conference is made to Agent B of Queue B via Extension  

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 0
Calls Answered = 0
Calls Abandoned = 0

18Call is received on Agent A of Queue A and Conference is made to Agent B of Queue B via Queue DN

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

19Call is received on Queue A, got RONA on Agent A, and got Dequeued for Queue B (Agent B answered the call)

Queue A:

Calls Received = 1
Calls Dequeued = 1
Calls Abandoned = 0
Calls Answered = 0

Queue B:

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

Queue A: 

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 1
Calls Abandoned = 0

20Call is received on Queue A, got RONA on Agent A, and got Dequeued for Queue B (Calls gets Abandoned before Agent B Answer the call)

Queue A:

Calls Received = 1
Calls Dequeued = 1
Calls Abandoned = 0
Calls Answered = 0

Queue B:

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 1

Queue A: 

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 0

Queue B: 

Calls Received = 1
Calls Answered = 0
Calls Abandoned = 1

21Call is received on Queue A, got RONA on Agent A, got Requeued and Answered by another agent

Queue A 

Calls Received = 1 

Calls Answered = 1

Calls Abandoned = 0



Queue A 

Calls Received = 1 

Calls Answered = 1

Calls Abandoned = 0


Load Test Results

A load test with 4-5 agents was executed with 200-300 calls per hour. The average call duration of a call was kept at 30 seconds. 

Multiple load tests with the above load were executed to test the performance of the system. The application successfully synchronizes and fetches the stats with CCX while CCX behaves normally.

Compatibility Guide

OS Compatibility

The following OS software is required on the server:

Item

Version

Notes

CentOS

7.x updated to the latest packages (use Yum update)Administrative privileges (root) are required to follow the deployment steps.

Database Requirements

Item

Notes

MS SQL Database Server 2016/2017 Express/Standard/EnterpriseFor clustered SQL Server installation, the customer will be responsible to provide the cluster. For stand-alone DB deployment, DB (2017 express) will be included within docker containers.
Microsoft SQL Server 2017Microsoft SQL Server 2017, Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 16.04.5 LTS). 
Only valid in case of a non-HA deployment.

Docker Engine Requirements

ItemNotes

Docker CE

Docker CE 18.06.0+


Browser Compatibility

Item

Version

Notes

Firefox

73.0.1 (64-bit)


Chrome

Not tested 

Some UI elements might not render properly. A full-blown testing cycle can be carried out on demand.
IENot tested

Not supported

Cisco Unified CCX Compatibility

 Tested with the CCX version 11.5 and 11.6 Assumed to work on higher versions as well. An on-demand testing cycle can also be executed on older versions of CCX.

Cisco Unified CCE Compatibility

Tested with the CCE version 11.5. Assumed to work on higher versions as well. An on-demand testing cycle can also be executed on older versions of CCE.

System Limitations


Summary

Description

SLA is calculated based on a hardcoded formula for CCX 

For CCX, the SLA is calculated as the following: 

SLA = (Calls Handled/Total Calls) x100


For CCE, the SLA of a skill group is retrieved from the Skill Group tables in the CCE Database. See Integration with Cisco Unified CCE for more details.
SSO enabled UCCX/UCCE  User tries to login SSO enabled agent with SSO disabled settings from the environment variables than for UCCX agent will not login into the wallboard and for UCCE agent is able to login into the wallboard application
Timezone implementation is for the historical dataTimezone implementation applies to historical data only. The gadgets used for historical data are Line and Bar charts.
Date and Time on the dashboard/wallboard on the final link Date and Time of the Dashboards&Wallboards are based on the machine/browser settings where it is opened.
In CCE, an agent in the "Talking" state is also reflected in the "Ready" stateIn CCE, an agent in the "Talking" state is also reflected in the "Ready" state.
For CCE, a call that gets abandoned after getting routed to an agent by skill group is not available for reportingA call that gets abandoned by the customer after being routed to an agent is not available for reporting purposes and thus, is not shown in the EF dashboards. However, this may affect the SLA of the skill group.
For CCE, the application currently only displays stats based on skill groups and not on precision queues For CCE, the application currently only displays stats based on skill groups and not on precision queues 
Only the call center calls are available for reporting on EF dashboards & wallboards Only the inbound voice calls routed by the call center are reported on the dashboards. This means that any internal, ACD, outbound calls or other non-inbound customer calls are NOT available for reporting on wallboards for now. 
The fixed range of the speedometer display type is from -100 to +100 The range of the Speedometer is updated from -100 to +100 (going from left to right, i.e. Red - Green). 
Any changes made to the dashboard configurations are not automatically reflected on the dashboard linkRefresh the browser tab to reflect any changes that are made to the dashboard configuration (such as changes to the name, background color, company logo, dashboard gadgets (added, removed, updated))
Any changes made to the dashboard group configurations are reflected only on the browser refreshAny changes made to the dashboard group configurations (such as Auto-scroll flag, auto-scroll time changes) are reflected only on the browser refresh
Gadgets are not resizeableGadgets added in the dashboard are of the fixed sizes.
Templates are not resizeable Templates are not resizeable. The user has to follow one of the fixed templates while creating a dashboard.
Free Dashboard Design grid not available to create custom dashboard templatesDashboards can only be created following one of the predefined dashboard templates. Users cannot create customized dashboard templates for now.
Large gadgets in small boxes might disturb the UIAvoid plotting the gadgets with large visualizations especially the Bar/Line charts and data tables on the dashboard templates having small boxes. 
Refresh the dashboard final link manually in case of a network glitch,In case of a network glitch, manual intervention is required to refresh the dashboard view  
Refresh the dashboard link to see updated or removed gadgets from the dashboard  If the user changes or removes and adds another gadget in a dashboard while the final dashboard link is already opened in a separate window, the user would need to refresh the page to see the updated gadgets. However, the real-time stats are updated automatically without requiring to refresh the page.
Refresh the final link to see the updated logo on the Dashboard fullscreenRefresh the final link of the dashboard to see the modified or updated logo on the Dashboard fullscreen.
Dashboard Template once selected cannot be updated later Once the dashboard template is selected, the dashboard is created with a default name. The user cannot later change the template. To change the template, delete the dashboard and create a new dashboard with the desired template. 
Default data refresh rate is 5 secondsThe application currently has the default data refresh rate of 5 seconds for each dashboard gadget
Font colors and sizes of gadget titles cannot be changed

You cannot change the font size and color of the gadget titles. The size of the title is adjusted automatically based on the screen resolution. 

Only the font color of the message text can be changed in the Text Message gadgets.

If the data is null, gadgets are added without drawing the display types

If the data is null, gadgets are added without drawing the display types (since there’s null data in the gadget)

Statistics get refreshed when the Master node is shifted from one node to the subscriber node  All the realtime stats are refreshed and the count starts from zero whenever the master node is shifted to a new Master. 
Data Service attribute tooltips are not translated The tooltips displayed for each data service attribute are not translated automatically. This is shown in the same language in which it was mentioned within the data service. 
The translation is only for the left to right languages 

The application supports language translation for all languages mentioned on the Languages Support page.

You can place the translation file in the /root/wallboard/docker/translation folder with the name translation_code.json. The frontend should be restarted after placing the translation file in the translation folder.