De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Asterisk - Construindo um PBX IP com Software Livre (Parte 2)

Colaboração: Andrey Smith

Data de Publicação: 29 de January de 2010

Na parte 1 deste tutorial foi realizada a instalação do Asterisk e suas dependências, agora irei configurá-lo para efetuar ligações entre ramais utlizando os protocolos SIP e IAX.

1. Pré-requisitos

Ter executado com sucesso a parte 1 deste tutorial. Uma segunda máquina para que possam ser executados testes.

2. Informações gerais

Será utilizada a mesma configuração da parte 1 do tutorial.

Mãos à obra!

3. Criar ramais SIP

O arquivo sip.conf existente está muito bem comentado, é uma boa prática mantê-lo inalterado para posteriormente ser utilizado como fonte de consulta para eventuais dúvidas.

Renomear sip.conf

  # mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.orig

Criar e editar um novo arquivo sip.conf

  # vi /etc/asterisk/sip.conf

Conteúdo do arquivo:

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

4. Criar ramais IAX

Renomear iax.conf

  # mv /etc/asterisk/iax.conf /etc/asterisk/iax.conf.orig

Criar e editar um novo arquivo iax.conf

  # vi /etc/asterisk/iax.conf

Conteúdo do arquivo:

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

5. Criar o plano de discagem (Dial Plan)

Renomear extensions.conf

  # mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.orig

Criar e editar um novo arquivo extensions.conf

  # vi /etc/asterisk/extensions.conf

Conteúdo do arquivo:

  [tutorial]
  exten => 1001,1,Dial(SIP/1001)
  exten => 1002,1,Dial(SIP/1002)
  exten => 1003,1,Dial(IAX/1003)
  exten => 1004,1,Dial(IAX/1004)
[tutorial] Contexto contendo regras de discagem.

Por ser um assunto de maior abrangência, o plano de discagem terá um tutorial exclusivo.

6. Ativar as configurações

Acessar a CLI (Command Line Interface) do Asterisk

  # rasterisk

ou

  # asterisk -r

Resultado:

  Asterisk 1.4.26.2, Copyright (C) 1999 - 2008 Digium, Inc. and others.
  Created by Mark Spencer
  Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
  This is free software, with components licensed under the GNU General Public
  License version 2 and other licenses; you are welcome to redistribute it under
  certain conditions. Type 'core show license' for details.
  =========================================================================
  Connected to Asterisk 1.4.26.2 currently running on debian (pid = 2800)
  debian*CLI>

Recarregar as configurações SIP

  sip reload

Mostrar ramais (peers) criados no sip.conf

  sip show peers

Resultado:

  Name/username              Host            Dyn Nat ACL Port     Status
  1002                       (Unspecified)    D          0        Unmonitored
  1001                       (Unspecified)    D          0        Unmonitored
  2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]

Recarregar as configurações IAX

  iax2 reload

Mostrar ramais (peers) criados no iax.conf

  iax2 show peers

Resultado:

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

Recarregar as configurações do plano de discagem

  dialplan reload

Resultado:

  Dialplan reloaded.

Verificar se o plano de discagem foi carregado

  dialplan show tutorial

Resultado:

  [ Context 'tutorial' created by 'pbx_config' ]
    '1001' =>         1. Dial(SIP/1001)                             [pbx_config]
    '1002' =>         1. Dial(SIP/1002)                             [pbx_config]
    '1003' =>         1. Dial(SIP/1003)                             [pbx_config]
    '1004' =>         1. Dial(SIP/1004)                             [pbx_config]
  
  -= 4 extensions (4 priorities) in 1 context. =-

Sair da CLI

  exit

7. Configuração do softphone

Softphone é um software utilizado para efetuar chamadas telefônicas, a partir de um computador.

Para efetuar os testes irei utilizar o sofphone Zoiper, que possui versões para Linux, Mac e Windows.

O Zoiper tem suporte aos protocolos SIP e IAX, e permite registrar duas contas simultaneamente. Desta forma, com apenas um computador consigo testar se os ramais estão efetuando chamadas entre si.

A instalação do Zoiper é bastante simples, por este motivo não será abordada neste tutorial.

Depois de instalado, basta executá-lo.

Se quiser que o Zoiper inicie ao fazer o login, clique em Yes.

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

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

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

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

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

Com as contas criadas, o próximo passo é registrá-las para efetuar chamadas. Na tela principal do Zoiper, selecione a conta em Account e clique em Register, este procedimento deve ser feito para as duas contas.

Agora basta discar para o outro ramal. No exemplo abaixo, a chamada tem como origem o ramal 1003, e destino o ramal 1001.

Traduzindo a imagem abaixo:

Incoming call é ramal que está efetuando a chamada para 1001. É possível aceitar (Accept), rejeitar (Regect) ou ignorar (Ignore).

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

8. Verificar ramais registrados

Os comandos abaixo são executados na CLI do Asterisk.

Verificar ramais SIP.

  sip  show peers

Resultado:

  Name/username              Host            Dyn Nat ACL Port     Status
  1002                       (Unspecified)    D          0        Unmonitored
  1001/1001                  189.110.52.67    D          59927    Unmonitored
  2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]

Verificar ramais IAX.

  iax2 show peers

Resultado:

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

Os resultados acima estão informando em que host e portas os ramais estão registrados.

No próximo tutorial irei demonstrar como criar uma Unidade de Resposta Audível (URA).

Até o próximo!

:wq!
Andrey Smith

Andrey Smith possui mais de 9 anos de experiência em tecnologia da informação e possui diversas certificações na área de TI.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Andrey Smith