você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

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

Colaboração: Andrey Smith

Data de Publicação: 13 de Dezembro de 2009

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 \
    libcurl3-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 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 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 domysql, basta digitar a senha e confirmar. OphpMyAdmin irá solicitar informações sobre o servidor web, basta marcar a opçãoapache2.

  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



Veja a relação completa dos artigos de Andrey Smith