Instalação do Asterisk - Distribuição Trixbox

Neste tutorial tem uma pequena introdução à telefonia IP e em seguida, uma instalação passo a passo do PABX IP Asterisk, distribuição Trixbox. Instalação feita em máquina virtual (VirtualBox). No final, para fazer os testes, foram utilizados Softphones para efetuar chamadas entre ramais.

[ Hits: 41.890 ]

Por: Francisco Aldevan Barbosa em 20/12/2012 | Blog: http://www.aldevan.com.br


Introdução VoIP



VoIP (Voice over IP) usa o protocolo IP para transmitir voz como pacotes de dados sobre uma rede IP. Desta forma, um sistema VoIP pode ser implantado em qualquer rede que use o protocolo IP (Internet Protocol) como em Internet, intranets e redes locais.

Neste tutorial vamos utilizar um servidor SIP grátis, onde teremos uma central de PABX IP completa e funcionando. Existem diversas distribuições com esta finalidade de transformar um simples computador em um PABX IP.

O aplicativo que iremos utilizar é o Asterisk e a distribuição Trixbox, um servidor SIP (Session Initiation Protocol), que é o protocolo que faz toda a sinalização de todo o sistema.

Para trafegar os dados (pacotes contendo voz), o protocolo usado é o UDP (User Datagram Protocol), este protocolo é ideal para aplicações em tempo real, como é o caso da telefonia IP, sem se preocupar com a correção dos pacotes, já que não demanda tempo para correções e assim gerar atrasos na entrega dos pacotes.

No SIP, podemos configurar o servidor para funcionar de duas formas, sendo uma o servidor apenas faz a conexão e sinalização e depois, apenas monitora em intervalos a conversação, com isso, o processamento e banda no servidor é baixíssimo, já que a parte pesada que são os pacotes de dados contendo o áudio não passam pelo servidor e funcionam ponto a ponto.

Este modo é também chamado como SIP puro, conforme ilustração abaixo:

Sequência de sinalização

  1. O telefone IP origem envia um convite através de uma mensagem com o método INVITE que é entregue ao servidor SIP, em seguida, o servidor SIP manda essa mensagem para o telefone IP destino;
  2. Se for possível haver comunicação, acontece a negociação, inclusive é nesta fase que é feita a escolha do codec. O telefone IP destino responde com uma mensagem de OK para o servidor SIP, que entrega essa mensagem para o telefone origem;
  3. O telefone IP origem envia uma mensagem de ACK (Acknowledge) reconhecimento para o servidor SIP, que envia para o telefone destino sinalizando que ambos podem se comunicar;
  4. Começa então a comunicação de dados RTP, que contém voz e não há mais tráfego ou processamento no servidor SIP. O servidor SIP verifica em tempos determinados se a conexão ainda está ativa, caso a conexão não esteja mais ativa entre os interlocutores, o servidor SIP finaliza a chamada deixando ambos os telefones IP disponíveis para novas chamadas.

A outra configuração é da voz passando pelo servidor SIP (Asterisk), nesta configuração existem muito mais recursos possíveis de serem configurados no Asterisk, como:
  • Chamadas em conferência;
  • Gravação e monitoramento das chamadas em curso;
  • Transferências de chamadas em curso;
  • Codificação e decodificação de chamadas em que os terminais não têm os mesmos codecs. E neste caso, o servidor SIP faz e envia ao outro terminal usando um codec que tenha no terminal etc.

Como contra partida, este tipo de configuração ocupa muito processamento do servidor SIP e banda na placa de rede e, com isso, dependendo do número de usuários, isso pode afetar o desempenho do Asterisk. Na ilustração abaixo, podemos ver esta configuração:
O importante para estas aplicações é que o pacote chegue o mais rápido possível, mesmo que, para isso, alguns pacotes sejam perdidos no percurso. Como as aplicações de voz em tempo real são sensíveis ao atraso, fica claro que o protocolo UDP é o ideal para aplicações de telefonia IP ou VoIP.

O protocolo UDP é um protocolo não orientado à conexão, não confiável, porém, muito simples e rápido. Um pacote UDP é dividido em duas partes: o cabeçalho UDP e os dados em si ou Payload, como também é conhecido.

Os dados de voz são transportados no campo Payload do cabeçalho UDP para serem encapsulados em um protocolo de transporte chamado RTP (RFC 1889) (RFC 1890), que pode ser bidirecional ou unidirecional, dependendo de como foi realizado a negociação para a transmissão dos dados, sempre existem dois canais de mídia, um para cada sentido da conversação em tempo real.

