背景技术
移动终端为了从网络获得正常的服务,首先需要找到网络并在网络中成功注册。例如在开机、掉网或SIM/USIM(Subscriber IdentificationModule/Universal Subscriber Identity Module,用户识别模块/通用用户识别模块)附着(Attach)时需要选择PLMN,在注册失败时也可能需要选择PLMN,并在选定的PLMN上的某个小区注册后,才可能得到服务。根据应用条件和环境的不同,需要不同的PLMN选择策略,优化找网或重新找网的过程,以减少用户等待获得服务的时间。
其中移动终端在开机时进行PLMN的选择和注册是一种最普遍的应用,如何在开机时让用户等待更短的时间,尽快地获得网络服务与找网策略相关。现有的开机找网策略是:开机后SIM进行准备;SIM模块准备完毕后向控制PLMN选择的模块(简称PLMN选择模块)发送SIM可用信息;PLMN选择模块读取SIM中与PLMN选择相关的数据;PLMN选择模块进行PLMN选择。
其中,在上述开机找网策略中,PLMN选择模块进行PLMN选择所采取的策略是:如果存在已注册的PLMN(Registered PLMN,简称RPLMN)或与RPLMN等价的PLMN列表,即ERPLMN(Equivalent RPLMN,等价RPLMN),则选择RPLMN或ERPLMN列表中的一项进行注册,如果不存在RPLMN或ERPLMN,按下面的优先顺序进行PLMN选择:
1)HPLMN(Home Public Land Mobile Network,归属公共陆地移动网);
2)按优先顺序排列的"User Controlled PLMN Selector with AccessTechnology"(“用户控制的包含接入技术的PLMN选择器”)列表;
3)按优先顺序排列的"Operator Controlled PLMN Selector with AccessTechnology"(“运营商控制的包含接入技术的PLMN选择器”)列表;
4)随机排列的高质量PLMN列表;其中高质量的PLMN在GSM(GlobalSystem for Mobile communication,全球移动通讯系统)、UMTS(UniversalMobile Telecommunications System,通用移动通信系统)的FDD(FrequencyDivision Duplex,频分双工)和TDD(Time Division Duplex,时分双工)中的定义分别为RSCP(Received Signal Code Power,接收信号码功率)高于-85db、-95db和-84db。
5)按信号质量排列的其他PLMN列表。
上述前三个列表:1)、2)、3)保存在SIM中。
从上面的过程可以看出,PLMN选择模块先从SIM卡读取数据再进行PLMN选择,如果RPLMN(或ERPLMN)存在,选择时首先选择的是RPLMN(或从ERPLMN列表中选择)。
考虑到移动终端用户日常关机的常见情况,如果上次注册成功,下次开机时选择RPLMN(或从ERPLMN列表中选择)并注册成功的可能性较大。因此,在这种情况下,开机时等待MM(Mobility Management,移动性管理)模块读取SIM卡中保存的PLMN列表数据对开机后第一次PLMN选择没有任何影响,而读取SIM卡中的数据将延长用户的等待时间。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提出一种缩短移动终端用户等待时间的选择和注册PLMN的方法。
为了解决上述问题,本发明提供一种移动终端选择和注册公共陆地移动网的方法,其特征在于,移动终端在PLMN注册完成后,将PLMN选择类型参数和PLMN注册参数保存在移动终端的存储器中;下次开机时,在移动终端的移动性管理模块接收到用户识别模块发送的包含可用状态指示的用户识别模块信息指示命令后,若所述PLMN选择类型参数为RPLMN或ERPLMN,则使用存储器中保存的PLMN注册参数进行PLMN的选择和注册;
所述PLMN注册参数为选择RPLMN和/或ERPLMN进行注册所需的参数;所述用户识别模块为SIM或USIM。
此外,移动终端在PLMN注册完成后,还将用户识别模块的标识信息保存在所述存储器中,并在接收到所述用户识别模块信息指示命令时,将该指示命令中包含的用户识别模块的标识信息与保存在所述存储器中的用户识别模块的标识信息进行对比,若两者相同且所述PLMN选择类型参数为RPLMN或ERPLMN,则使用所述存储器中保存的PLMN注册参数进行所述PLMN的选择和注册。
此外,移动终端在PLMN注册完成后,还将选择RPLMN和/或ERPLMN进行注册的注册结果保存在所述存储器中;在接收到所述用户识别模块信息指示命令时,若所述PLMN选择类型参数为RPLMN或ERPLMN,且所述注册结果为注册成功,则使用所述存储器中保存的PLMN注册参数进行所述PLMN的选择和注册。
此外,该方法包含如下步骤:
A:所述用户识别模块向所述移动性管理模块发送所述用户识别模块信息指示命令;
B:移动性管理模块发送包含所述PLMN注册参数的注册请求;
C:移动性管理模块接收到所述注册请求的应答消息后,根据应答消息更新所述PLMN注册参数。
此外,所述步骤B和C之间还包含如下步骤:
B1:所述移动性管理模块读取用户识别模块中的PLMN列表数据;
所述步骤C之后还包含如下步骤:
C1:若所述应答消息中包含注册失败的注册状态信息,移动性管理模块根据上述PLMN列表数据选择PLMN进行注册。
此外,所述步骤B和B1之间还包含如下步骤:所述移动性管理模块对自身状态进行判断,当处于有用户识别模块的空闲状态时执行所述步骤B1。
此外,所述用户识别模块的标识信息为国际移动用户识别码。
此外,所述PLMN注册参数包含:用户识别模块类型标识,国际移动用户识别码,接入技术变量,注册的服务类型指示,操作模式,是否提供准备定时器值的指示信息,准备定时器参数,注册的位置区指示,注册的路由区指示。
此外,当所述PLMN选择类型参数为RPLMN时,所述PLMN注册参数中还包含RPLMN标识;当所述PLMN选择类型参数为ERPLMN时,所述PLMN注册参数中还包含从保存在所述存储器中的与RPLMN等价的PLMN标识列表中选择出的任一PLMN标识。
此外,在所述步骤C中,若所述应答消息中包含与RPLMN等价的PLMN标识列表,则将该列表保存在所述存储器中。
由上可知,在初始化过程中,SIM获得了上述用户识别模块参数后即向MM模块发送SIM信息指示命令,MM接收到该命令后从移动终端中获取注册状态参数结构,根据该注册状态参数结构中的各参数判断上次注册的注册状态;若SIM未更换,且上次选择RPLMN或ERPLMN注册成功,则直接使用注册状态参数结构中保存的注册参数进行PLMN注册,节省了读取SIM卡中相关的PLMN列表数据的时间。
具体实施方式
本发明的基本思路是,在接收到SIM发送的SIM可用的指示信息后,根据移动终端存储器中保存的与选择和注册RPLMN或ERPLMN相关的数据进行PLMN选择和注册。
下面将结合附图和实施例对本发明进行详细描述。
图1是本发明实施例移动终端选择和注册PLMN的方法流程图。图1中的SIM是SIM/USIM卡和控制SIM/USIM卡的模块;MMA是MM层与SIM的适配接口,要读写保存在SIM中的数据时通过这个接口;MN(MobileNetwork,移动网络)模块是应用层与MM层之间交互与注册相关消息的适配层;PLMN选择功能在MM层实现。RR/RRC表示MM的下层,用于对MM层发送的注册消息进行相应处理。
如图1所示,该方法包含如下步骤:
101:移动终端开机后,SIM向MN模块发送SIM_INFO_IND(SIM信息指示)命令,通知MN模块SIM已准备完毕;
上述SIM_INFO_IND命令中包含表1所示的参数(用户识别模块基本参数):
参数 | 取值 | 类型 |
bSIM_AVAILABLE | True/False | Bool |
enSimType | SIM/USIM/NO_SIM | Enum |
IMSI | | long int[2] |
表1
其中,bSIM_AVAILABLE用于标识SIM/USIM是否可用/存在。该参数为布尔(Bool)类型,值为真(True)时表示SIM/USIM可用/存在,值为假(False)时表示SIM/USIM不可用/不存在。
enSimType为用户识别模块类型标识,用于标识SIM/USIM类型。该参数为枚举(Enum)类型,值为:SIM,USIM,NO_SIM。当enSimType的值为NO_SIM时,仅支持紧急呼叫业务,无需进行PLMN选择和注册。
IMSI(International Mobile Subscriber Identifier,国际移动用户识别码)为SIM标识信息,用于唯一标识SIM/USIM。IMSI采用协议规定的标准格式,最多不超过8个字节。
上述用户识别模块基本参数在移动终端开机,SIM初始化过程中获得。在这里我们获得上述3个参数后即可发送SIM_INFO_IND命令。上述用户识别模块基本参数的作用是通知MN/MM模块SIM处于可用状态,并包含SIM标识信息。
102:MN模块接收到上述SIM_INFO_IND命令后,将该命令转发给MM模块;
在另一实施例中,SIM也可以直接将SIM_INFO_IND命令发送给MM模块。
103:MM模块接收到SIM_INFO_IND命令后,从移动终端存储器中读取注册状态参数结构:RegRlt;
RegRlt可采用如下数据结构存储:
struct{
bool bRPLMN;
bool bERPLMN;
enum enUpdateStatus;
long int lRPLMN;
long int ptrERPLMN[];
long int IMSI[2];
unsigned char uchLAI[5];
unsigned char uchRAI[6];
struct strRegServiceType;
enum enRAT;
enum enOperatationMode;
bool bREADYPref;
enum uchREADYValue;
}RegRlt
其中,bRPLMN用于标识是否存在RPLMN,即上次注册是否选择了RPLMN。
bERPLMN用于标识是否存在ERPLMN列表,即上次注册是否选择了ERPLMN列表。
enUpdateStatus为更新状态参数,用于标识上次注册的更新状态,该参数为枚举类型,其值为U1/GU1,U2/GU2,U3/GU3;取值为U1/GUl时表示更新/注册成功。
1RPLMN为RPLMN标识。
ptrERPLMN为ERPLMN列表,列表中包含一个或多个与RPLMN等价的PLMN标识号。
IMSI为上次注册时SIM的国际移动用户识别码。
uchLAI为注册的位置区指示,用于标识注册的位置区。
uchRAI为注册的路由区指示,用于标识注册的路由区。
strRegServiceType为注册的服务类型指示,用于标识注册的服务类型。
strRegServiceType中包含:CS服务标识:bCsPref,PS服务标识:bPsPref,TMSI使用标识:bTMSI,P_TMSI使用标识:bP_TMSI。
bCsPref用于标识是否注册CS(Circuit Switched,电路交换)服务;
bPsPref用于标识是否注册PS(Packet Swithed,分组交换)服务;
bTMSI用于标识注册是否使用的是TMSI(Temperate Mobile SubscriberIndentity,临时移动用户识别码);
bP_TMSI用于标识是否使用的是P-TMSI(分组域临时移动用户识别码)。
enRAT为接入技术变量,用于标识接入技术,该参数为枚举类型,其值为:GSM、UTRAN、NO_AVAILABLE中的一个,分别表示接入技术为GSM,UTRAN(UMTS Terrestrial Radio Access Network,UMTS陆地无线接入网),或未提供RAT(Radio Access Technology,无线接入技术)信息。
enOperatationMode为操作模式,用于标识操作模式,该参数为枚举类型,其值为:MANUAL,AUTOMATIC,分别标识操作模式为人工和自动。
bREADYPref用于标识是否提供READY(准备)定时器,如果bREADYPref值为真,使用uchREADYValue值作为READY定时器值,如果bREADYPref值为假,使用缺省READY定时器值。
uchREADYValue为准备定时器参数,该参数为无符号字符型(unsingedchar)值,用法可参考GSM(Global Systemfor Mobile communication,全球移动通讯系统)04.08,10.5.7.3。
104:MM模块根据RegRlt中的参数判断自上次注册后,用户是否已更换SIM;若未更换,则执行下一步;否则按照现有技术的PLMN选择和注册流程进行PLMN选择和注册,即从SIM中读取保存的PLMN列表数据进行PLMN选择和注册,本方法结束;
MM模块将RegRlt中保存的IMSI与SIM_INFO_IND命令中包含的IMSI值进行对比;若两者相同,表示用户未更换SIM;否则,表示用户已更换SIM。
105:MM模块根据RegRlt中的参数判断上次注册是否选择RPLMN或ERPLMN并注册成功;若上次注册选择了RPLMN或ERPLMN并注册成功,则执行下一步;否则按照现有技术的PLMN选择和注册流程,从SIM中读取保存的PLMN列表数据进行PLMN选择和注册,本方法结束。
MM模块首先根据RegRlt中的enUpdateStatus判断上次注册是否成功;若enUpdateStatus为U1或GU1,则表明上次注册成功。
MM模块还需要根据RegRlt中的PLMN选择类型参数:bRPLMN和bERPLMN判断上次注册的PLMN选择类型;若bRPLMN值为真或bERPLMN值为真,则表明上次注册的PLMN选择类型为RPLMN,或ERPLMN。
当然,上述PLMN选择类型参数也可以用一个枚举变量来表示,例如定义enSelectedPLMN,其值为“RPLMN”或“ERPLMN”。
此外,也可以用bERPLMN的取值来区分上次注册的PLMN选择类型是RPLMN还是ERPLMN;即当enUpdateStatus为U1或GU1时,若bERPLMN为真,表明上次注册的PLMN选择类型为ERPLMN,否则为RPLMN。即使用布尔类型的变量bERPLMN作为PLMN选择类型参数。
106:MM根据RegRlt中的PLMN选择类型参数向RR/RRC(RadioResource/Radio Resource Control,无线资源/无线资源控制)模块发送注册请求进行注册;
上述注册请求中包含选择RPLMN或ERPLMN进行PLMN注册时所需的PLMN注册参数:enSimType,IMSI,enRAT,enOperatationMode,bREADYPref,uchREADYValue,uchLAI,uchRAI,strRegServiceType等。
根据PLMN选择类型参数的不同,上述注册请求分为RPLMN注册请求和ERPLMN注册请求两种;当注册请求是RPLMN注册请求时,上述PLMN注册参数中还包含:RPLMN标识:1RPLMN;当注册请求是ERPLMN注册请求时,上述PLMN注册参数中还包含:ptrERPLMN中的任意一项与RPLMN等价的PLMN标识,即MM可以从ptrERPLMN中任选一个PLMN标识,并将该标识包含在注册请求中进行注册。
107:判断MM的状态,当MM处于IDLE(空闲)状态,且不是IDLE.NOIMSI(无卡空闲)或GMM-DEREGISTERED.NO IMSI(通用无线分组业务未注册无卡空闲)状态时,通过MMA模块读取SIM中保存的PLMN列表数据,为后续或下次的PLMN选择注册进行准备。
也就是说,在注册请求发送后,当MM模块处于有SIM/USIM的空闲状态时,从SIM/USIM中读取PLMN列表数据。
108:MM接收到注册请求应答消息(ATTACH_ACCEPT或ATTACHREJECT)后,根据注册请求应答消息更新SIM中的注册数据和终端中保存的注册状态参数结构:RegRlt。
在更新RegRlt时,若注册请求应答消息中包含ERPLMN列表,则使用该列表更新RegRlt中的ptrERPLMN,并将PLMN选择类型参数中的bRPLMN设置为假,将bERPLMN设置为真;即将PLMN选择类型参数设置为使用ERPLMN列表进行PLMN注册。若注册请求应答消息中不包含ERPLMN列表,则将PLMN选择类型参数中的bRPLMN设置为真,将bERPLMN设置为假;即将PLMN选择类型参数设置为使用RPLMN进行PLMN注册。
若注册成功,则将RegRlt中的enUpdateStatus设置为U1或GU1;否则根据注册请求应答消息中包含的注册状态将enUpdateStatus设置为U2/GU2、U3/GU3。
同时,RegRlt中的其它参数也根据注册结果进行相应的更新。
109:若注册结果为注册失败,则使用SIM中保存的PLMN列表数据,按照正常的流程选择PLMN并进行注册。
由上可知,在初始化过程中,SIM获得了上述用户识别模块参数后即向MM模块发送SIM信息指示命令,MM接收到该命令后从移动终端中获取注册状态参数结构,根据该注册状态参数结构中的各参数判断上次注册的注册状态;若SIM未更换,且上次选择RPLMN或ERPLMN注册成功,则直接使用注册状态参数结构中保存的注册参数进行PLMN注册,节省了读取SIM卡中相关的PLMN列表数据的时间。
基于本发明的基本原理,上述实施例还可以进行多种变换,例如,即使上次选择RPLMN或ERPLMN未能注册成功,重新开机后,在读取SIM中的PLMN列表数据前,也可以尝试选择RPLMN或ERPLMN进行注册。