Asterisk - Definindo variáveis e manipulando fluxo de dados

Neste artigo, iremos explorar a definição de variáveis, e o controle do fluxo de dados com a aplicação "gotoif" no ambiente Asterisk.

[ Hits: 4.363 ]

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


Definindo variáveis pelo plano de discagem



Para facilitar os testes iremos utilizar o Issabel, que possui uma interface gráfica para programações de algumas funções do Asterisk.

Podemos programar em texto utilizando o arquivo /etc/asterisk/extensions_custom.conf.

Acessando o arquivo "extensions_custom.conf" podemos criar um plano de discagem personalizado no sistema, podendo assim utilizar as aplicações do Asterisk.

Abra o arquivo "extensions_custom.conf" com seu editor de texto predileto e cole o código abaixo:

[300]
exten => s,1,Answer()
exten => s,n,Waitexten(9)

exten => 1,1,Set(COR=AZUL)
exten => 1,n,Hangup()

exten => 2,1,Set(COR=BRANCO)
exten => 2,n,Hangup()

exten => 3,1,Set(COR=VERDE)
exten => 3,n,Hangup()

No código acima está definida as regras de discagem do custom destination "300,s,1".

Dê o comando:

# asterisk -rx "dialplan reload"

para que o sistema carregue as novas regras que definimos.

Detalhando um pouco o código temos o seguinte:
  • [300] Nome de entrada (Destino) do código
  • Answer, é a aplicação que "atenderá" a ligação
  • Waitexten(9), aguarda o ramal que efetuou a chamada digitar um número no caso estamos utilizando os números 1, 2 e 3 para "setar" os valores "AZUL", "BRANCO" e VERDE na variável COR respectivamente.

Realizando alguns testes direcionando a ligação para o fluxo "300,s,1" obtivemos o seguinte resultado:

Ao discar 1 é possível notar pela CLI do Asterisk que a variável COR recebe o valor AZUL:
ao discar 2, COR é definida como branco.
ao discar 3, a variável é definida com valor "VERDE".
Se quiser realizar um debug como o das imagens mais acima basta digitar:

# asterisk -rvvvvvv

e será possível monitorar cada linha de código da chamada.

    Próxima página

Páginas do artigo
   1. Definindo variáveis pelo plano de discagem
   2. Fluxo de dados
Outros artigos deste autor

Explorando o Network Manager

VOIP - Interceptando tráfego de pacotes

Inicializando servidor Ubuntu na AWS e rodando apache em Container

Asterisk - Configurando Ramais, Plano de Discagem e URA Simples

Leitura recomendada

Autenticando e protegendo diretórios no Apache

AntiX: um Sistema Operacional para computadores antigos

Conexões SSH sem senha fácil e descomplicado

Calculando valores UMASK

GRUB com imagens aleatórias e KDM com vídeo de fundo

  
Comentários
[1] Comentário enviado por maurixnovatrento em 05/07/2022 - 22:38h


Bom artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts