[asterisk-bugs] [JIRA] (ASTERISK-22567) MutlicastRTP does not set SSRC. SSRC is always set to 0
Simone Camporeale (JIRA)
noreply at issues.asterisk.org
Mon Sep 23 03:24:02 CDT 2013
[ https://issues.asterisk.org/jira/browse/ASTERISK-22567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=210490#comment-210490 ]
Simone Camporeale commented on ASTERISK-22567:
----------------------------------------------
I just signed the agreement.
I attach patch in "svn diff" format.
Is there any naming convention for patches ?
> MutlicastRTP does not set SSRC. SSRC is always set to 0
> -------------------------------------------------------
>
> Key: ASTERISK-22567
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-22567
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_rtp_multicast
> Affects Versions: SVN, 11.5.1
> Environment: ALL
> Reporter: Simone Camporeale
> Severity: Minor
> Attachments: 22567_res_mulitcast_ssrc.patch
>
>
> I found a bug in res/res_rtp_multicast.c
> RTP packets have always SSRC set to 0
> I discovered this bug testing MulticastRTP app.
> In order to reproduce this BUG activate a MulticastRTP session and sniff packets with WireShark.
> In WireShark set protocol to RTP and filter by selected Multicast address.
> This bug originates conflicts in mutlicast streams.
> I noticed this bug using gstreamer. Gstreamer decodes first MulticastRTP session correctly but it is not able to decode second MulticastRTP session.
> After some minutes first rtp session expires and gstreamers is able to decode rtp packet.
> To fix this issue i edited this file:
> {code:title=res/res_rtp_multicast.c|borderStyle=solid}
> Index: res/res_rtp_multicast.c
> ===================================================================
> --- res/res_rtp_multicast.c (revision 399617)
> +++ res/res_rtp_multicast.c (working copy)
> @@ -260,14 +260,15 @@
> /* 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 + 8, htonl(multicast->ssrc));
> + put_unaligned_uint32(rtpheader + 4, htonl(multicast->lastts));
> }
> +
> + 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);
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list