Funções do Dialplan do Asterisk 20
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.
Exemplo: intercept2600same => n,Set(TONE_DETECT(2600,1000,g(got-2600,s,1))=) ; detecta 2600 Hz
same => n,Wait(15)
same => n,NoOp(${TONE_DETECT(rx)})
Exemplo: dropondialtonesame => n,Set(TONE_DETECT(0,,bg(my-hangup,s,1))=) ; desconecta uma chamada se ouvir um sinal de ocupado
same => n,Goto(somewhere-else)
same => n(myhangup),Hangup()
Exemplo: removedetectorsame => n,Set(TONE_DETECT(0,,x)=) ; remove o detector do canal
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 ms. O padrão é 500ms. Usar uma duração mínima abaixo de 50ms é improvável que produza resultados precisos.
options:
a - Corresponde imediatamente aos tons de informação especial, em vez de ou além de uma frequência particular.
b - Corresponde imediatamente a um sinal de ocupado, em vez de ou além de uma frequência particular.
c - Corresponde 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 - Finaliza automaticamente a detecção após o número desejado de detecções (conforme especificado na opção 'n').
g - Vai 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 - Vai 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 - Corresponde imediatamente ao tom de retorno audível, em vez de ou além de uma frequência particular.
r - Aplica-se apenas a quadros recebidos. O padrão é ambas as direções.
s - Silencia o tom.
t - Aplica-se apenas a quadros transmitidos. O padrão é ambas as direções.
x - Destrói o detector (interrompe 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