.Installation with Docker-compose v13.2

.Installation with Docker-compose v13.2





Installation Steps

Upgrade from previous version

To upgrade from an older version, see Upgrade guide.



Internet should be available on the machine where the application is being installed and connections on port 9242 should be allowed in the network firewall to carry out the installation steps. 





All the commands start with a # indicating that root user privileges are required to execute these commands. Trailing # is not a part of the command.



Allow ports in the firewall

To start the firewall on CentOS (if it isn't started already), execute the following commands:  

# systemctl enable firewalld # systemctl start firewalld

To allow the ports on CentOS firewall, you can execute the following commands. (Run on both machines in case of HA). 

# firewall-cmd --add-port=443/tcp --permanent # firewall-cmd --add-port=5060/tcp --permanent  # firewall-cmd --add-port=16386-32768/udp --permanent  # firewall-cmd --add-port=9092/tcp --permanent  # firewall-cmd --reload



Installation Steps

  1. Please make sure that Solution Prerequisites are met for the desired deployment type. 

  2. Download the deployment script deployment.sh and place it in the user home or any desired directory. This script will:

    1. delete the recording-solution directory if it exists.

    2. clone the required files for deployment

  3. To execute the script, give it the execute permissions and execute it. 

    $ chmod 755 deployment.sh $ ./deployment.sh



  4. Change to newly created directory with name recording-solution. This directory contains all the required files.

  5. Navigate to /root/recording-solution/docker/ and update the core-recorder image tag to gitlab.expertflow.com:9242/voice-recording-solution/core-recorder:13.2.1 save and exit.

  6. Run SQL script in MySQL to create database and tables.  (recording-solution/db_schema.sql).

  7. Update environment variables  in the following files inside /root/recording-solution/docker/environment_variables folder.







  8. (HA OnlyHaving environment configurations done, copy the recording-solution directory on VM2 in/root directory using the following command.

    # scp -r /root/recording-solution root@<vm-ip>:/root/



  9. Execute the following commands inside /root/recording-solution directory. 

    # chmod 755 install.sh # ./install.sh





  10. Run the following command to ensure that all the components are up and running. 

    # docker ps

    This will show services status as shown below image 

  11.  (HA Only) Now go to VM2, update LOCAL_MACHINE_IP  variable to VM2 IP in root/recording/solution/docker/environment variables/recorder-environment.env file  and run below command inside /root/recording-solution to start recorder and activemq services. The two activemq services on VM1 and VM2 will now act as master/slave to provide HA. The two recorder services on VM1 and VM2 will be configured in Cisco Call Manager (CUCM) to provide HA.  

    # chmod 755 install.sh # ./install.sh



  12. (HA Only) The directory "/root/recording-solution/recordings/wav"  should also be mounted on network shared file system on both VMs or they should be synchronized with each other . In this way, all services on two VMs will have a shared directory for recording files reading or writing. Follow next step if network shared and synchronized folder is not provided

  13. (HA Only) Recording folder synchronization, follow below steps;

    1. Install lyncd utility on one machine, run below commands. 

      root@host # yum -y install epel-release root@host # yum -y install lsyncd



    2. Generate SSH Keys on same. Run below command to generate a key. Use default by pressing enter every time it prompts 

      root@host # ssh-keygen -t rsa




    3. Transfer the SSH key to the other other machine by running below commands, enter other machine root password when prompted 

      ssh-copy-id root@other-machine-ip





    4. vi ~/.ssh/config

      enter below text in config file, replace the Hostname with other machine IP

      Host dest_host Hostname 172.16.144.32 User root IdentityFile ~/.ssh/id_rsa









    5. settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd-status.log", statusInterval = 1 } sync { default.rsync, source="/root/recording-solution/recordings", target="192.168.1.125:/root/recording-solution/recordings", delete = false, rsync={ compress = true, acls = true, verbose = true, owner = true, group = true, perms = true, rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"} }



    6. Follow above steps for the other machine


  14. (HA Only) Repeat the following steps on both machines.

    1. Download keepalived.sh script and place it in any directory.

    2. Give execute permission and execute the script. This will create a keep-alived directory.



    3. Configure keep.env file inside keep-alived directory



    4. Give the execute permission and execute the script: