Glossário

SIP ALG: definição e exemplo na prática

Resposta curta: SIP ALG (Application Layer Gateway) é uma função de roteadores e firewalls que reescreve endereços dentro das mensagens SIP para atravessar o NAT, frequentemente quebrando o áudio das chamadas.

Em inglês: SIP ALG (Application Layer Gateway)

O que é SIP ALG?

SIP ALG (Application Layer Gateway) é uma função de roteadores e firewalls que abre as mensagens SIP e troca os endereços IP privados de dentro delas pelo IP público da conexão. A ideia é ajudar a chamada a atravessar o NAT. Na prática, muitas implementações reescrevem campos errados, deixam outros sem corrigir ou quebram mensagens que o PABX ou o SBC já tinham ajustado. O resultado clássico é áudio mudo em um sentido, chamadas que caem sozinhas e ramais que perdem o registro.

É comum o SIP ALG vir ligado de fábrica em roteadores domésticos e de pequenas empresas. Quando a telefonia IP começa a falhar depois de trocar o roteador ou o link, o ALG é um dos primeiros suspeitos.

NAT

NAT (Network Address Translation) é o que permite vários equipamentos com IP privado, como 192.168.0.20, saírem para a internet com um único IP público. O roteador troca o endereço no cabeçalho do pacote. O problema é que o SIP repete endereços dentro da própria mensagem, nos cabeçalhos Via e Contact e no SDP, que indica para onde mandar o RTP. Se esses endereços internos chegam à operadora sem correção, ela manda o áudio para um IP privado que não existe na internet.

Na prática

Sintoma Causa provável
Chamada atendida, um lado não ouve IP privado ou porta errada no SDP
Chamada cai depois de cerca de 32 segundos ACK não chega; o destino desiste após 64 × T1 (RFC 3261)
Ramal perde o registro de tempos em tempos ALG fecha ou altera a sessão do REGISTER
Funciona em um link e falha em outro Roteadores diferentes, um com ALG ligado

Para desativar, procure na página do roteador ou firewall por SIP ALG, SIP Helper ou inspeção SIP, desligue e reinicie. Em equipamentos baseados em Linux, a função costuma ser o módulo de conntrack de SIP.

Como o Monitor usa isso

Uma chamada de teste que conecta mas fica sem áudio em um dos sentidos é detectada como áudio de mão única e conta como falha, mesmo com a resposta SIP 200 OK. Veja monitoramento de troncos SIP.

Perguntas frequentes

Como desativar o SIP ALG no roteador?

Entre na página de administração do roteador ou firewall e procure em NAT, firewall ou configurações avançadas por SIP ALG, SIP Helper, SIP Passthrough ou inspeção SIP. Desmarque a opção, salve e reinicie o equipamento. Se o roteador foi entregue pela operadora e a opção não aparece, peça o desligamento ao suporte ou o modo bridge. Depois, faça uma chamada de teste nos dois sentidos.

Devo sempre desativar o SIP ALG?

Na maioria dos casos, sim, desde que algo cuide do NAT corretamente: o PABX configurado com o IP público, telefones com STUN ou um SBC. Sem nenhum desses, desativar o ALG pode deixar os telefones atrás do NAT sem áudio. Teste antes e depois da mudança.

Saiba disso antes dos seus clientes

O Monitor liga para cada circuito de voz o dia todo e entrega cada falha com o código SIP e a causa Q.850 como prova.