Asterisco e SIP por trás do NAT

2

Estou tentando configurar um Asterisk-Server para aceitar chamadas de um cliente em outra rede. O servidor e o cliente estão por trás de um NAT.

Já ativei o STUN no cliente, mas ainda estou tendo problemas para ouvir o outro lado em ambos. Depois de algum tempo, a chamada é finalizada e, no Asterisk, uma mensagem sobre Retransmission Timeout é alcançada e No reply to critival packet received aparece.

    
por user209700 17.02.2014 / 16:35

2 respostas

4

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 ...

    
por 20.02.2014 / 19:48
0

Convém notar que, depois de configurar o endereço IP externo, você pode (e possivelmente não deve) precisar configurar o endereço de rede local. Comentário de Per James: se o seu firewall está lidando com isso para você, ele pode criar uma situação de loopback incrivelmente enigmática.

    
por 08.06.2017 / 01:33