DAHDI Fax Detection and Echo Cancellation
Is echo cancellation automatically disabled upon recognition of a CNG tone? Will faxdetect=incoming send a call to the fax extension when a CNG tone is detected? What is the purpose of faxdetect=outgoing? are CNG tones detected in hardware by Digium cards with echo cancellation?
Let us try to bring some light over this subjects based on the feedback of community:
CNG tone and echo cancellation
CNG tone is never used to affect the state of an echo canceller. All G.168 compliant echo cancellers will respond to the CED tone (generated by the answering endpoint) and will reconfigure the echo canceller appropriately.
The faxdetect setting and the echo canceller behavior are completely unrelated. Most modern Echo Cancellers will not be disabled, but will enter a mode where they can do some echo suppression but not complete cancellation (‘linear’ mode). DAHDI will detect CED when most software echo cancellers are in use and will disable them (since none of the available software Echo Cancellers can go into linear mode). The Digium HPEC software Echo Canceller will detect CED on its own and enter linear mode.
faxdetect=incoming
The call will be sent to the fax extension if the CNG tone arrives from the network side of the DAHDI channel (the far endpoint). Kevin Fleming commented that it’s likely the software DSP will be in place on the call until it sees a CNG tone, regardless of when that happens during the call.
faxdetect=outgoing
Although it is rarely used, using this setting the call will be also sent to the fax extnsion, but if the CNG tone is being sent towards the DAHDI channel (from the near endpoint).
Digium Hardware Echo Cancellers
None of the Digium Hardware Echo Cancellers detect and report CNG tones via the DSP; CNG tone detection is still done on the host CPU. ‘faxdetect’ is not set in DAHDI, it’s set in chan_dahdi.conf.
There’s a comprehensive resource of information about operation of fax, modem and text telephony by David Hanes and Gonzalo Salqueiro at Amazon called: