예제 #1
0
/*****************************************************************************
 Function Name  : IMSA_TafMsgDistr()
 Description    : TAF消息分发函数
                  TAF这个PID下有多个模块MMA/SPM/APS,需要实现对这个模块消息的分发
 Input          : VOS_VOID *pRcvMsg
 Output         : VOS_VOID
 Return Value   : VOS_VOID

 History        :
      1.sunbing 49683      2013-06-20  Draft Enact
*****************************************************************************/
VOS_VOID IMSA_TafMsgDistr(const VOS_VOID *pRcvMsg )
{
    /* 定义消息头指针*/
    PS_MSG_HEADER_STRU          *pHeader = VOS_NULL_PTR;
    IMSA_CONTROL_MANAGER_STRU   *pstControlManager;

    /* 获取消息头指针*/
    pHeader = (PS_MSG_HEADER_STRU *) pRcvMsg;
    pstControlManager = IMSA_GetControlManagerAddress();

    /* 关机过程中收到TAF发送的消息,直接丢弃 */
    if(pstControlManager->enImsaStatus == IMSA_STATUS_STOPING)
    {
        IMSA_WARN_LOG("IMSA_TafMsgDistr: Status is Stoping!");
        return;
    }

    /*APS消息*/
    if(MN_CALLBACK_PS_CALL == pHeader->ulMsgName)
    {
        IMSA_CONN_ProcTafPsEvt((TAF_PS_EVT_STRU*)pRcvMsg);

        return ;
    }

    /*CALL 消息*/
    if((pHeader->ulMsgName >= ID_CALL_IMSA_SRVCC_STATUS_NOTIFY)
        &&(pHeader->ulMsgName <= ID_CALL_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcTafCallMsg(pRcvMsg);
        return;
    }


    /*SPM消息*/
    if ((pHeader->ulMsgName >= ID_SPM_IMSA_CALL_ORIG_REQ)
        && (pHeader->ulMsgName <= ID_SPM_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcSpmCallMsg(pRcvMsg);
        return;
    }

    /*短信消息*/
    if((pHeader->ulMsgName >= ID_MSG_IMSA_RP_DATA_REQ )
       &&(pHeader->ulMsgName <= ID_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcSmsMsg(pRcvMsg);
        return;
    }

}
예제 #2
0
/*****************************************************************************
 Function Name  : IMSA_TafMsgDistr()
 Description    : TAF消息分发函数
                  TAF这个PID下有多个模块MMA/SPM/APS,需要实现对这个模块消息的分发
 Input          : VOS_VOID *pRcvMsg
 Output         : VOS_VOID
 Return Value   : VOS_VOID

 History        :
      1.sunbing 49683      2013-06-20  Draft Enact
*****************************************************************************/
VOS_VOID IMSA_TafMsgDistr(const VOS_VOID *pRcvMsg )
{
    /* 定义消息头指针*/
    PS_MSG_HEADER_STRU          *pHeader = VOS_NULL_PTR;

    /* 获取消息头指针*/
    pHeader = (PS_MSG_HEADER_STRU *) pRcvMsg;

    /*APS消息*/
    if(MN_CALLBACK_PS_CALL == pHeader->ulMsgName)
    {
        IMSA_CONN_ProcTafPsEvt((TAF_PS_EVT_STRU*)pRcvMsg);

        return ;
    }

    /*CALL 消息*/
    if((pHeader->ulMsgName >= ID_CALL_IMSA_SRVCC_STATUS_NOTIFY)
        &&(pHeader->ulMsgName <= ID_CALL_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcTafCallMsg(pRcvMsg);
        return;
    }


    /*SPM消息*/
    if ((pHeader->ulMsgName >= ID_SPM_IMSA_CALL_ORIG_REQ)
        && (pHeader->ulMsgName <= ID_SPM_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcSpmCallMsg(pRcvMsg);
        return;
    }

    /*短信消息*/
    if((pHeader->ulMsgName >= ID_MSG_IMSA_RP_DATA_REQ )
       &&(pHeader->ulMsgName <= ID_IMSA_MSG_TYPE_BUTT))
    {
        IMSA_ProcSmsMsg(pRcvMsg);
        return;
    }

}