Document toolboxDocument toolbox

.Deployment Guide v13.3

Solution Prerequisites

The following are the mandatory prerequisites for a smooth installation.

Hardware Requirements

The following are the minimum hardware specifications for up to 300 concurrent agents deployment, with no other EF components installed on the VM. 

Item

Minimum Requirement

CPU

2 cores

RAM

4 GB

Disk

100 GB

NICs

1 NIC

Software Requirements

Ports Requirements

The following ports should remain open on the Firewall. The local security policy and any antivirus should also allow open communication on the following ports.

Type

Port

HTTP

80

HTTPS

443

TCP

27017  (Only required for HA deployment)

Date & Time Synchronization

An important consideration is time synchronization between related components.  Communication between the Cisco Finesse and CIM carry timestamps. Therefore,  DateTime on Finesse Server and all CIM machines must be synchronized to the second. 

System Access Requirements

Administrative privileges (root) are required on all the machines where the application is being deployed to follow the deployment steps.

Installation

For the HA installation, there should be three machines available in the same subnet. We’d refer to these machines as primary, secondary, and arbiter. The arbiter would have lesser specs than primary and secondary servers. The Internet should be available on all machines(2) where the application is being installed and connections on port 9242 should be allowed in the network firewall.

  1. Download the deployment script deploy.sh place it in the user home or any desired directory on the primary machine. This script will:
    1. delete the cim-deployment directory if it exists.
    2. download the cim deployment profile in cim-deployment directory from GitLab.
  2. To execute the script, give it the execute permissions and execute it. 

    # chmod 755 deploy.sh
    # ./deploy.sh

    Repeat the same steps on the secondary machine for HA deployment.

MongoDB Setup

Download the mongo script mongo.sh  and place it in the user home or any desired directory on all machines. To run the script, give it the execute permissions and execute it.

# chmod 775 mongo.sh
# ./mongo.sh

Non-HA deployment

Navigate to the cim-deployment/docker directory and run the following command to start the mongo database service on the primary machine with the following settings

docker run --name=docker_cim_mongo_1 --restart=always -v ${PWD}/docker/data/mongo/data:/bitnami --net=host -d gitlab.expertflow.com:9242/chat-solution/mongodb:latest

HA deployment

On Primary:

Navigate to the cim-deployment/docker directory and run the following command.

docker run --name=docker_cim_mongo_1 -e MONGODB_REPLICA_SET_MODE=primary --restart=always -v ${PWD}/docker/data/mongo:/bitnami --net=host -d gitlab.expertflow.com:9242/chat-solution/mongodb:latest

On Secondary:

Navigate to the cim-deployment/docker directory and run the following command. Replace <primary-ip> in the following command to the physical IP of the primary server.

docker run  --name=docker_cim_mongo_1  -e MONGODB_REPLICA_SET_MODE=secondary --restart=always -e MONGODB_PRIMARY_HOST=<primary-ip> -v ${PWD}/docker/data/mongo:/bitnami --net=host -d gitlab.expertflow.com:9242/chat-solution/mongodb:latest


On arbiter:

Run the following command. Replace <primary-ip> in the following command to the physical IP of the primary server.

docker run -e MONGODB_REPLICA_SET_MODE=arbiter --restart=always -e MONGODB_PRIMARY_HOST=<primary-ip> --net=host -d gitlab.expertflow.com:9242/chat-solution/mongodb:latest

