.Installation with Docker Compose Single Site v13.1
Solution Prerequisites
The following are the solution setup prerequisites.
Software requirements
| Minimum requirement |
|---|---|
OS | CentOS 7 |
MSSQLServer | 2016 |
Docker CE | 18+ |
Docker compose | 1.21 |
Git | 1.8+ |
Hardware requirements
| Minimum requirement |
|---|---|
CPU | 4 cores |
RAM | 4 GB |
Disk | 300 GB |
NICs | 1 NIC per VM |
Installation Steps
Install Docker and Docker Compose on the host operating system.
Download the deployment script and place it in the user home or any desired directory. This script will:
delete the recording-solution directory if it exists.
To execute the script, give it the execute permissions and execute it.
$ chmod755 deployment.sh$ ./deployment.shchange to newly created directory with name recording-solution. This directory contains all the required files.
Run SQL script in SqlServer to create database and tables. (recording-solution/db_schema_sqlserver.sql).
Create an Application User in CUCM with Standard CTI Enabled Permission group. Add all devices that are supposed to be recording enabled to this user controlled devices list. This user will be used add JTAPI Observer to observe the call END events.
Update the following environment variables in the files inside recording-solution/environment-variables folder.
general-environment.env
Name
Description
DB_URL
VRS database connection URL
jdbc:jtds:sqlserver://192.168.1.92:1433/vrs;user=sa;password=Expertflow464DB_DRIVER
JDBC driver
net.sourceforge.jtds.jdbcx.JtdsDataSourceCC_TYPE
Cisco Contact center type (UCCX or UCCE)
TZ
Timezone (Asia/Karachi)
ENCRYPTION_ENABLED
To enable/disable recorded file encryption
true = enabled
false = disabled
AMQ_PRIMARY
Primary ActiveMQ URL, (VRS machine IP)
tcp://192.168.1.242:61616AMQ_SECONDARY
Secondary ActiveMQ URL, Keep it same as primary if ActiveMQ not available in HA
AMQ_TIMEOUT
3000, keep it same
AMQ_RANDOMIZE
false, keep it same
AMQ_PRIORITY_BACKUP
true, keep it same
LOCAL_MACHINE_IP
VRS machine IP
CUCM IP
Cisco Call Manager IP
CUCM_APPLICATION_USER_NAME
CUCM Application user's username created in step 6.
CUCM_APPLICATION_USER_PASSWORD
CUCM Application user's password created in step 6.
TIME_CUSHION
The number of seconds to add to the start and end time of call when calling API from CIM. There are few seconds difference between CIM interaction's start and end time and recording solution start and end time since CIM fetch interactions from Finesse while recording solution gets time from CUCM
MAX_RING_TIME
Maximum Call ring time on agent desktop, default is 30 seconds
CALL_TIMEOUT
Socket timeout for recording rtp packets, set it to 10
THREAD_TIME
Interval in seconds between two jobs that clears completed calls, set it 10
ENCODED_FILE_EXTENSION
Extension to use with encryption file. It should be set to "enc"
DIRECTORY_PATH_TO_MONITOR
This and following 9 variables are used for the archival process. This variable will hold the path of the recording
ARCHIVED_MEDIA_FILES_EXTENSION
The archival process will archive recordings with this extension, set it to "wav"
NO_OF_DAYS
The number of days to keep recordings in the primary server. Recordings older than this value days will be archived
SFTP_HOST
SFTP hostname or IP
SFTP_PORT
SFTP port
SFTP_USERNAME
SFTP username
SFTP_PASSWORD
SFTP password
ARCHIVAL_JOB_INTERVAL
Archival process will run every this values seconds and archive any pending archival recordings
RETRY_LIMIT
Number of retries on pending archival recording folders
ARCHIVE_PATH
The shared path on the archival server where archival process archive recordings
ARCHIVE_PATH_USER
Archive path's machine user
ARCHIVE_PATH_PASS
Archive path's machine password
UCCE_DB_URL
UCCE awdb database connection URL, used for UCCE deployment only.
jdbc:jtds:sqlserver://192.168.1.87:1433/ucce_awdb;user=sa;password=Expertflow464Used for UCCX deployment only...
UCCX_URL
UCCX URL, used for fetching agent details,
https://192.168.1.101UCCX_USERNAME
UCCX user, should have privileges to fetch agents
UCCX_PASSWORD
UCCX user password
ui-environment.env
DB_IP
VRS database machine IP
DB_USER
VRS database user
DB_PASSWORD
Database password
DB_NAME
Database name
Execute following commands to allow specific port required for voice recording.
firewall-cmd --zone=public--permanent --add-port=5060/tcpfirewall-cmd --zone=public--permanent --add-port=16384-18768/udpfirewall-cmd --zone=public--permanent --add-port=16613-16617/tcpfirewall-cmd --zone=public--permanent --add-port=8080-8081/tcpfirewall-cmd --zone=public--permanent --add-port=8161-8162/tcp
firewall-cmd --reloadTo change the default self-signed SSL certificates used with the application, replace server.crt and server.key files inside recording-solution/certificates folder.
Having environment configurations done, navigate to the
recording-solutiondirectory and execute the following commands:$ chmod755 install.sh$ ./install.shRun the following command to ensure that all the components are up and running:
docker ps -aCreate a SIP trunk in Cisco Call Manager with recorder being VRS machine. Follow this steps to configure sip trunk. Seek help from Call Manager administrator if you don't know what this is.
Troubleshooting
If calls are not recorded, check the following things
Verify SIP events are logged in in core-recorder service when call is connected. If events are not logged then it means SIP trunk is not configured properly or recording is not enabled on device.
If SIP events are logged but still no recordings, search for No RTP payload received error in recorder logs, if there are such error then check if Recording Media Source is set to Phone Preferred in phone settings on CUCM.
Make sure Built-in Bridge is enabled on phones.
Check for any errors in Mixer services logs, calls may be recorded but not properly mixed.
if core-recorder and Mixer services logs are okay still not recordings on UI, check apis logs for any error