Este documento fornece informações para a configuração da sua rede e a depuração de possíveis problemas.
Existem alguns requisitos de rede do cliente da WhatsApp Business API para a conexão aos servidores do WhatsApp. Se a empresa não cumprir os requisitos a seguir, não ofereceremos suporte para a integração com o WhatsApp.
Compreendemos que as empresas têm as próprias configurações de rede e preocupações com a segurança. Entre em contato com o Suporte Direto se este documento não contemplar a sua conectividade nem os seus requisitos de segurança.
O cliente da WhatsApp Business API precisa de uma conexão TCP persistente. Para que a conexão não entre em modo ocioso, serão feitas solicitações ocasionais. No entanto, você precisará garantir que a conexão não seja encerrada por um firewall, roteador, requisito de segurança, entre outros.
Estas duas portas são usadas para o tráfego de saída:
5222
443
Elas não acompanham nem são usadas para o tráfego de entrada. O firewall da empresa pode continuar protegendo a rede do tráfego de entrada normalmente.
A porta padrão para o cliente da WhatsApp Business API é a 5222
. Se ela não estiver disponível, o aplicativo fará fallback para a porta 443
. A porta 443
precisa estar aberta para HTTPS
no mínimo para o registro e as reinicializações do aplicativo. Você pode deixar a porta 5222
fechada e a 443
aberta. Entretanto, não é possível fazer o contrário, que seria abrir a porta 5222
e não a 443
.
Recomendamos abrir as duas portas e permitir todo o tráfego de saída.
O cliente da WhatsApp Business API usa dois tipos de protocolos:
chatd
HTTPS
O protocolo de conversa do WhatsApp chatd
é usado para enviar mensagens e informações criptografadas de entrada e saída dos servidores. Por ser de propriedade do WhatsApp, a porta aberta deve estar em uma lista de permissão para todo o tráfego de saída. Alguns firewalls e proxies encerram conexões não SSL, o que interfere na capacidade do aplicativo de se conectar aos servidores do WhatsApp.
O WhatsApp usa HTTPS
durante o registro e as reinicializações. Não é recomendado bloquear o HTTPS
após o registro, porque talvez seja necessário refazer o registro ou reiniciar o aplicativo.
O WhatsApp usa diversos endereços IP para os servidores. Você pode tentar permitir todos os endereços. Entretanto, a melhor medida é simplesmente permitir o tráfego de saída e as conexões das portas mencionadas.
Faixas e endereços IP do servidor do WhatsApp (arquivo .zip)Esta lista pode mudar com frequência. Portanto, para que você não precise alterar a lista de permissão da rede a cada atualização, recomendamos permitir todo o tráfego de saída das portas 5222
ou 443
.
É possível adicionar os servidores do WhatsApp à lista de permissão por nome de host, em vez de endereço IP.
O cliente da WhatsApp Business API precisa de conectividade com os seguintes nomes de host do servidor do WhatsApp:
.*.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
Para baixar as imagens dos contêineres do Docker, é necessário permitir o acesso ao nosso repositório no JFrog, no qual as imagens são hospedadas.
É obrigatório usar nomes de host na lista de permissão para o JFrog, porque os endereços IP não podem ser fornecidos.
Estes são os nomes de host necessários do JFrog:
docker.whatsapp.biz
dl.bintray.com
akamai.bintray.com
Dependendo do firewall utilizado e de como ele funciona, talvez ocorra um erro ao adicionar os nomes de host à lista de permissão. Nesse caso, será preciso incluir todos os endereços IP.
Os seguintes comportamentos de firewall não funcionam com os nomes de host:
HTTP
/HTTPS
.Caso o firewall demonstre um desses comportamentos, use os endereços IP na lista de permissão.
Para configurar os proxies de rede, defina as seguintes variáveis de ambiente do proxy em uso e encaminhe-as ao Coreapp:
http_proxy
https_proxy
Com a ferramenta WADebug, é possível verificar rapidamente se o contêiner do Coreapp tem acesso a todos os servidores necessários do WhatsApp. Com a WADebug instalada, basta executar:
wadebug partial check_network