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: 3.822 ]

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

Inicializando servidor Ubuntu na AWS e rodando apache em Container

Explorando o Network Manager

VOIP - Interceptando tráfego de pacotes

Asterisk - Configurando Ramais, Plano de Discagem e URA Simples

Leitura recomendada

Funcionalidades do Eclipse no Vim - Usando o Eclim

Instalação e configuração do Kickstart em modo gráfico

Configuração manual dos ponteiros do mouse

LTSP 5 no Ubuntu 8.04

Enlightenment no Debian Squeeze e no Ubuntu

  
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