DTMF Emulation

Hello All,

I’ve been looking for information about the dtmf emulation on *, haven’t been able to find any usefull info. Maybe I haven’t looked hard enough but google hasn’t delivered.

In my * dialplan I make use of the Read command to be able to get an phonenumber given by a dialer.

When an phonenumber consists of 15 numbers it takes 11 seconds for * to proces the entered dtmf codes. When I enable the dtmf logging you can see that most/all off that time is taken by the dtmf emulation.
I my case I dont need the emulation, I think. Cause in the logging you can see that * registers the correct number and then starts the emulation.

Is there any way to disable the dtmf emulation while still being able to get the entered dtmf codes?

Thanks.

Gj

I think it may have more to do with using read. I use background to play a file and then Exten => _X. It may seem a bit backwards but you have more control that way (in my opinion any way :wink: ).

Thanks for the answer Dovid, after your remark I tried it with Background and with WaitExten.

In both cases the dtmf is slow again, there is no emulation but still slow, here is some logging;

[2009-09-04 13:54:36] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘0’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:36] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘0’ on DAHDI/1-1
[2009-09-04 13:54:36] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘0’ on DAHDI/1-1
[2009-09-04 13:54:37] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘0’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:37] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘0’ on DAHDI/1-1
[2009-09-04 13:54:37] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘0’ on DAHDI/1-1
[2009-09-04 13:54:38] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘3’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:38] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘3’ on DAHDI/1-1
[2009-09-04 13:54:38] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘3’ on DAHDI/1-1
[2009-09-04 13:54:39] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘1’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:39] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘1’ on DAHDI/1-1
[2009-09-04 13:54:39] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘1’ on DAHDI/1-1
[2009-09-04 13:54:40] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘6’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:40] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘6’ on DAHDI/1-1
[2009-09-04 13:54:40] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘6’ on DAHDI/1-1
[2009-09-04 13:54:41] DTMF[21923]: channel.c:2706 __ast_read: DTMF end ‘4’ received on DAHDI/1-1, duration 0 ms
[2009-09-04 13:54:41] DTMF[21923]: channel.c:2751 __ast_read: DTMF end accepted without begin ‘4’ on DAHDI/1-1
[2009-09-04 13:54:41] DTMF[21923]: channel.c:2762 __ast_read: DTMF end passthrough ‘4’ on DAHDI/1-1

It gives me one digit a second, I just cant get my head around it why it takes so long…

I’ve been looking in the channel.c, but I’m not an C programmer…

Any more ideas ?

Thanks for your time.

Gj

Gj,
How are you testing this ? Are you testing with an external phone number (like from an ITSP) ? Trying creating an internal extension and see if you get the same result.

Dovid,

I’ve been testing with an incomming E1 line. I will test with an internal extension.

I have been able to to get the time down to 6 seconds for 13 digits.

Have recompiled asterisk with the changed minimum dtmf duration and the minimum dtmf gap in the channel.c . But when you take in consideration that the max dtmf speed is 10 digits a second…

Guess have to dive into learning c…

Thanks for the time spend on this issue…

Gj

bump

am also having this same issue, tried compiling asterisk 1.4 through to 11.3,
still slow DTMF interpretation.

logs demonstrate that its definately asterisk that is slowing this process down.

i noticed when i dialled DTMF via a SIP phone, DTMF was very fast,
i assume because its not inband, therefore asterisk doesnt need to
convert ‘tones to digits’, so to speak.

does anyone know more about this process? unfortunately, its timing critical.

Rich