O transporte da voz por comutação de pacotes IPs deve levar em consideração que este tipo de serviço precisa ser capaz de fornecer um nível de qualidade muito semelhante aos serviços de voz tradicionais baseados em comutação de circuitos ou TDM (Time Division Multiplexing), sob pena de causar uma grande insatisfação nos usuários, já acostumados a essas tecnologias.

Por este motivo, qualquer tecnologia que objetive prover serviços de telefonia IP em uma rede de pacotes precisa ter mecanismos que garantam ou pelo menos aproximem essa qualidade dos sistemas PSTN já conhecidos pelos usuários.

O conceito de QoS (Quality of Service) refere-se à capacidade da rede em prover o melhor serviço para determinados tipos de tráfego sobre as mais diversas tecnologias e a priorização de pacotes é fundamental nessa tecnologia.

Conforme já comentado, a voz produzida pelo sistema de telefonia IP vai trafegar na mesma rede física de dados onde temos diversas estações de trabalho, e servidores também, trafegando dados nessa rede, e isto pode impactar a rede de telefonia IP (dependendo desse volume de dados na rede).

Para minimizar este problema, algumas medidas devem ser adotadas, como criar VLANs específicas para telefonia IP (voz) separando, assim, o tráfego de dados das estações de trabalho com os dados de voz, separando logicamente a rede e fazer uso de QoS, que é uma técnica de priorização de dados que, nesse caso, a rede de telefonia IP deve ter prioridade para trafegar dados, já que a voz é em tempo real, e não pode esperar; pois isso causaria problemas e desconforto ao ouvinte de uma chamada telefônica. Se fazendo uso de QoS minimizamos muito esse transtorno, principalmente dentro da rede LAN.

QoS é uma sigla que significa, em inglês: "Quality of Service" (Qualidade do Serviço, em tradução livre), que caracteriza-se por diferenciar entre tráfego e tipo de serviços, para que o usuário possa tratar uma ou mais classes de tráfego diferente das demais.

Um determinado serviço pode ter qualidade quando atender às exigências especificadas ou acordado anteriormente. A qualidade de serviço (QoS) nas redes IP é um aspecto operacional importante e fundamental para o desempenho nas aplicações que funcionam em tempo real, como na telefonia IP ou VoIP. Assim sendo, é importante o entendimento desta técnica para um melhor desempenho das aplicações na rede que realmente necessitam de que os dados de voz tenham prioridade dentro da rede.

Na ilustração abaixo, podemos observar o fluxo de dados com priorização de dados e sem priorização, são 3 dispositivos gerando tráfego, sendo uma estação de trabalho PC e dois aparelhos de telefones IPs, ambos gerando tráfego; e na saída do switch, podemos observar o comportamento COM QoS e SEM QoS, com QoS podemos observar que os dados da estação de trabalho só saem do switch quando os telefones IPs não tiverem enviando dados.
Existem várias técnicas para implementação de QoS, principalmente em se tratando de LANs, onde todos os equipamentos pertencem a uma mesma empresa, sobre as quais se tem controle maior para se configurar este tipo de serviço, e separando logicamente a rede de dados das estações de trabalho com a rede de dados de voz.

Para a implementação de VoIP em redes de longa distância WAN (Wide Area Networks), duas abordagem de QoS podem ser adotadas: Serviços Diferenciados (DiffServ) e Serviços Integrados (IntServ).

A abordagem IntServ procura garantir qualidade de serviço fim a fim, isto é, negociando e reservando recursos exclusivos para tráfego de voz, priorizando por toda a rota entre transmissor e receptor. Baseia-se no protocolo RSVP (Resource Reservation Protocol), e necessita que todos os roteadores nessa rota implementem esse protocolo. A abordagem DiffServ baseia-se na marcação de bits ToS (Type of Service) no cabeçalho do pacote IP para atribuição de diferentes níveis de prioridade para os pacotes.

Nas WANs privadas, as empresas têm a opção de adquirir e instalar roteadores que suportem DiffServ e/ou IntServ e, desta forma, garantir efetivamente uma excelente qualidade de serviços VoIP para seus usuários.

