📘 Manual Interno 01: Tronco SIP Nvoip no Asterisk, Issabel & FreePBX
🛡️ Sentinel Status
- Classificação: Manual Técnico Operacional
- Escopo: Telefonia IP, PABX IP, Roteamento SIP e Interconexão com Nvoip
- Servidores Alvo: Asterisk 16 / 18 / 20, Issabel PBX, FreePBX 15 / 16, Elastix
- Host Oficial Nvoip:
app.nvoip.com.br(Porta 5060 UDP)
1. Visão Geral da Interconexão SIP
A conexão entre a infraestrutura de PABX local/nuvem e a operadora VoIP Nvoip é estabelecida através de um Tronco SIP autenticado. O PABX atua como um agente de usuário (UAC) registrando-se no Session Border Controller (SBC) da Nvoip.
flowchart LR
A[Ramais / Softphones] -->|SIP/RTP Local| B(Servidor PBX\nIssabel / Asterisk)
B -->|SIP Registro 5060\napp.nvoip.com.br| C{Nvoip SBC / Proxy}
C -->|PSTN / E1 / Fixo| D[Telefonia Pública]
C -->|SMPP / Cloud| E[Rede Celular Brasil]
2. Parâmetros de Configuração chan_sip (Issabel / FreePBX)
No menu PBX > Trunks (Troncos) > Add SIP Trunk:
2.1. Tronco de Saída (nvoip_out)
Configure o campo Trunk Name como nvoip_out e insira as seguintes diretivas nos PEER Details:
[nvoip_out]
username=68105001
type=peer
secret=SUA_SENHA_SIP
host=app.nvoip.com.br
fromuser=68105001
fromdomain=app.nvoip.com.br
context=from-trunk
dtmfmode=rfc2833
disallow=all
allow=ulaw&alaw
keepalive=yes
session-timers=refuse
nat=force_rport,comedia
qualify=yes
qualifyfreq=60
insecure=invite,port
[!IMPORTANT] A diretiva
session-timers=refuseé crítica: Ela impede desconexões involuntárias de chamadas que ultrapassam 15 a 30 minutos em conexões com CGNAT ou roteadores domésticos.
2.2. Tronco de Entrada (nvoip_in)
Configure o USER Context como nvoip_in e preencha os USER Details:
[nvoip_in]
username=68105001
type=friend
secret=SUA_SENHA_SIP
host=app.nvoip.com.br
context=from-trunk
insecure=invite,port
session-timers=refuse
disallow=all
allow=ulaw&alaw
nat=force_rport,comedia
canreinvite=no
2.3. String de Registro (Register String)
No final da página do Tronco SIP, defina a linha de registro para recebimento de chamadas no número DID associado:
usuario:senha@app.nvoip.com.br:5060/usuario
Exemplo real:
68105001:cc93b505@app.nvoip.com.br:5060/68105001
3. Configuração PJSIP Moderna (Asterisk 18/20+)
Para instalações modernas utilizando o driver de canal res_pjsip, configure o arquivo /etc/asterisk/pjsip.conf:
; ========================================================
; TRANSPORTE UDP
; ========================================================
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060
; ========================================================
; REGISTRO DE SAÍDA NVOIP
; ========================================================
[nvoip_reg]
type=registration
outbound_auth=nvoip_auth
server_uri=sip:app.nvoip.com.br:5060
client_uri=sip:68105001@app.nvoip.com.br:5060
retry_interval=60
expiration=300
line=yes
endpoint=nvoip_endpoint
; ========================================================
; AUTENTICAÇÃO
; ========================================================
[nvoip_auth]
type=auth
auth_type=userpass
username=68105001
password=SUA_SENHA_SIP
realm=app.nvoip.com.br
; ========================================================
; AOR (ADDRESS OF RECORD)
; ========================================================
[nvoip_aor]
type=aor
contact=sip:app.nvoip.com.br:5060
qualify_frequency=60
; ========================================================
; ENDPOINT NVOIP
; ========================================================
[nvoip_endpoint]
type=endpoint
context=from-trunk
disallow=all
allow=ulaw,alaw
outbound_auth=nvoip_auth
aors=nvoip_aor
from_user=68105001
from_domain=app.nvoip.com.br
direct_media=no
timers=refuse
force_rport=yes
rewrite_contact=yes
identify_by=username,ip
; ========================================================
; IDENTIFY (RECONHECIMENTO POR IP/DOMÍNIO)
; ========================================================
[nvoip_identify]
type=identify
endpoint=nvoip_endpoint
match=app.nvoip.com.br
4. Plano de Discagem (Dialplan) & Outbound Routes
Para que o Asterisk direcione chamadas através do tronco da Nvoip com a correta formatação brasileira (DDD + Número), adicione ao extensions.conf:
[outbound-nvoip]
; Ligações Locais e Nacionais (DDD + Número de 8 ou 9 dígitos)
exten => _X.,1,NoOp(--- Chamada Saindo via Nvoip ---)
same => n,Set(CALLERID(num)=68105001)
same => n,Set(CALLERID(name)=Artes do Sul)
same => n,Dial(SIP/nvoip_out/${EXTEN},60,TK)
same => n,Hangup()
; Tratamento com prefixo 0 (Ex: 011988887777 ou 04733690000)
exten => _0X.,1,NoOp(--- Discagem com Zero via Nvoip ---)
same => n,Dial(SIP/nvoip_out/${EXTEN:1},60,TK)
same => n,Hangup()
Regras de Discagem no FreePBX / Issabel GUI:
- Prefix: em branco
- Match Pattern:
NXXXXXXXX(Fixo 8 dígitos) - Match Pattern:
9XXXXXXXX(Celular 9 dígitos) - Match Pattern:
NXXXXXXXXX(DDD + Fixo 10 dígitos) - Match Pattern:
NXXXXXXXXXX(DDD + Móvel 11 dígitos)
5. Troubleshooting & Diagnóstico de Falhas
5.1. Comandos de Diagnóstico no Console CLI do Asterisk (asterisk -rvvv)
# Verificar status do registro do tronco (chan_sip)
sip show registry
# Verificar status e latência do peer Nvoip
sip show peer nvoip_out
# Ativar debug SIP detalhado para rastrear INVITE/200 OK/BYE
sip set debug ip app.nvoip.com.br
# Para PJSIP:
pjsip show registrations
pjsip show endpoints
5.2. Tabela de Resolução de Códigos de Erro SIP
| Código SIP | Mensagem | Causa Raiz | Ação Corretiva |
|---|---|---|---|
| SIP 401 / 407 | Unauthorized |
Desafio de autenticação padrão ou senha errada. | Se persistir, confira o campo secret e certifique-se de que o fromuser coincide com o ramal SIP. |
| SIP 403 | Forbidden / User not found |
Conta SIP inativa, saldo insuficiente ou IP restrito. | Acesse painel.nvoip.com.br e verifique o status do ramal e saldo da carteira. |
| SIP 404 | Not Found |
Rota ou número discado incorreto. | Verifique se a rota discada contém o DDD (10 ou 11 dígitos). |
| SIP 486 / 603 | Busy Here / Declined |
Destinatário ocupado ou recusou chamada. | Comportamento normal da rede telefônica externa. |
| SIP 503 | Service Unavailable |
Falha de rota ou gateway temporariamente fora. | Verifique se há failover configurado e consulte o canal de suporte da Nvoip. |
| Áudio Mudo / Unidirecional | RTP Silence (One-Way Audio) |
Bloqueio de portas UDP RTP (10000 a 20000) ou NAT sem STUN. | Certifique-se de que nat=force_rport,comedia está ativo e portas UDP 10000-20000 estão liberadas no firewall. |
6. Checklist de Validação Pré-Produção
- Registro SIP ativo exibindo
State: Registeredemsip show registry. - Ping e resolução DNS estável para
app.nvoip.com.br. - Chamada de teste realizada para telefone móvel com áudio bidirecional cristalino.
- Chamada de teste recebida no número DID direcionada à fila ou ramal interno.
- CallerID configurado no formato aceito pela Nvoip.
7. Provisionamento Automático com nvoip-pabx-provisioner
Para implantações automatizadas em ambientes Linux (Asterisk, FreePBX, Issabel, FreeSWITCH e FusionPBX), a Nvoip disponibiliza o utilitário oficial open-source:
- Repositório Oficial:
https://github.com/Nvoip/nvoip-pabx-provisioner
Comandos de Validação e Teste:
# Validar e testar simulação de tronco Asterisk
nvoip-pabx-provisioner validate --engine asterisk \
--trunk-user "68105001" \
--trunk-password "SUA_SENHA" \
--validate-sipp
# Criar tronco e rotas de teste automáticas
nvoip-pabx-provisioner apply --engine asterisk --with-test-routes
Contorno de SIP ALG em Roteadores Domésticos via TLS (Porta 5061):
Em conexões onde o roteador da operadora possui SIP ALG forçado que corrompe pacotes SDP, utilize criptografia SIP sobre TLS (Transport: tls, porta 5061) com certificado oficial da Nvoip ou conexão via WebSocket Seguro (WSS) para WebRTC.