QueueMetrics 23.09

The most important new feature you will find in QueueMetrics 23.09 is a new Agent Page.

This page has been crafted right from the foundation to ensure user-friendliness, high intuitiveness, and scalability as it evolves over time. We’ve named it "QAP", in contrast to the previous agent page known as "Icon."

qm2309 welcome

There also a number of other highlights, as detailed below:

  • A new real-time reporting engine

  • A more streamlined look-and-feel that covers Reports, Wallboard and the newly introduced QAP

  • Better accounting of scheduled emails, report limits and database size

  • An improved JSON API interface

  • Many, many small fixes to the wallboard and to reports

  • A native Uniloader for Windows and Mac OS.

QueueMetrics 23.09 can now be readily accessed through various means: an RPM package for CentOS 7, CentOS 8, Rocky 8, and Rocky 9 based distributions; an ebuild for Gentoo; a Docker image available on DockerHub; and a TGZ file designed for manual installation on any operating system running the Java platform. Notably, QueueMetrics supports 23 distinct languages/locales.

Introducing QAP - a new Agent Page

The agent page that you have been accustomed to - Icon - has been a part of QueueMetrics since June 2014. It was originally conceptualized with the idea of integrating complete CRM applications within it, although this approach is now less common due to the limited support of embedding from hosted CRM applications. Another pioneering concept - at that time - was the incorporation of a WebRTC soft phone directly on the page, eliminating the need for agents to rely on an external phone.

We capitalized on these almost 10 years of user feedback to create an agent page that:

  • Empowerment through Situational Insights: Our new agent page presents agents with their current status, going beyond mere presence information. Agents can now gauge the number of calls handled, the duration of their online presence, and the count of missed calls.

  • Anticipation of Agent Needs: While your agents retain full control, they can start and stop working at the click of a button, streamlining their workflow.

  • Keyboard Navigation for Desktop Efficiency: Designed for power users, the agent page is fully navigable through keyboard inputs, providing rapid access to essential functions.

  • Mobile and Tablet Compatibility: We’ve ensured seamless usability on mobile devices and tablets, extending the convenience of the agent page beyond desktops.

  • Unified Functionality with Soft-phone Integration: Our integrated soft-phone is not an isolated feature. Instead, it seamlessly blends into existing usage patterns. For instance, when initiating an outbound call, the system automatically handles the call answer process. This minimizes clicks, reduces strain, and allows agents to focus on core tasks.

  • Comprehensive Debugging Capabilities: Discreetly tucked away are extensive debugging tools that offer insights into operational glitches.

  • Introduction of Cases and Clients: For those not utilizing an external CRM system, we’ve introduced the concepts of "cases" and "clients" within QueueMetrics. This feature enables you to track such elements directly within the QueueMetrics interface, and report on them.

  • Continuation of Extensive Configuration Options: The new agent page supports the same extensive configuration flags that were available in Icon, maintaining the flexibility you’re accustomed to.

  • Opt-In Flexibility: Importantly, the transition is opt-in. When updating an existing system, the old interface remains unchanged until explicitly enabled. You have the flexibility to decide which agents continue using the old Icon page and which ones adopt the new QAP by managing the NEWAGENTPAGE key.

This culmination of user-driven refinements marks a significant step forward in improving your agents' experience with QueueMetrics.

QAP is built upon a novel real-time reporting engine that brings about performance enhancements specifically catered to high-traffic systems. This engine serves as the driving force behind the agent page, the real-time page, and your wallboards, unifying these components into a cohesive entity.

qm2309 calls

QAP was built for extensibility. While the current release emphasizes achieving feature parity with the Icon page, our future plans involve the incorporation of additional functionalities. These advancements will be facilitated through the integration of Memos/Tasks and interactive control over the PBX. This will build upon the foundation of the now more cost-effective real-time analysis, enhancing QAP’s capabilities.

