Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
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.
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
28 Out 2011, 11:46
Me ajudou muito na hora de fazer um trabalho e implata-lo.
Obrigado.
12 Set 2011, 12:55
17 Jan 2011, 15:38
tudo funciona 100%
30 Ago 2010, 11:33
Para quem, como eu, esta iniciando no mundo Asterisk, seu tutorial é de grande valia.
Parabens.;;;












