Siri announces GenericHandle Value instead of custom caller Name

Hello fellow developers,

I’ve been working with the CallKit framework in iOS, specifically handling incoming calls. One issue I’ve encountered is that Siri when "read caller name" is enabled announces the caller name/surname set via localizedCallerName and then reads the generic handle value (usually alphanumeric) too!

Has anyone encountered a similar situation or if there’s a solution to prioritize the localizedCallerName over the generic handle value without using CXHandleType.emailAddress? Alternatively, any insights or workarounds you know would be greatly appreciated.

TLDR: even when I correctly configure the localizedCallerName property, Siri persists in reading the CXHandleType.generic.


The original Implementation with CXHandleType.generic:

The issue arises when using CXHandleType.generic for alphanumeric IDs (or even URLs as stated by documentation https://developer.apple.com/documentation/callkit/cxhandle). Despite correctly setting the localizedCallerName, Siri continues to announce the generic handle value.

Expected Behavior: Siri should read only the localizedCallerName when set and ignore the generic handle value when announcing incoming calls.

Workaround: Currently, the only workaround is to use CXHandleType.emailAddress for alphanumeric IDs. However, this is not ideal since it repurposes an email-related handle type for a different purpose.

Steps to Reproduce:

  1. Create a CallKit app that handles incoming calls (example app from documentation can be used too).
  2. On incoming call create CXCallUpdate object
  3. Create a CXHandle with CXHandleType.generic and an alphanumeric value (e.g., “ABC123”).
  4. Pass the CXHandle to the CXCallUpdate objects' remoteHandle.
  5. Set the localizedCallerName property of the CXCallUpdate object with a custom caller name/surname.
  6. Report the call with reportNewIncomingCallWithUUID
  7. Observe that Siri reads both the localizedCallerName and the generic handle value during call announcements.

While we are here a Feature Request: Developers should be able to provide a user-friendly caller name without resorting to workarounds like using CXHandleType.emailAddress. I kindly request that Apple consider enhancing Siri’s behavior in the following ways:

  • Allow developers to suppress the reading of generic handle values while still using the correct handle type.
  • Introduce additional type options for call announcements that don't read the generic value.
  • Both of the above.

Thank you for your help! 🙌

I was doing more test and the problem is even worse. Siri announces any handle that it can't find direct correlation in Contacts app, and if it finds one then it says the contact name from there, ignoring completely localizedCallerName!

I was deceived by the workaround when I wrote this because I used an email for a contact in Contacts and the name/surname also matches. There is simply no workaround, any CXHandleType will be announces, how is this possible? localizedCallerName is there for a reason...

Siri announces GenericHandle Value instead of custom caller Name
 
 
Q