Aplicações do Dialplan do Asterisk 22
Comando:
WaitForSilence()
Sinopse:
Aguarda por uma quantidade especificada de silêncio.
Descrição:
Aguarda até silencerequired milissegundos de silêncio, repetindo iterations vezes. Um tempo limite opcional (timeout) especifica o número de segundos após os quais a função retorna, mesmo que não tenha recebido a quantidade especificada de silêncio. Use o tempo limite com cautela, pois ele pode anular o propósito desta aplicação, que é aguardar indefinidamente até que o silêncio seja detectado na linha. Isso é particularmente útil em aplicações de difusão de chamadas 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 o término da mensagem padrão, depois aguardando o sinal sonoro (beep), e assim por diante.
Exemplos:
same => n,WaitForSilence(500,2) – Aguarda meio segundo de silêncio, duas vezes.
same => n,WaitForSilence(1000) – Aguarda um segundo de silêncio, uma vez.
same => n,WaitForSilence(300,3,10) – Aguarda 300 ms de silêncio, 3 vezes, e retorna após 10 segundos, mesmo que nenhum silêncio seja detectado.
Estado de saída:
WAITSTATUS
SILENCE – se sair com silêncio detectado.
TIMEOUT – se sair sem silêncio detectado após o tempo limite.
Sintaxe:
WaitForSilence([silencerequired,[iterations,[timeout]]])
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