Funções do Dialplan do Asterisk 23
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 TX e 'rx' para obter o número de vezes que um tom foi detectado na direção RX.
Exemplos:
intercept2600same => n,Set(TONE_DETECT(2600,1000,g(got-2600,s,1))=) ; detect 2600 Hz
same => n,Wait(15)
same => n,NoOp(${TONE_DETECT(rx)})
dropondialtonesame => 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()
removedetectorsame => n,Set(TONE_DETECT(0,,x)=) ; remove the detector from the channel
Sintaxe: TONE_DETECT(freq[,duration_ms,options])
Parâmetros:
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 ms. O padrão é 500ms. Usar uma duração mínima abaixo de 50ms é improvável que produza resultados precisos.
options:
a - Corresponder imediatamente aos tons de informação especiais, em vez de ou além de uma frequência particular.
b - Corresponder imediatamente a um sinal de ocupado, em vez de ou além de uma frequência particular.
c - Corresponder imediatamente a um tom de discagem, em vez de ou além de uma frequência particular.
d - Limiar personalizado de decibéis a ser usado. O padrão é 16.
e - Finalizar automaticamente a detecção após o número desejado de detecções (conforme especificado na opção 'n').
g - Ir para o contexto,extensão,prioridade especificado se o tom for recebido neste canal. A detecção não terminará automaticamente, a menos que a opção 'e' também seja especificada.
h - Ir para o contexto,extensão,prioridade especificado se o tom for transmitido neste canal. A detecção não terminará automaticamente, a menos que a opção 'e' também seja especificada.
n - Número de vezes que o tom deve ser detectado (sujeito ao tempo limite fornecido) antes de ir para o destino fornecido nas opções 'g' ou 'h'. O padrão é 1.
p - Corresponder imediatamente ao tom de retorno audível, em vez de ou além de uma frequência particular.
r - Aplicar apenas às frames recebidas. O padrão é em ambas as direções.
s - Silenciar o tom.
t - Aplicar apenas às frames transmitidas. O padrão é em ambas as direções.
x - Destruir o detector (parar a 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