[HELP] Problem with DTMF tones during a call

I’ve been debugging a problem where DTMF tones cannot be used from a ZAP extension during a call, e.g. to enter a pass-code on a remote conference call system.

Our Asterisk box has twelve trunk lines attached as ZAP channels, and twelve analog ZAP extensions. It also supports a number of SIP extensions via its network interface. I have ECHO_CAN_MG2 defined in zconfig.h (compiled and installed), I’ve balanced my rxgain and txgain against a local milliwatt test line, and I have relaxdtmf=yes in zapata.conf.

First, I used a trunk line (i.e. not managed by Asterisk) and a ZAP extension to perform some testing. I dialed the Asterisk line from the trunk line, and then dialed a conference room phone on a ZAP extension. The DTMF tones that were dialed from the conference room were effectively blocked by Asterisk (occasionally I could hear a very, very short DTMF tone, but usually it was just clicking/snapping).

Then, I dialed the Asterisk line from the ZAP extension (effectively using two trunks on the Asterisk box), and then dialed my extension. Once I was connected to my voicemail, I dialed each number 1-9 in quick succession (about 1/4 sec each), then I dialed each number 1-9 and held each number for about a second. The resulting voicemail reflected the same results – some clicking/snapping, but no noticeable DTMF tones made it from the ZAP extension through asterisk to the destination.

I repeated this last exercise, but dialed the Asterisk line from the trunk line, then left myself a voicemail message. The results were the same – the resulting voicemail reflected clicking/snapping, but no noticeable DTMF tones.

I then dialed the trunk line from a SIP extension. The DTMF tones from the SIP extension could be heard clearly on the trunk line. This is the only case where things work as I expect.

What I get out of this is that Asterisk is blocking DTMF tones in both directions, but only after the call is connected. The DTMF tones are intercepted by Asterisk and interpreted well enough to connect the call to an extension, but then they are no longer routed to the other side of the call from either direction. However, it only happens for a ZAP extension (and Voicemail), and not a SIP extension.

I’ve scoured the web in search of an explanation or an answer. Most of what I find has to do with SIP channels and media routing. However, I cannot find any examples of how to enable or disable the manipulation of the DTMF tones by Asterisk during a call.

To reiterate: I just want to be able to dial an external number (on a ZAP trunk) from a ZAP extension, connect to a remote system, and then pass DTMF tones to that system.

Is there anyone that can tell me what I am doing wrong?

Any help is appreciated. Thanks.

I noticed the same thing after I enabled the automon feature in features.conf.

to the best of my knowledge the manipulation of asterisk DTMF tones cannot be controlled. you might try to Record a set of DTMF tones (1-9 in GSM/etc) and work them into extensions.conf.

I was very excited about this, because it seemed to be the obscure bit of information that I had been missing, in light of which everything would make sense.

I removed ‘DYNAMIC_FEATURES=>automon’ from my conf files and from the database, and commenting out the features in features.conf that would depend on it.

I went so far as to redefine DIAL_OPTIONS to exclude everything, including ‘tr’, because the ‘t’ (transfer) feature would require Asterisk to listen to dial tones as well.

I got to a point where I could hear the dial tones that were sent from either end of the conversation. This was much better than the “snapping and clicking” that I got earlier.

Alas, the remote system that I need to communicate with still will not recognize the dial tones. I also verified that the problem exists on at least one other system (1-800-DISCOVER, in case you’re wondering… they make you enter your card number and the last four digits of your SSN, and they complain if it doesn’t all match up).

Thanks for the idea, at least. I’ll post back here if I (ever) find an answer.

Hmmm… how would that look, or work, exactly?

Are you saying that Asterisk is listening to my DTMFs, and so I could tie them to a dialplan entry that would play GSMs to the trunk line?