This guide explains how to deploy Expertflow Voice Recording Solution (VRS) on Debian using Docker Compose. It covers prerequisites, how to choose a deployment profile (Cisco or EFCX), the order of install and configuration steps, optional components, post-deployment checks, and upgrades. Detailed commands for each step live in the linked procedure pages; this page is the end-to-end deployment path.
Follow the phases in order for a new install. For an existing system, skip to Upgrades. Supported Cisco and EFCX versions are in the Compatibility Guide-Media Recording.
Prerequisites
Complete these before you install. Full sizing, ports, CUCM recording setup, and NTP details are in Solution Prerequisites.
|
Item |
Description |
|---|---|
|
Host OS |
Debian 12 with root access |
|
Runtime |
Docker CE and Docker Compose v2 (see Compatibility Guide) |
|
Database |
PostgreSQL 14+ or SQL Server 2019–2022 for VRS metadata and Keycloak |
|
Cisco versions (Cisco profile) |
UCCE 12.6.2, UCCX 15, Finesse 12.5, CUCM 12.5 / 15 as listed in Compatibility and Prerequisites |
|
EFCX (EFCX profile) |
EFCX 5.13 (or the CX release you integrate with), plus FusionPBX / Media Server as required |
|
Network |
SIP/RTP and HTTPS ports open as in Solution Prerequisites; NTP synced for Cisco BIB recording |
Deployment profiles
Choose one primary profile before you start. Do not mix Cisco and EFCX recording backends on the same VRS instance unless the project explicitly requires it.
|
Profile |
When to use |
What you deploy |
|---|---|---|
|
Cisco (UCCE / UCCX) |
Calls on Cisco UCCE or UCCX with CUCM (BIB) and Finesse |
VRS Cisco compose profile, FreeSWITCH recorder, CUCM SIP trunk and recording profile; optional Finesse gadget and screen recording |
|
EFCX |
Calls on Expertflow CX |
VRS EFCX compose profile, Media Server / FusionPBX; CX middleware / link-uploader when publishing recording links into CX |
Standalone vs high availability
|
Mode |
Description |
|---|---|
|
Standalone |
One application/recorder stack. Use Solution Prerequisites standalone sizing. |
|
HA |
Two recorder nodes plus a replay/storage node; sync recordings (for example with rsync). Use HA sizing and the rsync procedure after the core install. |
How recording fits together
Cisco path
CUCM uses Built-in Bridge (BIB) recording. On a recorded call, CUCM sends SIP to the VRS recorder and the phone forks RTP to the recorder. VRS stores the media file and session metadata so users can search and play calls in the VRS UI. Finesse is the agent desktop; an optional VRS Finesse gadget can be added. Screen recording is optional and associates desktop capture with the voice session.
SIP and RTP are time-sensitive. Keep CUCM, phones, and VRS on NTP. Fix SIP trunk, security profile, and BIB settings from Solution Prerequisites before deep application troubleshooting.
EFCX path
Voice media is handled through the Media Server / FusionPBX path used with Expertflow CX. VRS runs with the EFCX compose profile. When recording links must appear in CX, deploy the CX Voice Recording middleware and link-uploader components after the VRS stack is up.
Prepare for VRS deployment
-
Confirm versions — Match OS, database, and contact-center products to the Compatibility Guide.
-
Size and open ports — Follow Solution Prerequisites for hardware, firewall, and (Cisco) CUCM recording configuration.
-
Choose profile and mode — Cisco or EFCX; standalone or HA.
-
Prepare database — Ensure PostgreSQL or SQL Server is reachable with credentials you will put in
config.env. -
Plan FQDN / HTTPS — Know the URL operators will use for the VRS UI.
Deploy VRS (Cisco profile)
Complete these phases in order. Each row is a procedure page with the detailed steps.
|
Phase |
What you do |
Procedure |
|---|---|---|
|
1. Install application stack |
Clone/deploy VRS Docker services with the Cisco compose profile and configure |
|
|
2. Identity |
Configure Keycloak realm, roles, and department groups for supervisors |
|
|
3. Recorder |
Install FreeSWITCH recorder and apply recording scripts/config |
|
|
4. CUCM integration |
Create the CUCM application user for JTAPI-related services; finish SIP trunk / recording profile from Prerequisites |
|
|
5. Verify |
Place a test call; confirm recording appears and plays in Voice Recordings |
Post-deployment checks below |
Optional Cisco components
Add only what the project needs, after the core path above is working.
|
Component |
Procedure |
|---|---|
|
Screen recording |
Screen Recording for Cisco Configuration and Deployment Guide |
|
Finesse gadget |
|
|
HA rsync (recorder → replay) |
|
|
Pause / resume (ESL) |
|
|
Encrypt existing Cisco recordings |
Existing CISCO Voice Recording Encryption Configuration Guide |
|
Recording compression (mixer) |
|
|
Archival (SFTP or S3 / MinIO) |
Archival Service (dual archival columns are in the skeleton SQL on |
Deploy VRS (EFCX profile)
|
Phase |
What you do |
Procedure |
|---|---|---|
|
1. Prerequisites |
Confirm EFCX / Media Server requirements and VRS sizing |
|
|
2. Install application stack |
Deploy VRS with the EFCX compose profile; for dual archival, run the pasted |
|
|
3. Identity |
Configure Keycloak for VRS |
|
|
4. CX recording components (if needed) |
Middleware and link-uploader for publishing recording links into CX |
CX Voice Recording Components (Middleware and Link Uploader) Deployment Guide |
|
5. Verify |
Confirm recording and playback for EFCX calls |
Post-deployment checks below |
Optional EFCX components
|
Component |
Procedure |
|---|---|
|
Archival for EFCX |
Archival Process Configuration for EFCX (includes |
|
Encryption / decryption |
Call Recording File Encryption/Decryption Configuration for EFCX |
|
Encrypt existing EFCX recordings |
Existing EFCX Voice Recording Encryption Configuration Guide |
|
Pause / resume EFCX |
Post-deployment checks
-
Confirm VRS containers are healthy (
docker ps/ compose status). -
Log in to the VRS UI with a Keycloak user that has the expected role.
-
Place a test call on the chosen profile (Cisco or EFCX).
-
Confirm the recording appears in Voice Recordings / Media Recordings and that play and download work.
-
If archival or compression was configured, confirm the next archival run or a new mix uses the expected settings.
Upgrades
For an existing deployment, use the upgrade guide for your version jump instead of a fresh install. Current path for 14.12.0:
Earlier jumps (use only if you are not yet on 14.11.0):
Configurations after deploy
-
Keycloak users and roles — Setup Keycloak for VRS
-
Archival — Cisco: Archival Service (skeleton SQL on
vrs). EFCX: Archival Process Configuration for EFCX (fusionpbxSQL in Installation Guide / that page) -
Recording compression — Recording Compression — Operator Guide
-
Release scope and known limits — Release Notes and Release Limitations