SlideShare ist ein Scribd-Unternehmen logo
1 von 87
Downloaden Sie, um offline zu lesen
Asterisk

  Vicente de Paula Nobre
vicente.proj@hotmail.com
Principais Tópicos
 O que é o asterisk
 Alguns Recursos
 Arquitetura do asterisk
 Hardware e software
 Cenários de uso
 Instalação no Centos 5
 Principais arquivos de configuração
Principais Tópicos
 Sintaxe de configuração
 Plano de discagem com cliente SIP
 Correio de voz, salas de conferência e Filas
 Estacionamento e transferência de chamadas
 Captura e gravação de chamadas
 Plano de discagem com cliente IAX
 Interligar dois servidores Asterisk com IAX em
 modo trunk
O que é o Asterisk
 É um PABX IP baseado em software livre sob
 licença GPL, que pode rodar em vários sistemas
 operacionais, mais que se adéqua melhor ao
 Linux

 Interliga redes IPs a rede de telefonia pública
O que é o Asterisk
 Configuração de Recursos avançados e a
 agregação de novas funcionalidades.

 Foi desenvolvido pela Digium que também
 investe em Hardware de baixo custo

 Software de código aberto, muitos
 desenvolvedores contribuem para o seu
 crescimento.
Alguns Recursos

 Salas de Conferências
 Gravação de chamadas
 Transferência de ligações
 Estacionamento de chamadas
 Filas de atendimento
 Correio de voz
Alguns Recursos

 URA (unidade de resposta audível)
 Planos de discagens flexíveis
 Música em espera
 Monitoramento de chamadas
 Uso de banco de dados (MySQL, PostgreSQL)
 Geração de bilhetagem
Arquitetura do Asterisk
Arquitetura do Asterisk
 Canais
 - Linhas Telefônicas;
 - Analógicas, Digitais e Virtuais;
 - Modulados por Codecs;

 Encapsulados por um Protocolo Sinalizador
 - Estabelecer as conexões;
 - Campainha;
 - Desconexão;
Arquitetura do Asterisk
 Codecs
 – Compressão da voz;

 Principais
 – G.729a – 8Kbits com licença;
 – G.711 ulaw - usado nos EUA 64 Kbps;
 – G.711 alaw - usado na Europa e Brasil 64 Kbps;
 – G.723.1 - 5.3-6 Kbps com licença;
 – GSM - 12-13 Kbps, Telefonia Celular;
Arquitetura do Asterisk
 Protocolos

 – H323 – Antigo protocolo para VoIP.
 – IAX – Inter-Asterisk Exchange Protocol;
 – SIP – Session Initiation Protocol;
 – Skinny - Telefones IP da Cisco;
 – ZAP/DAHDI – Hardware de Digium;
Hardware e software
• Adaptador   • SoftFone X-lite • Telefone IP
Hardware e software




       • Placa de Telefonia IP
Exemplo com placa de Telefonia
Exemplo com banco de canais
Exemplo Interligando matriz e filial
Instalação
 Utilizando uma distribuição Linux como o Centos 5:
Instalação
 Baixa-se os pacotes do site da Digium:

 - asterisk-1.4.40.tar.gz
 - asterisk-addons-1.4.13.tar.gz
 - dahdi-linux-2.4.1.1.tar ou zaptel-1.4.12.1.tar
 - dahdi-tools-2.4.1.tar.gz
 - libpri-1.4.11.5.tar.gz
 - sounds-1.0-pt_BR.tar.gz
 - Disc-OS-Sounds-1.0-pt_BR.tar
Instalação
Baixa-se os pacotes do site da Digium:

wget http://downloads.digium.com/pub/asterisk/asterisk-
 1.4.40.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-
 1.4.11.5.tar.gz
wget http://downloads.digium.com/pub/telephony/dahdi-
 linux/dahdi-linux-2.4.1.1.tar
wget http://downloads.digium.com/pub/telephony/dahdi-
 tools/ dahdi-tools-2.4.1.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-
 addons-1.4.13.tar.gz
Instalação
 Copiam-se todos os arquivos para /usr/src

 - Exemplo:
  # cp asterisk-1.4.40.tar.gz /usr/src

 - Para copiar todos os arquivos:
 # cp *.tar.gz /usr/src
Instalação
 Entra no diretório e descompacta

 cd /usr/src
 # tar xzfv asterisk-1.4.40.tar.gz
 # tar xzfv asterisk-addons-1.4.13.tar.gz
 # tar xzfv dahdi-linux-2.4.1.1.tar
 # tar xzfv dahdi-tools-2.4.1.tar.gz
 # tar xzfv libpri-1.4.11.5.tar.gz
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote dahdi-linux
  # cd dahdi-linux
  # vim README (opcional – para ver como se instala)
  # make clean
  # ./configure
  # make
  # make install
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote dahdi-tools
  # cd dahdi-tools-2.4.1
  # make clean
  # ./configure
  # make
  # make install
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote libpri
  # cd libpri-1.4.11.5
  # make clean
  # make
  # make install
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote asterisk
 # cd asterisk-1.4.40
 # make clean
 # ./configure
 # make menuselect (habilita/desabilita as opções do asterisk)
 # make
 # make install
 # make samples (arquivos de exemplos)
 # make config (configura os módulos da maneira padrão)
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote asterisk-addons
 # cd asterisk-addons-1.4.13
 # make clean
 # ./configure
 # make
 # make menuselect
 # make install
 # make samples
Instalação
 Compilação e instalação dos Arquivos
 Instalando o pacote sounds

 # cp sounds-1.0-pt_BR.tar.gz /var/lib/asterisk
 # cd /var/lib/asterisk
 # tar xzfv sounds-1.0-pt_BR.tar.gz

 ou

 # cp Disc-OS-Sounds-1.0-pt_BR.tar /var/lib/asterisk
 # cd /var/lib/asterisk
 # tar xf Disc-OS-Sounds-1.0-pt_BR.tar
Carregando o dahdi_dummy
 Para que funcione salas de conferência é preciso ter uma
 placa instalada no servidor para gerar uma temporização,
 no caso de não haver é necessário carregar o modulo
 dahdi_dummy ou ztdummy.

 # lsmod | grep dahdi_dummy
 # modprobe dahdi_dummy

 ou no caso do pacote zaptel-1.4.12.1.tar

 # lsmod | grep ztdummy
 # modprobe ztdummy
Carregando o dahdi_dummy
 # echo "dahdi_dummy" >> /etc/modules

 O dahdi é carregado no Linux como um serviço:

 # /etc/init.d/dahdi start
 # /etc/init.d/asterisk restart

 Depois asterisk -r e execute o comando "dahdi show
 status"
Iniciando e parando o Asterisk
 Iniciando

 # /usr/sbin/asterisk –vvvc

 Parando

 # stop now
Arquivos de configuração
 O asterisk é controlado por arquivos de configuração localizados
 em /etc/asterisk.

 No formato .conf os arquivos são divididos em sessões:

 [sessao1]
 chave = valor ; Designação da variável
 [sessao2]
 objeto => valor ; Declaração do objeto
 [sessao3]
 objeto2 => valor ; Declaração do objeto2

 ; Todos os arquivos seguem a mesma sintaxe
Arquivos de configuração
 Existem algumas sessões com funções especificas:

 [general] .: Define os valores padrão para todas as
 outras sessões

 [channels] .: Especifica os canais de comunicação
 dentro do arquivo zapata.conf

 [globals] .: Criação das variáveis globais dentro de um
 plano de discagem
Estrutura do sistema de arquivos
 Diretorio dos arquivos de configuração
 /etc/asterisk

 Diretorio dos Modulos, aplicações e canais
 /usr/lib/asterisk/modules

 Diretorio de gravação da voz usadas no correio de voz
 /var/lib/asterisk/sounds

 Diretorio para Scripts AGI (Asterisk Gateway
 Interface)
 /var/lib/asterisk/agi-bin
Estrutura do sistema de arquivos
  Principais arquivos:

