A maneira mais simples e preguiçosa para isso é configurar sua caixa de asterisco em uma configuração nat de 1: 1 (geralmente chamada de host DMZ em roteadores domésticos) e certificar-se de que externip = esteja configurado em sip.conf.
Os problemas habituais com SIP e NAT são:
-
Os cabeçalhos SIP
- contêm informações de origem e destino da chamada (endereços IP) que podem não ser acessadas de / para clientes e servidores atrás de nat
- Um intervalo geralmente amplo de portas precisa ser encaminhado para fluxos RTP (o áudio e qualquer outro)
- Muitos dispositivos NAT (por exemplo, os Ciscos que James Sneeringer mencionou) tentam "ajudar" e geralmente fazem um trabalho ruim de confundir os cabeçalhos
- Alguns dispositivos SIP tentam "reinventar", o que basicamente significa estabelecer uma conexão direta com o dispositivo de chamada, em vez de encaminhá-lo pelo PBX. NAT quebra completamente isso.
Supondo que você não pode 1: 1 asterisco NAT, tente estas:
Na seção geral do sip.conf:
- Verifique se o externip está definido (externip =)
- Definir nat = yes (geralmente é usado em excesso / mal entendido, mas tente)
- verifique se localnet = / subnet mask (por exemplo, 192.168.1.23/255.255.255.0) está definido (isso fará com que o asterisco grave seu IP privado em cabeçalhos SIP enviados para telefones nessa rede, mas use o externip em qualquer outro lugar)
Na seção de dispositivos do problema, telefone: - qualify = 5000 (Isso fará com que o asterisco verifique a extensão a cada 5 segundos. Ajuste conforme desejado, desde que seja menor que o tempo limite de NAT que mantenha o mapeamento preservado)
No seu NAT / firewall - certifique-se de que toda a gama de portas UDP listadas no rtp.conf possua entradas de redirecionamento para o seu servidor asterisco. Normalmente, isso seria algo como 10000-12000 (cada chamada pode usar até 4 canais RTP, para que a configuração lide com pelo menos 500 chamadas simultâneas). E, claro, 5060 (sinalização SIP)
Eu achei esta página útil no passado: link
Se você estiver usando uma das distribuições de asterisco com uma interface web (FreePBX, Elastix, Trixbox, PBX-in-a-flash, etc) me avise e posso sugerir algumas configurações da GUI em vez de editar arquivos conf diretamente . Eu tive o desagrado de problemas de depuração com a maioria deles ...