From 429e6944e69d7f81953a22bebdba3ad8384c2d92 Mon Sep 17 00:00:00 2001 From: Harold Thetiot Date: Thu, 18 Feb 2021 17:26:39 +0100 Subject: [PATCH] implement PREFFIX_INVALID_MEDIA_ID pluxin.xml preference to disable UUID preffix for bad media ids via config #647 --- plugin.xml | 6 ++++++ src/PluginMediaStream.swift | 12 +++++++++--- src/PluginMediaStreamTrack.swift | 12 +++++++++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugin.xml b/plugin.xml index 39e356a1..17ada535 100644 --- a/plugin.xml +++ b/plugin.xml @@ -29,6 +29,12 @@ + + + + $PREFFIX_INVALID_MEDIA_ID + + diff --git a/src/PluginMediaStream.swift b/src/PluginMediaStream.swift index 93764962..f7b77641 100644 --- a/src/PluginMediaStream.swift +++ b/src/PluginMediaStream.swift @@ -19,9 +19,15 @@ class PluginMediaStream : NSObject { self.rtcMediaStream = rtcMediaStream; if (streamId == nil) { - // Handle possible duplicate remote trackId with janus or short duplicate name - // See: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/432 - if (rtcMediaStream.streamId.count < 36) { + + // Handle possible duplicate remote trackId with janus or short duplicate name + // See following issues: + // - https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/432 + // - https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/647 + + let shouldPreffixInvalidMediaId = Bundle.main.object(forInfoDictionaryKey: "PreffixInvalidMediaId") as? String + + if (shouldPreffixInvalidMediaId == "TRUE" && rtcMediaStream.streamId.count < 36) { self.id = rtcMediaStream.streamId + "_" + UUID().uuidString; } else { self.id = rtcMediaStream.streamId; diff --git a/src/PluginMediaStreamTrack.swift b/src/PluginMediaStreamTrack.swift index ffa09587..c3ebdb3f 100644 --- a/src/PluginMediaStreamTrack.swift +++ b/src/PluginMediaStreamTrack.swift @@ -16,9 +16,15 @@ class PluginMediaStreamTrack : NSObject { self.rtcMediaStreamTrack = rtcMediaStreamTrack if (trackId == nil) { - // Handle possible duplicate remote trackId with janus or short duplicate name - // See: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/432 - if (rtcMediaStreamTrack.trackId.count<36) { + + // Handle possible duplicate remote trackId with janus or short duplicate name + // See following issues: + // - https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/432 + // - https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/647 + + let shouldPreffixInvalidMediaId = Bundle.main.object(forInfoDictionaryKey: "PreffixInvalidMediaId") as? String + + if (shouldPreffixInvalidMediaId == "TRUE" && rtcMediaStreamTrack.trackId.count < 36) { self.id = rtcMediaStreamTrack.trackId + "_" + UUID().uuidString; } else { self.id = rtcMediaStreamTrack.trackId;