From 880967d2e34e970b93aa4467f8a70b2c8be521e8 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Tue, 16 Sep 2025 16:31:55 +0200 Subject: [PATCH] Fix meeting scheduler --- .../Meetings/ViewModel/MeetingViewModel.swift | 6 +++-- Linphone/Utils/LinphoneUtils.swift | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift index 4d3ec47fd..27d813085 100644 --- a/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift +++ b/Linphone/UI/Main/Meetings/ViewModel/MeetingViewModel.swift @@ -189,7 +189,7 @@ class MeetingViewModel: ObservableObject { private func resetConferenceSchedulerAndListeners(core: Core) { self.mSchedulerDelegate = nil - self.conferenceScheduler = try? core.createConferenceScheduler() + self.conferenceScheduler = LinphoneUtils.createConferenceScheduler(core: core) guard let scheduler = self.conferenceScheduler else { Log.info("\(MeetingViewModel.TAG) ConferenceScheduler is nil after reset, nothing to cancel") @@ -317,7 +317,9 @@ class MeetingViewModel: ObservableObject { confInfo.setCapability(streamType: .Text, enable: true) - if LinphoneUtils.isEndToEndEncryptedChatAvailable(core: core) { + // Enable end-to-end encryption if client supports it + //if isEndToEndEncryptedChatAvailable(core: core) { + if false { Log.info("\(MeetingViewModel.TAG) Requesting EndToEnd security level for conference") confInfo.securityLevel = .EndToEnd } else { diff --git a/Linphone/Utils/LinphoneUtils.swift b/Linphone/Utils/LinphoneUtils.swift index acc050cae..b5cc01df5 100644 --- a/Linphone/Utils/LinphoneUtils.swift +++ b/Linphone/Utils/LinphoneUtils.swift @@ -72,6 +72,32 @@ class LinphoneUtils: NSObject { core.defaultAccount?.params?.conferenceFactoryUri != nil } + public class func createConferenceScheduler(core: Core) -> ConferenceScheduler? { + let account = LinphoneUtils.getDefaultAccount() + if let url = account?.params?.ccmpServerUrl, !url.isEmpty { + Log.info( + "CCMP server URL has been set in Account's params, using CCMP conference scheduler" + ) + + let conferenceScheduler = try? core.createConferenceSchedulerWithType( + account: account, + schedulingType: .CCMP + ) + + return conferenceScheduler + } + Log.info( + "CCMP server URL hasn't been set in Account's params, using SIP conference scheduler" + ) + + let conferenceScheduler = try? core.createConferenceSchedulerWithType( + account: account, + schedulingType: .SIP + ) + + return conferenceScheduler + } + public class func createGroupCall(core: Core, account: Account?, subject: String) -> Conference? { do { let conferenceParams = try core.createConferenceParams(conference: nil)