Why do we need to set the APN manually for certain providers?

Aleksander Morgado aleksandermj at chromium.org
Tue Nov 8 20:23:19 UTC 2022


Hey Scott,

>
> I hadn't realized that you had this list:
>
> >> There is also an open source database we maintain in
>
> >> https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info but
> >> which also has the same problems, it lacks a lot of latest updates
> >> even from major carriers.
>
> It appears that you are matching on the MCC and MNC?  Are you using this from the prefix of the IMSI?
>
> If so, what do you do to match for MVNOs that share IMSIs from the same IMSI Sponsors?
>
> With Android they also support a richer matching algorithm that includes things like the MVNO Type and Value
> that can then be read from the SIM to differentiate - for example the Service Provider Name (SPI).
>
> Do you support anything like this in this file format?
>

No, if I recall correctly, the m-b-p-i only matches by MCCMNC, and
yes, that is taken from the IMSI prefix. The length of the MNC is read
from EFad.

Matching only by MCCMNC is definitely not enough. There are cases
where you want to match by ICCID prefix instead; e.g. when you want to
apply a certain APN to a SIM card that supports IMSI switching (if the
module supports BIP+TCP/IP). Some other cases, the same operator may
define different APNs for the same MCCMNC, which can be distinguished
based on the EFgid1 or EFspn contents in the SIM card. And the most
common case is also that of MVNOs that share the same MCCMNC as the
parent MNO, and you need things like IMSI ranges or also EFgid1
content matching. The m-b-p-i lacks the info to handle most of those
cases unfortunately.

The chromium.org project has a different database which includes
support for some of those things in major US carriers, but it lacks
support for a lot of operators in other countries, or the info they
have for those is very outdated (same as the m-b-p-i info anyway,
which is also outdated in most cases). See
https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/shill/mobile_operator_db/serviceproviders.prototxt

There are other proprietary databases out there, and it would
definitely be a good thing to have one single place to contain all
this information, but so far, there is no such thing.

-- 
Aleksander


More information about the ModemManager-devel mailing list