.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
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. | 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 | 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. | MINOR | It starts working automatically | |
Font sizes look smaller when there're a minimum number of cards being displayed in the gadget | 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. | 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 | MINOR | ||
The speedometer needle moves to the left from zero for SLA values less than 10. | MINOR | ||
The duration of the success message on the "Application Settings" screen is shorter than expected | 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. | 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 | 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. | 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 | 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". | MINOR | Create a new Role and add Users to it | |
The "Updated On" date field on the Dashboard List page cannot be translated. | 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 | MINOR | No workaround | |
Plus sign is not visible to browse the user's profile picture | MINOR | Use Google Chrome browser | |
The state duration time in an Agent Service is sometimes 5 to 6 sec ahead | 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 | 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 Activity, Contact Service Queue Activity by Interval, Contact Service Queue Priority Summary Report.
# | Scenarios | Real-time Stats | Historical Stats (line/bar charts) |
---|---|---|---|
1 | Call 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 |
2 | Call 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 |
3 | Call 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 Answered = 1 |
4 | Call 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 | Queue A: Calls Received = 1 |
5 | Call 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 | Queue A: Calls Received = 2 |
6 | Call 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 | Queue A: Calls Received = 2 |
7 | Call 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 Queue B: Calls Received = 0 | Queue A: Calls Received = 1 Queue B: Calls Received = 0 |
8 | Call 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 Queue B: Calls Received = 0 | Queue A: Calls Received = 1 Queue B: Calls Received = 0 |
9 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
10 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
11 | Call 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 | Queue A: Calls Received = 1 |
12 | Call 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 | Queue A: Calls Received = 2 |
13 | Call 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 Queue B: Calls Received = 0 | Queue A: Calls Received = 1 Queue A: Calls Received = 0 |
14 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
15 | Call 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 | Queue A: Calls Received = 1 |
16 | Call 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 | Queue A: Calls Received = 2 |
17 | Call 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 Queue B: Calls Received = 0 | Queue A: Calls Received = 1 Queue B: Calls Received = 0 |
18 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
19 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
20 | Call 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 Queue B: Calls Received = 1 | Queue A: Calls Received = 1 Queue B: Calls Received = 1 |
21 | Call 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/Enterprise | For 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 2017 | Microsoft 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
Item | Notes |
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. |
IE | Not 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 |
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 data | Timezone 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" state | In 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 reporting | A 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 link | Refresh 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 refresh | Any 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 resizeable | Gadgets 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 templates | Dashboards 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 UI | Avoid 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 fullscreen | Refresh 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 seconds | The 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. |