Asterisk e Voip
-
Olá galera!!
Tenho um servidor Asterisk atrás de um pfSense. Este servidor se registra em um provedor voip através de SIP e em outro asterisk em outra localidade através de IAX2.
A conta IAX2 sei lá porque demora muito para se registrar e normalmente só se registra depois de eu dar um boot ou no asterisk ou dar um reset nos states do pfsense.
Já a conta SIP não se registra de jeito nenhum!!
Tentei configurar com o sipproxyd e sem ele simplesmente o asterisk não consegue se registrar. Configurei um softphone na minha estação que está na mesma faixa de ip do asterisk e na estação o softphone funciona normalmente.
O pior de tudo é que tenho um cliente com exatamente a mesma situação e nesse cliente o pfSense configurado da mesma maneira funcionou perfeitamente.
Já verifiquei DNS, roteamento as regras de entrada e de saída.
Detalhe, se configurar um notebook de qualquer outro lugar diferente dessa rede consigo me conectar com um ramal remoto neste asterisk sem problema nenhum!
A única diferença que tem da minha rede para a rede do meu cliente é que no caso dele são dois servidores físicos, 1 para o pfSense 2.0 e o outro para o Asterisk, já no meu caso são dois servidores virtuais (1 pfSense 2.0 e o outro para o Asterisk) rodando na mesma máquina física com o VMWare ESXi.
Alguém tem alguma dica ou idíea do que fazer para resolver esse problema?? Pode ser alguma incompatibilidade com o VMWare??
Troquei o firewall linux pelo pfsense há 5 dias, e desde então o SIP parou de funcionar. Se ligo o linux novamente funciona tudo bem de novo. O linux antigo também é uma máquina virtual que está instalada neste mesmo VMWare.
Qualquer ajuda é bem vinda!! Muito obrigado!
-
O sipproxy é mais indicado quando Voce tem vários devices autenticando fora da rede. Se Voce só tem o servidor, tente fazer a configuração apenas com as regras do firewall.
O IAX é o melhor protocolo para integrar centrais.Tenho algumas redes interligadas com ele da mesma forma que voce descreveu e de fato é necessário resetar os states de vez em quando, mas nunca tive problemas de lentidão de registro com ele.
Para debugar o SIP, sugiro conectar na console do pfsense e monitorar os pacotes com o tcpdump.
Qual o erro que o SIP retorna?
-
Olá Marcello, como você vai??
Então, o SIP fica eternamente tentando registrar. No debug do SIP no console do asterisk fica apenas mostrando as tentativas de registro sem sucesso. E quando executo o comando "sip show registry" aparece eternamente "Request sent" apenas!!
Vou tentar o TCPDump para ver se descubro alguma coisa!!
O que eu acho mais estranho é que é só a máquina virtual que dá isso!!
-
Pois é @fneto,
Particularmente eu desaconselho sempre utilizar um firewall virtualizado (independentemente de ser pfSense ou qualquer outra solução). Firewall é aplicação de borda e até por questões de boas práticas de segurança, deve ficar lá… Isolado (fisicamente, inclusive) de serviços!
Bem, em relação ao seu case, acho que pode ser SIM algo referente a configuração do VMware ESXi. Como está a configuração das interfaces de rede virtuais? elas estão funcionando em modo "bridge", "Only" ou "Nat"? Procure deixar em modo bridge ou only, já que a última opção quase sempre apresenta problemas nestes casos.
Ainda em tempo, o melhor é garimpar com o tcpdump mesmo, como disse o colega @marcelloc. Execute os testes e reporte aqui eventuais descobertas! ;)
Abraços!
Jack -
Pessoal descobri uma coisa super interessante, e acho que posso dizer agora definitivamente que o problema não é com o pfSense, mas sim com a asterisk.
PAra tirar da dúvida subi uma nova máquina virtual com o asterisk now e configurei o básico, endereço de IP, Gateway e configurei a conta SIP.
O servidor se registrou na hora. Pensei que deveria ser minha máquina virtual antiga que estava com problemas, então decidi rodar algumas atualizações na máquina nova de maneira incremental para ver se alguma delas dava o problema do registro.
Quando fui fazer a primeira atualização percebi que havia me esquecido de configurar o DNS na máquina, então configurei o DNS e comecei a baixar as atualizações. Antes ainda de dar um boot no servidor fui olhar de novo e o SIP perdeu o registro novamente.
Olhei tudo que tinha instalado porém nada ainda estava valendo, então fui desfazendo item por item até que removi o dns da máquina. Assim que removi o registro voltou a funcionar inclusive as ligações entrantes do número voip.
Fiquei meio indignado pois não acreditei que o problema era o DNS, então para tirar da dúvida fui no servidor antigo e deixei o /etc/resolv.conf todo comentado para que a resolução de DNS fosse nula. Me certifiquei que não havia nenhum dnsmasq rodando e reiniciei o asterisk.
Na mesma hora o servidor se registrou.
Agora deixo a pergunta para todos, como é possível um comportamento absurdo desses??? Sem DNS o servidor funciona com DNS não mais???
A única coisa que dá alguma lógica a este problema é que o Asterisk está fazendo alguma consulta de IP reverso que não está legal, pois do resto não tem mais nada que pode ser!!
E aí, o que acham desse mistério??
-
Realmente esquisito, testa um dns externo, como por exemplo o do google (8.8.8.8) e veja se o resultado é o mesmo.
Pelo que percebi, seu sip esta configurado para registrar direto no Ip ou então você tem entradas no seu /etc/hosts que apontam para o servidor 'correto' de registro.
-
Ja tentei com o dns externo e interno, inclusive usando o do google e do opendns, e para funcionar eu tenho que colocar por ip na configuração do sip e remover até as entradas do /etc/hosts. Se tiver o nome do voip lá resolvendo o problema se repete.
Levantei no DNS qual era o reverso do meu ip e do ip do provedor, coloquei o reverso na configuração e nem assim funcionou!!
Não sei mais o que tentar. Por hora posso deixar o DNS desligado, mas tenho que arrumar uma solução para isso pois é inconcebível um pau deste tipo sem solução.
Postei uma mensagem no forum do asterisk também para ver se alguém dá alguma dica também.
Assim que tiver novidades posto aqui!!
-
Olá pessoal!!
Resolvi o meu problema de uma maneira totalmente absurda por isso estou escrevendo caso alguém se depare com essa maluquice algum dia.
Corrigi o meu arquivo resolv.conf com as entradas de DNS que uso normalmente.
Removi todas as entradas manuais do arquivo hosts, deixei apenas o localhost e o nome da máquina.
E agora o pior, no arquivo sip.conf do asterisk deixei apenas a opção nat=yes e removi os parâmetros localnet e externip que são os requisitos mínimos para o asterisk funcionar dessa maneira.
Bom feito isso os ramais remotos pararam de funcionar, pois embora se registrassem não tinha mais áudio daí coloquei apenas a opção localnet novamente para testar e tudo ficou funcionando.
Dei um boot no pfsense e no asterisk para ter certeza e agora tenho tanto o tronco IAX quanto SIP funcionando perfeitamente. Até o problema de perder a conexão do IAX parace que resolveu, pois logo após o boot os servidores já se conectaram sem eu precisar dar um reset states como antes.
Eu definitivamente não faço a mínima idéia do porque o asterisk apresentou este comportamento, mas estou escrevendo para prover todos com as informações que descobri e ajudar a talvez ao menos encontrar uma explicação lógica para esse comportamento totalmente esquisito.
A proposito, o problema apresentou com o Asterisk 1.4.42 e com o 1.8.7.0 ok!
Abraços a todos!!
-
Lendo o que voce escreveu, me lembro de uma vez que fiz um loop de dns + nat na minha rede local na tentativa de colocar os clientes externos e internos resolvendo o mesmo host dinamico de forma que os clientes externos chegariam pelo firewall e os clientes internos conseguissem alcançar o asterisk sem precisar passar pelo nat do firewall.
O resultado foi uma confusão parecida com essa.
-
Bom pessoal a conta SIP estabilizou e passou o dia inteiro conectada, porém a conta IAX começou bem de manhã e depois simplesmente perdeu a conexão e parou de funcionar. Minha ponta fica o dia inteiro conectada, o que me permite mandar ligações para o outro pabx, porém o outro pabx perde a conexão e para de enviar ligações para nós do nada, daí só dando um reset states no pfSense.
Tem algum outro jeito de resolver esse problema permitindo que a conexão fique estável o dia todo??
Abraços!