From 375337498bc5a0dff6f5f3c81295f835174fffb0 Mon Sep 17 00:00:00 2001 From: QuentinArguillere Date: Mon, 10 Aug 2020 18:12:00 +0200 Subject: [PATCH] Move outgoing call intelligence to CallKit delegate --- .../CallKitTutorial/CallExample.swift | 16 ++-------------- .../CallKitProviderDelegate.swift | 12 ++++++++++-- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/swift/CallKitTutorial/CallKitTutorial/CallExample.swift b/swift/CallKitTutorial/CallKitTutorial/CallExample.swift index a87438b..f4e8fe0 100644 --- a/swift/CallKitTutorial/CallKitTutorial/CallExample.swift +++ b/swift/CallKitTutorial/CallKitTutorial/CallExample.swift @@ -115,16 +115,7 @@ class CallExampleContext : ObservableObject do { if (!callRunning) { - let callDest = try Factory.Instance.createAddress(addr: dest) - // Place an outgoing call - mCall = mCore.inviteAddressWithParams(addr: callDest, params: try createCallParams()) - - if (mCall == nil) { - print("Could not place call to \(dest)\n") - } else { - print("Call to \(dest) is in progress...") - mProviderDelegate.outgoingCallUUID = UUID() - } + mProviderDelegate.outgoingCall() } else { @@ -152,10 +143,7 @@ class CallExampleContext : ObservableObject { speakerEnabled = !speakerEnabled do { - try AVAudioSession.sharedInstance().overrideOutputAudioPort( - speakerEnabled ? - AVAudioSession.PortOverride.speaker : AVAudioSession.PortOverride.none - ) + try AVAudioSession.sharedInstance().overrideOutputAudioPort(speakerEnabled ? AVAudioSession.PortOverride.speaker : AVAudioSession.PortOverride.none ) } catch { print(error) } diff --git a/swift/CallKitTutorial/CallKitTutorial/CallKitProviderDelegate.swift b/swift/CallKitTutorial/CallKitTutorial/CallKitProviderDelegate.swift index 075ec48..4cbafbd 100644 --- a/swift/CallKitTutorial/CallKitTutorial/CallKitProviderDelegate.swift +++ b/swift/CallKitTutorial/CallKitTutorial/CallKitProviderDelegate.swift @@ -46,7 +46,7 @@ class CallKitProviderDelegate : NSObject let startCallAction = CXStartCallAction(call: outgoingCallUUID, handle: handle) let transaction = CXTransaction(action: startCallAction) - provider.reportOutgoingCall(with: outgoingCallUUID, connectedAt: nil) + provider.reportOutgoingCall(with: outgoingCallUUID, startedConnectingAt: nil) mCallController.request(transaction, completion: { error in }) } @@ -94,7 +94,15 @@ extension CallKitProviderDelegate: CXProviderDelegate { } func provider(_ provider: CXProvider, perform action: CXStartCallAction) { - tutorialContext.outgoingCallExample() + + do { + let callDest = try Factory.Instance.createAddress(addr: tutorialContext.dest) + // Place an outgoing call + tutorialContext.mCall = tutorialContext.mCore.inviteAddressWithParams(addr: callDest, params: try tutorialContext.createCallParams()) + } catch { + print(error) + } + action.fulfill() }