From c9b583dc9a928a2e36902320f99ca7a5d129b2e5 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Mon, 30 Sep 2024 09:12:51 +0200 Subject: [PATCH] MT#60476 Update session bandwidth every time When processing bandwidth attributes per session level, always update them, independently if the currently parsed value has been set => 0. The problem is, that if we only set them, when initialized to != -1, then every new offer within existing dialog, will keep bandwidth set for the monologue, even if the newer offer doesn't set this anymore. Change-Id: Ifef964798a8ce9b38a4fd5f26b5bb4d0678b8829 --- daemon/call.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index 556dea4d1..00fe95282 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -2684,16 +2684,11 @@ static void __call_monologue_init_from_flags(struct call_monologue *ml, struct c flags->session_timing.len); /* sdp bandwidth per session level * 0 value is supported (e.g. b=RR:0 and b=RS:0), to be able to disable rtcp */ - if (flags->session_bandwidth.as >= 0) - ml->sdp_session_bandwidth.as = flags->session_bandwidth.as; - if (flags->session_bandwidth.rr >= 0) - ml->sdp_session_bandwidth.rr = flags->session_bandwidth.rr; - if (flags->session_bandwidth.rs >= 0) - ml->sdp_session_bandwidth.rs = flags->session_bandwidth.rs; - if (flags->session_bandwidth.ct >= 0) - ml->sdp_session_bandwidth.ct = flags->session_bandwidth.ct; - if (flags->session_bandwidth.tias >= 0) - ml->sdp_session_bandwidth.tias = flags->session_bandwidth.tias; + ml->sdp_session_bandwidth.as = flags->session_bandwidth.as; + ml->sdp_session_bandwidth.rr = flags->session_bandwidth.rr; + ml->sdp_session_bandwidth.rs = flags->session_bandwidth.rs; + ml->sdp_session_bandwidth.ct = flags->session_bandwidth.ct; + ml->sdp_session_bandwidth.tias = flags->session_bandwidth.tias; /* sdp session group */ if (flags->session_group.len) ml->sdp_session_group = call_strdup_len(flags->session_group.s,