From 38ecb97a264269808c8cd49eb52d9535c8e0f6b6 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Fri, 11 Oct 2019 18:06:46 -0700 Subject: [PATCH] fix spurious "failed call" RingRTC will fail the call when failing to send data messages. Don't send the video status before the call is connected. --- Signal/src/call/CallService.swift | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index 4e223af1b0..919c079cc8 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -1900,7 +1900,11 @@ private class SignalCallData: NSObject { private func updateIsVideoEnabled() { AssertIsOnMainThread() - guard let callConnection = self.callData?.callConnection else { + guard let callData = self.callData else { + return + } + + guard let callConnection = callData.callConnection else { return } @@ -1910,7 +1914,9 @@ private class SignalCallData: NSObject { do { try callConnection.setLocalVideoEnabled(enabled: shouldHaveLocalVideoTrack) - try callConnection.sendLocalVideoStatus(enabled: shouldHaveLocalVideoTrack) + if callData.call.state == .connected { + try callConnection.sendLocalVideoStatus(enabled: shouldHaveLocalVideoTrack) + } } catch { owsFailDebug("error: \(error)") }