ZapCall - Manual de Configuracao

WhatsApp SIP Trunk para Asterisk

Versao 1.0 - Julho 2026

Importante: Este manual contem as instrucoes completas para configurar seu WhatsApp como tronco SIP no Asterisk. Siga cada passo cuidadosamente.

1. Pre-requisitos

2. Dados de Conexao

ParametroValor
Servidor ZapCallIP fornecido na ativacao
Porta SIP5060 (UDP)
UsernameSeu numero WhatsApp (ex: 5511999999999)
Secret/PasswordToken fornecido na ativacao
Codecsulaw, alaw, opus

3. Configuracao sip.conf

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>
Substitua IP_DO_SERVIDOR_ZAPCALL pelo IP do servidor fornecido na ativacao.
Substitua SEU_NUMERO_WHATSAPP pelo seu numero completo (ex: 5511999999999).
Substitua SEU_TOKEN pelo token recebido na ativacao.

4. Configuracao extensions.conf

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()

5. Explicacao do Dialplan

6. Configuracao PJSIP (Alternativa)

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

7. Aplicando as Configuracoes

Apos editar os arquivos, reinicie o Asterisk:

asterisk -rx "sip reload"
asterisk -rx "dialplan reload"

# Ou reinicio completo:
asterisk -rx "core restart now"

8. Verificando o Status

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.

9. Testando Chamadas

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

10. Troubleshooting

ProblemaSolucao
Tronco offlineVerifique se o QR Code foi escaneado no WhatsApp. Verifique conectividade com o IP do servidor.
Chamada nao completaVerifique se os codecs estao corretos (ulaw, alaw, opus). Verifique NAT e firewall.
Audio ruimVerifique latencia da rede. Tente usar apenas codec ulaw.
Registro falhaConfira username (numero WhatsApp) e secret (token). Ambos sao case-sensitive.
Sem audioVerifique directmedia=no e nat=force_rport,comedia no sip.conf.

11. Suporte

Email: contato@chatbots.net.br
WhatsApp: 5517998203040
Telegram: @chatbotsnet

ZapCall © 2026 - WhatsApp SIP Trunk - Todos os direitos reservados