我之前认为手机号码与SIM卡是一一对应的,后来想想不对,因为有换卡不换号的情况啊,所以SIM卡应该只是一个电话号码的储存介质,而与SIM卡一一对应的是另一个编码——IMSI(国际移动签署这标识)。以下为获取IMSI的命令:
AT+CIMI
获得IMSI。这命令用来读取或者识别SIM卡的IMSI。在读取IMSI之前应该先输入PIN(如果需要PIN的话)。
AT+CCID
获得SIM卡的标识。这个命令使模块读取SIM卡上的EF-CCID文件。
不过个人认为,相对于长长的IMSI来说,我们还是习惯通过手机号来区别我们的设备,那怎么实现?————将手机号存到SIM卡的电话本中,用的时候再从电话本中读取号码即可。
使用AT命令读取本机号码的步骤
在使用AT+CNUM命令读取SIM卡的本机号码时,会发现有的SIM卡的本机号码能读出,而有的SIM卡的本机号码不能读出,不能读出的原因是SIM卡的本机号码未写入电话本存储区,导致无法读取本机号码。使用AT命令将本机号码存入电话本存储区的步骤如下:
1. 先确认SIM卡的本机号码;
2. 使用AT+CPBS=“ON”命令将电话存贮位置选择为本机号码列表;
3. 使用AT+CPBW=1,“本机号码”,回车后成功则返回OK;
4. 最后使用AT+CNUM命令就能读取本机号码了。
还有一种简单方法可以设置本机手机号码,很多手机都支持设置本机手机号码的功能, 通常在查看本机手机号码功能区域可以找到。将sim卡放入该手机,设置好了之后拿出来,就可以用AT+CNUM指令读取了。
//下面为补充知识----------------------------------------------------------
MSISDN
移动台国际ISDN号码,即手机号
Mobile Station international ISDN number
MSISDN=CC+NDC+SN
CC=国家码 (中国为86)
NDC=国内目的码
SN=用户号码
国内目的地码(NDC)包括接入号(MAC)N1N2N3和HLR的识别号H1H2H3H4。
接入号用于识别网络,我们目前采用:139、138……
HLR识别号表示用户归属的HLR,也表示移动业务本地网号。
IMSI
国际移动用户识别码
International Mobile Subscriber Identity
IMSI=MCC+MNC+MSIN
MCC:Mobile Country Code,移动国家码,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,共2位,移动GSM:00、02,移动TD:07,联通GSM:01,电信:03;
MSIN:Mobile Subscriber IdentificationNumber 移动用户识别号码,共10位,
CC+M0M1M2M3+ABCD,CC由不同运营商分配,其中的M0M1M2M3和MSISDN号码中的H0H1H2H3(HLR)可存在对应关系,ABCD四位为自由分配
MSIN与MSISDN区别
MSIN:Mobile Subscriber Identification Number, 移动用户识别号码,这加上MNC+NCC就是用户全球唯一的标志IMSI,这个MSIN号是运营商在制卡中心制卡时已经唯一写入到卡中了,与KI是一一对应的。
而MSISDN:Mobile Subscriber International ISDN Number,这是后来赋予该卡的用户号码,其实针对该MSIN的卡,可以赋予不同的用户号码即MSISDN。所以,MSIN是唯一的,MSISDN不是唯一的,只是目前在国内使用时,对于用户的角度来讲基本一致。所以当用户遗失手机需要补卡的时候,相当于SIM卡是换了一张,即用户的MSIN已经更换了,但是号码MSISDN还是原来的号码。
------http://hi.baidu.com/zboyzb/blog/item/b7769cd46eb4a42b960a165e.html
转自:http://www.multisilicon.com/blog/a21234642.html