[asterisk-bugs] [JIRA] (ASTERISK-29963) res_rtp_asterisk: mapping->ssrc_invalid on unidirectional videostream after confbridge reinvite
Joshua C. Colp (JIRA)
noreply at issues.asterisk.org
Thu Mar 10 05:14:07 CST 2022
[ https://issues.asterisk.org/jira/browse/ASTERISK-29963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=258354#comment-258354 ]
Joshua C. Colp commented on ASTERISK-29963:
-------------------------------------------
I attached the SIP trace, there is no need to embed it in the description.
> res_rtp_asterisk: mapping->ssrc_invalid on unidirectional videostream after confbridge reinvite
> -----------------------------------------------------------------------------------------------
>
> Key: ASTERISK-29963
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-29963
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_rtp_asterisk
> Affects Versions: 18.8.0
> Environment: Alma Linux 8, Chrome WebRTC with JsSIP
> Reporter: Erik Bergschöld
> Labels: webrtc
> Attachments: sip.txt
>
>
> When a client joins a Confbridge and there is another participant in the conference already then the client get an INVITE from asterisk looking like this (see attached file)
> Asterisk will send the other participants video stream on the second video with ssrc=12683906 and everything is working with video and voice coming from and to both participants.
> The problem is when the client loses a packet and sends a NACK request to Asterisk, then asterisk is unable to map that rtcp instance to the sendonly stream since the mapping is marked as ssrc_invalid=0. Asterisk will then fail to map to the correct instance and try to act on the voice instance instead and write res_rtp_asterisk.c:6551 ast_rtcp_interpret: (0x7ff0c8083bc0) RTCP before handle NACK request, retransmissions are not enabled ignore this message!
> I can see by adding some extra logging in asterisk that the function ast_rtp_bundle sets the mapping.ssrc_valid=child_rtp->themssrc_valid wich in this case is 0 right after asterisk processes the sdp.
> It's possible to get retransmissions to work by changing this line in __rtp_find_instance_by_ssrc
> if (mapping->ssrc_valid && mapping_ssrc == ssrc) {
> to
> if (mapping_ssrc == ssrc) {
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list