Asterisk - Configurando Ramais, Plano de Discagem e URA Simples

Neste artigo realizaremos a criação de ramais no Asterisk utilizando o protocolo SIP. Posteriormente, adicionaremos um plano de discagem abordando o conceito de máscaras ou coringas e por fim, criaremos uma URA simples.

[ Hits: 16.378 ]

Por: Robson Leite em 06/04/2021 | Blog: https://www.linkedin.com/in/robson-leite-308bb9143/


Introdução



Requisitos e Criação dos Ramais

Para esse artigo, partimos da premissa de que o Asterisk já esteja instalado.

Caso ainda não o tenha instalado no sistema, recomendo o artigo de nosso amigo Bruno Ricci, link abaixo:
Seguindo o padrão de diretórios do Linux, devemos navegar até a pasta /etc/asterisk para encontrarmos os arquivos de configuração do mesmo.

Com o editor de sua preferência, edite o arquivo "sip.conf" com o texto abaixo:

[general]
bindaddr=0.0.0.0
bindport=5060
context=ramais
disallow=all
allow=gsm
allow=alaw

[4000]
callerid=ramal1<4000>
canreinvite=no
dtmfmode=rfc2833
host=dynamic
type=friend
secret=4000

[4001]
callerid=ramal2<4001>
canreinvite=no
dtmfmode=rfc2833
host=dynamic
type=friend
secret=4001

Salve e feche o arquivo.

Entre na CLI do Asterisk com o comando:

# asterisk -rvvvvvv

... e execute o comando:

# sip reload

Após isso execute o comando sip show peers para ver os ramais criados.

Detalhando o código no arquivo "sip.conf":
  1. O campo [general] indica a seção geral ou seja, são as definições gerais de comunicação;
  2. bindaddr=0.0.0.0 indica ao Asterisk que as contas SIP irão se a associar por qualquer equipamento, telefones IP;
  3. context é o contexto que será usado posteriormente no plano de discagem;
  4. disallow indica ao Asterisk que serão utilizados Codecs;
  5. allow indica ao Asterisk quais Codecs serão utilizados;
  6. mais abaixo temos a criação dos ramais 4000 e 4001;
  7. callerid indica o texto que será binado no ramal que receber as ligações;
  8. canreinvite indica ao Asterisk que uma vez estabelecida a chamada os ramais podem continuar trocando pacotes porém não através do Asterisk mas sim através do canal entre eles;
  9. dtmfmode indica ao Asterisk o padrão de DTMF que será utilizado;
  10. host indica o IP associado ao ramal, no caso definido como dinâmico;
  11. type, tipo do ramal user, peer ou friend;
  12. secret senha para autenticação do ramal.

Plano de discagem

Agora iremos realizar a criação do plano de discagem para nossos ramais.

No diretório /etc/asterisk acesse arquivo "extensions.conf" com seu editor de texto preferido e adicione o código abaixo:

[general]

[globals]

[ramais]
exten => 4000,1,Dial(SIP/${EXTEN})
exten => 4000,2,HangUP();

exten => 4001,1,Dial(SIP/${EXTEN})
exten => 4001,2,HangUP();

Salve e feche o arquivo.

Acesse a CLI do Asterisk e aplique o comando:

# dialplan reload

Pronto, já é possível realizar ligações para 4000 e 4001.

Agora, imagine um ambiente onde precisamos criar 200 ramais, programar o plano de discagem da maneira que fizemos mais acima é inviável. Para otimizar a criação do plano, podemos utilizar máscaras ou coringas, onde os valores numéricos são substituídos por letras e cada letra representa um range de numérico.

Abaixo, equivalência do range numérico das letras:
  • X - pode representar qualquer digito entre 0 e 9
  • Z - pode representar qualquer digito entre 1 e 9
  • N - pode representar qualquer digito entre 2 e 9
  • [2-6] - pode representar qualquer número de 2 a 6

Exemplo de plano de discagem para 500 ramais utilizando o range de 4000 a 4499:

exten => _4[0-4]XX,1,Dial(SIP/${EXTEN})
exten => _4[0-4]XX,2,HangUP();

Também é possível utilizar coringas para a extensão, exemplo abaixo:

exten => _4[0-4]XX,1,Dial(SIP/${EXTEN})
same =>        2,HangUP();

Detalhando o código no arquivo "extensions.conf":
  1. A sessão [globals] declarar variáveis globais dentro do plano de discagem;
  2. [ramais] é no nome do contexto que criamos para nossos ramais no arquivo "sip.conf";
  3. A aplicação Dial conecta dois canais de comunicação, sua sintaxe é a seguinte Dial(protocolo/identificação[,timeout,opções]);
  4. A aplicação HangUP encerra um canal de comunicação.

