Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »


Installation Steps

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

If there is an active firewall, allow following ports.

443/tcp
8088/tcp
5060/tcp
16386-32768/udp

Installation Steps

  1. Follow this guide to install and configure Freeswitch
  2. Please make sure that Solution Prerequisites are met for the desired deployment type. 
  3. 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
  4. Create MySQL database schema for vrs using the script located in recording-solution/data/init.sql. This is an sql script which creates a database with name vrs and the required tables. Run this as an sql script/query in MySQL
  5. Open recording-solution/docker/config.env and update the following environment variable 

    NameDescription
    1DB_HOSTvrs database host machine IP
    2DB_NAMEvrs database name
    3DB_USERvrs database username
    4DB_PASSWORDvrs database password
    5KEYCLOAK_PERMISSION_GROUPKeycloak Group from step 12 of keycloak setup
    6VRS_URL

    https://192.168.1.101 

    Replace the IP with local machine in non-HA deployment, replace it with Virtual IP in case of HA

    7LOCAL_MACHINE_IP

    192.168.1.101

    local machine IP in no-HA deployment, replace it with Virtual IP in case of HA

    8TZAsia/Karachi
    9TRUST_STORE_PATH

    /app/ssl/truststore.jks

    keep it same

    10TRUST_STORE_PASSWORDExpertflow464
    11DB_USERKeycloak database username
    12DB_PASSWORDKeycloak database password
    13DB_ADDRKeycloak database machine IP
    14DB_DATABASEKeycloak database name
    15CCX_PRIMARY_IPPrimary UCCX IP
    16CCX_SECONDARY_IPSecondary UCCX IP
    17CCX_ADMIN_USERNAMECCX Admin username
    18CCX_ADMIN_PASSWORDCCX Admin password
    19FINESSE_URLhttps://uccx12-5p.ucce.ipcc:8445
    20DIRECTORY_PATH_TO_MONITORThe path for archival process to monitor, it should be the same path where sessions are kept, mostly /home/efadmin/cucmRecording/sessions
    21ARCHIVED_MEDIA_FILES_EXTENSIONmp4 #keep it same
    22FILE_EXTENSIONwav #keep it same
    23NO_OF_DAYS1
    24SFTP_HOSTSFTP host IP for archival
    25SFTP_PORT22
    26SFTP_USERNAME
    27SFTP_PASSWORD
    28ARCHIVAL_JOB_INTERVAL15
    29

    STEAM_DELETION_JOB_INTERVAL_HRS

    24
    30RETRY_LIMIT2
    31ARCHIVAL_PROCESS_NODEactive
    32NO_OF_DEL_DAYS

  1. To execute the script, give it the execute permissions and execute it. This command will clone the skeleton project for recording solution. the recording-solution directory contains all the required files for deployment.

    $ chmod 755 deployment.sh
    $ ./deployment.sh
  2. Navigate to recording solution directory and execute the following commands:

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

    Verify all the containers are up and healthy 

  3. 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.
  4. Set up keycloak
  5. Once keyclaok is set up, update below environment variables in recording-solution/docker/config.env file. 


    NameDescription
    1KEYCLOAK_REALM_NAMERealm name created in step 4 of keycloak setup
    2KEYCLOAK_CLIENT_IDKeycloak client id from step 6 of keycloak setup
    3KEYCLOAK_CLIENT_SECRETKeycloak client secret from step 8 of keycloak setup
    4KEYCLOAK_URLkeep default
    5KEYCLOAK_PERMISSION_GROUPKeycloak Group from step 12 of keycloak setup
  6. 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.
  7.  Run ./install.sh again
  8. Run the following command to ensure that all the components are up and running. 

    # docker ps
  9. Go to https://VRS-IP/#/login to access the application.

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

  11. (HA Only) Install and configure rsync to synchronize the recording folder on both machines in HA.
    1. Install Rsync using the below command

      sudo apt-get install rsync

    2. Note down the directory that is used for recordings, assume it is /home/efadmin/cucmRecording/
    3. Configure passwordless login to the other machine by running the below command. Press [Enter] When prompted for a passphrase to leave the field blank.

      sudo ssh-keygen -t rsa -b 2048

    4. Copy the generated keys to the other machine

      sudo ssh-copy-id -i /root/.ssh/id_rsa.pub efadmin@other-machine-IP

    5. Configure a cron job to automate Rsync. Enter the below command.

      sudo crontab -e

    6. The above command will open a file, edit it, and add the below line at the end of the file. Replace the other-machine-ip with the IP of the other machine in HA

      */1 * * * * sudo rsync -avzhe ssh efadmin@other-machine-ip:/home/efadmin/cucmRecording/ /home/efadmin/cucmRecording/


      This will run the Rsync command every minute which will sync the local /home/efadmin/cucmRecording/ directory with other-machine /home/efadmin/cucmRecording/ directory. Any files added there will show up here and vice versa.

    7. Follow these steps on the other machine as well

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

    1. Go to recording-solution/HA
    2. Give execute permission and execute the script. This will create a keep-alived directory.

      # chmod +x keepalived.sh
      # ./keepalived.sh

    3. Update the following three variables in keep.env file inside HA directory.  

      Name

      Description

      KEEPALIVED_UNICAST_PEERS

      IPs of the machines in the cluster. On each machine, this variable should have a list of IPs of all the other machines in the cluster. The format of the list is as below: 

      192.168.1.80

      KEEPALIVED_VIRTUAL_IPSVirtual IP of the cluster. It should be available in the LAN. For example: 192.168.1.245


      KEEPALIVED_INTERFACEName of the network interface with which your machine is connected to the network. On CentOS, ifconfig or ip addr sh will show all the network interfaces and assigned addresses. 
    4. Give the execute permission and execute the script:  VRS should be now accessible via virtual IP

      # chmod +x keep-command.sh
      # ./keep-alive.sh



  • No labels