[asterisk-bugs] [Asterisk 0017007]: [patch] RTP Timestamp changes after transfer, but SSRC not and the markerbit ist not set.

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Jul 19 06:32:15 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17007 
====================================================================== 
Reported By:                addix
Assigned To:                twilson
====================================================================== 
Project:                    Asterisk
Issue ID:                   17007
Category:                   Channels/chan_sip/Transfers
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     ready for review
Target Version:             1.6.2.11
Asterisk Version:           SVN 
JIRA:                       SWP-1096 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-03-11 10:07 CST
Last Modified:              2010-07-19 06:32 CDT
====================================================================== 
Summary:                    [patch] RTP Timestamp changes after transfer, but
SSRC not and the markerbit ist not set.
Description: 
On every SIP Transfer (Example: A calls B / B places A on hold / B calls C
/ A sends Transfer to Asterisk PBX) the Outing RTP Traffic from Asterisk to
the transfer target (RTP to C) is broken. The Asterisk is changing the RTP
Timestamp massivly but the SSRC stays on the old value and the timestamp
marker is also not set. As soon as the new timestamp is smaller than the
old timestamp value the transfer target rejects the RTP Packets after the
transfer (Not really, it's just not played), so i get one way audio.

I experienced that with serveral local SIP-Carriers and Funkwerk Rxxxx
BRI/PRI Mediagateways as transfer target.

Due to my limited Asterisk-Source knowledge i'am not sure that my attached
patch is the correct solution for this problem. After applying my patch the
problem seems to be solved. The Asterisk is changing the SSRC & setting the
Markerbit after the transfer for the RTP-Traffic to the transfer target.




====================================================================== 

---------------------------------------------------------------------- 
 (0124693) addix (reporter) - 2010-07-19 06:32
 https://issues.asterisk.org/view.php?id=17007#c124693 
---------------------------------------------------------------------- 
Here an log with core debug 3 of the attended transfer:

[Jul 19 11:52:51] DEBUG[21126] chan_sip.c: Attended transfer: Will use
Replace-Call-ID : 9a1d2b3ccd9c-l3jrne0aa9gp (No check of from/to tags)
[Jul 19 11:52:51] DEBUG[21126] chan_sip.c: SIP transfer: Four channels to
handle
[Jul 19 11:52:51] VERBOSE[21126] logger.c:     -- Stopped music on hold on
SIP/20-00000014
[Jul 19 11:52:51] DEBUG[21126] channel.c: Set channel SIP/20-00000014 to
write format slin
[Jul 19 11:52:51] DEBUG[21126] channel.c: Scheduling timer at 0 sample
intervals
[Jul 19 11:52:51] DEBUG[21126] channel.c: Planning to masquerade channel
SIP/20-00000014 into the structure of SIP/21-00000016
[Jul 19 11:52:51] DEBUG[21126] channel.c: Done planning to masquerade
channel SIP/20-00000014 into the structure of SIP/21-00000016
[Jul 19 11:52:51] DEBUG[21126] rtp.c: Changing ssrc from 632585016 to
665825319 due to a source change
[Jul 19 11:52:51] DEBUG[21126] rtp.c: Changing ssrc from 1278773742 to
666033403 due to a source change
[Jul 19 11:52:51] DEBUG[21126] chan_sip.c: SIP transfer: Succeeded to
masquerade channels.
[Jul 19 11:52:51] DEBUG[21126] chan_sip.c: SIP attended transfer:
Unlocking channel SIP/21-00000016
[Jul 19 11:52:51] DEBUG[22173] rtp.c: Changing ssrc from 665825319 to
938378332 due to a source change
[Jul 19 11:52:51] DEBUG[22214] channel.c: Got clone lock for masquerade on
'SIP/20-00000014' at 0x817f648
[Jul 19 11:52:51] DEBUG[22214] chan_sip.c: SIP Fixup: New owner for
dialogue 9a1d2b3ccd9c-l3jrne0aa9gp: SIP/20-00000014<MASQ> (Old parent:
SIP/20-00000014)
[Jul 19 11:52:51] DEBUG[22214] chan_sip.c: Hangup call
SIP/20-00000014<MASQ>, SIP callid 9a1d2b3ccd9c-l3jrne0aa9gp)
[Jul 19 11:52:51] DEBUG[22214] chan_sip.c: Updating call counter for
incoming call
[Jul 19 11:52:51] DEBUG[22214] chan_sip.c: Call from peer '21' removed
from call limit 10
[Jul 19 11:52:51] DEBUG[22214] devicestate.c: Notification of state change
to be queued on device/channel SIP/21
[Jul 19 11:52:51] DEBUG[22214] channel.c: Set channel SIP/20-00000014 to
write format slin
[Jul 19 11:52:51] DEBUG[22214] channel.c: Set channel SIP/20-00000014 to
read format slin
[Jul 19 11:52:51] DEBUG[22214] channel.c: Putting channel SIP/20-00000014
in 64/64 formats
[Jul 19 11:52:51] DEBUG[22214] chan_sip.c: SIP Fixup: New owner for
dialogue 3c2ba7978bb1-7014y8rf9so7: SIP/20-00000014 (Old parent:
SIP/21-00000016<ZOMBIE>)
[Jul 19 11:52:51] DEBUG[22214] channel.c: Released clone lock on
'SIP/21-00000016<ZOMBIE>'
[Jul 19 11:52:51] DEBUG[22214] channel.c: Done Masquerading
SIP/20-00000014 (6)
[Jul 19 11:52:51] DEBUG[22173] channel.c: Didn't get a frame from channel:
SIP/21-00000016<ZOMBIE>
[Jul 19 11:52:51] DEBUG[22173] rtp.c: Setting the marker bit due to a
source update
[Jul 19 11:52:51] DEBUG[22173] channel.c: Bridge stops bridging channels
SIP/21-00000016<ZOMBIE> and SIP/21-00000015


Shold the update of the ssrc better be done after the "Done
Masquerading..." in 
"int ast_do_masquerade()" ? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-07-19 06:32 addix          Note Added: 0124693                          
======================================================================




More information about the asterisk-bugs mailing list