Funções do Dialplan do Asterisk 21
Comando:
TONE_DETECT()
Sinopse:
Detecta um tom de forma assíncrona
Descrição:
A função TONE_DETECT() detecta um tom de frequência única e mantém o controle de quantas vezes o tom foi detectado. Ao ler esta função (em vez de escrever), forneça 'tx' para obter o número de vezes que um tom foi detectado na direção de transmissão (TX) e 'rx' para obter o número de vezes que um tom foi detectado na direção de recepção (RX). A sintaxe é TONE_DETECT(freq[,duration_ms,options]) onde freq é a frequência do tom a ser detectado (especifique 0 para desativar completamente a detecção de frequência), duration_ms é a duração mínima do tom em milissegundos (padrão é 500ms) e options são opções adicionais como 'a' para tons de informação especiais, 'b' para sinal de ocupado, 'c' para tom de discagem, 'g' para ir para um contexto específico quando o tom é recebido, entre outras opções que controlam o comportamento da detecção.
Sintaxe:
same => n,Set(TONE_DETECT(2600,1000,g(got-2600,s,1))=) ; detect 2600 Hz
same => n,Wait(15)
same => n,NoOp(${TONE_DETECT(rx)})
same => n,Set(TONE_DETECT(0,,bg(my-hangup,s,1))=) ; disconnect a call if we hear a busy signal
same => n,Goto(somewhere-else)
same => n(myhangup),Hangup()
same => n,Set(TONE_DETECT(0,,x)=) ; remove the detector from the channel
TONE_DETECT(freq[,duration_ms,options])
Fonte: Asterisk Wiki