Troncos SIP do Asterisk e roteamento

3

Eu tenho dois PBXs baseados em asteriscos, cada um deles em uma LAN diferente, ambas as LANs conectadas a um roteador.

O primeiro pbx é 10.0.0.1/24 e o segundo é 10.0.2.1/24. Ambos os pbx têm suas próprias extensões e as chamadas entre as extensões estão funcionando perfeitamente.

O PBX1 tem um Tronco SIP com um provedor de VoIP, em uma interface de rede diferente em uma rede diferente. O PBX2 não possui nenhum Trunk apartart daquele que o conecta ao PBX1.

O problema que enfrento é que, quando um usuário do PBX2 disca um número de telefone externo, de acordo com as regras de discagem, a chamada é encaminhada pelo tronco para o PBX1, que encaminha a chamada para o provedor de VoIP, a outra termina no PSTN pega o telefone e ... nada pode ser ouvido.

Depurei o problema e descobri que, o que está acontecendo é que o provedor de VoIP está enviando o tráfego RTP (pacotes udp em um tcpdump) diretamente para o dispositivo no PBX2. Como não há roteamento entre a rede VoIP e o PBX2, esse tráfego é grande.

Minha pergunta é: é a suposta maneira de trabalhar? Eu sou forçado a garantir que ambos os fins sejam racionais?

Existe alguma maneira de fazer o PBX1 funcionar como um proxy para que APENAS o PBX1 tenha acesso ao provedor de VoIP?

Estou usando o asterisco 1.4.

Obrigado pela sua ajuda.

    
por Matt 11.04.2011 / 17:51

2 respostas

2

Com o SIP, a sinalização é feita via SIP e o áudio digitalizado é enviado através de um protocolo diferente, o RTP. O SIP e o RTP podem e geralmente são enviados para diferentes endereços IP. Isso normalmente não é um problema, desde que os endereços IP estejam todos acessíveis.

O que está acontecendo na sua situação é algo assim:

O PBX2 envia um SIP INVITE para o PBX1. Incluído nesse INVITE está a informação sobre para onde enviar o áudio. O PBX2 especifica seu próprio endereço IP. Como seu endereço IP é acessível a partir do PBX1, as chamadas entre os dois trabalham.

Agora, quando o receptor é uma linha externa, o PBX1 envia seu próprio CONVITE para o seu provedor e transmite no INVITE as informações sobre para onde enviar o áudio (ou seja, o endereço IP do PBX2) Se os dois PBXs estivessem ligados IPs públicos, isso seria ótimo. Como eles não são ambos acessíveis a partir do exterior, você precisa modificar o comportamento do PBX1

No PBX1, no seu arquivo sip.conf , deve haver uma configuração de mesmo nível para o PBX2. Nesta configuração de pares, você precisa adicionar a seguinte linha:

canreinvite=no

(Em versões mais recentes do asterisco, você usaria directmedia=no em vez disso. )

Isso fará com que o PBX1 permaneça no caminho da mídia sempre que estiver envolvido em uma chamada com PBX2. Em outras palavras, quando você liga para o mundo externo, o PBX1 fornecerá ao seu provedor seu próprio endereço IP para onde enviar o áudio, ele fará a proxy desse áudio e o enviará para o PBX2.

Espero que isso ajude!

    
por 16.08.2014 / 06:09
-2

O que você descreve é totalmente possível. É, afinal de contas, como funcionam alguns provedores de VoIP: um dos meus provedores de VoIP executa seus sistemas de backend no Asterisk. E eles podem encaminhar as chamadas para mim no tronco que eu configurei para minha conta no sistema deles.

Para a configuração entre o Asterisk, provavelmente será mais fácil usar os troncos IAX2. Eles exigirão que apenas uma única porta seja aberta entre as duas redes.

Existem vários guias disponíveis que descrevem exatamente o seu cenário.

Este parece exatamente o que o médico receitou: link

No momento, não tenho dois sistemas * para experimentá-lo ... mas parece um guia de configuração completo.

    
por 13.04.2011 / 00:21

Tags