Upgrading to Quality Management Suite 12.3

Upgrade Considerations

It is important to understand that Quality Management Suite (QMS) 12.x builds on 11.x, 10.x, 9.x, 8.x and 7.x which is a major upgrade with many enhancements and features differences from prior versions of the software. The primary difference to be aware of is that the Silverlight user interface in QMS 6.x and prior has been completely replaced with a new HTML5 web-based user interface. Other features that may have high visibility to users after upgrade are:

  • Broader support for different web browsers. Because prior QMS 6.x versions relied on Microsoft Silverlight, it only worked in Internet Explorer. QMS 12.3 has been tested against Microsoft Edge, Opera, Google Chrome, and Firefox.

  • Recorded media file formats have changed. Recordings were previously made in GSM 06.10 encoded .wav file format. Because HTML5 web browsers do not support that format, all new voice recordings will be made in one of two file formats: MP3 or OPUS. When recordings made with prior versions are played back or exported, they will be converted on-the-fly to whichever of the new formats you have selected. OPUS is a newer audio format standard supported by most browsers and has the advantage of only using about one third the disk space of MP3 audio files of the same level of quality. Screen recordings are now stored in WebM format instead of the QMS WRP format. When existing WRP files are played back or exported, they will automatically be converted into WebM format.

  • Recording start and stop times can appear differently that before. Previously, the start and stop times would be shown as the time the call was recorded based on the server time that recorded the call, then adjusted for the searching user’s local time zone. For example, if a call had been recorded at 5:00 PM by a server located US Mountain Time and then a user located in US Pacific Time searched for the recording, it would be displayed to that user as having been recorded at 4:00 PM Pacific time. QMS 7.0 and above have three options for displaying time information: User Local Time, Server Local Time, and Universal Coordinated Time (UTC). The User Local Time setting will display times the same way they were displayed in QMS 6.1. The Server Local Time setting will display recording times in the time zone of the server that recorded the call. The Universal Coordinated Time setting will show all recording times in UTC format. In QMS 7.4 and above, the selected time display format will be applied to recordings not only on the recording search page, but also when viewing Evaluations, Archive dates, the "Last Connect Time" on the real-time activity page, etc.

It is important to note that there are many other new features and changes in QMS 12.x, 11.x, 10.x, 9.x, 8.x and 7.x but the above list is important to consider when upgrading.

The other factor to consider when upgrading from prior versions of QMS is which version of QMS software is currently running on the system. Use the chart below to determine what steps will be necessary to complete your upgrade.

Existing Version Upgrade Procedure New License Required

QMS 5.x

All QMS 5.x versions can be directly upgraded following the procedures outlined in this document

Yes

QMS 6.x

All QMS 6.x versions can be directly upgraded following the procedures outlined in this document

Yes

QMS 7.x

All QMS 7.x versions can be directly upgraded following the procedures outlined in this document

Yes

QMS 8.0

All QMS 8.0 versions can be directly upgraded following the procedures outlined in this document

Yes

QMS 8.1+

All QMS 8.1+ versions can be directly upgraded following the procedures outlined in this document

No

QMS 9.x

All QMS 9.x versions can be directly upgraded following the procedures outlined in this document

No

QMS 10.x

All QMS 10.x versions can be directly upgraded following the procedures outlined in this document

No

QMS 11.x

All QMS 11.x versions can be directly upgraded following the procedures outlined in this document

No

QMS 12.x

All QMS 12.x versions can be directly upgraded following the procedures outlined in this document

No

Upgrades of QMS systems deployed in Windows x86 environments will not be able to upgrade to QMS 7.4 or above. The 7.4 and above versions only support x64. The following are upgradable Windows environments:

  • Windows Server 2025

  • Windows Server 2022

  • Windows Server 2019

  • Windows Server 2016

  • Windows 11

  • Windows 10 x64

This document is intended to cover most basic upgrade scenarios. It does not cover upgrade scenarios for QMS High Availability Deployments or upgrades that involve migrating the software installation to a new server. For advice on more complex upgrade scenarios, please contact Enghouse Interactive.

Changes to Web Client in QMS 12.0+

From QMS 12.0 onwards the web client has been ported to ASP.Net Core (from ASP.Net Framework) in order to modernize the client architecture and also support cross-platform hosting options. The upgrader should handle the transition from an earlier ASP.Net Framework version for you, however there are some important changes to be aware of:

  • QMS web site configuration is now found in the appSettings.json file instead of the web.config file in the installed location of the website. In IIS the installed location of the website has not changed. Migration of any old client settings to the new settings file is handled by the upgrader.

  • QMS web site upgrade backup folders are now stored outside of the installed location of the website rather than within it (i.e. one folder level above).

  • The IIS application pool runtime should now be "No Managed Code" instead of the previous .Net v4.0 CLR. This change should be handled automatically by the upgrader. The upgrader will create a new application pool called "QMS Client2 AppPool". The old app pool will still exist post upgrade but be in a stopped state.

  • The new client requires only one QMS instance per application pool, whereas the old client was tolerant of multiple instances of QMS per application pool. This is important if you are using QMS Tenant Virtual Directories to create multiple instances of the QMS application in IIS. Each will now require their own application pool. The upgrader should be able to detect this and add the new application pools as required. It is important to note that the memory requirements of IIS may increase if you are using Tenant Virtual Directories as each tenant directory now has it’s own application pool and therefore separate memory allocation.

