VOS_VOID  TAF_SSA_ReadSsRetryCmSrvRejCfgNvim( VOS_VOID )
{
    TAF_SSA_NVIM_RETRY_CM_SRV_REJ_CFG_STRU      stSsRetryCmSrvRejCfg;
    VOS_UINT32                                  ulLength;

    ulLength = 0;

    /* GCF测试,ss重发功能需要关闭 */
    if (VOS_TRUE == NAS_USIMMAPI_IsTestCard())
    {
        g_stSsaRetryCfgInfo.ucSsRetryCmSrvRejCauseNum = 0;
        return;
    }

    /* 先获取NV的长度 */
    (VOS_VOID)NV_GetLength(en_NV_Item_SS_RETRY_CM_SRV_REJ_CAUSE_CFG, &ulLength);

    PS_MEM_SET(&stSsRetryCmSrvRejCfg, 0x0, sizeof(TAF_SSA_NVIM_RETRY_CM_SRV_REJ_CFG_STRU));

    if (ulLength > sizeof(TAF_SSA_NVIM_RETRY_CM_SRV_REJ_CFG_STRU))
    {
        MN_WARN_LOG("TAF_SSA_ReadSsRetryCmSrvRejCfgNvim():WARNING: en_NV_Item_SS_RETRY_CM_SRV_REJ_CAUSE_CFG length Error");

        g_stSsaRetryCfgInfo.ucSsRetryCmSrvRejCauseNum = 0;
        return;
    }

    /* 如果NV读取失败,则设置为不开启 */
    if (NV_OK != NV_Read(en_NV_Item_SS_RETRY_CM_SRV_REJ_CAUSE_CFG,
                         &stSsRetryCmSrvRejCfg, ulLength))
    {
        MN_WARN_LOG("TAF_SSA_ReadSsRetryCmSrvRejCfgNvim():WARNING: en_NV_Item_SS_RETRY_CM_SRV_REJ_CAUSE_CFG Error");
        g_stSsaRetryCfgInfo.ucSsRetryCmSrvRejCauseNum = 0;
        return;
    }

    if (stSsRetryCmSrvRejCfg.ucSsRetryCmSrvRejCauseNum > TAF_NVIM_SS_RETRY_CAUSE_MAX_NUM)
    {
        stSsRetryCmSrvRejCfg.ucSsRetryCmSrvRejCauseNum = TAF_NVIM_SS_RETRY_CAUSE_MAX_NUM;
    }

    g_stSsaRetryCfgInfo.ucSsRetryCmSrvRejCauseNum = stSsRetryCmSrvRejCfg.ucSsRetryCmSrvRejCauseNum;
    PS_MEM_CPY(g_stSsaRetryCfgInfo.aucSsRetryCmSrvRejCause,
               stSsRetryCmSrvRejCfg.aucSsRetryCmSrvRejCause,
               stSsRetryCmSrvRejCfg.ucSsRetryCmSrvRejCauseNum);
    return;
}
VOS_VOID  MN_CALL_ReadCallRedialCfgNvim( VOS_VOID )
{
    MN_CALL_REDIAL_CFG_STRU             stCallRedialCfg;
    MN_CALL_CUSTOM_CFG_INFO_STRU       *pstCustomCfg = VOS_NULL_PTR;
    VOS_UINT32                          ulLength;


    ulLength = 0;

    pstCustomCfg = MN_CALL_GetCustomCfgInfo();

    /* GCF测试,短信重发功能需要关闭 */
    if (VOS_TRUE == NAS_USIMMAPI_IsTestCard())
    {
        pstCustomCfg->stCallRedialCfg.ucIsCallRedialSupportFlg = VOS_FALSE;
        pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod       = 0;
        pstCustomCfg->stCallRedialCfg.ulCallRedialInterval     = 0;

        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDIAL_PERIOD,
                                    pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod);

        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDAIL_INTERVAL,
                                    pstCustomCfg->stCallRedialCfg.ulCallRedialInterval);

        return;
    }

    /* 先获取NV的长度 */
    NV_GetLength(en_NV_Item_CS_Call_Redial_CFG, &ulLength);

    PS_MEM_SET(&stCallRedialCfg, 0x0, sizeof(MN_CALL_REDIAL_CFG_STRU));

    if (ulLength > sizeof(MN_CALL_REDIAL_CFG_STRU))
    {
        MN_WARN_LOG("MN_CALL_ReadCallRedialCfgNvim():WARNING: en_NV_Item_CS_Call_Redial_CFG length Error");
        pstCustomCfg->stCallRedialCfg.ucIsCallRedialSupportFlg = VOS_FALSE;
        pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod       = 0;
        pstCustomCfg->stCallRedialCfg.ulCallRedialInterval     = 0;
        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDIAL_PERIOD,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod);
        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDAIL_INTERVAL,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialInterval);
        return;
    }

    /* 如果NV读取失败,则设置为不激活 */
    if (NV_OK != NV_Read(en_NV_Item_CS_Call_Redial_CFG,
                         &stCallRedialCfg, sizeof(MN_CALL_REDIAL_CFG_STRU)))
    {
        MN_WARN_LOG("MN_CALL_ReadCallRedialCfgNvim():WARNING: en_NV_Item_CS_Call_Redial_CFG Error");
        pstCustomCfg->stCallRedialCfg.ucIsCallRedialSupportFlg = VOS_FALSE;
        pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod       = 0;
        pstCustomCfg->stCallRedialCfg.ulCallRedialInterval     = 0;
        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDIAL_PERIOD,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod);
        MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDAIL_INTERVAL,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialInterval);
        return;
    }

    if (MN_CALL_NV_ITEM_ACTIVE == stCallRedialCfg.ucIsCallRedialSupportFlg)
    {
        pstCustomCfg->stCallRedialCfg.ucIsCallRedialSupportFlg = VOS_TRUE;

        /* nv中存的时长为秒,需要转换为毫秒 */
        pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod
            = MN_CALL_ONE_THOUSAND_MILLISECOND * stCallRedialCfg.ulCallRedialPeriod;
        pstCustomCfg->stCallRedialCfg.ulCallRedialInterval
            = MN_CALL_ONE_THOUSAND_MILLISECOND * stCallRedialCfg.ulCallRedialInterval;
    }
    else
    {
        pstCustomCfg->stCallRedialCfg.ucIsCallRedialSupportFlg = VOS_FALSE;
        pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod       = 0;
        pstCustomCfg->stCallRedialCfg.ulCallRedialInterval     = 0;
    }

    MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDIAL_PERIOD,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialPeriod);
    MN_CALL_UpdateTimerPeriod(MN_CALL_TID_WAIT_CALL_REDAIL_INTERVAL,
                              pstCustomCfg->stCallRedialCfg.ulCallRedialInterval);

    return;
}
VOS_VOID  TAF_SSA_ReadSsRetryCfgNvim( VOS_VOID )
{
    TAF_SSA_NVIM_RETRY_CFG_STRU         stSsaRetryCfg;
    VOS_UINT32                          ulLength;

    ulLength = 0;

    /* GCF测试,ss重发功能需要关闭 */
    if (VOS_TRUE == NAS_USIMMAPI_IsTestCard())
    {
        TAF_SSA_SetSsRetrySupportFlg(VOS_FALSE);
        TAF_SSA_SetSsRetryIntervalTimerLen(0);
        TAF_SSA_SetSsRetryPeriodTimerLen(0);

        return;
    }

    /* 先获取NV的长度 */
    (VOS_VOID)NV_GetLength(en_NV_Item_SS_Retry_CFG, &ulLength);

    PS_MEM_SET(&stSsaRetryCfg, 0x0, sizeof(TAF_SSA_NVIM_RETRY_CFG_STRU));

    if (ulLength > sizeof(TAF_SSA_NVIM_RETRY_CFG_STRU))
    {
        MN_WARN_LOG("TAF_SS_ReadSsaRetryCfgNvim():WARNING: en_NV_Item_SS_Retry_CFG length Error");

        TAF_SSA_SetSsRetrySupportFlg(VOS_FALSE);
        TAF_SSA_SetSsRetryIntervalTimerLen(0);
        TAF_SSA_SetSsRetryPeriodTimerLen(0);

        return;
    }

    /* 如果NV读取失败,则设置为不开启 */
    if (NV_OK != NV_Read(en_NV_Item_SS_Retry_CFG,
                         &stSsaRetryCfg, ulLength))
    {
        MN_WARN_LOG("TAF_SS_ReadSsaRetryCfgNvim():WARNING: en_NV_Item_SS_Retry_CFG Error");
        TAF_SSA_SetSsRetrySupportFlg(VOS_FALSE);
        TAF_SSA_SetSsRetryIntervalTimerLen(0);
        TAF_SSA_SetSsRetryPeriodTimerLen(0);

        return;
    }

    if (VOS_TRUE == stSsaRetryCfg.ucIsSsRetrySupportFlg)
    {
        TAF_SSA_SetSsRetrySupportFlg(VOS_TRUE);

        /* nv中存的时长为秒,需要转换为毫秒 */
        TAF_SSA_SetSsRetryPeriodTimerLen(TAF_SSA_ONE_THOUSAND_MILLISECOND * stSsaRetryCfg.ulSsRetryPeriod);
        TAF_SSA_SetSsRetryIntervalTimerLen(TAF_SSA_ONE_THOUSAND_MILLISECOND * stSsaRetryCfg.ulSsRetryInterval);
    }
    else
    {
        TAF_SSA_SetSsRetrySupportFlg(VOS_FALSE);
        TAF_SSA_SetSsRetryIntervalTimerLen(0);
        TAF_SSA_SetSsRetryPeriodTimerLen(0);

    }

    return;
}