VOS_UINT32  TAF_SPM_SendUsimEconfFdnReq(
    VOS_UINT16                          usClientId,
    struct MsgCB                       *pstMsg
)
{
    TAF_SPM_CALL_ECONF_INFO_STRU       *pstEconfInfoAddr    = VOS_NULL_PTR;
    MN_CALL_CALLED_NUM_STRU            *pstCalledNumber     = VOS_NULL_PTR;
    PS_PB_FDN_NUM_STRU                  stFdnInfo;
    VOS_UINT32                          ulRet;
    VOS_UINT8                           ucIndex;
    VOS_UINT32                          ulSendPara;

    PS_MEM_SET(&stFdnInfo, 0x0, sizeof(stFdnInfo));
    pstEconfInfoAddr    = TAF_SPM_GetCallEconfInfoAddr();

    pstEconfInfoAddr->ucSendSuccNum = 0;
    pstEconfInfoAddr->ucRcvNum      = 0;
    for (ucIndex = 0; ucIndex < pstEconfInfoAddr->ucCallNum; ucIndex++)
    {
        pstEconfInfoAddr->astEconfCheckInfo[ucIndex].ulCheckCnfFlag = VOS_FALSE;

        pstCalledNumber = &pstEconfInfoAddr->astEconfCheckInfo[ucIndex].stCalledNumber;

        stFdnInfo.ulNum1Len = pstCalledNumber->ucNumLen <= MN_CALL_MAX_BCD_NUM_LEN ?
                          pstCalledNumber->ucNumLen : MN_CALL_MAX_BCD_NUM_LEN;

        PS_MEM_CPY(stFdnInfo.aucNum1, pstCalledNumber->aucBcdNum, stFdnInfo.ulNum1Len);

        /* 增强型多方通话情况下,高16位为表示第几个电话号码,低16位为ClinedId */
        ulSendPara = TAF_SPM_ECONF_SET_SEND_PARA(ucIndex, usClientId);

        ulRet = NAS_PBAPI_FdnNumCheck(WUEPS_PID_TAF, 0, ulSendPara, &stFdnInfo);
        if (VOS_OK != ulRet)
        {
            /* 记录为失败 */
            TAF_SPM_RecordEconfCheckRslt(ucIndex, TAF_CS_CAUSE_FDN_CHECK_FAILURE);
        }
        else
        {
            pstEconfInfoAddr->ucSendSuccNum++;
        }
    }

    /* 全部发送失败,则退出 */
    if (0 == pstEconfInfoAddr->ucSendSuccNum)
    {
        /* 上报结果 */
        TAF_SPM_ReportEconfCheckRslt();
        return VOS_FALSE;
    }

    return VOS_TRUE;

}
VOS_VOID TAF_SPM_SetEconfPreRslt(
    TAF_CS_CAUSE_ENUM_UINT32            enCause
)
{
    TAF_SPM_CALL_ECONF_INFO_STRU       *pstEconfInfoAddr    = VOS_NULL_PTR;
    VOS_UINT32                          ulIndex;

    pstEconfInfoAddr    = TAF_SPM_GetCallEconfInfoAddr();

    for (ulIndex = 0; ulIndex < pstEconfInfoAddr->ucCallNum; ulIndex++)
    {
        TAF_SPM_RecordEconfCheckRslt(ulIndex, enCause);
    }

    return;
}
VOS_UINT32  TAF_SPM_SendUsimEconfEnvelopeReq(
    VOS_UINT16                          usClientId,
    struct MsgCB                       *pstMsg
)
{
    TAF_SPM_CALL_ECONF_INFO_STRU       *pstEconfInfoAddr    = VOS_NULL_PTR;
    MN_CALL_CS_DATA_CFG_INFO_STRU       stDataCfgInfo;
    MN_CALL_CALLED_NUM_STRU             stCalledNumber;
    VOS_UINT32                          ulRet;
    VOS_UINT8                           ucIndex;
    MN_CALL_TYPE_ENUM_U8                enCallType;
    MN_CALL_MODE_ENUM_U8                enCallMode;
    VOS_UINT32                          ulSendPara;

    PS_MEM_SET(&stCalledNumber, 0x0, sizeof(stCalledNumber));
    PS_MEM_SET(&stDataCfgInfo, 0x0, sizeof(MN_CALL_CS_DATA_CFG_INFO_STRU));
    pstEconfInfoAddr    = TAF_SPM_GetCallEconfInfoAddr();

    pstEconfInfoAddr->ucSendSuccNum = 0;
    pstEconfInfoAddr->ucRcvNum      = 0;
    enCallType                      = pstEconfInfoAddr->enCallType;
    enCallMode                      = pstEconfInfoAddr->enCallMode;
    PS_MEM_CPY(&stDataCfgInfo, &pstEconfInfoAddr->stDataCfg, sizeof(stDataCfgInfo));

    for (ucIndex = 0; ucIndex < pstEconfInfoAddr->ucCallNum; ucIndex++)
    {
        PS_MEM_CPY(&stCalledNumber,
               &pstEconfInfoAddr->astEconfCheckInfo[ucIndex].stCalledNumber,
               sizeof(MN_CALL_CALLED_NUM_STRU));

        pstEconfInfoAddr->astEconfCheckInfo[ucIndex].ulCheckCnfFlag = VOS_FALSE;

        /* 增强型多方通话情况下,高16位为表示第几个电话号码,低16位为ClinedId */
        ulSendPara = TAF_SPM_ECONF_SET_SEND_PARA(ucIndex, usClientId);

        ulRet = TAF_SPM_SendUsimCallEnvelopeReq(&stCalledNumber,
                                                &stDataCfgInfo,
                                                ulSendPara,
                                                enCallType,
                                                enCallMode);
        if (VOS_FALSE == ulRet)
        {
            /* 记录为失败 */
            TAF_SPM_RecordEconfCheckRslt(ucIndex, TAF_CS_CAUSE_CALL_CTRL_INVALID_PARAMETER);
        }
        else
        {
            pstEconfInfoAddr->ucSendSuccNum++;
        }
    }

    /* 全部发送失败,则退出 */
    if (0 == pstEconfInfoAddr->ucSendSuccNum)
    {
        /* 上报结果 */
        TAF_SPM_ReportEconfCheckRslt();
        return VOS_FALSE;
    }

    return VOS_TRUE;

}