Funções do Dialplan do Asterisk 18
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])
- freq: Frequência do tom a ser detectado. Para desativar completamente a detecção de frequência (por exemplo, para detecção de sinal apenas), especifique 0 para a frequência.
- duration_ms: Duração mínima do tom, em milissegundos. O padrão é 500ms. Usar uma duração mínima abaixo de 50ms é improvável de produzir resultados precisos.
- options: Opções de detecção que incluem: 'a' para tons de informação especiais, 'b' para sinal de ocupado, 'c' para tom de discagem, 'd' para limiar personalizado em decibéis, 'g' para ir para contexto específico se tom for recebido, 'h' para ir para contexto se tom for transmitido, 'n' para número de detecções antes de ir ao destino, 'p' para tom de retorno audível, 'r' para aplicar apenas a quadros recebidos, 's' para silenciar tom, 't' para aplicar apenas a quadros transmitidos, e 'x' para destruir o detector.
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