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=20define o tempo máximo de espera por resposta antes de considerar falha.registerattempts=0instrui 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.
