Le rôle de CHAT est utilisé pour mener des sessions de chat avec des agents de sites web externes. Le serveur de chat est une application Java, qui peut être installée en parallèle sur les serveurs web - avec une extension de RAM correspondante d'environ 4 Go par serveur - ou installée sur un serveur séparé. Installation de Java 8Dans cette étape, Java 8 est installé sur le serveur. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Installation java 8 |
---|
| yum -y install https://cdn.jtel.de/downloads/java/jdk-8u202-linux-x64.rpm |
|
Installation et configuration de ClientMessengerInstallation ClientMessengerLe répertoire ClientMessenger est copié dans /home/jtel. Translations Ignore |
---|
Code Block |
---|
| cp -R /home/jtel/shared/JTELCarrierPortal/Utils/Install/ClientMessenger/ /home/jtel/ClientMessenger chown -R jtel:jtel /home/jtel/ClientMessenger |
|
Hazelcast Configuration des clustersLa configuration de la grappe Hazelcast doit être vérifiée. Pour les nouvelles installations de la version 3.11 à partir du 1er avril 2018, les entrées dans hazelcast.xml sont disponibles, mais pas avant. Les sections de configuration nécessaires dans hazelcast.xml sont énumérées ici Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | hazelcast.xml |
---|
| ... <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> |
|
Voir tous les ordinateurs du claster Hazelcast : - Rôle DONNÉES, DB maître
- Mise mise à jour hazelcast.xml
- éxécuter updatepl.sh
- Rôle TEL
- Mise mise à jour hazelcast.xml
- redémarrer PlatformUDPListener
- Rôle WEB
- Mise mise à jour hazelcast.xml
éxécuter updatejb.sh
- Rôle CHAT (le système qui est en cours d'installation !)
- il est préférable de copier hazelcast.xml
Installer ClientMessenger comme un processus de démonSi les dépôts sont situés sur une machine Windows (cela ne peut concerner que les anciennes installations), le script de démarrage /etc/init.d/jtel-clientmessenger doit être réparé avant, de sorte que CR+LF devient seulement LF. Translations Ignore |
---|
Code Block |
---|
| sed -i -e 's/\r//g' /home/jtel/ClientMessenger/init.d/jtel-clientmessenger |
|
La configuration ou le fichier de démarrage jtel-clientmessenger peut devoir être adapté afin que la connexion à la base de données puisse être établie. Ici <password> , <mot de passe> doit être remplacé par le mot de passe de l'utilisateur root de la base de données : Translations Ignore |
---|
Code Block |
---|
title | vi /home/jtel/ClientMessenger/init.d/jtel-clientmessenger |
---|
| ... -Dde.jtel.platform.clientmessenger.connection=jdbc:mysql://acd-dbm/JTELWeb?user=root\&password=<password>\&characterEncoding=utf8 \ ... |
|
Ensuite, le processus est installé comme un démon Linux : Translations Ignore |
---|
Code Block |
---|
| 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 |
|
Créer un script de mise à jourUn script de mise à jour est créé pour mettre à jour le serveur de chat : Translations Ignore |
---|
Code Block |
---|
| 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 |
|
Configuration du Parepare-feuEnsuite, la Ouvrir Les ports du service de chat doivent être saisis dans le pare-feu et sauvegardés de façon permanente. Vous pouvez distinguer ici si http (speak unsecure websocket) ou https (secure websocket) est utilisé. Comme l'équilibreur de charge décrypte généralement le https, pour le https, seul le port 3003 doit être ouvert à l'équilibreur de charge. Configuration http du Pare-feuExécutez les commandes suivantes, sur les machines suivantes : - Sur le serveur CHAT (ici le port de chat et les ports de cluster Hazelcast Cluster)
Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | configure firewall - http |
---|
| firewall-cmd --zone=public --add-port=5701-5801/tcp --permanent firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --reload |
|
- Sur tous les LB - avec connexion http vers l'extérieur
Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | configure firewall - http |
---|
| firewall-cmd --zone=public --add-port=3000/tcp --permanent firewall-cmd --reload |
|
Firewall configuration https- Sur tous les LB - avec connexion https vers l'extérieur
Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | configure firewall - https |
---|
| firewall-cmd --zone=public --add-port=3003/tcp --permanent firewall-cmd --reload |
|
Firewall Centos 6 Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | configure firewall - https |
---|
| 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 |
|
Configuration de l'équilibreur de chargeRéglages réglages du haproxy.cfgFor httpLes ajustements suivants sont effectués sur l'haproxy, en cas de connexion http pour le chat vers l'extérieur : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | haproxy.cfg - http / ws |
---|
| 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 |
|
For httpshttp Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | haproxy.cfg - https / wss |
---|
| 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 |
|
Recharger l'haproxieEnsuite, rechargez l'haproxy avec la commande suivante : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | reload haproxy |
---|
| service haproxy reload |
|
Configuration ChatParamètres (en tant que sysadmin)Pour https / wssACD.Chat.Script.Library.URL | https://<load-balancer>:3003/gui/ | ACD.Chat.Server.Base.URL | wss://<load-balancer>:3003 |
Pour https / wsACD.Chat.Script.Library.URL | https://<load-balancer>:3000/gui/ | ACD.Chat.Server.Base.URL | ws://<load-balancer>:3000 |
StatutUn statut d'agent approprié pour le "Chat" - ou un statut existant - doit être configuré de manière à ce que le chat soit distribué à l'agent :
Nombre maximum de chats par agentLe nombre maximum de chats parallèles par agent doit être configuré. Cette valeur est fixée à 0 par défaut pour tous les agents.
Configurations supplémentaires pour WhatsAppPour que What's App fonctionne, d'autres configurations doivent encore être effectuées. Remarque : la création du compte professionnel WhatsApp ou la connexion au fournisseur (actuellement TynTec) se fait directement avec le fournisseur. Warning |
---|
| L'équilibreur de charge doit être utilisé avec https et un certificat valide. |
Configuration supplémentaire dans jtel-clientmessengerLe paramètre DATADIR doit être vérifié. Il doit indiquer soit le /srv/jtel/shared/Data/Clients/ s'il est hébergé directement sur le serveur de chat, ou /home/jtel/shared/Data/clients/ si le serveur a mis le répertoire en mode "mooted". Translations Ignore |
---|
Code Block |
---|
DATADIR="/home/jtel/shared/Data/clients/" |
|
Configurations supplémentaires sur l'équilibreur de chargeDes entrées supplémentaires sont nécessaires dans la zone frontale du portail : Translations Ignore |
---|
Code Block |
---|
frontend acdportal_https ... acl whatsapp_req path /incoming acl whatsapp_req path /delivery ... use_backend backend_chat_ws if whatsapp_req |
|
Paramètres supplémentairesLes paramètres suivants du système doivent être vérifiés dans le portail : Paramètre | Valeur | Commentaire |
---|
ACD.Whatsapp.Server.Base.URL | https://jtel-portal:3003 | L'URL utilisée par l'agent client pour permettre à l'agent de répondre aux messages. Ce problème doit être résolu depuis tous les postes de travail de l'agent vers une URL valide via le DNS, et est dirigé vers le serveur de chat via l'haproxy. | ACD.Whatsapp.Whatsapp.Url | https://jtel-portal:3003 | L'URL utilisée par le monde extérieur (utilisateurs de WhatsApp) pour télécharger les pièces jointes des messages. Ce problème doit être résolu depuis Internet vers une URL valide via le DNS, et est dirigé vers le serveur de chat via l'haproxy. | ACD.Whatsapp.Tyntec.Url | https://api.tyntec.com/chat-api/v2/messages | L'URL de l'API TynTec pour WhatsApp. |
Personnaliser les points d'extrémité de l'API TynTecIl peut être nécessaire d'ajuster les points terminaux de l'API vers lesquels les messages sont envoyés. Actuellement, TynTec n'offre pas la possibilité de le faire via une configuration web, cela doit être fait via un appel REST. La façon la Le moyen le plus simple est de le faire est d'utiliser Postmanfaire appel au facteur. Les paramètres suivants sont requis, les deux URL de rappel sont ajustés en fonction du point final du système. Paramètres | Valeur |
---|
URL | https://api.tyntec.com/chat-api/v2/applications/default | Type de demande | PATCH | Autorisation | apikey Valeur = la clé API générée par Tyntec | Entêtes Supplémentaires | Accepter application/problem+json | Entêtes Supplémentaires | Type de contenu application/json | Corps |
Translations Ignore |
---|
{ "webhooks": [ { "events": [ "MoMessage" ], "callbackUrl": "https://jtel-portal/incoming" }, { "events": [ "MessageStatus::accepted", "MessageStatus::delivered", "MessageStatus::seen", "MessageStatus::failed", "MessageStatus::channelFailed", "MessageStatus::deleted", "WhatsAppGroupEvent::userJoined", "WhatsAppGroupEvent::userLeft", "WhatsAppGroupEvent::subjectChanged", "WhatsAppGroupEvent::descriptionChanged" ], "callbackUrl": "https://jtel-portal/delivery" } ] } |
|
Configuration du connecteur de chatLes paramètres supplémentaires suivants sont configurés dans le Chat Connector : - La case à cocher "Whatsapp" est activée.
- La clé API TynTec est saisie.
- Le numéro de téléphone est saisi au format E.164.
- La langue utilisée pour les réponses automatiques Whatsapp
|