Aplicações do Dialplan do Asterisk 23
Descrição:A função
WaitForCondition() aguarda até que uma expressão lógica seja avaliada como verdadeira, verificando a cada intervalo de tempo definido, até um tempo máximo de espera (timeout). Por padrão, a expressão é verificada a cada 50 milissegundos, sem limite de tempo.
Exemplo: Aguarda até que a variável ou função do dialplan
${condition} se torne igual a 1, por até 40 segundos, verificando a cada 500ms:
same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)Valores de retorno:- TRUE – A condição foi avaliada como verdadeira antes do tempo limite expirar.
- FAILURE – Argumento inválido.
- TIMEOUT – O tempo limite foi atingido sem que a condição se tornasse verdadeira.
- HANGUP – O canal foi desconectado antes da condição se tornar verdadeira.
Sintaxe:WaitForCondition(replacementchar,expression,[timeout,[interval]])- replacementchar – Caractere usado na expressão para substituir o caractere
$. Esse caractere não deve ser usado em nenhum outro lugar na expressão. - expression – Expressão lógica modificada com os caracteres
$ substituídos por replacementchar. Isso é necessário para passar a expressão em si para a aplicação, e não apenas sua avaliação inicial. - timeout – Tempo máximo, em segundos, que a aplicação aguardará até que a condição se torne verdadeira antes de continuar automaticamente para a próxima prioridade no dialplan. Por padrão, não há tempo limite.
- interval – Frequência, em segundos, com que a condição é verificada. Pode ser ajustada conforme a sensibilidade de tempo necessária. O valor padrão é 0,05 segundos (50 ms).