Configurar y depurar tu red

En este documento, se proporciona información sobre cómo configurar tu red y depurar posibles problemas.

El cliente de la API de WhatsApp Business debe cumplir determinados requisitos de red para poder comunicarse con los servidores de WhatsApp. Lamentablemente, la integración de WhatsApp no es compatible si tu empresa no puede hacer lo que se detalla a continuación.

Entendemos que cada empresa tiene configuraciones de red y preocupaciones con respecto a la seguridad distintas. Ponte en contacto con asistencia directa si este documento no es suficiente para realizar la configuración debido a los requisitos de conectividad o de seguridad especiales que puedas tener.

El cliente de la API de WhatsApp Business requiere una conexión TCP de larga duración. Se realizarán solicitudes ocasionales para evitar que la conexión quede inactiva. Sin embargo, es necesario que te asegures de que ni el firewall, ni el router ni la seguridad, entre otros, interrumpan las conexiones TCP de larga duración.

Puertos

Existen dos puertos para el tráfico saliente:

  • 5222
  • 443

No son puertos de escucha ni se utilizan para el tráfico entrante. El firewall de tu empresa puede seguir protegiéndote del tráfico entrante como siempre lo hace.

El puerto predeterminado para el cliente de la API de WhatsApp Business es 5222. Si ese puerto no está disponible, la app usará el puerto 443 como alternativa. Es necesario que, como mínimo, el puerto 443 esté abierto para HTTPS para registrar y reiniciar apps. Puedes dejar cerrado el puerto 5222 y tener abierto el puerto 443, pero no puedes abrir el 5222 sin abrir el 443.

Se recomienda que abras ambos puertos y permitas todo el tráfico saliente.

Protocolos

El cliente de la API de WhatsApp Business utiliza dos tipos de protocolos:

  • chatd
  • HTTPS

El protocolo de chat de propiedad exclusiva de WhatsApp llamado chatd se utiliza para enviar y recibir información y mensajes cifrados hacia los servidores de WhatsApp y desde estos. Dado que se trata de propiedad exclusiva, es necesario que el puerto que abras esté en una lista de autorizados para el tráfico saliente. Algunos firewalls y proxies finalizan las conexiones no SSL, lo que interfiere con la capacidad de la app de conectarse con los servidores de WhatsApp.

WhatsApp utiliza el HTTPS durante el registro y es necesario que se reinicie. No se recomienda bloquear HTTPS después de efectuar el registro porque no se puede saber cuándo será necesario volver a registrar o reiniciar la app.

Direcciones IP

WhatsApp utiliza una amplia gama de direcciones IP para sus servidores. Puedes intentar permitir todas las direcciones IP. No obstante, es mejor permitir solamente el tráfico saliente y las conexiones de los puertos que se indicaron más arriba.

Direcciones IP y rangos del servidor de WhatsApp (archivo .zip)
(actualizado el 26 de julio de 2022 y vigente a partir del 26 de julio de 2022)

La lista suele sufrir modificaciones. Por este motivo, se recomienda que permitas todo el tráfico saliente del puerto 5222 o 443 para evitar tener que actualizar la lista de autorizados en tu red cada vez que esta cambie.

Nombres de host

Puedes agregar los servidores de WhatsApp a tu lista de autorizados por nombre de host en vez de hacerlo por dirección IP.

Los nombres de host del servidor de WhatsApp a los que es necesario que se conecte el cliente de la API de WhatsApp Business son los siguientes:

  • .*.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

Imágenes de contenedor de Docker

También es necesario que autorices el acceso a nuestro repositorio en JFrog, que es donde alojamos las imágenes del contenedor de Docker para su descarga.

Debes utilizar nombres de host en tu lista de autorizados para JFrog, ya que no es posible proporcionar direcciones IP.

Los nombres de host para JFrog necesarios son:

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

Firewalls

De acuerdo con el firewall y su funcionamiento, es posible que no sirva agregar los nombres de host a la lista de autorizados y que, en cambio, debas añadir todas las direcciones IP existentes a una lista de autorizados.

Estos son algunos ejemplos de firewalls que no funcionan con las lista de autorizados de nombres de host:

  • Firewalls que ejecutan una consulta al DNS que configuraste en tu centro de datos y que usan las IP obtenidas en la lista de autorizados
  • Firewalls que buscan consultas al DNS salientes desde máquinas en el centro de datos y usan las direcciones IP que se ven en la respuesta a la lista de autorizados
  • Firewalls que buscan nombres de host en el protocolo de enlace HTTP/HTTPS

Si el firewall que usas se ajusta a uno de los ejemplos anteriores, debes usar direcciones IP en una lista de autorizados.

Proxies

Configura los proxies de red ajustando las siguientes variables de entorno al indicador que estás utilizando y luego pásalas a la app principal:

  • http_proxy
  • https_proxy

Pruebas con WADebug

La herramienta WADebug permite verificar rápidamente si el contenedor de la app principal tiene acceso a todos los servidores de WhatsApp necesarios. Después de instalar WADebug, solo ejecuta este comando:

  wadebug partial check_network