VOS_VOID TAF_CALL_SetAtaReportOkAsyncFlag(
    VOS_UINT8                           ucAtaReportOkAsyncFlag
)
{
    MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.ucAtaReportOkAsyncFlag
                           = ucAtaReportOkAsyncFlag;
    return;
}
VOS_VOID MN_CALL_InitCtx(VOS_VOID)
{
    PS_MEM_SET(MN_CALL_GetCtx(), 0x0, sizeof(g_stMnCallCtx));

    #if (FEATURE_ON == FEATURE_IMS)    
    TAF_CALL_SetSrvccState(MN_CALL_SRVCC_STATE_BUTT);
    #endif
}
VOS_VOID MN_CALL_InitCtx(VOS_VOID)
{
    PS_MEM_SET(MN_CALL_GetCtx(), 0x0, sizeof(g_stMnCallCtx));

    #if (FEATURE_ON == FEATURE_IMS)
    TAF_CALL_SetSrvccState(MN_CALL_SRVCC_STATE_BUTT);

    TAF_CALL_SetCcwaiMode(VOS_TRUE);
    TAF_CALL_SetCcwaCtrlMode(TAF_CALL_CCWA_CTRL_BY_NW);
    TAF_WARNING_LOG2(WUEPS_PID_TAF, "MN_CALL_InitCtx ", TAF_CALL_CCWA_CTRL_BY_NW, VOS_TRUE);
#endif

#if (FEATURE_ON == FEATURE_ECALL)
    TAF_CALL_SetEcallMsdTransStatus(VC_CALL_ECALL_TRANS_STATUS_BUTT);
#endif
}
VOS_VOID TAF_CALL_SetInternalHangUpFlag(VOS_UINT8 ucInternalHangUpFlag)
{
    MN_CALL_GetCtx()->stEcallCtx.ucInternalHangUpFlag = ucInternalHangUpFlag;
}
VOS_VOID TAF_CALL_SetSrvccState(MN_CALL_SRVCC_STATE_ENUM_UINT8 enSrvccState)
{
    MN_CALL_GetCtx()->enSrvccState = enSrvccState;
}
MN_CALL_SRVCC_STATE_ENUM_UINT8 TAF_CALL_GetSrvccState(VOS_VOID)
{
    return (MN_CALL_GetCtx()->enSrvccState);
}
VOS_UINT32 TAF_CALL_GetEcallPeriodRemainTimerLen(VOS_VOID)
{
    return (MN_CALL_GetCtx()->stEcallCtx.ulEcallPeriodTimerLen);
}
MN_CALL_MSG_BUFF_STRU*  MN_CALL_GetBufferedMsg( VOS_VOID )
{
    return &(MN_CALL_GetCtx()->stMnCallBufferedMsg);
}
MN_CALL_CUSTOM_CFG_INFO_STRU* MN_CALL_GetCustomCfgInfo( VOS_VOID )
{
    return &(MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg);
}
VOS_UINT32 MN_CALL_GetCallRedialSupportFlg(VOS_VOID)
{
    return (MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.stCallRedialCfg.ucIsCallRedialSupportFlg);
}
VOS_VOID TAF_CALL_SetMultiSimCallStatusControl(
    VOS_UINT8                           ucMultiSimCallStatus
)
{
    MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.ucTafMultiSimCallStatusControl = ucMultiSimCallStatus;
}
VOS_VOID TAF_CALL_SetVpCfgState(
    MN_CALL_VP_NV_CFG_STATE_ENUM_U8     enVpStateStatus
)
{
    MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.enVpNvCfgState = enVpStateStatus;
}
VOS_VOID TAF_CALL_SetWaitingMtEcallFlag(VOS_UINT8 ucWaitMtEcallFlag)
{
    MN_CALL_GetCtx()->stEcallCtx.ucWaitMtEcallFlag = ucWaitMtEcallFlag;
}
VOS_UINT8 TAF_CALL_GetWaitingMtEcallFlag(VOS_VOID)
{
    return (MN_CALL_GetCtx()->stEcallCtx.ucWaitMtEcallFlag);
}
VOS_VOID TAF_CALL_SetEcallMsdTransStatus(VC_CALL_ECALL_TRANS_STATUS_ENUM_UINT8 enEcallTransStatus)
{
    MN_CALL_GetCtx()->stEcallCtx.enEcallTransStatus = enEcallTransStatus;
}
VC_CALL_ECALL_TRANS_STATUS_ENUM_UINT8 TAF_CALL_GetEcallMsdTransStatus(VOS_VOID)
{
    return (MN_CALL_GetCtx()->stEcallCtx.enEcallTransStatus);
}
VOS_UINT8 TAF_CALL_GetAtaReportOkAsyncFlag(VOS_VOID)
{
    return MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.ucAtaReportOkAsyncFlag;
}
VOS_UINT8 TAF_CALL_GetMultiSimCallStatusControl( VOS_VOID  )
{
    return MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.ucTafMultiSimCallStatusControl;
}
VOS_UINT8 TAF_CALL_GetInternalHangUpFlag(VOS_VOID)
{
    return (MN_CALL_GetCtx()->stEcallCtx.ucInternalHangUpFlag);
}
MN_CALL_VP_NV_CFG_STATE_ENUM_U8 TAF_CALL_GetVpCfgState( VOS_VOID  )
{
    return MN_CALL_GetCtx()->stMsCfgInfo.stCustomCfg.enVpNvCfgState;
}
VOS_VOID TAF_CALL_ResetEcallPeriodRemainTimerLen(VOS_VOID)
{
    MN_CALL_GetCtx()->stEcallCtx.ulEcallPeriodTimerLen = \
        TAF_CALL_GetTimerLen(TAF_CALL_TID_WAIT_ECALL_REDIAL_PERIOD);
}
TAF_CALL_APP_CFG_INFO_STRU* MN_CALL_GetAppCfgInfo(VOS_VOID)
{
    return &(MN_CALL_GetCtx()->stMsCfgInfo.stAppCfg);
}
VOS_VOID TAF_CALL_UpdateEcallPeriodRemainTimerLen(VOS_UINT32 ulEcallPeriodTimerLen)
{
    MN_CALL_GetCtx()->stEcallCtx.ulEcallPeriodTimerLen = ulEcallPeriodTimerLen;
}