 This topic has 6 replies, 1 voice, and was last updated 16 years, 4 months ago by Rons.

AuthorPosts

RonsGuest
hi all
when you check subscriber IMEI number in nokia switch with command MVP, it is not showing the correct number? what could be the reason for that?
The IMEI from switch differs from actual IMEI of particular mobile in last digit.
waiting for reply
thanksMisaGuestHi,
This is not a problem. In my Ericsson switch the situation is the same. The last digit is always 0. This is because the last digit (also called Luhn check digit) is not used to identify the mobile, it is used to verify if the IMEI is valid (correct) or not. You can calculate the last digit yourself, based on first 14 digits.
Rgds
MisaRonsGuestThanks misa for your ans.
can you tell me how we can find the last digit with first 14 digits? my mail id is suthar.kartik@adacellworks.com
thanks again
kartikMisaGuestLet say the IMEI is presented as D14D13D12…D1D0 (15 digits), where D0 is the check digit.
The last digit D0 is calculated as follow:
1. Double the values of the odd labelled digits D1, D3, D5 … D13.
2. Add together the individual digits of all the seven numbers obtained in step 1, and then add this sum to the sum of all the even labelled digits D2, D4, D6 … D14.
3. If the result obtained in step 2 ends with 0, then D0 = 0. If it does not end in 0, then D0 equals to the number subtracted from the next higher number which does end in 0.
If you familiar with VB, I can give you a procedure written in VB for calculation of this last digit.
RonsGuestThanks very very much Misa.
I am familiar with VB. so if you send it, it will be very helpful for me.
thanks very much again.
rons
MisaGuestHere is the VB function:
Function CheckDigit(sImei As String) As String
Dim iDigit(0 To 14) As Integer, i As Integer, iCD As Integer, sCD As String
For i = 1 To 14
iDigit(i) = CInt(Mid(sImei, 15 – i, 1))
If i Mod 2 = 1 Then
iDigit(i) = 2 * iDigit(i)
If iDigit(i) > 9 Then iDigit(i) = iDigit(i) – 9
End If
Next
For i = 1 To 14
iCD = iCD + iDigit(i)
Next
If iCD Mod 10 = 0 Then
sCD = “0”
Else
sCD = CStr(((iCD \ 10) + 1) * 10 – iCD)
End If
CheckDigit = sCD
End FunctionRonsGuestThanks Very Much Misa.
Rons 
AuthorPosts