Solution Prerequisites
The following are the solution setup prerequisites.
Software requirements
Minimum requirement | |
---|---|
OS | CentOS 7 |
MySQL | 5.5+ |
Docker CE | 18+ |
Docker compose | 1.21 |
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 deployment.sh 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.
Code Block language bash $ chmod 755 deployment.sh $ ./deployment.sh
change to newly created directory with name recording-solution. This directory contains all the required files.
- Run SQL script in MySQL to create database and tables. (recording-solution/db_schema.sql).
Update following environment variables in environment_variables.env file inside recording-solution folder.
Name
Description
DB_URL
VRS database connection url, (jdbc:mysql://192.168.1.225:3306/vrs)
DB_USER
VRS database user
DB_PASSWORD
VRS database password
DB_DRIVER
JDBC driver (com.mysql.jdbc.Driver)
DB_DIALECT
org.hibernate.dialect.MySQL5Dialect
UCCE_AWDB_URL
UCCE AWDB database connection URL.
jdbc:jtds:sqlserver://IP:PORT/ucce_awdb_name;user=sa;password=db-passwordLOCAL_MACHINE_IP
VRS machine IP
KAFKA_URL
Change the IP part of this variable, IP will be VRS machine IP
KAFKA_TOPICS Kafka topics, set it to "vrs" TIME_CUSHION Number of seconds to add to 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 ZOMBIE_TIMER Time is minutes to clear dangling calls. set it to 1 CALL_TIMEOUT Time in milliseconds to clear call after BYE invite is received,set it to 20000 THREAD_TIME Interval in milliseconds between two jobs that clears dangling records,set it to 15000 ENCRYPTION_ENABLED To enable/disable recorded file encryption
true = enabled
false = disabled
WAV_CONVERSION It's value should always be 0 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 archival process. This variable will hold the recordings path ARCHIVED_MEDIA_FILES_EXTENSION Archival process will archive recordings with this extension, set it to "wav" NO_OF_DAYS Number of days to keep recordings in primary server. Recordings older than this value days will be archived SFTP_HOST SFTP host name 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 Shared path on archival server where archival process archive recordings ARCHIVE_PATH_USER Archive path's machine user ARCHIVE_PATH_PASS Archive path's machine password Open docker-compose file inside recording-solution folder and environment variable named KAFKA_ADVERTISED_HOST_NAME of service named kafka. This variable will hold local machine IP where VRS is going to deploy.
Execute following commands to allow specific port required for voice recording.
Code Block $ firewall-cmd --zone=public --permanent --add-port=5060/tcp $ firewall-cmd --zone=public --permanent --add-port=16386-32768/udp $ firewall-cmd --zone=public --permanent --add-port=9092/tcp $ firewall-cmd --reload
Having environment configurations done, navigate to to the
recording-solution
directory and execute following commands:Code Block language bash $ chmod 755 docker_deployment_script.sh $ ./docker_deployment_script.sh
Run the following command to ensure that all the components are up and running:
Code Block language bash $ docker ps -a