Note: if you still use the Asterisk dial-plan, it must be updated to support tagging Cases and Clients.

Improved visibility

As an administrator, you now have the means to establish the maximum reporting time frame, and this configuration can be targeted at specific users. Consequently, you can identify users who initiate extensive jobs that adversely impact system performance, and you have the capability to restrict them from running such reports. Notably, the Audit log already records instances of sluggish report generation and displays violations related to licensing.

Furthermore, the Audit log has been expanded to encompass e-mail transmission tracking. This enhancement allows for the implementation of e-mail quotas on both individual user levels and system-wide. This serves to prevent scenarios where a runaway task leads to an excessive number of emails being sent, potentially resulting in a suspended mailbox - or more severe issues.

You can now see the exact AMI commands that are generated right from the AMi queue page, so you can immediately see how changes in your settings impact the commands that are to be applied on the PBX - and n cases of failure, provides insight into the causes.

You can also see how large the QueueMetrics database is. This includes the estimation of the size of a complete backup, allowing you to anticipate resource requirements. Additionally, you can identify tables that might be experiencing issues and necessitate recovery actions.

Improved JSON interface

All web-services returning JSON results - that, incidentally, debuted in 2014 together with Icon - have been enhanced to offer an alternative format: a list of JSON objects. This modification simplifies data parsing, as the columns in a table are now presented as keys for each respective row. This capability is governed by an additional parameter, ensuring that your current consumption of JSON services remains unaffected and doesn’t necessitate any changes.

Uniloader for Windows?

Uniloader now ships with a Windows and a MacOS binary as well. Uniloader serves as more than just a data loader; it holds the potential to streamline and validate various tasks associated with managing QueueMetrics and your PBX. By making Uniloader accessible on the computer you regularly employ, we aim to enhance your convenience and workflow efficiency.

Some other notable changes

  • The 'RINGNOANSWER' record can now initiate an agent session even if the corresponding agent does not appear within the current analysis window. This change aligns with the existing behavior for answered calls. The record’s presence, confirming the delivery of a call, is in itself conclusive evidence of the agent’s queue login status.

  • We have better exports to Excel - finally sporting the right amount of decimal digits - and PDF.

  • The version of the Time Zone database being used is now shown on the license page (useful when you wonder why the Dailight Saving Time was not applied correcly for your country)

  • All configuration defaults to PJSIP (it was high time!)

  • In light of the ongoing developments surrounding the future of CentOS, our RPM packages have been adjusted for compatibility with CentOS 7 and 8, as well as Rocky Linux 8 and 9. These packages are designed to seamlessly function with either MariaDB or MySQL. Additionally, they are expected to work effortlessly on a wide range of distributions that are derived from RHEL.

Deprecations and security

  • The Icon agent page is now deprecated

  • Current RPMs do not support CentOS 6 - it reached EOL on June 2020, so if you still use it, it’s time to move on

  • The "Live call center monitoring" page is deprecated

  • The old agent page was removed

For an up-to-date list of features that are currently deprecated, see the User Manual.

Bug Fixes

Overall, this release incorporates approximately 250 updates. The most important changes are highlighted here. For those following the resolution of specific existing issues, you can refer to the list below.

Agent QAP

  • #6100: New Agent Page

  • #6195: Cases ptEditor

  • #6194: Client ptEditor

(over 100 bugs implemented)

Icon and old agent page

  • #6127: Agent page panel resizing not working for call list

  • #6240: Remove old deprecated agent page

  • #6359: QueueMetrics "Live call center monitoring" page deprecation

JSON API

  • #6334: Easier-to-parse 'simple' JSON API

  • #6221: Json services for ptClients and ptCases

Configuration

  • #6370: Specific User Keys do not grant access to the settings.

  • #6326: Pause Code Required not working correctly.

  • #6314: Add Notes to cases

  • #6312: Using ExternalID for cases and clients

  • #6189: Display stats for Presentialist

  • #6170: Email sending limits

  • #6169: Tracking outbound email on Syslog

