]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk: Send correct sender SSRC when p2p bridge in use
authorTorrey Searle <torrey@voxbone.com>
Fri, 6 Mar 2020 16:13:34 +0000 (17:13 +0100)
committerGeorge Joseph <gjoseph@digium.com>
Thu, 12 Mar 2020 15:32:02 +0000 (10:32 -0500)
bridge_p2p_rtp_write will forward rtp to the bridged rtp instance
without modifying the ssrc.  However, it is not updating the SSRC
in the bridged rtp.  Thus, when SSRC packets are generated, they
have the correct SSRC for the sender.

ASTERISK-28773 #close

Change-Id: I39f923bde28ebb4f0fddc926b92494aed294a478

res/res_rtp_asterisk.c

index 4244d1b7893021fb3b5e54c34e61748d5eb88370..5669f999b9e7ef6efa7e00b6d4b7c2dc129aec1b 100644 (file)
@@ -5373,6 +5373,11 @@ static int bridge_p2p_rtp_write(struct ast_rtp_instance *instance,
        reconstruct |= (mark << 23);
        rtpheader[0] = htonl(reconstruct);
 
+       if (mark) {
+               /* make this rtp instance aware of the new ssrc it is sending */
+               bridged->ssrc = ntohl(rtpheader[2]);
+       }
+
        /* Send the packet back out */
        res = rtp_sendto(instance1, (void *)rtpheader, len, 0, &remote_address, &ice);
        if (res < 0) {