WhatsApp SIP Trunk para Asterisk
Versao 1.0 - Julho 2026
| Parametro | Valor |
|---|---|
| Servidor ZapCall | IP fornecido na ativacao |
| Porta SIP | 5060 (UDP) |
| Username | Seu numero WhatsApp (ex: 5511999999999) |
| Secret/Password | Token fornecido na ativacao |
| Codecs | ulaw, alaw, opus |
Adicione as seguintes linhas ao final do arquivo /etc/asterisk/sip.conf:
; ======================================== ; ZapCall WhatsApp SIP Trunk ; ======================================== [zapcall](!) type=peer host=IP_DO_SERVIDOR_ZAPCALL port=5060 context=from-zapcall disallow=all allow=ulaw allow=alaw allow=opus dtmfmode=rfc2833 qualify=yes nat=force_rport,comedia directmedia=no insecure=port,invite [zapcall-trunk](zapcall) username=SEU_NUMERO_WHATSAPP secret=SEU_TOKEN fromuser=SEU_NUMERO_WHATSAPP callerid="ZapCall" <SEU_NUMERO_WHATSAPP>
IP_DO_SERVIDOR_ZAPCALL pelo IP do servidor fornecido na ativacao.SEU_NUMERO_WHATSAPP pelo seu numero completo (ex: 5511999999999).SEU_TOKEN pelo token recebido na ativacao.
Adicione ao final do arquivo /etc/asterisk/extensions.conf:
; ========================================
; ZapCall WhatsApp Dialplan
; ========================================
[from-zapcall]
; Chamadas recebidas do WhatsApp
exten => _X.,1,NoOp(Chamada WhatsApp recebida)
same => n,Set(CALLERID(num)=${CUT(CALLERID(num),@,1)})
same => n,Dial(SIP/100,60,tT)
same => n,VoiceMail(100@default,u)
same => n,Hangup()
[internal]
; Adicione esta rota para chamadas de saida via WhatsApp
exten => _8ZXXXXXXXX,1,NoOp(Chamada via WhatsApp)
same => n,Dial(SIP/zapcall-trunk/${EXTEN})
same => n,Hangup()
8 + numero com DDD. Exemplo: 81199999999 para ligar para (11) 99999-9999.numero@s.whatsapp.net. O comando CUT remove o dominio.Se seu Asterisk utiliza PJSIP, adicione ao /etc/asterisk/pjsip.conf:
[zapcall] type=endpoint context=from-zapcall disallow=all allow=ulaw allow=alaw allow=opus dtmf_mode=rfc2833 [zapcall] type=aor contact=sip:SEU_NUMERO_WHATSAPP@IP_DO_SERVIDOR_ZAPCALL:5060 [zapcall] type=auth auth_type=userpass username=SEU_NUMERO_WHATSAPP password=SEU_TOKEN [zapcall] type=identify endpoint=zapcall match=IP_DO_SERVIDOR_ZAPCALL
Apos editar os arquivos, reinicie o Asterisk:
asterisk -rx "sip reload" asterisk -rx "dialplan reload" # Ou reinicio completo: asterisk -rx "core restart now"
Para verificar se o tronco esta registrado:
asterisk -rx "sip show peers" | grep zapcall asterisk -rx "sip show registry"
Voce deve ver o status OK e o ping em ms.
Receber: Peca para alguem ligar para seu WhatsApp. O Asterisk deve receber a chamada no contexto from-zapcall.
Fazer: Do seu ramal, disque o prefixo de saida configurado + numero desejado.
asterisk -rvvv # Voce vera os logs das chamadas em tempo real
| Problema | Solucao |
|---|---|
| Tronco offline | Verifique se o QR Code foi escaneado no WhatsApp. Verifique conectividade com o IP do servidor. |
| Chamada nao completa | Verifique se os codecs estao corretos (ulaw, alaw, opus). Verifique NAT e firewall. |
| Audio ruim | Verifique latencia da rede. Tente usar apenas codec ulaw. |
| Registro falha | Confira username (numero WhatsApp) e secret (token). Ambos sao case-sensitive. |
| Sem audio | Verifique directmedia=no e nat=force_rport,comedia no sip.conf. |
Email: contato@chatbots.net.br
WhatsApp: 5517998203040
Telegram: @chatbotsnet
ZapCall © 2026 - WhatsApp SIP Trunk - Todos os direitos reservados