sip.conf .: Clientes SIP.
iax.conf .: Clientes IAX.
extensions.conf.: Plano de discagem.
voicemail.conf.: Correio de voz.
queues.conf.: Filas de atendimentos.
agents.conf.: Agentes que poderão atender chamadas em filas.
meetme.conf.: Salas de conferência.
manager.conf.: Administrador do servidor.
features.conf: Configuração de transferências, estacionamento,
gravação de chamadas e etc.
Arquivo Sip.conf
 Contém parâmetros de configuração dos telefones e
 operadoras SIP.

 Os clientes devem estar configurados antes que
 possam fazer e receber chamadas.
Arquivo Sip.conf
 Na sessão [general], define-se os valores das variáveis padrão
 para todos os canais SIP.

 Através da seguinte sintaxe:
 [general]
 variavel=valor1
 variavel=valor2

 [nome_sessao]
 type=friend/peer/user
 context=NomeContexto
 host=dynamic
 secret=senha_da_conta
Arquivo Sip.conf
Alguns parâmetros da sessão general:

allow: Permite que um determinado codec seja usado
disallow: Proíbe um determinado codec
bindaddr: IP onde o Asterisk irá esperar pelas conexões SIP
context: Configura o contexto padrão para todos os cliente SIP
 port: Porta para conexões de entrada SIP, o padrão é 5060
 maxexpirey: Tempo máximo para registro em segundos
 defaultexpirey: Tempo padrão para registro em segundos
 register: Registra o Asterisk com outro host
Arquivo Sip.conf
Exemplo de configuração sessão general:
 [general]
 port=5060
 bindaddr=0.0.0.0
 context=ramais
 disallow=all
 allow=gsm
 maxexpirey=120
 defaultexpirey=80
 register=>vicente@freeworlddialup.com/5000
Arquivo Sip.conf
 As seções seguintes definem os parâmetros das entidades
 SIP tais como o nome de usuário, senha e endereço IP.

 Três categorias de entidades SIP são definidas:

 peer: Entidade que recebe chamadas através do asterisk

 user: Entidade que faz chamadas através do Asterisk

 friend: Entidade que pode fazer e receber chamadas
Arquivo Sip.conf
Principais campos das sessões:
 type: Configura a classe de conexão, opções são peer, user e friend

 host: Configura o endereço IP ou o nome do host. Pode-se usar
 também a opção ‘dynamic’ onde se espera que o telefone se registre

 username: Esta opção configura o nome do usuário que o Asterisk
 tenta conectar quando uma chamada é recebida

 secret: Senha para autenticar os peers e users fazendo uma chamada
Arquivo Sip.conf
 [general]                [2050]
 context=ramais           type=friend
 port=5060                host=dynamic
 bindaddr=0.0.0.0         username=2050
 disallow=all             secret= 351654
 allow=alaw               context=externo
 language=pt_BR           callerid=maria<2050>
 [2000]
 type=friend
 host=dynamic
 username=2000
 secret= 698569
 callerid=vicente<2000>
Arquivo Extensions.conf
 O plano de discagem é representado pelo
 extensions.conf

 Consiste de uma lista de instruções ou passos que o
 Asterisk deve seguir

 Essas instruções são disparadas de acordo com uma
 prioridade a partir dos dígitos recebidos de um canal
 ou aplicação
Arquivo Extensions.conf
 O plano de discagem é dividido em quatro conceitos:

 - Contextos
 - Extensões
 - Prioridades
 - Aplicações

 Os contextos são definidos para cada canal dentro dos
 arquivos sip.conf, iax.conf, h323.conf e etc.
Arquivo Extensions.conf
Contextos
 São responsáveis pela organização e segurança do plano de
 discagem

 Definem o escopo e permitem separar diferentes partes do
 plano de discagem

 Estão ligados diretamente aos canais, cada canal existe
 dentro de um contexto

 Quando uma ligação entra no Asterisk por um canal ela é
 processada dentro de um contexto
Arquivo Extensions.conf
Contextos
 Os contextos recebem o seu nome dentro de colchetes ([]s)

 Exemplo:
 [ramais]

 Todas as instruções colocadas após a definição são partes
 do contexto
Arquivo Extensions.conf
Extensões
 Dentro de cada contexto serão definidas as extensões
 Uma extensão é uma string que vai disparar um evento

 [ramais]
 exten=>2000,1,Dial(SIP/2000,20)
 exten=>2000,2,VoiceMail(u300) ;indisponível
 exten=>2000,101,VoiceMail(b300) ;ocupado

 A instrução “exten=> “ descreve qual o próximo passo para a ligação
 O “2000” é o numero discado
 O “1”, “2”e “101” são as prioridades que determinam a ordem de
 execução
Arquivo Extensions.conf
Extensões

 Extensões determinam o fluxo das chamadas
 Uma extensão é definida com a sintaxe:

 exten=> extensão, prioridade(nome), aplicação

 O comando “exten=>” é seguido por um número da
 extensão, uma vírgula, a prioridade, outra vírgula e a
 aplicação.
Arquivo Extensions.conf
Prioridades

 Cada extensão é executada dentro de um contexto através
 de prioridades e não por ordem de definição no arquivo

  Cada prioridade chama uma aplicação especifica

 [ramais]
 exten=>_20XX,1,Dial(SIP/${EXTEN},20)
 exten=>_20XX,n,VoiceMail(u300)
 exten=>_20XX,n,Hangup()
Arquivo Extensions.conf
Aplicações

 As aplicações tratam o canal de voz:
 - Tocando sons.
 - Aceitando dígitos.
 - Correio de voz.
 - Sala de conferência.
 - Desligando uma chamada e etc.

 As aplicações são chamadas com opções que afetam a sua
 forma de funcionamento
Arquivo Extensions.conf
Exemplo de Aplicações
 São os utilitários chamados a partir do plano de discagem:

  - Answer.: Atende a chamada e sincroniza o canal de áudio
  - PlayBack.: Reproduz um arquivo de áudio localizado em
     /var/lib/asterisk/sounds
  - BackGround.: Faz a mesma função do PlayBack, mas permite a interação
     com o usuário
  - Dial.: Conecta dois canais de comunicação
  - MeetMe.: Entra em uma sala de conferência configurada em meetme.conf
  - Queue.: Entra em uma determinada fila configurada em queues.conf
  - VoiceMail.: Chama uma caixa de mensagens configurado em
     voicemail.conf
  - Hangup.: Encerra a chamada
Plano de discagem simples
 Passos para a criação de um ramal:
 1 - Cadastrá-lo no arquivo de configuração referente ao
 protocolo sip.conf, iax.conf, h323.conf e etc.

 2 – Definir o contexto ao qual a extensão participará

 3 - Definir dentro do arquivo extensions.conf o plano
 de discagem para esse ramal
Plano de discagem simples
 Arquivo sip.conf
 Define valores padrão   Configura a extensão 3000
 [general]               [3000]
 port=5060                type=friend
 bindaddr=0.0.0.0         host=dynamic
 disallow=all             username=3000
 allow=alaw               secret=654321
 language=pt_BR           callerid=vicente<3000>
                          mailbox=300@default
                          context=local
Plano de discagem simples
 Arquivo sip.conf
  Configura a extensão 3050
  [3050]
  type=friend
  host=dynamic
  username=3050
  secret=123456
  callerid=maria<3050>
  mailbox=300@default
  context=local
Plano de discagem simples
 Arquivo extensions.conf
 [local]
 exten=> 3000,1,Dial(SIP/3000,20)
 exten=> 3000,2,HangUp()
 exten=> 3050,1,Dial(SIP/3050,20)
 exten=> 3050,2,HangUp()

 [local]
 exten=> _30XX,1,Answer
 exten=> _30XX,n,Wait(0.5)
 exten=> _30XX,n,PlayBack(hello-word)
 exten=> _30XX,n,Authenticate(875)
 exten=> _30XX,n,Dial(SIP/${EXTEN},20)
 exten=> _30XX,n,HangUp()
