Installation Steps
...
Follow this guide to install and configure Freeswitch. The recording path should be
/usr/share/freeswitch/cucmRecording
Please make sure that Solution Prerequisites are met for the desired deployment type.
Download the deployment script deployment.sh and place it in the user's’s home or any desired directory. This script will:
delete the recording-solution directory if it exists.
clone the required files for deployment
To execute the script, give it the execute permissions and execute it. This command will clone the skeleton project for the recording solution. the recording-solution directory contains all the required files for deployment.
Code Block language bash $ chmod 755 deployment.sh $ ./deployment.sh
Open recording-solution/docker/config.env and update the following environment variable. A table (Environment variable) is give at the end of this page.
Name Description 1 VRS_URL https://192.168.1.101 [IP of a local machine]
2 LOCAL_MACHINE_IP 192.168.1.101 [local machine IP since it is a non-HA deployment]
3 KC_HOSTNAME Keycloak hostname e.g 192.168.1.101 4 TZ Asia/Karachi 5 TRUST_STORE_PATH /app/ssl/truststore.jks
keep it same
6 TRUST_STORE_PASSWORD Expertflow464 7 CCX_PRIMARY_IP Primary UCCX IP e.g 192.168.1.33 8 CCX_SECONDARY_IP Secondary UCCX IP e.g 192.168.1.33 9 CCX_ADMIN_USERNAME CCX Admin username 10 CCX_ADMIN_PASSWORD CCX Admin password 11 FINESSE_URL https://uccx12-5p.ucce.ipcc:8445 12 DIRECTORY_PATH_TO_MONITOR The path for archival process to monitor, it should be the same path where sessions are kept, mostly /home/efadmin/cucmRecording/sessions/ OR /usr/share/freeswitch/cucmRecording/sessions/ 13 ARCHIVED_MEDIA_FILES_EXTENSION mp4 #keep it same 14 FILE_EXTENSION wav #keep it same 15 NO_OF_DAYS No of days before which all the files will be archived. If set 2, then except for last 2 days from the date and time of service started or triggered all the files will be archived.
16 SFTP_HOST SFTP host IP for archival e.g 192.168.1.106 17 SFTP_PORT 22 18 SFTP_USERNAME User name of the sftp server e.g expertflow 19 SFTP_PASSWORD SFTP password e.g Expertflow464 20 ARCHIVAL_JOB_INTERVAL It is a duration that tells the service to trigger again. This value is in hours. For example, if set 24 the service would be triggered after 24 hrs to get the desired job done. 21 STEAM_DELETION_JOB_INTERVAL_HRS
24 22 RETRY_LIMIT 2 23 ARCHIVAL_PROCESS_NODE active 24 NO_OF_DEL_DAYS No of days before which all the streams will be deleted. If set 2, then except for last 2 days from the date and time of service started or triggered all the files will be deleted. 25 KEYCLOAK_CLIENT_ID Name of the client e.g vrs 26 KEYCLOAK_CLIENT_SECRET
it is a token or code which we need to add. We can get it from keycloak. 27 KEYCLOAK_REALM_NAME
Name of the realm e.g vrs 28 KEYCLOAK_PERMISSION_GROUP
Permission group e.g AGENT_GROUP Navigate to the recording solution directory and execute the following commands:
Code Block # chmod 755 install.sh # ./install.sh
Verify all the containers are up and healthy
Verify if keycloak container is healthy (docker ps), if it is on restarting, kill (docker kill keycloak) and remove (docker rm keycloak) the keycloak container then run ./install.sh. Wait for keycloak container to become healthy.
Once keycloak is set up, update below environment variables in
recording-solution/docker/config.env
file.Name Description 1 KEYCLOAK_REALM_NAME Realm name created in step 4 of keycloak setup 2 KEYCLOAK_CLIENT_ID Keycloak client id from step 6 of keycloak setup 3 KEYCLOAK_CLIENT_SECRET Keycloak client secret from step 8 of keycloak setup 4 KEYCLOAK_PERMISSION_GROUP Keep it same To update the self signed certificates for VRS, get the public authority or domain signed certificate .crt and .key files, name them server.crt and server.key and replace the files in /recording-solution/config/certificates with these two new files. Names should be exactly same.
Run ./install.sh again
Run the following command to ensure that all the components are up and running.
Code Block # docker ps
Go to https://VRS-IP/#/login to access the application.
Configure SIP trunk to enable CUCM to send SIP events to VRS for call recordings. Two sip trunks should be configured in case of HA.
...
Name | Description | |
---|---|---|
1 | VRS_URL | URL of a local machine. example, https://192.168.1.101 |
2 | LOCAL_MACHINE_IP | Local machine IP since it is a non-HA deployment. example 192.168.1.101 |
3 | KC_HOSTNAME | Keycloak hostname where keycloak is hosted. e.g 192.168.1.101 |
4 | TZ | Time Zone. e.g Asia/Karachi |
5 | TRUST_STORE_PATH | /app/ssl/truststore.jks. [keep it same] |
6 | TRUST_STORE_PASSWORD | Password for the trust store. [Expertflow464] |
7 | CCX_PRIMARY_IP | Primary UCCX IP address. e.g 192.168.1.33 |
8 | CCX_SECONDARY_IP | Secondary UCCX IP e.g 192.168.1.33 |
9 | CCX_ADMIN_USERNAME | CCX admin Admin username |
10 | CCX_ADMIN_PASSWORD | CCX Admin password |
11 | FINESSE_URL | |
12 | DIRECTORY_PATH_TO_MONITOR | The path for archival process to monitor, it should be the same path where sessions are kept. e.g /usr/share/freeswitch/cucmRecording/sessions/ |
13 | ARCHIVED_MEDIA_FILES_EXTENSION | mp4 [keep it same] |
14 | FILE_EXTENSION | wav [keep it same] |
15 | NO_OF_DAYS | No of days before which all the files will be archived. If set 2, then except for last 2 days from the date and time of service started or triggered all the files will be archived. |
16 | SFTP_HOST | SFTP host IP for archival e.g 192.168.1.106 |
17 | SFTP_PORT | 22 |
18 | SFTP_USERNAME | Username of the SFTP server e.g expertflow |
19 | SFTP_PASSWORD | SFTP password e.g Expertflow464 |
20 | ARCHIVAL_JOB_INTERVAL | It is a duration that tells the service to trigger again. This value is in hours. For example, if set 24 the service would be triggered after 24 hrs to get the desired job done. |
21 | STEAM_DELETION_JOB_INTERVAL_HRS | Time in hours before which all the stream is to be deleted. e.g 24 |
22 | RETRY_LIMIT | limit to retry in case the connection fails. e.g 2 |
23 | ARCHIVAL_PROCESS_NODE | active |
24 | NO_OF_DEL_DAYS | No of days before which all the streams will be deleted. If set 2, then except for last 2 days from the date and time of service started or triggered all the files will be deleted. |
25 | KEYCLOAK_CLIENT_ID | Name of the client e.g vrs [All the variables from 25 - 28 is to be set after keycloak configuration step 8 ] |
26 | KEYCLOAK_CLIENT_SECRET | it is a token or code which we need to add. We can get it from keycloak. [All the variables from 25 - 28 is to be set after keycloak configuration step 8 ] |
27 | KEYCLOAD_REALM_NAME | Name of the realm e.g vrs [All the variables from 25 - 28 is to be set after keycloak configuration step 8 ] |
28 | KEYCLOAK_PERMISSION_GROUP | Permission group e.g AGENT_GROUP [All the variables from 25 - 28 is to be set after keycloak configuration step 8 ] |
...