Content Security Policies

From QMS 12.1 onwards, new installs of QMS came with a default content security policy that was added to the QMS client (if you upgraded from an earlier version, the content security policy was left unchanged). Listed below are the default content security policies for each version:

  • Older than 12.1: frame-ancestors 'none'

  • 12.1: default-src 'self'; connect-src 'self' http://*:8031; media-src 'self' http://*:4533 http://*:8038; img-src 'self' data: http://*:8038; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src 'self' blob:; frame-ancestors 'none'

  • 12.1 (secure): default-src 'self'; connect-src 'self' https://*:8031; media-src 'self' https://*:4533 https://*:8038; img-src 'self' data: https://*:8038; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src 'self' blob:; frame-ancestors 'none'

  • 12.2: default-src 'self'; connect-src 'self' http://*:8031 http://*:8038; media-src 'self' http://*:4533 http://*:8038; img-src 'self' data: http://*:8038; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src 'self' blob:; frame-ancestors 'none'

  • 12.2 (secure): default-src 'self'; connect-src 'self' https://*:8031 https://*:8038; media-src 'self' https://*:4533 https://*:8038; img-src 'self' data: https://*:8038; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src 'self' blob:; frame-ancestors 'none'

The default policies use wildcard entries for the URL links (e.g. https://*), it is recommended to replace with an FQDN if your QMS client is internet accessible. Refer to the Installation Guide for Configuring QMS client content security policy (Optional)

Upgrading your policy:

  • From 12.1 to 12.2: Added http://*:8038 to the connect-src element.

Sites with the Cisco Contact Center Connector

If the QMS Cisco UCCE Connector Service (the Cisco Contact Center Connector) is installed, and QMS runs on more than one server, stop the QMS Cisco UCCE Connector Service before upgrading the first server, and start it again only after every server running a Call Recording Service has been upgraded.

From this release, the Data Service tells the Call Recording Services when it creates flags for the Connector. The upgrade procedure upgrades the Data Service first, and a Call Recording Service not yet upgraded mishandles that message: it then returns no system flags to any caller until it restarts, so recordings get no flags from the Connector. Stopping the Connector during the upgrade avoids this. See Upgrading the Connector and QMS.

Breaking Changes

  • In QMS 9.2 and above the Agent State Service HTTP connection is no longer supported (port 8003). All consumers of this connection must switch to using the Agent State Service Net.TCP connection (port 8015). This specifically affects the Enghouse Contact Center component "QMS Recording Gateway" which is often configured to use the HTTP connection and would need to switch to the Net.TCP connection instead.

  • In QMS 9.3 and above there is a breaking change with database replication. If using SQL Merge Replication we strongly advise switching to SQL Always On instead, as a superior alternative to replication. If this is not possible you will need to upgrade to QMS 10.2 as a minimum, and add EnableDbReplicationSafeSave and set it to true, using the QMSConfig application, to the primary and secondary data services. This is needed to overcome a limitation introduced by Entity Framework Core 7.0 related to the way it saves data, which is now a "significantly more efficient technique" but at the expense of not working with triggers (and therefore not working with replication). With this new setting, we will be able to instruct EF Core to revert to the previous, less efficient technique.

  • In QMS 11.0 and above there is a breaking change with EnghouseAI credentials. User based accounts (i.e. username/password) are no longer supported. You now need to configure service based account credentials to connect to the EnghouseAI servers (i.e. client secret).

  • In QMS 11.0 and above there is a breaking change with Nuance Transcription services which have been removed from the product.

  • In QMS 12.0 and above there is a breaking change with the Agent State Service which now has authentication requirements similar to the Client Service. However, if you have third-party software that is not yet able to support the new authenticated AgentStateService, you can add your third-party endpoints to a whitelist of hostnames or IP addresses which can revert to the old behavior of the un-authenticated service. This configuration can be added to the dataservice config file by adding the RealTimeFeedAuthenticationWhiteList key to the appSettings section e.g

    <add key="RealTimeFeedAuthenticationWhiteList" value="10.51.49.253, 10.51.49.254, 127.0.0.1"/>
  • In QMS 12.3 and above, the Cisco UCCE Connector Service sends empty CTI client credentials unless CtiClientID and CtiClientPassword are set in its configuration; earlier releases sent UCCE1 / password. A UCCE site whose CTI Server authenticates its clients must set them before upgrading the connector.