From def813cfdedf7056d2e6feda861b9fca82a5d9ac Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 3 Mar 2021 08:26:40 -0500 Subject: [PATCH] TT#101201 fix ICE-lite mode switch Change-Id: I10689bc07b86984880bfd420d6be4fbb057c41d1 --- daemon/call.c | 40 +++++++++++++++++++++------------------ include/call_interfaces.h | 5 +++-- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index 822061e36..e4756b538 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1310,24 +1310,28 @@ static void __ice_offer(const struct sdp_ng_flags *flags, struct call_media *thi } } - switch (flags->ice_lite_option) { - case ICE_LITE_OFF: - MEDIA_CLEAR(this, ICE_LITE_SELF); - MEDIA_CLEAR(other, ICE_LITE_SELF); - break; - case ICE_LITE_FWD: - MEDIA_SET(this, ICE_LITE_SELF); - MEDIA_CLEAR(other, ICE_LITE_SELF); - break; - case ICE_LITE_BKW: - MEDIA_CLEAR(this, ICE_LITE_SELF); - MEDIA_SET(other, ICE_LITE_SELF); - break; - case ICE_LITE_BOTH: - MEDIA_SET(this, ICE_LITE_SELF); - MEDIA_SET(other, ICE_LITE_SELF); - break; - }; + if (flags->opmode == OP_OFFER) { + switch (flags->ice_lite_option) { + case ICE_LITE_OFF: + MEDIA_CLEAR(this, ICE_LITE_SELF); + MEDIA_CLEAR(other, ICE_LITE_SELF); + break; + case ICE_LITE_FWD: + MEDIA_SET(this, ICE_LITE_SELF); + MEDIA_CLEAR(other, ICE_LITE_SELF); + break; + case ICE_LITE_BKW: + MEDIA_CLEAR(this, ICE_LITE_SELF); + MEDIA_SET(other, ICE_LITE_SELF); + break; + case ICE_LITE_BOTH: + MEDIA_SET(this, ICE_LITE_SELF); + MEDIA_SET(other, ICE_LITE_SELF); + break; + default: + break; + } + } /* determine roles (even if we don't actually do ICE) */ /* this = receiver, other = sender */ diff --git a/include/call_interfaces.h b/include/call_interfaces.h index 3b43908f1..4ffdc3f7a 100644 --- a/include/call_interfaces.h +++ b/include/call_interfaces.h @@ -58,11 +58,12 @@ struct sdp_ng_flags { ICE_OPTIONAL, } ice_option:3; enum { - ICE_LITE_OFF = 0, + ICE_LITE_DEFAULT = 0, + ICE_LITE_OFF, ICE_LITE_FWD, ICE_LITE_BKW, ICE_LITE_BOTH, - } ice_lite_option:2; + } ice_lite_option:3; unsigned int asymmetric:1, protocol_accept:1, no_redis_update:1,