From 2c72d6fd73c5b7319d0cb8d24e563890eb9883d0 Mon Sep 17 00:00:00 2001 From: CloudWebRTC Date: Wed, 8 Mar 2023 10:27:59 +0800 Subject: [PATCH] fix: set forceRelay if server response is enabled. (#251) --- lib/src/core/engine.dart | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/lib/src/core/engine.dart b/lib/src/core/engine.dart index fb0fa2b..080dfb1 100644 --- a/lib/src/core/engine.dart +++ b/lib/src/core/engine.dart @@ -279,7 +279,7 @@ class Engine extends Disposable with EventsEmittable { } Future _configurePeerConnections( - {required lk_models.ClientConfigSetting forceRelay, + {required lk_models.ClientConfigSetting serverResponseForceRelay, required List serverProvidedIceServers}) async { if (publisher != null || subscriber != null) { logger.warning('Already configured'); @@ -297,23 +297,11 @@ class Engine extends Disposable with EventsEmittable { .copyWith(iceServers: serverProvidedIceServers); } - // set forceRelay - if (rtcConfiguration.iceTransportPolicy == null) { - switch (forceRelay) { - case lk_models.ClientConfigSetting.ENABLED: - rtcConfiguration = rtcConfiguration.copyWith( - iceTransportPolicy: RTCIceTransportPolicy.relay, - ); - break; - case lk_models.ClientConfigSetting.DISABLED: - rtcConfiguration = rtcConfiguration.copyWith( - iceTransportPolicy: RTCIceTransportPolicy.all, - ); - break; - case lk_models.ClientConfigSetting.UNSET: - // do nothing - break; - } + // set forceRelay if server response is enabled + if (serverResponseForceRelay == lk_models.ClientConfigSetting.ENABLED) { + rtcConfiguration = rtcConfiguration.copyWith( + iceTransportPolicy: RTCIceTransportPolicy.relay, + ); } publisher = await Transport.create(_peerConnectionCreate, @@ -723,7 +711,8 @@ class Engine extends Disposable with EventsEmittable { 'forceRelay: $event.response.clientConfiguration.forceRelay'); await _configurePeerConnections( - forceRelay: event.response.clientConfiguration.forceRelay, + serverResponseForceRelay: + event.response.clientConfiguration.forceRelay, serverProvidedIceServers: _serverProvidedIceServers); if (!_subscriberPrimary) {