Asterisk - Construindo um PBX IP com Software
Livre (Parte 1)
AsteriskDigium
Licenciamento a custo zero - Licenciado sob a GPL (General Public License).FlexibilidadeReduçã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


asterisk-110618153002-phpapp02.odt                                                                       1/12
• 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

       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


asterisk-110618153002-phpapp02.odt                                                                      2/12
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


asterisk-110618153002-phpapp02.odt                                                     3/12
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


asterisk-110618153002-phpapp02.odt                                                                   4/12
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


Asterisk - Construindo um PBX IP com Software
Livre (Parte 2)
1. Pré-requisitos
2. Informações gerais
Será utilizada a mesma configuração da parte 1 do tutorial.
Mãos à obra!


3. Criar ramais SIP
sip.conf
Renomear sip.conf
# mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.orig

Criar e editar um novo arquivo sip.conf
# vi /etc/asterisk/sip.conf

[general]
bindport = 5060
bindaddr = 0.0.0.0



asterisk-110618153002-phpapp02.odt                                                                  5/12
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] Esta seção define os valores default (padrão) para as demais seções e/ou protocolo.
            Porta utilizada pelo protocolo. O SIP utiliza as portas 5060 TCP e UDP, e 5061 TCP para TSL
bindport
            (Transporte Layer Security).
            Endereço IP onde o Asterisk aceitará conexões. Se configurado como 0.0.0.0, aceitará
bindaddr
            conexões em qualquer IP.
disallow    Desabilita codecs, a opção all desabilita todos codecs.
allow       Habilita o (s) codec (s) especificado (s).
            Configuração padrão de idioma para users/peers. É possível configurar individualmente em
language
            cada peer.
[XXXX]      Identificação do ramal.
            Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou receber e efetuar
type
            chamadas (friend).
            Define o contexto ao qual o ramal pertence. Este contexto será criado posteriormente no plano
context
            de discagem.
secret      Senha para registrar o ramal no servidor.
            Informa onde o ramal está registrado. Aceita endereço dinâmico, quando configurado como
host
            dynamic.


4. Criar ramais IAX
Renomear iax.conf
# mv /etc/asterisk/iax.conf /etc/asterisk/iax.conf.orig

Criar e editar um novo arquivo iax.conf
# vi /etc/asterisk/iax.conf

Conteúdo do arquivo:
[general]



asterisk-110618153002-phpapp02.odt                                                                   6/12
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]            Esta seção define os valores default (padrão) para as demais seções e/ou protocolo.
bindport             Porta utilizada pelo protocolo. O IAX utiliza a porta 4569 UDP.
                     Endereço IP onde o Asterisk aceitará conexões. Se configurado como 0.0.0.0,
bindaddr
                     aceitará conexões em qualquer IP.
disallow             Desabilita codecs, a opção all desabilita todos codecs.
allow                Habilita o (s) codec (s) especificado (s).
                     Configuração padrão de Idioma para users/peers. É possível configurar
language
                     individualmente em cada peer.
[XXXX]               Identificação do ramal.
                     Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou
type
                     receber e efetuar chamadas (friend).
                     Define o contexto ao qual o ramal pertence. Este contexto será criado
context
                     posteriormente no plano de discagem.
secret               Senha para registrar o ramal no servidor.
                     Informa onde o ramal está registrado. Aceita endereço dinâmico, quando
host
                     configurado como dynamic.
requirecalltoken =
                     Informa que não há necesside de validar a chamada por token
no


5. Criar o plano de discagem (Dial Plan)
Renomear extensions.conf
# mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.orig

Criar e editar um novo arquivo extensions.conf


asterisk-110618153002-phpapp02.odt                                                                  7/12
# vi /etc/asterisk/extensions.conf

Conteúdo 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 abrangência, o plano de discagem terá um tutorial exclusivo.


6. Ativar as configurações
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>

Recarregar as configurações SIP
sip reload

Mostrar ramais (peers) criados no sip.conf
sip show peers

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]

Recarregar as configurações IAX
iax2 reload

Mostrar ramais (peers) criados no iax.conf


asterisk-110618153002-phpapp02.odt                                                         8/12
iax2 show peers

Resultado:
Name/Username    Host                 Mask                           Port              Status
1004             (Unspecified)   (D) 255.255.255.255                 0                 Unmonitored
1003             (Unspecified)   (D) 255.255.255.255                 0                 Unmonitored
2 iax2 peers [0 online, 0 offline, 2 unmonitored]

