VOS_VOID NAS_EMM_TAU_TAUReqRejectCasue12() { NAS_MM_TA_STRU stTa; /* 获取当前TA */ NAS_EMM_GetCurrentTa(&stTa); /* 打印进入该函数, INFO_LEVEL */ NAS_EMM_TAU_LOG_INFO( "Nas_Emm_Tau_TAUReqRejectCasue12 is entered."); /* 删除GUTI后会自动保存EPS_LOC,所以需要先设置STATUS */ /*设置EU3 ROAMING NOT ALLOWED,并设置到NVIM中*/ NAS_LMM_GetMmAuxFsmAddr()->ucEmmUpStat = EMM_US_ROAMING_NOT_ALLOWED_EU3; /*删除GUTI,KSIasme,TAI list,GUTI*/ NAS_EMM_ClearRegInfo(NAS_EMM_NOT_DELETE_RPLMN); /*store the current TAI in the list of "forbidden tracking areas for regional provision of service"*/ NAS_EMM_AddForbTa(&stTa,NAS_LMM_GetEmmInfoNetInfoForbTaForRposAddr()); /* 增加REJ cause 12标记,用于向MMC上报有区域限制的限制服务状态 2011-07-27*/ NAS_LMM_SetNasRejCause12Flag(NAS_LMM_REJ_CAUSE_IS_12); /*重置TAU计数器*/ NAS_EMM_TAU_SaveEmmTAUAttemptCnt(NAS_EMM_TAU_ATTEMPT_CNT_ZERO); /* lihong00150010 emergency tau&service begin */ if (NAS_EMM_TAU_START_CAUSE_ESM_EMC_PDN_REQ == NAS_EMM_TAU_GetEmmTAUStartCause()) { /* 记录ATTACH触发原因值 */ NAS_EMM_GLO_AD_GetAttCau() = EMM_ATTACH_CAUSE_ESM_ATTACH_FOR_INIT_EMC_BERER; NAS_EMM_TAU_SendEsmStatusInd(EMM_ESM_ATTACH_STATUS_EMC_ATTACHING); } else { NAS_EMM_TAU_SendEsmStatusInd(EMM_ESM_ATTACH_STATUS_DETACHED); } /* lihong00150010 emergency tau&service end */ /*转换EMM状态机MS_DEREG+SS_DEREG_LIMITED_SERVICE*/ NAS_EMM_TAUSER_FSMTranState(EMM_MS_DEREG, EMM_SS_DEREG_LIMITED_SERVICE, TI_NAS_EMM_STATE_NO_TIMER); /****检查冲突标志并做相应的处理********************************************/ /* 上报TAU结果在冲突中处理 */ NAS_EMM_TAU_SpecialRelCauseCollisionProc(NAS_EMM_MmcSendTauActionResultIndRej, (VOS_VOID*)NAS_EMM_NULL_PTR); NAS_EMM_WaitNetworkRelInd(); return; }
VOS_VOID NAS_EMM_ProcRejCauseVal12() { NAS_MM_TA_STRU stTa; /* 获取当前TA */ NAS_EMM_GetCurrentTa(&stTa); NAS_EMM_AttDataUpdate(NAS_EMM_NOT_DELETE_RPLMN); NAS_EMM_AddForbTa(&stTa,NAS_LMM_GetEmmInfoNetInfoForbTaForRposAddr()); /* 增加REJ cause 12标记,用于向MMC上报有区域限制的限制服务状态 2011-07-27*/ NAS_LMM_SetNasRejCause12Flag(NAS_LMM_REJ_CAUSE_IS_12); if (EMM_ATTACH_CAUSE_ESM_ATTACH_FOR_INIT_EMC_BERER == NAS_EMM_GLO_AD_GetAttCau()) { /* 通知ESM紧接着EMM还要做紧急注册,ESM不需要清除动态表中的紧急PDN建立记录 */ NAS_EMM_AttSendEsmResult(EMM_ESM_ATTACH_STATUS_EMC_ATTACHING); } else { /*向ESM发送ATTACH结果*/ NAS_EMM_AttSendEsmResult(EMM_ESM_ATTACH_STATUS_DETACHED); } /*修改状态:进入主状态DEREG子状态DEREG_LIMITED_SERVICE*/ NAS_EMM_AdStateConvert( EMM_MS_DEREG, EMM_SS_DEREG_LIMITED_SERVICE, TI_NAS_EMM_STATE_NO_TIMER); /* 向MMC发送结果 */ NAS_EMM_AppSendAttRej(); NAS_EMM_WaitNetworkRelInd(); if (EMM_ATTACH_CAUSE_ESM_EMC_ATTACH == NAS_EMM_GLO_AD_GetAttCau()) { /* 通知IMSA再尝试CS域 */ } return; }