mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	res_rtp_multicast: Ensure SSRC is set properly
This fixes a bug where the SSRC field on multicast RTP can be stuck at
0 which can cause problems for endpoints trying to make sense of
incoming streams.
(closes issue ASTERISK-22567)
Reported by: Simone Camporeale
Patches:
    22567_res_mulitcast_ssrc.patch uploaded by Simone Camporeale (License 6536)
........
Merged revisions 400393 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 400394 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 400395 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
			
			
This commit is contained in:
		| @@ -260,14 +260,14 @@ static int multicast_rtp_write(struct ast_rtp_instance *instance, struct ast_fra | ||||
| 	/* Construct an RTP header for our packet */ | ||||
| 	rtpheader = (unsigned char *)(f->data.ptr - hdrlen); | ||||
| 	put_unaligned_uint32(rtpheader, htonl((2 << 30) | (codec << 16) | (multicast->seqno))); | ||||
| 	put_unaligned_uint32(rtpheader + 4, htonl(multicast->lastts)); | ||||
| 	 | ||||
| 	if (ast_test_flag(f, AST_FRFLAG_HAS_TIMING_INFO)) { | ||||
| 		put_unaligned_uint32(rtpheader + 4, htonl(f->ts * 8)); | ||||
| 	} else { | ||||
| 		put_unaligned_uint32(rtpheader + 4, htonl(multicast->lastts)); | ||||
| 	} | ||||
| 	else { | ||||
| 		put_unaligned_uint32(rtpheader + 8, htonl(multicast->ssrc)); | ||||
| 	} | ||||
|  | ||||
| 	put_unaligned_uint32(rtpheader + 8, htonl(multicast->ssrc)); | ||||
|  | ||||
| 	/* Increment sequence number and wrap to 0 if it overflows 16 bits. */ | ||||
| 	multicast->seqno = 0xFFFF & (multicast->seqno + 1); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user