You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SessionMessagingKit/Calls/CallManagerProtocol.swift

39 lines
1.4 KiB
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import CallKit
import SessionUtilitiesKit
// MARK: - Singleton
public extension Singleton {
static let callManager: SingletonConfig<CallManagerProtocol> = Dependencies.create(
identifier: "sessionCallManager",
createInstance: { _ in NoopSessionCallManager() }
)
}
// MARK: - CallManagerProtocol
public protocol CallManagerProtocol {
var currentCall: CurrentCallProtocol? { get }
func setCurrentCall(_ call: CurrentCallProtocol?)
func reportFakeCall(info: String)
func reportIncomingCall(_ call: CurrentCallProtocol, callerName: String, completion: @escaping (Error?) -> Void)
func reportCurrentCallEnded(reason: CXCallEndedReason?)
func suspendDatabaseIfCallEndedInBackground()
func startCall(_ call: CurrentCallProtocol?, completion: ((Error?) -> Void)?)
func answerCall(_ call: CurrentCallProtocol?, completion: ((Error?) -> Void)?)
func endCall(_ call: CurrentCallProtocol?, completion: ((Error?) -> Void)?)
func showCallUIForCall(caller: String, uuid: String, mode: CallMode, interactionId: Int64?)
func handleICECandidates(message: CallMessage, sdpMLineIndexes: [UInt32], sdpMids: [String])
func handleAnswerMessage(_ message: CallMessage)
func currentWebRTCSessionMatches(callId: String) -> Bool
func dismissAllCallUI()
}