VOS_UINT32 NAS_EMM_IsSmsNotRetransmitConditionSatisfied ( LMM_SMS_ERR_CAUSE_ENUM_UINT32 *penErrCause ) { NAS_LMM_UE_OPERATION_MODE_ENUM_UINT32 enUeOperationMode = NAS_LMM_UE_MODE_BUTT; enUeOperationMode = NAS_LMM_GetEmmInfoUeOperationMode(); /* PS ONLY */ if ( (NAS_LMM_UE_PS_MODE_1 == enUeOperationMode) ||(NAS_LMM_UE_PS_MODE_2 == enUeOperationMode) ) { *penErrCause = LMM_SMS_ERR_CAUSE_UE_MODE_PS_ONLY; return NAS_EMM_YES; } /* #2,CS域卡无效 */ if ( NAS_EMM_REJ_YES == NAS_LMM_GetEmmInfoRejCause2Flag() ) { *penErrCause = LMM_SMS_ERR_CAUSE_USIM_CS_INVALID; return NAS_EMM_YES; } /* #18,CS域不可用 */ if ( NAS_EMM_REJ_YES == NAS_EMMC_GetRejCause18Flag() ) { *penErrCause = LMM_SMS_ERR_CAUSE_CS_SER_NOT_AVAILABLE; return NAS_EMM_YES; } /*PC REPLAY MODIFY BY LEILI BEGIN*/ /* CS域不允许注册 */ if ( NAS_EMM_AUTO_ATTACH_NOT_ALLOW == NAS_EMM_GetCsAttachAllowFlg() ) { NAS_EMM_PUBU_LOG_NORM("NAS_EMM_IsSmsNotRetransmitConditionSatisfied: Cs attach not allowed!"); *penErrCause = LMM_SMS_ERR_CAUSE_CS_ATTACH_NOT_ALLOWED; return NAS_EMM_YES; } /* PS域不允许注册 */ if ( NAS_EMM_AUTO_ATTACH_NOT_ALLOW == NAS_EMM_GetPsAttachAllowFlg() ) { NAS_EMM_PUBU_LOG_NORM("NAS_EMM_IsSmsNotRetransmitConditionSatisfied: Ps attach not allowed!"); *penErrCause = LMM_SMS_ERR_CAUSE_PS_ATTACH_NOT_ALLOWED; return NAS_EMM_YES; } /*PC REPLAY MODIFY BY LEILI END*/ return NAS_EMM_NO; }
VOS_UINT32 NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq( 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_MsRegSsWaitAccessGrantIndMsgAppAttachReq is entered"); /*检查状态是否匹配,若不匹配,退出*/ if (NAS_EMM_AD_CHK_STAT_INVALID(EMM_MS_REG,EMM_SS_REG_WAIT_ACCESS_GRANT_IND)) { /*打印出错信息*/ NAS_EMM_ATTACH_LOG_WARN("NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq: STATE ERR!"); return NAS_LMM_MSG_DISCARD; } /*消息内容检查,若有错,打印并退出*/ if (NAS_EMM_PARA_INVALID == NAS_EMM_AppAttachReqMsgChk(pRcvEmmMsg)) { NAS_EMM_ATTACH_LOG_ERR("NAS_EMM_MsRegSsWaitAccessGrantIndMsgAppAttachReq: 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; } /*操作模式是PS*/ if(NAS_EMM_NO == NAS_EMM_IsCsPsUeMode()) { NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_FAILURE); return NAS_LMM_MSG_HANDLED; } /*注册域为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; } /*注册域为PS*/ if (NAS_LMM_REG_DOMAIN_PS == NAS_LMM_GetEmmInfoRegDomain()) { if( (NAS_EMM_REJ_YES == NAS_LMM_GetEmmInfoRejCause2Flag()) ||(NAS_EMM_REJ_YES == NAS_EMMC_GetRejCause18Flag())) { NAS_EMM_MmcSendAttCnf(MMC_LMM_ATT_RSLT_FAILURE); return NAS_LMM_MSG_HANDLED; } /*联合TAU*/ /*信令被BAR不能发起,其它可以发起,内部消息处理中会判断,此处不再判断*/ NAS_EMM_SendIntraTauReq(ID_APP_MM_MSG_TYPE_BUTT,NAS_LMM_INTRA_TAU_TYPE_IMSI_ATTACH); return NAS_LMM_MSG_HANDLED; } return NAS_LMM_MSG_HANDLED; }