Working with MCCs and MNCs

A subscriber's International Mobile Subscriber Identity (IMSI) is comprised of three components: the Mobile Country Code (MCC), the Mobile Network Code (MNC), and the Mobile Subscriber Identification Number (MSIN). dsTest must be able to parse these components from IMSI values and it must also know the correct length for an MNC when it is building identifiers that include an MCC and an MNC.

Since MNC and MSIN can have variable lengths, dsTest must be able to determine the length of an MNC based on the MCC value. Unfortunately, there are several cases where both two-digit and three-digit MNCs are used within one MCC. Bermuda (350), Guyana (738), India (405), Panama (714), and Trinidad and Tobago (374) all have variable-length MNCs at this point in time.

There is a CSV file on your dsTest platform located at /usr/local/devsol/config/mcc_list.csv that dsTest uses to lookup MNC length for a particular MCC. The file is populated from ITU's list of MCCs in ITU-T E.218, with MNC lengths derived from ITU-T E.212 and it is formatted as shown in the example. If you are testing with one of MCCs noted above and you encounter errors due to malformed identifiers or unknown subscribers, you may need to modify the file to specify the length of the MNCs involved. To do so, locate the applicable MCC in the file and then modify the adjacent Digits value.

dsTest defaults to a three-digit MNC if it is unable to find an MCC in the mcc_list file. If you test with an MCC that is not in the list and use a two-digit MNC, you will need to add your MCC to this file.

Upgrade Behavior

The mcc_list file is marked as a configuration file and therefore the OS will inspect the file during an upgrade procedure to determine whether the file has been modified. If it has, the resulting behavior differs depending on the OS.

Debian Installations (.deb)

Upon the first upgrade after you've modified the mcc_list file or if the file included in the upgrade package is different than the file included in the previously installed package, the OS will prompt you during the upgrade for the desired action:


Configuration file '/usr/local/devsol/config/mcc_list.csv'

 ==> Modified (by you or by a script) since installation.

 ==> Package distributor has shipped an updated version.

   What would you like to do about it ?  Your options are:

    Y or I  : install the package maintainer's version

    N or O  : keep your currently-installed version

      D     : show the differences between the versions

      Z     : start a shell to examine the situation

 The default action is to keep your current version.

*** mcc_list.csv (Y/I/N/O/D/Z) [default=N] ?

If you enter Y the OS moves your existing file to mcc_list.csv.dpkg-old and writes the new file from the distribution as mcc_list.csv. You can then merge your changes into the new file if desired.

If you enter N your file is not disturbed and the OS writes the new file as mcc_list.csv.dpkg-dist. In order to pick up the changes in the distributed file you will have to merge them into your file.

RPM Installations

In this case the OS will display a warning in the console, but will always write the newly distributed file as mcc_list.csv.rpmnew. In order to pick up the changes in the distributed file you will have to merge them into your file.

warning: /usr/local/devsol/config/mcc_list.csv created as /usr/local/devsol/config/mcc_list.csv.rpmnew