Outro problema a ser solucionado nas redes de telefonia IP, são os atrasos (delay) na entrega do pacote e o jitter, que é a variação de tempo do próprio atraso, a latência e o atraso são parâmetros importantes para a qualidade de serviço das aplicações, ambos os termos podem ser utilizados na especificação de QoS, embora o termo "latência", seja convencionalmente mais utilizado para equipamentos e o termo atraso seja mais utilizado com as transmissões de dados.

Normalmente, entra nessa conta tempo de fila e de entrada e saída de cada equipamento por onde o pacote passa, tempo de processamento em cada equipamento e tempo de propagação no meio físico.

Em redes que vão trafegar telefonia IP, o recomendável é que este atraso não seja superior a 150mS, apesar de funcionar com tempos superiores fica perceptível a má qualidade nas ligações, tempos maiores que 400mS é considerado uma ligação "pobre", e pode causar desconforto ou até mesmo, dificultar a comunicação dos interlocutores.

Na tabela abaixo, temos uma demonstração com os tempos válidos apenas para o codec G729.

Componentes Atraso (Delay)
Codificação e Empacotamento 25mS
Serialização (64 kbit/s) (20% overhead) 3mS
Dejitter ou Buffer de Jiiter 50mS


Para um serviço VoIP de alta qualidade, o atraso ponto a ponto em uma única direção deve ser menor que 150mS, ou seja, o atraso na rede deve ser menor que 75mS (150mS menos 75mS do budget do codec G729).

Para outros codecs, deve ser observado que, quanto maior a compactação, maior será seu tempo de processamento, por exemplo, para o codec G723 temos um tempo de processamento ainda maior e, portanto, a rede deve ter um atraso ainda menor, em torno de 50mS.

Pior que o simples atraso ou delay, é o jitter, que é um outro parâmetro importante para a qualidade de serviço que causa não somente uma entrega com periodicidade variável, como também a entrega de pacotes fora de ordem.

O problema dos pacotes fora de ordem, neste caso, como estamos falando de UDP, estes pacotes são descartados, já que é conexão não orientada, mas para essa finalidade de voz é perfeitamente aceitável.

Para tentar reduzir o jitter, uma técnica adotada é fazer o uso de buffer, que é uma área de armazenamento que vai enfileirando os dados, e quando atinge um valor previamente determinado, é enviado ao ouvinte. Esta técnica ajuda, mas mesmo assim não resolve completamente, o jitter é um dos piores inimigos quando falamos de aplicações que funcionam em real time como o VoIP.

    Próxima página

Páginas do artigo
   1. Introdução VoIP
   2. Instalação do Asterisk distribuição Trixbox
   3. Acessando o Trixbox
Outros artigos deste autor

Duke Nukem online com hDuke, Linux Mint e YANG

Montagem de um cluster com o MOSIX

Cabos de rede e conectorização

Jogando Duke Nukem online com YANG e Ubuntu/Debian

Instalação do Asterisk - Distribuição Meucci

Leitura recomendada

Preparando o Linux SuSE Enterprise Server 9 para o Oracle 10g R2

Minha experiência com o Fedora 15

OCS Inventory e seus clientes - Instalação e configuração

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

Apache + MariaDB + PHP + phpMyAdmin no CentOS 7

  
Comentários
[1] Comentário enviado por fabio em 20/12/2012 - 13:12h

Excelente artigo, muito bem explicado. Meus parabéns!

[2] Comentário enviado por edersonhonorato em 20/12/2012 - 13:38h

Parabéns pelo artigo.

Muito interessante o uso do Asterisk no Linux.

[3] Comentário enviado por cesarufmt em 20/12/2012 - 15:27h

Muito bom o artigo! Obrigado por compartilhar...

testando....

Valeu!

[4] Comentário enviado por aldevan em 21/12/2012 - 03:57h

fabio, edersonhonorato, cesarufmt, valeu pelo incentivo, como eu fiz isse trabalho para um treinamento ou seja já tenho tudo prontinho aqui, acabei de postar como Dica as configurações do gateway para adicionar mais 2 ramais a esse pabx, creio que com o gateway com 2 telefones analogicos ilustre melhor o funcionamento do asterisk.

[5] Comentário enviado por dyegoborges em 26/12/2012 - 05:16h

Mt bom o seu artigo !!!
Como faco para fazer ligacoes para telefone convencional ?
Aguardo.

[6] Comentário enviado por aldevan em 26/12/2012 - 05:55h

