1.46.0 Release#1129
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Generated by 🚫 Danger |
Public Interface+ public extension RejectionReasonProviding
+ public final class CallJoinInterceptionError: ClientError, @unchecked Sendable
+ public protocol CallJoinIntercepting: Sendable
public class Call: @unchecked Sendable, WSEventsSubscriber
- @discardableResult public func join(create: Bool = false,options: CreateCallOptions? = nil,ring: Bool = false,notify: Bool = false,callSettings: CallSettings? = nil,policy: WebRTCJoinPolicy = .default)async throws -> JoinCallResponse
+ @discardableResult public func join(create: Bool = false,options: CreateCallOptions? = nil,ring: Bool = false,notify: Bool = false,callSettings: CallSettings? = nil,policy: WebRTCJoinPolicy = .default,joinInterceptor: CallJoinIntercepting? = nil)async throws -> JoinCallResponse
- public func leave()
+ public func leave(reason: String? = nil)
@MainActor open class CallViewModel: ObservableObject
- public var participants: [CallParticipant]
+ public var callJoinInterceptor: CallJoinIntercepting?
- public var participantAutoLeavePolicy: ParticipantAutoLeavePolicy
+ public var participants: [CallParticipant]
-
+ public var participantAutoLeavePolicy: ParticipantAutoLeavePolicy
-
+
- public init(participantsLayout: ParticipantsLayout = .grid,callSettings: CallSettings? = nil)
+
-
+ public init(participantsLayout: ParticipantsLayout = .grid,callSettings: CallSettings? = nil)
-
+
- public func toggleCameraEnabled()
+
- public func toggleMicrophoneEnabled()
+ public func toggleCameraEnabled()
- public func toggleCameraPosition()
+ public func toggleMicrophoneEnabled()
- public func toggleAudioOutput()
+ public func toggleCameraPosition()
- public func toggleSpeaker()
+ public func toggleAudioOutput()
- public func startCall(callType: String,callId: String,members: [Member],team: String? = nil,ring: Bool = false,maxDuration: Int? = nil,maxParticipants: Int? = nil,startsAt: Date? = nil,backstage: BackstageSettingsRequest? = nil,customData: [String: RawJSON]? = nil,video: Bool? = nil)
+ public func toggleSpeaker()
- public func joinCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
+ public func startCall(callType: String,callId: String,members: [Member],team: String? = nil,ring: Bool = false,maxDuration: Int? = nil,maxParticipants: Int? = nil,startsAt: Date? = nil,backstage: BackstageSettingsRequest? = nil,customData: [String: RawJSON]? = nil,video: Bool? = nil)
- public func joinAndRingCall(callType: String,callId: String,members: [Member],team: String? = nil,maxDuration: Int? = nil,maxParticipants: Int? = nil,startsAt: Date? = nil,customData: [String: RawJSON]? = nil,video: Bool? = nil)
+ public func joinCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
- public func enterLobby(callType: String,callId: String,members: [Member])
+ public func joinAndRingCall(callType: String,callId: String,members: [Member],team: String? = nil,maxDuration: Int? = nil,maxParticipants: Int? = nil,startsAt: Date? = nil,customData: [String: RawJSON]? = nil,video: Bool? = nil)
- public func acceptCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
+ public func enterLobby(callType: String,callId: String,members: [Member])
- public func rejectCall(callType: String,callId: String)
+ public func acceptCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
- public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)
+ public func rejectCall(callType: String,callId: String)
- public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)
+ public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)
- public func startScreensharing(type: ScreensharingType,includeAudio: Bool = true)
+ public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)
- public func stopScreensharing()
+ public func startScreensharing(type: ScreensharingType,includeAudio: Bool = true)
- public func hangUp()
+ public func stopScreensharing()
- public func setVideoFilter(_ videoFilter: VideoFilter?)
+ public func hangUp(reason: String? = nil)
- public func update(participantsLayout: ParticipantsLayout)
+ public func setVideoFilter(_ videoFilter: VideoFilter?)
- public func setActiveCall(_ call: Call?,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+ public func update(participantsLayout: ParticipantsLayout)
- public func update(participantsSortComparators: [StreamSortComparator<CallParticipant>])
+ public func setActiveCall(_ call: Call?,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+ public func update(participantsSortComparators: [StreamSortComparator<CallParticipant>])
open class CallKitService: NSObject, CXProviderDelegate, @unchecked Sendable
- open internal lazy var callController
+ open var participantAutoLeavePolicy: ParticipantAutoLeavePolicy
- open internal lazy var callProvider
+ open internal lazy var callController
-
+ open internal lazy var callProvider
-
+
- override public init()
+
-
+ override public init()
-
+
- open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @Sendable @escaping (Error?) -> Void)
+
- open func callAccepted(_ response: CallAcceptedEvent)
+ open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @Sendable @escaping (Error?) -> Void)
- open func callRejected(_ response: CallRejectedEvent)
+ open func callAccepted(_ response: CallAcceptedEvent)
- open func callEnded(_ cId: String,ringingTimedOut: Bool)
+ open func callRejected(_ response: CallRejectedEvent)
- open func callParticipantLeft(_ response: CallSessionParticipantLeftEvent)
+ open func callEnded(_ cId: String,ringingTimedOut: Bool,leaveReason: String? = nil)
- open func providerDidReset(_ provider: CXProvider)
+ open func callParticipantLeft(_ response: CallSessionParticipantLeftEvent)
- open func provider(_ provider: CXProvider,didActivate audioSession: AVAudioSession)
+ open func providerDidReset(_ provider: CXProvider)
- public func provider(_ provider: CXProvider,didDeactivate audioSession: AVAudioSession)
+ open func provider(_ provider: CXProvider,didActivate audioSession: AVAudioSession)
- open func provider(_ provider: CXProvider,perform action: CXAnswerCallAction)
+ public func provider(_ provider: CXProvider,didDeactivate audioSession: AVAudioSession)
- open func provider(_ provider: CXProvider,perform action: CXEndCallAction)
+ open func provider(_ provider: CXProvider,perform action: CXAnswerCallAction)
- open func provider(_ provider: CXProvider,perform action: CXSetMutedCallAction)
+ open func provider(_ provider: CXProvider,perform action: CXEndCallAction)
- open func requestTransaction(_ action: CXAction)async throws
+ open func provider(_ provider: CXProvider,perform action: CXSetMutedCallAction)
- open func checkIfCallWasHandled(callState: GetCallResponse)-> Bool
+ open func requestTransaction(_ action: CXAction)async throws
- open func setUpRingingTimer(for callState: GetCallResponse)
+ open func checkIfCallWasHandled(callState: GetCallResponse)-> String?
- open func didUpdate(_ streamVideo: StreamVideo?)
+ open func setUpRingingTimer(for callState: GetCallResponse)
-
+ open func didUpdate(_ streamVideo: StreamVideo?)
-
+
- public enum Event
+
-
+ public enum Event
- case idle
+
- case accept
+ case idle
- case joining(Call)
+ case accept
- case joined
+ case joining(Call)
- case reject
+ case joined
+ case reject
public struct CallDurationView: View
- @MainActor public init(_ viewModel: CallViewModel)
+ public init(_ viewModel: CallViewModel,showRingingDuration: Bool = true)
open class CallKitAdapter
- public var availabilityPolicy: CallKitAvailabilityPolicy
+ open var participantAutoLeavePolicy: ParticipantAutoLeavePolicy
- public var streamVideo: StreamVideo?
+ public var availabilityPolicy: CallKitAvailabilityPolicy
-
+ public var streamVideo: StreamVideo?
-
+
- public init()
+
-
+ public init()
-
+
- open func registerForIncomingCalls()
+
- open func unregisterForIncomingCalls()
+ open func registerForIncomingCalls()
+ open func unregisterForIncomingCalls()
- public enum CallRecordingType: String
+ public enum CallRecordingType: String, Sendable |
SDK Size
|
|
Build for regression testing №334 has been uploaded to TestFlight 🎁 |
StreamVideo XCSize
Show 8 more objects
|
|
|
/merge release |
|
Publication of the release has been launched 👍 |



🔄 Changed
Call.leaveandCallViewModel.hangUp, and propagated them through the WebRTC leave flow so SFU leave requests include explicit end-of-call context. #1100participantAutoLeavePolicyonCallKitAdapterandCallKitServiceso CallKit flows can share the same auto-leave rules asCallViewModel.🐞 Fixed
PassthroughSubjectrace where the response was emitted before the subscription was established. #1113participantAutoLeavePolicy. #1112CallViewModelfrom entering.inCallfrom participant updates before the call is ready, while preserving the CallKit join handoff to.inCall. #1109