Asterisk e o Problema de Registro Antecipado no Debian 11

Ao instalar o Asterisk no Debian 11, é comum observar que os registros SIP (register =>) não sobem corretamente após o boot. O daemon inicializa antes da pilha de rede estar totalmente disponível, fazendo com que os pacotes de registro sejam descartados. O sintoma clássico é a necessidade de executar manualmente um:

systemctl restart asterisk

para que os troncos sejam registrados.

Ajustando o systemd

A primeira correção está no systemd. O serviço precisa aguardar a rede estar completamente online antes de iniciar.

Crie ou edite o arquivo de override:

systemctl edit asterisk

E adicione:

[Unit]
After=network-online.target
Wants=network-online.target

Isso força o Asterisk a subir somente após a rede estar funcional.

Para aplicar:

systemctl daemon-reexec
systemctl restart asterisk

Opcionalmente, pode-se adicionar um ExecStartPost para garantir o reload do módulo SIP logo após a inicialização:

[Service]
ExecStartPost=/usr/sbin/asterisk -rx "sip reload"

Ajustando o sip.conf (chan_sip)

No sip.conf, seção [general], é possível refinar o comportamento do cliente SIP quanto às tentativas de registro:

[general]
context=default
allowguest=no
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp

; Ajustes de registro
registertimeout=20
registerattempts=0

; Troncos SIP
register => usuario:[email protected]/100
register => usuario2:[email protected]/200

Explicando:

  • registertimeout=20 define o tempo máximo de espera por resposta antes de considerar falha.
  • registerattempts=0 instrui o Asterisk a tentar infinitamente, em vez de desistir após algumas tentativas.

Conclusão

O problema de registro prematuro no Debian 11 não é falha do Asterisk, mas sim do systemd inicializando serviços em paralelo à rede. Com a configuração adequada no unit file e ajustes no sip.conf, o registro passa a ser persistente e confiável, eliminando a necessidade de reinicialização manual do serviço.

Rolar para cima