spandsp  0.0.6
Supervisory tone detection

What does it do?

The supervisory tone detector may be configured to detect most of the world's telephone supervisory tones - things like ringback, busy, number unobtainable, and so on.

How does it work?

The supervisory tone detector is passed a series of data structures describing the tone patterns - the frequencies and cadencing - of the tones to be searched for. It constructs one or more Goertzel filters to monitor the required tones. If tones are close in frequency a single Goertzel set to the centre of the frequency range will be used. This optimises the efficiency of the detector. The Goertzel filters are applied without applying any special window functional (i.e. they use a rectangular window), so they have a sinc like response. However, for most tone patterns their rejection qualities are adequate.

The detector aims to meet the need of the standard call progress tones, to ITU-T E.180/Q.35 (busy, dial, ringback, reorder). Also, the extended tones, to ITU-T E.180, Supplement 2 and EIA/TIA-464-A (recall dial tone, special ringback tone, intercept tone, call waiting tone, busy verification tone, executive override tone, confirmation tone).