RFC 2833 violation when sending DTMFs out-of-band


#1

Has anybody else noticed that, when instructed to send DTMFs out-of-band via RTP (following RFC 2833), Asterisk is skipping sequence numbers in the sent RTP packets?
I have a couple of Ethereal captures showing that, when Asterisk is transmitting successive DTMFs, a break occurs in the continuity of RTP sequence numbers when transitioning from one DTMF to the following one. That is, the sequence number of the first RTP packet sent for the following DTMF will show an increment greater than one over the sequence number of the last packet sent for the preceding DTMF; even if no other RTP packet is being sent in between.
This clear violation of RFCs 2833 and 3550 can have various side effects on systems in charge of replaying the DTMFs at the receiving end. On our units, it has the unfortunate consequence that the last DTMF is not being played out. :frowning:


#2

Rechecking with sources checked out of CVS-HEAD as of today, the missing sequence number problem seems to have been adressed. Now, what we see is the same sequence number being used for all three end packets of a DTMF. Strictly speaking, this too would constitute a deviation from RFC 2833, but it does not create a problem.
While we are at it, the latest RFC 2833 draft (draft-ietf-avt-rfc2833bis-10.txt) also forbids the use of a duration value of zero unless the event lasts “forever”.

Good work!