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

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Apr 1 12:57:59 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:              04-01-2008 12:57 CDT
====================================================================== 
Summary:                    [patch] 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.
====================================================================== 

---------------------------------------------------------------------- 
 svnbot - 04-01-08 12:57  
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 112209

U   branches/1.4/main/rtp.c

------------------------------------------------------------------------
r112209 | file | 2008-04-01 12:57:58 -0500 (Tue, 01 Apr 2008) | 4 lines

Disable Packet2Packet bridging when we need to feed DTMF frames into the
core. Some implementations do not like how we switch between things.
(closes issue http://bugs.digium.com/view.php?id=12212)
Reported by: bamby

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=112209 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
04-01-08 12:57  svnbot         Note Added: 0084868                          
04-01-08 12:57  svnbot         Status                   acknowledged => assigned
======================================================================




More information about the asterisk-bugs mailing list