Database set-up

  • #6337: DB setup and license acceptance broken in Chrome

  • #6294: Remove QM_relationships table

  • #6252: Display database usage

  • #6193: Display version of TZData on license page

  • #5933: Upgrader for partial key url in qm_cbts

Reporting Engine

  • #6293: Read Clients and Cases from queue_log + DB

  • #6279: Implicit queue login is incorrect

  • #6266: Database access in Presentialist: cases/customers

  • #6265: Using clusters with Presentialist

  • #6188: Finding last call when filtering by queue

  • #4463: "RINGNOANSWER" now considered a valid event to show which agents are active on the queue.

Data exports

  • #6364: Wrong number of digits in exported Excel file

  • #6351: Parameter "default.decimalDigits" not behaving correctly.

  • #6350: Cronjobs thread not starting

  • #6309: Track export failures

Graphics

  • #6295: Fix Charts Graphics in Reports and Wallboards

  • #6059: Same Footer Across QueueMetrics

  • #6033: Whitelabel "No Logo"

  • #6008: Footer hides bottom of screen

  • #6007: Improve layout in page "Tasks"

  • #6005: Logo gets cut off

  • #6002: Combo fields on the Users detail page

  • #5954: Chart colours by theme

  • #5784: Pending Expiry message CSS fix

  • #5383: chart.js security update

  • #6234: Remove Google ID

Packaging

  • #6343: Set property defaults to PJSIP

  • #6036: Add RPM deps to queuemetrics-tomcat

  • #5936: Failing test: unclean setting

  • #5935: Failing test:custom_blocks

  • #5934: Failing test:GroupingsDOTest

  • #5923: RPM install on Rocky 8 (and possibly 9)

  • #5395: Update nodejs

Platforms

  • #6333: Display generated AMI commands on AMI Queue tester page

  • #6307: Improve logging for platform searches

  • #6299: Add new SetVar method for all platforms

  • #6298: Support new method SetVar for DirectAMI

  • #6247: Listen to outbound calls on Enswitch

  • #6246: Reduce memory consumption when streaming Enswitch audio

  • #6097: Outbound from Agent page on Enswitch

  • #6001: SSO: Error with duplicate agent

QA

  • #6361: Embedded QA form - remove headers

  • #6357: QA pop-up form

  • #6332: Agent tasks not created when QA saved

  • #5977: QA Notes don’t work in Cluster mode

  • #5975: QA N/A checkbox doesn’t trigger the appropriate validation.

  • #5959: Undefined error on empty recording list

  • #5928: Form "Send CBT" in wrong place

Reports

  • #6374: "Original position" in the "DetailsDO.CallsKO" datablock not showing data.

  • #6373: "Position" column in "DetailsDO.CallsKO" uses incorrect data.

  • #6365: On lost calls, the call status is unredable

  • #6345: Decode cases and clients on page load

  • #6340: Limit maximum reporting period

  • #6330: Bad filter selectors for Hours and DOW

  • #6302: Display customer and case number on the call detail

  • #6301: Filters for Clients and Cases on reports - client

  • #6300: Filters for Clients and Cases on reports - server side

  • #6292: Cases and Clients filters in reports

  • #6290: Datablocks for Clients and Cases

  • #6276: Columns in a report block are ignored for export

  • #6238: QA call not found for "Form Filling" settings in QA Reports

  • #6192: Call Tag and Outcome filters not accepting some characters

  • #6128: Error IndexOutOfBounds exporting report

  • #6109: PDFJet queues should be formatted correctly

  • #6103: Ensure that report and widget names are localized in default db

  • #6091: DataBlockView search debounce should also consider if there are pending calls

  • #6069: Export of PDF with overflowing data

  • #6047: Graph legend inconsistent

  • #6034: Rename "AsteriskID" to "UniqueID" in localizations

  • #6020: Recap table for call events

  • #6019: Call variables are too hard to extract

  • #6018: Teams: incorrect call display

  • #6015: Audio playback does not stop when pop-up closes

  • #6014: Custom DataBlocks don’t sort as instructed

  • #6013: Custom DataBlocks Line and Radar Charts not working correctly

  • #6009: Call detail popup won’t render until audio searched

  • #5995: Printing reports so that they are readable

  • #5979: Agent Timeline does not reset correctly upon switching agent

  • #5964: Payroll Report not exporting correctly in Excel

  • #5956: Adding a visibility key to all QA forms hides Call Details.

