Aplicações Asterisk - GotoIf

Aí vai uma dica para utilização da aplicação GotoIf do Asterisk

A aplicação GotoIf executa um teste lógico, se verdadeiro toma uma ação, se falso toma outra ação.

Exemplificando:

[pbx]
exten => 200,1,GotoIf($[${CALLERID(num)}=100]?sim:nao)      ;Teste lógico;
same  => n(sim),Playback(ola)                                                        ;Rótulo "sim";
same  => n(nao),HangUp                                                                 ;Rótulo "nao";

O que faz este contexto: executa o audio "ola" se o CALLERID de quem ligou for 100.

Cuidado, executando o rótulo "sim", de qualquer maneira ele vai executar o rótulo "nao", é a sequência do plano de discagem.

Agora um GotoIf um pouco mais elaborado:

[pbx]
exten => _X.,1,Read(minhasenha,digitesuasenha,4)
same => n,Set(SENHA=1234)
same => n,GotoIf($[${MINHASENHA}=${SENHA}]?autorizado:negado)
same => n(autorizado),Goto(menu1,,1)
same => n(negado),Playback(senhaincorretatentenovamente)
same => n,Goto(pbx,,1)

O que faz este contexto: pede para o usuário digitar uma senha, se esta senha for igual a definida no contexto (1234) envia para o contexto menu1. Se for diferente, informa ao usuário que a senha está errada e pede para digitá-la novamente. Resumindo: um contexto para autenticação do usuário.

Comentários

Postagens mais visitadas deste blog

Discador para Asterisk - Integrado com banco de dados

Importação do arquivo CNL Anatel para banco de dados

Monitorar um único ramal no Asterisk.