Arquivo Voicemail.conf
 Permite que uma chamada ocupada ou não atendida seja enviada
 para uma secretária eletrônica
 Passos para a criação de um correio de voz:

 1. Em voicemail.conf defini-se os usuários e senhas para o
 correio de voz.

 2. Em extensions.conf configura-se uma extensão para que
 uma chamada ocupada ou não atendida seja direcionada para a
 aplicação VoiceMail().

 3. Configura-se uma extensão para que o usuário possa ouvir seu
 correio de voz.
Arquivo Voicemail.conf
 Voicemail.conf                        Sip.conf
 [general]                             [4000]
 format=gsm                            mailbox=600@caixa_msg
 serveremail=asterisk@hotmail.com
 maxlogins=5
 maxmsg=100
 delete=no
 attach=yes

 [caixa_msg]
 include => general
  600 =>
123,vicente,vicente.proj@hotmail.com
Arquivo Voicemail.conf
Extensions.conf
[local]
include=>correio
 exten => _40XX,1,Dial(SIP/${EXTEN},40)
 exten => _40XX,2,GoToIf($[${DIALSTATUS} = CHANUNAVAIL] ? 5)
 exten => _40XX,3,GoToIf($[${DIALSTATUS} = BUSY] ? 6)
 exten => _40XX,4,HangUp()
 exten => _40XX,5,VoiceMail(u600@caixa_msg) ; indisponível
 exten => _40XX,6,VoiceMail(b600@caixa_msg) ; ocupado
; Acceso ao correio de voz
[correio]
exten => 100, 1, VoiceMailMain(600@caixa_msg)
exten=> 100,n,HangUp()
Arquivo meetme.conf
 A conferência no Asterisk é feita usando a aplicação
 MeetMe()
 O MeetMe() é uma ponte de videoconferência, que pode
 funcionar em qualquer tipo de canal

 ;meetme.conf
 [rooms]
 conf=>sala,senha

 ;Exemplo
 conf=> 500
 conf=> 500,123456
Arquivo meetme.conf
 No arquivo extensions.conf pode ser definido uma
 nova sessão chamada conferencia e essa sessão ser
 incluída na sessão local através do parâmetro include.
 [local]
 include=>conferencia
 exten=> _30XX,1,Answer
 exten=> _30XX,n,Wait(0.5)
 exten=> _30XX,n,PlayBack(hello-world)
 exten=> _30XX,n,Authenticate(875)
 exten => _30XX,n,Dial(SIP/${EXTEN},20)
 exten => _30XX,n,Hangup()
Arquivo meetme.conf
 [conferencia]
  exten=> 500,1,Answer
  exten=> 500,n,MeetmeCount(500,total)
  exten=> 500,n,ExecIf($[${total}=6]?HangUp)
  exten=> 500,n,MeetMe(500)
  exten=> 500,n,HangUp()
Arquivo queues.conf
Arquivo queues.conf
 As filas de atendimento são criadas no arquivo queues.conf

  As filas possuem agentes para atender chamadas que são
 configuradas no arquivo agents.conf

 Podem ser configuradas mensagens durante o tempo de
 espera
 – Propagandas
 – Tempo médio de espera
 – Posição na fila
Exemplo de Fila
 arquivo queues.conf

 [telemarkting]
 musicclass=default
 announce= anunciodafila
 timeout=15
 retry=5
 strategy=roundrobin
 monitor-format=gsm
 member=agent/1000
 member=agent/1001
 member=agent/1002
Exemplo de Fila
 arquivo agents.conf

 [agents]
 agent => 1000,123,agente1
 agent => 1001,1234,agente2
 agent => 1002,12345,agente3
Exemplo de Fila
 arquivo extensions.conf

 [telemarketing]
 exten=> 800,1,Answer
 exten=> 800,2,Queue(telemarketing)

 [login]
 exten=> 900,1,Answer
 exten=> 900,2,AgentLogin()
Estacionamento de Chamadas
 Coloca uma chamada em uma fila de espera, para que algum
 outro ramal possa capturá-lo. Configurado no arquivo
 features.conf

 parkext=700.: Extensão onde se deve transferir a chamada
 parkpos=701-709.: Salas disponíveis para o estacionamento
 context=parkedcalls.: Contexto com regras de estacionamento
 parkingtime=60.: Tempo que a ligação ficará estacionada

No arquivo extensions.conf adiciona-se a seguinte linha
include=>parkedcalls
Transferência de chamadas
 Existem duas formas de transferências:
 -As cegas(blind transfer)
 Não há a consulta previa do destinatário da chamada,
 é executado através da tecla #

 -Assistida(attended tranfer)
  Há consulta previa do destinatário da chamada,
 executado pela tecla FLASH
Transferência de chamadas
 Existem duas formas de transferências:
 São configuradas no arquivo features.conf:

- blindxfer.: Define o código para transferência as
 cegas o padrão é o caractere #(sustenido)

- atxfer.: Define o código para transferência assistida o
 padrão é o *2
Captura de chamadas
 Transferir uma chamada que está tocando em outro ramal para o
 seu e assim atendê-lo

- Captura em grupo:

É Configurado no arquivo no arquivo features.conf
especificando o parâmetro:
pickupexten.: *8     ;valor padrão

Agrupa-se os canais por meio de dois parâmetros:
callgroup.: Grupo, o qual o canal faz parte
pickupgroup.: Grupos que os canais podem capturar chamadas
Captura de chamadas
Exemplo:
;arquivo sip.conf ou iax.conf e etc
[1001]
callgroup=1
pickupgroup=1,2

 [1002]
callgroup=2
pickupgroup=2

 Obs.: Essa forma de captura de chamadas funciona apenas para canais que
 utilizem o mesmo protocolo de sinalização como o SIP, IAX, H323 e etc.
Captura de chamadas
Captura direta:
 Captura uma chamada diretamente especificando o ramal que se
 deseja capturar, independente do grupo e protocolo

 Implementa-se dentro do arquivo extensions.conf através da
 aplicação PickUp()

 Sintaxe:
 PickUp(extensão@contexto)

 Exemplo:
 exten=> _030xx,1,PickUp(${EXTEN:1}@local)
Gravação de chamadas
 - MixMonitor.: Grava o áudio da chamada no formato
 da extensão especificada

 - Sintaxe:
 MixMonitor(arquivo.ext,opções)

 - Opções:
  a .: Adiciona no final do arquivo a gravação ao invés de
 subscrever o áudio
  b .: Grava o áudio depois da chamada ser atendida
Gravação de chamadas
Exemplo:
 [local]
 exten=> _40xx,1,MixMonitor(chamada-${EXTEN}.gsm,ab)
 exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW)
 exten=> _40xx,n,HangUp()
 ;localização dos arquivos:
 /var/spool/asterisk/monitor/

t .: habilita transferência de chamadas para o lado destino
T .: habilita transferência de chamadas para o lado originador
w .: habilita gravação da chamada para o lado destino
W .: habilita gravação da chamada para o lado originador
Gravação de chamadas
 - Monitor.: Grava o áudio da chamada no formato
 especificado em dois arquivos separados, entrada (-in) e
 saída(-out)

 - Sintaxe:
   Monitor(formato, arquivo,opções)

 - Opções:
 m.: Mixa os arquivos de entrada e saída ao final da gravação
 b.: Grava o áudio após a chamada ser atendida
Gravação de chamadas
Exemplo:
[local]
exten=> _40xx,1,Monitor(WAV,chamada-${EXTEN},mb)
exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW)
exten=> _40xx,n,HangUp()
Arquivo iax.conf
 Permite a comunicação entre dois servidores asterisk

 Transporta sinalização e mídia em uma única porta
 TCP/IP-UDP, a 4569

 Não possui dificuldades para sinalização e transporte
 de mídia entre pontos de conexão como NAT e
 Firewalls
