Menu Principal
Inicio
Aprendendo Asterisk
Calculadora VoIP
Contato
Downloads
Empregos Asterisk
Forum do Asterisk
Links
Livros Asterisk
Para Iniciantes
Tutoriais
Arquivo de Notícias
Lojas VOffice
ShopVoIP.com.br
IP Wave
Telefone IP para SIP e IAX
R$ 275,00
LojaCisco.com.br
WRT54GL
Roteador wireless c/ criptografia segura
R$ 388,50
ShopLicense.com.br
McAfee VirusScan
51 à 100 licenças
R$ 56,37
RSS Feeds
Login
Nome de Usuário

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma
Usuários Online
Nós temos 61 visitantes online e 1 membro online
Estatísticas
Membros: 3497
Notí­cias: 258
Links: 1
QoS com Asterisk e iproute2
26 de fevereiro de 2008
Neste tutorial iremos explorar como efetuar a marcação de pacotes e o QoS em uma rede que faz uso de VoIP com Asterisk e um firewall GNU/Linux com iproute2. Uma questão que pode melhorar em muito a qualidade de voz em ambientes que utilizam voz sobre IP (VoIP) é a utilização de QoS e traffic shapping nos roteadores da rede.

O cenário que utilizaremos para implantar a nossa solução é o seguinte:



Neste artigo iremos utilizar o IAX para nos conectar ao Internet Telephony Service Provider (ITSP), portanto utilizaremos apenas a porta 4569. Como o IAX2 transporta tanto a mídia quanto a sinalização nesta porta, precisaremos apenas priorizar o trafico nesta porta. Caso utilizassemos o SIP, precisariamos priorizar as portas utilizadas pelo RTP, que é o protocolo que transporta a mídia. As portas que o Asterisk utilizará para o RTP são definidas no arquivo rtp.conf em /etc/asterisk.

Podemos marcar os pacotes IP com 4 flags para o QoS, as quais são:

0x02: Minimazar o custo financeiro
0x04: Maximizar a garantia de entrega dos pacotes
0x08: Maximizar o throughput
0x10: Minimizar o atraso

Oficialmente é possível marcar apenas um desses bits por pacotes, entretanto extra-oficialmente podemos marcar qualquer combinação de bits. No nosso caso, temos que as aplicações de VoIP são bastante sensíveis ao atraso, assim marcaremos os pacotes para minimizar esta variável.

Por padrão a pilha TCP/IP do GNU/Linux utiliza uma estratégia de First In First Out (FIFO), mas faremos uso do utilitário tc para alterar esta política. No nosso caso iremos criar três filas, sendo que a fila 1 tem prioridade sobre a fila 2 que tem prioridade sobre a fila 3. Desta maneira enquanto existir algum pacote na fila 1, nenhum pacote da fila 2 ou 3 será enviado, o mesmo acontecendo em relação da fila 2 com a 3.

Como a interface eth1 é a interface com a Internet do nosso firewall, isto é realizado com o seguinte comando:

tc qdisc add dev eth1 root handle 1: prio priomap 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 0

Os 16 parâmetros que seguem a opção priomap são extremamente importantes, pois são eles que dizem a qual fila o pacote irá pertencer. Isso funciona da seguinte maneira: os pacotes sem nenhum bit the type of service (TOS) marcados vão para a fila 3 (parâmetro 0), os pacotes marcados com 0x10 vão para a fila 2 (parâmtro 1) e os pacotes com todos os bits the TOS marcados são encaminhados para a fila 1.

Agora vamos definir as políticas para as filas com os três comandos abaixo:



tc qdisc add dev eth1 parent 1:1 handle 10: sfq limit 3000

tc qdisc add dev eth1 parent 1:2 handle 20: sfq

tc qdisc add dev eth1 parent 1:3 handle 30: sfq



O primeiro comando faz com que a fila 1 tenha um buffer para até 3000 ( essa é a teoria, na prática o comando tc tem um limite hard coded de 128 pacotes como o máximo possível).



Por padrão o Asterisk não marca os seus pacotes, para fazer isso precisamos modificar o parâmetro tos da sessão general do iax.conf, vamos marcar os pacotes IAX2 com todos os bits the TOS para que os mesmos sejam encaminhados para a fila 1.



iax.conf:

tos=0x1e



Mesmo assim não temos a garantia que os pacotes IAX2 serão encaminhados para a fila 1. Para isto utilizaremos mais um recurso do tc, os filtros. Assim com os comandos abaixo iremos encaminhar para a fila 1 os pacotes que tem porta de destino e origem igual a 4569.



tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dport 4569 0xffff flowid 1:1

tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 4569 0xffff flowid 1:1



Voilà, todos os nosso pacotes IAX2 têm prioridade sobre qualquer outro tipo de tráfico que flui atravês do nosso firewall. Podemos ver algumas estatisticas do tc com o segunte comando:



tc -s qdisc ls dev eth1



Para limpar as configurações do tc podemos utilizar o comando abaixo:



tc qdisc del dev eth1 root



Agora cabe a você colocar os comandos do tc na inicialização do seu sistema.



Eng. Guilherme Loch Góes

www.voffice.com.br

Referências:
http://www.rns-nis.co.yu/~mps/linux-tc.html
http://www.voip-info.org/wiki-Asterisk+QoS
http://www.howtoforge.com/voip_qos_traffic_shaping_iproute2_asterisk

Tutoriais sobre Asterisk e VoIP
BackTraces
BackTraces, você já usou? não?, então vamos lá...

Backtrace é um modo de obter informações sobre o que esta acontecendo de errado quando um programa fecha inesperadamente, no nosso caso vamos usar o asterisk como exemplo. Existem dois tipos de backtraces que também é conhecido como bt, que são: bt e bt full...
Ergonomia de um projeto
Um ponto algumas vezes esquecido, por nós técnicos, é a interface com o usuário. Nos preocupamos em dimensionar corretamente o servidor, ter uma boa infra-estrutura de rede, aplicar uma politica de QoS na rede entre outras e nos esquecemos de um fator determinante para o sucesso e aceitação dos nossos projetos: a interface com o usuário.
Comparando Asterisk e OpenSER
Se você trabalha com telefonia IP, talvez ainda não tenha ouvido falar do OpenSER, mas certamente você ouviu falar sobre o Asterisk. Bom eu adoro uma chamada polêmica e eu já vi esta questão formulada muitas vezes em fóruns e listas de discussão. Então eu vou me atrever a comparar estes dois softwares muito populares dedicados ao mercado de VoIP. A idéia aqui não é mostrar qual é o melhor, mas principalmente mostrar como eles são diferentes um do outro. Abaixo está uma comparação tópico por tópico.

Instalando o codec Speex no ASTERISK 1.4.x
Neste tutorial vou explicar como compilar e instalar o codec speex no ASTERISK, que é juntamente com o ilbc uma ótima alternativa para quem não quer gastar com licensas de codecs proprietários como o G729.

Simplificando (e baixando custos com) PoE
O Power over Ethernet é uma tecnologia relativamente nova que evoluiu sobre a, amplamente  divulgada Ethernet, que disponibiliza energia em corrente contínua confiavelmente através dos mesmos cabos que disponibilizam dados Ethernet.
Instalando qloganalyzer no ASTERISK p/ gerar relatórios de filas e cdr
O Queue LOG analyzer é uma opção GPL para geração de relatórios e gráficos sobre as filas e CDR Call Detailed Record do Asterisk . O autor é o Earl C. Terwillinger.

Configuração do Astribank XORCOM
Esse tutorial tem como objetivo demonstrar o processo de configuração do Astribank XORCOM.
Gerenciando filas dinâmicas no Asterisk
Neste tutorial apresentaremos como configurar o gerenciamento de filas de forma dinâmica usando as aplicações AddQueueMember e RemoveQueueMember no Asterisk.

Publicidade
www.khomp.com.br
www.shopvoip.com.br/index.php?cPath=4_70
www.asteriskexperts.com.br/content/view/252/1/
www.orecx.com
www.shopvoip.com.br
Enquete

Se você deseja publicar uma matéria ou anúncio neste site envie um e-mail para info@asteriskguide.com
Visite:  
Sua loja on-line de produtos e serviços VoIP. Digium, Xorcom, Linksys, DLink, Cisco, Grandstream, Alo-IP e muitos outros.
Treinamentos, Projetos, Telecom, Sistemas Operacionais, Suporte, Monitoramento...
Produtos e Suporte Cisco e Linksys
Seu novo ponto de licenciamento on-line. Microsoft, McAfee, Novell.

 
Todas as Marcas referidas neste website são ou podem ser marcas comerciais registradas e protegidas por leis internacionais
de copyright e propriedade industrial e pertencem aos seus respectivos fabricantes e proprietários.
 
All Brands referred in the website are or may be registered commercial brands and protected by copyright and industrial property
international laws and belong to their respective manufacturers and owners.