Professional Documents
Culture Documents
Colaborao: Andrey Smith Data de Publicao: 13 de Dezembro de 2009 Asterisk um software licenciado sob a GPL, que implementa recursos que vo alm dos encontrados em um PABX convencional, e pode ser executado em qualquer distribuio Linux, plataformas Unix e at mesmo em Windows. Digium a empresa criadora do Asterisk, e desde sua criao em 1999, o Asterisk tornou-se rapidamente uma alternativa atraente ao mercado. Abaixo alguns dos fatores que tornaram o Asterisk um verdadeiro fenmeno no mundo das telecomunicaes: Licenciamento a custo zero - Licenciado sob a GPL (General Public License).Flexibilidade - possvel integrar facilmente o mundo VoIP rede pblica de telefonia. Reduo de custos - A integrao de unidades geograficamente diferentes via internet, aliada as baixas tarifas oferecidas por provedores VoIP, produzem a reduo significativa do custo com telefonia. Vrios so os recursos que podem ser implementados no Asterisk, a seguir apenas alguns dos recursos disponveis:
Correio de voz (integrado ao e-mail) Sistema de bilhetagem Conferncia Siga-me URA (Unidade de Resposta Audvel) DAC (Distribuidor Automtico de Chamadas)
Este o primeiro de uma srie de tutoriais sobre Asterisk, e a cada tutorial, irei adicionar mais funcionalidades a nossa central telefnica.
Pr-requisitos
Sistema operacional instalado e atualizado.
Informaes gerais
Sistema Operacional: Debian Lenny 5.0
Tipo de host: Virtual Hypervisor: VMware Fusion Hd: 10 GB Parties: o / o 3072 MB (ReiserFS) o swap - 512 MB (Swap)
o /var - 6416 MB (ReiserFS) Memria RAM: 512 MB Endereo IP: 192.168.0.10 Mscara: 255.255.255.0
Mos obra!
1. Instalar dependncias
2. # aptitude -y install apache2 apache2.2-common apache2-mpmprefork \ 3. apache2-utils autoconf automake binutils bison bzip2 doxygen g++ g++-4.1 gcc graphviz \ 4. gsfonts less libapache2-mod-php5 libapache2-mod-perl2 libasound2-dev libc6-dev libcurl3 \ 5. libcurl3-dev libdbd-mysql-perl libedit2 libedit-dev libeditline0 libeditline-dev libgcrypt11 \ 6. libiksemel3 libiksemel-dev libmcrypt4 libmcrypt-dev libmhash2 libmyodbc \ 7. libmysqlclient15-dev libmysqlclient15off libncurses5 libncurses5-dev libnewt0.52 libnewt-dev \ 8. libogg-dev libsnmp libsnmp-dev libsnmp-base libsnmp-perl libspandsp1 libspandsp-dev libspeex1 \ 9. libspeex-dev libssl0.9.8 libssl-dev libtiff4-dev libtiff-tools libvorbis-dev libwrap0-dev libxml2 \ 10. libxml2-dev linux-headers-`uname -r`lrzsz make mc mcrypt mime-construct mysql-server-5.0 ntp \ 11. ntpdate openssh-server openssl patch pciutils php5 php5-cgi php5-cli php5-common php5-gd \ 12. php5-mcrypt php5-mysql php-pear procps sox tofrodos unixodbcdev unzip vim zlib1g-dev phpmyadmin
Nem todos os pacotes acima so dependncias do Asterisk, alguns so softwares que sero utlizados nos demais tutoriais para adicionar funcionalidades e facilidades ao Asterisk. Durante a instalao, ser solicitada a senha do usurio root domysql, basta digitar a senha e confirmar. OphpMyAdmin ir solicitar informaes sobre o servidor web, basta marcar a opoapache2. 13. Criar diretrio para downloads (opcional)
14. 15. 17. # mkdir /downloads # cd /downloads
22. Descompactar
23. 24. 25. 26. 27. # # # # # tar tar tar tar tar -zxf -zxf -zxf -zxf -zxf libpri-1.4.10.2.tar.gz -C /usr/src/ asterisk-1.4.26.2.tar.gz -C /usr/src/ asterisk-addons-1.4.9.tar.gz -C /usr/src/ dahdi-linux-2.2.0.2.tar.gz -C /usr/src/ dahdi-tools-2.2.0.tar.gz -C /usr/src/
Asterisk
# # # # # # # cd ../asterisk-1.4.26.2/ sh configure make make install make samples make progdocs make config
make samples - Gera arquivos de exemplo do Asterisk. make progdocs - Gera arquivos de documentao do Asterisk. make config - Ativa a inicializao automtica do Asterisk no boot do sistema. Asterisk-Addons
# # # # # cd ../asterisk-addons-1.4.9/ sh configure make make install make samples
Dahdi
# cd ../dahdi-linux-2.2.0.2/
Dahdi-Tools
# # # # # cd ../dahdi-tools-2.2.0/ sh configure make make install make config
Resultado:
root 2767 0.0 2.2 0:00 /usr/sbin/asterisk root 2985 0.0 0.1 0:00 grep asterisk 33052 11408 ? 3140 760 pts/0 Ssl R<+ 08:48 09:16
Resultado:
tcp 0 0 0.0.0.0:2000 OUA 2767/asterisk tcp 0 0 0.0.0.0:1720 OUA 2767/asterisk udp 0 0 0.0.0.0:2727 2767/asterisk udp 0 0 0.0.0.0:4520 2767/asterisk udp 0 0 0.0.0.0:5060 2767/asterisk udp 0 0 0.0.0.0:4569 2767/asterisk unix 2 [ ACC ] STREAM OUVINDO 2767/asterisk /var/run/asterisk.ctl 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 6134
Neste ponto do tutorial o Asterisk j est instalado e funcionando perfeitamente. 35. Localizao dos arquivos Arquivos de configurao do Asterisk
/etc/asterisk
Contedo do diretrio:
# ls /etc/asterisk/
adsi.conf cdr_mysql.conf extensions.conf jabber.conf osp.conf say.conf adtranvofr.conf cdr_odbc.conf features.conf logger.conf oss.conf sip.conf agents.conf cdr_pgsql.conf festival.conf manager.conf phone.conf sip_notify.conf alarmreceiver.conf cdr_tds.conf followme.conf meetme.conf privacy.conf skinny.conf alsa.conf chan_dahdi.conf func_odbc.conf mgcp.conf queues.conf sla.conf amd.conf codecs.conf gtalk.conf misdn.conf res_mysql.conf smdi.conf asterisk.adsi dnsmgr.conf h323.conf modules.conf res_odbc.conf telcordia-1.adsi asterisk.conf dundi.conf http.conf musiconhold.conf res_pgsql.conf udptl.conf cdr.conf enum.conf iax.conf muted.conf res_snmp.conf users.conf cdr_custom.conf extconfig.conf iaxprov.conf mysql.conf rpt.conf voicemail.conf cdr_manager.conf extensions.ael indications.conf ooh323.conf rtp.conf vpb.conf
No prximo tutorial irei demonstrar como criar ramais, plano de discagem e configurar o softphone que ser utilizado para efetuar ligaes.
1. Pr-requisitos
Ter executado com sucesso a parte 1 deste tutorial. Uma segunda mquina para que possam ser executados testes.
2. Informaes gerais
Ser utilizada a mesma configurao da parte 1 do tutorial. Mos obra!
Contedo do arquivo:
[general] bindport = 5060 bindaddr = 0.0.0.0 disallow = all allow = alaw,ulaw,gsm language = pt_BR [1001] type = friend context = tutorial secret = 12345 host = dynamic [1002] type = friend context = tutorial secret = 54321 host = dynamic
[general] bindport
Esta seo define os valores default (padro) para as demais sees e/ou protocolo. Porta utilizada pelo protocolo. O SIP utiliza as portas 5060 TCP e UDP, e 5061 TCP para TSL (Transporte Layer Security).
Endereo IP onde o Asterisk aceitar conexes. Se configurado como 0.0.0.0, aceitar conexes em qualquer IP. Desabilita codecs, a opo all desabilita todos codecs. Habilita o (s) codec (s) especificado (s). Configurao padro de idioma para users/peers. possvel configurar individualmente em cada peer. Identificao do ramal. Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou receber e efetuar chamadas (friend). Define o contexto ao qual o ramal pertence. Este contexto ser criado posteriormente no plano de discagem. Senha para registrar o ramal no servidor. Informa onde o ramal est registrado. Aceita endereo dinmico, quando configurado como dynamic.
Contedo do arquivo:
[general] bindport = 4569 bindaddr = 0.0.0.0 disallow = all allow = alaw,ulaw,gsm language = pt_BR [1003] type = friend context = tutorial secret = 12345 host = dynamic requirecalltoken = no [1004] type = friend context = tutorial secret = 54321 host = dynamic requirecalltoken = no
[general] bindport bindaddr disallow allow language [XXXX] type context secret host
Esta seo define os valores default (padro) para as demais sees e/ou protocolo. Porta utilizada pelo protocolo. O IAX utiliza a porta 4569 UDP. Endereo IP onde o Asterisk aceitar conexes. Se configurado como 0.0.0.0, aceitar conexes em qualquer IP. Desabilita codecs, a opo all desabilita todos codecs. Habilita o (s) codec (s) especificado (s). Configurao padro de Idioma para users/peers. possvel configurar individualmente em cada peer. Identificao do ramal. Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou receber e efetuar chamadas (friend). Define o contexto ao qual o ramal pertence. Este contexto ser criado posteriormente no plano de discagem. Senha para registrar o ramal no servidor. Informa onde o ramal est registrado. Aceita endereo dinmico, quando configurado como dynamic.
Contedo do arquivo:
[tutorial] exten => 1001,1,Dial(SIP/1001) exten => 1002,1,Dial(SIP/1002) exten => 1003,1,Dial(IAX/1003) exten => 1004,1,Dial(IAX/1004)
[tutorial] Contexto contendo regras de discagem. Por ser um assunto de maior abrangncia, o plano de discagem ter um tutorial exclusivo.
6. Ativar as configuraes
Acessar a CLI (Command Line Interface) do Asterisk
# rasterisk
ou
# asterisk -r
Resultado:
Asterisk 1.4.26.2, Copyright (C) 1999 - 2008 Digium, Inc. and others. Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ====================================================================== === Connected to Asterisk 1.4.26.2 currently running on debian (pid = 2800) debian*CLI>
Resultado:
Name/username Host Dyn Nat ACL Port Status 1002 (Unspecified) D 0 Unmonitored 1001 (Unspecified) D 0 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]
Resultado:
Name/Username Host Mask Status 1004 (Unspecified) (D) 255.255.255.255 Unmonitored 1003 (Unspecified) (D) 255.255.255.255 Unmonitored 2 iax2 peers [0 online, 0 offline, 2 unmonitored] Port 0 0
Resultado:
Dialplan reloaded.
Resultado:
[ Context 'tutorial' created by 'pbx_config' ] '1001' => 1. Dial(SIP/1001) [pbx_config] '1002' => 1. Dial(SIP/1002) [pbx_config] '1003' => 1. Dial(SIP/1003) [pbx_config] '1004' => 1. Dial(SIP/1004) [pbx_config] -= 4 extensions (4 priorities) in 1 context. =-
Sair da CLI
exit
7. Configurao do softphone
Softphone um software utilizado para efetuar chamadas telefnicas, a partir de um computador. Para efetuar os testes irei utilizar o sofphone Zoiper, que possui verses para Linux, Mac e Windows. O Zoiper tem suporte aos protocolos SIP e IAX, e permite registrar duas contas simultaneamente. Desta forma, com apenas um computador consigo testar se os ramais esto efetuando chamadas entre si.
A instalao do Zoiper bastante simples, por este motivo no ser abordada neste tutorial. Depois de instalado, basta execut-lo. execut Se quiser que o Zoiper inicie ao fazer o login, clique em Yes.
Clique que no cone da ferramenta (acima do nmero 6) para acessar o menu de configuraes.
Em IAX account options preencha conforme a figura abaixo e clique clique em Ok.
Com as contas criadas, o prximo passo registr-las registr las para efetuar chamadas. Na tela principal do Zoiper, selecione a conta em Account e clique em Register, este procedimento deve ser feito para as duas contas. Agora basta discar para o outro ramal. No exemplo abaixo, a chamada tem como origem o ramal 1003, e destino o ramal 1001.
Traduzindo a imagem abaixo: Incoming call ramal que est efetuando a chamada para 1001. possvel aceitar (Accept), rejeitar (Regect) ou ignorar (Ignore).
O ideal executar este teste com mais de um computador e com uso de headset. Porm, apenas para efeito de teste, j possvel comprovar que a comunicao entre ramais est funcionando.
Resultado:
Name/username Host Dyn Nat ACL Port Status 1002 (Unspecified) D 0 Unmonitored 1001/1001 189.110.52.67 D 59927 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]
Resultado:
Name/Username Host Mask Status 1004 (Unspecified) (D) 255.255.255.255 Unmonitored 1003 192.168.0.134 (D) 255.255.255.255 Unmonitored 2 iax2 peers [0 online, 0 offline, 2 unmonitored] Port 0 4569
Os resultados acima esto informando em que host e portas os ramais esto registrados. No prximo tutorial irei demonstrar como criar uma Unidade de Resposta Audvel (URA).