VOS_UINT32 TAF_SPM_IsNeedCheckFdn() { TAF_SPM_SERVICE_CTRL_CFG_INFO_STRU *pstServiceCtrlCfgInfo = VOS_NULL_PTR; VOS_UINT32 ulFdnStatus; pstServiceCtrlCfgInfo = TAF_SPM_GetServiceCtrlCfgInfoAddr(); /* ME没有启用FDN检查功能,直接返回业务检查通过 */ if (TAF_FDN_CHECK_FEATURE_ON != pstServiceCtrlCfgInfo->ulMeStatus) { return VOS_FALSE; } /* 根据(U)SIM卡的FDN状态确定是否发起FDN检查 0 去使能: 不做FDN检查 1 使能: 做FDN检查 */ NAS_USIMMAPI_FdnQuery(&ulFdnStatus); if (VOS_TRUE == ulFdnStatus) { return VOS_TRUE; } return VOS_FALSE; }
VOS_VOID TAF_MMA_UpdateCallMode( VOS_VOID ) { VOS_UINT32 ulFdnExistFlag; VOS_UINT32 ulSdnExistFlag; VOS_UINT32 ulEcallDataExistFlag; VOS_UINT32 ulUsimFdnStatus; VOS_UINT32 ulCsimFdnStatus; if (TAF_SDC_SIM_TYPE_USIM == TAF_SDC_GetSimType()) { NAS_USIMMAPI_FdnQuery(&ulUsimFdnStatus, &ulCsimFdnStatus); ulEcallDataExistFlag = NAS_USIMMAPI_IsServiceAvailable(NAS_USIM_SVR_ECALL_DATA); ulFdnExistFlag = NAS_USIMMAPI_IsServiceAvailable(NAS_USIM_SVR_FDN); /* 5.3.40.1 eCall Only support Requirement: Service n° 89 and Service n° 2 are "available" and FDN service is enabled in EFEST. */ if ((VOS_TRUE == ulUsimFdnStatus) && (PS_USIM_SERVICE_AVAILIABLE == ulEcallDataExistFlag) && (PS_USIM_SERVICE_AVAILIABLE == ulFdnExistFlag)) { TAF_SDC_SetCurCallMode(TAF_SDC_ECALL_ONLY); return; } ulSdnExistFlag = NAS_USIMMAPI_IsServiceAvailable(NAS_USIM_SVR_SDN); /* 5.3.40.2 eCall and Normal call support Requirement: Service n° 89 and Service n° 4 are "available". */ if ((PS_USIM_SERVICE_AVAILIABLE == ulEcallDataExistFlag) && (PS_USIM_SERVICE_AVAILIABLE == ulSdnExistFlag)) { TAF_SDC_SetCurCallMode(TAF_SDC_ECALL_AND_NORMAL_CALL); return; } } return; }