Arquivo iax.conf
Cenários de uso - Servidor IAX:
 ;arquivo iax    ;arquivo extensions.conf
 [1000]          [local]
 type=friend     exten=> _10XX,1,Dial(IAX2/${EXTEN},60)
 context=local   exten=> _10XX,n,Hangup()
 auth=md5
 username=1000
 secret=1000
 callerid=1000
 host=dynamic
 allow=gsm
Arquivo iax.conf
Cenários de uso –Modo Trunk

 Permite a comunicação entre dois servidores asterisk

 O áudio de varias chamadas será agrupado em um único
 conjunto de pacotes utilizando um único cabeçalho IP

 Reduz a latência fazendo uma economia na utilização da
 rede, já que os cabeçalhos IPs ocupam um maior percentual
 de uso de banda
Arquivo iax.conf
Cenários de uso –Modo Trunk

 Exemplo conectando matriz e filial com o IAX:

 IP da Matriz.: 192.168.0.1
 - Faixa de ramais locais.: 10XX
 - Faixa de ramais externos.: 20XX

 IP da FILIAL: 192.168.0.3
 - Faixa de ramais locais.: 20XX
 - Faixa de ramais externos.: 10XX
Arquivo iax.conf
Cenários de uso – Modo Trunk
 Exemplo conectando matriz e filial com o IAX:
  ;codigo para a matriz   ;ramal local para a matriz
  [general]               [1000]
  bindport=4569           type=friend
                          username=1000
  bindaddr=0.0.0.0
                          secret=1000
  disallow=all
                          host=dynamic
  allow=gsm               context=local
  jitterbuffer=no         auth=md5
  forcejitterbuffer=no    qualify=yes
  maxjitterbuffer=100     trunk=yes
                          callerid=1000
Arquivo iax.conf
Cenários de uso – Modo Trunk
 Exemplo conectando matriz e filial com o IAX:
  ;ramal para se conectar a filial
  [2000]
  type=friend
  username=2000
  secret=2000
  host=dynamic
  auth=md5
  qualify=yes
  trunk=yes
  callerid=2000
Arquivo iax.conf
Cenários de uso – Modo Trunk
 Exemplo conectando matriz e filial com o IAX:

;arquivo extensions.conf
[local]
include=>externo
exten=> _10XX,1,Dial(IAX2/${EXTEN},60,tT)
exten=> _10XX,n,Hangup()

[externo]
exten=> _20XX,1,Dial(IAX2/2000:2000@192.168.0.3/${EXTEN},60,tT)
exten=> _20XX,n,Hangup()
Arquivo iax.conf
Cenários de uso – Modo Trunk
 Exemplo conectando matriz e filial com o IAX:
  ;codigo para a filial   ;ramal para se conectar a matriz
  [general]               [1000]
  bindport=4569           type=friend
  bindaddr=0.0.0.0        username=1000
  disallow=all            secret=1000
  allow=gsm               host=dynamic
  jitterbuffer=no         auth=md5
  forcejitterbuffer=no    qualify=yes
  maxjitterbuffer=100     trunk=yes
                          callerid=1000
Arquivo iax.conf
Cenários de uso – Modo Trunk
 Exemplo conectando matriz e filial com o IAX:
  ;ramal local para a filial
  [2000]
  type=friend
  username=2000
  secret=2000
  host=dynamic
  context=local
  auth=md5
  qualify=yes
  trunk=yes
  callerid=2000
Arquivo iax.conf
Cenários de uso – Modo Trunk
  Exemplo conectando matriz e filial com o IAX:

;arquivo extensions.conf
[local]
include=>externo
exten=> _20XX,1,Dial(IAX2/${EXTEN},60,tT)
exten=> _20XX,n,Hangup()

[externo]
exten=> _10XX,1,Dial(IAX2/1000:1000@192.168.0.1/${EXTEN},60,tT)
exten=> _10XX,n,Hangup()
Contato, Criticas, Sugestões e Dúvidas:

– vicente.proj@hotmail.com
 Endereço do You Tube:
- http://www.youtube.com/user/voipjava
 Web sites:
– www.asterisk.org
– www.digium.com
– www.voip-info.org
Fim

Weitere ähnliche Inhalte

Was ist angesagt?

Manual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGManual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGcyberleon95
 
Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Juan Timoteo Cori
 
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIPhpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
 
2+ipt+configuring cisco-cme
2+ipt+configuring cisco-cme2+ipt+configuring cisco-cme
2+ipt+configuring cisco-cmeYves Jean Louis
 
Hacking SIP Like a Boss!
Hacking SIP Like a Boss!Hacking SIP Like a Boss!
Hacking SIP Like a Boss!Fatih Ozavci
 
How to Get Started With NGINX
How to Get Started With NGINXHow to Get Started With NGINX
How to Get Started With NGINXNGINX, Inc.
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...RaGaZoMe
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosGuillermo Henriquez Gonzalez
 
Ce hv7 module 05 system hacking
Ce hv7 module 05 system hackingCe hv7 module 05 system hacking
Ce hv7 module 05 system hackingZuleima Parada
 
Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server TutorialJagat Kothari
 
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料Tetsuya Hasegawa
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell ScriptingRaghu nath
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskElio Rojano
 

Was ist angesagt? (20)

Manual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMGManual Instalación y Configuración Firewall TMG
Manual Instalación y Configuración Firewall TMG
 
Asterisk sip channel performance
Asterisk sip channel performanceAsterisk sip channel performance
Asterisk sip channel performance
 
Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4
 
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIPhpconf 2013 - Agile Telephony Applications with PAMI and PAGI
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGI
 
2+ipt+configuring cisco-cme
2+ipt+configuring cisco-cme2+ipt+configuring cisco-cme
2+ipt+configuring cisco-cme
 
Breakout - Airheads Macau 2013 - Top 10 Tips from Aruba TAC
Breakout - Airheads Macau 2013 - Top 10 Tips from Aruba TAC Breakout - Airheads Macau 2013 - Top 10 Tips from Aruba TAC
Breakout - Airheads Macau 2013 - Top 10 Tips from Aruba TAC
 
Hacking SIP Like a Boss!
Hacking SIP Like a Boss!Hacking SIP Like a Boss!
Hacking SIP Like a Boss!
 
How to Get Started With NGINX
How to Get Started With NGINXHow to Get Started With NGINX
How to Get Started With NGINX
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...
FortiGate 60C Firewall Configuration Backup and Restore procedure Firmware v4...
 
Como monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagiosComo monitorear asterisk utilizando nrpe de nagios
Como monitorear asterisk utilizando nrpe de nagios
 
Ce hv7 module 05 system hacking
Ce hv7 module 05 system hackingCe hv7 module 05 system hacking
Ce hv7 module 05 system hacking
 
Apache Server Tutorial
Apache Server TutorialApache Server Tutorial
Apache Server Tutorial
 
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料
RFC8071(NETCONF Call Home and RESTCONF Call Home)の勉強資料
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell Scripting
 
Metal as a Server
Metal as a ServerMetal as a Server
Metal as a Server
 
astricon2018
astricon2018astricon2018
astricon2018
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Switch security
Switch securitySwitch security
Switch security
 

Andere mochten auch

Asterisk O Pabx Livre Para Voip
Asterisk   O Pabx Livre Para VoipAsterisk   O Pabx Livre Para Voip
Asterisk O Pabx Livre Para VoipGilberto Sudre
 
Arduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreArduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreMarcelo Laranjeira Melo
 
Asterisk Uma SoluçãO Em Pabx Ip
Asterisk   Uma SoluçãO Em Pabx IpAsterisk   Uma SoluçãO Em Pabx Ip
Asterisk Uma SoluçãO Em Pabx IpCamila Verônica
 
Automação residencial por controle dtmf
Automação residencial por controle dtmfAutomação residencial por controle dtmf
Automação residencial por controle dtmfGabriel Messias
 
Redes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanRedes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanLuiz Arthur
 
