você está aqui: Home  → Arquivo de Mensagens

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.


 

 

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

Opinião dos Leitores

Marcelo Nunes
23 Jan 2014, 15:37
Tutorial nota 10, facil compreencao
Ricardo Cutier
11 Jun 2012, 10:50
Ola, Para Todos...
Sou usuário de um Sistema IPBX, aparelhos Voip AudioCodes etc... Acontece que preciso de assistencia ou seja, um profissional na Região de Barueri, tenho uma pequena empresa mas uso muito telefone e atualmente a empresa que presta serviço esta deixando a desejar

Saudações

Ricardo
11 41982829
11 78409445
Fabio A.
10 Fev 2012, 13:26
Parabéns muito bom.
Carlos Daniel
28 Out 2011, 11:46
Belo tutorial, parabéns ae.
Me ajudou muito na hora de fazer um trabalho e implata-lo.
Obrigado.
José Carlos
12 Set 2011, 12:55
Olá. Estou tendo problemas para configurar o Asterisk. Não consigo fazer funcionar o hello-world nele.
Rodrigo
17 Jan 2011, 15:38
Realmente muito bom o tutorial!!

tudo funciona 100%
Marinho
30 Ago 2010, 11:33
Material muito bom, valeu mesmo.
Para quem, como eu, esta iniciando no mundo Asterisk, seu tutorial é de grande valia.
Parabens.;;;
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script