⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 au_dlg.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                              &invId, oprCode, (MaCallEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatCallMgmtReq:MA_PROVROAMNMB\n"); /* add by Adam */
        }
        break;
#if 0
/* added by Bruce for smart call in 12/2/2004 begin 3G00007112*/
    case MA_PRVROAMNMB_FORWYCF:
        {
            MaPrvRoamNmbForWycfReq invoke;

            memset(&invoke, 0, sizeof(maRoamNmbReq));
            maAccPrvRoamNmbForWycfReq(&invoke);

            AuLiMatCallMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaCallEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatCallMgmtReq:MA_PRVROAMNMB_FORWYCF\n"); /* add by Adam */
        }
        break;
/* added by Bruce for smart call in 12/2/2004 end 3G00007112*/
#endif		
		
    case MA_RESCALLHANDL:
        {
            MaResCallHandlReq invoke;

            memset(&invoke, 0, sizeof(MaResCallHandlReq));
            maAccResCallHandReq(&invoke);

            AuLiMatCallMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaCallEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatCallMgmtReq:MA_RESCALLHANDL\n"); /* add by Adam */
        }
        break;
/*added by Bruce for MAPE 2003/6/16 */
    case MA_PRE_HO:
        {
            MaPreHoReq invoke;
            memset(&invoke, 0, sizeof(MaPreHoReq));
            maAccPreHoReq(&invoke);

            AuLiMatHOMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaHoEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatHOMgmtReq: MA_PRE_HO\r\n");

        }
        break;
    case MA_SNDENDSIG:
        {
            MaSndEndSigReq invoke;
            memset(&invoke, 0, sizeof(MaSndEndSigReq));
            maAccSndEndSigReq(&invoke);

            AuLiMatHOMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaHoEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatHOMgmtReq: MA_SNDENDSIG\r\n");
        }
        break;
    case MA_PROCACCSIG:
        {
            MaProcAccSigReq invoke;
            memset(&invoke, 0, sizeof(MaProcAccSigReq));
            maAccProcAccSigReq(&invoke);

            AuLiMatHOMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaHoEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatHOMgmtReq: MA_PROCACCSIG\r\n");
        }
        break;
    case MA_FWDACCSIG:
        {
            MaFwdAccSigReq invoke;
            memset(&invoke, 0, sizeof(MaFwdAccSigReq));
            maAccFwdAccSigReq(&invoke);

            AuLiMatHOMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaHoEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatHOMgmtReq: MA_FWDACCSIG\r\n");
        }
        break;
    case MA_PRE_SUBSHO:
        {
            MaPreSubHoReq invoke;
            memset(&invoke, 0, sizeof(MaPreSubHoReq));
            maAccPreSubHoReq(&invoke);

            AuLiMatHOMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaHoEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatHOMgmtReq: MA_PRE_SUBHO\r\n");
        }
        break;
/* added by Bruce for LCS 2003/7/3 */
    case MA_PROVSUBSLOC:
        {
            MaPrvSubsLocReq invoke;
            memset(&invoke, 0, sizeof(MaPrvSubsLocReq));
            maAccPrvSubsLocReq(&invoke);

            AuLiMatLocServReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaLocServEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatLocServReq: MA_PROVSUBSLOC\r\n");
        }
        break;

    case MA_SENDROUTINFOFORLCS:
        {
            MaRoutInfoForLcsReq invoke;
            memset(&invoke, 0, sizeof(MaRoutInfoForLcsReq));
            maAccRoutInfoForLcsReq(&invoke);

            AuLiMatLocServReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaLocServEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatLocServReq: MA_SENDROUTINFOFORLCS\r\n");
        }
        break;
    case MA_SUBSLOCRPT:
        {
            MaSubsLocRptReq invoke;
            memset(&invoke, 0, sizeof(MaSubsLocRptReq));
            maAccSubsLocRptReq(&invoke);

            AuLiMatLocServReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                       &invId, oprCode, (MaLocServEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatLocServReq: MA_SUBSLOCRPT\r\n");
        }
        break;

    case MA_ACTVSS:
        {
            MaActvSSReq invoke;
            memset(&invoke, 0, sizeof(MaActvSSReq));
            maAccActvSSReq(&invoke);
            AuLiMatSSReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                &invId, oprCode, &lnkId, (MaSSEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatSSReq:MA_ACTVSS\n");
        }
        break;

    case MA_DACTVSS:
        {
            MaDactvSSReq    invoke;
            memset(&invoke, 0, sizeof(MaDactvSSReq));
            maAccDactvSSReq(&invoke);
            AuLiMatSSReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                &invId, oprCode, &lnkId, (MaSSEv *)&invoke);

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

            AUACC_PRINT("AuLiMatSSReq:MA_DACTVSS\n");
        }
        break;
    }

