Asterisk – Construindo um PBX IP com Software Livre (Parte 1)

Publicado: dezembro 07, 2009 em Asterisk
Tags:, ,

Introdução

Asterisk é um software licenciado sob a GPL, que implementa recursos que vão além dos encontrados em um PABX convencional, e pode ser executado em qualquer distribuição Linux, plataformas Unix e até mesmo em Windows.
Digium é a empresa criadora do Asterisk, e desde sua criação em 1999, o Asterisk tornou-se rapidamente uma alternativa atraente ao mercado. Abaixo alguns dos fatores que tornaram o Asterisk um verdadeiro fenômeno no mundo das telecomunicações:

Licenciamento a custo zero → Licenciado sob a GPL (General Public License).
Flexibilidade → É possível integrar facilmente o mundo VoIP à rede pública de telefonia.
Redução de custos → A integração de unidades geograficamente diferentes via internet, aliada as baixas tarifas oferecidas por provedores VoIP, produzem a redução significativa do custo com telefonia.

Vários são os recursos que podem ser implementados no Asterisk, a seguir apenas alguns dos recursos disponíveis:

Correio de voz (integrado ao e-mail)
Sistema de bilhetagem
Conferência
Siga-me
URA (Unidade de Resposta Audível)
DAC (Distribuidor Automático de Chamadas)

Este é o primeiro de uma série de tutoriais sobre Asterisk, e a cada tutorial, irei adicionar mais funcionalidades a nossa central telefônica.

Pré-requisitos

Sistema operacional instalado e atualizado.

Informações gerais

Sistema Operacional: Debian Lenny 5.0
Tipo de host: Virtual
Hypervisor: VMware Fusion
Hd: 10 GB
Partições:
/ → 3072 MB (ReiserFS)
swap → 512 MB (Swap)
/var → 6416 MB (ReiserFS)
Memória RAM: 512 MB
Endereço IP: 192.168.0.10
Máscara: 255.255.255.0

Mãos à obra!

1. Instalar dependências

# aptitude -y install apache2 apache2.2-common apache2-mpm-prefork \
apache2-utils autoconf automake binutils bison bzip2 doxygen g++ g++-4.1 gcc graphviz \
gsfonts less libapache2-mod-php5 libapache2-mod-perl2 libasound2-dev libc6-dev libcurl3 \
libcurl4-openssl-dev libdbd-mysql-perl libedit2 libedit-dev libeditline0 libeditline-dev libgcrypt11 \
libiksemel3 libiksemel-dev libmcrypt4 libmcrypt-dev libmhash2 libmyodbc \
libmysqlclient15-dev libmysqlclient15off libncurses5 libncurses5-dev libnewt0.52 libnewt-dev \
libogg-dev libsnmp-dev libsnmp-base libsnmp-perl libspandsp1 libspandsp-dev libspeex1 \
libspeex-dev libssl0.9.8 libssl-dev libtiff4-dev libtiff-tools libvorbis-dev libwrap0-dev libxml2 \
libxml2-dev linux-headers-`uname -r` lrzsz make mc mcrypt mime-construct mysql-server-5.0 ncurses-dev \
ntp ntpdate openssh-server openssl patch pciutils php5 php5-cgi php5-cli php5-common php5-gd \
php5-mcrypt php5-mysql php-pear procps sox tofrodos unixodbc-dev unzip vim zlib1g-dev phpmyadmin

Nem todos os pacotes acima são dependências do Asterisk, alguns são softwares que serão utlizados nos demais tutoriais para adicionar funcionalidades e facilidades ao Asterisk.
Durante a instalação, será solicitada a senha do usuário root do mysql, basta digitar a senha e confirmar.
O phpMyAdmin irá solicitar informações sobre o servidor web, basta marcar a opção “apache2”.

2. Criar diretório para downloads (opcional)

# mkdir /downloads
# cd /downloads

3. Download dos pacotes

# wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.2.0.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.2.0.2.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.10.2.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-addons-1.4.9.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.4.26.2.tar.gz

4. Descompactar

# tar -zxf libpri-1.4.10.2.tar.gz -C /usr/src/
# tar -zxf asterisk-1.4.26.2.tar.gz -C /usr/src/
# tar -zxf asterisk-addons-1.4.9.tar.gz -C /usr/src/
# tar -zxf dahdi-linux-2.2.0.2.tar.gz -C /usr/src/
# tar -zxf dahdi-tools-2.2.0.tar.gz -C /usr/src/

5. Instalar pacotes

Libpri

# cd /usr/src/libpri-1.4.10.2/
# make
# make install

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 documentação do Asterisk.
make config → Ativa a inicialização automática 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/

Antes de instalar, é necessário fazer uma pequena alteração no arquivo drivers/dahdi/Kbuild

# vi drivers/dahdi/Kbuild

Comentar a linha 20, que deve ficar como a linha abaixo:

#obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_TOR2)             += tor2.o

Feito isto, é possível continuar com a instalação do dahdi

# make
# make install

Dahdi-Tools

# cd ../dahdi-tools-2.2.0/
# sh configure
# make
# make install
# make config

6. Reinicializar o sistema

# shutdown -r now

7. Verificar se o Asterisk está executando

# ps aux | grep asterisk

Resultado:

root      2767  0.0  2.2  33052 11408 ?        Ssl  08:48   0:00 /usr/sbin/asterisk
root      2985  0.0  0.1   3140   760 pts/0    R<+  09:16   0:00 grep asterisk

8. Verificar se as portas do Asterisk estão abertas

netstat -anp | grep asterisk

Resultado:

tcp        0      0 0.0.0.0:2000            0.0.0.0:*               OUÇA       2767/asterisk
tcp        0      0 0.0.0.0:1720            0.0.0.0:*               OUÇA       2767/asterisk
udp        0      0 0.0.0.0:2727            0.0.0.0:*                           2767/asterisk
udp        0      0 0.0.0.0:4520            0.0.0.0:*                           2767/asterisk
udp        0      0 0.0.0.0:5060            0.0.0.0:*                           2767/asterisk
udp        0      0 0.0.0.0:4569            0.0.0.0:*                           2767/asterisk
unix  2      [ ACC ]     STREAM     OUVINDO       6134     2767/asterisk       /var/run/asterisk.ctl

Neste ponto do tutorial o Asterisk já está instalado e funcionando perfeitamente.

9. Localização dos arquivos

Arquivos de configuração do Asterisk:

/etc/asterisk

Conteúdo do diretório:

# 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

Arquivos de sons, licenças, scripts, etc.

/var/lib/asterisk

Arquivos temporários, e arquivos gerados pelo Asterisk

/var/spool/asterisk

Arquivos de log, bilhetes, etc.

/var/log/asterisk

No próximo tutorial irei demonstrar como criar ramais, plano de discagem e configurar o softphone que será utilizado para efetuar ligações.

Até o próximo!

:wq!
Andrey Smith

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s