I try to update remoteHandle using CXCallUpdate for outgoing call, but this works only on iOS 15 but not on 17 or 18 (16 didn't test). This problem actual only for outgoing calls, but for incoming calls update works fine.
func startOutgoingCall(with callID: UUID, userID: String) {
let handle = CXHandle(type: .generic, value: userID)
let action = CXStartCallAction(call: callID, handle: handle)
callController.requestTransaction(with: action) { [weak self] error in
// ...
}
}
func updateOutgoingCall(with callID: UUID, groupID: String) {
let update = CXCallUpdate()
update.remoteHandle = CXHandle(type: .generic, value: groupID)
provider.reportCall(with: callID, updated: update)
}
I also tried phoneNumber type but it seems initial handle that I set to CXStartCallAction not possible to change (value or even type).
I use this handle value to implement recall by tap on call in Recents tab of system address book. But since my calls can transform from p2p to group call, I need to update handle value or find some another way to pass call identification info.
I try to update remoteHandle using CXCallUpdate for outgoing calls, but this works only on iOS 15 but not on 17 or 18 (16 didn't test).
What's actually not "working" here? Are you looking at what the lock screen UI shows or what you see in other locations (particularly in the Recent call list)?
There is a longstanding issue (r.126348631) where call updates aren't being displayed on the lock screen interface; however, this is purely about UI showing old data, not about the update itself completely failing.
Notably:
I use this handle value to implement recall by tapping on a call in the Recents tab of the system address book. But since my calls can transform from p2p to group calls, I need to update the handle value or find some other way to pass call identification info.
...I'd expect this sort of thing to work exactly the way you need/expect, regardless of what the lock screen UI shows.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware