diff --git a/plugin.xml b/plugin.xml
index 3cbc13b3..37a9b494 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -31,6 +31,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 44d4f424..9cb99704 100644
--- a/src/PluginMediaStreamTrack.swift
+++ b/src/PluginMediaStreamTrack.swift
@@ -18,13 +18,18 @@ class PluginMediaStreamTrack : NSObject {
if (trackId == nil) {
self.originalId = rtcMediaStreamTrack.trackId;
- // 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;
}
+
} else {
self.originalId = String();
self.id = trackId!;