📄 au_dlg.cpp
字号:
/**********************************************************
* 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 + -