mirror of https://github.com/oxen-io/session-ios
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.
40 lines
1.4 KiB
Swift
40 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()
|
|
func cleanUpPreviousCall()
|
|
}
|