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

Apresentação asterisk

  • 1.
    Asterisk Vicentede Paula Nobre vicente.proj@hotmail.com
  • 2.
    Principais Tópicos Oque é 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 Sintaxede 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 Salasde 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
  • 8.
  • 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 placade Telefonia
  • 15.
  • 16.
  • 17.
    Instalação Utilizando umadistribuição Linux como o Centos 5:
  • 18.
    Instalação Baixa-se ospacotes 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 pacotesdo 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 todosos 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 nodiretó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 einstalaçã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 einstalaçã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 einstalação dos Arquivos Instalando o pacote libpri # cd libpri-1.4.11.5 # make clean # make # make install
  • 25.
    Instalação Compilação einstalaçã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 einstalaçã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 einstalaçã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 parandoo 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 sistemade 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 sistemade 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émparâ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 Nasessã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âmetrosda 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 deconfiguraçã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 Asseçõ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 camposdas 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 Oplano 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 Oplano 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ãoresponsá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 Oscontextos 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 Dentrode 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õesdeterminam 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 Cadaextensã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 Asaplicaçõ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 deAplicaçõ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 discagemsimples 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 discagemsimples 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 discagemsimples 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 discagemsimples 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 Permiteque 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 Aconferê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 Noarquivo 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()
  • 61.
  • 62.
    Arquivo queues.conf Asfilas 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: ;arquivosip.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 Capturadireta: 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 Permitea 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 deuso - 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 deuso –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 deuso –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 deuso – 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 deuso – 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 deuso – 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 deuso – 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 deuso – 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 deuso – 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õese 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.