Add per-contact default SIM selection for outgoing calls (Dual SIM devices)

On dual-SIM devices (e.g. Pixel 7 with SIM + eSIM), it would be very useful to be able to assign a preferred SIM card to each contact for outgoing calls.

Currently, /e/OS only allows:

  • a global default SIM for calls, or

  • manual SIM selection at call time

This requires manual selection every time and is less efficient compared to other mobile operating systems.

Requested feature:
Add the ability to set a default SIM per contact, for example:

  • Contact A → always use SIM 1

  • Contact B → always use SIM 2

This setting should be stored in the contact details and automatically applied when initiating a call.

Expected behavior:

  • When calling a contact, the system automatically selects the configured SIM

  • User can still override SIM selection manually at call time

  • Option should be configurable per contact in the Contacts app

Use case:
Users with private and business SIMs can automatically route calls without manual SIM selection each time, improving usability and reducing errors.

Why this matters:
This feature is available on iOS and some OEM Android implementations, and is a key usability feature for dual-SIM users.

Additional notes:

  • Should work with both physical SIM and eSIM

  • Should be optional and not affect users who prefer manual selection

6 Likes

I’d like to second this. The described behaviour is exactly how I would love to see this issue handled. A more sophisticated way of handling dual SIM setups and solutions to assign contacts to SIMs is a topic popping up again and again over the years, sadly with limited impact so far. To list some threads:

On GitLab:

For me this would improve the usability of /e/OS a lot. Why this matters to me:

  • It would decrease the risk of leaking my private contact details to business contacts.
  • As a side-effect it would fix my cars hands-free-kit as this doesn’t know how to handle the SIM choice dialog. So far I’m not able to initiate calls while driving.

Please get me right. I very much value your work and that you are offering /e/OS free of charge is nearly to good to be true. It just wood be so nice to see this in /e/OS. Even the standard AOSP dialer lets you set a default SIM per number now.

2 Likes

+1, this is exactly what’s missing for me too.

I’m on a Fairphone with e/OS, using two SIMs (professional / personal). The lack of a per-contact SIM preference for outgoing calls means I either have to remember manually every time, or risk leaking my personal number to professional contacts (or vice versa).

On top of the missing per-contact feature, I’ve also noticed what looks like a related bug: even setting Calls to “always ask” in the SIM settings doesn’t seem to persist reliably — after a reboot, outgoing calls default back to SIM 1 without asking. Happy to help gather logs (logcat) if that’s useful for triaging this, just let me know what to capture.

As mentioned above, the AOSP Dialer codebase that e/OS’s Dialer is forked from already implemented a “preferred SIM per contact” feature years ago (upstream commits around 2017: “Implement preferred SIM”, “Implement suggested SIM”). It might be worth checking whether this got lost somewhere in the LineageOS/e/OS fork history, or whether it’s present but disabled — that could make this a much smaller fix than building the feature from scratch.

Happy to help test any patch or contribute where I can (I’m just getting started learning Android dev, but motivated to help push this forward). Is there an existing GitLab issue I should link this to, or should I open a new one specifically for the reboot/reset behavior?

Why won’t you save contacts directly on relevant sim cards?

Or isn’t it possible for electronic one, I’ve never used one.