Recarregar as configurações do plano de discagem
dialplan reload

Resultado:
Dialplan reloaded.

Verificar se o plano de discagem foi carregado
dialplan show tutorial

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. Configuração do softphone
Softphone é um software utilizado para efetuar chamadas telefônicas, a partir de um computador.
Para efetuar os testes irei utilizar o sofphone Zoiper, que possui versões 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 estão efetuando chamadas entre si.
A instalação do Zoiper é bastante simples, por este motivo não será abordada neste tutorial.
Depois de instalado, basta executá-lo.
Se quiser que o Zoiper inicie ao fazer o login, clique em Yes.




Clique no ícone da ferramenta (acima do número 6) para acessar o menu de configurações.

asterisk-110618153002-phpapp02.odt                                                                      9/12
Clique em Add new SIP account, e informe o nome da conta em Name.




Em SIP account options preencha conforme a figura abaixo e clique em Ok.




Clique em Add new IAX account, e informe o nome da conta em Name.




Em IAX account options preencha conforme a figura abaixo e clique em Ok.




Com as contas criadas, o próximo passo é 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.




asterisk-110618153002-phpapp02.odt                                                                   10/12
Traduzindo a imagem abaixo:
Incoming call é ramal que está efetuando a chamada para 1001. É possível aceitar (Accept), rejeitar
(Regect) ou ignorar (Ignore).




O ideal é executar este teste com mais de um computador e com uso de headset. Porém, apenas para efeito
de teste, já é possível comprovar que a comunicação entre ramais está funcionando.


8. Verificar ramais registrados
Os comandos abaixo são executados na CLI do Asterisk.
Verificar ramais SIP.
sip   show peers

Resultado:



asterisk-110618153002-phpapp02.odt                                                                    11/12
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]

Verificar ramais IAX.
iax2 show peers

Resultado:
Name/Username    Host                 Mask                         Port              Status
1004             (Unspecified)   (D) 255.255.255.255               0                 Unmonitored
1003             192.168.0.134   (D) 255.255.255.255               4569              Unmonitored
2 iax2 peers [0 online, 0 offline, 2 unmonitored]

Os resultados acima estão informando em que host e portas os ramais estão registrados.
No próximo tutorial irei demonstrar como criar uma Unidade de Resposta Audível (URA).




asterisk-110618153002-phpapp02.odt                                                                 12/12

