Configurer et débuguer votre réseau

Ce document indique comment configurer le réseau et résoudre les éventuels problèmes.

Vous devez configurer certains paramètres réseau pour connecter le client de l’API WhatsApp Business aux serveurs WhatsApp. Si la configuration ci-dessous ne peut être mise en place dans votre entreprise, il est malheureusement impossible d’intégrer WhatsApp.

Nous comprenons que les configurations réseau et les préoccupations en matière de sécurité varient d’une entreprise à l’autre. Contactez l’assistance directe si ce document n’est pas suffisant pour votre configuration en raison d’exigences spécifiques de connectivité ou de sécurité en vigueur dans votre environnement.

L’API WhatsApp Business nécessite une connexion TCP longue durée. Des demandes seront envoyées occasionnellement afin que la connexion reste active. Néanmoins, vous devez vérifier que rien ne vient interrompre les connexions TCP longue durée (pare-feu, routeur, sécurité, etc.).

Ports

Le trafic sortant utilise deux ports :

  • 5222
  • 443

Ils n’écoutent pas le trafic entrant et ne sont pas utilisés pour ce dernier. Ainsi, vous pouvez toujours protéger le trafic entrant avec le pare-feu de votre entreprise.

Le port par défaut pour le client de l’API WhatsApp Business est 5222. Si ce port n’est pas disponible, l’application se replie sur le port 443. Le port 443 doit au moins être ouvert pour HTTPS afin d’autoriser l’inscription et les redémarrages de l’application. Vous pouvez laisser le port 5222 fermé pendant que le port 443 est ouvert, mais pas l’inverse. Le port 5222 ne peut être ouvert pendant que le port 443 est fermé.

Nous vous recommandons d’ouvrir les deux ports et d’autoriser tous les trafics sortants.

Protocoles

L’API WhatsApp Business utilise deux types de protocoles :

  • chatd
  • HTTPS

WhatsApp utilise son protocole de discussion propriétaire chatd pour échanger les informations et messages chiffrés avec les serveurs WhatsApp. Le protocole étant propriétaire, le port que vous ouvrez doit être sur une liste d’éléments autorisés pour tous les trafics sortants. Certains pare-feu et proxys interrompent les connexions hors protocole SSL, empêchant l’application de se connecter aux serveurs WhatsApp.

WhatsApp utilise HTTPS pendant l’inscription et pour les redémarrages. Nous vous déconseillons de bloquer HTTPS après l’inscription, car vous pouvez à tout moment être amené·e à réinscrire ou redémarrer votre application.

Adresses IP

WhatsApp utilise un grand nombre d’adresses IP pour ses serveurs. Vous pouvez essayer d’autoriser toutes les adresses IP. Toutefois, il est préférable d’autoriser uniquement l’ensemble du trafic sortant et des connexions intervenant sur les ports ci-dessus.

Adresses IP et plages d’adresses IP de serveurs WhatsApp (fichier au format .zip)
(mise à jour le 26 juillet 2022 et applicable à partir de cette date)

Cette liste peut être souvent mise à jour. Par conséquent, nous vous recommandons d’autoriser tout le trafic sortant des ports 5222 ou 443 afin de ne pas avoir à modifier la liste d’éléments autorisés sur votre réseau à chaque mise à jour.

Noms d’hôtes

À la place des adresses IP, vous pouvez utiliser les noms d’hôtes des serveurs WhatsApp pour les ajouter à votre liste d’éléments autorisés.

Le client de l’API WhatsApp Business nécessite une connexion au serveur WhatsApp via les noms d’hôtes suivants :

  • .*.cdn.whatsapp.net
  • g.whatsapp.net
  • graph.facebook.com
  • graph.whatsapp.com
  • media-.*.cdn.whatsapp.net
  • media..*.fna.whatsapp.net
  • mmg.whatsapp.net
  • pps.whatsapp.net
  • static.whatsapp.net
  • v.whatsapp.net

Images des conteneurs Docker

Vous devez également autoriser l’accès à notre référentiel dans JFrog où nous hébergeons les images des conteneurs Docker en vue de les télécharger.

Pour ajouter JFrog à votre liste d’éléments autorisés, vous devez utiliser les noms d’hôtes, car les adresses IP sont indisponibles.

Les noms d’hôtes nécessaires pour JFrog sont :

  • docker.whatsapp.biz
  • dl.bintray.com
  • akamai.bintray.com

Pare-feu

En fonction de votre pare-feu et de son fonctionnement, il se peut que l’ajout de noms d’hôtes à une liste d’éléments autorisés ne fonctionne pas et que vous ayez plutôt besoin d’ajouter toutes les adresses IP à une liste d’éléments autorisés.

Exemples de comportements de pare-feu qui ne fonctionnent pas avec une liste d’éléments autorisés comprenant uniquement des noms d’hôtes :

  • Pare-feu qui exécutent une requête DNS (pour le serveur DNS configuré dans votre data center) et qui utilisent les adresses IP de la liste autorisée
  • Pare-feu qui recherchent les requêtes DNS sortantes des ordinateurs du data center et qui utilisent les adresses IP visibles dans la réponse à la liste autorisée
  • Pare-feu qui recherchent les noms d’hôtes dans la négociation HTTP/HTTPS.

Si vous observez l’un de ces comportements sur votre pare-feu, utilisez les adresses IP de votre liste d’éléments autorisés.

Proxys

Pour configurer les proxys réseau, définissez les variables d’environnement suivantes sur le proxy que vous utilisez, puis transmettez-les à Coreapp :

  • http_proxy
  • https_proxy

Procédure de test avec WADebug

L’outil WADebug permet de vérifier rapidement si le conteneur Coreapp a accès à tous les serveurs WhatsApp requis. Lorsque WADebug est installé, il suffit d’exécuter :

  wadebug partial check_network