Monday, July 30, 2012

International Mobile Equipment Identity - IMEI


he International Mobile Equipment Identity or IMEI (play /ˈm/) is a number, usually unique,[1][2] to identify GSMWCDMA, and iDEN mobile phones, as well as some satellite phones. It is usually found printed inside the battery compartment of the phone. It can also be displayed on the screen of the phone by entering *#06# into the keypad on most phones.

[edit]Structure of the IMEI and IMEISV (IMEI Software Version)

The IMEI (14 decimal digits plus a check digit) or IMEISV (16 digits) includes information on the origin, model, and serial number of the device. The structure of the IMEI/SV are specified in 3GPP TS 23.003. The model and origin comprise the initial 8-digit portion of the IMEI/SV, known as the Type Allocation Code (TAC). The remainder of the IMEI is manufacturer-defined, with a Luhn check digit at the end. For the IMEI format prior to 2003, the GSMA guideline was to have this Check Digit always transmitted to the network as zero. This guideline seems to have disappeared for the format valid from 2003 and onwards.[7]
As of 2004, the format of the IMEI is AA-BBBBBB-CCCCCC-D, although it may not always be displayed this way. The IMEISV drops the Luhn check digit in favour of an additional two digits for the Software Version Number (SVN), making the format AA-BBBBBB-CCCCCC-EE
AA-BBBBBB-CCCCCCD or EE
Old IMEITACFACSerial number(Optional) Luhn checksum
New IMEITAC
Old IMEISVTACFACSoftware Version Number (SVN).
New IMEISVTAC
Prior to 2002, the TAC was six digits long and was followed by a two-digit Final Assembly Code (FAC), which was a manufacturer-specific code indicating the location of the device's construction. From January 1, 2003 until that April 1, 2004, the FAC for all phones was 00. After April 1, 2004, the Final Assembly Code ceased to exist and the Type Allocation Code increased to eight digits in length.
In any of the above cases, the first two digits of the TAC are the Reporting Body Identifier, which identifies the GSMA-approved group that allocated the TAC. The RBI numbers are allocated by the Global Decimal Administrator. The first two digits are always decimal (i.e., less than 0xA0), allowing IMEI numbers to be distinguished from an MEID, which will always have 0xA0 or larger as its first two digits.
For example, the old style IMEI code 35-209900-176148-1 or IMEISV code 35-209900-176148-23 tells us the following:
TAC: 35-2099 - issued by the BABT (code 35) with the allocation number 2099
FAC: 00 - indicating the phone was made during the transition period when FACs were being removed.
SNR: 176148 - uniquely identifying a unit of this model
CD: 1 so it is a GSM Phase 2 or higher
SVN: 23 - The "software version number" identifying the revision of the software installed on the phone. 99 is reserved.
By contrast, the new style IMEI code 49-015420-323751 has a 8-digit TAC of 49-015420.
The new CDMA Mobile Equipment Identifier (MEID) uses the same basic format as the IMEI.

[edit]Check digit computation

The last number of the IMEI is a check digit calculated using the Luhn algorithm.
The Check Digit shall be calculated according to Luhn formula (ISO/IEC 7812). (See GSM 02.16 / 3GPP 22.016). The Check Digit is a function of all other digits in the IMEI. The Software Version Number (SVN) of a mobile is not included in the calculation. The purpose of the Check Digit is to help guard against the possibility of incorrect entries to the CEIR and EIR equipment. The presentation of the Check Digit both electronically and in printed form on the label and packaging is very important. Logistics (using bar-code reader) and EIR/CEIR administration cannot use the Check Digit unless it is printed outside of the packaging, and on the ME IMEI/Type Accreditation label. The check digit is not transmitted over the radio interface, nor is it stored in the EIR database at any point. Therefore, all references to the last three or six digits of an IMEI refer to the actual IMEI number, to which the check digit does not belong.
The check digit is validated in three steps:
  1. Starting from the right, double a digit every two digits (e.g., 7 → 14).
  2. Sum the digits (e.g., 14 → 1 + 4).
  3. Check if the sum is divisible by 10.
Conversely, one can calculate the IMEI by choosing the check digit that would give a sum divisible by 10. For the example IMEI 49015420323751?,
IMEI49015420323751 ?
Double every other4180258203431452 ?
Sum digits4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + ? = 52 + ?
To make the sum divisible by 10, we set ? = 8, so the IMEI is 490154203237518.

[edit]


No comments:

Post a Comment