Asterisk

  • 1.
    Asterisk - Construindoum PBX IP com Software Livre (Parte 1) AsteriskDigium Licenciamento a custo zero - Licenciado sob a GPL (General Public License).FlexibilidadeReduçã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 asterisk-110618153002-phpapp02.odt 1/12
  • 2.
    • 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 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 asterisk-110618153002-phpapp02.odt 2/12
  • 3.
    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 asterisk-110618153002-phpapp02.odt 3/12
  • 4.
    7. Verificar seo 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 asterisk-110618153002-phpapp02.odt 4/12
  • 5.
    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 Asterisk - Construindo um PBX IP com Software Livre (Parte 2) 1. Pré-requisitos 2. Informações gerais Será utilizada a mesma configuração da parte 1 do tutorial. Mãos à obra! 3. Criar ramais SIP sip.conf Renomear sip.conf # mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.orig Criar e editar um novo arquivo sip.conf # vi /etc/asterisk/sip.conf [general] bindport = 5060 bindaddr = 0.0.0.0 asterisk-110618153002-phpapp02.odt 5/12
  • 6.
    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] Esta seção define os valores default (padrão) para as demais seções e/ou protocolo. Porta utilizada pelo protocolo. O SIP utiliza as portas 5060 TCP e UDP, e 5061 TCP para TSL bindport (Transporte Layer Security). Endereço IP onde o Asterisk aceitará conexões. Se configurado como 0.0.0.0, aceitará bindaddr conexões em qualquer IP. disallow Desabilita codecs, a opção all desabilita todos codecs. allow Habilita o (s) codec (s) especificado (s). Configuração padrão de idioma para users/peers. É possível configurar individualmente em language cada peer. [XXXX] Identificação do ramal. Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou receber e efetuar type chamadas (friend). Define o contexto ao qual o ramal pertence. Este contexto será criado posteriormente no plano context de discagem. secret Senha para registrar o ramal no servidor. Informa onde o ramal está registrado. Aceita endereço dinâmico, quando configurado como host dynamic. 4. Criar ramais IAX Renomear iax.conf # mv /etc/asterisk/iax.conf /etc/asterisk/iax.conf.orig Criar e editar um novo arquivo iax.conf # vi /etc/asterisk/iax.conf Conteúdo do arquivo: [general] asterisk-110618153002-phpapp02.odt 6/12
  • 7.
    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] Esta seção define os valores default (padrão) para as demais seções e/ou protocolo. bindport Porta utilizada pelo protocolo. O IAX utiliza a porta 4569 UDP. Endereço IP onde o Asterisk aceitará conexões. Se configurado como 0.0.0.0, bindaddr aceitará conexões em qualquer IP. disallow Desabilita codecs, a opção all desabilita todos codecs. allow Habilita o (s) codec (s) especificado (s). Configuração padrão de Idioma para users/peers. É possível configurar language individualmente em cada peer. [XXXX] Identificação do ramal. Define se o ramal pode receber chamadas (peer), efetuar chamadas (user), ou type receber e efetuar chamadas (friend). Define o contexto ao qual o ramal pertence. Este contexto será criado context posteriormente no plano de discagem. secret Senha para registrar o ramal no servidor. Informa onde o ramal está registrado. Aceita endereço dinâmico, quando host configurado como dynamic. requirecalltoken = Informa que não há necesside de validar a chamada por token no 5. Criar o plano de discagem (Dial Plan) Renomear extensions.conf # mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.orig Criar e editar um novo arquivo extensions.conf asterisk-110618153002-phpapp02.odt 7/12
  • 8.
    # vi /etc/asterisk/extensions.conf Conteúdodo 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 abrangência, o plano de discagem terá um tutorial exclusivo. 6. Ativar as configurações 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> Recarregar as configurações SIP sip reload Mostrar ramais (peers) criados no sip.conf sip show peers 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] Recarregar as configurações IAX iax2 reload Mostrar ramais (peers) criados no iax.conf asterisk-110618153002-phpapp02.odt 8/12
  • 9.
    iax2 show peers Resultado: Name/Username Host Mask Port Status 1004 (Unspecified) (D) 255.255.255.255 0 Unmonitored 1003 (Unspecified) (D) 255.255.255.255 0 Unmonitored 2 iax2 peers [0 online, 0 offline, 2 unmonitored] Recarregar as configurações do plano de discagem dialplan reload Resultado: Dialplan reloaded. Verificar se o plano de discagem foi carregado dialplan show tutorial 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. Configuração do softphone Softphone é um software utilizado para efetuar chamadas telefônicas, a partir de um computador. Para efetuar os testes irei utilizar o sofphone Zoiper, que possui versões 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 estão efetuando chamadas entre si. A instalação do Zoiper é bastante simples, por este motivo não será abordada neste tutorial. Depois de instalado, basta executá-lo. Se quiser que o Zoiper inicie ao fazer o login, clique em Yes. Clique no ícone da ferramenta (acima do número 6) para acessar o menu de configurações. asterisk-110618153002-phpapp02.odt 9/12
  • 10.
    Clique em Addnew SIP account, e informe o nome da conta em Name. Em SIP account options preencha conforme a figura abaixo e clique em Ok. Clique em Add new IAX account, e informe o nome da conta em Name. Em IAX account options preencha conforme a figura abaixo e clique em Ok. Com as contas criadas, o próximo passo é 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. asterisk-110618153002-phpapp02.odt 10/12
  • 11.
    Traduzindo a imagemabaixo: Incoming call é ramal que está efetuando a chamada para 1001. É possível aceitar (Accept), rejeitar (Regect) ou ignorar (Ignore). O ideal é executar este teste com mais de um computador e com uso de headset. Porém, apenas para efeito de teste, já é possível comprovar que a comunicação entre ramais está funcionando. 8. Verificar ramais registrados Os comandos abaixo são executados na CLI do Asterisk. Verificar ramais SIP. sip show peers Resultado: asterisk-110618153002-phpapp02.odt 11/12
  • 12.
    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] Verificar ramais IAX. iax2 show peers Resultado: Name/Username Host Mask Port Status 1004 (Unspecified) (D) 255.255.255.255 0 Unmonitored 1003 192.168.0.134 (D) 255.255.255.255 4569 Unmonitored 2 iax2 peers [0 online, 0 offline, 2 unmonitored] Os resultados acima estão informando em que host e portas os ramais estão registrados. No próximo tutorial irei demonstrar como criar uma Unidade de Resposta Audível (URA). asterisk-110618153002-phpapp02.odt 12/12