Criação da URA

Por fim, iremos criar uma URA "Unidade de Resposta Audível"

Dentro do diretório /etc/asterisk, acesse com seu editor de textos preferido o arquivo "extensions.conf". Dentro do contexto ramais, abaixo do plano de discagem adicione os códigos abaixo:

exten => 800,1,Goto(UraSimples,s,1)

[UraSimples]
exten => s,1,Answer()
same =>    n,Background(urasimples)
same =>    n,WaitExten(10)

exten => 1,1,Dial(SIP/4000)
same =>    n,HangUP()

exten => 2,1,Dial(SIP/4001)
same =>    n,HangUP()

exten => i,1,Playback(opc-invalida)
same =>   n,Goto(UraSimples,s,1)

exten => t,1,Playback(tempo-esgotado)
same =>   n,Goto(UraSimples,s,1)

Detalhando o código acima:
  • Ao discar 800, a ligação será direcionada para [UraSimples];
  • A aplicação Answer "atende" a ligação;
  • A aplicação "Background" executa o áudio urasimples, lembrando que o áudio deve estar no diretório /var/spool/asterisk/sounds;
  • A aplicação WaitExten aguarda por 10 segundos o usuário digitar alguma tecla;
  • Caso digite 1, a ligação será entregue ao ramal 4000;
  • Caso digite 2, a ligação será entregue ao ramal 4001;
  • Caso seja digitada alguma opção inválida, executa o áudio "opc-invalida" e a ligação retornará ao inicio da URA;
  • Caso o tempo se esgote sem que nenhuma tecla seja digitada, executa o áudio "tempo-esgotado" e a ligação retornará a inicio da URA.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Plano de discagem
   3. Criação da URA
Outros artigos deste autor

Asterisk - Definindo variáveis e manipulando fluxo de dados

VOIP - Interceptando tráfego de pacotes

Inicializando servidor Ubuntu na AWS e rodando apache em Container

Explorando o Network Manager

Leitura recomendada

Instalação e configuração do MySQL 4.0.26, Apache 2.0.54, PHP 5.0.4 e PHP-Nuke 7.8 no Slackware 10.1

PROXMOX Overview - Virtualização Leve e Eficiente

Como fazer um servidor de rádio virtual

Instalando um servidor Openfire no Debian para liberação de MSN via Spark em uma rede Windows

Asterisk 1.6 com MD3200 em Linux Ubuntu Server 8.10

  
Comentários
[1] Comentário enviado por maurixnovatrento em 06/04/2021 - 10:01h


Bem que você podia definir o que é esse serviço, pois tenho certeza que muita gente não sabe do que se trata.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por Carlos_Cunha em 07/04/2021 - 11:31h


[1] Comentário enviado por mauricio123 em 06/04/2021 - 10:01h


Bem que você podia definir o que é esse serviço, pois tenho certeza que muita gente não sabe do que se trata.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]


Acredito que ele já aborta isso na primeira frase do texto.
"Para esse artigo, partimos da premissa de que o Asterisk já esteja instalado."

No Mais Ótima dica!!!

[3] Comentário enviado por maurixnovatrento em 07/04/2021 - 16:30h


Achei esse artigo muito bom. Dando uma pesquisada, para quem não sabe, o Asterisk é um software específico para implementação de servidores de comunicação telefônica, como VoIP (Voice over Internet Protocol), PBX (Private Branch eXchange) e PABX (Private Automatic Branch eXchange) virtual. Foi isso que eu achei.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[4] Comentário enviado por robsonleite em 07/04/2021 - 18:10h


[1] Comentário enviado por mauricio123 em 06/04/2021 - 10:01h


Bem que você podia definir o que é esse serviço, pois tenho certeza que muita gente não sabe do que se trata.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]


Olá Mauricio,

Peço desculpas pela demora.

Realmente acabei não me atentando a esse detalhe.

Pra quem tiver a curiosidade despertada pelo artigo, indico o video abaixo:
https://youtu.be/CapdqjBhD2w

[5] Comentário enviado por maurixnovatrento em 07/04/2021 - 20:31h


Beleza.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[6] Comentário enviado por _lucasg13info em 13/04/2021 - 13:46h

Ótimo artigo! Me ajudou muito!

[7] Comentário enviado por Etheridge74 em 08/05/2021 - 05:08h

I definitely enjoyed reading it, you’re a great author.

https://www.mybalancenow.review/

[8] Comentário enviado por robsonleite em 30/10/2021 - 14:57h


[7] Comentário enviado por Etheridge74 em 08/05/2021 - 05:08h

I definitely enjoyed reading it, you’re a great author.

https://www.mybalancenow.review/


Hi Etheridge74,

Thanks for the compliment.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts