TONE_DETECT(freq[,duration_ms,options])
The TONE_DETECT function detects a single-frequency tone and keeps track of how many times the tone has been detected.
When reading this function (instead of writing), supply tx to get the number of times a tone has been detected in the TX direction and rx to get the number of times a tone has been detected in the RX direction.
``` title="intercept2600" 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)})
``` title="dropondialtone"
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()
title="removedetector"
same => n,Set(TONE_DETECT(0,,x)=) ; remove the detector from the channel
freqrequired - Frequency of the tone to detect. To disable frequency detection completely (e.g. for signal detection only), specify 0 for the frequency.duration_ms- Minimum duration of tone, in ms. Default is 500ms. Using a minimum duration under 50ms is unlikely to produce accurate results.optionsa- Match immediately on Special Information Tones, instead of or in addition to a particular frequency.b- Match immediately on a busy signal, instead of or in addition to a particular frequency.c- Match immediately on a dial tone, instead of or in addition to a particular frequency.d- Custom decibel threshold to use. Default is 16.e- Automatically end detection after desired number of hits (as specified in thenoption.g- Go to the specified context,exten,priority if tone is received on this channel. Detection will not end automatically, unless theeoption is also specified.h- Go to the specified context,exten,priority if tone is transmitted on this channel. Detection will not end automatically, unless theeoption is also specified.n- Number of times the tone should be detected (subject to the provided timeout) before going to the destination provided in thegorhoption. Default is 1.p- Match immediately on audible ringback tone, instead of or in addition to a particular frequency.r- Apply to received frames only. Default is both directions.s- Squelch tone.t- Apply to transmitted frames only. Default is both directions.x- Destroy the detector (stop detection).
User Notes
No notes yet. Be the first to contribute a tip or example.
Contribute a note
Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.