Skip to content

Commit 340ac50

Browse files
authored
fix: oneToOne call fails to connect when answered - WPB-21338 (#4021)
1 parent e2853ef commit 340ac50

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

WireAVS/Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ let package = Package(
1717
targets: [
1818
.binaryTarget(
1919
name: "WireAVS",
20-
url: "https://github.com/wireapp/wire-avs/releases/download/10.1.33/avs.xcframework.zip",
21-
checksum: "acfdabb39cba9b98a481b43b2531c4e7ded8393178ffd2a6b3b1091b63bd1338"
20+
url: "https://github.com/wireapp/wire-avs/releases/download/10.1.38/avs.xcframework.zip",
21+
checksum: "d8dbd807728ff997bb101947bd7a4b4f4f2324badc5333501f7f2abc3239e69e"
2222
)
2323
]
2424
)

wire-ios-sync-engine/Source/SessionManager/SessionManager+CallKitManagerDelegate.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,31 @@ extension SessionManager: CallKitManagerDelegate {
7474
return completionHandler(.failure(ConversationLookupError.conversationDoesNotExist))
7575
}
7676

77+
await requestCallConfigIfNeeded(for: userSession)
7778
await userSession.processPendingCallEvents()
7879

7980
WireLogger.calling.info("did process call events, returning conversation...")
8081
completionHandler(.success(conversation))
8182
}
8283
}
8384

85+
/// Proactively requests call config for a background session.
86+
/// This ensures the session has fresh call configuration when handling incoming calls.
87+
/// - Parameter session: The user session to request config for
88+
private func requestCallConfigIfNeeded(for session: ZMUserSession) async {
89+
guard session != activeUserSession else { return }
90+
91+
session.managedObjectContext.performGroupedBlock {
92+
guard let callCenter = session.callCenter else {
93+
WireLogger.calling.warn("Cannot request call config: callCenter not available")
94+
return
95+
}
96+
97+
WireLogger.calling.info("Proactively requesting call config for background session.")
98+
callCenter.requestCallConfig()
99+
}
100+
}
101+
84102
func endAllCalls() {
85103
for userSession in backgroundUserSessions.values {
86104
userSession.viewContext.perform {

0 commit comments

Comments
 (0)