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

📄 au_opr.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER1;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_MSC || MAP_VLR || MAP_HLR)
   case MA_FWDCHKSSIND:      /* NULL    */
   {
      cntxt = MA_NETWORK_LOCUP_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS4;
      break;
  }
#endif

#if (MAP_VLR || MAP_HLR)
   case MA_SNDIMSI:          /* MaSndIMSI */
   {
      cntxt = MA_IMSI_RET_AC;
      ver   = (U8)maSwtch;
      /* modified by shu.bu 2002/06/13 according to HLR request */
      #if 0
      *maVer   = LMA_VER2AND2P;
      #else
      *maVer   =  LMA_VER_ALL;
      #endif
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_BEGIN_SUBS_ACTV:  /* MaBgnSubActv */
   {
      cntxt = MA_NETFUNC_SS_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS4;
      break;
   }
   case MA_NOTSUBPRES:       /* MaNotSubPres */
   {
      cntxt = MA_MWD_MNGMT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER1;
      *oprClass = MA_OPRCLASS4;
      break;
   }
   case MA_SETRPTSTATE:      /* MaSetRptState */
   case MA_STARPT:              /* MaStaRpt */
   case MA_RMTUSRFREE:       /* MaRmtUsrFree */
   {
      cntxt = MA_REPORTING_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_MSC || MAP_VLR || MAP_HLR)
   case MA_REGCCENT:         /* MaRegCcEnt */
   case MA_ERASECCENT:       /* MaEraseCcEnt */
   {
      cntxt = MA_CALL_COMP_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif  /* MSC || (VLR) || (HLR) */

#if (MAP_VLR || MAP_HLR || MAP_GSN)
   case MA_CANCELLOC:        /* MaCancelLoc */
   {
      cntxt = MA_CANCEL_LOC_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_RESET:            /* MaReset */
   {
      cntxt = MA_RESET_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS4;
      break;
   }
   case MA_PURGE:            /* MaPurgeMs */
   {
      cntxt = MA_MS_PURGING_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_INSSUBSDATA:      /* MaInsSubsDat */
   {
      cntxt = MA_NETWORK_LOCUP_AC;
      ver   = (U8)maSwtch;

      altCntxt = MA_GPRS_UPLOC_AC;
      altVer   = LMA_VER2P;

      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_DELSUBSDATA:      /* MaDelSubsDat */
   {
      cntxt = MA_SUBS_DATA_MNGMT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_AUTHINFO:            /* MaAuthInfo */
   {
      cntxt = MA_INFO_RET_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#if 0   
   case MA_AUTHFAILRPT:            /* MaAuthFailRpt */
   {
      cntxt = MA_AUTH_FAIL_RPT_AC ;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif
#endif
#if (MAP_VLR || MAP_HLR || MAP_GSN)
   case MA_ACTVTRACE:        /* MaActvTr */
   {
      cntxt = MA_NETWORK_LOCUP_AC;
      ver   = (U8)maSwtch;


      altCntxt = MA_GPRS_UPLOC_AC;
      altVer = LMA_VER2P;

      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_DACTVTRACE:       /* MaDactvTr */
   {
      cntxt = MA_TRACING_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_VLR || MAP_HLR || MAP_GSN)
   case MA_PROVSUBSINFO:     /* MaProvSubsInfo */
   {
      cntxt = MA_SUBS_INFO_ENQ_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif
/* added by Bruce for LCS 2003/7/3*/
    case MA_SENDROUTINFOFORLCS:          /* RoutInfo For LCS */
        {
           cntxt = MA_LOC_SVC_GATEWAY;
           ver   = (U8)maSwtch;
           *maVer   = LMA_VER2AND2P;
           *oprClass = MA_OPRCLASS1;
           break;
        }
    case MA_PROVSUBSLOC:          /* Provide Subscriber Location */
        {
           cntxt = MA_LOC_SVC_ENQUIRY;
           ver   = (U8)maSwtch;
           *maVer   = LMA_VER2AND2P;
           *oprClass = MA_OPRCLASS1;
           break;
        }
   case MA_SUBSLOCRPT:          /* Subscriber Location Report */
        {
           cntxt = MA_LOC_SVC_ENQUIRY;
           ver   = (U8)maSwtch;
           *maVer   = LMA_VER2AND2P;
           *oprClass = MA_OPRCLASS1;
           break;
        }

#if (MAP_MSC || MAP_HLR)     /* C Interface */
   case MA_ROUTINFO:         /* MaSndRoutInfo */
   {

      cntxt = MA_LOCINFO_RET_AC;
      ver   = (U8)maSwtch;

      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_ROUTINFOSM:       /* MaRoutInfoSM */
   case MA_SMDEL:            /* MaRepSMDel */
   {
      cntxt = MA_SM_GATEWAY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_INFSC:            /* MaInformSC */
   {
      cntxt = MA_SM_GATEWAY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2AND2P;
      *oprClass = MA_OPRCLASS4;
      break;
   }
   case MA_ALRTSC:           /* MaAlrtSC */
   {
      cntxt = MA_SM_ALERT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2AND2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_ALRTSCWRSLT:      /* MaAlrtSCWRslt */
   {
      cntxt = MA_SM_ALERT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER1;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_MSC || MAP_HLR)
   case MA_SSINV_NOTIFY:     /* MaSSInvNot */
   {
      cntxt = MA_SSINV_NOTIFY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }

#endif

#if (MAP_HLR || MAP_GSN)        /* Gr Interface */
   case MA_GPRS_UPLOC:        /*   MaGprsUpLoc */
   {
      cntxt = MA_GPRS_UPLOC_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_GPRS_ROUTINFO:     /* MaGprsRoutInfo */
   {
      cntxt = MA_GPRS_LOCINFO_RET_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_FAILRPT:           /*  MaFailRpt */
   {
      cntxt = MA_FAILRPT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_GPRS_NOTEMSPRES:   /* MaGprsNoteMsPres */
   {
      cntxt = MA_GPRS_NOTIFY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_MSC || MAP_GSN)     /* Gd Interface */
   case MA_FWDSM:            /* MaFwdSM */
   {
      cntxt = MA_SM_MO_RELAY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
   case MA_MT_FWDSM:          /* MaMoFwdSM */
   {
      cntxt = MA_SM_MT_RELAY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif

#if (MAP_MSC || MAP_VLR || MAP_GSN)
   case MA_CHKIMEI:          /* MaChkIMEI */
   {
      cntxt = MA_EQP_MNGMT_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER_ALL;
      *oprClass = MA_OPRCLASS1;
      break;
   }
#endif


#if MAP_HLR
   case MA_ANY_INTER:           /* MaAnyInter */
   {
      cntxt = MA_ANY_TIME_ENQUIRY_AC;
      ver   = (U8)maSwtch;
      *maVer   = LMA_VER2P;
      *oprClass = MA_OPRCLASS1;
      break;
   }

    #ifdef MAP_29_002 /* Added by Felix for CAMEL */
    case MA_ANYSUBSINTER:            /* maAnySubsInter */
    {
       cntxt = MA_ANY_INFO_HNDL_AC ;
       ver   = (U8)maSwtch;
       *maVer   = LMA_VER2P;
       *oprClass = MA_OPRCLASS1;
       break;
    }
    #endif

#endif /* MAP_HLR */

#ifdef MAP_3G_R4
    case MA_ANY_MOD:            /* maAnySubsInter */
    {
       cntxt = MA_ANY_INFO_HNDL_AC ;
       ver   = (U8)maSwtch;
       *maVer   = LMA_VER2P;
       *oprClass = MA_OPRCLASS1;
       break;
    }

    case MA_NOTE_SUBSDATA_MOD:            /* maAnySubsInter */
    {
       cntxt =  MA_SUBS_DATA_MODI_NOT;
       ver   = (U8)maSwtch;
       *maVer   = LMA_VER2P;
       *oprClass = MA_OPRCLASS1;
       break;
    }

#endif

   default:
   {
      RETVALUE(RFAILED);
   }
   }

   acn->val[6] = cntxt;
   acn->val[7] = ver;

   RETVALUE(ROK);
} /* maAccFillAcn */

S16 maAccSetOpenEvent(MaOpenEv *evnt, SpAddr *srcAddr, SpAddr *dstAddr,
                      MaApConName *acn, Bool srcRef, Bool destRef)
{
   TRC2(maAccSetOpenEvent)

   if ((srcAddr == NULLP) || (dstAddr == NULLP))
   {
      RETVALUE(RFAILED);
   }

   #if 0
   cmZero(evnt, sizeof(MaOpenEv));
   #else
   memset(evnt, 0, sizeof(MaOpenEv));
   #endif

   /* copy the address of the destination (Peer MAP) */
   cmCpy(dstAddr, &evnt->destAddr, sizeof(SpAddr));

   /* copy the address of the source (MYSELF) */
   cmCpy(srcAddr, &evnt->srcAddr, sizeof(SpAddr));

   /* copy the application context name for this dialogue, if any */
   if (acn)
   {
      cmCpy(acn, &evnt->apn, sizeof(MaApConName));
   }
   else
      evnt->apn.pres = FALSE;

   if (acn->val[acn->len-2] == MA_NETFUNC_SS ||
       acn->val[acn->len-2] == MA_NETUSS_SS)
   {
      evnt->srcRef.pres = TRUE;
      maBldStr(&evnt->srcRef, "ISDN NMB");
   }
   else
   {
      evnt->srcRef.pres = FALSE;
   }

   if (acn->val[acn->len-2] == MA_NETFUNC_SS ||
       acn->val[acn->len-2] == MA_NETUSS_SS)
   {
      evnt->destRef.pres = TRUE;
      maBldStr(&evnt->destRef, "IMSI");
   }
   else
   {
      evnt->destRef.pres = FALSE;
   }


   /* for the purpose of acceptance testing, it will be assumed that
    * no user information is passed while opening the dialogue */

   evnt->usrInfo.pres                = FALSE;
   evnt->error.pres                  = FALSE;
   evnt->rspAddr.pres                = FALSE;
   evnt->refReason.pres              = FALSE;
   evnt->result                      = MA_DLG_OK;


   RETVALUE(ROK);
} /* end of maAccSetOpenEvent */


S16 maBldStr(TknStrS *tknStr, S8 *string)
{
  U8 count;

  TRC2(maBldStr)
  if (*string == '\0')
  {

⌨️ 快捷键说明

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