Funções do Dialplan do Asterisk 22
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).
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 milissegundos. O padrão é 500ms. Usar uma duração mínima abaixo de 50ms dificilmente produzirá resultados precisos.
options - Opções de detecção:
a - Corresponder imediatamente aos tons de informação especial, em vez de ou além de uma frequência específica.
b - Corresponder imediatamente a um sinal de ocupado, em vez de ou além de uma frequência específica.
c - Corresponder imediatamente a um tom de discagem, em vez de ou além de uma frequência específica.
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 específica.
r - Aplicar apenas às frames recebidas. O padrão é ambas as direções.
s - Silenciar tom (squelch).
t - Aplicar apenas às frames transmitidas. O padrão é ambas as direções.
x - Destruir o detector (parar 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