olá dyegoborges, para fazer ligações externas existe diversas possibilidades: 1- adquirir uma Placa PCI FXO e instalar no seu PC e ligar uma linha convencional na FXO, 2- adquirir uma gateway FXO e ligar a linha convencional, 3- não compra nada, apenas contrata um plano de uma operadora VoIP e configura uma porta como Tronco (Trunk) no asterisk.

[7] Comentário enviado por andrejhonny em 31/12/2012 - 09:09h

Muito bom. Ralei muito para entregar em novembro um trabalho na faculdade! Realmente bem explicado.

[8] Comentário enviado por lunowski em 06/06/2013 - 20:15h

E se eu não consigo autenticar o softphone? Alguma ideia do que seja o problema?

[9] Comentário enviado por aldevan em 06/06/2013 - 21:07h

verifique o IP do servidor, login e senha, com um gateway FXS você consegue autenticar no servidor???

[10] Comentário enviado por lunowski em 10/06/2013 - 14:19h

já verifiquei ip e login, está tudo correto. o que é esse gateway FXS?

[11] Comentário enviado por aldevan em 10/06/2013 - 14:30h

"o que é esse gateway FXS?"

segue o link
http://www.vivaolinux.com.br/dica/Gateway-FXS-para-PABX-IP-Configuracao-com-Asterisk

[12] Comentário enviado por lunowski em 10/06/2013 - 14:30h

no X-Lite quando configuro tudo aparece o seguinte erro:

"erro 403 forbidden"

[13] Comentário enviado por lunowski em 10/06/2013 - 15:04h

Consegui!é pro meu TCC, muito obrigada!

[14] Comentário enviado por ericoliv em 24/08/2013 - 22:25h

uns tempos atrás eu tive aula na facul sobre voip , e no laboratorio protocolo sip, h323 e o caramba, e tivemos q instalar trixbox no laboratorio, e eu fui um pouco mais afundo e fiz um laboratorio na minha empresa, e acabei descobrindo q a placa antiga de modem Motorola 62802 serve como fxo no asterisk, entao fui na santa efigenia atras de uma placa fxo pra testar como funciona, eu rodei a santa efigenia inteira atras dessa placa, nao encontrei nem a Placa X100p Asterisk Digium Zaptel, mas no ultimo minuto numa rua perto da santa efigenia encontrei um tiozinho q tinha tipo uma loja de bujiganga cheio de velharias, e eu perguntei se ele tinha modens antigos, ele me deu uma caixa cheia de modens, deveria ter mais de 200 modens na caixa, e eu fiquei procurando o modem Motorola 62802 e encontrei uma, acho q o tiozinho pensou q eu era louco sei lá, ele me vendeu essa placa por 5 reais e ainda me deu garantia de 3 meses. eu cheguei na empresa onde o trixbox tava instalado só para teste e taquei a linha do pabx analogico da empresa nessa placa, e configurei no trixbox, cara, eu fazia ligações pra qualquer ramal da empresa através do softphone com o meu computador, telefones fixos e pra voip e recebia, era só eu digitar o codigo q eu configurei no trixbox na frente do numero do telefone q ele ia automático, eu desinstalei porque lá nao é viável por enquanto. agora surgiu um desafio, e eu pensei justamente nessa experiência q eu tive. um colega q tem uma pizzaria está com a demanda muito grande, e ele ta querendo um sistema q quando o cliente ligar, já apareça na tela do computador todos os dados desse cliente, e ele me perguntou se eu conseguiria fazer isso, to pensando nessa possibilidade de usar o asterisk pra fazer isso.

[15] Comentário enviado por refinski em 24/03/2014 - 06:44h

pessoal queria muito pedir uma ajuda para voces.
Estou fazendo o TCC da faculdade e preciso criar uma topologia de uma rede voip entre uma matriz e uma filial, so que nao tenho ideia como fazer, acredito que eu tenha que usar dois roteadores, um servidor voip(asterisk) na matriz, vou usar dois micros para comunicacao voip, e minha duvida e se tenho que criar dois servidores um de cada lado para usar iptables com HTB para tratar a questao de QoS, se puder me dar uma luz te agradeco, grande abraco.

O meu grande problema e que vou fazer uma comparacao entre QoS em Voip sobre roteador CISCO e QoS em Voip sobre Linux, no cisco eu sei configurar tudo, mas no linux nao sei se preciso de dois servidores um de cada lado para configurar, se puder ajudar agradeco muito.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts