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

📄 au_dlg.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/**********************************************************
 * Copyright(c) 2006 Beijing Xinwei Telecom Technology Inc.
 * 
 *
 *
 *
 *
 * Author : xingzhou.xu
 * Date   : 05/11/2006
 **********************************************************/
/* ------------------------Include File ----------------------------------*/
#include "envopt.h"        /* environment options */
#include "envdep.h"        /* environment dependent */
#include "envind.h"        /* environment independent */
#include "gen.h"           /* general layer */
#include "cm5.h"
#include "ssi.h"
#include "lma.h"
#include "cm_err.h"
#include "stu.h"
#include "cm_hash.h"
#include "mat.h"
#include "cm_ss7.h"

#include "ma.h"

#include "gen.x"
#include "cm5.x"
#include "ssi.x"
#include "cm_ss7.x"
#include "stu.x"
#include "lma.x"
#include "cm_hash.x"
#include "mat.x"

#include "ma.x"

#ifdef CP_CMS
#include "lha_app.h"
#endif

#include "au_opr.h"
#include "au_ext.h"
#include "au.h"
#include "au_tmr.h"
#include "au_dlg.h"

#if MAP_HLR
EXTERN S16 AuLiMatAuthMgmtRsp ARGS((Pst  *pst,
                                   SpId spId,
                                   MaDlgId    suDlgId,
                                   MaDlgId    spDlgId,
                                   MaInvokeId *invkId,
                                   MaOprType  oprType,
                                   MaUsrErr  *usrErr,
                                   MaAuthEv    *authEv));
#endif

EXTERN PUBLIC void accAuStartTmr(S16, Dialog *);
EXTERN PUBLIC void accAuStopTmr(S16, Dialog *);
#if (MAP_VLR || MAP_HLR || MAP_GSN)
EXTERN PUBLIC S16 maAccUpdInsSubsDataReq ARGS((MaInsSubsDataReq *evt));
#endif

int auAccTraceFlag=1;

Dialog_Queue    *dlgQueue;
EXTERN Swtch pSwtch;

/*---------------------- Class Dialog ------------------------------------*/
/*
 * Function name: Dialog()
 * Des:           Construct function for Class Dialog
 * Return Value :
 */
Dialog::Dialog(MaDlgId suDlgId, MaDlgId spDlgId)
{
    spId = AU_INST_1;
    auDlgId = suDlgId;
    maDlgId = spDlgId;
    memset(&invkId, 0, sizeof(MaInvokeId));
    dsmState = AU_DLG_IDLE;

    memset(&openEv, 0, sizeof(MaOpenEv));
    memset(&closeEv, 0, sizeof(MaCloseEv));

    _tmrVal = AU_GUARD_TMR_VAL;

    /* initialize the timers of the dialogue */
    cmInitTimers(timers, AU_MAX_TMRS);

    prev = NULLP;
    next = NULLP;

}

Dialog::~Dialog()
{
}

S16 Dialog::auLiMatDlgCfmPrs(MaDlgId spDlgId)
{
    MaInvokeId      invId;
    MaInvokeId           lnkId;
    maDlgId = spDlgId;

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

    invId.pres = TRUE;
    invId.octet = 1;

    lnkId.pres = FALSE;
    lnkId.octet = 1;

    /* start timeout timer */
    accAuStartTmr(AU_GAURD_TMR, (Dialog *)this);

    switch(oprCode)
    {
        case MA_UPLOC:
        {
            MaUpLocReq      invoke;

            memset(&invoke, 0, sizeof(MaUpLocReq));
            maAccUpdUpLocReq(&invoke);
#if (defined(MAP_VLR) || defined(MAP_HLR) || defined(MAP_GSN))
            AuLiMatLocMgmtReq(&(dlgQueue->auPst ), spId, auDlgId, maDlgId, &invId,
                oprCode, (MaLocEv *)&invoke);
#endif

            /* Sts */
            smAuSts.lAuOprReq++;
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            uplocrsp_print(&invoke);
            AUACC_PRINT("[AuLiMatLocMgmtReq]--auDlgId = %ld, maDlgId = %ld\n",
                auDlgId, maDlgId);
        }
        break;
    case MA_CANCELLOC: /* Updated by Felix */
        {
            MaCancelLocReq invoke;

            memset(&invoke, 0, sizeof(MaCancelLocReq));
            maAccPhsCancelLocReq(&invoke);

#if (defined(MAP_VLR) || defined(MAP_HLR) || defined(MAP_GSN))
            AuLiMatLocMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,\
                              &invId, oprCode, (MaLocEv *)&invoke);
#endif

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("[AuLiMatLocMgmtReq]--auDlgId = %ld, maDlgId = %ld\n",
                auDlgId, maDlgId);
        }
        break;
    case MA_AUTHINFO: /* Updated by Felix */
        {
            MaAuthInfoReq    invoke;

            memset(&invoke, 0, sizeof(MaAuthInfoReq));
            maAccAuthInfoReq(&invoke);
#if (MAP_VLR || MAP_GSN)
            AuLiMatAuthMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                &invId, oprCode, (MaAuthEv *)&invoke);
#endif

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("[AuLiMatAuthMgmtReq]--auDlgId = %ld, maDlgId = %ld\n",
                auDlgId, maDlgId);
        }
        break;
    case MA_AUTHFAILRPT: /* added by Bruce 2003/4/23 */
        {
            MaAuthFailRptReq    invoke;

            memset(&invoke, 0, sizeof(MaAuthFailRptReq));
            maAccAuthFailRptReq(&invoke);

#if (MAP_VLR || MAP_GSN)
            AuLiMatAuthMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                &invId, oprCode, (MaAuthEv *)&invoke);
#endif

#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("[AuLiAuthFailRpt]--auDlgId = %ld, maDlgId = %ld\n",
                auDlgId, maDlgId);
        }
        break;
    /*added by Bruce 2003/4/29 */
    case MA_ALRTSC:
        {
            MaAlrtSCReq invoke;
            memset(&invoke, 0, sizeof(MaAlrtSCReq));
            maAccAlrtSCReq(&invoke);
            AuLiMatSMReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                &invId, oprCode, (MaSMEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSMReq:MA_ALRTSC\n");
        }
        break;
    case MA_INSSUBSDATA: /* Updated by Felix */
        {
            MaInsSubsDataReq invoke;

            memset(&invoke, 0, sizeof(MaInsSubsDataReq));
#if 1			
            maAccUpdInsSubsDataReq(&invoke);
#else
			maAccInsSubsDataReq(&invoke, pSwtch);
#endif
            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_INSSUBSDATA\n"); /* add by Adam */
        }
        break;
    case MA_DELSUBSDATA: /* Updated by Felix */
        {
            MaDelSubsDataReq invoke;

            memset(&invoke, 0, sizeof(MaDelSubsDataReq));
            maAccDelSubsDataReq(&invoke);

            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_DELSUBSDATA\n"); /* add by Adam */
        }
        break;

    case MA_PROVSUBSINFO: /* Updated by Felix */
        {
            MaProvSubsInfoReq invoke;

            memset(&invoke, 0, sizeof(MaProvSubsInfoReq));
            maAccProvSubsInfoReq(&invoke);

            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_PROVSUBSINFO\n");
        }
        break;

    case MA_ANY_INTER: /* Updated by Felix */
        {
            MaAnyInterReq invoke;

            memset(&invoke, 0, sizeof(MaAnyInterReq));
            maAccAnyInterReq(&invoke);

            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_ANY_INTER\n");
        }
        break;
#if 0
    case MA_ANYSUBSINTER: /* Updated by Felix */
        {
            MaAnySubsInterReq invoke;

            memset(&invoke, 0, sizeof(MaAnySubsInterReq));
            maAccAnySubsInterReq(&invoke);

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

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

            AUACC_PRINT("AuLiMatSubMgmtReq:MA_ANYSUBSINTER\n");
        }
        break;
#endif

#ifdef MAP_3G_R4
    case MA_ANY_MOD:
        {
            MaAnyTimeModReq invoke;

            memset(&invoke, 0, sizeof(MaAnyTimeModReq));
            maAccAnyModReq(&invoke);

            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_ANY_MOD\n");
        }
        break;

    case MA_NOTE_SUBSDATA_MOD:
        {
            MaNoteSubsDataModReq invoke;

            memset(&invoke, 0, sizeof(MaNoteSubsDataModReq));
            maAccNoteSubsDataModReq(&invoke);

            AuLiMatSubMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaSubEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatSubMgmtReq:MA_NOTE_SUBSDATA_MOD\n");
        }
        break;
#endif

    case MA_RESET:
        {
            MaResetReq invoke;

            memset(&invoke, 0, sizeof(MaResetReq));
            maAccPhsResetReq(&invoke);

            AuLiMatFRMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaFREv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatFRMgmtReq:MA_RESET\n"); /* add by Adam */
        }
        break;
    case MA_RESTOREDATA:
        {
            MaRestDatReq invoke;

            memset(&invoke, 0, sizeof(MaRestDatReq));
            maAccRestDataReq(&invoke);

            AuLiMatFRMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaFREv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatFRMgmtReq:MA_RESTOREDATA\n"); /* add by Adam */
        }
        break;
    case MA_ACTVTRACE:
        {
            MaActvTrReq invoke;

            memset(&invoke, 0, sizeof(MaActvTrReq));
            maAccPhsActvTrReq(&invoke);

            AuLiMatOAMReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,
                              &invId, oprCode, (MaOAMEv *)&invoke);
#ifndef MATV2
            AuLiMatDelimReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId);
#endif
            AUACC_PRINT("AuLiMatOAMReq:MA_ACTVTRACE\n"); /* add by Adam */
        }
        break;
    case MA_DACTVTRACE:
        {
            MaDactvTrReq invoke;

            memset(&invoke, 0, sizeof(MaDactvTrReq));
            maAccPhsDactvTrReq(&invoke);

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

            AUACC_PRINT("AuLiMatOAMReq:MA_DACTVTRACE\n"); /* add by Adam */
        }
        break;
    case MA_ROUTINFO:
        {
            MaSndRoutInfoReq invoke;

            memset(&invoke, 0, sizeof(MaSndRoutInfoReq));
            maAccSndRoutInfoReq(&invoke);

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

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

            AUACC_PRINT("AuLiMatCallMgmtReq:MA_ROUTINFO\n"); /* add by Adam */
        }
        break;
    case MA_PROVROAMNMB:
        {
            MaRoamNmbReq invoke;

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

            AuLiMatCallMgmtReq(&(dlgQueue->auPst), spId, auDlgId, maDlgId,

⌨️ 快捷键说明

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