14.11.0 14.10.0 14.9.0 14.8.0 14.7 14.6 14.5 14.4 14.3
14.11.0 14.10.0 14.9.0 14.8.0 14.7 14.6 14.5 14.4 14.3

VRS Upgrade Guide from 14.10.0 to 14.11.0

Upgrade Cisco VRS from 14.10.0 to 14.11.0

Follow these steps in order.

This guide is for Cisco VRS. The same image-tag and Keycloak role steps apply when you use the EFCX compose profile for your deployment.

Before you start

  • You have SSH/login access to the VRS server

  • You know your database type: PostgreSQL 14+ or SQL Server

  • You know the database host, username, and password (ask DBA if needed)

  • You can log in to the Keycloak Admin Console for the VRS realm

Step 1 - Backup your settings and database

Save a copy of your current settings file so nothing is lost:

Bash
cp recording-solution/docker/config.env ~/config.env.backup

Check the backup exists:

Bash
ls -l ~/config.env.backup

Also back up the VRS metadata database (vrs only — not keycloak_vrs) before you run the schema script. Ask your DBA if needed.

PostgreSQL example:

Bash
pg_dump -h <db_host> -U <db_user> -d vrs -F c -f ~/vrs-14.10-backup.dump

SQL Server example (adjust path/name as your DBA requires):

Bash
sqlcmd -S <db_host> -U <db_user> -P <db_password> -Q "BACKUP DATABASE [vrs] TO DISK = N'C:\\Backup\\vrs-14.10.bak' WITH INIT"

Step 2 - Stop VRS

Bash
cd ~
cd recording-solution
docker compose --env-file docker/config.env -f docker/docker-compose-cisco.yml down

For EFCX deployments, use your EFCX compose file instead of docker-compose-cisco.yml.

Wait until this command finishes.

Step 3 - Get the 14.11.0 files

Go to the directory that contains recording-solution (usually your home directory), keep the old folder as a backup, and clone the 14.11.0 branch:

Bash
cd ~
mv recording-solution recording-solution-14.10
git clone -b 14.11.0 https://gitlab.expertflow.com/voice-recording-solution/recording-solution.git

Check that you are on the 14.11.0 branch:

Bash
cd recording-solution
git branch --show-current
cd ..

It should print 14.11.0.

Put your settings back:

Bash
cp ~/config.env.backup recording-solution/docker/config.env

Open recording-solution/docker/config.env. Only if these labels are missing, add the call variable labels below. Change the text to match what your call variables hold:

Bash
CALL_VARIABLE1_LABEL=Customer Name
CALL_VARIABLE2_LABEL=Extension
CALL_VARIABLE3_LABEL=Account No.
CALL_VARIABLE4_LABEL=IVR Code
CALL_VARIABLE5_LABEL=Reference ID
CALL_VARIABLE6_LABEL=Customer Type
CALL_VARIABLE7_LABEL=Branch Code
CALL_VARIABLE8_LABEL=Service Type
CALL_VARIABLE9_LABEL=Priority Level
CALL_VARIABLE10_LABEL=Campaign/Source

If you use your own SSL certificates, copy them from the old folder:

Bash
cp recording-solution-14.10/config/certificates/server.crt recording-solution-14.10/config/certificates/server.key recording-solution/config/certificates/

The new docker/docker-compose-cisco.yml already uses :14.11.0 for every image, so you do not need to change image tags. If you changed the old compose file (for example, uncommented archival-process or consul, or changed volume paths), make the same changes in the new file. To see what you changed before:

Bash
diff recording-solution-14.10/docker/docker-compose-cisco.yml recording-solution/docker/docker-compose-cisco.yml

Step 4 - Update the database (required)

Run the 14.11.0 schema script on database vrs. This is required. The script:

  • Converts Mixed_Sessions.tag_id to a multi-tag array (no longer a single integer)

  • Adds the hold_time column

This does not delete your recordings or old data. You can run the script safely even if some objects already exist.

Important: Run the script only on database vrs. Do not run it on keycloak_vrs.

Ask your DBA which option you use, then run only one option below.

Option A - PostgreSQL

On a machine that has psql (often the database server):

Bash
cd recording-solution
psql -h <db_host> -U <db_user> -d vrs -f data/scripts/postgres.sql

Example:

Bash
psql -h 192.168.1.50 -U postgres -d vrs -f data/scripts/postgres.sql

Or in pgAdmin: open database vrs → Query Tool → open file data/scripts/postgres.sql → Run.

Option B - Microsoft SQL Server

Bash
cd recording-solution
sqlcmd -S <db_host> -U <db_user> -P <db_password> -d vrs -i data/scripts/sqlserver.sql

Or in SSMS: connect to database vrs → open data/scripts/sqlserver.sql → Execute.

If the script finishes without errors, the database part is done.

Step 5 - Keycloak roles (required for tagging)

From 14.11.0, all users can view tags. Only the evaluatetag role is needed to assign or unassign tags. The viewtag role is no longer required.

Cisco: use the VRS Keycloak realm (steps below). EFCX: EFCX does not use a separate VRS Keycloak — create and assign evaluatetag in the EFCX IAM / Keycloak realm that VRS already uses for that deployment.

  1. Open the Keycloak Admin Console and select the VRS realm.

  2. Under Realm roles, create evaluatetag if it does not already exist. You do not need to create viewtag.

  3. For each user who should assign or unassign tags on Media Recordings, open the user → Role mapping → assign evaluatetag (keep default roles and admin or agent as before).

  4. Optional: you may leave an existing viewtag role assigned; it is unused in 14.11.0.

Details: Setup Keycloak for VRS and VRS Authorization & Permissions.

Do not change your existing database password, Keycloak secret, or CUCM settings unless your team told you to.

Step 6 - Start VRS again

Bash
cd recording-solution
chmod 755 install-cisco.sh
./install-cisco.sh
docker ps

For EFCX, use your usual EFCX install script or compose up flow.

Wait until install finishes. In docker ps you should see containers such as:

  • frontend

  • backend

  • mixer

  • keycloak

  • jtapi-connector

Step 7 - Open VRS in the browser

Open:

https://<your-server-IP>/#/login

Example: https://192.168.1.187/#/login

Login with your usual VRS user, then confirm:

  • Operations Dashboard is available for supervisor / admin users (agents cannot open it)

  • A supervisor user can open OD (tenant-wide metrics) and still sees department-scoped lists on Media Recordings when /Departments/<name> is configured

  • Media Recordings can show multiple tags on a call and filter by more than one tag

  • Users with evaluatetag can assign/unassign tags; users without it can still view tags

What this upgrade gives you

  • Operations Dashboard for supervisors and admins

  • Multiple tags per call and multi-tag search on Media Recordings

  • Simpler tag roles: view tags without viewtag; assign/unassign with evaluatetag only

Rollback

If you must return to 14.10.0 after starting this upgrade:

  1. Stop VRS (docker compose ... down as in Step 2).

  2. Restore the vrs database from the backup taken in Step 1 (ask your DBA for pg_restore / SQL Server restore).

  3. Point the deployment back to the previous files: for example remove or rename the 14.11.0 recording-solution folder and restore recording-solution-14.10 (and ~/config.env.backup into docker/config.env if needed).

  4. Start VRS again with your 14.10.0 install script / compose flow.

After the schema script has run, rolling back without restoring the database backup can leave tag_id / hold_time incompatible with 14.10.0. Always restore the DB backup taken before Step 4.