Summary:ASTERISK-02017: RFC2833 + app_senddtmf
Reporter:mgamble (mgamble)Labels:
Date Opened:2004-07-14 10:53:00Date Closed:2011-06-07 14:10:22
Versions:Frequency of
Environment:Attachments:( 0) tcpdump.zip
Description:The DTMF packets sent by app_senddtmf via sip when in RFC2833 mode are not properly decoded by the receiving end, and no DTMF is received by the other side.  This has been discovered during an inter-op test between asterisk and a Pactolus SIP server.


Attached are two packet dumps - one from asterisk sending the RTP Event packets and one from a Telica sending the RTP event packets.  The RTP event packets from the Telica are properly decoded by a Pactolus server.  However, the packets sent by Asterisk are not properly decoded by the Pactolus server.  Looking at the packet dumps, this appears to be an issue with ether the "Duration" field of the RTP Event packet, or perhaps with the number of packets sent before "End event" is set to true.
Comments:By: Brian West (bkw918) 2004-07-14 11:08:34


By: Mark Spencer (markster) 2004-07-14 11:30:56

Asterisk's DTMF is decoded properly by a variety of other gateways. Do you have any specific complaint in which you feel the RFC2833 we transmit is somehow incorrect?  Also, please be sure you are using the most recent CVS *head* in your tests.

By: mgamble (mgamble) 2004-07-14 13:54:39

Thank you for taking time to look into this issue.

I am using CVS head, checked out this morning (July 14th).

First, the initial Event Duration is set to '0' - other gateways we are testing set this to an actual value on the initial transmit.  Also, other gateways, like the Telica platform, send multiple 'event in progress' events for DTMF before sending the End of Event packet.

Looking at the asterisk TCP dump, asterisk is sending 1 event start / in progress packet, with a duration of 0, and 3 event end packets with a duration of 800.

On the other hand, the Telica sends a total of 9 packets - 8 event in progress packets, with a duration of aprox 168 each and one event end packet, with the total duration of the event.

It appears overall that when you use SendDTMF on a SIP channel using RFC2833 that the DTMF packets are too short and don't properly emulate an actual key press from the user.

By: Mark Spencer (markster) 2004-07-16 00:58:59

According to the code, event duration is being set to 100ms (800 samples).  It's sufficient to send one.

By: twisted (twisted) 2004-07-23 20:55:05

*poke*prod* Housekeeping :)

By: Olle Johansson (oej) 2004-08-14 12:17:55

Housekeeping not giving up... :-) Is this resolved or still considered a bug report?

By: Brian West (bkw918) 2004-08-22 23:06:37

Respond to reopen please. If this is still an issue.  If its still an issue include all steps and conf snips to reproduce it.