[asterisk-bugs] [Asterisk 0012212]: RFC2833 DTMF relaying error when using p2p bridging

noreply at bugs.digium.com noreply at bugs.digium.com
Fri Mar 14 12:07:27 CDT 2008


The following issue has been ASSIGNED. 
====================================================================== 
http://bugs.digium.com/view.php?id=12212 
====================================================================== 
Reported By:                bamby
Assigned To:                file
====================================================================== 
Project:                    Asterisk
Issue ID:                   12212
Category:                   Core/RTP
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.18 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             03-14-2008 09:30 CDT
Last Modified:              03-14-2008 12:07 CDT
====================================================================== 
Summary:                    RFC2833 DTMF relaying error when using p2p bridging
Description: 
I'm using Asterisk in SIP relaying mode with RTP relaying too as DTMFs
coming through have to be monitored during the call. The DTMFs are in
RFC2833 mode only.

After having upgraded asterisk 1.2 to asterisk 1.4.18 I noticed that
remote IVRs stopped to recognize DTMFs coming from the calling SIP UA.

I've analyzed the RTP stream and discovered that DTMFs are coming with
timestamps and sequence numbers completely different from audio timestamps.
And RFC2833, section 3.1 says:

   DTMF digits and named telephone events are carried as part of the
   audio stream, and MUST use the same sequence number and time-stamp
   base as the regular audio channel to simplify the generation of audio
   waveforms at a gateway.

I've looked through the asterisk's code and found out that this behavior
is caused by introduction of packet-to-packet bridging mode. In my case the
DTMFs are extracted from RTP and then reinjected into RTP stream but audio
packets are sent using p2p code, so not changing neither timestamp nor
sequence number of audio packets.

I've made a quick fix that ensures the RTP stream is fully reconstructed
if the DTMFs should be monitored by Asterisk during the bridging. After
this remote IVRs started to recognize DTMFs again.
====================================================================== 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
03-14-08 12:07  file           Status                   new => assigned     
03-14-08 12:07  file           Assigned To               => file            
======================================================================




More information about the asterisk-bugs mailing list