 	var onSetDescriptionSuccessCallback: (() -> Void)!
 	var onSetDescriptionFailureCallback: ((_ error: Error) -> Void)!
 	var onGetStatsCallback: ((_ array: NSArray) -> Void)!
-		
+
 	var streamIds: [String] = []
+	var pluginMediaStreams: [String : PluginMediaStream]! = [:]
 	var trackIdsToSenders: [String : RTCRtpSender] = [:]
 
 	var isAudioInputSelected: Bool = false


			callback(data as NSDictionary)
		}
		
		self.onCreateLocalDescriptionFailureCallback = { (error: Error) -> Void in
			NSLog("PluginRTCPeerConnection#createOffer() | failure callback: %@", String(describing: error))
			
			errback(error)
		}


		if self.rtcPeerConnection.signalingState == RTCSignalingState.closed {
			return false
		}

		if (IsUnifiedPlan()) {

			var streamAdded : Bool = false;
			let streamId = pluginMediaStream.rtcMediaStream.streamId;
			for (_, pluginMediaTrack) in pluginMediaStream.audioTracks {
				streamAdded = self.addTrack(pluginMediaTrack, [streamId]) && streamAdded;
			}

			for (_, pluginMediaTrack) in pluginMediaStream.videoTracks {
				streamAdded = self.addTrack(pluginMediaTrack, [streamId]) && streamAdded;
			}

			return streamAdded;

		} else {
			self.rtcPeerConnection.add(pluginMediaStream.rtcMediaStream)
		}

		return true
	}

