 			])
 		}
 	}
- 
+
 	/** New ice candidate has been found. */
 	func peerConnection(_ peerConnection: RTCPeerConnection, didGenerate candidate: RTCIceCandidate) {
 		NSLog("PluginRTCPeerConnection | onicecandidate [sdpMid:%@, sdpMLineIndex:%@, candidate:%@]",


		let pluginRTCPeerConnectionConstraints = PluginRTCPeerConnectionConstraints(pcConstraints: options)

		
		self.onCreateLocalDescriptionSuccessCallback = { (rtcSessionDescription: RTCSessionDescription) -> Void in
			NSLog("PluginRTCPeerConnection#createOffer() | success callback")


			trackIdsToSenders[rtcMediaStreamTrack.trackId] = rtcSender;
			return true;
		}

		return false;
	}

	func removeTrack(_ pluginMediaTrack: PluginMediaStreamTrack) {
		NSLog("PluginRTCPeerConnection#removeTrack()")

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

		let rtcMediaStreamTrack = pluginMediaTrack.rtcMediaStreamTrack;
		let rtcSender = trackIdsToSenders[rtcMediaStreamTrack.trackId];

		if (rtcSender != nil) {
			self.rtcPeerConnection.removeTrack(rtcSender!)
			trackIdsToSenders[rtcMediaStreamTrack.trackId] = nil
