.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
Item | Minimum Requirement |
---|---|
OS | Centos 7/ Redhat |
Docker | CE/EE 18+ |
Docker compose | 1.2x (any latest version would do) |
Git | https://www.tecmint.com/install-git-centos-fedora-redhat/ |
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.
- Download the deployment script deploy.sh place it in the user home or any desired directory on the primary machine. This script will:
- delete the cim-deployment directory if it exists.
- download the cim deployment profile in cim
-deployment
directory from GitLab.
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
- Access SQL Server and make a User Management database.
Navigate to the
cim-deployment/docker/environment-variables
directory and perform the following steps.- Open the
umm-variables.env
file and- 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.
- Update the User Management database IP & DB name of SQL machine in the
DB_URL
parameter e.g.sqlserver://IP:1433/DBNAME.
- Enter the
IP
orFQDN
of the machine inSERVER_URL
environment variable e.g. https://192.168.1.123 or https://cim.expertflow.com
- Open
cim-frontend-variables.env
file and enter the Customer Channel Manager SMS sending API URL inSMS_BASE_URL
environment variable. In SMS_CHANNEL setsmpp
for sending SMS via SMPP gateway or setsms
for sending SMS via Twilio. Repeat the same step on secondary for HA deployment. - 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.
- Open the
- 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
Having environment configurations done, navigate to the
cim-deployment
directory and execute the following commands:# chmod 755 install.sh # ./install.sh
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
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 theserver.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)
- Download keepalived.sh script and place it in the
root
directory on both primary and secondary machines. Give execute permission and execute the script:
# chmod +x keepalived.sh
# ./keepalived.sh
Configure keep.env file inside
/root/keep-alived
folderName
Description
KEEPALIVED_UNICAST_PEERS
Pear machine IP.
192.168.1.80
KEEPALIVED_VIRTUAL_IPS
Virtual IP of the cluster. It should be available on the LAN. For example 192.168.1.245 KEEPALIVED_PRIORITY
The priority of the node. Instance with a lower number will have a higher priority. It can take any value from 1-255. KEEPALIVED_INTERFACE
Name of the network interface with which your machine is connected to the network. On CentOS, ifconfig
orip addr sh
will show all the network interfaces and assigned addresses.CLEARANCE_TIMEOUT
Corresponds 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_ID
Do 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
Give the execution permission and execute the script on both machines.
# chmod +x keep-command.sh
# ./keep-command.sh
Add License
- Browse to https://FQDN/umm in your browser (FQDN will be the domain name assigned to the IP/VIP).
- Click on the red warning icon on right, paste the license (as shown in the screenshot) in the field and click save.
- Update the Application Settings
- Log in on Supervisor Tools using admin credentials
- Select Cisco Type as UCCX
- Define Primary UCCX settings
- Define Secondary UCCX settings
- Click save
- Now log in using admin
- 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.
1 | Get the finesse gadget files from cim-deployment/CIMGadget directory. | |
2 | Open confi. | |
3 | Open 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 | |
4 | After successful connectivity with the finesse server, you will see the folder “files” highlighted above | |
5 | Create a new folder under file with name “CIMGadget” | |
6 | Open the newly created folder and paste all the extracted files in that folder. | |
7 | Open finesse cfadmin , go to desktop layout and add “<gadget>/3rdpartygadget/files/CIMGadget/InteractionHistoryGadget.xml</gadget>” and save the settings. | |
8 | Login the agent, you will see the agent gadget here. |