SlideShare uma empresa Scribd logo
1 de 12
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

Mais conteúdo relacionado

Mais procurados

Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxSoftD Abreu
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com OpenstackDalton Valadares
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008SergioSouza
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William SouzaTchelinux
 
Implatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxImplatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxAlvaro Gomes
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFLuiz Arthur
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosAlexandre Almeida
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinarhenriquesidney
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2Daniel
 
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLPalestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLfgsl
 
Palestra latinoware - Hardening Linux
Palestra latinoware - Hardening LinuxPalestra latinoware - Hardening Linux
Palestra latinoware - Hardening Linuxhdoria
 
Empacotamento Debian Básico
Empacotamento Debian BásicoEmpacotamento Debian Básico
Empacotamento Debian BásicoMarcelo Lira
 

Mais procurados (19)

Linux - Network
Linux - NetworkLinux - Network
Linux - Network
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William Souza
 
Implatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com LinuxImplatação de Sistemas de Segurança com Linux
Implatação de Sistemas de Segurança com Linux
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PF
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 
Glassfish41 debian76
Glassfish41 debian76Glassfish41 debian76
Glassfish41 debian76
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinar
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2
 
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLPalestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
 
Hacking Linux
Hacking LinuxHacking Linux
Hacking Linux
 
Palestra latinoware - Hardening Linux
Palestra latinoware - Hardening LinuxPalestra latinoware - Hardening Linux
Palestra latinoware - Hardening Linux
 
Empacotamento Debian Básico
Empacotamento Debian BásicoEmpacotamento Debian Básico
Empacotamento Debian Básico
 
Namespace
NamespaceNamespace
Namespace
 

Destaque

Case Study Presentation
Case Study PresentationCase Study Presentation
Case Study Presentationgabchick
 
1. ghidul angajarii -VariantaFinala
1. ghidul angajarii -VariantaFinala1. ghidul angajarii -VariantaFinala
1. ghidul angajarii -VariantaFinalaIcesicon
 
02 Portaluri cu locuri de muncă
02   Portaluri cu locuri de muncă02   Portaluri cu locuri de muncă
02 Portaluri cu locuri de muncăIcesicon
 
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетам
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетамОлег Волошин, ИМБП РАН. Первые шаги на пути к другим планетам
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетамОльга Черкашина
 
Multi-Wavelength Analysis of Active Galactic Nuclei
Multi-Wavelength Analysis of Active Galactic NucleiMulti-Wavelength Analysis of Active Galactic Nuclei
Multi-Wavelength Analysis of Active Galactic NucleiSameer Patel
 

Destaque (6)

Case Study Presentation
Case Study PresentationCase Study Presentation
Case Study Presentation
 
1. ghidul angajarii -VariantaFinala
1. ghidul angajarii -VariantaFinala1. ghidul angajarii -VariantaFinala
1. ghidul angajarii -VariantaFinala
 
02 Portaluri cu locuri de muncă
02   Portaluri cu locuri de muncă02   Portaluri cu locuri de muncă
02 Portaluri cu locuri de muncă
 
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетам
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетамОлег Волошин, ИМБП РАН. Первые шаги на пути к другим планетам
Олег Волошин, ИМБП РАН. Первые шаги на пути к другим планетам
 
Multi-Wavelength Analysis of Active Galactic Nuclei
Multi-Wavelength Analysis of Active Galactic NucleiMulti-Wavelength Analysis of Active Galactic Nuclei
Multi-Wavelength Analysis of Active Galactic Nuclei
 
mazda 6 2014
mazda 6 2014mazda 6 2014
mazda 6 2014
 

Semelhante a Asterisk

Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Apresentação asterisk
Apresentação asteriskApresentação asterisk
Apresentação asteriskVicente Nobre
 
Project HA
Project HAProject HA
Project HAKarpv
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida realFernando Ike
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Asterisk central ipbx debian [artigo]
Asterisk central ipbx   debian [artigo]Asterisk central ipbx   debian [artigo]
Asterisk central ipbx debian [artigo]Carlos Melo
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...tdc-globalcode
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbThiago Santos
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rochaSENAC RIO
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Bruno Castelucci
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalaçãoLuís Eduardo
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetMatheus Lincoln
 

Semelhante a Asterisk (20)

Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
Apresentação asterisk
Apresentação asteriskApresentação asterisk
Apresentação asterisk
 
Project HA
Project HAProject HA
Project HA
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Asterisk central ipbx debian [artigo]
Asterisk central ipbx   debian [artigo]Asterisk central ipbx   debian [artigo]
Asterisk central ipbx debian [artigo]
 
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
TDC2017 | POA Trilha Programacao Funicional - (Nunca) Ouvi falar de Rust... m...
 
Instalação do Asterisk
Instalação do AsteriskInstalação do Asterisk
Instalação do Asterisk
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 
Tutorial beagleboard
Tutorial beagleboardTutorial beagleboard
Tutorial beagleboard
 
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry PiCriando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
 
Gentoo por marcelo rocha
Gentoo por marcelo rochaGentoo por marcelo rocha
Gentoo por marcelo rocha
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
 
Zabbix
ZabbixZabbix
Zabbix
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Redes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internetRedes Mesh wifi para disponibilização de acesso à internet
Redes Mesh wifi para disponibilização de acesso à internet
 

Asterisk

  • 1. 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
  • 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 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
  • 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ú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
  • 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 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
  • 11. 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
  • 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