Solution Prerequisites
Single Server Hardware Requirements
Following are the prerequisites for setting up Hybrid Chat solution.
Hybrid Chat | Rasa | Articulate | |
---|---|---|---|
Hardware Sizing | |||
For up to 50 concurrent agents and 250 maximum chats in the system | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD |
For 3000 maximum chats in the system with integrated BOT | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 16 GB RAM, 250 GB HDD |
The desired hard disk space must be allocated to /var
.
If that's not feasible, Docker daemon root-directory should be changed to the location where the space is available.
Recommended File System type is XFS.
Recommendation
It's recommended to install the Bot on a different system. Rasa and Articulate use TensorFlow which requires CPUs with AVX instruction set. You can use use command ( egrep -i "avx" /proc/cpuinfo
) to verify this feature is available or not . For further information please see Rasa community.
Redundant Server (HA) Hardware Requirements
The solution is designed to provide complete failover between 2 systems (with an Arbiter) in case site-A goes down, site-B takes over. Following three nodes are required for an HA setup.
Hybrid Chat | Rasa | Articulate | |
---|---|---|---|
Hardware Sizing for up to 50 concurrent agents and 250 maximum chats in the system | |||
Master node ( site-a ) | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD |
Slave node ( site-b ) | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD | 4 vCPU, 8 GB RAM, 150 GB HDD |
Arbiter node ( neutral location ) | 1 vCPU, 2 GB RAM, 20 GB HDD | ||
Load Balancer | 2 vCPU, 2 GB RAM, 20 GB HDD An external load balancer may also be used. If you prefer installing the Load Balancer shipped with Expertflow, install it on a separate system. Arbiter may however be co-located with the Load Balancer. If it is preferred to install Arbiter node and Load Balancer on same machine then the specifications of that machine should be 4 vCPU, 4 GB RAM, 50 GB HDD. |
Hybrid Chat | Rasa | Articulate | |
---|---|---|---|
For 3000 maximum chats in the system with integrated BOT | |||
Master node ( site-a ) | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 12 GB RAM, 250 GB HDD |
Slave node ( site-b ) | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 16 GB RAM, 250 GB HDD | 8 vCPU, 12 GB RAM, 250 GB HDD |
Arbiter node ( neutral location ) | 1 vCPU, 2 GB RAM, 20 GB HDD | ||
Load Balancer | 2 vCPU, 2 GB RAM, 20 GB HDD An external load balancer may also be used. If you prefer installing the Load Balancer shipped with Expertflow, install it on a separate system. Arbiter may however be co-located with the Load Balancer. If it is preferred to install Arbiter node and Load Balancer on same machine then the specifications of that machine should be 4 vCPU, 4 GB RAM, 50 GB HDD. |
Software Requirements
- Host Operating System - Cent OS 7
- Docker Community Edition 18+
- Docker Compose 1.26 or above
- Git Client 1.8+
- Mandatory Linux utilities:
wget
curl
Developer Tools installed on the Linux host. (optional)
yum group install "development tools"
- For system monitoring and to assist in troubleshooting, following utilities are recommended.
strace
htop
dstat
atop
sysstat
iftop
nethogs
nmap or ss
tcpdump
- MS SQL (for reports in Cisco CUIC) - Recommended version- Microsoft SQL Server 2014, 2016, or later
- Hardware & software requirements for MS SQL Server 2016/17
- For database replication & high availability, two VMs are required with recommended hardware.
- MS SQL flavour should support TLS 1.2. For TLS 1.2 support, see this Microsoft article.
- Hardware & software requirements for MS SQL Server 2016/17
TLS Certificate Requirements
- Certificates from a valid signing authority or Domain signed certificate required for https protocol support. For applying certificates, see Applying TLS Certificates.
System Access Requirements
- Administrative privileges (root) on the host machine are required to proceed with installation.
System Configuration Requirements
- Setup an FQDN to access Hybrid Chat that should be resolved to the IP address of the host. In HA setup, FQDN of all the nodes should be setup.
Docker daemon service should be configured to auto start on all systems.
systemctl enable docker
Setup Docker log rotation following Docker Logs Retention.
if the logs rotation using above mentioned procedure is not enabled, logs will occupy the whole disk space resulting in unusable system.
Notes for Cisco UCC Integration
- We provide support for both ENH (enhanced) and PRE (premium) licenses
- Cisco Socialminer is not a necessary prerequisite for the Hybrid Chat solution
- All versions of Cisco Contact Center which have Cisco Finesse are supported (9.0 and onward)
Network Requirements
- In HA deployment, network latency can be range between 10ms to 20 ms, where lower is always good to have.
- SocketIO connections remain on polling and even though it tries to switch to WebSocket it doesn't work. This could be due to the a network firewall sitting between chat-server and agent-gadget ( Both Hybrid-Chat components ). Customer environment needs to be configured to upgrade the standard HTTPS communication to Secure WebSockets(WSS), so that the WSS based communication between the agent-gadget and chat-server can be streamlined. This can be achieved by adding/updating the mainstream Firewall configuration like below:
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
This is a snippet from NGINX configuration to upgrade the HTTPS traffic to WSS and can be adapted to other network routing devices.
Mobile version compatibility
Mobile OS | Version |
---|---|
Android | 5.1 to 10 |
Browser Compatibility
Agent Gadget
Browser | Compatibility | Version | Limitations |
---|---|---|---|
Google Chrome |
| - | |
Mozilla Firefox |
| - | |
Internet Explorer |
|
|
Customer Gadget
Browser | Compatibility | Version | Limitations |
---|---|---|---|
Google Chrome |
| - | |
Mozilla Firefox |
| - | |
Safari (OSX) | |||
Safari (Windows) | - | - | |
Internet Explorer |
|
| |
Microsoft Edge |
|
Port Utilisation
For Product Installation
Ports mentioned in this section must be open to install the product.
Source Host | Destination Host / Docker Container | Source Port | Destination Port | Communication Protocol | Scope | Description | |
---|---|---|---|---|---|---|---|
1 | Hybrid Chat Host | ExpertFlow GitLab | any | 443 | HTTPS | public | to clone skeleton project from Gitlab |
2 | Hybrid Chat Host | Expertflow Container Registry | any | 9242 | TCP | public | to clone the repository from a local gitlab over this port. |
For Product connectivity with internal and external components
Ports mentioned in this section should be open for the mentioned product connectivity with different internal and external components.
Source Host | Destination Host / Docker Container | Source Port | Destination Port | Communication Protocol | Scope | Description | |
---|---|---|---|---|---|---|---|
1 | Fb / Viber / Twilio | Reverse Proxy (facing internet) | any | 8443 | HTTPS | public | Third party applications send messages to Hybrid Chat via this port. App-gateway Reverse proxy exposes this port and it must be accessible publicly. |
2 | Web Chat | Reverse Proxy (facing internet) | any | 8443 | HTTPS | public | Web Chat gadget creates full duplex connection with Chat Server via app-gateway Reverse proxy 8443, this port must be accessible publicly for Web Chat to function. |
3 | Agent Gadget | Reverse Proxy (facing LAN) | any | 443 | HTTPS | private | Agent gadget is accessible via 443 and it also creates connection with Chat Server via app-gateway Reverse Proxy over port 443. |
4 | File Engine | Viber APIs via Forward Proxy | any | 3128 | TCP | private | File Engine connects to Viber APIs via forward proxy. |
5 | Customer Channel Manager | FB / Twilio / Viber APIs via Forward Proxy | any | 3128 | TCP | private | Customer Channel Manager sends messages to Facebook, Twilio and Viber via forward proxy |
6 | app-gateway Reverse Proxy Internet Facing Profile | Hybrid Chat Components | any | 8497, 8482, 8451, 8495, 8449 | HTTPS | public | These components are to be accessible publicly in order to facilitate Web Chat & Social Media Platforms integration:
|
7 | app-gateway Reverse Proxy Internet Facing Profile | Chat Server | any | 8444 | HTTPS | public | Customer Gadget creates full duplex connection with Chat Server. Customer Gadget connects to app-gateway over 8443 which translates the connection to 8444 in internal LAN |
8 | app-gateway Reverse Proxy LAN Facing Profile | Hybrid Chat Components | any | 8497, 8447, 8446, 8454, 8482, 8455, 8495, 8449, 8450, 8452, 8448 | HTTPS | private | app-gateway reverse proxy needs connection to following components in order for Agent Gadget, UMM, & Mre Frontend to function:
|
9 | app-gateway Reverse Proxy LAN Facing Profile | Chat Server | any | 8444 | HTTPS | private | Agent Gadget creates full duplex connection with Chat Server. Agent Gadget connects to NGINX over 8443 which translates the connection to 8444 in internal LAN. |
10 | Hybrid Chat Components | MS SQL Server | any | 1433 | TCP | private | MS SQL Server is used to store Hybrid Chat reporting data. |
11 | Customer Channel Manager | SMPP Gateway | any | 2775 | TCP | private | Customer Channel Manager connects to SMPP Gateway for sending/receiving SMS. |
12 | WebRTC | TURN Server | any | 3478 | TCP/UDP | Public | WebRTC connects with Local TURN server using this port. |
13 | WebRTC | TURN Server | any | 49152-49252 | UDP | Public | WebRTC session requests come on these ports of Local TURN server machine. |
For Cisco Finesse integration
See Cisco Finesse Integration with Chat Solution.
Source | Destination | Protocol | Source Port | Destination Port | Description |
---|---|---|---|---|---|
Communication Server | Cisco Finesse | REST via HTTPS | any | Finesse REST API (8445) | Communication Server sends agents state change requests (Voice MRD) for Media Blending to Cisco Finesse. It bypasses SSL certificate verification. For further details, see 2020-04-21_06-35-19_Cisco Finesse integration with Chat Solution. |
User Management Module (UMM) | Cisco Finesse | REST via HTTPS | any | Finesse REST API (8445) | To synchronize the Cisco Finesse agent with UMM. UMM requires Finesse admin credentials to perform this action |
Cisco XMPP Server | Communication Server | XMPP | 5222 (un-secure) | Communication Server subscribes to Finesse XMPP service for all agent state change events. This communication is un-secure and agents Finesse credentials are used to subscribe to XMPP events. |