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 BOT8 vCPU, 16 GB RAM, 250 GB HDD8 vCPU, 16 GB RAM, 250 GB HDD8 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 HDD4 vCPU, 8 GB RAM, 150 GB HDD4 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 HDD8 vCPU, 16 GB RAM, 250 GB HDD8 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 
    • MS SQL flavour should support TLS 1.2. For TLS 1.2 support, see this Microsoft article.

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

  1. In HA deployment, network latency can be range between 10ms  to 20 ms, where lower is always good to have.
  2. 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


BrowserCompatibilityVersionLimitations

Google Chrome

(tick)
  •  86.0.4240.75 (64-bit)
-
Mozilla Firefox(tick)
  •  81.0.2 (64-bit)
-
Internet Explorer         (tick)
  •  11.508.19041.0 
  1. Browser Notifications are not supported by IE
  2. Some GUI issues are expected
  3. In Internet Options>General>Settings>Temporary Internet settings, under "Check for newer versions of stored pages", following option must be selected:
    "Every time I visit the webpage".

Customer Gadget


BrowserCompatibilityVersionLimitations

Google Chrome

(tick)
  •  86.0.4240.75 (64-bit)
-
Mozilla Firefox(tick)
  • 81.0.2 (64-bit)
-
Safari (OSX)(error)


Safari (Windows)(error)--
Internet Explorer(tick)
  •  11.508.19041.0 
  1. Browser Notifications are not supported by IE
  2. Some Emoji icons may not be visible.
  3. In Internet Options>General>Settings>Temporary Internet settings, under "Check for newer versions of stored pages", following option must be selected:
    "Every time I visit the webpage".
Microsoft Edge(tick)
  • 86.0.622.38 (64-bit)




Port Utilisation

For Product Installation

Ports mentioned in this section must be open to install the product. 


Source HostDestination Host / Docker ContainerSource PortDestination PortCommunication ProtocolScopeDescription
1Hybrid Chat HostExpertFlow GitLabany443HTTPSpublic

to clone skeleton project from Gitlab

2Hybrid Chat HostExpertflow Container Registryany9242TCPpublicto 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 HostDestination Host / Docker ContainerSource PortDestination PortCommunication ProtocolScopeDescription
1Fb / Viber / TwilioReverse Proxy (facing internet)any8443HTTPSpublic

Third party applications send messages to Hybrid Chat via this port. App-gateway Reverse proxy exposes this port and it must be accessible publicly.

2Web ChatReverse Proxy (facing internet)any8443HTTPSpublicWeb 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.
3Agent GadgetReverse Proxy (facing LAN)any443HTTPSprivateAgent gadget is accessible via 443 and it also creates connection with Chat Server via app-gateway Reverse Proxy over port 443.
4File EngineViber APIs via Forward Proxyany3128TCPprivateFile Engine connects to Viber APIs via forward proxy.
5Customer Channel ManagerFB / Twilio / Viber APIs via Forward Proxyany3128TCPprivateCustomer Channel Manager sends messages to Facebook, Twilio and Viber via forward proxy
6app-gateway Reverse Proxy Internet Facing ProfileHybrid Chat Componentsany8497, 8482, 8451, 8495, 8449HTTPSpublicThese components are to be accessible publicly in order to facilitate Web Chat & Social Media Platforms integration:
  1. Easy Announcements & Business Calendars
  2. Customer Channel Manager
  3. File Engine
  4. Customer Gadget
  5. ECM


7app-gateway Reverse Proxy Internet Facing ProfileChat Serverany8444HTTPSpublic 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
8app-gateway Reverse Proxy LAN Facing ProfileHybrid Chat Componentsany8497, 8447, 8446, 8454, 8482, 8455, 8495, 8449, 8450, 8452, 8448HTTPSprivate

app-gateway reverse proxy needs connection to following components in order for Agent Gadget, UMM, & Mre Frontend to function:

  1. Mre, Mre Microservice, Mre UI
  2. ECM, ECM Frontend
  3. Easy Announcements & Business Calendars
  4. Customer Channel Manager
  5. File Engine
  6. Agent Gadget, Customer Gadget
  7. Database Connector
  8. Knowledgebase
  9. User Management
9app-gateway Reverse Proxy LAN Facing ProfileChat Serverany8444HTTPSprivateAgent Gadget creates full duplex connection with Chat Server. Agent Gadget connects to NGINX over 8443 which translates the connection to 8444 in internal LAN.
10Hybrid Chat ComponentsMS SQL Serverany1433TCPprivateMS SQL Server is used to store Hybrid Chat reporting data.
11Customer Channel ManagerSMPP Gatewayany2775TCPprivateCustomer Channel Manager connects to SMPP Gateway for sending/receiving SMS.
12WebRTC TURN Serverany3478TCP/UDPPublic WebRTC connects with Local TURN server using this port.
13WebRTCTURN Serverany49152-49252UDPPublicWebRTC session requests come on these ports of  Local TURN server machine.


For Cisco Finesse integration

See Cisco Finesse Integration with Chat Solution.

SourceDestinationProtocolSource PortDestination PortDescription
Communication ServerCisco FinesseREST via HTTPSanyFinesse 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 FinesseREST via HTTPSanyFinesse REST API (8445)

To synchronize the Cisco Finesse agent with UMM. UMM requires Finesse admin credentials to perform this action

Cisco XMPP ServerCommunication ServerXMPP
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.


(lightbulb) Time Synchronization

Communication between Chat Solution, client applications, Cisco Finesse and external reporting carry timestamps. If the system dates and time are not synchronized the system can produce unpredictable results. Therefore, please make every effort to adhere to the following time synchronization guidelines:

Chat Solution, client applications, Cisco Finesse and external reporting database  should have their Time Zone and time configured properly according to the geographic region and synchronized. To configure the time zone, please see the instructions from the hardware or software manufacturer of NTP server. Client applications and EF Connector should be synchronized to the second. This synchronization should be maintained continuously and validated on a regular basis. For security reasons, Network Time Protocol (NTP) V 4.1+ is recommended.