VOS_VOID NAS_EMM_SER_AbnormalOver(VOS_VOID) { NAS_EMM_SER_LOG_INFO( "NAS_EMM_SER_AbnormalOver is entered."); /*停止T3417定时器*/ NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_SERVICE_T3417); /*停止T3440定时器*/ NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_T3440); /*停止T3417ext定时器*/ NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_SERVICE_T3417_EXT); /*如果SR流程是由于SMS触发,需要回复SMS建链失败,并且清除SR的发起原因,*/ if(NAS_EMM_SER_START_CAUSE_SMS_EST_REQ == NAS_EMM_SER_GetSerStartCause()) { /* SER异常的原因值上报暂时报LMM_SMS_ERR_CAUSE_OTHERS, 以后可能要根据相应的原因值进行具体细分处理,上报准确的原因值 此处作为遗留问题 */ NAS_LMM_SndLmmSmsErrInd(LMM_SMS_ERR_CAUSE_OTHERS); NAS_EMM_SER_SaveEmmSERStartCause(NAS_EMM_SER_START_CAUSE_BUTT); } if (VOS_TRUE != NAS_EMM_SER_IsCsfbProcedure()) { /*Inform RABM that SER fail*/ NAS_EMM_SER_SendRabmReestInd(EMM_ERABM_REEST_STATE_FAIL); } /*清空ESM_DATA缓存*/ NAS_EMM_SerClearEsmDataBuf(); return; }
VOS_UINT32 NAS_EMM_MsSerInitSsWtCnSerCnfMsgAppAttachReq( VOS_UINT32 ulMsgId, VOS_VOID *pMsgStru ) { MMC_LMM_ATTACH_REQ_STRU *pRcvEmmMsg; (VOS_VOID)ulMsgId; pRcvEmmMsg = (MMC_LMM_ATTACH_REQ_STRU *)pMsgStru; /*打印进入该函数*/ NAS_EMM_ATTACH_LOG_NORM("NAS_EMM_MsSerInitSsWtCnSerCnfMsgAppAttachReq is entered"); /*检查状态是否匹配,若不匹配,退出*/ if (NAS_EMM_AD_CHK_STAT_INVALID(EMM_MS_SER_INIT,EMM_SS_SER_WAIT_CN_SER_CNF)) { /*打印出错信息*/ NAS_EMM_ATTACH_LOG_WARN("NAS_EMM_MsSerInitSsWtCnSerCnfMsgAppAttachReq: STATE ERR!"); return NAS_LMM_MSG_DISCARD; } /*消息内容检查,若有错,打印并退出*/ if (NAS_EMM_PARA_INVALID == NAS_EMM_AppAttachReqMsgChk(pRcvEmmMsg)) { NAS_EMM_ATTACH_LOG_ERR("NAS_EMM_MsSerInitSsWtCnSerCnfMsgAppAttachReq: MMC_LMM_ATTACH_REQ_STRU PARA ERR!"); return NAS_LMM_ERR_CODE_PARA_INVALID; } /*保存APP参数*/ NAS_EMM_SaveAppMsgPara(pRcvEmmMsg->ulMsgId,pRcvEmmMsg->ulOpId); if(MMC_LMM_ATT_REQ_TYPE_PS_ONLY == pRcvEmmMsg->ulAttachType) { /*向MMC发送ATTACH成功*/ NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_SUCCESS); return NAS_LMM_MSG_HANDLED; } /*请求类型是IMSI或者CS_ps,操作模式是PS*/ if(NAS_EMM_NO == NAS_EMM_IsCsPsUeMode()) { NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_FAILURE); return NAS_LMM_MSG_HANDLED; } /*请求类型是IMSI或者CS_ps操作模式是CS_PS,注册域为CS_PS*/ if (NAS_LMM_REG_DOMAIN_CS_PS == NAS_LMM_GetEmmInfoRegDomain()) { NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_SUCCESS); return NAS_LMM_MSG_HANDLED; } /*请求类型是IMSI或者CS_ps操作模式是CS_PS,注册域为PS*/ if(NAS_LMM_REG_DOMAIN_PS == NAS_LMM_GetEmmInfoRegDomain()) { /* 发起TAU,打断SERVICE */ /*停止T3417定时器*/ NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_SERVICE_T3417); /*Inform RABM that SER fail*/ NAS_EMM_SER_SendRabmReestInd(EMM_ERABM_REEST_STATE_FAIL); /*结束SER流程*/ /* NAS_EMM_SER_AbnormalOver();*/ /*设置流程冲突标志位*/ NAS_EMM_TAU_SaveEmmCollisionCtrl(NAS_EMM_COLLISION_SERVICE); /*NAS_EMM_TAU_SaveEmmTAUStartCause(NAS_EMM_TAU_START_CAUSE_IMSI_ATTACH);*/ NAS_EMM_TAU_SaveEmmTAUStartCause(NAS_EMM_TAU_START_CAUSE_OTHERS); /*启动TAU Procedure*/ NAS_EMM_TAU_StartTAUREQ(); return NAS_LMM_MSG_HANDLED; } return NAS_LMM_MSG_HANDLED; }