Asterisk - Open Source Communication (Seminário UNICAP 2011)
Asterisk - Open Source Communication (Seminário UNICAP 2011)Asterisk - Open Source Communication (Seminário UNICAP 2011)
Asterisk - Open Source Communication (Seminário UNICAP 2011)abdenildo
 
PABX IP utilizando Asterisk
PABX IP utilizando AsteriskPABX IP utilizando Asterisk
PABX IP utilizando AsteriskHelio Loureiro
 
Manual PABX Intelbras_corp_16000
Manual PABX Intelbras_corp_16000Manual PABX Intelbras_corp_16000
Manual PABX Intelbras_corp_16000Telsys Telecom
 
Redes - VoIP Asterisk
Redes - VoIP AsteriskRedes - VoIP Asterisk
Redes - VoIP AsteriskLuiz Arthur
 
Conceitos e Fundamentos da Telefonia IP
Conceitos e Fundamentos da Telefonia IPConceitos e Fundamentos da Telefonia IP
Conceitos e Fundamentos da Telefonia IPIP10
 

Andere mochten auch (20)

Asterisk O Pabx Livre Para Voip
Asterisk   O Pabx Livre Para VoipAsterisk   O Pabx Livre Para Voip
Asterisk O Pabx Livre Para Voip
 
Arduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreArduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livre
 
Asterisk Uma SoluçãO Em Pabx Ip
Asterisk   Uma SoluçãO Em Pabx IpAsterisk   Uma SoluçãO Em Pabx Ip
Asterisk Uma SoluçãO Em Pabx Ip
 
Automação residencial por controle dtmf
Automação residencial por controle dtmfAutomação residencial por controle dtmf
Automação residencial por controle dtmf
 
Arduino: Passado, presente e futuro.
Arduino: Passado, presente e futuro.Arduino: Passado, presente e futuro.
Arduino: Passado, presente e futuro.
 
Diversão e lucro com raspberry pi
Diversão e lucro com raspberry piDiversão e lucro com raspberry pi
Diversão e lucro com raspberry pi
 
Redes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial PlanRedes - VoIP Asterisk Dial Plan
Redes - VoIP Asterisk Dial Plan
 
Trixbox
TrixboxTrixbox
Trixbox
 
Asterisk - Open Source Communication (Seminário UNICAP 2011)
Asterisk - Open Source Communication (Seminário UNICAP 2011)Asterisk - Open Source Communication (Seminário UNICAP 2011)
Asterisk - Open Source Communication (Seminário UNICAP 2011)
 
PABX IP utilizando Asterisk
PABX IP utilizando AsteriskPABX IP utilizando Asterisk
PABX IP utilizando Asterisk
 
Projeto Asterisk - Empresa
Projeto Asterisk - EmpresaProjeto Asterisk - Empresa
Projeto Asterisk - Empresa
 
Instalação do Asterisk
Instalação do AsteriskInstalação do Asterisk
Instalação do Asterisk
 
Call Center baseado em Asterisk
Call Center baseado em AsteriskCall Center baseado em Asterisk
Call Center baseado em Asterisk
 
Oficina I - WEB MISSILE
Oficina I - WEB MISSILEOficina I - WEB MISSILE
Oficina I - WEB MISSILE
 
Oficina II - RASPBX
Oficina II - RASPBXOficina II - RASPBX
Oficina II - RASPBX
 
End of the world presentation
End of the world presentationEnd of the world presentation
End of the world presentation
 
Manual PABX Intelbras_corp_16000
Manual PABX Intelbras_corp_16000Manual PABX Intelbras_corp_16000
Manual PABX Intelbras_corp_16000
 
Redes - VoIP Asterisk
Redes - VoIP AsteriskRedes - VoIP Asterisk
Redes - VoIP Asterisk
 
Conceitos e Fundamentos da Telefonia IP
Conceitos e Fundamentos da Telefonia IPConceitos e Fundamentos da Telefonia IP
Conceitos e Fundamentos da Telefonia IP
 
Asterisk Xenified
Asterisk XenifiedAsterisk Xenified
Asterisk Xenified
 

Ähnlich wie Apresentação asterisk

Tutorial asterisk
Tutorial asteriskTutorial asterisk
Tutorial asteriskstrellow
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Asterisk central ipbx debian [artigo]
Asterisk central ipbx   debian [artigo]Asterisk central ipbx   debian [artigo]
Asterisk central ipbx debian [artigo]Carlos Melo
 
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
 
Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxSoftD Abreu
 
Configuração Ethernet Wireless Linux
Configuração Ethernet Wireless LinuxConfiguração Ethernet Wireless Linux
Configuração Ethernet Wireless LinuxSoftD Abreu
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaFelipe Silveira
 
I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespesluizfelipemz
 
Carlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - PostfixCarlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - PostfixHeber Souza
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterWilson Lopes
 

Ähnlich wie Apresentação asterisk (20)

Asterisk
AsteriskAsterisk
Asterisk
 
Configuracao do asterisk
Configuracao do asteriskConfiguracao do asterisk
Configuracao do asterisk
 
Tutorial asterisk
Tutorial asteriskTutorial asterisk
Tutorial asterisk
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
So trabalho
So trabalhoSo trabalho
So trabalho
 
Asterisk central ipbx debian [artigo]
Asterisk central ipbx   debian [artigo]Asterisk central ipbx   debian [artigo]
Asterisk central ipbx debian [artigo]
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Asterisk
AsteriskAsterisk
Asterisk
 
Skype
SkypeSkype
Skype
 
01 notações iniciais
01   notações iniciais01   notações iniciais
01 notações iniciais
 
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
 
Implantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linuxImplantação de sistemas desegurança com linux
Implantação de sistemas desegurança com linux
 
Configuração Ethernet Wireless Linux
Configuração Ethernet Wireless LinuxConfiguração Ethernet Wireless Linux
Configuração Ethernet Wireless Linux
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
 
I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespes
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Carlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - PostfixCarlos Beiga - Aula06 - Postfix
Carlos Beiga - Aula06 - Postfix
 
Ferramentas para Automação de Datacenter
Ferramentas para Automação de DatacenterFerramentas para Automação de Datacenter
Ferramentas para Automação de Datacenter
 

