Weird Output from Read

I am calling the Read dialplan application from agi exec and I had multiple times that when the user did nothing it returned the letter A. This happened multiple times but only for the same caller and not for others. What does it mean?

I don’t have the asterisk verbose logs for that time.

Sounds like talk-off. The users voice mimicked a touch tone code. That is one of the problems of in-band signalling in voice circuits.

How is that translated to the letter A?

DTMF digits are audio, which are recognized by a DSP implementation. Some voices (specifically female voices if I recall) can trigger it. ‘A’ is also valid DTMF.

I see.
From here Dual-tone multi-frequency signaling - Wikipedia

The DTMF system uses a set of eight audio frequencies transmitted in pairs to represent 16 signals, represented by the ten digits, the letters A to D, and the symbols # and *. As the signals are audible tones in the voice frequency range, they can be transmitted through electrical repeaters and amplifiers, and over radio and microwave links, thus eliminating the need for intermediate operators on long-distance circuits.

Is there an option to set Asterisk to the ignore the A-D DTMF signals?

I don’t believe so and talk off isn’t limited to just those.

talk off isn’t limited to just those.

True but i don’t care if it is other digits

And i don’t want Read to be interrupted for digits A-D

Something like GetOption/StreamFile agi command have an escape digits parameter and only those digits are being checked should be supported for Read

Then you will need to handle this yourself. Read 1 digit at a time, and if it is A-D, loop again.

A through D are legitimate DTMF digits, no different than any other (I use them a fair amount myself). Systems that don’t account for them are poorly designed.

Can i mute the caller to avoid talk-offs? If I do Set(VOLUME(RX)=0) will it help? and will it allow the DTMF to come thru?

Set(VOLUME(RX)=0) would have no effect at all.

There is a MUTE function (MUTEAUDIO or something like that) you can use for what you want.

Will DTMF work if i mute it?

No. Talk off happens because DTMF is in-band at some stage. If it is in-band on the final hop, there will be no DTMF to detect. If it is out of band on the final hop, the talk off has already happened in converting to out of band.

No, DTMF uses separate frames that aren’t voice frames.
Might work if it’s in band all the way but DTMF will pass through a mute otherwise.

But if if it in-band all the way, the muting will prevent Asterisk from detecting any digit I think the OP was hoping that you could prevent talk off by muting the audio, but still detect digits 0-9.

If it is VoIP all the way, the DTMF could never mix with the speech. Actually it wouldn’t really be DTMF. in that case, so the tones would never exist. DTMF was invented for in-band signalling on analogue connections.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.