I am using Asterisk to interact with analog telephony devices that can be programmed and tested with DTMF interaction.
Some of these guys speak rather quickly. Too quickly, you could convincingly argue; I'd be right with you there. And yet, Asterisk is perfectly capable of hearing the tones, and if I'm lucky enough to get a pure stream with in-band DTMF audio, I can recognize even really fast tones very succesfully.
The problem arises when Asterisk (or another telephony system) decides it needs to recognize and regenerate the DTMF. I realize that this is important to do when translating e.g. to/from out-of-band DTMF, but I'm not sure why it seems to be the default action to do this, and in particular why it is often regenerated with lengthy durations (e.g. 100ms; thankfully, in Asterisk, this can be changed, although it can involve a recompile) that is almost guaranteed to mean loss of digits. Others have reported issues where in-band conversion to out-of-band has resulted in duplicated digits, even though the conversion was not necessary.
So my question is: why is this the M.O. for telephony systems? Why not leave in-call DTMF alone unless translation is explicitly required?