Call Directory Number Matching Inconsistency Across Regions

[Question] Inconsistent Call Directory number matching across regions (Japan, Taiwan, U.S.)

We’re developing a Call Directory extension and observed inconsistent number matching depending on carrier region and number format.


Environment

  • Device: iPhone (iOS 26.0)
  • Call Directory Extension: Custom implementation
  • Carrier A: Japan carrier SIM
  • Carrier B: Taiwan carrier SIM
  • Numbers added to Call Directory patterns:
    • +81 120 580 2XXX
    • +81 704 336 2XXX

Observed Behavior (Japan Carrier SIM)

  1. Incoming call from +81 120 580 2XXX
    Caller name not displayed (Call Directory match failed).
    Entering 0120 580 2XXX in the Phone app dialer → Name displayed correctly.

  2. Incoming call from +81 704 336 2XXX
    Caller name displayed correctly.
    Entering 070 4336 2XXX in the Phone app dialer → Name displayed correctly.


Observed Behavior (Taiwan Carrier SIM)

  1. Entering +81 120 580 2XXX in the dialer →
    Name not displayed until the call button is pressed.

  2. Entering +81 704 336 2XXX in the dialer →
    Name displayed immediately, before the call is placed.


Steps to Reproduce

For Japan carrier:

  1. Use a device running iOS 26 with a Japanese SIM card.
  2. Add the following numbers to the Call Directory extension:
    +81 120 580 2XXX and +81 704 336 2XXX
  3. Receive an incoming call from +81 120 580 2XXX → ❌ Caller name not displayed.
  4. Open the Phone app and enter 0120 580 2XXX → ✅ Caller name displayed.
  5. Receive an incoming call from +81 704 336 2XXX → ✅ Caller name displayed.
  6. Open the Phone app and enter 070 4336 2XXX → ✅ Caller name displayed.

For Taiwan carrier: 7. Insert a Taiwan SIM card (keep the same Call Directory patterns).
8. Enter +81 120 580 2XXX → ❌ Name not shown until the call button is pressed.
9. Enter +81 704 336 2XXX → ✅ Name shown immediately.


Expected Result

For both numbers:

  • Caller name from Call Directory should display consistently:
    • a) On incoming calls.
    • b) When entering the full number in the dialer (before pressing call).
  • Behavior should be consistent across regions (Japan, Taiwan, United States).

Actual Result

Region / CarrierNumber PatternIncoming CallDialer (Local Format)
Japan+81 120 580 2XXX❌ Not shown✅ Shown (0120 580 2XXX)
Japan+81 704 336 2XXX✅ Shown✅ Shown (070 4336 2XXX)
Taiwan+81 120 580 2XXXN/A❌ Not shown until call
Taiwan+81 704 336 2XXXN/A✅ Shown immediately

Questions

  1. How should numbers be formatted or stored in the Call Directory patterns so that they match both incoming calls and dialer input consistently across regions?
  2. Are there region-specific number normalization rules (e.g., Japan’s 0-prefixed local dialing or Taiwan’s international format handling)?
  3. Is there an official guideline or recommendation for formatting phone numbers in Call Directory extensions (e.g., E.164 vs local format) to ensure consistent matching?

Notes

  • The inconsistent behavior appears to be related to how iOS normalizes numbers per carrier region and local dialing conventions.
  • In Japan, incoming calls from mobile numbers starting with 070 match correctly, while 0120 (toll-free) fails unless entered in local format.

Have you filed a bug on this and, if so, what is the bug number?

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi Kevin,

Yes, I’ve already filed a bug report for this issue. The Feedback ID is FB20572131.

Thank you for following up.

Call Directory Number Matching Inconsistency Across Regions
 
 
Q