📄 h323-messagesenc.c
字号:
break; /* ipxAddress */ case 3: stat = asn1PE_H225TransportAddress_ipxAddress (pctxt, pvalue->u.ipxAddress); if (stat != ASN_OK) return stat; break; /* ip6Address */ case 4: stat = asn1PE_H225TransportAddress_ip6Address (pctxt, pvalue->u.ip6Address); if (stat != ASN_OK) return stat; break; /* netBios */ case 5: stat = asn1PE_H225TransportAddress_netBios (pctxt, pvalue->u.netBios); if (stat != ASN_OK) return stat; break; /* nsap */ case 6: stat = asn1PE_H225TransportAddress_nsap (pctxt, pvalue->u.nsap); if (stat != ASN_OK) return stat; break; /* nonStandardAddress */ case 7: stat = asn1PE_H225NonStandardParameter (pctxt, pvalue->u.nonStandardAddress); if (stat != ASN_OK) return stat; break; default: return ASN_E_INVOPT; } } else { /* Encode extension choice index value */ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 8); if (stat != ASN_OK) return stat; /* Encode extension element data value */ } return (stat);}/**************************************************************//* *//* PublicTypeOfNumber *//* *//**************************************************************/EXTERN int asn1PE_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; /* extension bit */ extbit = (ASN1BOOL)(pvalue->t > 6); encodeBit (pctxt, extbit); if (!extbit) { /* Encode choice index value */ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5); if (stat != ASN_OK) return stat; /* Encode root element data value */ switch (pvalue->t) { /* unknown */ case 1: /* NULL */ break; /* internationalNumber */ case 2: /* NULL */ break; /* nationalNumber */ case 3: /* NULL */ break; /* networkSpecificNumber */ case 4: /* NULL */ break; /* subscriberNumber */ case 5: /* NULL */ break; /* abbreviatedNumber */ case 6: /* NULL */ break; default: return ASN_E_INVOPT; } } else { /* Encode extension choice index value */ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7); if (stat != ASN_OK) return stat; /* Encode extension element data value */ } return (stat);}/**************************************************************//* *//* PublicPartyNumber *//* *//**************************************************************/EXTERN int asn1PE_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue){ int stat = ASN_OK; /* encode publicTypeOfNumber */ stat = asn1PE_H225PublicTypeOfNumber (pctxt, &pvalue->publicTypeOfNumber); if (stat != ASN_OK) return stat; /* encode publicNumberDigits */ stat = asn1PE_H225NumberDigits (pctxt, pvalue->publicNumberDigits); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* PrivateTypeOfNumber *//* *//**************************************************************/EXTERN int asn1PE_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; /* extension bit */ extbit = (ASN1BOOL)(pvalue->t > 6); encodeBit (pctxt, extbit); if (!extbit) { /* Encode choice index value */ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5); if (stat != ASN_OK) return stat; /* Encode root element data value */ switch (pvalue->t) { /* unknown */ case 1: /* NULL */ break; /* level2RegionalNumber */ case 2: /* NULL */ break; /* level1RegionalNumber */ case 3: /* NULL */ break; /* pISNSpecificNumber */ case 4: /* NULL */ break; /* localNumber */ case 5: /* NULL */ break; /* abbreviatedNumber */ case 6: /* NULL */ break; default: return ASN_E_INVOPT; } } else { /* Encode extension choice index value */ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7); if (stat != ASN_OK) return stat; /* Encode extension element data value */ } return (stat);}/**************************************************************//* *//* PrivatePartyNumber *//* *//**************************************************************/EXTERN int asn1PE_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue){ int stat = ASN_OK; /* encode privateTypeOfNumber */ stat = asn1PE_H225PrivateTypeOfNumber (pctxt, &pvalue->privateTypeOfNumber); if (stat != ASN_OK) return stat; /* encode privateNumberDigits */ stat = asn1PE_H225NumberDigits (pctxt, pvalue->privateNumberDigits); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* PartyNumber *//* *//**************************************************************/EXTERN int asn1PE_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue){ int stat = ASN_OK; ASN1BOOL extbit; /* extension bit */ extbit = (ASN1BOOL)(pvalue->t > 5); encodeBit (pctxt, extbit); if (!extbit) { /* Encode choice index value */ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4); if (stat != ASN_OK) return stat; /* Encode root element data value */ switch (pvalue->t) { /* e164Number */ case 1: stat = asn1PE_H225PublicPartyNumber (pctxt, pvalue->u.e164Number); if (stat != ASN_OK) return stat; break; /* dataPartyNumber */ case 2: stat = asn1PE_H225NumberDigits (pctxt, pvalue->u.dataPartyNumber); if (stat != ASN_OK) return stat; break; /* telexPartyNumber */ case 3: stat = asn1PE_H225NumberDigits (pctxt, pvalue->u.telexPartyNumber); if (stat != ASN_OK) return stat; break; /* privateNumber */ case 4: stat = asn1PE_H225PrivatePartyNumber (pctxt, pvalue->u.privateNumber); if (stat != ASN_OK) return stat; break; /* nationalStandardPartyNumber */ case 5: stat = asn1PE_H225NumberDigits (pctxt, pvalue->u.nationalStandardPartyNumber); if (stat != ASN_OK) return stat; break; default: return ASN_E_INVOPT; } } else { /* Encode extension choice index value */ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6); if (stat != ASN_OK) return stat; /* Encode extension element data value */ } return (stat);}/**************************************************************//* *//* ANSI_41_UIM_system_id *//* *//**************************************************************/extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet;extern EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet;EXTERN int asn1PE_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue){ static Asn1SizeCnst sid_lsize1 = { 0, 1, 4, 0 }; static Asn1SizeCnst mid_lsize1 = { 0, 1, 4, 0 }; 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) { /* sid */ case 1: addSizeConstraint (pctxt, &sid_lsize1); stat = encodeConstrainedStringEx (pctxt, pvalue->u.sid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet, 4, 4, 7); if (stat != ASN_OK) return stat; break; /* mid */ case 2: addSizeConstraint (pctxt, &mid_lsize1); stat = encodeConstrainedStringEx (pctxt, pvalue->u.mid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet, 4, 4, 7); 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);}/**************************************************************//* *//* ANSI_41_UIM_systemMyTypeCode *//* *//**************************************************************/EXTERN int asn1PE_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue){ static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ANSI_41_UIM_systemAccessType *//* *//**************************************************************/EXTERN int asn1PE_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue){ static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; int stat = ASN_OK; addSizeConstraint (pctxt, &lsize1); stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data); if (stat != ASN_OK) return stat; return (stat);}/**************************************************************//* *//* ANSI_41_UIM_qualificationInformationCode *//* *//**************************************************************/EXTERN int asn1PE_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue){ static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 }; int stat = ASN_OK;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -