VoIP e NGN
 Asterisk
 Configuração
Frederico Madeira <fred@madeira.eng.br>
          www.madeira.eng.br
Agenda

➔
    Arquivos de Configuração
➔
    sip.conf
➔
    Plano de Discagem
     – Extensões
     – Prioridades
     – Aplicações
     – Contextos
➔
    Prática
Arquivos de Configuração

➔
    O asterisk é controlado por arquivos de texto
    localizados em /etc/asterisk

➔
    Sessões são chamadas de contextos

➔
    Exemplo da Sintaxe:

;
; The first line without a comment should be the session title
;
[Session]
Key = value; Variable designation
[Session 2]
Key => value; Object declaration
Arquivos de Configuração

➔
    sip.conf
     – Configurações do protocolo SIP
     – Configurações das extensões e troncos SIP

➔
    extensions.conf
     – Plano de discagem do asterisk

➔
    iax.conf
     – Configurações do protocolo IAX
     – Configurações das extensões e troncos IAX
sip.conf
✔
     Arquivo lido de cima para baixo
✔
     A primeira sessão é a [general] e possui os
     parâmetros globais do SIP
✔
     Exemplo:

    [general]
    bindport = 5060
    bindaddr = 192.168.30.10
    context = default
    disallow = all
    allow = ulaw
    maxexpirey = 120
    defaultexpirey = 80
sip.conf
Definições:

✔
     allow/disallow:   Define   qual   codec   pode   ser
     utilizado
✔
     bindaddr: Endereço que sera utilizado pelo
     Asterisk SIP listener. Se for setado com 0.0.0.0
     (default) irá utilizar todas as interfaces
✔
     context: Configura o contexto padrão para todos
     os clientes, a não ser que seja modificado na
     sessão de definições do cliente
✔
     bindport: Porta UDP SIP que ficará aberta
✔
     maxexpirey: Tempo máximo para se registrar
     (segundos)
✔
     defaultexpirey: Temo padrão para se registro
     (segundos)
✔
     register: Registra o Asterisk em outro host
sip.conf
✔
     Após a sessão é a [general] teremos a sessões
     para definição dos clientes (extensões)
✔
     Exemplo:


    [4020]
    type=friend
    secret=mysecret
    host=10.1.30.50
    context=trusted

    [4021]
    type=friend
    secret=xlite
    host=dynamic
    defaultip=10.1.30.17
sip.conf
Definições:

✔
     [nome]: Quando um dispositivo SIP se conecta ao
     Asterisk, ele usa a parte do nome do usuário
     retirado do SIP URI para localizar o peer/user.
✔
     type: Configura a classe da conexão. Pode ser
     peer, user, e friend.
      ✔
        peer: Asterisk envia chamadas para um peer.
      ✔
        user: Asterisk recebe chamadas de um usuário.
      ✔
        friend: os dois anterores ao mesmo tempo
✔
     host: Endereco IP ou hostname. A opcão mais
     comum é “dynamic”, usado quando um host
     registra em um Asterisk.
✔
     secret: Password para autenticar um usuário ou
     peer.
Testando o registro

✔
     Configure seu cliente SIP para se registra no
     Asterisk
✔
     Entre na console do Asterisk e aguarde pela
     mensagem de registo:
    [root@pbxip asterisk]# /etc/init.d/iptables stop
    [root@pbxip asterisk]# /usr/sbin/asterisk -rvvvvvvv
    Connected to Asterisk 1.6.2.8 currently running on
    pbxip (pid = 2520)
    Verbosity was 3 and is now 7
       -- Remote UNIX connection
    pbxip*CLI>
       -- Registered SIP '4550' at 192.168.15.242 port
    5060
          > Saved useragent "Twinkle/1.4.2" for peer
    4550
    pbxip*CLI>
Plano de discagem (Dialplan)
✔
     É o coração do Asterisk

✔
     Define com o Asterisk irá tratar com cada chamada
     feita ou recebida pelo PBX

✔
     Constituída por extensões que são formadas por
     instruções as quais o Asterisk executará de forma
     sequenciada.

✔
     Configurado no extensions.conf

✔
     Possui 4 conceitos de maior relevância
      ✔
        Extensões
      ✔
        Prioridades
      ✔
        Aplicações
      ✔
        Contexto
Plano de discagem (Dialplan)
✔
     Extensões
      ✔
        O plano de discagem é feito por diversas
        extensões
      ✔
        É uma string que irá trigar um evento quando
        uma chamada for feita
      ✔
        Pode ser literal ou pattern
Plano de discagem (Dialplan)
✔
     Extensões (exemplos)


    exten=>8580,1,Dial(SIP/8580,20)
    exten=>8580,2,hangup()


Onde:
✔
     Exten : define o próximo passo da chamada
✔
     8580 : é o grupo de dígitos que foram discados
     (called number)
✔
     1 e 2: são prioridades que definem a ordem de
     execução

✔
     Ao discar 8580, a chamada será encaminhada para
     o cliente registrado com o número 8580 e tocará
     durante 20s, caso não haja atendimento a chamada
     será desligada.
Plano de discagem (Dialplan)

✔
     Prioridades

     ✔
         São   ações   numeradas     para      execução
         sequenciada em cada extensão

     ✔
         Cada prioridade chama uma aplicação

     ✔
         Inicia com 1 e é incrementada de 1 a cada linha
         da extensão.

     ✔
         Se a numeração não for sequenciada a execução
         será abortada
Plano de discagem (Dialplan)

✔
      Aplicações

       ✔
           Parte fundamental do Asterisk
       ✔
           Lidam com canais de voz, reproduzem
           mensagens/tons, lidam com as chamadas e com
           a desconexão
       ✔
           Para verificar as aplicações instaladas:
    pbxip*CLI> core show applications
       -= Registered Asterisk Applications =-
              ADSIProg: Load Asterisk ADSI Scripts into phone
            AgentLogin: Call agent login.
                 AGI: Executes an AGI compliant application
                 AMD: Attempt to detect answering machines.
               Answer: Answer a channel if ringing.
           Authenticate: Authenticate a user
            BackGround: Play an audio file while waiting for
    digits of an extension to go to.
Plano de discagem (Dialplan)

✔
     Contexto

     ✔
         Fundamental para o utilização do Asterisk bem
         como para a Segurança
     ✔
         Define um escopo
     ✔
         Permite a separação do plano de discagem em
         partes diferentes
     ✔
         Altamente ligado aos canais do Asterisk
     ✔
         Quando o Asterisk recebe uma chamada, ela é
         tratada dentro do contexto de entrada daquele
         canal.
     ✔
         O contexto de entrada sempre é definido no
         arquivo de configuração do canal (iax.conf,
         sip.conf)
Plano de discagem (Dialplan)

✔
     Contexto
Plano de discagem (Dialplan)

✔
     Contexto (Exemplo)
Plano de discagem (Dialplan)

✔
     Contexto

     ✔
         Contextos diferentes podem ser criados para
         atender a diferentes empresas
     ✔
         Ou diferentes classes de usuários
     ✔
         Ou definir quem pode realizar ligações
         internacionas, interurbanas, locais ou apenas
         dentro da rede
     ✔
         Tudo isso com os mesmos arquivos de
         configuração
     ✔
         Um contexto é criado com um nome entre []
     ✔
         Um contexto é composto por diversas extensões
     ✔
         Ele termina quando o outro inicia
Prática
✔
     Na empresa temos 4 grupos de ramais
      ✔
        8010 – 8019 (Administração)
      ✔
        8020 – 8029 (RH)
      ✔
        8030 – 8039 (TI)
      ✔
        8040 – 8049 (Financeiro)
1. Crie extensões no contexto [default] para que todos
   possam se falar
2. Crie um contexto chamado [simplifica] e crie uma
   única extensão que permita falar com todos os
   ramais.
3. Uma nova politica foi dada conforme regras abaixo,
   crie contextos e extensões que implementem a
   mesma.
    ✗
       TI liga para todos os ramais
    ✗
       RH só liga para TI e Financeiro
    ✗
       Admin só liga para TI
    ✗
       Financeiro liga para TI e Admin
VoIP e NGN
 Asterisk
 Configuração
Frederico Madeira <fred@madeira.eng.br>
          www.madeira.eng.br

Configuracao do asterisk

  • 1.
    VoIP e NGN Asterisk Configuração Frederico Madeira <fred@madeira.eng.br> www.madeira.eng.br
  • 2.
    Agenda ➔ Arquivos de Configuração ➔ sip.conf ➔ Plano de Discagem – Extensões – Prioridades – Aplicações – Contextos ➔ Prática
  • 3.
    Arquivos de Configuração ➔ O asterisk é controlado por arquivos de texto localizados em /etc/asterisk ➔ Sessões são chamadas de contextos ➔ Exemplo da Sintaxe: ; ; The first line without a comment should be the session title ; [Session] Key = value; Variable designation [Session 2] Key => value; Object declaration
  • 4.
    Arquivos de Configuração ➔ sip.conf – Configurações do protocolo SIP – Configurações das extensões e troncos SIP ➔ extensions.conf – Plano de discagem do asterisk ➔ iax.conf – Configurações do protocolo IAX – Configurações das extensões e troncos IAX
  • 5.
    sip.conf ✔ Arquivo lido de cima para baixo ✔ A primeira sessão é a [general] e possui os parâmetros globais do SIP ✔ Exemplo: [general] bindport = 5060 bindaddr = 192.168.30.10 context = default disallow = all allow = ulaw maxexpirey = 120 defaultexpirey = 80
  • 6.
    sip.conf Definições: ✔ allow/disallow: Define qual codec pode ser utilizado ✔ bindaddr: Endereço que sera utilizado pelo Asterisk SIP listener. Se for setado com 0.0.0.0 (default) irá utilizar todas as interfaces ✔ context: Configura o contexto padrão para todos os clientes, a não ser que seja modificado na sessão de definições do cliente ✔ bindport: Porta UDP SIP que ficará aberta ✔ maxexpirey: Tempo máximo para se registrar (segundos) ✔ defaultexpirey: Temo padrão para se registro (segundos) ✔ register: Registra o Asterisk em outro host
  • 7.
    sip.conf ✔ Após a sessão é a [general] teremos a sessões para definição dos clientes (extensões) ✔ Exemplo: [4020] type=friend secret=mysecret host=10.1.30.50 context=trusted [4021] type=friend secret=xlite host=dynamic defaultip=10.1.30.17
  • 8.
    sip.conf Definições: ✔ [nome]: Quando um dispositivo SIP se conecta ao Asterisk, ele usa a parte do nome do usuário retirado do SIP URI para localizar o peer/user. ✔ type: Configura a classe da conexão. Pode ser peer, user, e friend. ✔ peer: Asterisk envia chamadas para um peer. ✔ user: Asterisk recebe chamadas de um usuário. ✔ friend: os dois anterores ao mesmo tempo ✔ host: Endereco IP ou hostname. A opcão mais comum é “dynamic”, usado quando um host registra em um Asterisk. ✔ secret: Password para autenticar um usuário ou peer.
  • 9.
    Testando o registro ✔ Configure seu cliente SIP para se registra no Asterisk ✔ Entre na console do Asterisk e aguarde pela mensagem de registo: [root@pbxip asterisk]# /etc/init.d/iptables stop [root@pbxip asterisk]# /usr/sbin/asterisk -rvvvvvvv Connected to Asterisk 1.6.2.8 currently running on pbxip (pid = 2520) Verbosity was 3 and is now 7 -- Remote UNIX connection pbxip*CLI> -- Registered SIP '4550' at 192.168.15.242 port 5060 > Saved useragent "Twinkle/1.4.2" for peer 4550 pbxip*CLI>
  • 10.
    Plano de discagem(Dialplan) ✔ É o coração do Asterisk ✔ Define com o Asterisk irá tratar com cada chamada feita ou recebida pelo PBX ✔ Constituída por extensões que são formadas por instruções as quais o Asterisk executará de forma sequenciada. ✔ Configurado no extensions.conf ✔ Possui 4 conceitos de maior relevância ✔ Extensões ✔ Prioridades ✔ Aplicações ✔ Contexto
  • 11.
    Plano de discagem(Dialplan) ✔ Extensões ✔ O plano de discagem é feito por diversas extensões ✔ É uma string que irá trigar um evento quando uma chamada for feita ✔ Pode ser literal ou pattern
  • 12.
    Plano de discagem(Dialplan) ✔ Extensões (exemplos) exten=>8580,1,Dial(SIP/8580,20) exten=>8580,2,hangup() Onde: ✔ Exten : define o próximo passo da chamada ✔ 8580 : é o grupo de dígitos que foram discados (called number) ✔ 1 e 2: são prioridades que definem a ordem de execução ✔ Ao discar 8580, a chamada será encaminhada para o cliente registrado com o número 8580 e tocará durante 20s, caso não haja atendimento a chamada será desligada.
  • 13.
    Plano de discagem(Dialplan) ✔ Prioridades ✔ São ações numeradas para execução sequenciada em cada extensão ✔ Cada prioridade chama uma aplicação ✔ Inicia com 1 e é incrementada de 1 a cada linha da extensão. ✔ Se a numeração não for sequenciada a execução será abortada
  • 14.
    Plano de discagem(Dialplan) ✔ Aplicações ✔ Parte fundamental do Asterisk ✔ Lidam com canais de voz, reproduzem mensagens/tons, lidam com as chamadas e com a desconexão ✔ Para verificar as aplicações instaladas: pbxip*CLI> core show applications -= Registered Asterisk Applications =- ADSIProg: Load Asterisk ADSI Scripts into phone AgentLogin: Call agent login. AGI: Executes an AGI compliant application AMD: Attempt to detect answering machines. Answer: Answer a channel if ringing. Authenticate: Authenticate a user BackGround: Play an audio file while waiting for digits of an extension to go to.
  • 15.
    Plano de discagem(Dialplan) ✔ Contexto ✔ Fundamental para o utilização do Asterisk bem como para a Segurança ✔ Define um escopo ✔ Permite a separação do plano de discagem em partes diferentes ✔ Altamente ligado aos canais do Asterisk ✔ Quando o Asterisk recebe uma chamada, ela é tratada dentro do contexto de entrada daquele canal. ✔ O contexto de entrada sempre é definido no arquivo de configuração do canal (iax.conf, sip.conf)
  • 16.
    Plano de discagem(Dialplan) ✔ Contexto
  • 17.
    Plano de discagem(Dialplan) ✔ Contexto (Exemplo)
  • 18.
    Plano de discagem(Dialplan) ✔ Contexto ✔ Contextos diferentes podem ser criados para atender a diferentes empresas ✔ Ou diferentes classes de usuários ✔ Ou definir quem pode realizar ligações internacionas, interurbanas, locais ou apenas dentro da rede ✔ Tudo isso com os mesmos arquivos de configuração ✔ Um contexto é criado com um nome entre [] ✔ Um contexto é composto por diversas extensões ✔ Ele termina quando o outro inicia
  • 19.
    Prática ✔ Na empresa temos 4 grupos de ramais ✔ 8010 – 8019 (Administração) ✔ 8020 – 8029 (RH) ✔ 8030 – 8039 (TI) ✔ 8040 – 8049 (Financeiro) 1. Crie extensões no contexto [default] para que todos possam se falar 2. Crie um contexto chamado [simplifica] e crie uma única extensão que permita falar com todos os ramais. 3. Uma nova politica foi dada conforme regras abaixo, crie contextos e extensões que implementem a mesma. ✗ TI liga para todos os ramais ✗ RH só liga para TI e Financeiro ✗ Admin só liga para TI ✗ Financeiro liga para TI e Admin
  • 20.
    VoIP e NGN Asterisk Configuração Frederico Madeira <fred@madeira.eng.br> www.madeira.eng.br