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

📄 h323-messagesenc.c

📁 一个非常美妙的proxy。功能强大。基于sip的协议。如果还要的话
💻 C
📖 第 1 页 / 共 5 页
字号:
   addSizeConstraint (pctxt, &lsize1);   stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);   if (stat != ASN_OK) return stat;   return (stat);}/**************************************************************//*                                                            *//*  ANSI_41_UIM                                               *//*                                                            *//**************************************************************/extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet;EXTERN int asn1PE_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue){   static Asn1SizeCnst imsi_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst min_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst mdn_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst msisdn_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst esn_lsize1 = { 0, 16, 16, 0 };   static Asn1SizeCnst mscid_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst sesn_lsize1 = { 0, 16, 16, 0 };   static Asn1SizeCnst soc_lsize1 = { 0, 3, 16, 0 };   int stat = ASN_OK;   ASN1BOOL extbit;   /* extension bit */   extbit = 0;   encodeBit (pctxt, extbit);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.imsiPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.minPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.mdnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.msisdnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.esnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.mscidPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.systemMyTypeCodePresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.systemAccessTypePresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.qualificationInformationCodePresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.sesnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.socPresent);   /* encode imsi */   if (pvalue->m.imsiPresent) {      addSizeConstraint (pctxt, &imsi_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->imsi, gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode min */   if (pvalue->m.minPresent) {      addSizeConstraint (pctxt, &min_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->min, gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode mdn */   if (pvalue->m.mdnPresent) {      addSizeConstraint (pctxt, &mdn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->mdn, gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode msisdn */   if (pvalue->m.msisdnPresent) {      addSizeConstraint (pctxt, &msisdn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->msisdn, gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode esn */   if (pvalue->m.esnPresent) {      addSizeConstraint (pctxt, &esn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->esn, gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode mscid */   if (pvalue->m.mscidPresent) {      addSizeConstraint (pctxt, &mscid_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->mscid, gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode system_id */   stat = asn1PE_H225ANSI_41_UIM_system_id (pctxt, &pvalue->system_id);   if (stat != ASN_OK) return stat;   /* encode systemMyTypeCode */   if (pvalue->m.systemMyTypeCodePresent) {      stat = asn1PE_H225ANSI_41_UIM_systemMyTypeCode (pctxt, &pvalue->systemMyTypeCode);      if (stat != ASN_OK) return stat;   }   /* encode systemAccessType */   if (pvalue->m.systemAccessTypePresent) {      stat = asn1PE_H225ANSI_41_UIM_systemAccessType (pctxt, &pvalue->systemAccessType);      if (stat != ASN_OK) return stat;   }   /* encode qualificationInformationCode */   if (pvalue->m.qualificationInformationCodePresent) {      stat = asn1PE_H225ANSI_41_UIM_qualificationInformationCode (pctxt, &pvalue->qualificationInformationCode);      if (stat != ASN_OK) return stat;   }   /* encode sesn */   if (pvalue->m.sesnPresent) {      addSizeConstraint (pctxt, &sesn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->sesn, gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode soc */   if (pvalue->m.socPresent) {      addSizeConstraint (pctxt, &soc_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->soc, gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   return (stat);}/**************************************************************//*                                                            *//*  GSM_UIM_tmsi                                              *//*                                                            *//**************************************************************/EXTERN int asn1PE_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue){   static Asn1SizeCnst lsize1 = { 0, 1, 4, 0 };   int stat = ASN_OK;   addSizeConstraint (pctxt, &lsize1);   stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);   if (stat != ASN_OK) return stat;   return (stat);}/**************************************************************//*                                                            *//*  GSM_UIM                                                   *//*                                                            *//**************************************************************/extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imsi_CharSet;extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imei_CharSet;extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet;extern EXTERN const char* gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet;EXTERN int asn1PE_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue){   static Asn1SizeCnst imsi_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst msisdn_lsize1 = { 0, 3, 16, 0 };   static Asn1SizeCnst imei_lsize1 = { 0, 15, 16, 0 };   static Asn1SizeCnst hplmn_lsize1 = { 0, 1, 4, 0 };   static Asn1SizeCnst vplmn_lsize1 = { 0, 1, 4, 0 };   int stat = ASN_OK;   ASN1BOOL extbit;   /* extension bit */   extbit = 0;   encodeBit (pctxt, extbit);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.imsiPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.tmsiPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.msisdnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.imeiPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.hplmnPresent);   encodeBit (pctxt, (ASN1BOOL)pvalue->m.vplmnPresent);   /* encode imsi */   if (pvalue->m.imsiPresent) {      addSizeConstraint (pctxt, &imsi_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->imsi, gs_H323_MESSAGES_GSM_UIM_imsi_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode tmsi */   if (pvalue->m.tmsiPresent) {      stat = asn1PE_H225GSM_UIM_tmsi (pctxt, &pvalue->tmsi);      if (stat != ASN_OK) return stat;   }   /* encode msisdn */   if (pvalue->m.msisdnPresent) {      addSizeConstraint (pctxt, &msisdn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->msisdn, gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode imei */   if (pvalue->m.imeiPresent) {      addSizeConstraint (pctxt, &imei_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->imei, gs_H323_MESSAGES_GSM_UIM_imei_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode hplmn */   if (pvalue->m.hplmnPresent) {      addSizeConstraint (pctxt, &hplmn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->hplmn, gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   /* encode vplmn */   if (pvalue->m.vplmnPresent) {      addSizeConstraint (pctxt, &vplmn_lsize1);      stat = encodeConstrainedStringEx (pctxt, pvalue->vplmn, gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet, 4, 4, 7);      if (stat != ASN_OK) return stat;   }   return (stat);}/**************************************************************//*                                                            *//*  MobileUIM                                                 *//*                                                            *//**************************************************************/EXTERN int asn1PE_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue){   int stat = ASN_OK;   ASN1BOOL extbit;   /* extension bit */   extbit = (ASN1BOOL)(pvalue->t > 2);   encodeBit (pctxt, extbit);   if (!extbit) {      /* Encode choice index value */      stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);      if (stat != ASN_OK) return stat;      /* Encode root element data value */      switch (pvalue->t)      {         /* ansi_41_uim */         case 1:            stat = asn1PE_H225ANSI_41_UIM (pctxt, pvalue->u.ansi_41_uim);            if (stat != ASN_OK) return stat;            break;         /* gsm_uim */         case 2:            stat = asn1PE_H225GSM_UIM (pctxt, pvalue->u.gsm_uim);            if (stat != ASN_OK) return stat;            break;         default:            return ASN_E_INVOPT;      }   }   else {      /* Encode extension choice index value */      stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);      if (stat != ASN_OK) return stat;      /* Encode extension element data value */   }   return (stat);}/**************************************************************//*                                                            *//*  AliasAddress                                              *//*                                                            *//**************************************************************/extern EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet;EXTERN int asn1PE_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue){   static Asn1SizeCnst dialedDigits_lsize1 = { 0, 1, 128, 0 };   static Asn1SizeCnst h323_ID_lsize1 = { 0, 1, 256, 0 };   static Asn1SizeCnst url_ID_lsize1 = { 0, 1, 512, 0 };   static Asn1SizeCnst email_ID_lsize1 = { 0, 1, 512, 0 };   int stat = ASN_OK;   OOCTXT lctxt;   ASN1OpenType openType;   ASN1BOOL extbit;   /* extension bit */   extbit = (ASN1BOOL)(pvalue->t > 2);   encodeBit (pctxt, extbit);   if (!extbit) {      /* Encode choice index value */      stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);      if (stat != ASN_OK) return stat;      /* Encode root element data value */      switch (pvalue->t)      {         /* dialedDigits */         case 1:            addSizeConstraint (pctxt, &dialedDigits_lsize1);            stat = encodeConstrainedStringEx (pctxt, pvalue->u.dialedDigits, gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet, 4, 4, 7);            if (stat != ASN_OK) return stat;            break;         /* h323_ID */         case 2:            addSizeConstraint (pctxt, &h323_ID_lsize1);            stat = encodeBMPString (pctxt, pvalue->u.h323_ID, 0);            if (stat != ASN_OK) return stat;            break;         default:            return ASN_E_INVOPT;      }   }   else {      /* Encode extension choice index value */      stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);      if (stat != ASN_OK) return stat;      /* Encode extension element data value */      initContext (&lctxt);      stat = setPERBuffer (&lctxt, 0, 0, TRUE);      if (stat != ASN_OK) return freeContext (&lctxt), stat;      switch (pvalue->t)      {         /* url_ID */         case 3:            addSizeConstraint (&lctxt, &url_ID_lsize1);            stat = encodeConstrainedStringEx (&lctxt, pvalue->u.url_ID, 0, 8, 7, 7);            if (stat != ASN_OK) return freeContext (&lctxt), stat;            openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);            break;         /* transportID */         case 4:            stat = asn1PE_H225TransportAddress (&lctxt, pvalue->u.transportID);            if (stat != ASN_OK) return freeContext (&lctxt), stat;            openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);            break;         /* email_ID */         case 5:            addSizeConstraint (&lctxt, &email_ID_lsize1);

⌨️ 快捷键说明

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