Apresentação asterisk

  • 1. Asterisk Vicente de Paula Nobre vicente.proj@hotmail.com
  • 2. Principais Tópicos O que é o asterisk Alguns Recursos Arquitetura do asterisk Hardware e software Cenários de uso Instalação no Centos 5 Principais arquivos de configuração
  • 3. Principais Tópicos Sintaxe de configuração Plano de discagem com cliente SIP Correio de voz, salas de conferência e Filas Estacionamento e transferência de chamadas Captura e gravação de chamadas Plano de discagem com cliente IAX Interligar dois servidores Asterisk com IAX em modo trunk
  • 4. O que é o Asterisk É um PABX IP baseado em software livre sob licença GPL, que pode rodar em vários sistemas operacionais, mais que se adéqua melhor ao Linux Interliga redes IPs a rede de telefonia pública
  • 5. O que é o Asterisk Configuração de Recursos avançados e a agregação de novas funcionalidades. Foi desenvolvido pela Digium que também investe em Hardware de baixo custo Software de código aberto, muitos desenvolvedores contribuem para o seu crescimento.
  • 6. Alguns Recursos Salas de Conferências Gravação de chamadas Transferência de ligações Estacionamento de chamadas Filas de atendimento Correio de voz
  • 7. Alguns Recursos URA (unidade de resposta audível) Planos de discagens flexíveis Música em espera Monitoramento de chamadas Uso de banco de dados (MySQL, PostgreSQL) Geração de bilhetagem
  • 9. Arquitetura do Asterisk Canais - Linhas Telefônicas; - Analógicas, Digitais e Virtuais; - Modulados por Codecs; Encapsulados por um Protocolo Sinalizador - Estabelecer as conexões; - Campainha; - Desconexão;
  • 10. Arquitetura do Asterisk Codecs – Compressão da voz; Principais – G.729a – 8Kbits com licença; – G.711 ulaw - usado nos EUA 64 Kbps; – G.711 alaw - usado na Europa e Brasil 64 Kbps; – G.723.1 - 5.3-6 Kbps com licença; – GSM - 12-13 Kbps, Telefonia Celular;
  • 11. Arquitetura do Asterisk Protocolos – H323 – Antigo protocolo para VoIP. – IAX – Inter-Asterisk Exchange Protocol; – SIP – Session Initiation Protocol; – Skinny - Telefones IP da Cisco; – ZAP/DAHDI – Hardware de Digium;
  • 12. Hardware e software • Adaptador • SoftFone X-lite • Telefone IP
  • 13. Hardware e software • Placa de Telefonia IP
  • 14. Exemplo com placa de Telefonia
  • 15. Exemplo com banco de canais
  • 17. Instalação Utilizando uma distribuição Linux como o Centos 5:
  • 18. Instalação Baixa-se os pacotes do site da Digium: - asterisk-1.4.40.tar.gz - asterisk-addons-1.4.13.tar.gz - dahdi-linux-2.4.1.1.tar ou zaptel-1.4.12.1.tar - dahdi-tools-2.4.1.tar.gz - libpri-1.4.11.5.tar.gz - sounds-1.0-pt_BR.tar.gz - Disc-OS-Sounds-1.0-pt_BR.tar
  • 19. Instalação Baixa-se os pacotes do site da Digium: wget http://downloads.digium.com/pub/asterisk/asterisk- 1.4.40.tar.gz wget http://downloads.digium.com/pub/libpri/libpri- 1.4.11.5.tar.gz wget http://downloads.digium.com/pub/telephony/dahdi- linux/dahdi-linux-2.4.1.1.tar wget http://downloads.digium.com/pub/telephony/dahdi- tools/ dahdi-tools-2.4.1.tar.gz wget http://downloads.digium.com/pub/asterisk/asterisk- addons-1.4.13.tar.gz
  • 20. Instalação Copiam-se todos os arquivos para /usr/src - Exemplo: # cp asterisk-1.4.40.tar.gz /usr/src - Para copiar todos os arquivos: # cp *.tar.gz /usr/src
  • 21. Instalação Entra no diretório e descompacta cd /usr/src # tar xzfv asterisk-1.4.40.tar.gz # tar xzfv asterisk-addons-1.4.13.tar.gz # tar xzfv dahdi-linux-2.4.1.1.tar # tar xzfv dahdi-tools-2.4.1.tar.gz # tar xzfv libpri-1.4.11.5.tar.gz
  • 22. Instalação Compilação e instalação dos Arquivos Instalando o pacote dahdi-linux # cd dahdi-linux # vim README (opcional – para ver como se instala) # make clean # ./configure # make # make install
  • 23. Instalação Compilação e instalação dos Arquivos Instalando o pacote dahdi-tools # cd dahdi-tools-2.4.1 # make clean # ./configure # make # make install
  • 24. Instalação Compilação e instalação dos Arquivos Instalando o pacote libpri # cd libpri-1.4.11.5 # make clean # make # make install
  • 25. Instalação Compilação e instalação dos Arquivos Instalando o pacote asterisk # cd asterisk-1.4.40 # make clean # ./configure # make menuselect (habilita/desabilita as opções do asterisk) # make # make install # make samples (arquivos de exemplos) # make config (configura os módulos da maneira padrão)
  • 26. Instalação Compilação e instalação dos Arquivos Instalando o pacote asterisk-addons # cd asterisk-addons-1.4.13 # make clean # ./configure # make # make menuselect # make install # make samples
  • 27. Instalação Compilação e instalação dos Arquivos Instalando o pacote sounds # cp sounds-1.0-pt_BR.tar.gz /var/lib/asterisk # cd /var/lib/asterisk # tar xzfv sounds-1.0-pt_BR.tar.gz ou # cp Disc-OS-Sounds-1.0-pt_BR.tar /var/lib/asterisk # cd /var/lib/asterisk # tar xf Disc-OS-Sounds-1.0-pt_BR.tar
  • 28. Carregando o dahdi_dummy Para que funcione salas de conferência é preciso ter uma placa instalada no servidor para gerar uma temporização, no caso de não haver é necessário carregar o modulo dahdi_dummy ou ztdummy. # lsmod | grep dahdi_dummy # modprobe dahdi_dummy ou no caso do pacote zaptel-1.4.12.1.tar # lsmod | grep ztdummy # modprobe ztdummy
  • 29. Carregando o dahdi_dummy # echo "dahdi_dummy" >> /etc/modules O dahdi é carregado no Linux como um serviço: # /etc/init.d/dahdi start # /etc/init.d/asterisk restart Depois asterisk -r e execute o comando "dahdi show status"
  • 30. Iniciando e parando o Asterisk Iniciando # /usr/sbin/asterisk –vvvc Parando # stop now
  • 31. Arquivos de configuração O asterisk é controlado por arquivos de configuração localizados em /etc/asterisk. No formato .conf os arquivos são divididos em sessões: [sessao1] chave = valor ; Designação da variável [sessao2] objeto => valor ; Declaração do objeto [sessao3] objeto2 => valor ; Declaração do objeto2 ; Todos os arquivos seguem a mesma sintaxe
  • 32. Arquivos de configuração Existem algumas sessões com funções especificas: [general] .: Define os valores padrão para todas as outras sessões [channels] .: Especifica os canais de comunicação dentro do arquivo zapata.conf [globals] .: Criação das variáveis globais dentro de um plano de discagem
  • 33. Estrutura do sistema de arquivos Diretorio dos arquivos de configuração /etc/asterisk Diretorio dos Modulos, aplicações e canais /usr/lib/asterisk/modules Diretorio de gravação da voz usadas no correio de voz /var/lib/asterisk/sounds Diretorio para Scripts AGI (Asterisk Gateway Interface) /var/lib/asterisk/agi-bin
  • 34. Estrutura do sistema de arquivos Principais arquivos: sip.conf .: Clientes SIP. iax.conf .: Clientes IAX. extensions.conf.: Plano de discagem. voicemail.conf.: Correio de voz. queues.conf.: Filas de atendimentos. agents.conf.: Agentes que poderão atender chamadas em filas. meetme.conf.: Salas de conferência. manager.conf.: Administrador do servidor. features.conf: Configuração de transferências, estacionamento, gravação de chamadas e etc.
  • 35. Arquivo Sip.conf Contém parâmetros de configuração dos telefones e operadoras SIP. Os clientes devem estar configurados antes que possam fazer e receber chamadas.
  • 36. Arquivo Sip.conf Na sessão [general], define-se os valores das variáveis padrão para todos os canais SIP. Através da seguinte sintaxe: [general] variavel=valor1 variavel=valor2 [nome_sessao] type=friend/peer/user context=NomeContexto host=dynamic secret=senha_da_conta
  • 37. Arquivo Sip.conf Alguns parâmetros da sessão general: allow: Permite que um determinado codec seja usado disallow: Proíbe um determinado codec bindaddr: IP onde o Asterisk irá esperar pelas conexões SIP context: Configura o contexto padrão para todos os cliente SIP port: Porta para conexões de entrada SIP, o padrão é 5060 maxexpirey: Tempo máximo para registro em segundos defaultexpirey: Tempo padrão para registro em segundos register: Registra o Asterisk com outro host
  • 38. Arquivo Sip.conf Exemplo de configuração sessão general: [general] port=5060 bindaddr=0.0.0.0 context=ramais disallow=all allow=gsm maxexpirey=120 defaultexpirey=80 register=>vicente@freeworlddialup.com/5000
  • 39. Arquivo Sip.conf As seções seguintes definem os parâmetros das entidades SIP tais como o nome de usuário, senha e endereço IP. Três categorias de entidades SIP são definidas: peer: Entidade que recebe chamadas através do asterisk user: Entidade que faz chamadas através do Asterisk friend: Entidade que pode fazer e receber chamadas
  • 40. Arquivo Sip.conf Principais campos das sessões: type: Configura a classe de conexão, opções são peer, user e friend host: Configura o endereço IP ou o nome do host. Pode-se usar também a opção ‘dynamic’ onde se espera que o telefone se registre username: Esta opção configura o nome do usuário que o Asterisk tenta conectar quando uma chamada é recebida secret: Senha para autenticar os peers e users fazendo uma chamada
  • 41. Arquivo Sip.conf [general] [2050] context=ramais type=friend port=5060 host=dynamic bindaddr=0.0.0.0 username=2050 disallow=all secret= 351654 allow=alaw context=externo language=pt_BR callerid=maria<2050> [2000] type=friend host=dynamic username=2000 secret= 698569 callerid=vicente<2000>
  • 42. Arquivo Extensions.conf O plano de discagem é representado pelo extensions.conf Consiste de uma lista de instruções ou passos que o Asterisk deve seguir Essas instruções são disparadas de acordo com uma prioridade a partir dos dígitos recebidos de um canal ou aplicação
  • 43. Arquivo Extensions.conf O plano de discagem é dividido em quatro conceitos: - Contextos - Extensões - Prioridades - Aplicações Os contextos são definidos para cada canal dentro dos arquivos sip.conf, iax.conf, h323.conf e etc.
  • 44. Arquivo Extensions.conf Contextos São responsáveis pela organização e segurança do plano de discagem Definem o escopo e permitem separar diferentes partes do plano de discagem Estão ligados diretamente aos canais, cada canal existe dentro de um contexto Quando uma ligação entra no Asterisk por um canal ela é processada dentro de um contexto
  • 45. Arquivo Extensions.conf Contextos Os contextos recebem o seu nome dentro de colchetes ([]s) Exemplo: [ramais] Todas as instruções colocadas após a definição são partes do contexto
  • 46. Arquivo Extensions.conf Extensões Dentro de cada contexto serão definidas as extensões Uma extensão é uma string que vai disparar um evento [ramais] exten=>2000,1,Dial(SIP/2000,20) exten=>2000,2,VoiceMail(u300) ;indisponível exten=>2000,101,VoiceMail(b300) ;ocupado A instrução “exten=> “ descreve qual o próximo passo para a ligação O “2000” é o numero discado O “1”, “2”e “101” são as prioridades que determinam a ordem de execução
  • 47. Arquivo Extensions.conf Extensões Extensões determinam o fluxo das chamadas Uma extensão é definida com a sintaxe: exten=> extensão, prioridade(nome), aplicação O comando “exten=>” é seguido por um número da extensão, uma vírgula, a prioridade, outra vírgula e a aplicação.
  • 48. Arquivo Extensions.conf Prioridades Cada extensão é executada dentro de um contexto através de prioridades e não por ordem de definição no arquivo Cada prioridade chama uma aplicação especifica [ramais] exten=>_20XX,1,Dial(SIP/${EXTEN},20) exten=>_20XX,n,VoiceMail(u300) exten=>_20XX,n,Hangup()
  • 49. Arquivo Extensions.conf Aplicações As aplicações tratam o canal de voz: - Tocando sons. - Aceitando dígitos. - Correio de voz. - Sala de conferência. - Desligando uma chamada e etc. As aplicações são chamadas com opções que afetam a sua forma de funcionamento
  • 50. Arquivo Extensions.conf Exemplo de Aplicações São os utilitários chamados a partir do plano de discagem: - Answer.: Atende a chamada e sincroniza o canal de áudio - PlayBack.: Reproduz um arquivo de áudio localizado em /var/lib/asterisk/sounds - BackGround.: Faz a mesma função do PlayBack, mas permite a interação com o usuário - Dial.: Conecta dois canais de comunicação - MeetMe.: Entra em uma sala de conferência configurada em meetme.conf - Queue.: Entra em uma determinada fila configurada em queues.conf - VoiceMail.: Chama uma caixa de mensagens configurado em voicemail.conf - Hangup.: Encerra a chamada
  • 51. Plano de discagem simples Passos para a criação de um ramal: 1 - Cadastrá-lo no arquivo de configuração referente ao protocolo sip.conf, iax.conf, h323.conf e etc. 2 – Definir o contexto ao qual a extensão participará 3 - Definir dentro do arquivo extensions.conf o plano de discagem para esse ramal
  • 52. Plano de discagem simples Arquivo sip.conf Define valores padrão Configura a extensão 3000 [general] [3000] port=5060 type=friend bindaddr=0.0.0.0 host=dynamic disallow=all username=3000 allow=alaw secret=654321 language=pt_BR callerid=vicente<3000> mailbox=300@default context=local
  • 53. Plano de discagem simples Arquivo sip.conf Configura a extensão 3050 [3050] type=friend host=dynamic username=3050 secret=123456 callerid=maria<3050> mailbox=300@default context=local
  • 54. Plano de discagem simples Arquivo extensions.conf [local] exten=> 3000,1,Dial(SIP/3000,20) exten=> 3000,2,HangUp() exten=> 3050,1,Dial(SIP/3050,20) exten=> 3050,2,HangUp() [local] exten=> _30XX,1,Answer exten=> _30XX,n,Wait(0.5) exten=> _30XX,n,PlayBack(hello-word) exten=> _30XX,n,Authenticate(875) exten=> _30XX,n,Dial(SIP/${EXTEN},20) exten=> _30XX,n,HangUp()
  • 55. Arquivo Voicemail.conf Permite que uma chamada ocupada ou não atendida seja enviada para uma secretária eletrônica Passos para a criação de um correio de voz: 1. Em voicemail.conf defini-se os usuários e senhas para o correio de voz. 2. Em extensions.conf configura-se uma extensão para que uma chamada ocupada ou não atendida seja direcionada para a aplicação VoiceMail(). 3. Configura-se uma extensão para que o usuário possa ouvir seu correio de voz.
  • 56. Arquivo Voicemail.conf Voicemail.conf Sip.conf [general] [4000] format=gsm mailbox=600@caixa_msg serveremail=asterisk@hotmail.com maxlogins=5 maxmsg=100 delete=no attach=yes [caixa_msg] include => general 600 => 123,vicente,vicente.proj@hotmail.com
  • 57. Arquivo Voicemail.conf Extensions.conf [local] include=>correio exten => _40XX,1,Dial(SIP/${EXTEN},40) exten => _40XX,2,GoToIf($[${DIALSTATUS} = CHANUNAVAIL] ? 5) exten => _40XX,3,GoToIf($[${DIALSTATUS} = BUSY] ? 6) exten => _40XX,4,HangUp() exten => _40XX,5,VoiceMail(u600@caixa_msg) ; indisponível exten => _40XX,6,VoiceMail(b600@caixa_msg) ; ocupado ; Acceso ao correio de voz [correio] exten => 100, 1, VoiceMailMain(600@caixa_msg) exten=> 100,n,HangUp()
  • 58. Arquivo meetme.conf A conferência no Asterisk é feita usando a aplicação MeetMe() O MeetMe() é uma ponte de videoconferência, que pode funcionar em qualquer tipo de canal ;meetme.conf [rooms] conf=>sala,senha ;Exemplo conf=> 500 conf=> 500,123456
  • 59. Arquivo meetme.conf No arquivo extensions.conf pode ser definido uma nova sessão chamada conferencia e essa sessão ser incluída na sessão local através do parâmetro include. [local] include=>conferencia exten=> _30XX,1,Answer exten=> _30XX,n,Wait(0.5) exten=> _30XX,n,PlayBack(hello-world) exten=> _30XX,n,Authenticate(875) exten => _30XX,n,Dial(SIP/${EXTEN},20) exten => _30XX,n,Hangup()
  • 60. Arquivo meetme.conf [conferencia] exten=> 500,1,Answer exten=> 500,n,MeetmeCount(500,total) exten=> 500,n,ExecIf($[${total}=6]?HangUp) exten=> 500,n,MeetMe(500) exten=> 500,n,HangUp()
  • 62. Arquivo queues.conf As filas de atendimento são criadas no arquivo queues.conf As filas possuem agentes para atender chamadas que são configuradas no arquivo agents.conf Podem ser configuradas mensagens durante o tempo de espera – Propagandas – Tempo médio de espera – Posição na fila
  • 63. Exemplo de Fila arquivo queues.conf [telemarkting] musicclass=default announce= anunciodafila timeout=15 retry=5 strategy=roundrobin monitor-format=gsm member=agent/1000 member=agent/1001 member=agent/1002
  • 64. Exemplo de Fila arquivo agents.conf [agents] agent => 1000,123,agente1 agent => 1001,1234,agente2 agent => 1002,12345,agente3
  • 65. Exemplo de Fila arquivo extensions.conf [telemarketing] exten=> 800,1,Answer exten=> 800,2,Queue(telemarketing) [login] exten=> 900,1,Answer exten=> 900,2,AgentLogin()
  • 66. Estacionamento de Chamadas Coloca uma chamada em uma fila de espera, para que algum outro ramal possa capturá-lo. Configurado no arquivo features.conf parkext=700.: Extensão onde se deve transferir a chamada parkpos=701-709.: Salas disponíveis para o estacionamento context=parkedcalls.: Contexto com regras de estacionamento parkingtime=60.: Tempo que a ligação ficará estacionada No arquivo extensions.conf adiciona-se a seguinte linha include=>parkedcalls
  • 67. Transferência de chamadas Existem duas formas de transferências: -As cegas(blind transfer) Não há a consulta previa do destinatário da chamada, é executado através da tecla # -Assistida(attended tranfer) Há consulta previa do destinatário da chamada, executado pela tecla FLASH
  • 68. Transferência de chamadas Existem duas formas de transferências: São configuradas no arquivo features.conf: - blindxfer.: Define o código para transferência as cegas o padrão é o caractere #(sustenido) - atxfer.: Define o código para transferência assistida o padrão é o *2
  • 69. Captura de chamadas Transferir uma chamada que está tocando em outro ramal para o seu e assim atendê-lo - Captura em grupo: É Configurado no arquivo no arquivo features.conf especificando o parâmetro: pickupexten.: *8 ;valor padrão Agrupa-se os canais por meio de dois parâmetros: callgroup.: Grupo, o qual o canal faz parte pickupgroup.: Grupos que os canais podem capturar chamadas
  • 70. Captura de chamadas Exemplo: ;arquivo sip.conf ou iax.conf e etc [1001] callgroup=1 pickupgroup=1,2 [1002] callgroup=2 pickupgroup=2 Obs.: Essa forma de captura de chamadas funciona apenas para canais que utilizem o mesmo protocolo de sinalização como o SIP, IAX, H323 e etc.
  • 71. Captura de chamadas Captura direta: Captura uma chamada diretamente especificando o ramal que se deseja capturar, independente do grupo e protocolo Implementa-se dentro do arquivo extensions.conf através da aplicação PickUp() Sintaxe: PickUp(extensão@contexto) Exemplo: exten=> _030xx,1,PickUp(${EXTEN:1}@local)
  • 72. Gravação de chamadas - MixMonitor.: Grava o áudio da chamada no formato da extensão especificada - Sintaxe: MixMonitor(arquivo.ext,opções) - Opções: a .: Adiciona no final do arquivo a gravação ao invés de subscrever o áudio b .: Grava o áudio depois da chamada ser atendida
  • 73. Gravação de chamadas Exemplo: [local] exten=> _40xx,1,MixMonitor(chamada-${EXTEN}.gsm,ab) exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW) exten=> _40xx,n,HangUp() ;localização dos arquivos: /var/spool/asterisk/monitor/ t .: habilita transferência de chamadas para o lado destino T .: habilita transferência de chamadas para o lado originador w .: habilita gravação da chamada para o lado destino W .: habilita gravação da chamada para o lado originador
  • 74. Gravação de chamadas - Monitor.: Grava o áudio da chamada no formato especificado em dois arquivos separados, entrada (-in) e saída(-out) - Sintaxe: Monitor(formato, arquivo,opções) - Opções: m.: Mixa os arquivos de entrada e saída ao final da gravação b.: Grava o áudio após a chamada ser atendida
  • 75. Gravação de chamadas Exemplo: [local] exten=> _40xx,1,Monitor(WAV,chamada-${EXTEN},mb) exten=> _40xx,n,Dial(SIP/${EXTEN},20,tTwW) exten=> _40xx,n,HangUp()
  • 76. Arquivo iax.conf Permite a comunicação entre dois servidores asterisk Transporta sinalização e mídia em uma única porta TCP/IP-UDP, a 4569 Não possui dificuldades para sinalização e transporte de mídia entre pontos de conexão como NAT e Firewalls
  • 77. Arquivo iax.conf Cenários de uso - Servidor IAX: ;arquivo iax ;arquivo extensions.conf [1000] [local] type=friend exten=> _10XX,1,Dial(IAX2/${EXTEN},60) context=local exten=> _10XX,n,Hangup() auth=md5 username=1000 secret=1000 callerid=1000 host=dynamic allow=gsm
  • 78. Arquivo iax.conf Cenários de uso –Modo Trunk Permite a comunicação entre dois servidores asterisk O áudio de varias chamadas será agrupado em um único conjunto de pacotes utilizando um único cabeçalho IP Reduz a latência fazendo uma economia na utilização da rede, já que os cabeçalhos IPs ocupam um maior percentual de uso de banda
  • 79. Arquivo iax.conf Cenários de uso –Modo Trunk Exemplo conectando matriz e filial com o IAX: IP da Matriz.: 192.168.0.1 - Faixa de ramais locais.: 10XX - Faixa de ramais externos.: 20XX IP da FILIAL: 192.168.0.3 - Faixa de ramais locais.: 20XX - Faixa de ramais externos.: 10XX
  • 80. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;codigo para a matriz ;ramal local para a matriz [general] [1000] bindport=4569 type=friend username=1000 bindaddr=0.0.0.0 secret=1000 disallow=all host=dynamic allow=gsm context=local jitterbuffer=no auth=md5 forcejitterbuffer=no qualify=yes maxjitterbuffer=100 trunk=yes callerid=1000
  • 81. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;ramal para se conectar a filial [2000] type=friend username=2000 secret=2000 host=dynamic auth=md5 qualify=yes trunk=yes callerid=2000
  • 82. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;arquivo extensions.conf [local] include=>externo exten=> _10XX,1,Dial(IAX2/${EXTEN},60,tT) exten=> _10XX,n,Hangup() [externo] exten=> _20XX,1,Dial(IAX2/2000:2000@192.168.0.3/${EXTEN},60,tT) exten=> _20XX,n,Hangup()
  • 83. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;codigo para a filial ;ramal para se conectar a matriz [general] [1000] bindport=4569 type=friend bindaddr=0.0.0.0 username=1000 disallow=all secret=1000 allow=gsm host=dynamic jitterbuffer=no auth=md5 forcejitterbuffer=no qualify=yes maxjitterbuffer=100 trunk=yes callerid=1000
  • 84. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;ramal local para a filial [2000] type=friend username=2000 secret=2000 host=dynamic context=local auth=md5 qualify=yes trunk=yes callerid=2000
  • 85. Arquivo iax.conf Cenários de uso – Modo Trunk Exemplo conectando matriz e filial com o IAX: ;arquivo extensions.conf [local] include=>externo exten=> _20XX,1,Dial(IAX2/${EXTEN},60,tT) exten=> _20XX,n,Hangup() [externo] exten=> _10XX,1,Dial(IAX2/1000:1000@192.168.0.1/${EXTEN},60,tT) exten=> _10XX,n,Hangup()
  • 86. Contato, Criticas, Sugestões e Dúvidas: – vicente.proj@hotmail.com Endereço do You Tube: - http://www.youtube.com/user/voipjava Web sites: – www.asterisk.org – www.digium.com – www.voip-info.org
  • 87. Fim