Aplicações do Dialplan do Asterisk 23
Comando:
WaitForSilence()
Sinopse:
Aguarda por um determinado período de silêncio.
Descrição:
Aguarda até silencerequired milissegundos de silêncio, repetindo iterations vezes. Um parâmetro opcional timeout especifica o número de segundos para retornar, mesmo que não tenhamos recebido a quantidade especificada de silêncio. Use o timeout com cautela, pois pode anular o propósito desta aplicação, que é aguardar indefinidamente até que o silêncio seja detectado na linha. Isso é particularmente útil para aplicações de chamadas em massa do tipo reverse-911, onde é necessário aguardar que uma secretária eletrônica termine sua mensagem antes de reproduzir a mensagem desejada.
Normalmente, você desejará incluir duas ou mais chamadas ao WaitForSilence ao lidar com uma secretária eletrônica; primeiro aguardando que a mensagem inicial termine, depois aguardando pelo sinal sonoro (beep), etc.
Exemplos:
• Aguardar meio segundo de silêncio, duas vezes: same => n,WaitForSilence(500,2)
• Aguardar um segundo de silêncio, uma vez: same => n,WaitForSilence(1000)
• Aguardar 300 ms de silêncio, 3 vezes, e retornar após 10 segundos, mesmo que nenhum silêncio seja detectado: same => n,WaitForSilence(300,3,10)
Variáveis de status:
WAITSTATUS:
• SILENCE – se saiu com silêncio detectado.
• TIMEOUT – se saiu sem silêncio detectado após o tempo limite.
Sintaxe:
WaitForSilence([silencerequired,[iterations,[timeout]]])
Parâmetros:
• silencerequired – Se não especificado, o padrão é '1000' milissegundos.
• iterations – Se não especificado, o padrão é '1'.
• timeout – Especificado apenas para evitar um loop infinito nos casos em que o silêncio nunca é alcançado.
Sintaxe:
same => n,WaitForSilence(500,2)
same => n,WaitForSilence(1000)
same => n,WaitForSilence(300,3,10)
WaitForSilence([silencerequired,[iterations,[timeout]]])
Fonte: Asterisk Wiki