eDie Rolle CHAT wird für das Durchführen von Chat-Sessions, ausgehend von externe Webseiten, mit den Agenten verwendet.
Der Chat-Server ist eine Java Anwendung, was parallel auf den Webservern - bei entsprechende RAM Erweiterung um ca. 4 GB pro Server - mit installiert werden kann, oder auf einem separaten Server installiert wird.
Java 8 Installation
In diesem Schritt wird Java 8 auf dem Server installiert.
cd /home/jtel/ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz tar -xvzf jdk-8u131-linux-x64.tar.gz rm -f jdk-8u131-linux-x64.tar.gz chown -R root:root jdk1.8.0_131/ chmod 755 -R jdk1.8.0_131/
ClientMessenger Installieren und Konfigurieren
ClientMessenger Installation
Das Verzeichnis ClientMessenger wird nach /home/jtel kopiert.
cp -R /home/jtel/shared/JTELCarrierPortal/Utils/Install/ClientMessenger/ /home/jtel/ClientMessenger chown -R jtel:jtel /home/jtel/ClientMessenger
Hazelcast Cluster Konfiguration
Die Konfiguration des Hazelcast-Clusters muss geprüft werden. Bei Neuinstallationen von Release 3.11 ab 01.04.2018 sind die Einträge in hazelcast.xml vorhanden, davor hingegen nicht.
- Zum einen, wird der Chat-Server als Member im Cluster aufgenommen.
Zum anderen werden die CHAT Buffer und Counter der Konfiguration - falls nicht vorhanden - hinzugefügt.
Die notwendigen Konfigurationsabschnitte in hazelcast.xml sind hier aufgeführt:
... <tcp-ip enabled="true"> ... <member>CHATSERVER</member> </tcp-ip> ... <ringbuffer name="CHAT"> <in-memory-format>BINARY</in-memory-format> <backup-count>1</backup-count> <async-backup-count>0</async-backup-count> <time-to-live-seconds>60</time-to-live-seconds> <capacity>500</capacity> </ringbuffer> <map name="CHATCOUNTERS"> <backup-count>0</backup-count> <async-backup-count>1</async-backup-count> <time-to-live-seconds>600</time-to-live-seconds> <eviction-policy>LRU</eviction-policy> <max-size policy="PER_NODE">5000</max-size> </map>
Sämtliche Rechner im Hazelcast-Cluster betrachten:
- Rolle DATA, DB-Master
- hazelcast.xml updaten
- updatepl.sh ausführen
- Rolle TEL
- hazelcast.xml updaten
- PlatformUDPListener neu starten
- Rolle WEB
- hazelcast.xml updaten
updatejb.sh ausführen
- Rolle CHAT (das System, was gerade installiert wird!)
- hazelcast.xml am besten kopieren
ClientMessenger als Daemon Prozess installieren
Falls die Repositories auf einer Windows Maschine liegen (dies kann nur alte Installationen betreffen), muss der Start-Skript /etc/init.d/jtel-clientmessenger vorher repariert werden, damit aus CR+LF nur LF wird.
sed -i -e 's/\r//g' /home/jtel/ClientMessenger/init.d/jtel-clientmessenger
Die Konfiguration, bzw. die Startdatei jtel-clientmessenger muss ggf. angepasst werden, damit die Datenbank-Verbindung aufgebaut werden kann.
... -Dde.jtel.platform.clientmessenger.connection=jdbc:mysql://acd-dbm/JTELWeb?user=root\&password=fireball\&characterEncoding=utf8 \ ...
Anschließend, wird der Prozess als Linux Daemon installiert:
cd /home/jtel/ cp /home/jtel/ClientMessenger/init.d/jtel-clientmessenger /etc/init.d/ chmod 755 /etc/init.d/jtel-clientmessenger chkconfig jtel-clientmessenger on service jtel-clientmessenger start
Update Skript anlegen
Für das Updaten des Chat-Servers wird ein Update-Skript angelegt:
cat <<EOFF>/usr/local/bin/updatesc.sh #!/bin/bash service jtel-clientmessenger stop cp /home/jtel/shared/JTELCarrierPortal/Utils/Install/ClientMessenger/bin/* /home/jtel/ClientMessenger/bin chown -R jtel:jtel /home/jtel/ClientMessenger service jtel-clientmessenger start EOFF chmod +x /usr/local/bin/updatesc.sh
Firewall Konfiguration
Als nächstes müssen in der Firewall die Port-Freigaben für den Chat Dienst eingetragen und persistent gespeichert werden. Hierbei kann unterschieden werden, ob http (sprich unsecure websocket) oder https (secure websocket) genutzt wird.
Da der Load-Balancer den https üblicherweise entschlüsselt, muss bei https nur der Port 3003 auf den Load-Balancer geöffnet werden.
Firewall Konfiguration http
Folgende Befehle, auf folgende Maschinen ausführen:
- Auf CHAT Server (hier der Chat-Port sowie die Hazelcast Cluster Ports)
firewall-cmd --zone=public --add-port=5701-5801/tcp --permanent firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --reload
- Auf alle LB - bei http Verbindung nach Aussen
firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --reload
Firewall Konfiguration https
- Auf alle LB - bei https Verbindung nach Aussen
firewall-cmd --zone=public --add-port=3003/tcp --permanent firewall-cmd --reload
Firewall Centos 6
service iptables status iptables -I INPUT 4 -p tcp -m tcp --dport 5701:5801 -j ACCEPT iptables -I INPUT 4 -p tcp -m tcp --dport 3000:3003 -j ACCEPT service iptables save service iptables restart
Load Bala
Load Balancer Konfiguration
haproxy.cfg Anpassungen
Für http
Folgende Anpassungen werden am haproxy vorgenommen, bei einer http Verbindung für den Chat nach Aussen:
frontend acdportal_chat_ws mode http bind :3000 timeout client 1d default_backend backend_chat_ws backend backend_chat_ws mode http balance leastconn # roundrobin server chatserver1 <ip_addresse_oder_name>:3000 weight 1 check inter 1m server chatserver2 <ip_addresse_oder_name>:3000 weight 1 check inter 1m
Für https
frontend acdportal_chat_wss mode http bind :3003 ssl crt /etc/haproxy/haproxy.pem timeout client 1d default_backend backend_chat_ws backend backend_chat_ws mode http balance leastconn # roundrobin server chatserver1 <ip_addresse_oder_name>:3000 weight 1 check inter 1m server chatserver2 <ip_addresse_oder_name>:3000 weight 1 check inter 1m
Haproxy neu laden
Anschließend, den haproxy neu laden mit folgenden Befehl:
service haproxy reload
Chat Konfiguration
Parameter (als sysadmin)
Für https / wss
ACD.Chat.Script.Library.URL | https://<load-balancer>:3003/gui/ |
ACD.Chat.Server.Base.URL | wss://<load-balancer>:3003 |
Für http / ws
ACD.Chat.Script.Library.URL | https://<load-balancer>:3000/gui/ |
ACD.Chat.Server.Base.URL | wss://<load-balancer>:3000 |
Status
Ein entsprechender Agentenstatus für "Chat" - oder einen vorhandenen Status - muss konfiguriert werden, sodass der Chat an den Agenten verteilt wird:
Max Chats pro Agent
Die maximale Anzahl an parallele Chats pro Agent muss konfiguriert werden. Dieser Wert ist standardmäßig bei allen Agenten auf 0 eingestellt.