WebRTC Soft phone

  • #6297: Allow user to enable JsSip debugging

  • #6220: QAPSoftPhone - text field clears when call arrives

  • #6218: QAPSoftPhone - keyboard shortcuts

  • #6217: QAPSoftPhone - call shouldn’t ring if agent is on another call (notification only)

  • #6012: QAPSoftPhone - Softphone needs a hold timer

  • #5996: QAPSoftPhone - not popping up on Agent page

  • #5354: QAPSoftPhone - Change Softphone ringtone with property

  • #5325: QAPSoftPhone - Ice Gathering states should be displayed on the SoftPhone GUI

  • #5318: Attended transfer button needs further testing

Synchronizer

  • #6076: Synchronizer does a case-sensitive check on queues and agent codes

  • #6070: Loading Teams data from SQL Table

  • #6058: Synchronizer actions ignoring Editing protection

  • #6057: Synchronizer drag and drop window has the wrong shape

  • #6056: Synchronizer not giving feedback when applying a configuration

  • #6021: Synchronizer General Actions, no agents issue

  • #5991: Synchronizer missing scrollbar in editing page

  • #5990: Synchronizer uses wrong configuration title

  • #5989: Synchronizer not saving changes to queue direction

  • #5988: Synchronizer not saving changes

  • #5987: Synchronizer wrong error message

  • #5986: Synchronizer not adding the configuration URL automatically

Wallboard

  • #6317: Agent and Outcome widget not displaying correctly when sorting columns

  • #6316: Live Calls widget not displaying data if only 1 queue is available

  • #6268: Insulate failing components

  • #6267: Error: MissingChart is not defined

  • #6235: Live Agents widget not displaying correctly the agent if a filter is applied.

  • #6211: Wrong display of MOH

  • #6110: Live Calls headers not localized correctly

  • #6107: Wallboard performance issues

  • #6087: Table Widget issues

  • #6081: Padding in widget title is too large

  • #6073: Widget Alarms are not deletable

  • #6062: Clicking on Wallboards Infobox should create a new wallboard

  • #6061: Wallboard crashes when including custom datablock

  • #6046: Active timer on Wallboard

  • #6045: Legacy data for table widgets

  • #6027: Live Agents status is incorrect if agent is in a group

  • #6022: Pause since not correct in live agents table

  • #5985: Agents ready widget not updating when selecting a global queue

  • #5980: Custom DataBlocks show all columns in the wallboard, regardless of source

  • #5978: AT03 no data in wallboard

  • #5973: Null pointer exception when trying to monitor a call

  • #5972: SLA Widget not updating settings correctly

  • #5971: Live Agent Info Widget not working correctly

  • #5970: Wallboard timers should update every second

  • #5969: Wallboard Tables are hard to read

  • #5965: Live Agent Info Widget not updating status

  • #5958: Agents Ready widget shows zero if no queues are set

  • #5955: Padding in wallboard panels

  • #5921: Missing icons on Wallboard

  • #5897: Horizontal scrolling on table widgets not visible

  • #5896: The first row of the table widgets, is not locked

  • #5883: Wrong error on lost server

  • #5733: WB: Displaying of Last Attempts

  • #5632: Live Queues table showing incorrect amount of ready agents

  • #5450: Lost Calls widget not updating.