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.