#if 0
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif

    dsmState = AU_WF_OPEN_CFM;

    RETVALUE(ROK);
}

S16 Dialog::auLiMatOpenReqPrs(MaOprType type)
{
    SpAddr      srcAddr;    /* Source Address */
    SpAddr      dstAddr;    /* Destination Address */
    MaApConName acn;        /* Application Context Name */
    MaApConName altAcn;
    U8          oprClass1;
    U8          maVer;

    AUACC_PRINT("Dialog::auLiMatOpenReqPrs________auDlgId = %ld,\
        maDlgId = %ld\n", auDlgId, maDlgId);

    oprCode = type;

    memset(&srcAddr, 0, sizeof(SpAddr));
    memset(&dstAddr, 0, sizeof(SpAddr));

    accFillAddr(&srcAddr, &dstAddr);

    memset(&acn, 0, sizeof(MaApConName));
    memset(&altAcn, 0, sizeof(MaApConName));
    auFillAcn(type, &acn, &altAcn, &oprClass1, &maVer, LMA_VER2P);
    maAccSetOpenEvent(&openEv,&srcAddr,&dstAddr,&acn,FALSE,FALSE);

    AUACC_PRINT("AuLiMatOpenReq_______auDlgId = %ld maDlgId = %ld\n",
        auDlgId, maDlgId);

    AuLiMatOpenReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId, &openEv);

    /* Sts */
    smAuSts.lAuOpenReq++;

    dsmState = AU_WF_DLG_CFM;

    RETVALUE(ROK);
}

S16 Dialog::auLiMatOpenIndPrs(MaAccMsgQElm *msg)
{
    AUACC_PRINT("Dialog::auLiMatOpenIndPrs________auDlgId = %ld,\
            maDlgId = %ld\n", auDlgId, maDlgId);

    maDlgId = msg->spDlgId;

    memcpy(&openEv, &msg->s.openEv, sizeof(MaOpenEv));

    dsmState = AU_WF_OPR_IND;

    RETVALUE(ROK);
}

S16 Dialog::auLiMatOpenCfmPrs(MaAccMsgQElm *msg)
{
    AUACC_PRINT("Dialog::auLimatOpenCfmPrs________auDlgId = %ld,\
        maDlgId = %ld\n", auDlgId, maDlgId);

    dsmState = AU_WF_OPR_CFM;
    RETVALUE(ROK);
}

