camaraproject / Commonalities

Repository to describe, develop, document and test the common guidelines and assets for CAMARA APIs
Apache License 2.0
12 stars 25 forks source link

Support of Multi-SIM lines in CAMARA APIs #302

Open jgarciahospital opened 2 weeks ago

jgarciahospital commented 2 weeks ago

To be considered as part of #273

Intro

Current CAMARA APIs based their functionality on subscriber's line identity, usually phone_number. Specifically for mobile lines, that is a suitable identity for the most of scenarios, but there is an specific case that requires analysis.

MultiSIM lines

MNOs usually offer a line enhancement that allows users to install the same phone line (same MSISDN) in multiple devices, known as MultiSIM. Even when different technical solutions are posible, the service is based on multiple SIMs (phisical or virtual) that are binded to the same main phone_number, it is, multiple IMEIs associated to the same MSISDN This approach is commonly used to enable secondary/companion devices like:

MultiSIM in CAMARA APIs

While certain APIs are agnostic to MultiSIM situation, since they refer to information of the proper line or even subscriber like carrier billing, KYC, OTP..., other APIs are tied to a device and require a different consideration to be managed in a MultiSIM scenario.

Just as couple of examples:

Action required

Based on this scenario analysis and handled by a common aligned approach for similar cases: CAMARA APIs need to analyze their impact when a MultiSIM scenario is handled, define a specific behaviour and adapt the API (if needed)

As example of current discussions or defined behaviours, SIM Swap already considers MultiSIM lines as part of the information that the API needs to retrieve.

eric-murray commented 1 week ago

For the Vodafone implementation of multi-SIM, phoneNumber is still a valid identifier for each of the secondary devices, as each SIM still has its own MSISDN (the "secondary" MSISDN). For the "primary" device (usually the smartphone), the primary and secondary MSISDNs are the same.

Whether an implementation will treat a phoneNumber as the primary or secondary MSISDN is dependent on that implementation. For the Device Identifier API, I added a statement that phoneNumber would be treated as the secondary MSISDN, which would allow retrieval of the IMEI for secondary devices without affecting the ability to retrieve the IMEI for the primary device.

For at least some other APIs, I think treating the phoneNumber as the secondary MSISDN will also work just as well, but does pose the following questions:

jgarciahospital commented 1 week ago

Thanks @eric-murray,

Let me include one other question:

  1. Either consider that the users know that primary device is exactly the device identifier they want to use.
  2. Or consider that maybe the user/developer only knows the primary MSISDN, and therefore we cannot be sure that they are targeting exactly primary device and a different behaviour need to be considered for the rest of devices too.