[Home]

Summary:ASTERISK-14539: Inband DTMF begin event not fired correctly
Reporter:frawd (frawd)Labels:
Date Opened:2009-12-15 08:30:18.000-0600Date Closed:2010-01-19 10:55:41.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:When a channel is configured to send DTMF as Inband (SIP, DAHDI, ...), a "DTMF begin" event is missing, leading to several errors in regenerated DTMF length and/or sometimes duplicate or missing DTMF.
Tested on 1.4.26, 1.4.27 and 1.4.28-rc1

Maybe has some relation to bug: ASTERISK-14213, apparently working in 1.6.1.9 but never fixed in 1.4 branch..

An explanation on: http://oss.alea-soluciones.com/trac/wiki/AsteriskDTMF
Check out section "Incorrect regeneration of DTMFs when conversion from inband to rfc2833"

****** ADDITIONAL INFORMATION ******

Example on DAHDI channel (same issue with SIP in Inband):
[Dec 15 15:10:45] DTMF[890]: channel.c:2283 __ast_read: DTMF end '*' received on DAHDI/4-1, duration 0 ms
[Dec 15 15:10:45] DTMF[890]: channel.c:2309 __ast_read: DTMF begin emulation of '*' with duration 100 queued on DAHDI/4-1
[Dec 15 15:10:45] DTMF[890]: channel.c:2428 __ast_read: DTMF end emulation of '*' queued on DAHDI/4-1
[Dec 15 15:10:45] DTMF[3711]: channel.c:2283 __ast_read: DTMF end '2' received on DAHDI/4-1, duration 0 ms
[Dec 15 15:10:45] DTMF[3711]: channel.c:2325 __ast_read: DTMF end accepted without begin '2' on DAHDI/4-1
[Dec 15 15:10:45] DTMF[3711]: channel.c:2336 __ast_read: DTMF end passthrough '2' on DAHDI/4-1
[Dec 15 15:10:45] DTMF[3711]: channel.c:2283 __ast_read: DTMF end '*' received on DAHDI/4-1, duration 0 ms
[Dec 15 15:10:45] DTMF[3711]: channel.c:2325 __ast_read: DTMF end accepted without begin '*' on DAHDI/4-1
[Dec 15 15:10:45] DTMF[3711]: channel.c:2336 __ast_read: DTMF end passthrough '*' on DAHDI/4-1
[Dec 15 15:10:45] DTMF[890]: channel.c:2283 __ast_read: DTMF end '2' received on DAHDI/4-1, duration 80 ms
[Dec 15 15:10:45] DTMF[890]: channel.c:2309 __ast_read: DTMF begin emulation of '2' with duration 80 queued on DAHDI/4-1
[Dec 15 15:10:46] DTMF[890]: channel.c:2384 __ast_read: DTMF end emulation of '2' queued on DAHDI/4-1
[Dec 15 15:10:46] DTMF[3711]: channel.c:2283 __ast_read: DTMF end '*' received on DAHDI/4-1, duration 80 ms
[Dec 15 15:10:46] DTMF[3711]: channel.c:2336 __ast_read: DTMF end passthrough '*' on DAHDI/4-1
[Dec 15 15:10:46] DTMF[890]: channel.c:2283 __ast_read: DTMF end '*' received on DAHDI/4-1, duration 80 ms
[Dec 15 15:10:46] DTMF[890]: channel.c:2309 __ast_read: DTMF begin emulation of '*' with duration 80 queued on DAHDI/4-1
[Dec 15 15:10:46] DTMF[890]: channel.c:2428 __ast_read: DTMF end emulation of '*' queued on DAHDI/4-1
Comments:By: frawd (frawd) 2009-12-15 09:16:15.000-0600

Looks like changes from issue ASTERISK-11413 (DSP cleanup) were the ones that resolved this bug.

Any reason it wasn't commited in 1.4 branch as well?

By: Leif Madsen (lmadsen) 2009-12-15 10:40:51.000-0600

The reason that issue wasn't committed to 1.4 was because it was a complete rewrite of the DSP code, which would not have been appropriate for 1.4.

By: frawd (frawd) 2009-12-16 08:36:42.000-0600

Is there an easy way to apply just the part that detects DTMF begin events?

Right now we're having these issues on SIP and DAHDI lines connected to special analog equipments (elevators) communicating to their control center by DTMF.
A good detection and regeneration of Inband DTMF with begin and end events would resolve lots of issues (even better as I think it can work in passthrough when detecting begin and end event).

By: frawd (frawd) 2010-01-19 10:32:56.000-0600

You can close this bug. I realize that it's a feature request.

Those like me that need those events for more precision in DTMF should use 1.6.2.

By: Leif Madsen (lmadsen) 2010-01-19 10:55:41.000-0600

Closed per the reporter. This is indeed a feature that can't be added to the 1.4 branch. Please utilize a newer branch such as 1.6.2. Thanks!