Aplicações do Dialplan do Asterisk 18
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. Por padrão, a expressão é verificada a cada 50 milissegundos sem limite de tempo. O comando aceita quatro parâmetros: o caractere substituto para '$', a expressão lógica modificada, o tempo limite opcional em segundos e o intervalo opcional entre verificações em segundos. A função é útil para pausar a execução do dialplan até que uma condição específica seja satisfeita, como o valor de uma variável ou função do dialplan atingir determinado estado. Exemplo: aguarda até 40 segundos que a variável 'condition' se torne '1', verificando a cada 500ms. Os possíveis valores de retorno são: TRUE (condição atendida antes do tempo limite), FAILURE (argumento inválido), TIMEOUT (tempo esgotado sem atendimento da condição) e HANGUP (canal encerrado antes da condição ser atendida).
Sintaxe:
same => n,WaitForCondition(#,#["#{condition}"="1"],40,0.5)
WaitForCondition(replacementchar,expression,[timeout,[interval]])
Fonte: Asterisk Wiki