Aplicações do Dialplan do Asterisk 21
Comando:
WaitForCondition()
Sinopse:
Aguarda (dorme) até que a condição especificada seja verdadeira.
Descrição:
A função WaitForCondition() aguarda até que uma expressão lógica seja avaliada como verdadeira, verificando a cada intervalo de segundos, com um tempo limite máximo definido. Por padrão, a expressão é verificada a cada 50 milissegundos sem tempo limite. O primeiro parâmetro, replacementchar, define um caractere que substitui o símbolo '$' dentro da expressão, evitando que ela seja avaliada imediatamente ao ser passada para a aplicação. O segundo parâmetro, expression, é a expressão lógica modificada que será avaliada. O terceiro parâmetro, timeout, define o tempo máximo em segundos que a aplicação aguardará pela condição antes de continuar automaticamente para a próxima prioridade no dialplan. O quarto parâmetro, interval, define a frequência em segundos com que a condição será verificada, permitindo ajuste de sensibilidade temporal. A aplicação pode retornar os status: TRUE (condição atendida antes do tempo limite), FAILURE (argumento inválido), TIMEOUT (tempo esgotado sem atendimento da condição) ou HANGUP (canal encerrado antes da condição ser atendida). Exemplo: aguarda até que a variável dialplan 'condition' se torne '1' por até 40 segundos, verificando a cada 500ms.
Sintaxe:
same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)
WaitForCondition(replacementchar,expression,[timeout,[interval]])
Fonte: Asterisk Wiki