Configurations 

  1. Access SQL Server and make a User Management database.
  2. Navigate to the cim-deployment/docker/environment-variables directory and perform the following steps.

    1. Open the umm-variables.env file and
      1. Enter the primary finesse FQDN in the PRIM_FINESSE_IP environment variable and the secondary finesse FQDN in the SEC_FINESSE_IP environment variable. Also, enter the finesse cf admin user name in FINESSE_USER and finesse cf admin password in FINESSE_PASS environment variables.
      2. Update the User Management database IP & DB name of SQL machine  in the DB_URL parameter e.g. sqlserver://IP:1433/DBNAME.
      3. Enter the  IP or  FQDN of the machine in SERVER_URL  environment variable e.g. https://192.168.1.123 or https://cim.expertflow.com
    2. Open cim-frontend-variables.env file and enter the Customer Channel Manager SMS sending API URL in SMS_BASE_URL  environment variable. In SMS_CHANNEL set smpp for sending SMS via SMPP gateway or set sms for sending SMS via Twilio.  Repeat the same step on secondary for HA deployment.
    3. Open sms-connector-variables.env file and refer to the SMPP Integration/Twilio Integration section of the Customer Channel Manager configuration guide to update the SMPP environment variables.
  3. This step is required only if solution the deployed in HA. Open the cim-backend-variables.env file and enter the comma-separated IPs of primary, secondary, and arbiter servers in the DBURL environment variable e.g. DBURL=192.168.1.22,192.68.1.23,192.168.1.24
  4. Having environment configurations done,  navigate to  the cim-deployment directory and execute the following commands:

    #  chmod 755 install.sh
    # ./install.sh
  5. Run the following command to ensure that all the components are up and running. The screenshot below shows a sample response for a standalone non-HA deployment. 

    docker ps -a
  6. By default, the CIM runs on https using the pre-shipped self-signed certificates in Nginx.  To use the valid domain signed certificate for https, navigate to the  cim-deployment/docker/certificate directory, replace the server.key & server.crt files with domain signed certificate files and restart the Nginx using the following command:

    #systemctl restart nginx

    Repeat the same configurations steps on the secondary machine for HA deployment.

Virtual IP configuration ( HA Only)

  1. Download keepalived.sh script and place it in the root directory on both primary and secondary machines.
  2. Give execute permission and execute the script: 

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

  3. Configure keep.env file inside /root/keep-alived folder

    Name

    Description

    KEEPALIVED_UNICAST_PEERS

    Pear machine IP. 192.168.1.80

    KEEPALIVED_VIRTUAL_IPSVirtual IP of the cluster. It should be available on the LAN. For example 192.168.1.245
    KEEPALIVED_PRIORITYThe priority of the node. Instance with a lower number will have a higher priority. It can take any value from 1-255. 
    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. 
    CLEARANCE_TIMEOUTCorresponds to the initial startup time of the application in seconds which is being monitored by keepalived. A nominal value of 60-120 is good enough
    KEEPALIVED_ROUTER_IDDo not change this value.
    SCRIPT_VAR

    This script is continuously polled after 2 seconds. Keepalived relinquishes control if this shell script returns a non-zero response. It could be either umm or any backend microservice API.

    This is the health check script. It should remain as is unless you change the umm port in the compose file. Update UMM port instead of 8080 if you’re using some other port. Example

    pidof dockerd && wget -O index.html localhost:8080/umm/base/index.html

  4. Give the execution permission and execute the script on both machines.

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

Add License

  1. Browse to https://FQDN/umm in your browser (FQDN will be the domain name assigned to the IP/VIP). 
  2. Click on the red warning icon on right, paste the license (as shown in the screenshot) in the field and click save.
  3. Update the Application Settings
    1. Log in on Supervisor Tools using admin credentials
    2. Select Cisco Type as UCCX
    3. Define Primary UCCX settings
    4. Define Secondary UCCX settings
    5. Click save

  1. Now log in using admin
  2. Go to https://FQDN  and CIM front-end should be accessible as shown in the following screenshot. (FQDN will be the domain name assigned to the VIP).

            

   

Use IP instead of FQDN to access the application if the domain name is not available.


   Finesse Gadget deployment

Using FileZilla or similar FTP client, deploy the gadget by following these steps.

1Get the finesse gadget files from cim-deployment/CIMGadget directory.

2

Open confi.js file, and update the configurations.


3Open FileZilla client and connect with finesse server, add finesse IP in the host, the username should be “3rdpartygadget”, the password you can retrieve/change using putty. Port should be 22

4After successful connectivity with the finesse server, you will see the folder “files” highlighted above
5Create a new folder under file with name “CIMGadget”

6Open the newly created folder and paste all the extracted files in that folder.
7Open finesse cfadmin, go to desktop layout and add “<gadget>/3rdpartygadget/files/CIMGadget/InteractionHistoryGadget.xml</gadget>” and save the settings.
8Login the agent, you will see the agent gadget here.