]> 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:29 +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 4705e929ef95c68da666b2e4c43082c078032443..366539f9fe4f15ec1c1f8a617733a31f328d0995 100644 (file)
@@ -6604,6 +6604,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) {