Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

  1. Ask IPCC team for the creation of NFS server.

  2. Mounting point of NFS on both servers VRS VMs is /var/vrs/recordings.

  3. Grant full permission to this directory and any files or subdirectories created within it.

  4. Ask the IPCC team for the creation of Database (sqlserver). And add sqlcmd to the path.

  5. Follow this guide to create an application user on CUCM for jtapi-connector.

  6. Open recoding-solution/docker/docker-compose-cisco

  7. Uncomment the Consul Container and save the changesNavigate to data/scripts/ inside recording-solution directory.

  8. Run pwd command and copy the path of sqlserver.sql script

  9. 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

  1. Follow this guide to create an application user on CUCM for jtapi-connector.

  2. 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

...

  1. Open recoding-solution/docker/docker-compose-cisco

  2. 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/
  1. 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/"
  1. Also change the IP address. Assign you local machine ip address url = "http://<IP-Address>:9900/mixapi",

  2. 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.

  1. Open the config.env

  2. Now, run the install script. ./install-cisco.sh

  3. Do the same for the other VRS

...