Você está na página 1de 6

Introduo ao Asterisk Parte 1

Neste artigo e nos prximos que viro, estaremos falando sobre o Asterisk, desde o bsico at
a configurao de URAS, Vdeo Conferncia e outros
No primeiro artigo da srie, sero introduzidos alguns conceitos de VOIP, do prprio Asterisk, e
como no pode faltar um pouco de prtica. Instalaremos e subiremos dois ramais SIP, para
teste.
Se bem que todo o conceito, no ser visto neste primeiro, quanto da criao de ramais e
regras de discagem.
O primeiro item a ser visto, : O que o Asterisk?
O Asterisk um software aberto (open) utilizado para criao de centrais telefnica (PABX)
tanto pura como hbridos.
Ele pode trabalhar como uma central fsica, quanto trabalhar com protocolos de VOIP (Voz
sobre IP), gerenciando trfego digital, analgico e redes TCP/IP.
Em poucas palavras ele pode facilmente traduzir os vrios tipos codecs entre duas pontas que
estabeleceram uma conexo, ou ligao.
Centrais VOIP se tornaro no s mais comuns, mas como necessrio, para reduo de custos,
entre ligaes interurbanas e internacionais. Reduzindo ou ainda eliminando o custo, de tais
ligaes.
Quantos no j usaram MSN, skype, entre outros para estabelecer uma ligaoIsso VOIP.
Vamos teoria em si
Protocolos, Codecs, entradas, Sadas e demais.
Hoje com o advento da banda larga, muito fcil o uso da tecnologia de VOIP. Pensa nas
operadoras de celular, por exemplo, que usam GSM, como um tipo de Codec
Toda comunicao entre vrios pontos utiliza VOIP, e quando entre as pontas, feito a
traduo do tal Codec.
O VOIP um protocolo de rede, de forma que a voz transportada pela rede TCP, fragmentada
em vrios pacotes, e depois remontada no destino, como a caracterstica do prprio protocolo
TCP/IP.
Mas para uso dessa tecnologia, devemos estar atentos a velocidade da banda. Normalmente
sugerido algo em torno de 90 Kbps por ligao, variando em relao ao tipo de compresso
utilizado.
Outros benefcios acompanham essa tecnologia, tais como: correio de voz, envio de
mensagens direto para caixa de correio de email, conferncias, identificao de chamada,
encaminhamento de chamada, bloqueio, encaminhamento quando ocupado, vdeo conferencia,
fila de espera, etc.
A converso da voz em seu estado natural para sinais digitais feita pelos Codecs
(enCOde/DECode). Normalmente as centrais suportam mais de um tipo de Codec, para poder
ento negociar com os diversos aparelhos que poder encontrar como, telefones gateway,
programas (softfones), etc.
Essa escolha de Codec a ser usado, depender de vrios fatores do seu ambiente, tal como
tamanho da banda disponvel, capacidade de processamento do equipamento, quantidade de
chamadas simultneas, delay, entre outras.
Um Codec pode ou no fazer compresso de dados, existe vrios tipos de Codec, e obviamente
os melhores tem um custo de aquisio (Nada assustador algo em torno de 10 a 20 dlares por
licena).
Por exemplo, quando falamos do Codec G.711, este utiliza uma banda de 64 Kbps, e tem um
baixo uso de processamento j que no faz compresso de dados, em contrapartida ocupa toda
banda. Se comparado com G.729a, que tem apenas 8 Kbps de payload (Tamanho de cada
pacote), que exige um maior processamento, mas ocupa uma banda bem menor, dependendo
da situao um Codec muito superior, lias, esse um dos que so cobrados.
Abaixo uma tabela com alguns Codecs:
Codec
Banda
(Kbps
)
Payloa
d
(ms)
Banda
Nominal
(ms)
Comentrios
G.711 64 20 87.2 Baixa utiliza!o de CP"
G.72#
a
8 20 $1.2
%tima com&ress!o' e utiliza!o de (anda' uso alto de
&rocessamento.
G.72$
.1
)'$*6'$ $0*$0 20.8*21.# +xi,e muito &rocessamento.
G.726 24*$2 20*20 47.2*)).2 Baixo n-.el de com&ress!o e utiliza!o de CP".
G/0 1$ $1.1 0esmo codi1ica!o dos tele1ones celulares.
Existem outros, mas os mais comuns so esses.
Um item que deve ser analisado a qualidade do servio que envolve Perda de pacotes no
excedendo 5%, Delay que o tempo gasto desde origem at o destino, Latncia, sendo o
tempo gasto para processar o pacote desde a origem at o destino, o que pode aumentar o
delay, uma taxa de 250 ms no chega prejudica a comunicao, Jitter, que a variao do
delay, podendo causar chiado e at derrubar uma chamada, eco, causado pelo aumento do
delay, o eco aumenta fazendo com que consigamos escutar o retorno da chamada, ou seja,
nossa prpria voz, Supresso de silncio (Voice Activity Detection VAD), que uma
aplicao utilizada para detectar a ausncia de som em uma chamada, e o MOS (Mean
Opinion Score), um padro Internacional usado para mensurar a reportar a qualidade de voz
e QOS (Quality of Service), qualidade de servio, que nada mais que o controle dos
diferentes tipos de pacotes para uma priorizao efetiva (Mais sobre QOS pode ser visto em
meu Livro controle de Redehttp://www.visualbooks.com.br/shop/mostralivro.asp?
escolha=9788575022443)
Estes conceitos sero abordados novamente, e de forma mais profunda em outras partes deste
tutorial. Neste artigo teremos apenas uma viso geral do Asterisk.
Outro item superimportante o protocolo usado para comunicao, seja em um aparelho final e
o PABX ou entre PABX.
Os protocolos mais usados so o SIP, H.323 e AIX e AIX2. Ainda sim usado o protocolo RTP
(Real-time Transport Protocol), que ser o negociador dos vrios formatos diferentes entre a
comunicao.
O AIX um protocolo que surgiu junto com o Asterisk (Inter-Asterisk Exchange), criado para
estabelecer conexes entre servidores Asterisk, mas hoje j possvel us-lo em softwares de
IPPhone, atas e gateways.
Vamos dar uma olhada nestes dois protocolos, AIX e SIP, at por que usaremos na prtica.
Protoco Caracter-sticas
lo
/2P
3(erto
O mercado usa muito.
Dificuldade para configurao de NAT em um firewall utiliza duas portas uma fixa e
outra aleatria.
2342
3(erto' mas n!o &adronizada.
Pouco uso no mercado.
Utiliza porta nica, no causando problemas no firewall NAT.
Funcionamento Bsico
O Asterisk, como dito anteriormente, tem todas as caractersticas das centrais telefnicas
convencionais, mas podem-se acrescentar vrios novas funcionalidades, e mdulos escritos por
outros, atravs de um script feito em linguagem C, chamados de Asterisk Gateway Interface.
Basicamente o Asterisk funciona tendo como componentes o protocolo (SIP, AIX), Canal de
comunicao (o canal a juno do protocolo e a identificao do cliente, por exemplo,
SIP/1000, ser usado como canal direto com o cliente), codecs e a aplicao (veremos em
outro tutorial).
O Asterisk foi desenvolvido pela empresa Digium, que possui placas para interfaces utilizadas
em PABX convencional. A verso usada neste tutorial ser a 1.4, que padro para o Debian 5,
mas devemos lembrar que existem a verso 1.6, 1.8 e um verso 10 beta.
Em relao 1.4 e um 1.6 temos vrias features que podem ser de grande ajuda, para a verso
mais nova. Algumas features suportadas nestas verses:
Reduo da utilizao de memria
Monitoramento via SNMP.
Novos comando no CLI console.
Asterisk Extesion Laguange.
T38: Fax via esse protocolo.
Suporte a novos tipos de canais: Jabber, Jingle e Google Talk.
Vrios idiomas adicionais, inclusive portugus Brasileiro.

Mo na massa Instalao e Configurao dos primeiros ramais


Em nosso primeiro tutorial usaremos o prprio Asterisk que est disponvel no repositrio
Debian. Mas em um segundo tutorial, compilaremos manualmente, pela necessidade de drivers
para placas FXO/FXS como da Digium, por exemplo, que sero vistas posteriormente tambm.
A primeira coisa a fazer configurar os repositrios da apt, atualizar, para podermos baixar.
apt-get install asterisk
Com isso todas as dependncias sero resolvidas e os problemas causados por compilao
sero evitados momentaneamente. Podemos verificar os processos do Asterisk com o ps:
# ps aux | grep asterisk
asterisk 5835 0.0 1.9 30160 10072 ? Ssl Nov04 0:18 /usr/sbin/asterisk -p -U asterisk
root 9706 0.0 0.1 3140 756 pts/1 S+ 11:53 0:00 grep asterisk
E podemos ver as portas abertas com o netstat:
# netstat -naput | grep asterisk
tcp 0 0 127.0.0.1:5038 0.0.0.0:* OUA 5835/asterisk
tcp 0 0 0.0.0.0:2000 0.0.0.0:* OUA 5835/asterisk
udp 0 0 0.0.0.0:2727 0.0.0.0:* 5835/asterisk
udp 0 0 0.0.0.0:4520 0.0.0.0:* 5835/asterisk
udp 0 0 0.0.0.0:5060 0.0.0.0:* 5835/asterisk
udp 0 0 0.0.0.0:4569 0.0.0.0:* 5835/asterisk
Num prximo Post falaremos sobre AddOns, que ampliam as funcionalidades do Asterisk, tais
como Mysql, udio formato MP3, entre outros.
Vejamos alguns arquivos de configurao do mesmo, o diretrio principal o /etc/asterisk,
citarei os mais importante para o momento:
sip.conf Utilizado para configurao de Canais SIP
iax.conf Utilizado para configurao de Canais AIX
extesions.conf Utilizado para criar um plano de discagem.
Para inicio falaremos desses trs arquivos, que sero utilizados neste Post para criao de
ramais.
Criaremos dois ramais SIP ,para teste entre e maquinas. O arquivo que usaremos o sip.conf.
Edite-o e deixe da seguinte maneira.
[general]
context=interno
bindport=5060
bindaddr=0.0.0.
0
srvlookup=yes
disallow=all
allow=alaw
allow=gsm
[sip](!)
context=interno
type=friend
host= dynamic
nat=yes
[2000](sip)
callerid =
2000
username=2000
secret=1234
[2001](sip)
callerid =
2001
username=2001
secret=1234
Agora vejamos o que significa cada item, mas antes vejamos a sintaxe.
A sintaxe usada no asterisk bem simples :
[seo]
Opo = valor
Opo = valor
E assim sucessivamente.
Agora sim, vejamos quais opes foram habilitadas :
A seo general, so opes que se aplicam a todas as outras sees do arquivo, ou seja,
todas as sees herdaro essas opes.
bindport : Especifica a porta de comunicao do Asterisk para aceitar conexes. A porta TCP e
UDP 5060 padro para SIP. J para RTP utilizada de 10000 e 20000.
bindaddr Especifica o endereo IP que escutar e aguardar conexes. Quando usado
0.0.0.0 , escutar em qualquer interface configurada.
disallow Desabilita codecs especficos, caso utilizado all, desabilita todos codecs.
allow Especifica quais codecs sero habilitados , pode usar vrias linhas, ou separa-los por
vrgula, em nosso caso habilitamos o alaw que o G711a, usado pelas operadoras no padro,
e o j conhecido GSM, muito utilizado nas operadores de telefonia mvel.
language Define o idioma para os arquivos de som utilizados pelo Asterisk.
Na prxima seo, conhecida como seo de canais ou ainda peer, faremos a configurao dos
ramais.
Num primeiro momento usei um modelo, que servir para todos os ramais que criar, ser como
um padro seguido pelo ramais que criaremos posteriormente.
Neste caso o valor sip, seguido do ponto de exclamao. Essa pontuao que informa para o
asterisk que isso um modelo de uso, na realidade chamado de template. Vamos ver o que
significa todos os dados.:
[sip](!): Uma nova seo chamada sip, que ser um template.
context Um contexto , usado para definir regras de discagem, isso ser abordado
posteriormente.
type Define se o canal pode ligar, receber ligao ao ambos, sendo user para fazer chamada,
peer para receber e friend para ambos.
host Define o endereo ip para o canal, no caso dynamic, aceitar um ip dinmico.
secret Senha para autenticar um canal no servidor.
nat Se o cliente est em uma rede interna e sofrer Nat.
[2000](sip) Neste item estamos criando o ramal 2000, usando sip como base.
callerid Define o destino de chamada, pode se usar nome como nmero.
secret Senha para autenticao no Servidor
O ramal seguinte a mesma coisa que o anterior.
Em termos de ramais est pronto, basta reiniciar o Asterisk, ou recarregar no prompt do mesmo.
Teremos um tutorial sobre comandos de linha do asterisk, e planos de discagem.
O plano de discagem fundamental para que o os ramais consigam ligar, atravs dele que
ser informado como proceder , e executar determinadas aes, como atender, fila de espera,
caixa postal, etc.
Ento ainda falta fazermos o plano de discagem, que foi referenciado como context = interno.
O arquivo de configurao o extesions.conf, vamos edit-lo, e deixar da seguinte forma :
[interno]
exten =>
2000,1,Dial(SIP/2000)
exten => 2000,2,HangUP()
exten =>
2001,1,Dial(SIP/2001)
exten => 2001,2,HangUP()
O Plano de discagem envolve o contexto que nada mais que um nome dado que contexto
ser aplicado determinados ramais, as extenses, que so entradas ( seqncia de caracteres )
recebidas pelo Asterisk, prioridade, ou seja a ordem que sero processadas as regras e por
ultimo a aplicao que ser executada. O Asterisk possui muitas aplicaes, mas de 100 com
certeza.
No caso vimos duas , Dial e HangUP.
A sintaxe das extenses :
exten => EXTENSO,PRIORIDADE,APLICAO
A aplicao Dial conecta dois canais de comunicao o valor aps a aplicao, no caso
SIP/2000 , informa qual tecnologia que est sendo usada e qual a identificao. Sua sintaxe
completa :
Dial(tecnologia/Identificao[,timeout][,opes]
Em outra ocasio abordaremos todas as opes, basta saber que o timeout o tempo que o
Asterisk vai aguardar atender a chamada para ser completada e opes temos vrias como
desligar chamada aps alguns segundos, habilitar transferncia , habilitar gravao, etc.
J o HangUP encerra a chamada , fechando todos os canais.
Com isso sim temos j nossos ramais prontos para testar.
Vamos acessar o prompt de comando do asterisk , conforme abaixo e executar os comandos :
#asterisk r
CLI> sip reload
CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
2001 (Unspecified) D 0 UNKNOWN
2000 (Unspecified) D 0 UNKNOWN
2 sip peers [Monitored: 0 online, 2 offline Unmonitored: 0 online, 0 offline]
CLI> dialplan reload
Dialplan reloaded.
CLI> dialplan show
[ Context 'interno' created by 'pbx_config' ]
52000 => 1. Dial(SIP/2000) [pbx_config]
2. HangUP() [pbx_config]
52001 => 1. Dial(SIP/2001) [pbx_config]
2. HangUP() [pbx_config]
O comando asterisk r, acessa o console do asterisk, sip reload e dialplan reload,recarregam
tanto o arquivo sip.conf como extesions.conf para dentro do asterisk, e ento sip show e
dialplan show, vo mostrar as configuraes atuais.
Aps isso basta usar um cliente qualquer para testar, no Windows possvel usar o Zoiper
emhttp://www.zoiper.com/softphone/classic/, tendo ele verso para Windows como para Linux.
Espero que aproveitem, e at o prximo tutorial Asterisk.

Você também pode gostar