diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index 86dbc6c0e..8ca912ed7 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -304,6 +304,8 @@ protocol CallServiceObserver: class { Logger.debug("\(self.TAG) setting peerConnectionClient in \(#function) for call: \(call.identifiersForLogs)") self.peerConnectionClient = peerConnectionClient self.fulfillPeerConnectionClientPromise?() + self.fulfillPeerConnectionClientPromise = nil + self.rejectPeerConnectionClientPromise = nil return peerConnectionClient.createOffer() }.then { (sessionDescription: HardenedRTCSessionDescription) -> Promise in @@ -376,6 +378,8 @@ protocol CallServiceObserver: class { } fulfillReadyToSendIceUpdatesPromise() + self.fulfillReadyToSendIceUpdatesPromise = nil + self.rejectReadyToSendIceUpdatesPromise = nil } /** @@ -595,6 +599,8 @@ protocol CallServiceObserver: class { let peerConnectionClient = PeerConnectionClient(iceServers: iceServers, delegate: self, callDirection: .incoming, useTurnOnly: useTurnOnly) self.peerConnectionClient = peerConnectionClient self.fulfillPeerConnectionClientPromise?() + self.fulfillPeerConnectionClientPromise = nil + self.rejectPeerConnectionClientPromise = nil let offerSessionDescription = RTCSessionDescription(type: .offer, sdp: callerSessionDescription) let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil) @@ -886,6 +892,8 @@ protocol CallServiceObserver: class { assert(self.fulfillCallConnectedPromise != nil) // cancel connection timeout self.fulfillCallConnectedPromise?() + self.fulfillCallConnectedPromise = nil + self.rejectCallConnectedPromise = nil call.state = .connected