CXCallUpdate not working for outgoing calls

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.

Answered by DTS Engineer in 871741022

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

Were you able to resolve this? I am seeing the same thing. Also, how did you check it for outgoing on iOS15 - it doesn't show CallKit UI for outgoing calls.

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

I’m facing the same issue and haven’t been able to update the remote handle for outgoing calls.

Initially, I start the call by setting the callee’s phone number as the value of the CXHandle. However, during the call, the caller can add more participants. At that point, I need to update the remote handle to store a call ID instead, so I can later retrieve it and initiate a group call from the device’s recent call logs.

The problem is that updating the remote handle doesn’t seem to work, it keeps the initial value and does not reflect any changes. This issue only occurs for outgoing calls, incoming calls behave as expected.

Is there any solution for this?

CXCallUpdate not working for outgoing calls
 
 
Q