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.
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:
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:
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.
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()
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.
Bom artigo.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10