📄 h323-messagesenc.c
字号:
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 + -