...
Section 2
For HA (High Availability).
Requirements
NFS Server
Database
...
with SqlServer
...
HA sip trunk
Two VRS on separate VMs
Follow the guide for the deployment of High Availability (HA) VRS.
Ask IPCC team for the creation of NFS server.
Mounting point of NFS on both servers VRS VMs is /var/vrs/recordings.
Grant full permission to this directory and any files or subdirectories created within it.
Ask the IPCC team for the creation of Database (sqlserver). And add sqlcmd to the path.
Follow this guide to create an application user on CUCM for jtapi-connector.
Open
recoding-solution/docker/docker-compose-cisco
Uncomment the Consul Container and save the changesNavigate to data/scripts/ inside recording-solution directory.
Run pwd command and copy the path of sqlserver.sql script
Run the following command with correct credentials. It will initialize the database.
sqlcmd -S localhost -U sa -P <your_password> -d <database_name> -i /path/to/sqlserver.sql
Follow this guide to create an application user on CUCM for jtapi-connector.
Open
recoding-solution/docker/config.env
and set the environment variables.
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 | DEPLOYMENT_PROFILE | “CISCO“ as HA is only available on cisco |
6 | PEER_ADDRESS | Address of the second VM wehre VRS is deployed |
7 | HA_MODE | Keep it true. As we are deploying high avaliability |
8 | SCREEN_RECORDING | True if screen recording is enables and false if diasble |
9 | KEYCLOAK_URL | Url of the keycloak deployed for fetching user details |
10 | CISCO_TYPE | Either UCCE or UCCX |
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. e.g /var/vrs/recodings/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 | CUCM_APPLICATION_USER_NAME | CUCM User's username that has been created in step 3. |
26 | CUCM_APPLICATION_USER_PASSWORD | Password for the CUCM Application User. |
27 | CUCM_IP | IP address where CUCM has been Deployed |
...
Open docker-compose-cisco in docker/docker-compose-cisco
Archival Container add the volumes a
...
Open
recoding-solution/docker/docker-compose-cisco
Uncomment the Consul Container and save the changes
Archival Container add the volumes
Code Block |
---|
volumes: - /mntvar/nfsvrs/vrs-recordings/cucmRecording/sessionsstreams/:/mntvar/nfsvrs/vrs-recordings/cucmRecording/sessions/ |
In Apis/Backend Container add the volumes and database configuration
Code Block |
---|
volumes:/streams/ - /mntvar/nfsvrs/vrs-recordings/cucmRecording/sessions/:/mntvar/nfsvrs/vrs-recordings/cucmRecording/sessions/ |
In Mixer Apis/Backend Container add the volumes and database configuration
...
Code Block |
---|
volumes: - /mntvar/nfsvrs/vrs-recordings/cucmRecording/sessions/:/mntvar/nfsvrs/vrs-recordings/cucmRecording/sessions/ |
In Jtapi Mixer Container add the volumes and database configuration
Code Block |
---|
...
volumes:
- /var/vrs/recordings/cucmRecording/streams/:/var/vrs/recordings/cucmRecording/streams/
- /var/vrs/recordings/cucmRecording/sessions/:/var/vrs/recordings/cucmRecording/sessions/ |
Open the freeswitch script record.lua located in the
/usr/share/freeswitch/scripts
and make the following changescorrect path of NFS server.
Code Block |
---|
recording_dir = '/mnt/nfs/vrs-"/var/vrs/recordings/cucmRecording/streams/" mixedRecordingDir = "/var/vrs/recordings/cucmRecording/streams/' mixedRecordingDir = "/mnt/nfs/vrs-recordings/cucmRecording/sessions/"sessions/" |
Also change the IP address. Assign you local machine ip address
url = "http://<IP-Address>:9900/mixapi",
Give required permission to the nfs directory
Since our VRS interacts with local storage, it reads and writes files on the local storage. Pemission to read and write is thus necessary for the VRS to work.
Assign full permission to the mounted directory for all group, users and others to read, write and execute the mounted directory. It can be done with umask.
Open the config.env
Now, run the install script. ./install-cisco.sh
Do the same for the other VRS
...