Summary:ASTERISK-21170: DTMF timestamp issue
Reporter:NITESH BANSAL (nbansal)Labels:
Date Opened:2013-02-26 08:30:32.000-0600Date Closed:2013-10-23 12:37:01
Versions:SVN Frequency of
Environment:x86_64 Debian SqueezeAttachments:( 0) dtmf-timestamp.patch
Description:Asterisk assumes that every RTP packet is 20 ms apart which does not work for the start and stop of DTMF and it causes issues for the equipment which tries to render the RTPEvent DTMF back into Inband.
High jitter values have been observed for the DTMF packets.
Comments:By: NITESH BANSAL (nbansal) 2013-02-26 08:36:44.633-0600

This test case can be reproduced by making a test case with SIPP.
I am attaching SIPP scripts for audio calls between A and B and corresponding PCAPs played by two parties.
With this PCAP, a huge jitter is observed in the RTP stream going towards B.

By: NITESH BANSAL (nbansal) 2013-02-26 08:39:57.415-0600

I have made a patch for this issue, attaching the patch file. Please review this patch.

By: Rusty Newton (rnewton) 2013-02-27 18:25:59.842-0600

NITESH, looks like you have provided several patches before. Do you already have reviewboard access? If so, go ahead and post your patch to reviewboard. Otherwise send an E-mail to mjordan at digium.com to request access.


By: NITESH BANSAL (nbansal) 2013-03-04 05:26:20.547-0600

Hi Rusty,
I don't have the access to review board yet, i will write an email to Matt Jordan to get the access and will post my patch over there.

By: Jonathan Rose (jrose) 2013-10-18 09:58:58.647-0500

Hey Nitesh, I've been poking at this patch a bit, and I don't see anything wrong with it so far. I do have a question about one thing though:

rtp->lastts += calc_txstamp(rtp, NULL) * 8;

What is the reason for multiplying by eight here and in all the other new places calc_txstamp is called exactly?

By: Torrey Searle (tsearle) 2013-10-18 10:30:40.340-0500

calc_txstamp is in milliseconds rtp timestamp is in samples.  This code is assuming a sample rate of 8000 (which should always be the case for the telephone-event payload).

By: Jonathan Rose (jrose) 2013-10-18 14:37:48.337-0500

Alright, I thought it was something like that, I just wasn't sure what the exact time scale we were converting to was.

By: Jonathan Rose (jrose) 2013-10-18 15:04:59.975-0500


I went ahead and posted this to reviewboard.