NexaChat AjudaAbrir o painel

Ajuda › Conectar o PABX do seu provedor

Conectar o PABX do seu provedor

Cada empresa usa o próprio PABX. O NexaChat se registra nele como ramal WebRTC e escuta os eventos de chamada para mostrar quem está ligando e registrar tudo. Tudo é configurado em Telefonia › PABX da empresa (administradores).

Como funciona (e por que é seguro)#

Checklist do que o PABX precisa#

  1. WebRTC/WSS ativo (WebSocket seguro, geralmente na porta 8089/TCP).
  2. Certificado TLS válido (autoridade pública, com o nome do domínio do PABX). Certificado autoassinado não funciona.
  3. Ramais com WebRTC e a mesma senha cadastrada no NexaChat.
  4. TURN (recomendado), por exemplo o coturn.
  5. Firewall: libere o WSS (ex.: 8089/TCP) para a internet (ou para o IP do NexaChat, no caso do WSS) e a faixa RTP (ex.: 10000–20000/UDP) para os atendentes.
  6. Para eventos: um usuário AMI de permissão mínima ou o webhook assinado.

Depois de preencher, use os botões Testar conexão com o PABX, Testar ramal (em Ramais) e Testar AMI. As mensagens explicam o que falta (certificado, senha, porta, DNS…).

Passo a passo — Asterisk (PJSIP)#

No pjsip.conf:

[transport-wss]
type=transport
protocol=wss
bind=0.0.0.0

[1001]
type=endpoint
context=from-internal
disallow=all
allow=opus,ulaw,alaw
webrtc=yes
auth=1001
aors=1001

[1001]
type=auth
auth_type=userpass
username=1001
password=SENHA-FORTE

[1001]
type=aor
max_contacts=5
remove_existing=yes

No http.conf (certificado válido do domínio do PABX):

[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/etc/asterisk/keys/fullchain.pem
tlsprivatekey=/etc/asterisk/keys/privkey.pem

No NexaChat: Endereço WSS = wss://pabx.seuprovedor.com.br:8089/ws e Domínio SIP = o domínio do ramal (o mesmo realm do PABX).

Em versões do Asterisk sem a opção webrtc=yes, use use_avpf=yes, media_encryption=dtls, dtls_auto_generate_cert=yes, ice_support=yes, rtcp_mux=yes, media_use_received_transport=yes e dtls_verify=fingerprint/dtls_setup=actpass no endpoint.

Issabel e FreePBX#

Os nomes dos menus mudam entre versões; confira na sua instalação.

  1. Certificado válido: gere um certificado (por exemplo Let’s Encrypt) em Admin › Certificate Manager (FreePBX) e associe-o ao servidor web/HTTPS do PABX.
  2. HTTP/WSS: em Settings › Asterisk SIP Settings (FreePBX 15/16, aba Chan PJSIP), ative o transporte WSS (porta 8089) e selecione o certificado.
  3. Ramal: crie um ramal PJSIP e, em Avançado, ative AVPF, ICE Support, RTCP Mux e Media Encryption = DTLS (ou use o modelo “WebRTC” do módulo, quando existir). Anote o número e a senha (secret).
  4. Issabel 4 (mais antigo) pode exigir ajustes manuais em arquivos *_custom.conf e certificado instalado à mão.
  5. No NexaChat, cadastre o ramal em Telefonia › Ramais com a mesma senha.

PABX em nuvem#

Provedores de PABX em nuvem costumam oferecer ramal WebRTC/WSS com endereço e senha prontos: copie o endereço WSS, o domínio SIP e crie o ramal. Para os eventos, use o webhook (abaixo) se o provedor permitir enviar notificações de chamada.

Eventos: AMI (Asterisk / Issabel / FreePBX)#

Crie no manager.conf um usuário de permissão mínima, só para o IP do NexaChat:

[general]
enabled=yes
port=5038
bindaddr=0.0.0.0

[nexachat]
secret=OUTRA-SENHA-FORTE
deny=0.0.0.0/0.0.0.0
permit=IP_DO_SERVIDOR_NEXACHAT/255.255.255.255
read=call,cdr,agent
write=originate

Eventos: webhook assinado (PABX em nuvem)#

Em Telefonia › PABX, gere o segredo do webhook. O seu PABX/serviço envia um POST JSON para a URL mostrada:

BODY='{"event":"answered","call_id":"123","direction":"inbound","from":"11988887777","extension":"1001"}'
TS=$(date +%s)
SIG="sha256=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$SEGREDO" -hex | sed 's/^.* //')"
curl -X POST "$URL" -H "Content-Type: application/json" \
  -H "X-Nexa-Timestamp: $TS" -H "X-Nexa-Signature: $SIG" -d "$BODY"

Gravação e LGPD#

O NexaChat não grava no navegador. Se o PABX grava, informe o link modelo (https://pabx/gravacoes/{id}) e o histórico mostra o link. Avise o cliente da gravação (no próprio PABX/URA) e defina por quanto tempo guarda. A tela de configuração pede a confirmação do aviso de LGPD antes de conectar o AMI.

Problemas comuns#