S16 Dialog::auLiMatDelimIndPrs(MaAccMsgQElm *msg)
{
    MaOpenEv    tOpenEv;
    MaCloseEv   tCloseEv;
    MaInvokeId  tInvId;
    MaUsrErr    tUsrErr;

    AUACC_PRINT("Dialog::auLiMatDelimIndPrs________auDlgId = %ld,\
            maDlgId = %ld\n", auDlgId, maDlgId);

    switch (dsmState)
    {
        case AU_WF_DELIM_IND:
            cmZero((Data *)&tOpenEv, sizeof(MaOpenEv));
            cmZero((Data *)&tInvId,sizeof(MaInvokeId));
            cmZero((Data *)&tCloseEv, sizeof(MaCloseEv));
            cmZero((Data *)&tUsrErr, sizeof(MaUsrErr));
            memcpy(&tOpenEv, &openEv, sizeof(MaOpenEv));
            /* send open rsp */
            AuLiMatOpenRsp(&(dlgQueue->auPst), spId, auDlgId, maDlgId, &tOpenEv);

            /* Sts */
            smAuSts.lAuOpenRsp++;

            AUACC_PRINT("Dialog::auLiMatOpenRsp________auDlgId = %ld,\
                maDlgId = %ld\n", auDlgId, maDlgId);

            /* send opr rsp */
            switch (oprCode)  /* Updated by Felix */
            {
            case MA_UPLOC:
                {
                    MaUpLocRsp  opr;

                    cmZero((Data *)&opr,sizeof(MaUpLocRsp));
                    memcpy(&tInvId, &invkId, sizeof(MaInvokeId));
                    if (maAccUpdUpLocRsp(&opr) != ROK)
                    {
                        /* auAccPrnError((char *)"MatOprRsp :
                           Upd Update Location failed" ); */
                        return(RFAILED);
                    }

                    memset(&usrErr, 0, sizeof(MaUsrErr));
                    memcpy(&tUsrErr, &usrErr, sizeof(MaUsrErr));
                    if (ROK == AuLiMatLocMgmtRsp(&(dlgQueue->auPst), spId,
                               auDlgId, maDlgId,
                               &tInvId, oprCode, &tUsrErr, (MaLocEv *) &opr))
                    {
                        smAuSts.lAuOprRsp++;
                    }

                    AUACC_PRINT("AuLiMatLocMgmtRsp:MA_UPLOC\n"); /* add by Adam */

                    AUACC_PRINT("Dialog::auLiMatLocMgmtRsp________auDlgId \
                         = %ld,maDlgId = %ld\n", auDlgId, maDlgId);
                }
                break;
            case MA_CANCELLOC: /* Updated by Felix */
                {
                    MaCancelLocRsp  opr;

                    cmZero((Data *)&opr,sizeof(MaCancelLocRsp));
                    memcpy(&tInvId, &invkId, sizeof(MaInvokeId));
                    if (maAccPhsCancelLocRsp(&opr) != ROK)
                    {
                        return(RFAILED);
                    }

                    memset(&usrErr, 0, sizeof(MaUsrErr));
                    memcpy(&tUsrErr, &usrErr, sizeof(MaUsrErr));
                    if (ROK == AuLiMatLocMgmtRsp(&(dlgQueue->auPst), spId,
                               auDlgId, maDlgId,
                               &tInvId, oprCode, &tUsrErr, (MaLocEv *) &opr))
                    {
                        smAuSts.lAuOprRsp++;
                    }

                    AUACC_PRINT("AuLiMatLocMgmtRsp:MA_CANCELLOC\n"); /* add by Adam */

                    AUACC_PRINT("Dialog::auLiMatLocMgmtRsp________auDlgId \
                         = %ld,maDlgId = %ld\n", auDlgId, maDlgId);
                }
                break;
#ifdef MAP_HLR
            case MA_AUTHINFO:
                {
                    MaAuthInfoRsp   opr;

                    cmZero((Data *)&opr,sizeof(MaAuthInfoRsp));
                    memcpy(&tInvId, &invkId, sizeof(MaInvokeId));
                    if (maAccAuthInfoRsp(&opr) != ROK)
                    {
                        /* auAccPrnError((char *)"MatOprRsp : Upd Update
                           Location failed" ); */
                        return(RFAILED);
                    }

                    memset(&usrErr, 0, sizeof(MaUsrErr));
                    memcpy(&tUsrErr, &usrErr, sizeof(MaUsrErr));
#if MAP_HLR					
                    if (ROK == AuLiMatAuthMgmtRsp(&(dlgQueue->auPst), spId,
                       auDlgId, maDlgId, &tInvId, oprCode, &tUsrErr, (MaAuthEv *) &opr))
                    {
                        smAuSts.lAuOprRsp++;
                    }
#endif
                    AUACC_PRINT("AuLiMatAuthMgmtRsp:MA_AUTHINFO\n"); /* add by Adam */
                }
                break;
            case MA_AUTHFAILRPT:
                {
                    MaAuthFailRptRsp opr;

                    cmZero((Data *)&opr,sizeof(MaAuthFailRptRsp));
                    memcpy(&tInvId, &invkId, sizeof(MaInvokeId));
                    if (maAccAuthFailRptRsp(&opr) != ROK)
                    {
                        /* auAccPrnError((char *)"MatOprRsp : Upd Update
                           Location failed" ); */
                        return(RFAILED);
                    }

                    memset(&usrErr, 0, sizeof(MaUsrErr));
                    memcpy(&tUsrErr, &usrErr, sizeof(MaUsrErr));
#if MAP_HLR
                    if (ROK == AuLiMatAuthMgmtRsp(&(dlgQueue->auPst), spId,
                                  auDlgId, maDlgId,
                               &tInvId, oprCode, &tUsrErr, (MaAuthEv *) &opr))
                    {
                        smAuSts.lAuOprRsp++;
                    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -