[asterisk-bugs] [JIRA] Commented: (ASTERISK-20424) Erroneous Multiple DTMF Digit Detection

Matt Jordan (JIRA) noreply at issues.asterisk.org
Mon Sep 24 17:10:27 CDT 2012


    [ https://issues.asterisk.org/jira/browse/ASTERISK-20424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=197529#comment-197529 ] 

Matt Jordan commented on ASTERISK-20424:
----------------------------------------

So, unfortunately, the patch I committed for this issue (r373236) broke a lot of things.  Yikes.

The issue is that the patch attempts to work around the endpoint increasing its timestamp by absorbing end of event packets that occur within the last known end of event timestamp plus a delta of 320 ms (which, at 'normal' sampling rates, should account for all end of event retransmissions).  There are at least two problems with this:

(1) In situations with *extremely* short duration DTMF, those DTMF packets could be missed.  This is more theoretical than practical, but it could happen.

(2) More realistically - and this is where things blew up - when an RTP source changes its SSRC ID, the RTP timestamps are reset.  Because the timestamp is an unsigned 32-bit field, the last known end of event timestamp is initialized to 0.  If a DTMF packet arrives immediately after this - within the first 320 ms - that DTMF packet will be missed, as it occurs within the 'buffer window'.  This can easily occur when the system integrating with Asterisk is manipulated not by a human (which are usually relatively 'slow' on mashing the keypad) but when its another piece of software.  Asterisk to Asterisk integrations easily broke this scenario.

As such, I'm going to have to revert this patch, and close this issue out as "Won't Fix".  While we strive to not affect endpoints in existence between Asterisk versions, the fact remains that this endpoint is non-compliant, and the fix to maintain compatibility with it will be worse than the problem itself.  I'm very sorry for this - you can of course use the patch provided which will make the endpoint work with your system.

> Erroneous Multiple DTMF Digit Detection
> ---------------------------------------
>
>                 Key: ASTERISK-20424
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20424
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_read, Channels/General
>    Affects Versions: 1.8.16.0
>         Environment: CentOS 5.7
> FreePBX 2.10.1.2
>            Reporter: Vladimir Mikhelson
>            Assignee: Vladimir Mikhelson
>         Attachments: annotated-dtmf-log.txt, ASTERISK-20424-1.8.diff, rtp-debug.txt, vm-430.pcapng
>
>
> Starting with asterisk 1.8.16.0 longer DTMF tones transmitted per RFC3822 get interpreted as double, triple, etc. digits.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list