Prevent call blind call decline if previous registration had failed

This commit is contained in:
Christophe Deschamps 2024-08-13 08:36:09 +02:00
parent 27021d447e
commit 4682482852
2 changed files with 10 additions and 5 deletions

View file

@ -44,7 +44,7 @@ import AVFoundation
@objc var nextCallIsTransfer: Bool = false
var referedFromCall: String?
var referedToCall: String?
var endCallkit: Bool = false
var lastRegistrationFailed: Bool = false
var globalState : GlobalState = .Off
var actionsToPerformOnceWhenCoreIsOn : [(()->Void)] = []
var conference: Conference?
@ -512,9 +512,9 @@ import AVFoundation
CallManager.instance().providerDelegate.endCall(uuid: call.value)
}
CallManager.instance().endCallkit = true
CallManager.instance().lastRegistrationFailed = true
} else {
CallManager.instance().endCallkit = false
CallManager.instance().lastRegistrationFailed = false
}
}

View file

@ -114,10 +114,15 @@ class ProviderDelegate: NSObject {
//CallManager.instance().setHeldOtherCalls(exceptCallid: callId ?? "")
provider.reportNewIncomingCall(with: uuid, update: update) { error in
if error == nil {
if CallManager.instance().endCallkit {
if CallManager.instance().lastRegistrationFailed {
let call = CallManager.instance().lc?.getCallByCallid(callId: callId ?? "")
if (call?.state == .PushIncomingReceived) {
try? call?.terminate()
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit / reportNewIncomingCall: last registration failed, trying to refresh registers ... context = call with call-id: [\(String(describing: callId))] and UUID: [\(uuid.description)] ")
DispatchQueue.main.async {
CallManager.instance().lc?.accountList.forEach {
$0.refreshRegister()
}
}
}
}
} else {