[asterisk-bugs] [JIRA] (ASTERISK-29963) res_rtp_asterisk: mapping->ssrc_invalid on unidirectional videostream after confbridge reinvite

Erik Bergschöld (JIRA) noreply at issues.asterisk.org
Thu Mar 10 06:13:06 CST 2022


     [ https://issues.asterisk.org/jira/browse/ASTERISK-29963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Erik Bergschöld updated ASTERISK-29963:
---------------------------------------

    Description: 
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_valid=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) {





  was:
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) {






> 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_valid=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