Marcos Max

Wiki Max - TI

View on GitHub

Asterisk — Guia Rápido (Comandos, Configuração e Troubleshooting)

Comandos essenciais (console asterisk -rvvv)

Comando Função
core reload Recarrega configurações sem reiniciar
core restart now Reinicia imediatamente
core show channels Chamadas ativas
core show uptime / core show version Uptime / versão
pjsip show endpoints Lista endpoints PJSIP
pjsip show endpoint 1000 Detalhes de um endpoint
pjsip show registrations Registro de troncos
sip show peers Ramais SIP (chan_sip legado)
dialplan show / dialplan reload Ver / recarregar dialplan
queue show Filas configuradas
voicemail show users Usuários de voicemail
database show Banco interno AstDB
rtp set debug on Debug de áudio (RTP)
pjsip set logger on Debug SIP (PJSIP)
core set verbose 10 / core set debug 10 Verbose / debug

Arquivos importantes

Arquivo Função
/etc/asterisk/pjsip.conf SIP (PJSIP)
/etc/asterisk/extensions.conf Dialplan
/etc/asterisk/queues.conf Filas
/etc/asterisk/voicemail.conf Voicemail
/var/log/asterisk/full Log principal (tail -f)
/var/spool/asterisk/monitor Gravações

Criar ramal PJSIP

; /etc/asterisk/pjsip.conf
[1000]
type=endpoint
context=interno
disallow=all
allow=ulaw
auth=1000-auth
aors=1000

[1000-auth]
type=auth
auth_type=userpass
username=1000
password=SenhaForte123

[1000]
type=aor
max_contacts=1
; extensions.conf
[interno]
exten => 1000,1,Dial(PJSIP/1000)
 same => n,Hangup()

Recarregue: pjsip reload + dialplan reload.

URA (IVR) básica

[ura]
exten => s,1,Answer()
 same => n,Background(menu)
 same => n,WaitExten(5)

exten => 1,1,Dial(PJSIP/1000)
 same => n,Hangup()
exten => 2,1,Dial(PJSIP/2000)
 same => n,Hangup()
exten => t,1,Playback(tempo-esgotado)
 same => n,Hangup()

Fila de atendimento

; queues.conf
[suporte]
strategy=ringall
timeout=15
retry=5
member => PJSIP/1000
member => PJSIP/1001
; extensions.conf
exten => 5000,1,Answer()
 same => n,Queue(suporte)
 same => n,Hangup()

Tronco SIP + chamadas externas

[tronco]
type=endpoint
transport=transport-udp
context=entrada
disallow=all
allow=alaw,ulaw
outbound_auth=tronco-auth
aors=tronco

[tronco-auth]
type=auth
auth_type=userpass
username=usuario
password=senha

[tronco]
type=aor
contact=sip:sip.provedor.com
[outbound]
exten => _0X.,1,Dial(PJSIP/${EXTEN}@tronco)
 same => n,Hangup()

Troubleshooting

Ramal não registra: pjsip show endpoints / pjsip show auths / pjsip set logger on. Causas: senha, firewall, NAT, codec, endpoint duplicado.

Sem áudio: rtp set debug on, liberar UDP 10000–20000, conferir codecs. NAT no pjsip.conf:

external_media_address=IP_PUBLICO
external_signaling_address=IP_PUBLICO
local_net=192.168.0.0/24

Chamada cai após segundos: NAT, RTP bloqueado, session timers (timers=no) ou SIP ALG ativo no roteador (desative).

Não completa chamada externa: pjsip show registrations, dialplan show outbound, pjsip set logger on.

Asterisk não inicia: journalctl -u asterisk -f, permissões em /etc/asterisk.

Comandos Linux úteis para VoIP

ss -tunlp                                # portas abertas
tcpdump -i any port 5060                 # capturar SIP
tcpdump -i any portrange 10000-20000     # capturar RTP
tail -f /var/log/asterisk/full           # log em tempo real

Checklist de produção

Firewall configurado · Fail2ban instalado · senhas fortes · NAT ok · backup · logs monitorados · QoS · SIP ALG desativado · NTP sincronizado.

apt install fail2ban -y
ufw allow 5060/udp
ufw allow 10000:20000/udp