diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index e07ea6540..be252faed 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -470,15 +470,6 @@ protocol CallServiceObserver: class { let newCall = SignalCall.incomingCall(localId: UUID(), remotePhoneNumber: thread.contactIdentifier(), signalingId: callId) - guard self.call == nil else { - // TODO on iOS10+ we can use CallKit to swap calls rather than just returning busy immediately. - Logger.info("\(TAG) receivedCallOffer for thread: \(thread) but we're already in call: \(call!)") - - handleLocalBusyCall(newCall, thread: thread) - - return - } - let untrustedIdentity = OWSIdentityManager.shared().untrustedIdentityForSending(toRecipientId: thread.contactIdentifier()) guard untrustedIdentity == nil else { @@ -509,6 +500,15 @@ protocol CallServiceObserver: class { return } + + guard self.call == nil else { + // TODO on iOS10+ we can use CallKit to swap calls rather than just returning busy immediately. + Logger.info("\(TAG) receivedCallOffer for thread: \(thread) but we're already in call: \(call!)") + + handleLocalBusyCall(newCall, thread: thread) + + return + } Logger.info("\(TAG) starting new call: \(newCall)")