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.
Parte 2: Fluxo de dados
Agora iremos definir um fluxo a ser seguido pelo sistema a partir do valor definido em COR
Editando novamente o arquivo /etc/asterisk/extensions.conf com seu editor de texto favorito, e defina o plano de discagem abaixo:
Após editar o arquivo digite:
# asterisk -rx "dialplan reload"
para carregar as novas regras de discagem.
Detalhando um pouco o código mais acima, temos uma entrada parecida com a do código da página anterior, porém agora temos apenas 2 variáveis e a aplicação Gotoif que será responsável por tomar uma decisão de acordo com o valor atribuído a variável COR, no caso se COR = AZUL o fluxo será direcionado para a prioridade 10 se a afirmação logica anterior não for verdadeira o fluxo irá para a prioridade 20.
Entrando na CLI do asterisk com o comando:
# asterisk -rvvvvvv
ao realizarmos novos testes temos a seguinte saída:
Ao digitar 1 definindo a variável COR com o valor AZUL. Ao digitar 2 definindo a variável COR com o valor BRANCO.
Editando novamente o arquivo /etc/asterisk/extensions.conf com seu editor de texto favorito, e defina o plano de discagem abaixo:
[300]
exten => s,1,Answer()
exten => s,n,Waitexten(9)
exten => 1,1,Set(COR=AZUL)
exten => 1,n,Goto(resultado,s,1)
exten => 2,1,Set(COR=BRANCO)
exten => 2,n,Goto(resultado,s,1)
[resultado]
exten => s,1,Gotoif($[${COR} = AZUL]?10:20)
exten => s,10,Noop(definida a variável cor com valor "AZUL")
exten => s,n,Hangup()
exten => s,20,Noop(definida a variável cor com valor "BRANCO")
exten => s,n,Hangup()
exten => s,1,Answer()
exten => s,n,Waitexten(9)
exten => 1,1,Set(COR=AZUL)
exten => 1,n,Goto(resultado,s,1)
exten => 2,1,Set(COR=BRANCO)
exten => 2,n,Goto(resultado,s,1)
[resultado]
exten => s,1,Gotoif($[${COR} = AZUL]?10:20)
exten => s,10,Noop(definida a variável cor com valor "AZUL")
exten => s,n,Hangup()
exten => s,20,Noop(definida a variável cor com valor "BRANCO")
exten => s,n,Hangup()
Após editar o arquivo digite:
# asterisk -rx "dialplan reload"
para carregar as novas regras de discagem.
Detalhando um pouco o código mais acima, temos uma entrada parecida com a do código da página anterior, porém agora temos apenas 2 variáveis e a aplicação Gotoif que será responsável por tomar uma decisão de acordo com o valor atribuído a variável COR, no caso se COR = AZUL o fluxo será direcionado para a prioridade 10 se a afirmação logica anterior não for verdadeira o fluxo irá para a prioridade 20.
Entrando na CLI do asterisk com o comando:
# asterisk -rvvvvvv
ao realizarmos novos testes temos a seguinte saída:
Ao digitar 1 definindo a variável COR com o valor AZUL. Ao digitar 2 definindo a variável COR com o valor BRANCO.
Bom artigo.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10