aboutsummaryrefslogtreecommitdiffstats
path: root/addons/ooh323c/src/h323
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2009-06-30 16:40:38 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2009-06-30 16:40:38 +0000
commite9d15cbea7a98184521c851500176da7aa424012 (patch)
treed3d6aa7ea86d11ecaa6e88efbc46a5dde1c63ea5 /addons/ooh323c/src/h323
parentb85bdd32a783a8f07004d41db8a696645685a331 (diff)
Move Asterisk-addons modules into the main Asterisk source tree.
Someone asked yesterday, "is there a good reason why we can't just put these modules in Asterisk?". After a brief discussion, as long as the modules are clearly set aside in their own directory and not enabled by default, it is perfectly fine. For more information about why a module goes in addons, see README-addons.txt. chan_ooh323 does not currently compile as it is behind some trunk API updates. However, it will not build by default, so it should be okay for now. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@204413 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'addons/ooh323c/src/h323')
-rw-r--r--addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h690
-rw-r--r--addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c1782
-rw-r--r--addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c1269
-rw-r--r--addons/ooh323c/src/h323/H323-MESSAGES.c112
-rw-r--r--addons/ooh323c/src/h323/H323-MESSAGES.h6510
-rw-r--r--addons/ooh323c/src/h323/H323-MESSAGESDec.c27199
-rw-r--r--addons/ooh323c/src/h323/H323-MESSAGESEnc.c22596
-rw-r--r--addons/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.c40
-rw-r--r--addons/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROL.h10937
-rw-r--r--addons/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLDec.c42170
-rw-r--r--addons/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c26599
11 files changed, 139904 insertions, 0 deletions
diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h
new file mode 100644
index 000000000..2f401b39a
--- /dev/null
+++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGES.h
@@ -0,0 +1,690 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+/**
+ * This file was generated by the Objective Systems ASN1C Compiler
+ * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
+ */
+#ifndef H235_SECURITY_MESSAGES_H
+#define H235_SECURITY_MESSAGES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "ooasn1.h"
+
+/**************************************************************/
+/* */
+/* ChallengeString */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ChallengeString {
+ ASN1UINT numocts;
+ ASN1OCTET data[128];
+} H235ChallengeString;
+
+EXTERN int asn1PE_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue);
+
+EXTERN int asn1PD_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue);
+
+/**************************************************************/
+/* */
+/* TimeStamp */
+/* */
+/**************************************************************/
+
+typedef ASN1UINT H235TimeStamp;
+
+EXTERN int asn1PE_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp value);
+
+EXTERN int asn1PD_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp* pvalue);
+
+/**************************************************************/
+/* */
+/* RandomVal */
+/* */
+/**************************************************************/
+
+typedef ASN1INT H235RandomVal;
+
+EXTERN int asn1PE_H235RandomVal (OOCTXT* pctxt, H235RandomVal value);
+
+EXTERN int asn1PD_H235RandomVal (OOCTXT* pctxt, H235RandomVal* pvalue);
+
+/**************************************************************/
+/* */
+/* Password */
+/* */
+/**************************************************************/
+
+typedef ASN1BMPString H235Password;
+
+EXTERN int asn1PE_H235Password (OOCTXT* pctxt, H235Password value);
+
+EXTERN int asn1PD_H235Password (OOCTXT* pctxt, H235Password* pvalue);
+
+/**************************************************************/
+/* */
+/* EncodedPwdCertToken */
+/* */
+/**************************************************************/
+
+typedef ASN1OpenType H235EncodedPwdCertToken;
+
+EXTERN int asn1PE_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken value);
+
+EXTERN int asn1PD_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken* pvalue);
+
+/**************************************************************/
+/* */
+/* NonStandardParameter */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235NonStandardParameter {
+ ASN1OBJID nonStandardIdentifier;
+ ASN1DynOctStr data;
+} H235NonStandardParameter;
+
+EXTERN int asn1PE_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue);
+
+EXTERN int asn1PD_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue);
+
+/**************************************************************/
+/* */
+/* AuthenticationBES */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H235AuthenticationBES_default_ 1
+#define T_H235AuthenticationBES_radius 2
+#define T_H235AuthenticationBES_extElem1 3
+
+typedef struct EXTERN H235AuthenticationBES {
+ int t;
+} H235AuthenticationBES;
+
+EXTERN int asn1PE_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue);
+
+EXTERN int asn1PD_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue);
+
+/**************************************************************/
+/* */
+/* AuthenticationMechanism */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H235AuthenticationMechanism_dhExch 1
+#define T_H235AuthenticationMechanism_pwdSymEnc 2
+#define T_H235AuthenticationMechanism_pwdHash 3
+#define T_H235AuthenticationMechanism_certSign 4
+#define T_H235AuthenticationMechanism_ipsec 5
+#define T_H235AuthenticationMechanism_tls 6
+#define T_H235AuthenticationMechanism_nonStandard 7
+#define T_H235AuthenticationMechanism_authenticationBES 8
+#define T_H235AuthenticationMechanism_extElem1 9
+
+typedef struct EXTERN H235AuthenticationMechanism {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ H235NonStandardParameter *nonStandard;
+ /* t = 8 */
+ H235AuthenticationBES *authenticationBES;
+ /* t = 9 */
+ } u;
+} H235AuthenticationMechanism;
+
+EXTERN int asn1PE_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue);
+
+EXTERN int asn1PD_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue);
+
+/**************************************************************/
+/* */
+/* DHset_halfkey */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235DHset_halfkey {
+ ASN1UINT numbits;
+ ASN1OCTET data[256];
+} H235DHset_halfkey;
+
+EXTERN int asn1PE_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue);
+
+EXTERN int asn1PD_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue);
+
+/**************************************************************/
+/* */
+/* DHset_modSize */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235DHset_modSize {
+ ASN1UINT numbits;
+ ASN1OCTET data[256];
+} H235DHset_modSize;
+
+EXTERN int asn1PE_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue);
+
+EXTERN int asn1PD_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue);
+
+/**************************************************************/
+/* */
+/* DHset_generator */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235DHset_generator {
+ ASN1UINT numbits;
+ ASN1OCTET data[256];
+} H235DHset_generator;
+
+EXTERN int asn1PE_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue);
+
+EXTERN int asn1PD_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue);
+
+/**************************************************************/
+/* */
+/* DHset */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235DHset {
+ H235DHset_halfkey halfkey;
+ H235DHset_modSize modSize;
+ H235DHset_generator generator;
+} H235DHset;
+
+EXTERN int asn1PE_H235DHset (OOCTXT* pctxt, H235DHset* pvalue);
+
+EXTERN int asn1PD_H235DHset (OOCTXT* pctxt, H235DHset* pvalue);
+
+/**************************************************************/
+/* */
+/* TypedCertificate */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235TypedCertificate {
+ ASN1OBJID type;
+ ASN1DynOctStr certificate;
+} H235TypedCertificate;
+
+EXTERN int asn1PE_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue);
+
+EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue);
+
+/**************************************************************/
+/* */
+/* Identifier */
+/* */
+/**************************************************************/
+
+typedef ASN1BMPString H235Identifier;
+
+EXTERN int asn1PE_H235Identifier (OOCTXT* pctxt, H235Identifier value);
+
+EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue);
+
+/**************************************************************/
+/* */
+/* ECpoint_x */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECpoint_x {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECpoint_x;
+
+EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue);
+
+EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue);
+
+/**************************************************************/
+/* */
+/* ECpoint_y */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECpoint_y {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECpoint_y;
+
+EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue);
+
+EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue);
+
+/**************************************************************/
+/* */
+/* ECpoint */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECpoint {
+ struct {
+ unsigned xPresent : 1;
+ unsigned yPresent : 1;
+ } m;
+ H235ECpoint_x x;
+ H235ECpoint_y y;
+} H235ECpoint;
+
+EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue);
+
+EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_modulus */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdhp_modulus {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdhp_modulus;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassA */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassA {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdhp_weierstrassA;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassB */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdhp_weierstrassB {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdhp_weierstrassB;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdhp {
+ H235ECpoint public_key;
+ H235ECKASDH_eckasdhp_modulus modulus;
+ H235ECpoint base;
+ H235ECKASDH_eckasdhp_weierstrassA weierstrassA;
+ H235ECKASDH_eckasdhp_weierstrassB weierstrassB;
+} H235ECKASDH_eckasdhp;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_fieldSize */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdh2_fieldSize {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdh2_fieldSize;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassA */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassA {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdh2_weierstrassA;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassB */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdh2_weierstrassB {
+ ASN1UINT numbits;
+ ASN1OCTET data[64];
+} H235ECKASDH_eckasdh2_weierstrassB;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2 */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ECKASDH_eckasdh2 {
+ H235ECpoint public_key;
+ H235ECKASDH_eckasdh2_fieldSize fieldSize;
+ H235ECpoint base;
+ H235ECKASDH_eckasdh2_weierstrassA weierstrassA;
+ H235ECKASDH_eckasdh2_weierstrassB weierstrassB;
+} H235ECKASDH_eckasdh2;
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue);
+
+/**************************************************************/
+/* */
+/* ECKASDH */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H235ECKASDH_eckasdhp 1
+#define T_H235ECKASDH_eckasdh2 2
+#define T_H235ECKASDH_extElem1 3
+
+typedef struct EXTERN H235ECKASDH {
+ int t;
+ union {
+ /* t = 1 */
+ H235ECKASDH_eckasdhp *eckasdhp;
+ /* t = 2 */
+ H235ECKASDH_eckasdh2 *eckasdh2;
+ /* t = 3 */
+ } u;
+} H235ECKASDH;
+
+EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue);
+
+EXTERN int asn1PD_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue);
+
+/**************************************************************/
+/* */
+/* ClearToken */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ClearToken {
+ struct {
+ unsigned timeStampPresent : 1;
+ unsigned passwordPresent : 1;
+ unsigned dhkeyPresent : 1;
+ unsigned challengePresent : 1;
+ unsigned randomPresent : 1;
+ unsigned certificatePresent : 1;
+ unsigned generalIDPresent : 1;
+ unsigned nonStandardPresent : 1;
+ unsigned eckasdhkeyPresent : 1;
+ unsigned sendersIDPresent : 1;
+ } m;
+ ASN1OBJID tokenOID;
+ H235TimeStamp timeStamp;
+ H235Password password;
+ H235DHset dhkey;
+ H235ChallengeString challenge;
+ H235RandomVal random;
+ H235TypedCertificate certificate;
+ H235Identifier generalID;
+ H235NonStandardParameter nonStandard;
+ H235ECKASDH eckasdhkey;
+ H235Identifier sendersID;
+} H235ClearToken;
+
+EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue);
+
+EXTERN int asn1PD_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue);
+
+/**************************************************************/
+/* */
+/* IV8 */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235IV8 {
+ ASN1UINT numocts;
+ ASN1OCTET data[8];
+} H235IV8;
+
+EXTERN int asn1PE_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue);
+
+EXTERN int asn1PD_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue);
+
+/**************************************************************/
+/* */
+/* IV16 */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235IV16 {
+ ASN1UINT numocts;
+ ASN1OCTET data[16];
+} H235IV16;
+
+EXTERN int asn1PE_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue);
+
+EXTERN int asn1PD_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue);
+
+/**************************************************************/
+/* */
+/* Params */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235Params {
+ struct {
+ unsigned ranIntPresent : 1;
+ unsigned iv8Present : 1;
+ unsigned iv16Present : 1;
+ } m;
+ ASN1INT ranInt;
+ H235IV8 iv8;
+ H235IV16 iv16;
+} H235Params;
+
+EXTERN int asn1PE_H235Params (OOCTXT* pctxt, H235Params* pvalue);
+
+EXTERN int asn1PD_H235Params (OOCTXT* pctxt, H235Params* pvalue);
+
+/**************************************************************/
+/* */
+/* ENCRYPTED */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235ENCRYPTED {
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynOctStr encryptedData;
+} H235ENCRYPTED;
+
+EXTERN int asn1PE_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue);
+
+EXTERN int asn1PD_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoEncryptedToken */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235CryptoToken_cryptoEncryptedToken {
+ ASN1OBJID tokenOID;
+ H235ENCRYPTED token;
+} H235CryptoToken_cryptoEncryptedToken;
+
+EXTERN int asn1PE_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue);
+
+EXTERN int asn1PD_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue);
+
+/**************************************************************/
+/* */
+/* EncodedGeneralToken */
+/* */
+/**************************************************************/
+
+typedef ASN1OpenType H235EncodedGeneralToken;
+
+EXTERN int asn1PE_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken value);
+
+EXTERN int asn1PD_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken_token */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235CryptoToken_cryptoSignedToken_token {
+ H235EncodedGeneralToken toBeSigned;
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynBitStr signature;
+} H235CryptoToken_cryptoSignedToken_token;
+
+EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue);
+
+EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235CryptoToken_cryptoSignedToken {
+ ASN1OBJID tokenOID;
+ H235CryptoToken_cryptoSignedToken_token token;
+} H235CryptoToken_cryptoSignedToken;
+
+EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue);
+
+EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue);
+
+/**************************************************************/
+/* */
+/* HASHED */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235HASHED {
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynBitStr hash;
+} H235HASHED;
+
+EXTERN int asn1PE_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue);
+
+EXTERN int asn1PD_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoHashedToken */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H235CryptoToken_cryptoHashedToken {
+ ASN1OBJID tokenOID;
+ H235ClearToken hashedVals;
+ H235HASHED token;
+} H235CryptoToken_cryptoHashedToken;
+
+EXTERN int asn1PE_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue);
+
+EXTERN int asn1PD_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoToken */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H235CryptoToken_cryptoEncryptedToken 1
+#define T_H235CryptoToken_cryptoSignedToken 2
+#define T_H235CryptoToken_cryptoHashedToken 3
+#define T_H235CryptoToken_cryptoPwdEncr 4
+#define T_H235CryptoToken_extElem1 5
+
+typedef struct EXTERN H235CryptoToken {
+ int t;
+ union {
+ /* t = 1 */
+ H235CryptoToken_cryptoEncryptedToken *cryptoEncryptedToken;
+ /* t = 2 */
+ H235CryptoToken_cryptoSignedToken *cryptoSignedToken;
+ /* t = 3 */
+ H235CryptoToken_cryptoHashedToken *cryptoHashedToken;
+ /* t = 4 */
+ H235ENCRYPTED *cryptoPwdEncr;
+ /* t = 5 */
+ } u;
+} H235CryptoToken;
+
+EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue);
+
+EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c
new file mode 100644
index 000000000..897bf0eec
--- /dev/null
+++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESDec.c
@@ -0,0 +1,1782 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+/**
+ * This file was generated by the Objective Systems ASN1C Compiler
+ * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
+ */
+#include "ooasn1.h"
+#include "H235-SECURITY-MESSAGES.h"
+#include "eventHandler.h"
+
+/**************************************************************/
+/* */
+/* ChallengeString */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 8, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TimeStamp */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConsUnsigned (pctxt, pvalue, 1U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* RandomVal */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235RandomVal (OOCTXT* pctxt, H235RandomVal* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeUnconsInteger (pctxt, pvalue);
+ if (stat != ASN_OK) return stat;
+ invokeIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Password */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235Password (OOCTXT* pctxt, H235Password* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBMPString (pctxt, pvalue, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EncodedPwdCertToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts);
+ if (stat != ASN_OK) return stat;
+ invokeOpenTypeValue
+ (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NonStandardParameter */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode nonStandardIdentifier */
+
+ invokeStartElement (pctxt, "nonStandardIdentifier", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->nonStandardIdentifier);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->nonStandardIdentifier.numids, pvalue->nonStandardIdentifier.subid);
+
+ invokeEndElement (pctxt, "nonStandardIdentifier", -1);
+
+ /* decode data */
+
+ invokeStartElement (pctxt, "data", -1);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->data);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->data.numocts, pvalue->data.data);
+
+ invokeEndElement (pctxt, "data", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* AuthenticationBES */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* default_ */
+ case 0:
+ invokeStartElement (pctxt, "default_", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "default_", -1);
+
+ break;
+
+ /* radius */
+ case 1:
+ invokeStartElement (pctxt, "radius", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "radius", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* AuthenticationMechanism */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 6);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* dhExch */
+ case 0:
+ invokeStartElement (pctxt, "dhExch", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "dhExch", -1);
+
+ break;
+
+ /* pwdSymEnc */
+ case 1:
+ invokeStartElement (pctxt, "pwdSymEnc", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "pwdSymEnc", -1);
+
+ break;
+
+ /* pwdHash */
+ case 2:
+ invokeStartElement (pctxt, "pwdHash", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "pwdHash", -1);
+
+ break;
+
+ /* certSign */
+ case 3:
+ invokeStartElement (pctxt, "certSign", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "certSign", -1);
+
+ break;
+
+ /* ipsec */
+ case 4:
+ invokeStartElement (pctxt, "ipsec", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "ipsec", -1);
+
+ break;
+
+ /* tls */
+ case 5:
+ invokeStartElement (pctxt, "tls", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "tls", -1);
+
+ break;
+
+ /* nonStandard */
+ case 6:
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H235NonStandardParameter);
+
+ stat = asn1PD_H235NonStandardParameter (pctxt, pvalue->u.nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 8;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ copyContext (&lctxt, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (pvalue->t) {
+ /* authenticationBES */
+ case 8:
+ invokeStartElement (pctxt, "authenticationBES", -1);
+
+ pvalue->u.authenticationBES = ALLOC_ASN1ELEM (pctxt, H235AuthenticationBES);
+
+ stat = asn1PD_H235AuthenticationBES (pctxt, pvalue->u.authenticationBES);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "authenticationBES", -1);
+
+ break;
+
+ default:;
+ }
+
+ copyContext (pctxt, &lctxt);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_halfkey */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_modSize */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_generator */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235DHset (OOCTXT* pctxt, H235DHset* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode halfkey */
+
+ invokeStartElement (pctxt, "halfkey", -1);
+
+ stat = asn1PD_H235DHset_halfkey (pctxt, &pvalue->halfkey);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "halfkey", -1);
+
+ /* decode modSize */
+
+ invokeStartElement (pctxt, "modSize", -1);
+
+ stat = asn1PD_H235DHset_modSize (pctxt, &pvalue->modSize);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "modSize", -1);
+
+ /* decode generator */
+
+ invokeStartElement (pctxt, "generator", -1);
+
+ stat = asn1PD_H235DHset_generator (pctxt, &pvalue->generator);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "generator", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TypedCertificate */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode type */
+
+ invokeStartElement (pctxt, "type", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->type);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->type.numids, pvalue->type.subid);
+
+ invokeEndElement (pctxt, "type", -1);
+
+ /* decode certificate */
+
+ invokeStartElement (pctxt, "certificate", -1);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->certificate);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->certificate.numocts, pvalue->certificate.data);
+
+ invokeEndElement (pctxt, "certificate", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Identifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235Identifier (OOCTXT* pctxt, H235Identifier* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBMPString (pctxt, pvalue, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint_x */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint_y */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.xPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.yPresent = optbit;
+
+ /* decode x */
+
+ if (pvalue->m.xPresent) {
+ invokeStartElement (pctxt, "x", -1);
+
+ stat = asn1PD_H235ECpoint_x (pctxt, &pvalue->x);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "x", -1);
+ }
+
+ /* decode y */
+
+ if (pvalue->m.yPresent) {
+ invokeStartElement (pctxt, "y", -1);
+
+ stat = asn1PD_H235ECpoint_y (pctxt, &pvalue->y);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "y", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_modulus */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassA */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassB */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode public_key */
+
+ invokeStartElement (pctxt, "public_key", -1);
+
+ stat = asn1PD_H235ECpoint (pctxt, &pvalue->public_key);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "public_key", -1);
+
+ /* decode modulus */
+
+ invokeStartElement (pctxt, "modulus", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "modulus", -1);
+
+ /* decode base */
+
+ invokeStartElement (pctxt, "base", -1);
+
+ stat = asn1PD_H235ECpoint (pctxt, &pvalue->base);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "base", -1);
+
+ /* decode weierstrassA */
+
+ invokeStartElement (pctxt, "weierstrassA", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "weierstrassA", -1);
+
+ /* decode weierstrassB */
+
+ invokeStartElement (pctxt, "weierstrassB", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "weierstrassB", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_fieldSize */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassA */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassB */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode public_key */
+
+ invokeStartElement (pctxt, "public_key", -1);
+
+ stat = asn1PD_H235ECpoint (pctxt, &pvalue->public_key);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "public_key", -1);
+
+ /* decode fieldSize */
+
+ invokeStartElement (pctxt, "fieldSize", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdh2_fieldSize (pctxt, &pvalue->fieldSize);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "fieldSize", -1);
+
+ /* decode base */
+
+ invokeStartElement (pctxt, "base", -1);
+
+ stat = asn1PD_H235ECpoint (pctxt, &pvalue->base);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "base", -1);
+
+ /* decode weierstrassA */
+
+ invokeStartElement (pctxt, "weierstrassA", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdh2_weierstrassA (pctxt, &pvalue->weierstrassA);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "weierstrassA", -1);
+
+ /* decode weierstrassB */
+
+ invokeStartElement (pctxt, "weierstrassB", -1);
+
+ stat = asn1PD_H235ECKASDH_eckasdh2_weierstrassB (pctxt, &pvalue->weierstrassB);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "weierstrassB", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* eckasdhp */
+ case 0:
+ invokeStartElement (pctxt, "eckasdhp", -1);
+
+ pvalue->u.eckasdhp = ALLOC_ASN1ELEM (pctxt, H235ECKASDH_eckasdhp);
+
+ stat = asn1PD_H235ECKASDH_eckasdhp (pctxt, pvalue->u.eckasdhp);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "eckasdhp", -1);
+
+ break;
+
+ /* eckasdh2 */
+ case 1:
+ invokeStartElement (pctxt, "eckasdh2", -1);
+
+ pvalue->u.eckasdh2 = ALLOC_ASN1ELEM (pctxt, H235ECKASDH_eckasdh2);
+
+ stat = asn1PD_H235ECKASDH_eckasdh2 (pctxt, pvalue->u.eckasdh2);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "eckasdh2", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ClearToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.timeStampPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.passwordPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.dhkeyPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.challengePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.randomPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.certificatePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.generalIDPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardPresent = optbit;
+
+ /* decode tokenOID */
+
+ invokeStartElement (pctxt, "tokenOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid);
+
+ invokeEndElement (pctxt, "tokenOID", -1);
+
+ /* decode timeStamp */
+
+ if (pvalue->m.timeStampPresent) {
+ invokeStartElement (pctxt, "timeStamp", -1);
+
+ stat = asn1PD_H235TimeStamp (pctxt, &pvalue->timeStamp);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "timeStamp", -1);
+ }
+
+ /* decode password */
+
+ if (pvalue->m.passwordPresent) {
+ invokeStartElement (pctxt, "password", -1);
+
+ stat = asn1PD_H235Password (pctxt, &pvalue->password);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "password", -1);
+ }
+
+ /* decode dhkey */
+
+ if (pvalue->m.dhkeyPresent) {
+ invokeStartElement (pctxt, "dhkey", -1);
+
+ stat = asn1PD_H235DHset (pctxt, &pvalue->dhkey);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dhkey", -1);
+ }
+
+ /* decode challenge */
+
+ if (pvalue->m.challengePresent) {
+ invokeStartElement (pctxt, "challenge", -1);
+
+ stat = asn1PD_H235ChallengeString (pctxt, &pvalue->challenge);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "challenge", -1);
+ }
+
+ /* decode random */
+
+ if (pvalue->m.randomPresent) {
+ invokeStartElement (pctxt, "random", -1);
+
+ stat = asn1PD_H235RandomVal (pctxt, &pvalue->random);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "random", -1);
+ }
+
+ /* decode certificate */
+
+ if (pvalue->m.certificatePresent) {
+ invokeStartElement (pctxt, "certificate", -1);
+
+ stat = asn1PD_H235TypedCertificate (pctxt, &pvalue->certificate);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "certificate", -1);
+ }
+
+ /* decode generalID */
+
+ if (pvalue->m.generalIDPresent) {
+ invokeStartElement (pctxt, "generalID", -1);
+
+ stat = asn1PD_H235Identifier (pctxt, &pvalue->generalID);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "generalID", -1);
+ }
+
+ /* decode nonStandard */
+
+ if (pvalue->m.nonStandardPresent) {
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ stat = asn1PD_H235NonStandardParameter (pctxt, &pvalue->nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.eckasdhkeyPresent = 1;
+
+ invokeStartElement (pctxt, "eckasdhkey", -1);
+
+ stat = asn1PD_H235ECKASDH (pctxt, &pvalue->eckasdhkey);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "eckasdhkey", -1);
+ break;
+
+ case 1:
+ pvalue->m.sendersIDPresent = 1;
+
+ invokeStartElement (pctxt, "sendersID", -1);
+
+ stat = asn1PD_H235Identifier (pctxt, &pvalue->sendersID);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "sendersID", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* IV8 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 8, 8, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* IV16 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Params */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235Params (OOCTXT* pctxt, H235Params* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.ranIntPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.iv8Present = optbit;
+
+ /* decode ranInt */
+
+ if (pvalue->m.ranIntPresent) {
+ invokeStartElement (pctxt, "ranInt", -1);
+
+ stat = decodeUnconsInteger (pctxt, &pvalue->ranInt);
+ if (stat != ASN_OK) return stat;
+ invokeIntValue (pctxt, pvalue->ranInt);
+
+ invokeEndElement (pctxt, "ranInt", -1);
+ }
+
+ /* decode iv8 */
+
+ if (pvalue->m.iv8Present) {
+ invokeStartElement (pctxt, "iv8", -1);
+
+ stat = asn1PD_H235IV8 (pctxt, &pvalue->iv8);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "iv8", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 1 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.iv16Present = 1;
+
+ invokeStartElement (pctxt, "iv16", -1);
+
+ stat = asn1PD_H235IV16 (pctxt, &pvalue->iv16);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "iv16", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ENCRYPTED */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode encryptedData */
+
+ invokeStartElement (pctxt, "encryptedData", -1);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->encryptedData);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->encryptedData.numocts, pvalue->encryptedData.data);
+
+ invokeEndElement (pctxt, "encryptedData", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoEncryptedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode tokenOID */
+
+ invokeStartElement (pctxt, "tokenOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid);
+
+ invokeEndElement (pctxt, "tokenOID", -1);
+
+ /* decode token */
+
+ invokeStartElement (pctxt, "token", -1);
+
+ stat = asn1PD_H235ENCRYPTED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "token", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EncodedGeneralToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts);
+ if (stat != ASN_OK) return stat;
+ invokeOpenTypeValue
+ (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken_token */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode toBeSigned */
+
+ invokeStartElement (pctxt, "toBeSigned", -1);
+
+ stat = asn1PD_H235EncodedGeneralToken (pctxt, &pvalue->toBeSigned);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "toBeSigned", -1);
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode signature */
+
+ invokeStartElement (pctxt, "signature", -1);
+
+ stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->signature);
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->signature.numbits, pvalue->signature.data);
+
+ invokeEndElement (pctxt, "signature", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode tokenOID */
+
+ invokeStartElement (pctxt, "tokenOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid);
+
+ invokeEndElement (pctxt, "tokenOID", -1);
+
+ /* decode token */
+
+ invokeStartElement (pctxt, "token", -1);
+
+ stat = asn1PD_H235CryptoToken_cryptoSignedToken_token (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "token", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* HASHED */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode hash */
+
+ invokeStartElement (pctxt, "hash", -1);
+
+ stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->hash);
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->hash.numbits, pvalue->hash.data);
+
+ invokeEndElement (pctxt, "hash", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoHashedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode tokenOID */
+
+ invokeStartElement (pctxt, "tokenOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->tokenOID.numids, pvalue->tokenOID.subid);
+
+ invokeEndElement (pctxt, "tokenOID", -1);
+
+ /* decode hashedVals */
+
+ invokeStartElement (pctxt, "hashedVals", -1);
+
+ stat = asn1PD_H235ClearToken (pctxt, &pvalue->hashedVals);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "hashedVals", -1);
+
+ /* decode token */
+
+ invokeStartElement (pctxt, "token", -1);
+
+ stat = asn1PD_H235HASHED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "token", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 3);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* cryptoEncryptedToken */
+ case 0:
+ invokeStartElement (pctxt, "cryptoEncryptedToken", -1);
+
+ pvalue->u.cryptoEncryptedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoEncryptedToken);
+
+ stat = asn1PD_H235CryptoToken_cryptoEncryptedToken (pctxt, pvalue->u.cryptoEncryptedToken);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoEncryptedToken", -1);
+
+ break;
+
+ /* cryptoSignedToken */
+ case 1:
+ invokeStartElement (pctxt, "cryptoSignedToken", -1);
+
+ pvalue->u.cryptoSignedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoSignedToken);
+
+ stat = asn1PD_H235CryptoToken_cryptoSignedToken (pctxt, pvalue->u.cryptoSignedToken);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoSignedToken", -1);
+
+ break;
+
+ /* cryptoHashedToken */
+ case 2:
+ invokeStartElement (pctxt, "cryptoHashedToken", -1);
+
+ pvalue->u.cryptoHashedToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken_cryptoHashedToken);
+
+ stat = asn1PD_H235CryptoToken_cryptoHashedToken (pctxt, pvalue->u.cryptoHashedToken);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoHashedToken", -1);
+
+ break;
+
+ /* cryptoPwdEncr */
+ case 3:
+ invokeStartElement (pctxt, "cryptoPwdEncr", -1);
+
+ pvalue->u.cryptoPwdEncr = ALLOC_ASN1ELEM (pctxt, H235ENCRYPTED);
+
+ stat = asn1PD_H235ENCRYPTED (pctxt, pvalue->u.cryptoPwdEncr);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoPwdEncr", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 5;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
diff --git a/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c
new file mode 100644
index 000000000..8530c5198
--- /dev/null
+++ b/addons/ooh323c/src/h323/H235-SECURITY-MESSAGESEnc.c
@@ -0,0 +1,1269 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+/**
+ * This file was generated by the Objective Systems ASN1C Compiler
+ * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
+ */
+#include "ooasn1.h"
+#include "H235-SECURITY-MESSAGES.h"
+
+/**************************************************************/
+/* */
+/* ChallengeString */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ChallengeString (OOCTXT* pctxt, H235ChallengeString* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 8, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TimeStamp */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235TimeStamp (OOCTXT* pctxt, H235TimeStamp value)
+{
+ int stat = ASN_OK;
+
+ stat = encodeConsUnsigned (pctxt, value, 1U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* RandomVal */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235RandomVal (OOCTXT* pctxt, H235RandomVal value)
+{
+ int stat = ASN_OK;
+
+ stat = encodeUnconsInteger (pctxt, value);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Password */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235Password (OOCTXT* pctxt, H235Password value)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBMPString (pctxt, value, 0);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EncodedPwdCertToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235EncodedPwdCertToken (OOCTXT* pctxt, H235EncodedPwdCertToken value)
+{
+ int stat = ASN_OK;
+
+ stat = encodeOpenType (pctxt, value.numocts, value.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NonStandardParameter */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235NonStandardParameter (OOCTXT* pctxt, H235NonStandardParameter* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode nonStandardIdentifier */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->nonStandardIdentifier);
+ if (stat != ASN_OK) return stat;
+
+ /* encode data */
+
+ stat = encodeOctetString (pctxt, pvalue->data.numocts, pvalue->data.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* AuthenticationBES */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235AuthenticationBES (OOCTXT* pctxt, H235AuthenticationBES* 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)
+ {
+ /* default_ */
+ case 1:
+ /* NULL */
+ break;
+
+ /* radius */
+ case 2:
+ /* NULL */
+ 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);
+}
+
+/**************************************************************/
+/* */
+/* AuthenticationMechanism */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235AuthenticationMechanism (OOCTXT* pctxt, H235AuthenticationMechanism* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ extbit = (ASN1BOOL)(pvalue->t > 7);
+
+ encodeBit (pctxt, extbit);
+
+ if (!extbit) {
+
+ /* Encode choice index value */
+
+ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 6);
+ if (stat != ASN_OK) return stat;
+
+ /* Encode root element data value */
+
+ switch (pvalue->t)
+ {
+ /* dhExch */
+ case 1:
+ /* NULL */
+ break;
+
+ /* pwdSymEnc */
+ case 2:
+ /* NULL */
+ break;
+
+ /* pwdHash */
+ case 3:
+ /* NULL */
+ break;
+
+ /* certSign */
+ case 4:
+ /* NULL */
+ break;
+
+ /* ipsec */
+ case 5:
+ /* NULL */
+ break;
+
+ /* tls */
+ case 6:
+ /* NULL */
+ break;
+
+ /* nonStandard */
+ case 7:
+ stat = asn1PE_H235NonStandardParameter (pctxt, pvalue->u.nonStandard);
+ 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 */
+
+ initContext (&lctxt);
+ stat = setPERBuffer (&lctxt, 0, 0, TRUE);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ switch (pvalue->t)
+ {
+ /* authenticationBES */
+ case 8:
+ stat = asn1PE_H235AuthenticationBES (&lctxt, pvalue->u.authenticationBES);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+ openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
+ break;
+
+ default:
+ ;
+ }
+
+ stat = encodeByteAlign (pctxt);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = encodeOpenType (pctxt, openType.numocts, openType.data);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ freeContext (&lctxt);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_halfkey */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235DHset_halfkey (OOCTXT* pctxt, H235DHset_halfkey* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_modSize */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235DHset_modSize (OOCTXT* pctxt, H235DHset_modSize* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset_generator */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235DHset_generator (OOCTXT* pctxt, H235DHset_generator* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 2048, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DHset */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235DHset (OOCTXT* pctxt, H235DHset* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ extbit = 0;
+
+ encodeBit (pctxt, extbit);
+
+ /* encode halfkey */
+
+ stat = asn1PE_H235DHset_halfkey (pctxt, &pvalue->halfkey);
+ if (stat != ASN_OK) return stat;
+
+ /* encode modSize */
+
+ stat = asn1PE_H235DHset_modSize (pctxt, &pvalue->modSize);
+ if (stat != ASN_OK) return stat;
+
+ /* encode generator */
+
+ stat = asn1PE_H235DHset_generator (pctxt, &pvalue->generator);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TypedCertificate */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235TypedCertificate (OOCTXT* pctxt, H235TypedCertificate* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ extbit = 0;
+
+ encodeBit (pctxt, extbit);
+
+ /* encode type */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->type);
+ if (stat != ASN_OK) return stat;
+
+ /* encode certificate */
+
+ stat = encodeOctetString (pctxt, pvalue->certificate.numocts, pvalue->certificate.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Identifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235Identifier (OOCTXT* pctxt, H235Identifier value)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBMPString (pctxt, value, 0);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint_x */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECpoint_x (OOCTXT* pctxt, H235ECpoint_x* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint_y */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECpoint_y (OOCTXT* pctxt, H235ECpoint_y* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECpoint */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECpoint (OOCTXT* pctxt, H235ECpoint* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ extbit = 0;
+
+ encodeBit (pctxt, extbit);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.xPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.yPresent);
+
+ /* encode x */
+
+ if (pvalue->m.xPresent) {
+ stat = asn1PE_H235ECpoint_x (pctxt, &pvalue->x);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode y */
+
+ if (pvalue->m.yPresent) {
+ stat = asn1PE_H235ECpoint_y (pctxt, &pvalue->y);
+ if (stat != ASN_OK) return stat;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_modulus */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_modulus (OOCTXT* pctxt, H235ECKASDH_eckasdhp_modulus* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassA */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassA* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp_weierstrassB */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdhp_weierstrassB* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdhp */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdhp (OOCTXT* pctxt, H235ECKASDH_eckasdhp* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode public_key */
+
+ stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key);
+ if (stat != ASN_OK) return stat;
+
+ /* encode modulus */
+
+ stat = asn1PE_H235ECKASDH_eckasdhp_modulus (pctxt, &pvalue->modulus);
+ if (stat != ASN_OK) return stat;
+
+ /* encode base */
+
+ stat = asn1PE_H235ECpoint (pctxt, &pvalue->base);
+ if (stat != ASN_OK) return stat;
+
+ /* encode weierstrassA */
+
+ stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassA (pctxt, &pvalue->weierstrassA);
+ if (stat != ASN_OK) return stat;
+
+ /* encode weierstrassB */
+
+ stat = asn1PE_H235ECKASDH_eckasdhp_weierstrassB (pctxt, &pvalue->weierstrassB);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_fieldSize */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_fieldSize (OOCTXT* pctxt, H235ECKASDH_eckasdh2_fieldSize* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassA */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassA (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassA* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2_weierstrassB */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2_weierstrassB (OOCTXT* pctxt, H235ECKASDH_eckasdh2_weierstrassB* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 0, 511, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH_eckasdh2 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH_eckasdh2 (OOCTXT* pctxt, H235ECKASDH_eckasdh2* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode public_key */
+
+ stat = asn1PE_H235ECpoint (pctxt, &pvalue->public_key);
+ if (stat != ASN_OK) return stat;
+
+ /* encode fieldSize */
+
+ stat = asn1PE_H235ECKASDH_eckasdh2_fieldSize (pctxt, &pvalue->fieldSize);
+ if (stat != ASN_OK) return stat;
+
+ /* encode base */
+
+ stat = asn1PE_H235ECpoint (pctxt, &pvalue->base);
+ if (stat != ASN_OK) return stat;
+
+ /* encode weierstrassA */
+
+ stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassA (pctxt, &pvalue->weierstrassA);
+ if (stat != ASN_OK) return stat;
+
+ /* encode weierstrassB */
+
+ stat = asn1PE_H235ECKASDH_eckasdh2_weierstrassB (pctxt, &pvalue->weierstrassB);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ECKASDH */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ECKASDH (OOCTXT* pctxt, H235ECKASDH* 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)
+ {
+ /* eckasdhp */
+ case 1:
+ stat = asn1PE_H235ECKASDH_eckasdhp (pctxt, pvalue->u.eckasdhp);
+ if (stat != ASN_OK) return stat;
+ break;
+
+ /* eckasdh2 */
+ case 2:
+ stat = asn1PE_H235ECKASDH_eckasdh2 (pctxt, pvalue->u.eckasdh2);
+ 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);
+}
+
+/**************************************************************/
+/* */
+/* ClearToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ClearToken (OOCTXT* pctxt, H235ClearToken* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+ ASN1OpenType openType;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ extbit = (ASN1BOOL)(pvalue->m.eckasdhkeyPresent ||
+ pvalue->m.sendersIDPresent);
+
+ encodeBit (pctxt, extbit);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.timeStampPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.passwordPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.dhkeyPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.challengePresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.randomPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.certificatePresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.generalIDPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
+
+ /* encode tokenOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode timeStamp */
+
+ if (pvalue->m.timeStampPresent) {
+ stat = asn1PE_H235TimeStamp (pctxt, pvalue->timeStamp);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode password */
+
+ if (pvalue->m.passwordPresent) {
+ stat = asn1PE_H235Password (pctxt, pvalue->password);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode dhkey */
+
+ if (pvalue->m.dhkeyPresent) {
+ stat = asn1PE_H235DHset (pctxt, &pvalue->dhkey);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode challenge */
+
+ if (pvalue->m.challengePresent) {
+ stat = asn1PE_H235ChallengeString (pctxt, &pvalue->challenge);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode random */
+
+ if (pvalue->m.randomPresent) {
+ stat = asn1PE_H235RandomVal (pctxt, pvalue->random);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode certificate */
+
+ if (pvalue->m.certificatePresent) {
+ stat = asn1PE_H235TypedCertificate (pctxt, &pvalue->certificate);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode generalID */
+
+ if (pvalue->m.generalIDPresent) {
+ stat = asn1PE_H235Identifier (pctxt, pvalue->generalID);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode nonStandard */
+
+ if (pvalue->m.nonStandardPresent) {
+ stat = asn1PE_H235NonStandardParameter (pctxt, &pvalue->nonStandard);
+ if (stat != ASN_OK) return stat;
+ }
+
+ if (extbit) {
+
+ /* encode extension optional bits length */
+
+ stat = encodeSmallNonNegWholeNumber (pctxt, 1);
+ if (stat != ASN_OK) return stat;
+
+ /* encode optional bits */
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.eckasdhkeyPresent);
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.sendersIDPresent);
+ /* encode extension elements */
+
+ if (pvalue->m.eckasdhkeyPresent) {
+ initContext (&lctxt);
+ stat = setPERBuffer (&lctxt, 0, 0, TRUE);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = asn1PE_H235ECKASDH (&lctxt, &pvalue->eckasdhkey);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = encodeByteAlign (&lctxt);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
+
+ stat = encodeOpenType (pctxt, openType.numocts, openType.data);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ freeContext (&lctxt);
+ }
+
+ if (pvalue->m.sendersIDPresent) {
+ initContext (&lctxt);
+ stat = setPERBuffer (&lctxt, 0, 0, TRUE);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = asn1PE_H235Identifier (&lctxt, pvalue->sendersID);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = encodeByteAlign (&lctxt);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
+
+ stat = encodeOpenType (pctxt, openType.numocts, openType.data);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ freeContext (&lctxt);
+ }
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* IV8 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235IV8 (OOCTXT* pctxt, H235IV8* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 8, 8, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* IV16 */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235IV16 (OOCTXT* pctxt, H235IV16* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Params */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235Params (OOCTXT* pctxt, H235Params* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+ ASN1OpenType openType;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ extbit = (ASN1BOOL)(pvalue->m.iv16Present);
+
+ encodeBit (pctxt, extbit);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.ranIntPresent);
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.iv8Present);
+
+ /* encode ranInt */
+
+ if (pvalue->m.ranIntPresent) {
+ stat = encodeUnconsInteger (pctxt, pvalue->ranInt);
+ if (stat != ASN_OK) return stat;
+ }
+
+ /* encode iv8 */
+
+ if (pvalue->m.iv8Present) {
+ stat = asn1PE_H235IV8 (pctxt, &pvalue->iv8);
+ if (stat != ASN_OK) return stat;
+ }
+
+ if (extbit) {
+
+ /* encode extension optional bits length */
+
+ stat = encodeSmallNonNegWholeNumber (pctxt, 0);
+ if (stat != ASN_OK) return stat;
+
+ /* encode optional bits */
+
+ encodeBit (pctxt, (ASN1BOOL)pvalue->m.iv16Present);
+ /* encode extension elements */
+
+ if (pvalue->m.iv16Present) {
+ initContext (&lctxt);
+ stat = setPERBuffer (&lctxt, 0, 0, TRUE);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = asn1PE_H235IV16 (&lctxt, &pvalue->iv16);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ stat = encodeByteAlign (&lctxt);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
+
+ stat = encodeOpenType (pctxt, openType.numocts, openType.data);
+ if (stat != ASN_OK) return freeContext (&lctxt), stat;
+
+ freeContext (&lctxt);
+ }
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ENCRYPTED */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235ENCRYPTED (OOCTXT* pctxt, H235ENCRYPTED* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode algorithmOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode paramS */
+
+ stat = asn1PE_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ /* encode encryptedData */
+
+ stat = encodeOctetString (pctxt, pvalue->encryptedData.numocts, pvalue->encryptedData.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoEncryptedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235CryptoToken_cryptoEncryptedToken (OOCTXT* pctxt, H235CryptoToken_cryptoEncryptedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode tokenOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode token */
+
+ stat = asn1PE_H235ENCRYPTED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EncodedGeneralToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235EncodedGeneralToken (OOCTXT* pctxt, H235EncodedGeneralToken value)
+{
+ int stat = ASN_OK;
+
+ stat = encodeOpenType (pctxt, value.numocts, value.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken_token */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken_token (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken_token* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode toBeSigned */
+
+ stat = asn1PE_H235EncodedGeneralToken (pctxt, pvalue->toBeSigned);
+ if (stat != ASN_OK) return stat;
+
+ /* encode algorithmOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode paramS */
+
+ stat = asn1PE_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ /* encode signature */
+
+ stat = encodeBitString (pctxt, pvalue->signature.numbits, pvalue->signature.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoSignedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235CryptoToken_cryptoSignedToken (OOCTXT* pctxt, H235CryptoToken_cryptoSignedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode tokenOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode token */
+
+ stat = asn1PE_H235CryptoToken_cryptoSignedToken_token (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* HASHED */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235HASHED (OOCTXT* pctxt, H235HASHED* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode algorithmOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode paramS */
+
+ stat = asn1PE_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ /* encode hash */
+
+ stat = encodeBitString (pctxt, pvalue->hash.numbits, pvalue->hash.data);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken_cryptoHashedToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235CryptoToken_cryptoHashedToken (OOCTXT* pctxt, H235CryptoToken_cryptoHashedToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* encode tokenOID */
+
+ stat = encodeObjectIdentifier (pctxt, &pvalue->tokenOID);
+ if (stat != ASN_OK) return stat;
+
+ /* encode hashedVals */
+
+ stat = asn1PE_H235ClearToken (pctxt, &pvalue->hashedVals);
+ if (stat != ASN_OK) return stat;
+
+ /* encode token */
+
+ stat = asn1PE_H235HASHED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ extbit = (ASN1BOOL)(pvalue->t > 4);
+
+ encodeBit (pctxt, extbit);
+
+ if (!extbit) {
+
+ /* Encode choice index value */
+
+ stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
+ if (stat != ASN_OK) return stat;
+
+ /* Encode root element data value */
+
+ switch (pvalue->t)
+ {
+ /* cryptoEncryptedToken */
+ case 1:
+ stat = asn1PE_H235CryptoToken_cryptoEncryptedToken (pctxt, pvalue->u.cryptoEncryptedToken);
+ if (stat != ASN_OK) return stat;
+ break;
+
+ /* cryptoSignedToken */
+ case 2:
+ stat = asn1PE_H235CryptoToken_cryptoSignedToken (pctxt, pvalue->u.cryptoSignedToken);
+ if (stat != ASN_OK) return stat;
+ break;
+
+ /* cryptoHashedToken */
+ case 3:
+ stat = asn1PE_H235CryptoToken_cryptoHashedToken (pctxt, pvalue->u.cryptoHashedToken);
+ if (stat != ASN_OK) return stat;
+ break;
+
+ /* cryptoPwdEncr */
+ case 4:
+ stat = asn1PE_H235ENCRYPTED (pctxt, pvalue->u.cryptoPwdEncr);
+ if (stat != ASN_OK) return stat;
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ /* Encode extension choice index value */
+
+ stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
+ if (stat != ASN_OK) return stat;
+
+ /* Encode extension element data value */
+
+ }
+
+ return (stat);
+}
+
diff --git a/addons/ooh323c/src/h323/H323-MESSAGES.c b/addons/ooh323c/src/h323/H323-MESSAGES.c
new file mode 100644
index 000000000..2c27f3b93
--- /dev/null
+++ b/addons/ooh323c/src/h323/H323-MESSAGES.c
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+/**
+ * This file was generated by the Objective Systems ASN1C Compiler
+ * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
+ */
+#include "ooasn1.h"
+#include "H323-MESSAGES.h"
+
+/**************************************************************/
+/* */
+/* NumberDigits */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_NumberDigits_CharSet =
+"#*,0123456789";
+
+/**************************************************************/
+/* */
+/* TBCD_STRING */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_TBCD_STRING_CharSet =
+"#*0123456789abc";
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_system_id */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet =
+"#*0123456789abc";
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet =
+"#*0123456789abc";
+
+/**************************************************************/
+/* */
+/* GSM_UIM */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imsi_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_GSM_UIM_imei_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet =
+"#*0123456789abc";
+
+EXTERN const char* gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet =
+"#*0123456789abc";
+
+/**************************************************************/
+/* */
+/* AliasAddress */
+/* */
+/**************************************************************/
+
+EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet =
+"#*,0123456789";
+
diff --git a/addons/ooh323c/src/h323/H323-MESSAGES.h b/addons/ooh323c/src/h323/H323-MESSAGES.h
new file mode 100644
index 000000000..fbd87b336
--- /dev/null
+++ b/addons/ooh323c/src/h323/H323-MESSAGES.h
@@ -0,0 +1,6510 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+/**
+ * This file was generated by the Objective Systems ASN1C Compiler
+ * (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
+ */
+#ifndef H323_MESSAGES_H
+#define H323_MESSAGES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "ooasn1.h"
+#include "H235-SECURITY-MESSAGES.h"
+#include "MULTIMEDIA-SYSTEM-CONTROL.h"
+
+/**************************************************************/
+/* */
+/* ScreeningIndicator */
+/* */
+/**************************************************************/
+
+typedef enum {
+ userProvidedNotScreened = 0,
+ userProvidedVerifiedAndPassed = 1,
+ userProvidedVerifiedAndFailed = 2,
+ networkProvided = 3
+} H225ScreeningIndicator_Root;
+
+typedef ASN1UINT H225ScreeningIndicator;
+
+EXTERN int asn1PE_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator value);
+
+EXTERN int asn1PD_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator* pvalue);
+
+/**************************************************************/
+/* */
+/* NumberDigits */
+/* */
+/**************************************************************/
+
+typedef ASN1IA5String H225NumberDigits;
+
+EXTERN int asn1PE_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits value);
+
+EXTERN int asn1PD_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits* pvalue);
+
+/**************************************************************/
+/* */
+/* TBCD_STRING */
+/* */
+/**************************************************************/
+
+typedef ASN1IA5String H225TBCD_STRING;
+
+EXTERN int asn1PE_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING value);
+
+EXTERN int asn1PD_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING* pvalue);
+
+/**************************************************************/
+/* */
+/* GloballyUniqueID */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GloballyUniqueID {
+ ASN1UINT numocts;
+ ASN1OCTET data[16];
+} H225GloballyUniqueID;
+
+EXTERN int asn1PE_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue);
+
+EXTERN int asn1PD_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue);
+
+/**************************************************************/
+/* */
+/* ConferenceIdentifier */
+/* */
+/**************************************************************/
+
+typedef H225GloballyUniqueID H225ConferenceIdentifier;
+
+EXTERN int asn1PE_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue);
+
+EXTERN int asn1PD_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* RequestSeqNum */
+/* */
+/**************************************************************/
+
+typedef ASN1USINT H225RequestSeqNum;
+
+EXTERN int asn1PE_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum value);
+
+EXTERN int asn1PD_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperIdentifier */
+/* */
+/**************************************************************/
+
+typedef ASN1BMPString H225GatekeeperIdentifier;
+
+EXTERN int asn1PE_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier value);
+
+EXTERN int asn1PD_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* BandWidth */
+/* */
+/**************************************************************/
+
+typedef ASN1UINT H225BandWidth;
+
+EXTERN int asn1PE_H225BandWidth (OOCTXT* pctxt, H225BandWidth value);
+
+EXTERN int asn1PD_H225BandWidth (OOCTXT* pctxt, H225BandWidth* pvalue);
+
+/**************************************************************/
+/* */
+/* CallReferenceValue */
+/* */
+/**************************************************************/
+
+typedef ASN1USINT H225CallReferenceValue;
+
+EXTERN int asn1PE_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue value);
+
+EXTERN int asn1PD_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue* pvalue);
+
+/**************************************************************/
+/* */
+/* EndpointIdentifier */
+/* */
+/**************************************************************/
+
+typedef ASN1BMPString H225EndpointIdentifier;
+
+EXTERN int asn1PE_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier value);
+
+EXTERN int asn1PD_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* ProtocolIdentifier */
+/* */
+/**************************************************************/
+
+typedef ASN1OBJID H225ProtocolIdentifier;
+
+EXTERN int asn1PE_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier value);
+
+EXTERN int asn1PD_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* TimeToLive */
+/* */
+/**************************************************************/
+
+typedef ASN1UINT H225TimeToLive;
+
+EXTERN int asn1PE_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive value);
+
+EXTERN int asn1PD_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive* pvalue);
+
+/**************************************************************/
+/* */
+/* H248PackagesDescriptor */
+/* */
+/**************************************************************/
+
+typedef ASN1DynOctStr H225H248PackagesDescriptor;
+
+EXTERN int asn1PE_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor value);
+
+EXTERN int asn1PD_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* H248SignalsDescriptor */
+/* */
+/**************************************************************/
+
+typedef ASN1DynOctStr H225H248SignalsDescriptor;
+
+EXTERN int asn1PE_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor value);
+
+EXTERN int asn1PD_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* GenericIdentifier */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225GenericIdentifier_standard 1
+#define T_H225GenericIdentifier_oid 2
+#define T_H225GenericIdentifier_nonStandard 3
+#define T_H225GenericIdentifier_extElem1 4
+
+typedef struct EXTERN H225GenericIdentifier {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1INT standard;
+ /* t = 2 */
+ ASN1OBJID *oid;
+ /* t = 3 */
+ H225GloballyUniqueID *nonStandard;
+ /* t = 4 */
+ } u;
+} H225GenericIdentifier;
+
+EXTERN int asn1PE_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue);
+
+EXTERN int asn1PD_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipAddress_ip */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipAddress_ip {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225TransportAddress_ipAddress_ip;
+
+EXTERN int asn1PE_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipAddress */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipAddress {
+ H225TransportAddress_ipAddress_ip ip;
+ ASN1USINT port;
+} H225TransportAddress_ipAddress;
+
+EXTERN int asn1PE_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_ip */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipSourceRoute_ip {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225TransportAddress_ipSourceRoute_ip;
+
+EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_route_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipSourceRoute_route_element {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225TransportAddress_ipSourceRoute_route_element;
+
+EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TransportAddress_ipSourceRoute_route_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225_SeqOfH225TransportAddress_ipSourceRoute_route_element {
+ ASN1UINT n;
+ H225TransportAddress_ipSourceRoute_route_element *elem;
+} H225_SeqOfH225TransportAddress_ipSourceRoute_route_element;
+
+EXTERN int asn1PE_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_routing */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225TransportAddress_ipSourceRoute_routing_strict 1
+#define T_H225TransportAddress_ipSourceRoute_routing_loose 2
+#define T_H225TransportAddress_ipSourceRoute_routing_extElem1 3
+
+typedef struct EXTERN H225TransportAddress_ipSourceRoute_routing {
+ int t;
+} H225TransportAddress_ipSourceRoute_routing;
+
+EXTERN int asn1PE_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipSourceRoute {
+ H225TransportAddress_ipSourceRoute_ip ip;
+ ASN1USINT port;
+ H225_SeqOfH225TransportAddress_ipSourceRoute_route_element route;
+ H225TransportAddress_ipSourceRoute_routing routing;
+} H225TransportAddress_ipSourceRoute;
+
+EXTERN int asn1PE_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_node */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipxAddress_node {
+ ASN1UINT numocts;
+ ASN1OCTET data[6];
+} H225TransportAddress_ipxAddress_node;
+
+EXTERN int asn1PE_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_netnum */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipxAddress_netnum {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225TransportAddress_ipxAddress_netnum;
+
+EXTERN int asn1PE_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_port */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipxAddress_port {
+ ASN1UINT numocts;
+ ASN1OCTET data[2];
+} H225TransportAddress_ipxAddress_port;
+
+EXTERN int asn1PE_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ipxAddress {
+ H225TransportAddress_ipxAddress_node node;
+ H225TransportAddress_ipxAddress_netnum netnum;
+ H225TransportAddress_ipxAddress_port port;
+} H225TransportAddress_ipxAddress;
+
+EXTERN int asn1PE_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ip6Address_ip */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ip6Address_ip {
+ ASN1UINT numocts;
+ ASN1OCTET data[16];
+} H225TransportAddress_ip6Address_ip;
+
+EXTERN int asn1PE_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_ip6Address */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_ip6Address {
+ H225TransportAddress_ip6Address_ip ip;
+ ASN1USINT port;
+} H225TransportAddress_ip6Address;
+
+EXTERN int asn1PE_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_netBios */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_netBios {
+ ASN1UINT numocts;
+ ASN1OCTET data[16];
+} H225TransportAddress_netBios;
+
+EXTERN int asn1PE_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress_nsap */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportAddress_nsap {
+ ASN1UINT numocts;
+ ASN1OCTET data[20];
+} H225TransportAddress_nsap;
+
+EXTERN int asn1PE_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue);
+
+/**************************************************************/
+/* */
+/* H221NonStandard */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H221NonStandard {
+ ASN1UINT8 t35CountryCode;
+ ASN1UINT8 t35Extension;
+ ASN1USINT manufacturerCode;
+} H225H221NonStandard;
+
+EXTERN int asn1PE_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue);
+
+EXTERN int asn1PD_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue);
+
+/**************************************************************/
+/* */
+/* NonStandardIdentifier */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225NonStandardIdentifier_object 1
+#define T_H225NonStandardIdentifier_h221NonStandard 2
+#define T_H225NonStandardIdentifier_extElem1 3
+
+typedef struct EXTERN H225NonStandardIdentifier {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1OBJID *object;
+ /* t = 2 */
+ H225H221NonStandard *h221NonStandard;
+ /* t = 3 */
+ } u;
+} H225NonStandardIdentifier;
+
+EXTERN int asn1PE_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue);
+
+EXTERN int asn1PD_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* NonStandardParameter */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225NonStandardParameter {
+ H225NonStandardIdentifier nonStandardIdentifier;
+ ASN1DynOctStr data;
+} H225NonStandardParameter;
+
+EXTERN int asn1PE_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue);
+
+EXTERN int asn1PD_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportAddress */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225TransportAddress_ipAddress 1
+#define T_H225TransportAddress_ipSourceRoute 2
+#define T_H225TransportAddress_ipxAddress 3
+#define T_H225TransportAddress_ip6Address 4
+#define T_H225TransportAddress_netBios 5
+#define T_H225TransportAddress_nsap 6
+#define T_H225TransportAddress_nonStandardAddress 7
+#define T_H225TransportAddress_extElem1 8
+
+typedef struct EXTERN H225TransportAddress {
+ int t;
+ union {
+ /* t = 1 */
+ H225TransportAddress_ipAddress *ipAddress;
+ /* t = 2 */
+ H225TransportAddress_ipSourceRoute *ipSourceRoute;
+ /* t = 3 */
+ H225TransportAddress_ipxAddress *ipxAddress;
+ /* t = 4 */
+ H225TransportAddress_ip6Address *ip6Address;
+ /* t = 5 */
+ H225TransportAddress_netBios *netBios;
+ /* t = 6 */
+ H225TransportAddress_nsap *nsap;
+ /* t = 7 */
+ H225NonStandardParameter *nonStandardAddress;
+ /* t = 8 */
+ } u;
+} H225TransportAddress;
+
+EXTERN int asn1PE_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue);
+
+EXTERN int asn1PD_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* PublicTypeOfNumber */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225PublicTypeOfNumber_unknown 1
+#define T_H225PublicTypeOfNumber_internationalNumber 2
+#define T_H225PublicTypeOfNumber_nationalNumber 3
+#define T_H225PublicTypeOfNumber_networkSpecificNumber 4
+#define T_H225PublicTypeOfNumber_subscriberNumber 5
+#define T_H225PublicTypeOfNumber_abbreviatedNumber 6
+#define T_H225PublicTypeOfNumber_extElem1 7
+
+typedef struct EXTERN H225PublicTypeOfNumber {
+ int t;
+} H225PublicTypeOfNumber;
+
+EXTERN int asn1PE_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue);
+
+EXTERN int asn1PD_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* PublicPartyNumber */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225PublicPartyNumber {
+ H225PublicTypeOfNumber publicTypeOfNumber;
+ H225NumberDigits publicNumberDigits;
+} H225PublicPartyNumber;
+
+EXTERN int asn1PE_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue);
+
+EXTERN int asn1PD_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* PrivateTypeOfNumber */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225PrivateTypeOfNumber_unknown 1
+#define T_H225PrivateTypeOfNumber_level2RegionalNumber 2
+#define T_H225PrivateTypeOfNumber_level1RegionalNumber 3
+#define T_H225PrivateTypeOfNumber_pISNSpecificNumber 4
+#define T_H225PrivateTypeOfNumber_localNumber 5
+#define T_H225PrivateTypeOfNumber_abbreviatedNumber 6
+#define T_H225PrivateTypeOfNumber_extElem1 7
+
+typedef struct EXTERN H225PrivateTypeOfNumber {
+ int t;
+} H225PrivateTypeOfNumber;
+
+EXTERN int asn1PE_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue);
+
+EXTERN int asn1PD_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* PrivatePartyNumber */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225PrivatePartyNumber {
+ H225PrivateTypeOfNumber privateTypeOfNumber;
+ H225NumberDigits privateNumberDigits;
+} H225PrivatePartyNumber;
+
+EXTERN int asn1PE_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue);
+
+EXTERN int asn1PD_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* PartyNumber */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225PartyNumber_e164Number 1
+#define T_H225PartyNumber_dataPartyNumber 2
+#define T_H225PartyNumber_telexPartyNumber 3
+#define T_H225PartyNumber_privateNumber 4
+#define T_H225PartyNumber_nationalStandardPartyNumber 5
+#define T_H225PartyNumber_extElem1 6
+
+typedef struct EXTERN H225PartyNumber {
+ int t;
+ union {
+ /* t = 1 */
+ H225PublicPartyNumber *e164Number;
+ /* t = 2 */
+ H225NumberDigits dataPartyNumber;
+ /* t = 3 */
+ H225NumberDigits telexPartyNumber;
+ /* t = 4 */
+ H225PrivatePartyNumber *privateNumber;
+ /* t = 5 */
+ H225NumberDigits nationalStandardPartyNumber;
+ /* t = 6 */
+ } u;
+} H225PartyNumber;
+
+EXTERN int asn1PE_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue);
+
+EXTERN int asn1PD_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_system_id */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ANSI_41_UIM_system_id_sid 1
+#define T_H225ANSI_41_UIM_system_id_mid 2
+#define T_H225ANSI_41_UIM_system_id_extElem1 3
+
+typedef struct EXTERN H225ANSI_41_UIM_system_id {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1IA5String sid;
+ /* t = 2 */
+ ASN1IA5String mid;
+ /* t = 3 */
+ } u;
+} H225ANSI_41_UIM_system_id;
+
+EXTERN int asn1PE_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue);
+
+EXTERN int asn1PD_H225ANSI_41_UIM_system_id (OOCTXT* pctxt, H225ANSI_41_UIM_system_id* pvalue);
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_systemMyTypeCode */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ANSI_41_UIM_systemMyTypeCode {
+ ASN1UINT numocts;
+ ASN1OCTET data[1];
+} H225ANSI_41_UIM_systemMyTypeCode;
+
+EXTERN int asn1PE_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue);
+
+EXTERN int asn1PD_H225ANSI_41_UIM_systemMyTypeCode (OOCTXT* pctxt, H225ANSI_41_UIM_systemMyTypeCode* pvalue);
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_systemAccessType */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ANSI_41_UIM_systemAccessType {
+ ASN1UINT numocts;
+ ASN1OCTET data[1];
+} H225ANSI_41_UIM_systemAccessType;
+
+EXTERN int asn1PE_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue);
+
+EXTERN int asn1PD_H225ANSI_41_UIM_systemAccessType (OOCTXT* pctxt, H225ANSI_41_UIM_systemAccessType* pvalue);
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_qualificationInformationCode */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ANSI_41_UIM_qualificationInformationCode {
+ ASN1UINT numocts;
+ ASN1OCTET data[1];
+} H225ANSI_41_UIM_qualificationInformationCode;
+
+EXTERN int asn1PE_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue);
+
+EXTERN int asn1PD_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue);
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ANSI_41_UIM {
+ struct {
+ unsigned imsiPresent : 1;
+ unsigned minPresent : 1;
+ unsigned mdnPresent : 1;
+ unsigned msisdnPresent : 1;
+ unsigned esnPresent : 1;
+ unsigned mscidPresent : 1;
+ unsigned systemMyTypeCodePresent : 1;
+ unsigned systemAccessTypePresent : 1;
+ unsigned qualificationInformationCodePresent : 1;
+ unsigned sesnPresent : 1;
+ unsigned socPresent : 1;
+ } m;
+ ASN1IA5String imsi;
+ ASN1IA5String min;
+ ASN1IA5String mdn;
+ ASN1IA5String msisdn;
+ ASN1IA5String esn;
+ ASN1IA5String mscid;
+ H225ANSI_41_UIM_system_id system_id;
+ H225ANSI_41_UIM_systemMyTypeCode systemMyTypeCode;
+ H225ANSI_41_UIM_systemAccessType systemAccessType;
+ H225ANSI_41_UIM_qualificationInformationCode qualificationInformationCode;
+ ASN1IA5String sesn;
+ ASN1IA5String soc;
+} H225ANSI_41_UIM;
+
+EXTERN int asn1PE_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue);
+
+EXTERN int asn1PD_H225ANSI_41_UIM (OOCTXT* pctxt, H225ANSI_41_UIM* pvalue);
+
+/**************************************************************/
+/* */
+/* GSM_UIM_tmsi */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GSM_UIM_tmsi {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225GSM_UIM_tmsi;
+
+EXTERN int asn1PE_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue);
+
+EXTERN int asn1PD_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue);
+
+/**************************************************************/
+/* */
+/* GSM_UIM */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GSM_UIM {
+ struct {
+ unsigned imsiPresent : 1;
+ unsigned tmsiPresent : 1;
+ unsigned msisdnPresent : 1;
+ unsigned imeiPresent : 1;
+ unsigned hplmnPresent : 1;
+ unsigned vplmnPresent : 1;
+ } m;
+ ASN1IA5String imsi;
+ H225GSM_UIM_tmsi tmsi;
+ ASN1IA5String msisdn;
+ ASN1IA5String imei;
+ ASN1IA5String hplmn;
+ ASN1IA5String vplmn;
+} H225GSM_UIM;
+
+EXTERN int asn1PE_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue);
+
+EXTERN int asn1PD_H225GSM_UIM (OOCTXT* pctxt, H225GSM_UIM* pvalue);
+
+/**************************************************************/
+/* */
+/* MobileUIM */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225MobileUIM_ansi_41_uim 1
+#define T_H225MobileUIM_gsm_uim 2
+#define T_H225MobileUIM_extElem1 3
+
+typedef struct EXTERN H225MobileUIM {
+ int t;
+ union {
+ /* t = 1 */
+ H225ANSI_41_UIM *ansi_41_uim;
+ /* t = 2 */
+ H225GSM_UIM *gsm_uim;
+ /* t = 3 */
+ } u;
+} H225MobileUIM;
+
+EXTERN int asn1PE_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue);
+
+EXTERN int asn1PD_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue);
+
+/**************************************************************/
+/* */
+/* AliasAddress */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225AliasAddress_dialedDigits 1
+#define T_H225AliasAddress_h323_ID 2
+#define T_H225AliasAddress_url_ID 3
+#define T_H225AliasAddress_transportID 4
+#define T_H225AliasAddress_email_ID 5
+#define T_H225AliasAddress_partyNumber 6
+#define T_H225AliasAddress_mobileUIM 7
+#define T_H225AliasAddress_extElem1 8
+
+typedef struct EXTERN H225AliasAddress {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1IA5String dialedDigits;
+ /* t = 2 */
+ ASN1BMPString h323_ID;
+ /* t = 3 */
+ ASN1IA5String url_ID;
+ /* t = 4 */
+ H225TransportAddress *transportID;
+ /* t = 5 */
+ ASN1IA5String email_ID;
+ /* t = 6 */
+ H225PartyNumber *partyNumber;
+ /* t = 7 */
+ H225MobileUIM *mobileUIM;
+ /* t = 8 */
+ } u;
+} H225AliasAddress;
+
+EXTERN int asn1PE_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue);
+
+EXTERN int asn1PD_H225AliasAddress (OOCTXT* pctxt, H225AliasAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* Content_compound */
+/* */
+/**************************************************************/
+
+/* List of H225EnumeratedParameter */
+typedef DList H225Content_compound;
+
+EXTERN int asn1PE_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue);
+
+EXTERN int asn1PD_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue);
+
+/**************************************************************/
+/* */
+/* Content_nested */
+/* */
+/**************************************************************/
+
+/* List of H225GenericData */
+typedef DList H225Content_nested;
+
+EXTERN int asn1PE_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue);
+
+EXTERN int asn1PD_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue);
+
+/**************************************************************/
+/* */
+/* Content */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225Content_raw 1
+#define T_H225Content_text 2
+#define T_H225Content_unicode 3
+#define T_H225Content_bool_ 4
+#define T_H225Content_number8 5
+#define T_H225Content_number16 6
+#define T_H225Content_number32 7
+#define T_H225Content_id 8
+#define T_H225Content_alias 9
+#define T_H225Content_transport 10
+#define T_H225Content_compound 11
+#define T_H225Content_nested 12
+#define T_H225Content_extElem1 13
+
+typedef struct EXTERN H225Content {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1DynOctStr *raw;
+ /* t = 2 */
+ ASN1IA5String text;
+ /* t = 3 */
+ ASN1BMPString unicode;
+ /* t = 4 */
+ ASN1BOOL bool_;
+ /* t = 5 */
+ ASN1UINT8 number8;
+ /* t = 6 */
+ ASN1USINT number16;
+ /* t = 7 */
+ ASN1UINT number32;
+ /* t = 8 */
+ H225GenericIdentifier *id;
+ /* t = 9 */
+ H225AliasAddress *alias;
+ /* t = 10 */
+ H225TransportAddress *transport;
+ /* t = 11 */
+ H225Content_compound *compound;
+ /* t = 12 */
+ H225Content_nested *nested;
+ /* t = 13 */
+ } u;
+} H225Content;
+
+EXTERN int asn1PE_H225Content (OOCTXT* pctxt, H225Content* pvalue);
+
+EXTERN int asn1PD_H225Content (OOCTXT* pctxt, H225Content* pvalue);
+
+/**************************************************************/
+/* */
+/* EnumeratedParameter */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225EnumeratedParameter {
+ struct {
+ unsigned contentPresent : 1;
+ } m;
+ H225GenericIdentifier id;
+ H225Content content;
+} H225EnumeratedParameter;
+
+EXTERN int asn1PE_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue);
+
+EXTERN int asn1PD_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue);
+
+/**************************************************************/
+/* */
+/* GenericData_parameters */
+/* */
+/**************************************************************/
+
+/* List of H225EnumeratedParameter */
+typedef DList H225GenericData_parameters;
+
+EXTERN int asn1PE_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue);
+
+EXTERN int asn1PD_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue);
+
+/**************************************************************/
+/* */
+/* GenericData */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GenericData {
+ struct {
+ unsigned parametersPresent : 1;
+ } m;
+ H225GenericIdentifier id;
+ H225GenericData_parameters parameters;
+} H225GenericData;
+
+EXTERN int asn1PE_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue);
+
+EXTERN int asn1PD_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue);
+
+/**************************************************************/
+/* */
+/* FeatureDescriptor */
+/* */
+/**************************************************************/
+
+typedef H225GenericData H225FeatureDescriptor;
+
+EXTERN int asn1PE_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue);
+
+EXTERN int asn1PD_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* FastStartToken */
+/* */
+/**************************************************************/
+
+typedef H235ClearToken H225FastStartToken;
+
+EXTERN int asn1PE_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue);
+
+EXTERN int asn1PD_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue);
+
+/**************************************************************/
+/* */
+/* EncodedFastStartToken */
+/* */
+/**************************************************************/
+
+typedef ASN1OpenType H225EncodedFastStartToken;
+
+EXTERN int asn1PE_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken value);
+
+EXTERN int asn1PD_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UserInformation_user_data_user_information */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UserInformation_user_data_user_information {
+ ASN1UINT numocts;
+ ASN1OCTET data[131];
+} H225H323_UserInformation_user_data_user_information;
+
+EXTERN int asn1PE_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue);
+
+EXTERN int asn1PD_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue);
+
+/**************************************************************/
+/* */
+/* EndpointType_set */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225EndpointType_set {
+ ASN1UINT numbits;
+ ASN1OCTET data[4];
+} H225EndpointType_set;
+
+EXTERN int asn1PE_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue);
+
+EXTERN int asn1PD_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue);
+
+/**************************************************************/
+/* */
+/* VendorIdentifier_productId */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225VendorIdentifier_productId {
+ ASN1UINT numocts;
+ ASN1OCTET data[256];
+} H225VendorIdentifier_productId;
+
+EXTERN int asn1PE_H225VendorIdentifier_productId (OOCTXT* pctxt, H225VendorIdentifier_productId* pvalue);
+
+EXTERN int asn1PD_H225VendorIdentifier_productId (OOCTXT* pctxt, H225VendorIdentifier_productId* pvalue);
+
+/**************************************************************/
+/* */
+/* VendorIdentifier_versionId */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225VendorIdentifier_versionId {
+ ASN1UINT numocts;
+ ASN1OCTET data[256];
+} H225VendorIdentifier_versionId;
+
+EXTERN int asn1PE_H225VendorIdentifier_versionId (OOCTXT* pctxt, H225VendorIdentifier_versionId* pvalue);
+
+EXTERN int asn1PD_H225VendorIdentifier_versionId (OOCTXT* pctxt, H225VendorIdentifier_versionId* pvalue);
+
+/**************************************************************/
+/* */
+/* CicInfo_cic_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CicInfo_cic_element {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225CicInfo_cic_element;
+
+EXTERN int asn1PE_H225CicInfo_cic_element (OOCTXT* pctxt, H225CicInfo_cic_element* pvalue);
+
+EXTERN int asn1PD_H225CicInfo_cic_element (OOCTXT* pctxt, H225CicInfo_cic_element* pvalue);
+
+/**************************************************************/
+/* */
+/* CicInfo_pointCode */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CicInfo_pointCode {
+ ASN1UINT numocts;
+ ASN1OCTET data[5];
+} H225CicInfo_pointCode;
+
+EXTERN int asn1PE_H225CicInfo_pointCode (OOCTXT* pctxt, H225CicInfo_pointCode* pvalue);
+
+EXTERN int asn1PD_H225CicInfo_pointCode (OOCTXT* pctxt, H225CicInfo_pointCode* pvalue);
+
+/**************************************************************/
+/* */
+/* CarrierInfo_carrierIdentificationCode */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CarrierInfo_carrierIdentificationCode {
+ ASN1UINT numocts;
+ ASN1OCTET data[4];
+} H225CarrierInfo_carrierIdentificationCode;
+
+EXTERN int asn1PE_H225CarrierInfo_carrierIdentificationCode (OOCTXT* pctxt, H225CarrierInfo_carrierIdentificationCode* pvalue);
+
+EXTERN int asn1PD_H225CarrierInfo_carrierIdentificationCode (OOCTXT* pctxt, H225CarrierInfo_carrierIdentificationCode* pvalue);
+
+/**************************************************************/
+/* */
+/* CallTerminationCause_releaseCompleteCauseIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallTerminationCause_releaseCompleteCauseIE {
+ ASN1UINT numocts;
+ ASN1OCTET data[32];
+} H225CallTerminationCause_releaseCompleteCauseIE;
+
+EXTERN int asn1PE_H225CallTerminationCause_releaseCompleteCauseIE (OOCTXT* pctxt, H225CallTerminationCause_releaseCompleteCauseIE* pvalue);
+
+EXTERN int asn1PD_H225CallTerminationCause_releaseCompleteCauseIE (OOCTXT* pctxt, H225CallTerminationCause_releaseCompleteCauseIE* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AliasAddress */
+/* */
+/**************************************************************/
+
+/* List of H225AliasAddress */
+typedef DList H225_SeqOfH225AliasAddress;
+
+EXTERN int asn1PE_H225_SeqOfH225AliasAddress (OOCTXT* pctxt, H225_SeqOfH225AliasAddress* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225AliasAddress (OOCTXT* pctxt, H225_SeqOfH225AliasAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* VendorIdentifier */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225VendorIdentifier {
+ struct {
+ unsigned productIdPresent : 1;
+ unsigned versionIdPresent : 1;
+ unsigned enterpriseNumberPresent : 1;
+ } m;
+ H225H221NonStandard vendor;
+ H225VendorIdentifier_productId productId;
+ H225VendorIdentifier_versionId versionId;
+ ASN1OBJID enterpriseNumber;
+} H225VendorIdentifier;
+
+EXTERN int asn1PE_H225VendorIdentifier (OOCTXT* pctxt, H225VendorIdentifier* pvalue);
+
+EXTERN int asn1PD_H225VendorIdentifier (OOCTXT* pctxt, H225VendorIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatekeeperInfo {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+} H225GatekeeperInfo;
+
+EXTERN int asn1PE_H225GatekeeperInfo (OOCTXT* pctxt, H225GatekeeperInfo* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperInfo (OOCTXT* pctxt, H225GatekeeperInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* DataRate */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225DataRate {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned channelMultiplierPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225BandWidth channelRate;
+ ASN1USINT channelMultiplier;
+} H225DataRate;
+
+EXTERN int asn1PE_H225DataRate (OOCTXT* pctxt, H225DataRate* pvalue);
+
+EXTERN int asn1PD_H225DataRate (OOCTXT* pctxt, H225DataRate* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225DataRate */
+/* */
+/**************************************************************/
+
+/* List of H225DataRate */
+typedef DList H225_SeqOfH225DataRate;
+
+EXTERN int asn1PE_H225_SeqOfH225DataRate (OOCTXT* pctxt, H225_SeqOfH225DataRate* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225DataRate (OOCTXT* pctxt, H225_SeqOfH225DataRate* pvalue);
+
+/**************************************************************/
+/* */
+/* SupportedPrefix */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225SupportedPrefix {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225AliasAddress prefix;
+} H225SupportedPrefix;
+
+EXTERN int asn1PE_H225SupportedPrefix (OOCTXT* pctxt, H225SupportedPrefix* pvalue);
+
+EXTERN int asn1PD_H225SupportedPrefix (OOCTXT* pctxt, H225SupportedPrefix* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225SupportedPrefix */
+/* */
+/**************************************************************/
+
+/* List of H225SupportedPrefix */
+typedef DList H225_SeqOfH225SupportedPrefix;
+
+EXTERN int asn1PE_H225_SeqOfH225SupportedPrefix (OOCTXT* pctxt, H225_SeqOfH225SupportedPrefix* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225SupportedPrefix (OOCTXT* pctxt, H225_SeqOfH225SupportedPrefix* pvalue);
+
+/**************************************************************/
+/* */
+/* H310Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H310Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H310Caps;
+
+EXTERN int asn1PE_H225H310Caps (OOCTXT* pctxt, H225H310Caps* pvalue);
+
+EXTERN int asn1PD_H225H310Caps (OOCTXT* pctxt, H225H310Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* H320Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H320Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H320Caps;
+
+EXTERN int asn1PE_H225H320Caps (OOCTXT* pctxt, H225H320Caps* pvalue);
+
+EXTERN int asn1PD_H225H320Caps (OOCTXT* pctxt, H225H320Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* H321Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H321Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H321Caps;
+
+EXTERN int asn1PE_H225H321Caps (OOCTXT* pctxt, H225H321Caps* pvalue);
+
+EXTERN int asn1PD_H225H321Caps (OOCTXT* pctxt, H225H321Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* H322Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H322Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H322Caps;
+
+EXTERN int asn1PE_H225H322Caps (OOCTXT* pctxt, H225H322Caps* pvalue);
+
+EXTERN int asn1PD_H225H322Caps (OOCTXT* pctxt, H225H322Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* H323Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H323Caps;
+
+EXTERN int asn1PE_H225H323Caps (OOCTXT* pctxt, H225H323Caps* pvalue);
+
+EXTERN int asn1PD_H225H323Caps (OOCTXT* pctxt, H225H323Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* H324Caps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H324Caps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225H324Caps;
+
+EXTERN int asn1PE_H225H324Caps (OOCTXT* pctxt, H225H324Caps* pvalue);
+
+EXTERN int asn1PD_H225H324Caps (OOCTXT* pctxt, H225H324Caps* pvalue);
+
+/**************************************************************/
+/* */
+/* VoiceCaps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225VoiceCaps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225VoiceCaps;
+
+EXTERN int asn1PE_H225VoiceCaps (OOCTXT* pctxt, H225VoiceCaps* pvalue);
+
+EXTERN int asn1PD_H225VoiceCaps (OOCTXT* pctxt, H225VoiceCaps* pvalue);
+
+/**************************************************************/
+/* */
+/* T120OnlyCaps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225T120OnlyCaps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225T120OnlyCaps;
+
+EXTERN int asn1PE_H225T120OnlyCaps (OOCTXT* pctxt, H225T120OnlyCaps* pvalue);
+
+EXTERN int asn1PD_H225T120OnlyCaps (OOCTXT* pctxt, H225T120OnlyCaps* pvalue);
+
+/**************************************************************/
+/* */
+/* NonStandardProtocol */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225NonStandardProtocol {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225NonStandardProtocol;
+
+EXTERN int asn1PE_H225NonStandardProtocol (OOCTXT* pctxt, H225NonStandardProtocol* pvalue);
+
+EXTERN int asn1PD_H225NonStandardProtocol (OOCTXT* pctxt, H225NonStandardProtocol* pvalue);
+
+/**************************************************************/
+/* */
+/* T38FaxAnnexbOnlyCaps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225T38FaxAnnexbOnlyCaps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+ H245DataProtocolCapability t38FaxProtocol;
+ H245T38FaxProfile t38FaxProfile;
+} H225T38FaxAnnexbOnlyCaps;
+
+EXTERN int asn1PE_H225T38FaxAnnexbOnlyCaps (OOCTXT* pctxt, H225T38FaxAnnexbOnlyCaps* pvalue);
+
+EXTERN int asn1PD_H225T38FaxAnnexbOnlyCaps (OOCTXT* pctxt, H225T38FaxAnnexbOnlyCaps* pvalue);
+
+/**************************************************************/
+/* */
+/* SIPCaps */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225SIPCaps {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned dataRatesSupportedPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225DataRate dataRatesSupported;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225SIPCaps;
+
+EXTERN int asn1PE_H225SIPCaps (OOCTXT* pctxt, H225SIPCaps* pvalue);
+
+EXTERN int asn1PD_H225SIPCaps (OOCTXT* pctxt, H225SIPCaps* pvalue);
+
+/**************************************************************/
+/* */
+/* SupportedProtocols */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225SupportedProtocols_nonStandardData 1
+#define T_H225SupportedProtocols_h310 2
+#define T_H225SupportedProtocols_h320 3
+#define T_H225SupportedProtocols_h321 4
+#define T_H225SupportedProtocols_h322 5
+#define T_H225SupportedProtocols_h323 6
+#define T_H225SupportedProtocols_h324 7
+#define T_H225SupportedProtocols_voice 8
+#define T_H225SupportedProtocols_t120_only 9
+#define T_H225SupportedProtocols_nonStandardProtocol 10
+#define T_H225SupportedProtocols_t38FaxAnnexbOnly 11
+#define T_H225SupportedProtocols_sip 12
+#define T_H225SupportedProtocols_extElem1 13
+
+typedef struct EXTERN H225SupportedProtocols {
+ int t;
+ union {
+ /* t = 1 */
+ H225NonStandardParameter *nonStandardData;
+ /* t = 2 */
+ H225H310Caps *h310;
+ /* t = 3 */
+ H225H320Caps *h320;
+ /* t = 4 */
+ H225H321Caps *h321;
+ /* t = 5 */
+ H225H322Caps *h322;
+ /* t = 6 */
+ H225H323Caps *h323;
+ /* t = 7 */
+ H225H324Caps *h324;
+ /* t = 8 */
+ H225VoiceCaps *voice;
+ /* t = 9 */
+ H225T120OnlyCaps *t120_only;
+ /* t = 10 */
+ H225NonStandardProtocol *nonStandardProtocol;
+ /* t = 11 */
+ H225T38FaxAnnexbOnlyCaps *t38FaxAnnexbOnly;
+ /* t = 12 */
+ H225SIPCaps *sip;
+ /* t = 13 */
+ } u;
+} H225SupportedProtocols;
+
+EXTERN int asn1PE_H225SupportedProtocols (OOCTXT* pctxt, H225SupportedProtocols* pvalue);
+
+EXTERN int asn1PD_H225SupportedProtocols (OOCTXT* pctxt, H225SupportedProtocols* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225SupportedProtocols */
+/* */
+/**************************************************************/
+
+/* List of H225SupportedProtocols */
+typedef DList H225_SeqOfH225SupportedProtocols;
+
+EXTERN int asn1PE_H225_SeqOfH225SupportedProtocols (OOCTXT* pctxt, H225_SeqOfH225SupportedProtocols* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225SupportedProtocols (OOCTXT* pctxt, H225_SeqOfH225SupportedProtocols* pvalue);
+
+/**************************************************************/
+/* */
+/* GatewayInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatewayInfo {
+ struct {
+ unsigned protocolPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225_SeqOfH225SupportedProtocols protocol;
+ H225NonStandardParameter nonStandardData;
+} H225GatewayInfo;
+
+EXTERN int asn1PE_H225GatewayInfo (OOCTXT* pctxt, H225GatewayInfo* pvalue);
+
+EXTERN int asn1PD_H225GatewayInfo (OOCTXT* pctxt, H225GatewayInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* McuInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225McuInfo {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned protocolPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225SupportedProtocols protocol;
+} H225McuInfo;
+
+EXTERN int asn1PE_H225McuInfo (OOCTXT* pctxt, H225McuInfo* pvalue);
+
+EXTERN int asn1PD_H225McuInfo (OOCTXT* pctxt, H225McuInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* TerminalInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TerminalInfo {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+} H225TerminalInfo;
+
+EXTERN int asn1PE_H225TerminalInfo (OOCTXT* pctxt, H225TerminalInfo* pvalue);
+
+EXTERN int asn1PD_H225TerminalInfo (OOCTXT* pctxt, H225TerminalInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* TunnelledProtocolAlternateIdentifier */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TunnelledProtocolAlternateIdentifier {
+ struct {
+ unsigned protocolVariantPresent : 1;
+ } m;
+ ASN1IA5String protocolType;
+ ASN1IA5String protocolVariant;
+} H225TunnelledProtocolAlternateIdentifier;
+
+EXTERN int asn1PE_H225TunnelledProtocolAlternateIdentifier (OOCTXT* pctxt, H225TunnelledProtocolAlternateIdentifier* pvalue);
+
+EXTERN int asn1PD_H225TunnelledProtocolAlternateIdentifier (OOCTXT* pctxt, H225TunnelledProtocolAlternateIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* TunnelledProtocol_id */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225TunnelledProtocol_id_tunnelledProtocolObjectID 1
+#define T_H225TunnelledProtocol_id_tunnelledProtocolAlternateID 2
+#define T_H225TunnelledProtocol_id_extElem1 3
+
+typedef struct EXTERN H225TunnelledProtocol_id {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1OBJID *tunnelledProtocolObjectID;
+ /* t = 2 */
+ H225TunnelledProtocolAlternateIdentifier *tunnelledProtocolAlternateID;
+ /* t = 3 */
+ } u;
+} H225TunnelledProtocol_id;
+
+EXTERN int asn1PE_H225TunnelledProtocol_id (OOCTXT* pctxt, H225TunnelledProtocol_id* pvalue);
+
+EXTERN int asn1PD_H225TunnelledProtocol_id (OOCTXT* pctxt, H225TunnelledProtocol_id* pvalue);
+
+/**************************************************************/
+/* */
+/* TunnelledProtocol */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TunnelledProtocol {
+ struct {
+ unsigned subIdentifierPresent : 1;
+ } m;
+ H225TunnelledProtocol_id id;
+ ASN1IA5String subIdentifier;
+} H225TunnelledProtocol;
+
+EXTERN int asn1PE_H225TunnelledProtocol (OOCTXT* pctxt, H225TunnelledProtocol* pvalue);
+
+EXTERN int asn1PD_H225TunnelledProtocol (OOCTXT* pctxt, H225TunnelledProtocol* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TunnelledProtocol */
+/* */
+/**************************************************************/
+
+/* List of H225TunnelledProtocol */
+typedef DList H225_SeqOfH225TunnelledProtocol;
+
+EXTERN int asn1PE_H225_SeqOfH225TunnelledProtocol (OOCTXT* pctxt, H225_SeqOfH225TunnelledProtocol* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225TunnelledProtocol (OOCTXT* pctxt, H225_SeqOfH225TunnelledProtocol* pvalue);
+
+/**************************************************************/
+/* */
+/* EndpointType */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225EndpointType {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned vendorPresent : 1;
+ unsigned gatekeeperPresent : 1;
+ unsigned gatewayPresent : 1;
+ unsigned mcuPresent : 1;
+ unsigned terminalPresent : 1;
+ unsigned setPresent : 1;
+ unsigned supportedTunnelledProtocolsPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225VendorIdentifier vendor;
+ H225GatekeeperInfo gatekeeper;
+ H225GatewayInfo gateway;
+ H225McuInfo mcu;
+ H225TerminalInfo terminal;
+ ASN1BOOL mc;
+ ASN1BOOL undefinedNode;
+ H225EndpointType_set set;
+ H225_SeqOfH225TunnelledProtocol supportedTunnelledProtocols;
+} H225EndpointType;
+
+EXTERN int asn1PE_H225EndpointType (OOCTXT* pctxt, H225EndpointType* pvalue);
+
+EXTERN int asn1PD_H225EndpointType (OOCTXT* pctxt, H225EndpointType* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CallReferenceValue */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225_SeqOfH225CallReferenceValue {
+ ASN1UINT n;
+ H225CallReferenceValue *elem;
+} H225_SeqOfH225CallReferenceValue;
+
+EXTERN int asn1PE_H225_SeqOfH225CallReferenceValue (OOCTXT* pctxt, H225_SeqOfH225CallReferenceValue* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225CallReferenceValue (OOCTXT* pctxt, H225_SeqOfH225CallReferenceValue* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_conferenceGoal */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225Setup_UUIE_conferenceGoal_create 1
+#define T_H225Setup_UUIE_conferenceGoal_join 2
+#define T_H225Setup_UUIE_conferenceGoal_invite 3
+#define T_H225Setup_UUIE_conferenceGoal_capability_negotiation 4
+#define T_H225Setup_UUIE_conferenceGoal_callIndependentSupplementaryService 5
+#define T_H225Setup_UUIE_conferenceGoal_extElem1 6
+
+typedef struct EXTERN H225Setup_UUIE_conferenceGoal {
+ int t;
+} H225Setup_UUIE_conferenceGoal;
+
+EXTERN int asn1PE_H225Setup_UUIE_conferenceGoal (OOCTXT* pctxt, H225Setup_UUIE_conferenceGoal* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE_conferenceGoal (OOCTXT* pctxt, H225Setup_UUIE_conferenceGoal* pvalue);
+
+/**************************************************************/
+/* */
+/* Q954Details */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Q954Details {
+ ASN1BOOL conferenceCalling;
+ ASN1BOOL threePartyService;
+} H225Q954Details;
+
+EXTERN int asn1PE_H225Q954Details (OOCTXT* pctxt, H225Q954Details* pvalue);
+
+EXTERN int asn1PD_H225Q954Details (OOCTXT* pctxt, H225Q954Details* pvalue);
+
+/**************************************************************/
+/* */
+/* QseriesOptions */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225QseriesOptions {
+ ASN1BOOL q932Full;
+ ASN1BOOL q951Full;
+ ASN1BOOL q952Full;
+ ASN1BOOL q953Full;
+ ASN1BOOL q955Full;
+ ASN1BOOL q956Full;
+ ASN1BOOL q957Full;
+ H225Q954Details q954Info;
+} H225QseriesOptions;
+
+EXTERN int asn1PE_H225QseriesOptions (OOCTXT* pctxt, H225QseriesOptions* pvalue);
+
+EXTERN int asn1PD_H225QseriesOptions (OOCTXT* pctxt, H225QseriesOptions* pvalue);
+
+/**************************************************************/
+/* */
+/* CallType */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CallType_pointToPoint 1
+#define T_H225CallType_oneToN 2
+#define T_H225CallType_nToOne 3
+#define T_H225CallType_nToN 4
+#define T_H225CallType_extElem1 5
+
+typedef struct EXTERN H225CallType {
+ int t;
+} H225CallType;
+
+EXTERN int asn1PE_H225CallType (OOCTXT* pctxt, H225CallType* pvalue);
+
+EXTERN int asn1PD_H225CallType (OOCTXT* pctxt, H225CallType* pvalue);
+
+/**************************************************************/
+/* */
+/* CallIdentifier */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallIdentifier {
+ H225GloballyUniqueID guid;
+} H225CallIdentifier;
+
+EXTERN int asn1PE_H225CallIdentifier (OOCTXT* pctxt, H225CallIdentifier* pvalue);
+
+EXTERN int asn1PD_H225CallIdentifier (OOCTXT* pctxt, H225CallIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* SecurityServiceMode */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225SecurityServiceMode_nonStandard 1
+#define T_H225SecurityServiceMode_none 2
+#define T_H225SecurityServiceMode_default_ 3
+#define T_H225SecurityServiceMode_extElem1 4
+
+typedef struct EXTERN H225SecurityServiceMode {
+ int t;
+ union {
+ /* t = 1 */
+ H225NonStandardParameter *nonStandard;
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ } u;
+} H225SecurityServiceMode;
+
+EXTERN int asn1PE_H225SecurityServiceMode (OOCTXT* pctxt, H225SecurityServiceMode* pvalue);
+
+EXTERN int asn1PD_H225SecurityServiceMode (OOCTXT* pctxt, H225SecurityServiceMode* pvalue);
+
+/**************************************************************/
+/* */
+/* SecurityCapabilities */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225SecurityCapabilities {
+ struct {
+ unsigned nonStandardPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandard;
+ H225SecurityServiceMode encryption;
+ H225SecurityServiceMode authenticaton;
+ H225SecurityServiceMode integrity;
+} H225SecurityCapabilities;
+
+EXTERN int asn1PE_H225SecurityCapabilities (OOCTXT* pctxt, H225SecurityCapabilities* pvalue);
+
+EXTERN int asn1PD_H225SecurityCapabilities (OOCTXT* pctxt, H225SecurityCapabilities* pvalue);
+
+/**************************************************************/
+/* */
+/* H245Security */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225H245Security_nonStandard 1
+#define T_H225H245Security_noSecurity 2
+#define T_H225H245Security_tls 3
+#define T_H225H245Security_ipsec 4
+#define T_H225H245Security_extElem1 5
+
+typedef struct EXTERN H225H245Security {
+ int t;
+ union {
+ /* t = 1 */
+ H225NonStandardParameter *nonStandard;
+ /* t = 2 */
+ /* t = 3 */
+ H225SecurityCapabilities *tls;
+ /* t = 4 */
+ H225SecurityCapabilities *ipsec;
+ /* t = 5 */
+ } u;
+} H225H245Security;
+
+EXTERN int asn1PE_H225H245Security (OOCTXT* pctxt, H225H245Security* pvalue);
+
+EXTERN int asn1PD_H225H245Security (OOCTXT* pctxt, H225H245Security* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225H245Security */
+/* */
+/**************************************************************/
+
+/* List of H225H245Security */
+typedef DList H225_SeqOfH225H245Security;
+
+EXTERN int asn1PE_H225_SeqOfH225H245Security (OOCTXT* pctxt, H225_SeqOfH225H245Security* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225H245Security (OOCTXT* pctxt, H225_SeqOfH225H245Security* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ClearToken */
+/* */
+/**************************************************************/
+
+/* List of H235ClearToken */
+typedef DList H225_SeqOfH225ClearToken;
+
+EXTERN int asn1PE_H225_SeqOfH225ClearToken (OOCTXT* pctxt, H225_SeqOfH225ClearToken* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225ClearToken (OOCTXT* pctxt, H225_SeqOfH225ClearToken* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoEPPwdHash */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CryptoH323Token_cryptoEPPwdHash {
+ H225AliasAddress alias;
+ H235TimeStamp timeStamp;
+ H235HASHED token;
+} H225CryptoH323Token_cryptoEPPwdHash;
+
+EXTERN int asn1PE_H225CryptoH323Token_cryptoEPPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPPwdHash* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoEPPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPPwdHash* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoGKPwdHash */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CryptoH323Token_cryptoGKPwdHash {
+ H225GatekeeperIdentifier gatekeeperId;
+ H235TimeStamp timeStamp;
+ H235HASHED token;
+} H225CryptoH323Token_cryptoGKPwdHash;
+
+EXTERN int asn1PE_H225CryptoH323Token_cryptoGKPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKPwdHash* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoGKPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKPwdHash* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoEPCert */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CryptoH323Token_cryptoEPCert {
+ H235EncodedPwdCertToken toBeSigned;
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynBitStr signature;
+} H225CryptoH323Token_cryptoEPCert;
+
+EXTERN int asn1PE_H225CryptoH323Token_cryptoEPCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPCert* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoEPCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPCert* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoGKCert */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CryptoH323Token_cryptoGKCert {
+ H235EncodedPwdCertToken toBeSigned;
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynBitStr signature;
+} H225CryptoH323Token_cryptoGKCert;
+
+EXTERN int asn1PE_H225CryptoH323Token_cryptoGKCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKCert* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoGKCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKCert* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoFastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CryptoH323Token_cryptoFastStart {
+ H225EncodedFastStartToken toBeSigned;
+ ASN1OBJID algorithmOID;
+ H235Params paramS;
+ ASN1DynBitStr signature;
+} H225CryptoH323Token_cryptoFastStart;
+
+EXTERN int asn1PE_H225CryptoH323Token_cryptoFastStart (OOCTXT* pctxt, H225CryptoH323Token_cryptoFastStart* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoFastStart (OOCTXT* pctxt, H225CryptoH323Token_cryptoFastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* CryptoH323Token */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CryptoH323Token_cryptoEPPwdHash 1
+#define T_H225CryptoH323Token_cryptoGKPwdHash 2
+#define T_H225CryptoH323Token_cryptoEPPwdEncr 3
+#define T_H225CryptoH323Token_cryptoGKPwdEncr 4
+#define T_H225CryptoH323Token_cryptoEPCert 5
+#define T_H225CryptoH323Token_cryptoGKCert 6
+#define T_H225CryptoH323Token_cryptoFastStart 7
+#define T_H225CryptoH323Token_nestedcryptoToken 8
+#define T_H225CryptoH323Token_extElem1 9
+
+typedef struct EXTERN H225CryptoH323Token {
+ int t;
+ union {
+ /* t = 1 */
+ H225CryptoH323Token_cryptoEPPwdHash *cryptoEPPwdHash;
+ /* t = 2 */
+ H225CryptoH323Token_cryptoGKPwdHash *cryptoGKPwdHash;
+ /* t = 3 */
+ H235ENCRYPTED *cryptoEPPwdEncr;
+ /* t = 4 */
+ H235ENCRYPTED *cryptoGKPwdEncr;
+ /* t = 5 */
+ H225CryptoH323Token_cryptoEPCert *cryptoEPCert;
+ /* t = 6 */
+ H225CryptoH323Token_cryptoGKCert *cryptoGKCert;
+ /* t = 7 */
+ H225CryptoH323Token_cryptoFastStart *cryptoFastStart;
+ /* t = 8 */
+ H235CryptoToken *nestedcryptoToken;
+ /* t = 9 */
+ } u;
+} H225CryptoH323Token;
+
+EXTERN int asn1PE_H225CryptoH323Token (OOCTXT* pctxt, H225CryptoH323Token* pvalue);
+
+EXTERN int asn1PD_H225CryptoH323Token (OOCTXT* pctxt, H225CryptoH323Token* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CryptoH323Token */
+/* */
+/**************************************************************/
+
+/* List of H225CryptoH323Token */
+typedef DList H225_SeqOfH225CryptoH323Token;
+
+EXTERN int asn1PE_H225_SeqOfH225CryptoH323Token (OOCTXT* pctxt, H225_SeqOfH225CryptoH323Token* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225CryptoH323Token (OOCTXT* pctxt, H225_SeqOfH225CryptoH323Token* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Setup_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Setup_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Setup_UUIE_fastStart (OOCTXT* pctxt, H225Setup_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE_fastStart (OOCTXT* pctxt, H225Setup_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* ScnConnectionType */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ScnConnectionType_unknown 1
+#define T_H225ScnConnectionType_bChannel 2
+#define T_H225ScnConnectionType_hybrid2x64 3
+#define T_H225ScnConnectionType_hybrid384 4
+#define T_H225ScnConnectionType_hybrid1536 5
+#define T_H225ScnConnectionType_hybrid1920 6
+#define T_H225ScnConnectionType_multirate 7
+#define T_H225ScnConnectionType_extElem1 8
+
+typedef struct EXTERN H225ScnConnectionType {
+ int t;
+} H225ScnConnectionType;
+
+EXTERN int asn1PE_H225ScnConnectionType (OOCTXT* pctxt, H225ScnConnectionType* pvalue);
+
+EXTERN int asn1PD_H225ScnConnectionType (OOCTXT* pctxt, H225ScnConnectionType* pvalue);
+
+/**************************************************************/
+/* */
+/* ScnConnectionAggregation */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ScnConnectionAggregation_auto_ 1
+#define T_H225ScnConnectionAggregation_none 2
+#define T_H225ScnConnectionAggregation_h221 3
+#define T_H225ScnConnectionAggregation_bonded_mode1 4
+#define T_H225ScnConnectionAggregation_bonded_mode2 5
+#define T_H225ScnConnectionAggregation_bonded_mode3 6
+#define T_H225ScnConnectionAggregation_extElem1 7
+
+typedef struct EXTERN H225ScnConnectionAggregation {
+ int t;
+} H225ScnConnectionAggregation;
+
+EXTERN int asn1PE_H225ScnConnectionAggregation (OOCTXT* pctxt, H225ScnConnectionAggregation* pvalue);
+
+EXTERN int asn1PD_H225ScnConnectionAggregation (OOCTXT* pctxt, H225ScnConnectionAggregation* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_connectionParameters */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Setup_UUIE_connectionParameters {
+ H225ScnConnectionType connectionType;
+ ASN1USINT numberOfScnConnections;
+ H225ScnConnectionAggregation connectionAggregation;
+} H225Setup_UUIE_connectionParameters;
+
+EXTERN int asn1PE_H225Setup_UUIE_connectionParameters (OOCTXT* pctxt, H225Setup_UUIE_connectionParameters* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE_connectionParameters (OOCTXT* pctxt, H225Setup_UUIE_connectionParameters* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_language */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Setup_UUIE_language {
+ ASN1UINT n;
+ ASN1IA5String *elem;
+} H225Setup_UUIE_language;
+
+EXTERN int asn1PE_H225Setup_UUIE_language (OOCTXT* pctxt, H225Setup_UUIE_language* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE_language (OOCTXT* pctxt, H225Setup_UUIE_language* pvalue);
+
+/**************************************************************/
+/* */
+/* PresentationIndicator */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225PresentationIndicator_presentationAllowed 1
+#define T_H225PresentationIndicator_presentationRestricted 2
+#define T_H225PresentationIndicator_addressNotAvailable 3
+#define T_H225PresentationIndicator_extElem1 4
+
+typedef struct EXTERN H225PresentationIndicator {
+ int t;
+} H225PresentationIndicator;
+
+EXTERN int asn1PE_H225PresentationIndicator (OOCTXT* pctxt, H225PresentationIndicator* pvalue);
+
+EXTERN int asn1PD_H225PresentationIndicator (OOCTXT* pctxt, H225PresentationIndicator* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl_billingMode */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CallCreditServiceControl_billingMode_credit 1
+#define T_H225CallCreditServiceControl_billingMode_debit 2
+#define T_H225CallCreditServiceControl_billingMode_extElem1 3
+
+typedef struct EXTERN H225CallCreditServiceControl_billingMode {
+ int t;
+} H225CallCreditServiceControl_billingMode;
+
+EXTERN int asn1PE_H225CallCreditServiceControl_billingMode (OOCTXT* pctxt, H225CallCreditServiceControl_billingMode* pvalue);
+
+EXTERN int asn1PD_H225CallCreditServiceControl_billingMode (OOCTXT* pctxt, H225CallCreditServiceControl_billingMode* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl_callStartingPoint */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CallCreditServiceControl_callStartingPoint_alerting 1
+#define T_H225CallCreditServiceControl_callStartingPoint_connect 2
+#define T_H225CallCreditServiceControl_callStartingPoint_extElem1 3
+
+typedef struct EXTERN H225CallCreditServiceControl_callStartingPoint {
+ int t;
+} H225CallCreditServiceControl_callStartingPoint;
+
+EXTERN int asn1PE_H225CallCreditServiceControl_callStartingPoint (OOCTXT* pctxt, H225CallCreditServiceControl_callStartingPoint* pvalue);
+
+EXTERN int asn1PD_H225CallCreditServiceControl_callStartingPoint (OOCTXT* pctxt, H225CallCreditServiceControl_callStartingPoint* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallCreditServiceControl {
+ struct {
+ unsigned amountStringPresent : 1;
+ unsigned billingModePresent : 1;
+ unsigned callDurationLimitPresent : 1;
+ unsigned enforceCallDurationLimitPresent : 1;
+ unsigned callStartingPointPresent : 1;
+ } m;
+ ASN1BMPString amountString;
+ H225CallCreditServiceControl_billingMode billingMode;
+ ASN1UINT callDurationLimit;
+ ASN1BOOL enforceCallDurationLimit;
+ H225CallCreditServiceControl_callStartingPoint callStartingPoint;
+} H225CallCreditServiceControl;
+
+EXTERN int asn1PE_H225CallCreditServiceControl (OOCTXT* pctxt, H225CallCreditServiceControl* pvalue);
+
+EXTERN int asn1PD_H225CallCreditServiceControl (OOCTXT* pctxt, H225CallCreditServiceControl* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlDescriptor */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ServiceControlDescriptor_url 1
+#define T_H225ServiceControlDescriptor_signal 2
+#define T_H225ServiceControlDescriptor_nonStandard 3
+#define T_H225ServiceControlDescriptor_callCreditServiceControl 4
+#define T_H225ServiceControlDescriptor_extElem1 5
+
+typedef struct EXTERN H225ServiceControlDescriptor {
+ int t;
+ union {
+ /* t = 1 */
+ ASN1IA5String url;
+ /* t = 2 */
+ H225H248SignalsDescriptor *signal;
+ /* t = 3 */
+ H225NonStandardParameter *nonStandard;
+ /* t = 4 */
+ H225CallCreditServiceControl *callCreditServiceControl;
+ /* t = 5 */
+ } u;
+} H225ServiceControlDescriptor;
+
+EXTERN int asn1PE_H225ServiceControlDescriptor (OOCTXT* pctxt, H225ServiceControlDescriptor* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlDescriptor (OOCTXT* pctxt, H225ServiceControlDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlSession_reason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ServiceControlSession_reason_open 1
+#define T_H225ServiceControlSession_reason_refresh 2
+#define T_H225ServiceControlSession_reason_close 3
+#define T_H225ServiceControlSession_reason_extElem1 4
+
+typedef struct EXTERN H225ServiceControlSession_reason {
+ int t;
+} H225ServiceControlSession_reason;
+
+EXTERN int asn1PE_H225ServiceControlSession_reason (OOCTXT* pctxt, H225ServiceControlSession_reason* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlSession_reason (OOCTXT* pctxt, H225ServiceControlSession_reason* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlSession */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ServiceControlSession {
+ struct {
+ unsigned contentsPresent : 1;
+ } m;
+ ASN1UINT8 sessionId;
+ H225ServiceControlDescriptor contents;
+ H225ServiceControlSession_reason reason;
+} H225ServiceControlSession;
+
+EXTERN int asn1PE_H225ServiceControlSession (OOCTXT* pctxt, H225ServiceControlSession* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlSession (OOCTXT* pctxt, H225ServiceControlSession* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ServiceControlSession */
+/* */
+/**************************************************************/
+
+/* List of H225ServiceControlSession */
+typedef DList H225_SeqOfH225ServiceControlSession;
+
+EXTERN int asn1PE_H225_SeqOfH225ServiceControlSession (OOCTXT* pctxt, H225_SeqOfH225ServiceControlSession* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225ServiceControlSession (OOCTXT* pctxt, H225_SeqOfH225ServiceControlSession* pvalue);
+
+/**************************************************************/
+/* */
+/* CarrierInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CarrierInfo {
+ struct {
+ unsigned carrierIdentificationCodePresent : 1;
+ unsigned carrierNamePresent : 1;
+ } m;
+ H225CarrierInfo_carrierIdentificationCode carrierIdentificationCode;
+ ASN1IA5String carrierName;
+} H225CarrierInfo;
+
+EXTERN int asn1PE_H225CarrierInfo (OOCTXT* pctxt, H225CarrierInfo* pvalue);
+
+EXTERN int asn1PD_H225CarrierInfo (OOCTXT* pctxt, H225CarrierInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* CallsAvailable */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallsAvailable {
+ struct {
+ unsigned groupPresent : 1;
+ unsigned carrierPresent : 1;
+ } m;
+ ASN1UINT calls;
+ ASN1IA5String group;
+ H225CarrierInfo carrier;
+} H225CallsAvailable;
+
+EXTERN int asn1PE_H225CallsAvailable (OOCTXT* pctxt, H225CallsAvailable* pvalue);
+
+EXTERN int asn1PD_H225CallsAvailable (OOCTXT* pctxt, H225CallsAvailable* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CallsAvailable */
+/* */
+/**************************************************************/
+
+/* List of H225CallsAvailable */
+typedef DList H225_SeqOfH225CallsAvailable;
+
+EXTERN int asn1PE_H225_SeqOfH225CallsAvailable (OOCTXT* pctxt, H225_SeqOfH225CallsAvailable* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225CallsAvailable (OOCTXT* pctxt, H225_SeqOfH225CallsAvailable* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCapacityInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallCapacityInfo {
+ struct {
+ unsigned voiceGwCallsAvailablePresent : 1;
+ unsigned h310GwCallsAvailablePresent : 1;
+ unsigned h320GwCallsAvailablePresent : 1;
+ unsigned h321GwCallsAvailablePresent : 1;
+ unsigned h322GwCallsAvailablePresent : 1;
+ unsigned h323GwCallsAvailablePresent : 1;
+ unsigned h324GwCallsAvailablePresent : 1;
+ unsigned t120OnlyGwCallsAvailablePresent : 1;
+ unsigned t38FaxAnnexbOnlyGwCallsAvailablePresent : 1;
+ unsigned terminalCallsAvailablePresent : 1;
+ unsigned mcuCallsAvailablePresent : 1;
+ unsigned sipGwCallsAvailablePresent : 1;
+ } m;
+ H225_SeqOfH225CallsAvailable voiceGwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h310GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h320GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h321GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h322GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h323GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable h324GwCallsAvailable;
+ H225_SeqOfH225CallsAvailable t120OnlyGwCallsAvailable;
+ H225_SeqOfH225CallsAvailable t38FaxAnnexbOnlyGwCallsAvailable;
+ H225_SeqOfH225CallsAvailable terminalCallsAvailable;
+ H225_SeqOfH225CallsAvailable mcuCallsAvailable;
+ H225_SeqOfH225CallsAvailable sipGwCallsAvailable;
+} H225CallCapacityInfo;
+
+EXTERN int asn1PE_H225CallCapacityInfo (OOCTXT* pctxt, H225CallCapacityInfo* pvalue);
+
+EXTERN int asn1PD_H225CallCapacityInfo (OOCTXT* pctxt, H225CallCapacityInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCapacity */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallCapacity {
+ struct {
+ unsigned maximumCallCapacityPresent : 1;
+ unsigned currentCallCapacityPresent : 1;
+ } m;
+ H225CallCapacityInfo maximumCallCapacity;
+ H225CallCapacityInfo currentCallCapacity;
+} H225CallCapacity;
+
+EXTERN int asn1PE_H225CallCapacity (OOCTXT* pctxt, H225CallCapacity* pvalue);
+
+EXTERN int asn1PD_H225CallCapacity (OOCTXT* pctxt, H225CallCapacity* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CicInfo_cic_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225_SeqOfH225CicInfo_cic_element {
+ ASN1UINT n;
+ H225CicInfo_cic_element *elem;
+} H225_SeqOfH225CicInfo_cic_element;
+
+EXTERN int asn1PE_H225_SeqOfH225CicInfo_cic_element (OOCTXT* pctxt, H225_SeqOfH225CicInfo_cic_element* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225CicInfo_cic_element (OOCTXT* pctxt, H225_SeqOfH225CicInfo_cic_element* pvalue);
+
+/**************************************************************/
+/* */
+/* CicInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CicInfo {
+ H225_SeqOfH225CicInfo_cic_element cic;
+ H225CicInfo_pointCode pointCode;
+} H225CicInfo;
+
+EXTERN int asn1PE_H225CicInfo (OOCTXT* pctxt, H225CicInfo* pvalue);
+
+EXTERN int asn1PD_H225CicInfo (OOCTXT* pctxt, H225CicInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* GroupID_member */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GroupID_member {
+ ASN1UINT n;
+ ASN1USINT *elem;
+} H225GroupID_member;
+
+EXTERN int asn1PE_H225GroupID_member (OOCTXT* pctxt, H225GroupID_member* pvalue);
+
+EXTERN int asn1PD_H225GroupID_member (OOCTXT* pctxt, H225GroupID_member* pvalue);
+
+/**************************************************************/
+/* */
+/* GroupID */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GroupID {
+ struct {
+ unsigned memberPresent : 1;
+ } m;
+ H225GroupID_member member;
+ ASN1IA5String group;
+} H225GroupID;
+
+EXTERN int asn1PE_H225GroupID (OOCTXT* pctxt, H225GroupID* pvalue);
+
+EXTERN int asn1PD_H225GroupID (OOCTXT* pctxt, H225GroupID* pvalue);
+
+/**************************************************************/
+/* */
+/* CircuitIdentifier */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CircuitIdentifier {
+ struct {
+ unsigned cicPresent : 1;
+ unsigned groupPresent : 1;
+ unsigned carrierPresent : 1;
+ } m;
+ H225CicInfo cic;
+ H225GroupID group;
+ H225CarrierInfo carrier;
+} H225CircuitIdentifier;
+
+EXTERN int asn1PE_H225CircuitIdentifier (OOCTXT* pctxt, H225CircuitIdentifier* pvalue);
+
+EXTERN int asn1PD_H225CircuitIdentifier (OOCTXT* pctxt, H225CircuitIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225GenericData */
+/* */
+/**************************************************************/
+
+/* List of H225GenericData */
+typedef DList H225_SeqOfH225GenericData;
+
+EXTERN int asn1PE_H225_SeqOfH225GenericData (OOCTXT* pctxt, H225_SeqOfH225GenericData* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225GenericData (OOCTXT* pctxt, H225_SeqOfH225GenericData* pvalue);
+
+/**************************************************************/
+/* */
+/* CircuitInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CircuitInfo {
+ struct {
+ unsigned sourceCircuitIDPresent : 1;
+ unsigned destinationCircuitIDPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225CircuitIdentifier sourceCircuitID;
+ H225CircuitIdentifier destinationCircuitID;
+ H225_SeqOfH225GenericData genericData;
+} H225CircuitInfo;
+
+EXTERN int asn1PE_H225CircuitInfo (OOCTXT* pctxt, H225CircuitInfo* pvalue);
+
+EXTERN int asn1PD_H225CircuitInfo (OOCTXT* pctxt, H225CircuitInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225FeatureDescriptor */
+/* */
+/**************************************************************/
+
+/* List of H225FeatureDescriptor */
+typedef DList H225_SeqOfH225FeatureDescriptor;
+
+EXTERN int asn1PE_H225_SeqOfH225FeatureDescriptor (OOCTXT* pctxt, H225_SeqOfH225FeatureDescriptor* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225FeatureDescriptor (OOCTXT* pctxt, H225_SeqOfH225FeatureDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_parallelH245Control */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Setup_UUIE_parallelH245Control {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Setup_UUIE_parallelH245Control;
+
+EXTERN int asn1PE_H225Setup_UUIE_parallelH245Control (OOCTXT* pctxt, H225Setup_UUIE_parallelH245Control* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE_parallelH245Control (OOCTXT* pctxt, H225Setup_UUIE_parallelH245Control* pvalue);
+
+/**************************************************************/
+/* */
+/* ExtendedAliasAddress */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ExtendedAliasAddress {
+ struct {
+ unsigned presentationIndicatorPresent : 1;
+ unsigned screeningIndicatorPresent : 1;
+ } m;
+ H225AliasAddress address;
+ H225PresentationIndicator presentationIndicator;
+ H225ScreeningIndicator screeningIndicator;
+} H225ExtendedAliasAddress;
+
+EXTERN int asn1PE_H225ExtendedAliasAddress (OOCTXT* pctxt, H225ExtendedAliasAddress* pvalue);
+
+EXTERN int asn1PD_H225ExtendedAliasAddress (OOCTXT* pctxt, H225ExtendedAliasAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ExtendedAliasAddress */
+/* */
+/**************************************************************/
+
+/* List of H225ExtendedAliasAddress */
+typedef DList H225_SeqOfH225ExtendedAliasAddress;
+
+EXTERN int asn1PE_H225_SeqOfH225ExtendedAliasAddress (OOCTXT* pctxt, H225_SeqOfH225ExtendedAliasAddress* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225ExtendedAliasAddress (OOCTXT* pctxt, H225_SeqOfH225ExtendedAliasAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* Setup_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Setup_UUIE {
+ struct {
+ unsigned h245AddressPresent : 1;
+ unsigned sourceAddressPresent : 1;
+ unsigned destinationAddressPresent : 1;
+ unsigned destCallSignalAddressPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned destExtraCRVPresent : 1;
+ unsigned callServicesPresent : 1;
+ unsigned sourceCallSignalAddressPresent : 1;
+ unsigned remoteExtensionAddressPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned h245SecurityCapabilityPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned mediaWaitForConnectPresent : 1;
+ unsigned canOverlapSendPresent : 1;
+ unsigned endpointIdentifierPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned connectionParametersPresent : 1;
+ unsigned languagePresent : 1;
+ unsigned presentationIndicatorPresent : 1;
+ unsigned screeningIndicatorPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned symmetricOperationRequiredPresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned desiredProtocolsPresent : 1;
+ unsigned neededFeaturesPresent : 1;
+ unsigned desiredFeaturesPresent : 1;
+ unsigned supportedFeaturesPresent : 1;
+ unsigned parallelH245ControlPresent : 1;
+ unsigned additionalSourceAddressesPresent : 1;
+ unsigned hopCountPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225TransportAddress h245Address;
+ H225_SeqOfH225AliasAddress sourceAddress;
+ H225EndpointType sourceInfo;
+ H225_SeqOfH225AliasAddress destinationAddress;
+ H225TransportAddress destCallSignalAddress;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225_SeqOfH225CallReferenceValue destExtraCRV;
+ ASN1BOOL activeMC;
+ H225ConferenceIdentifier conferenceID;
+ H225Setup_UUIE_conferenceGoal conferenceGoal;
+ H225QseriesOptions callServices;
+ H225CallType callType;
+ H225TransportAddress sourceCallSignalAddress;
+ H225AliasAddress remoteExtensionAddress;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225H245Security h245SecurityCapability;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225Setup_UUIE_fastStart fastStart;
+ ASN1BOOL mediaWaitForConnect;
+ ASN1BOOL canOverlapSend;
+ H225EndpointIdentifier endpointIdentifier;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+ H225Setup_UUIE_connectionParameters connectionParameters;
+ H225Setup_UUIE_language language;
+ H225PresentationIndicator presentationIndicator;
+ H225ScreeningIndicator screeningIndicator;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225CallCapacity capacity;
+ H225CircuitInfo circuitInfo;
+ H225_SeqOfH225SupportedProtocols desiredProtocols;
+ H225_SeqOfH225FeatureDescriptor neededFeatures;
+ H225_SeqOfH225FeatureDescriptor desiredFeatures;
+ H225_SeqOfH225FeatureDescriptor supportedFeatures;
+ H225Setup_UUIE_parallelH245Control parallelH245Control;
+ H225_SeqOfH225ExtendedAliasAddress additionalSourceAddresses;
+ ASN1UINT8 hopCount;
+} H225Setup_UUIE;
+
+EXTERN int asn1PE_H225Setup_UUIE (OOCTXT* pctxt, H225Setup_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Setup_UUIE (OOCTXT* pctxt, H225Setup_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* CallProceeding_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallProceeding_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225CallProceeding_UUIE_fastStart;
+
+EXTERN int asn1PE_H225CallProceeding_UUIE_fastStart (OOCTXT* pctxt, H225CallProceeding_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225CallProceeding_UUIE_fastStart (OOCTXT* pctxt, H225CallProceeding_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* FeatureSet */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225FeatureSet {
+ struct {
+ unsigned neededFeaturesPresent : 1;
+ unsigned desiredFeaturesPresent : 1;
+ unsigned supportedFeaturesPresent : 1;
+ } m;
+ ASN1BOOL replacementFeatureSet;
+ H225_SeqOfH225FeatureDescriptor neededFeatures;
+ H225_SeqOfH225FeatureDescriptor desiredFeatures;
+ H225_SeqOfH225FeatureDescriptor supportedFeatures;
+} H225FeatureSet;
+
+EXTERN int asn1PE_H225FeatureSet (OOCTXT* pctxt, H225FeatureSet* pvalue);
+
+EXTERN int asn1PD_H225FeatureSet (OOCTXT* pctxt, H225FeatureSet* pvalue);
+
+/**************************************************************/
+/* */
+/* CallProceeding_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallProceeding_UUIE {
+ struct {
+ unsigned h245AddressPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned h245SecurityModePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ unsigned featureSetPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225EndpointType destinationInfo;
+ H225TransportAddress h245Address;
+ H225CallIdentifier callIdentifier;
+ H225H245Security h245SecurityMode;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225CallProceeding_UUIE_fastStart fastStart;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+ H225FeatureSet featureSet;
+} H225CallProceeding_UUIE;
+
+EXTERN int asn1PE_H225CallProceeding_UUIE (OOCTXT* pctxt, H225CallProceeding_UUIE* pvalue);
+
+EXTERN int asn1PD_H225CallProceeding_UUIE (OOCTXT* pctxt, H225CallProceeding_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Connect_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Connect_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Connect_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Connect_UUIE_fastStart (OOCTXT* pctxt, H225Connect_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Connect_UUIE_fastStart (OOCTXT* pctxt, H225Connect_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* Connect_UUIE_language */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Connect_UUIE_language {
+ ASN1UINT n;
+ ASN1IA5String *elem;
+} H225Connect_UUIE_language;
+
+EXTERN int asn1PE_H225Connect_UUIE_language (OOCTXT* pctxt, H225Connect_UUIE_language* pvalue);
+
+EXTERN int asn1PD_H225Connect_UUIE_language (OOCTXT* pctxt, H225Connect_UUIE_language* pvalue);
+
+/**************************************************************/
+/* */
+/* Connect_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Connect_UUIE {
+ struct {
+ unsigned h245AddressPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned h245SecurityModePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned languagePresent : 1;
+ unsigned connectedAddressPresent : 1;
+ unsigned presentationIndicatorPresent : 1;
+ unsigned screeningIndicatorPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned featureSetPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225TransportAddress h245Address;
+ H225EndpointType destinationInfo;
+ H225ConferenceIdentifier conferenceID;
+ H225CallIdentifier callIdentifier;
+ H225H245Security h245SecurityMode;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225Connect_UUIE_fastStart fastStart;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+ H225Connect_UUIE_language language;
+ H225_SeqOfH225AliasAddress connectedAddress;
+ H225PresentationIndicator presentationIndicator;
+ H225ScreeningIndicator screeningIndicator;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225CallCapacity capacity;
+ H225FeatureSet featureSet;
+} H225Connect_UUIE;
+
+EXTERN int asn1PE_H225Connect_UUIE (OOCTXT* pctxt, H225Connect_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Connect_UUIE (OOCTXT* pctxt, H225Connect_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Alerting_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Alerting_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Alerting_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Alerting_UUIE_fastStart (OOCTXT* pctxt, H225Alerting_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Alerting_UUIE_fastStart (OOCTXT* pctxt, H225Alerting_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* Alerting_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Alerting_UUIE {
+ struct {
+ unsigned h245AddressPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned h245SecurityModePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned alertingAddressPresent : 1;
+ unsigned presentationIndicatorPresent : 1;
+ unsigned screeningIndicatorPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned featureSetPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225EndpointType destinationInfo;
+ H225TransportAddress h245Address;
+ H225CallIdentifier callIdentifier;
+ H225H245Security h245SecurityMode;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225Alerting_UUIE_fastStart fastStart;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+ H225_SeqOfH225AliasAddress alertingAddress;
+ H225PresentationIndicator presentationIndicator;
+ H225ScreeningIndicator screeningIndicator;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225CallCapacity capacity;
+ H225FeatureSet featureSet;
+} H225Alerting_UUIE;
+
+EXTERN int asn1PE_H225Alerting_UUIE (OOCTXT* pctxt, H225Alerting_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Alerting_UUIE (OOCTXT* pctxt, H225Alerting_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Information_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Information_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Information_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Information_UUIE_fastStart (OOCTXT* pctxt, H225Information_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Information_UUIE_fastStart (OOCTXT* pctxt, H225Information_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* Information_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Information_UUIE {
+ struct {
+ unsigned callIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225Information_UUIE_fastStart fastStart;
+ H225CircuitInfo circuitInfo;
+} H225Information_UUIE;
+
+EXTERN int asn1PE_H225Information_UUIE (OOCTXT* pctxt, H225Information_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Information_UUIE (OOCTXT* pctxt, H225Information_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* SecurityErrors */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225SecurityErrors_securityWrongSyncTime 1
+#define T_H225SecurityErrors_securityReplay 2
+#define T_H225SecurityErrors_securityWrongGeneralID 3
+#define T_H225SecurityErrors_securityWrongSendersID 4
+#define T_H225SecurityErrors_securityIntegrityFailed 5
+#define T_H225SecurityErrors_securityWrongOID 6
+#define T_H225SecurityErrors_securityDHmismatch 7
+#define T_H225SecurityErrors_securityCertificateExpired 8
+#define T_H225SecurityErrors_securityCertificateDateInvalid 9
+#define T_H225SecurityErrors_securityCertificateRevoked 10
+#define T_H225SecurityErrors_securityCertificateNotReadable 11
+#define T_H225SecurityErrors_securityCertificateSignatureInvalid 12
+#define T_H225SecurityErrors_securityCertificateMissing 13
+#define T_H225SecurityErrors_securityCertificateIncomplete 14
+#define T_H225SecurityErrors_securityUnsupportedCertificateAlgOID 15
+#define T_H225SecurityErrors_securityUnknownCA 16
+#define T_H225SecurityErrors_extElem1 17
+
+typedef struct EXTERN H225SecurityErrors {
+ int t;
+} H225SecurityErrors;
+
+EXTERN int asn1PE_H225SecurityErrors (OOCTXT* pctxt, H225SecurityErrors* pvalue);
+
+EXTERN int asn1PD_H225SecurityErrors (OOCTXT* pctxt, H225SecurityErrors* pvalue);
+
+/**************************************************************/
+/* */
+/* ReleaseCompleteReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ReleaseCompleteReason_noBandwidth 1
+#define T_H225ReleaseCompleteReason_gatekeeperResources 2
+#define T_H225ReleaseCompleteReason_unreachableDestination 3
+#define T_H225ReleaseCompleteReason_destinationRejection 4
+#define T_H225ReleaseCompleteReason_invalidRevision 5
+#define T_H225ReleaseCompleteReason_noPermission 6
+#define T_H225ReleaseCompleteReason_unreachableGatekeeper 7
+#define T_H225ReleaseCompleteReason_gatewayResources 8
+#define T_H225ReleaseCompleteReason_badFormatAddress 9
+#define T_H225ReleaseCompleteReason_adaptiveBusy 10
+#define T_H225ReleaseCompleteReason_inConf 11
+#define T_H225ReleaseCompleteReason_undefinedReason 12
+#define T_H225ReleaseCompleteReason_facilityCallDeflection 13
+#define T_H225ReleaseCompleteReason_securityDenied 14
+#define T_H225ReleaseCompleteReason_calledPartyNotRegistered 15
+#define T_H225ReleaseCompleteReason_callerNotRegistered 16
+#define T_H225ReleaseCompleteReason_newConnectionNeeded 17
+#define T_H225ReleaseCompleteReason_nonStandardReason 18
+#define T_H225ReleaseCompleteReason_replaceWithConferenceInvite 19
+#define T_H225ReleaseCompleteReason_genericDataReason 20
+#define T_H225ReleaseCompleteReason_neededFeatureNotSupported 21
+#define T_H225ReleaseCompleteReason_tunnelledSignallingRejected 22
+#define T_H225ReleaseCompleteReason_invalidCID 23
+#define T_H225ReleaseCompleteReason_securityError 24
+#define T_H225ReleaseCompleteReason_hopCountExceeded 25
+#define T_H225ReleaseCompleteReason_extElem1 26
+
+typedef struct EXTERN H225ReleaseCompleteReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ /* t = 8 */
+ /* t = 9 */
+ /* t = 10 */
+ /* t = 11 */
+ /* t = 12 */
+ /* t = 13 */
+ /* t = 14 */
+ /* t = 15 */
+ /* t = 16 */
+ /* t = 17 */
+ /* t = 18 */
+ H225NonStandardParameter *nonStandardReason;
+ /* t = 19 */
+ H225ConferenceIdentifier *replaceWithConferenceInvite;
+ /* t = 20 */
+ /* t = 21 */
+ /* t = 22 */
+ /* t = 23 */
+ /* t = 24 */
+ H225SecurityErrors *securityError;
+ /* t = 25 */
+ /* t = 26 */
+ } u;
+} H225ReleaseCompleteReason;
+
+EXTERN int asn1PE_H225ReleaseCompleteReason (OOCTXT* pctxt, H225ReleaseCompleteReason* pvalue);
+
+EXTERN int asn1PD_H225ReleaseCompleteReason (OOCTXT* pctxt, H225ReleaseCompleteReason* pvalue);
+
+/**************************************************************/
+/* */
+/* ReleaseComplete_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ReleaseComplete_UUIE {
+ struct {
+ unsigned reasonPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned busyAddressPresent : 1;
+ unsigned presentationIndicatorPresent : 1;
+ unsigned screeningIndicatorPresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned featureSetPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225ReleaseCompleteReason reason;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225_SeqOfH225AliasAddress busyAddress;
+ H225PresentationIndicator presentationIndicator;
+ H225ScreeningIndicator screeningIndicator;
+ H225CallCapacity capacity;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225FeatureSet featureSet;
+} H225ReleaseComplete_UUIE;
+
+EXTERN int asn1PE_H225ReleaseComplete_UUIE (OOCTXT* pctxt, H225ReleaseComplete_UUIE* pvalue);
+
+EXTERN int asn1PD_H225ReleaseComplete_UUIE (OOCTXT* pctxt, H225ReleaseComplete_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* FacilityReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225FacilityReason_routeCallToGatekeeper 1
+#define T_H225FacilityReason_callForwarded 2
+#define T_H225FacilityReason_routeCallToMC 3
+#define T_H225FacilityReason_undefinedReason 4
+#define T_H225FacilityReason_conferenceListChoice 5
+#define T_H225FacilityReason_startH245 6
+#define T_H225FacilityReason_noH245 7
+#define T_H225FacilityReason_newTokens 8
+#define T_H225FacilityReason_featureSetUpdate 9
+#define T_H225FacilityReason_forwardedElements 10
+#define T_H225FacilityReason_transportedInformation 11
+#define T_H225FacilityReason_extElem1 12
+
+typedef struct EXTERN H225FacilityReason {
+ int t;
+} H225FacilityReason;
+
+EXTERN int asn1PE_H225FacilityReason (OOCTXT* pctxt, H225FacilityReason* pvalue);
+
+EXTERN int asn1PD_H225FacilityReason (OOCTXT* pctxt, H225FacilityReason* pvalue);
+
+/**************************************************************/
+/* */
+/* ConferenceList */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ConferenceList {
+ struct {
+ unsigned conferenceIDPresent : 1;
+ unsigned conferenceAliasPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225ConferenceIdentifier conferenceID;
+ H225AliasAddress conferenceAlias;
+ H225NonStandardParameter nonStandardData;
+} H225ConferenceList;
+
+EXTERN int asn1PE_H225ConferenceList (OOCTXT* pctxt, H225ConferenceList* pvalue);
+
+EXTERN int asn1PD_H225ConferenceList (OOCTXT* pctxt, H225ConferenceList* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ConferenceList */
+/* */
+/**************************************************************/
+
+/* List of H225ConferenceList */
+typedef DList H225_SeqOfH225ConferenceList;
+
+EXTERN int asn1PE_H225_SeqOfH225ConferenceList (OOCTXT* pctxt, H225_SeqOfH225ConferenceList* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225ConferenceList (OOCTXT* pctxt, H225_SeqOfH225ConferenceList* pvalue);
+
+/**************************************************************/
+/* */
+/* Facility_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Facility_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Facility_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Facility_UUIE_fastStart (OOCTXT* pctxt, H225Facility_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Facility_UUIE_fastStart (OOCTXT* pctxt, H225Facility_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* Facility_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Facility_UUIE {
+ struct {
+ unsigned alternativeAddressPresent : 1;
+ unsigned alternativeAliasAddressPresent : 1;
+ unsigned conferenceIDPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned remoteExtensionAddressPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned conferencesPresent : 1;
+ unsigned h245AddressPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned destinationInfoPresent : 1;
+ unsigned h245SecurityModePresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225TransportAddress alternativeAddress;
+ H225_SeqOfH225AliasAddress alternativeAliasAddress;
+ H225ConferenceIdentifier conferenceID;
+ H225FacilityReason reason;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225AliasAddress remoteExtensionAddress;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225_SeqOfH225ConferenceList conferences;
+ H225TransportAddress h245Address;
+ H225Facility_UUIE_fastStart fastStart;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225CircuitInfo circuitInfo;
+ H225FeatureSet featureSet;
+ H225EndpointType destinationInfo;
+ H225H245Security h245SecurityMode;
+} H225Facility_UUIE;
+
+EXTERN int asn1PE_H225Facility_UUIE (OOCTXT* pctxt, H225Facility_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Facility_UUIE (OOCTXT* pctxt, H225Facility_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Progress_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Progress_UUIE_fastStart {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225Progress_UUIE_fastStart;
+
+EXTERN int asn1PE_H225Progress_UUIE_fastStart (OOCTXT* pctxt, H225Progress_UUIE_fastStart* pvalue);
+
+EXTERN int asn1PD_H225Progress_UUIE_fastStart (OOCTXT* pctxt, H225Progress_UUIE_fastStart* pvalue);
+
+/**************************************************************/
+/* */
+/* Progress_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Progress_UUIE {
+ struct {
+ unsigned h245AddressPresent : 1;
+ unsigned h245SecurityModePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned fastStartPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned fastConnectRefusedPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225EndpointType destinationInfo;
+ H225TransportAddress h245Address;
+ H225CallIdentifier callIdentifier;
+ H225H245Security h245SecurityMode;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225Progress_UUIE_fastStart fastStart;
+ ASN1BOOL multipleCalls;
+ ASN1BOOL maintainConnection;
+} H225Progress_UUIE;
+
+EXTERN int asn1PE_H225Progress_UUIE (OOCTXT* pctxt, H225Progress_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Progress_UUIE (OOCTXT* pctxt, H225Progress_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Status_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Status_UUIE {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+} H225Status_UUIE;
+
+EXTERN int asn1PE_H225Status_UUIE (OOCTXT* pctxt, H225Status_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Status_UUIE (OOCTXT* pctxt, H225Status_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* StatusInquiry_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225StatusInquiry_UUIE {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+} H225StatusInquiry_UUIE;
+
+EXTERN int asn1PE_H225StatusInquiry_UUIE (OOCTXT* pctxt, H225StatusInquiry_UUIE* pvalue);
+
+EXTERN int asn1PD_H225StatusInquiry_UUIE (OOCTXT* pctxt, H225StatusInquiry_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* SetupAcknowledge_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225SetupAcknowledge_UUIE {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+} H225SetupAcknowledge_UUIE;
+
+EXTERN int asn1PE_H225SetupAcknowledge_UUIE (OOCTXT* pctxt, H225SetupAcknowledge_UUIE* pvalue);
+
+EXTERN int asn1PD_H225SetupAcknowledge_UUIE (OOCTXT* pctxt, H225SetupAcknowledge_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* Notify_UUIE */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Notify_UUIE {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ } m;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+} H225Notify_UUIE;
+
+EXTERN int asn1PE_H225Notify_UUIE (OOCTXT* pctxt, H225Notify_UUIE* pvalue);
+
+EXTERN int asn1PD_H225Notify_UUIE (OOCTXT* pctxt, H225Notify_UUIE* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU_h323_message_body */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225H323_UU_PDU_h323_message_body_setup 1
+#define T_H225H323_UU_PDU_h323_message_body_callProceeding 2
+#define T_H225H323_UU_PDU_h323_message_body_connect 3
+#define T_H225H323_UU_PDU_h323_message_body_alerting 4
+#define T_H225H323_UU_PDU_h323_message_body_information 5
+#define T_H225H323_UU_PDU_h323_message_body_releaseComplete 6
+#define T_H225H323_UU_PDU_h323_message_body_facility 7
+#define T_H225H323_UU_PDU_h323_message_body_progress 8
+#define T_H225H323_UU_PDU_h323_message_body_empty 9
+#define T_H225H323_UU_PDU_h323_message_body_status 10
+#define T_H225H323_UU_PDU_h323_message_body_statusInquiry 11
+#define T_H225H323_UU_PDU_h323_message_body_setupAcknowledge 12
+#define T_H225H323_UU_PDU_h323_message_body_notify 13
+#define T_H225H323_UU_PDU_h323_message_body_extElem1 14
+
+typedef struct EXTERN H225H323_UU_PDU_h323_message_body {
+ int t;
+ union {
+ /* t = 1 */
+ H225Setup_UUIE *setup;
+ /* t = 2 */
+ H225CallProceeding_UUIE *callProceeding;
+ /* t = 3 */
+ H225Connect_UUIE *connect;
+ /* t = 4 */
+ H225Alerting_UUIE *alerting;
+ /* t = 5 */
+ H225Information_UUIE *information;
+ /* t = 6 */
+ H225ReleaseComplete_UUIE *releaseComplete;
+ /* t = 7 */
+ H225Facility_UUIE *facility;
+ /* t = 8 */
+ H225Progress_UUIE *progress;
+ /* t = 9 */
+ /* t = 10 */
+ H225Status_UUIE *status;
+ /* t = 11 */
+ H225StatusInquiry_UUIE *statusInquiry;
+ /* t = 12 */
+ H225SetupAcknowledge_UUIE *setupAcknowledge;
+ /* t = 13 */
+ H225Notify_UUIE *notify;
+ /* t = 14 */
+ } u;
+} H225H323_UU_PDU_h323_message_body;
+
+EXTERN int asn1PE_H225H323_UU_PDU_h323_message_body (OOCTXT* pctxt, H225H323_UU_PDU_h323_message_body* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU_h323_message_body (OOCTXT* pctxt, H225H323_UU_PDU_h323_message_body* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU_h4501SupplementaryService */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UU_PDU_h4501SupplementaryService {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225H323_UU_PDU_h4501SupplementaryService;
+
+EXTERN int asn1PE_H225H323_UU_PDU_h4501SupplementaryService (OOCTXT* pctxt, H225H323_UU_PDU_h4501SupplementaryService* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU_h4501SupplementaryService (OOCTXT* pctxt, H225H323_UU_PDU_h4501SupplementaryService* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU_h245Control */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UU_PDU_h245Control {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225H323_UU_PDU_h245Control;
+
+EXTERN int asn1PE_H225H323_UU_PDU_h245Control (OOCTXT* pctxt, H225H323_UU_PDU_h245Control* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU_h245Control (OOCTXT* pctxt, H225H323_UU_PDU_h245Control* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225NonStandardParameter */
+/* */
+/**************************************************************/
+
+/* List of H225NonStandardParameter */
+typedef DList H225_SeqOfH225NonStandardParameter;
+
+EXTERN int asn1PE_H225_SeqOfH225NonStandardParameter (OOCTXT* pctxt, H225_SeqOfH225NonStandardParameter* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225NonStandardParameter (OOCTXT* pctxt, H225_SeqOfH225NonStandardParameter* pvalue);
+
+/**************************************************************/
+/* */
+/* CallLinkage */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallLinkage {
+ struct {
+ unsigned globalCallIdPresent : 1;
+ unsigned threadIdPresent : 1;
+ } m;
+ H225GloballyUniqueID globalCallId;
+ H225GloballyUniqueID threadId;
+} H225CallLinkage;
+
+EXTERN int asn1PE_H225CallLinkage (OOCTXT* pctxt, H225CallLinkage* pvalue);
+
+EXTERN int asn1PD_H225CallLinkage (OOCTXT* pctxt, H225CallLinkage* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU_tunnelledSignallingMessage_messageContent */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UU_PDU_tunnelledSignallingMessage_messageContent {
+ ASN1UINT n;
+ ASN1DynOctStr *elem;
+} H225H323_UU_PDU_tunnelledSignallingMessage_messageContent;
+
+EXTERN int asn1PE_H225H323_UU_PDU_tunnelledSignallingMessage_messageContent (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage_messageContent* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU_tunnelledSignallingMessage_messageContent (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage_messageContent* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU_tunnelledSignallingMessage */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UU_PDU_tunnelledSignallingMessage {
+ struct {
+ unsigned tunnellingRequiredPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ } m;
+ H225TunnelledProtocol tunnelledProtocolID;
+ H225H323_UU_PDU_tunnelledSignallingMessage_messageContent messageContent;
+ H225NonStandardParameter nonStandardData;
+} H225H323_UU_PDU_tunnelledSignallingMessage;
+
+EXTERN int asn1PE_H225H323_UU_PDU_tunnelledSignallingMessage (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU_tunnelledSignallingMessage (OOCTXT* pctxt, H225H323_UU_PDU_tunnelledSignallingMessage* pvalue);
+
+/**************************************************************/
+/* */
+/* StimulusControl */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225StimulusControl {
+ struct {
+ unsigned nonStandardPresent : 1;
+ unsigned isTextPresent : 1;
+ unsigned h248MessagePresent : 1;
+ } m;
+ H225NonStandardParameter nonStandard;
+ ASN1DynOctStr h248Message;
+} H225StimulusControl;
+
+EXTERN int asn1PE_H225StimulusControl (OOCTXT* pctxt, H225StimulusControl* pvalue);
+
+EXTERN int asn1PD_H225StimulusControl (OOCTXT* pctxt, H225StimulusControl* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UU_PDU */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UU_PDU {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned h4501SupplementaryServicePresent : 1;
+ unsigned h245TunnelingPresent : 1;
+ unsigned h245ControlPresent : 1;
+ unsigned nonStandardControlPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned tunnelledSignallingMessagePresent : 1;
+ unsigned provisionalRespToH245TunnelingPresent : 1;
+ unsigned stimulusControlPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225H323_UU_PDU_h323_message_body h323_message_body;
+ H225NonStandardParameter nonStandardData;
+ H225H323_UU_PDU_h4501SupplementaryService h4501SupplementaryService;
+ ASN1BOOL h245Tunneling;
+ H225H323_UU_PDU_h245Control h245Control;
+ H225_SeqOfH225NonStandardParameter nonStandardControl;
+ H225CallLinkage callLinkage;
+ H225H323_UU_PDU_tunnelledSignallingMessage tunnelledSignallingMessage;
+ H225StimulusControl stimulusControl;
+ H225_SeqOfH225GenericData genericData;
+} H225H323_UU_PDU;
+
+EXTERN int asn1PE_H225H323_UU_PDU (OOCTXT* pctxt, H225H323_UU_PDU* pvalue);
+
+EXTERN int asn1PD_H225H323_UU_PDU (OOCTXT* pctxt, H225H323_UU_PDU* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UserInformation_user_data */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UserInformation_user_data {
+ ASN1UINT8 protocol_discriminator;
+ H225H323_UserInformation_user_data_user_information user_information;
+} H225H323_UserInformation_user_data;
+
+EXTERN int asn1PE_H225H323_UserInformation_user_data (OOCTXT* pctxt, H225H323_UserInformation_user_data* pvalue);
+
+EXTERN int asn1PD_H225H323_UserInformation_user_data (OOCTXT* pctxt, H225H323_UserInformation_user_data* pvalue);
+
+/**************************************************************/
+/* */
+/* H323_UserInformation */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225H323_UserInformation {
+ struct {
+ unsigned user_dataPresent : 1;
+ } m;
+ H225H323_UU_PDU h323_uu_pdu;
+ H225H323_UserInformation_user_data user_data;
+} H225H323_UserInformation;
+
+EXTERN int asn1PE_H225H323_UserInformation (OOCTXT* pctxt, H225H323_UserInformation* pvalue);
+
+EXTERN int asn1PD_H225H323_UserInformation (OOCTXT* pctxt, H225H323_UserInformation* pvalue);
+
+/**************************************************************/
+/* */
+/* AddressPattern_range */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AddressPattern_range {
+ H225PartyNumber startOfRange;
+ H225PartyNumber endOfRange;
+} H225AddressPattern_range;
+
+EXTERN int asn1PE_H225AddressPattern_range (OOCTXT* pctxt, H225AddressPattern_range* pvalue);
+
+EXTERN int asn1PD_H225AddressPattern_range (OOCTXT* pctxt, H225AddressPattern_range* pvalue);
+
+/**************************************************************/
+/* */
+/* AddressPattern */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225AddressPattern_wildcard 1
+#define T_H225AddressPattern_range 2
+#define T_H225AddressPattern_extElem1 3
+
+typedef struct EXTERN H225AddressPattern {
+ int t;
+ union {
+ /* t = 1 */
+ H225AliasAddress *wildcard;
+ /* t = 2 */
+ H225AddressPattern_range *range;
+ /* t = 3 */
+ } u;
+} H225AddressPattern;
+
+EXTERN int asn1PE_H225AddressPattern (OOCTXT* pctxt, H225AddressPattern* pvalue);
+
+EXTERN int asn1PD_H225AddressPattern (OOCTXT* pctxt, H225AddressPattern* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TransportAddress */
+/* */
+/**************************************************************/
+
+/* List of H225TransportAddress */
+typedef DList H225_SeqOfH225TransportAddress;
+
+EXTERN int asn1PE_H225_SeqOfH225TransportAddress (OOCTXT* pctxt, H225_SeqOfH225TransportAddress* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225TransportAddress (OOCTXT* pctxt, H225_SeqOfH225TransportAddress* pvalue);
+
+/**************************************************************/
+/* */
+/* AlternateTransportAddresses */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AlternateTransportAddresses {
+ struct {
+ unsigned annexEPresent : 1;
+ unsigned sctpPresent : 1;
+ } m;
+ H225_SeqOfH225TransportAddress annexE;
+ H225_SeqOfH225TransportAddress sctp;
+} H225AlternateTransportAddresses;
+
+EXTERN int asn1PE_H225AlternateTransportAddresses (OOCTXT* pctxt, H225AlternateTransportAddresses* pvalue);
+
+EXTERN int asn1PD_H225AlternateTransportAddresses (OOCTXT* pctxt, H225AlternateTransportAddresses* pvalue);
+
+/**************************************************************/
+/* */
+/* Endpoint */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225Endpoint {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned aliasAddressPresent : 1;
+ unsigned callSignalAddressPresent : 1;
+ unsigned rasAddressPresent : 1;
+ unsigned endpointTypePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned priorityPresent : 1;
+ unsigned remoteExtensionAddressPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned alternateTransportAddressesPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned featureSetPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225AliasAddress aliasAddress;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225_SeqOfH225TransportAddress rasAddress;
+ H225EndpointType endpointType;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ ASN1UINT8 priority;
+ H225_SeqOfH225AliasAddress remoteExtensionAddress;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225AlternateTransportAddresses alternateTransportAddresses;
+ H225CircuitInfo circuitInfo;
+ H225FeatureSet featureSet;
+} H225Endpoint;
+
+EXTERN int asn1PE_H225Endpoint (OOCTXT* pctxt, H225Endpoint* pvalue);
+
+EXTERN int asn1PD_H225Endpoint (OOCTXT* pctxt, H225Endpoint* pvalue);
+
+/**************************************************************/
+/* */
+/* UseSpecifiedTransport */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225UseSpecifiedTransport_tcp 1
+#define T_H225UseSpecifiedTransport_annexE 2
+#define T_H225UseSpecifiedTransport_sctp 3
+#define T_H225UseSpecifiedTransport_extElem1 4
+
+typedef struct EXTERN H225UseSpecifiedTransport {
+ int t;
+} H225UseSpecifiedTransport;
+
+EXTERN int asn1PE_H225UseSpecifiedTransport (OOCTXT* pctxt, H225UseSpecifiedTransport* pvalue);
+
+EXTERN int asn1PD_H225UseSpecifiedTransport (OOCTXT* pctxt, H225UseSpecifiedTransport* pvalue);
+
+/**************************************************************/
+/* */
+/* AlternateGK */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AlternateGK {
+ struct {
+ unsigned gatekeeperIdentifierPresent : 1;
+ } m;
+ H225TransportAddress rasAddress;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ ASN1BOOL needToRegister;
+ ASN1UINT8 priority;
+} H225AlternateGK;
+
+EXTERN int asn1PE_H225AlternateGK (OOCTXT* pctxt, H225AlternateGK* pvalue);
+
+EXTERN int asn1PD_H225AlternateGK (OOCTXT* pctxt, H225AlternateGK* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AlternateGK */
+/* */
+/**************************************************************/
+
+/* List of H225AlternateGK */
+typedef DList H225_SeqOfH225AlternateGK;
+
+EXTERN int asn1PE_H225_SeqOfH225AlternateGK (OOCTXT* pctxt, H225_SeqOfH225AlternateGK* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225AlternateGK (OOCTXT* pctxt, H225_SeqOfH225AlternateGK* pvalue);
+
+/**************************************************************/
+/* */
+/* AltGKInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AltGKInfo {
+ H225_SeqOfH225AlternateGK alternateGatekeeper;
+ ASN1BOOL altGKisPermanent;
+} H225AltGKInfo;
+
+EXTERN int asn1PE_H225AltGKInfo (OOCTXT* pctxt, H225AltGKInfo* pvalue);
+
+EXTERN int asn1PD_H225AltGKInfo (OOCTXT* pctxt, H225AltGKInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* SecurityErrors2 */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225SecurityErrors2_securityWrongSyncTime 1
+#define T_H225SecurityErrors2_securityReplay 2
+#define T_H225SecurityErrors2_securityWrongGeneralID 3
+#define T_H225SecurityErrors2_securityWrongSendersID 4
+#define T_H225SecurityErrors2_securityIntegrityFailed 5
+#define T_H225SecurityErrors2_securityWrongOID 6
+#define T_H225SecurityErrors2_extElem1 7
+
+typedef struct EXTERN H225SecurityErrors2 {
+ int t;
+} H225SecurityErrors2;
+
+EXTERN int asn1PE_H225SecurityErrors2 (OOCTXT* pctxt, H225SecurityErrors2* pvalue);
+
+EXTERN int asn1PD_H225SecurityErrors2 (OOCTXT* pctxt, H225SecurityErrors2* pvalue);
+
+/**************************************************************/
+/* */
+/* EncryptIntAlg */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225EncryptIntAlg_nonStandard 1
+#define T_H225EncryptIntAlg_isoAlgorithm 2
+#define T_H225EncryptIntAlg_extElem1 3
+
+typedef struct EXTERN H225EncryptIntAlg {
+ int t;
+ union {
+ /* t = 1 */
+ H225NonStandardParameter *nonStandard;
+ /* t = 2 */
+ ASN1OBJID *isoAlgorithm;
+ /* t = 3 */
+ } u;
+} H225EncryptIntAlg;
+
+EXTERN int asn1PE_H225EncryptIntAlg (OOCTXT* pctxt, H225EncryptIntAlg* pvalue);
+
+EXTERN int asn1PD_H225EncryptIntAlg (OOCTXT* pctxt, H225EncryptIntAlg* pvalue);
+
+/**************************************************************/
+/* */
+/* NonIsoIntegrityMechanism */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225NonIsoIntegrityMechanism_hMAC_MD5 1
+#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_2_s 2
+#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_2_l 3
+#define T_H225NonIsoIntegrityMechanism_hMAC_iso10118_3 4
+#define T_H225NonIsoIntegrityMechanism_extElem1 5
+
+typedef struct EXTERN H225NonIsoIntegrityMechanism {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ H225EncryptIntAlg *hMAC_iso10118_2_s;
+ /* t = 3 */
+ H225EncryptIntAlg *hMAC_iso10118_2_l;
+ /* t = 4 */
+ ASN1OBJID *hMAC_iso10118_3;
+ /* t = 5 */
+ } u;
+} H225NonIsoIntegrityMechanism;
+
+EXTERN int asn1PE_H225NonIsoIntegrityMechanism (OOCTXT* pctxt, H225NonIsoIntegrityMechanism* pvalue);
+
+EXTERN int asn1PD_H225NonIsoIntegrityMechanism (OOCTXT* pctxt, H225NonIsoIntegrityMechanism* pvalue);
+
+/**************************************************************/
+/* */
+/* IntegrityMechanism */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225IntegrityMechanism_nonStandard 1
+#define T_H225IntegrityMechanism_digSig 2
+#define T_H225IntegrityMechanism_iso9797 3
+#define T_H225IntegrityMechanism_nonIsoIM 4
+#define T_H225IntegrityMechanism_extElem1 5
+
+typedef struct EXTERN H225IntegrityMechanism {
+ int t;
+ union {
+ /* t = 1 */
+ H225NonStandardParameter *nonStandard;
+ /* t = 2 */
+ /* t = 3 */
+ ASN1OBJID *iso9797;
+ /* t = 4 */
+ H225NonIsoIntegrityMechanism *nonIsoIM;
+ /* t = 5 */
+ } u;
+} H225IntegrityMechanism;
+
+EXTERN int asn1PE_H225IntegrityMechanism (OOCTXT* pctxt, H225IntegrityMechanism* pvalue);
+
+EXTERN int asn1PD_H225IntegrityMechanism (OOCTXT* pctxt, H225IntegrityMechanism* pvalue);
+
+/**************************************************************/
+/* */
+/* ICV */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ICV {
+ ASN1OBJID algorithmOID;
+ ASN1DynBitStr icv;
+} H225ICV;
+
+EXTERN int asn1PE_H225ICV (OOCTXT* pctxt, H225ICV* pvalue);
+
+EXTERN int asn1PD_H225ICV (OOCTXT* pctxt, H225ICV* pvalue);
+
+/**************************************************************/
+/* */
+/* CapacityReportingCapability */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CapacityReportingCapability {
+ ASN1BOOL canReportCallCapacity;
+} H225CapacityReportingCapability;
+
+EXTERN int asn1PE_H225CapacityReportingCapability (OOCTXT* pctxt, H225CapacityReportingCapability* pvalue);
+
+EXTERN int asn1PD_H225CapacityReportingCapability (OOCTXT* pctxt, H225CapacityReportingCapability* pvalue);
+
+/**************************************************************/
+/* */
+/* CapacityReportingSpecification_when */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CapacityReportingSpecification_when {
+ struct {
+ unsigned callStartPresent : 1;
+ unsigned callEndPresent : 1;
+ } m;
+ ASN1OCTET __dummy__;
+} H225CapacityReportingSpecification_when;
+
+EXTERN int asn1PE_H225CapacityReportingSpecification_when (OOCTXT* pctxt, H225CapacityReportingSpecification_when* pvalue);
+
+EXTERN int asn1PD_H225CapacityReportingSpecification_when (OOCTXT* pctxt, H225CapacityReportingSpecification_when* pvalue);
+
+/**************************************************************/
+/* */
+/* CapacityReportingSpecification */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CapacityReportingSpecification {
+ H225CapacityReportingSpecification_when when;
+} H225CapacityReportingSpecification;
+
+EXTERN int asn1PE_H225CapacityReportingSpecification (OOCTXT* pctxt, H225CapacityReportingSpecification* pvalue);
+
+EXTERN int asn1PD_H225CapacityReportingSpecification (OOCTXT* pctxt, H225CapacityReportingSpecification* pvalue);
+
+/**************************************************************/
+/* */
+/* RasUsageInfoTypes */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RasUsageInfoTypes {
+ struct {
+ unsigned startTimePresent : 1;
+ unsigned endTimePresent : 1;
+ unsigned terminationCausePresent : 1;
+ } m;
+ H225_SeqOfH225NonStandardParameter nonStandardUsageTypes;
+} H225RasUsageInfoTypes;
+
+EXTERN int asn1PE_H225RasUsageInfoTypes (OOCTXT* pctxt, H225RasUsageInfoTypes* pvalue);
+
+EXTERN int asn1PD_H225RasUsageInfoTypes (OOCTXT* pctxt, H225RasUsageInfoTypes* pvalue);
+
+/**************************************************************/
+/* */
+/* RasUsageSpecification_when */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RasUsageSpecification_when {
+ struct {
+ unsigned startPresent : 1;
+ unsigned endPresent : 1;
+ unsigned inIrrPresent : 1;
+ } m;
+ ASN1OCTET __dummy__;
+} H225RasUsageSpecification_when;
+
+EXTERN int asn1PE_H225RasUsageSpecification_when (OOCTXT* pctxt, H225RasUsageSpecification_when* pvalue);
+
+EXTERN int asn1PD_H225RasUsageSpecification_when (OOCTXT* pctxt, H225RasUsageSpecification_when* pvalue);
+
+/**************************************************************/
+/* */
+/* RasUsageSpecification_callStartingPoint */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RasUsageSpecification_callStartingPoint {
+ struct {
+ unsigned alertingPresent : 1;
+ unsigned connectPresent : 1;
+ } m;
+ ASN1OCTET __dummy__;
+} H225RasUsageSpecification_callStartingPoint;
+
+EXTERN int asn1PE_H225RasUsageSpecification_callStartingPoint (OOCTXT* pctxt, H225RasUsageSpecification_callStartingPoint* pvalue);
+
+EXTERN int asn1PD_H225RasUsageSpecification_callStartingPoint (OOCTXT* pctxt, H225RasUsageSpecification_callStartingPoint* pvalue);
+
+/**************************************************************/
+/* */
+/* RasUsageSpecification */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RasUsageSpecification {
+ struct {
+ unsigned callStartingPointPresent : 1;
+ } m;
+ H225RasUsageSpecification_when when;
+ H225RasUsageSpecification_callStartingPoint callStartingPoint;
+ H225RasUsageInfoTypes required;
+} H225RasUsageSpecification;
+
+EXTERN int asn1PE_H225RasUsageSpecification (OOCTXT* pctxt, H225RasUsageSpecification* pvalue);
+
+EXTERN int asn1PD_H225RasUsageSpecification (OOCTXT* pctxt, H225RasUsageSpecification* pvalue);
+
+/**************************************************************/
+/* */
+/* RasUsageInformation */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RasUsageInformation {
+ struct {
+ unsigned alertingTimePresent : 1;
+ unsigned connectTimePresent : 1;
+ unsigned endTimePresent : 1;
+ } m;
+ H225_SeqOfH225NonStandardParameter nonStandardUsageFields;
+ H235TimeStamp alertingTime;
+ H235TimeStamp connectTime;
+ H235TimeStamp endTime;
+} H225RasUsageInformation;
+
+EXTERN int asn1PE_H225RasUsageInformation (OOCTXT* pctxt, H225RasUsageInformation* pvalue);
+
+EXTERN int asn1PD_H225RasUsageInformation (OOCTXT* pctxt, H225RasUsageInformation* pvalue);
+
+/**************************************************************/
+/* */
+/* CallTerminationCause */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CallTerminationCause_releaseCompleteReason 1
+#define T_H225CallTerminationCause_releaseCompleteCauseIE 2
+#define T_H225CallTerminationCause_extElem1 3
+
+typedef struct EXTERN H225CallTerminationCause {
+ int t;
+ union {
+ /* t = 1 */
+ H225ReleaseCompleteReason *releaseCompleteReason;
+ /* t = 2 */
+ H225CallTerminationCause_releaseCompleteCauseIE *releaseCompleteCauseIE;
+ /* t = 3 */
+ } u;
+} H225CallTerminationCause;
+
+EXTERN int asn1PE_H225CallTerminationCause (OOCTXT* pctxt, H225CallTerminationCause* pvalue);
+
+EXTERN int asn1PD_H225CallTerminationCause (OOCTXT* pctxt, H225CallTerminationCause* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportChannelInfo */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225TransportChannelInfo {
+ struct {
+ unsigned sendAddressPresent : 1;
+ unsigned recvAddressPresent : 1;
+ } m;
+ H225TransportAddress sendAddress;
+ H225TransportAddress recvAddress;
+} H225TransportChannelInfo;
+
+EXTERN int asn1PE_H225TransportChannelInfo (OOCTXT* pctxt, H225TransportChannelInfo* pvalue);
+
+EXTERN int asn1PD_H225TransportChannelInfo (OOCTXT* pctxt, H225TransportChannelInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* BandwidthDetails */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225BandwidthDetails {
+ ASN1BOOL sender;
+ ASN1BOOL multicast;
+ H225BandWidth bandwidth;
+ H225TransportChannelInfo rtcpAddresses;
+} H225BandwidthDetails;
+
+EXTERN int asn1PE_H225BandwidthDetails (OOCTXT* pctxt, H225BandwidthDetails* pvalue);
+
+EXTERN int asn1PD_H225BandwidthDetails (OOCTXT* pctxt, H225BandwidthDetails* pvalue);
+
+/**************************************************************/
+/* */
+/* CallCreditCapability */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225CallCreditCapability {
+ struct {
+ unsigned canDisplayAmountStringPresent : 1;
+ unsigned canEnforceDurationLimitPresent : 1;
+ } m;
+ ASN1BOOL canDisplayAmountString;
+ ASN1BOOL canEnforceDurationLimit;
+} H225CallCreditCapability;
+
+EXTERN int asn1PE_H225CallCreditCapability (OOCTXT* pctxt, H225CallCreditCapability* pvalue);
+
+EXTERN int asn1PD_H225CallCreditCapability (OOCTXT* pctxt, H225CallCreditCapability* pvalue);
+
+/**************************************************************/
+/* */
+/* RTPSession_associatedSessionIds */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RTPSession_associatedSessionIds {
+ ASN1UINT n;
+ ASN1UINT8 *elem;
+} H225RTPSession_associatedSessionIds;
+
+EXTERN int asn1PE_H225RTPSession_associatedSessionIds (OOCTXT* pctxt, H225RTPSession_associatedSessionIds* pvalue);
+
+EXTERN int asn1PD_H225RTPSession_associatedSessionIds (OOCTXT* pctxt, H225RTPSession_associatedSessionIds* pvalue);
+
+/**************************************************************/
+/* */
+/* RTPSession */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RTPSession {
+ struct {
+ unsigned multicastPresent : 1;
+ unsigned bandwidthPresent : 1;
+ } m;
+ H225TransportChannelInfo rtpAddress;
+ H225TransportChannelInfo rtcpAddress;
+ ASN1PrintableString cname;
+ ASN1UINT ssrc;
+ ASN1UINT8 sessionId;
+ H225RTPSession_associatedSessionIds associatedSessionIds;
+ H225BandWidth bandwidth;
+} H225RTPSession;
+
+EXTERN int asn1PE_H225RTPSession (OOCTXT* pctxt, H225RTPSession* pvalue);
+
+EXTERN int asn1PD_H225RTPSession (OOCTXT* pctxt, H225RTPSession* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225Endpoint */
+/* */
+/**************************************************************/
+
+/* List of H225Endpoint */
+typedef DList H225_SeqOfH225Endpoint;
+
+EXTERN int asn1PE_H225_SeqOfH225Endpoint (OOCTXT* pctxt, H225_SeqOfH225Endpoint* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225Endpoint (OOCTXT* pctxt, H225_SeqOfH225Endpoint* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AuthenticationMechanism */
+/* */
+/**************************************************************/
+
+/* List of H235AuthenticationMechanism */
+typedef DList H225_SeqOfH225AuthenticationMechanism;
+
+EXTERN int asn1PE_H225_SeqOfH225AuthenticationMechanism (OOCTXT* pctxt, H225_SeqOfH225AuthenticationMechanism* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225AuthenticationMechanism (OOCTXT* pctxt, H225_SeqOfH225AuthenticationMechanism* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperRequest_algorithmOIDs */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatekeeperRequest_algorithmOIDs {
+ ASN1UINT n;
+ ASN1OBJID *elem;
+} H225GatekeeperRequest_algorithmOIDs;
+
+EXTERN int asn1PE_H225GatekeeperRequest_algorithmOIDs (OOCTXT* pctxt, H225GatekeeperRequest_algorithmOIDs* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperRequest_algorithmOIDs (OOCTXT* pctxt, H225GatekeeperRequest_algorithmOIDs* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225IntegrityMechanism */
+/* */
+/**************************************************************/
+
+/* List of H225IntegrityMechanism */
+typedef DList H225_SeqOfH225IntegrityMechanism;
+
+EXTERN int asn1PE_H225_SeqOfH225IntegrityMechanism (OOCTXT* pctxt, H225_SeqOfH225IntegrityMechanism* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225IntegrityMechanism (OOCTXT* pctxt, H225_SeqOfH225IntegrityMechanism* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatekeeperRequest {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned callServicesPresent : 1;
+ unsigned endpointAliasPresent : 1;
+ unsigned alternateEndpointsPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned authenticationCapabilityPresent : 1;
+ unsigned algorithmOIDsPresent : 1;
+ unsigned integrityPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned supportsAltGKPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225TransportAddress rasAddress;
+ H225EndpointType endpointType;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225QseriesOptions callServices;
+ H225_SeqOfH225AliasAddress endpointAlias;
+ H225_SeqOfH225Endpoint alternateEndpoints;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225_SeqOfH225AuthenticationMechanism authenticationCapability;
+ H225GatekeeperRequest_algorithmOIDs algorithmOIDs;
+ H225_SeqOfH225IntegrityMechanism integrity;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225GatekeeperRequest;
+
+EXTERN int asn1PE_H225GatekeeperRequest (OOCTXT* pctxt, H225GatekeeperRequest* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperRequest (OOCTXT* pctxt, H225GatekeeperRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatekeeperConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned alternateGatekeeperPresent : 1;
+ unsigned authenticationModePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned algorithmOIDPresent : 1;
+ unsigned integrityPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225TransportAddress rasAddress;
+ H225_SeqOfH225AlternateGK alternateGatekeeper;
+ H235AuthenticationMechanism authenticationMode;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ ASN1OBJID algorithmOID;
+ H225_SeqOfH225IntegrityMechanism integrity;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225GatekeeperConfirm;
+
+EXTERN int asn1PE_H225GatekeeperConfirm (OOCTXT* pctxt, H225GatekeeperConfirm* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperConfirm (OOCTXT* pctxt, H225GatekeeperConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225GatekeeperRejectReason_resourceUnavailable 1
+#define T_H225GatekeeperRejectReason_terminalExcluded 2
+#define T_H225GatekeeperRejectReason_invalidRevision 3
+#define T_H225GatekeeperRejectReason_undefinedReason 4
+#define T_H225GatekeeperRejectReason_securityDenial 5
+#define T_H225GatekeeperRejectReason_genericDataReason 6
+#define T_H225GatekeeperRejectReason_neededFeatureNotSupported 7
+#define T_H225GatekeeperRejectReason_securityError 8
+#define T_H225GatekeeperRejectReason_extElem1 9
+
+typedef struct EXTERN H225GatekeeperRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ /* t = 8 */
+ H225SecurityErrors *securityError;
+ /* t = 9 */
+ } u;
+} H225GatekeeperRejectReason;
+
+EXTERN int asn1PE_H225GatekeeperRejectReason (OOCTXT* pctxt, H225GatekeeperRejectReason* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperRejectReason (OOCTXT* pctxt, H225GatekeeperRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* GatekeeperReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225GatekeeperReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225GatekeeperRejectReason rejectReason;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225GatekeeperReject;
+
+EXTERN int asn1PE_H225GatekeeperReject (OOCTXT* pctxt, H225GatekeeperReject* pvalue);
+
+EXTERN int asn1PD_H225GatekeeperReject (OOCTXT* pctxt, H225GatekeeperReject* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AddressPattern */
+/* */
+/**************************************************************/
+
+/* List of H225AddressPattern */
+typedef DList H225_SeqOfH225AddressPattern;
+
+EXTERN int asn1PE_H225_SeqOfH225AddressPattern (OOCTXT* pctxt, H225_SeqOfH225AddressPattern* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225AddressPattern (OOCTXT* pctxt, H225_SeqOfH225AddressPattern* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225H248PackagesDescriptor */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225_SeqOfH225H248PackagesDescriptor {
+ ASN1UINT n;
+ H225H248PackagesDescriptor *elem;
+} H225_SeqOfH225H248PackagesDescriptor;
+
+EXTERN int asn1PE_H225_SeqOfH225H248PackagesDescriptor (OOCTXT* pctxt, H225_SeqOfH225H248PackagesDescriptor* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225H248PackagesDescriptor (OOCTXT* pctxt, H225_SeqOfH225H248PackagesDescriptor* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RegistrationRequest {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned terminalAliasPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned alternateEndpointsPresent : 1;
+ unsigned timeToLivePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned keepAlivePresent : 1;
+ unsigned endpointIdentifierPresent : 1;
+ unsigned willSupplyUUIEsPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned alternateTransportAddressesPresent : 1;
+ unsigned additiveRegistrationPresent : 1;
+ unsigned terminalAliasPatternPresent : 1;
+ unsigned supportsAltGKPresent : 1;
+ unsigned usageReportingCapabilityPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned supportedH248PackagesPresent : 1;
+ unsigned callCreditCapabilityPresent : 1;
+ unsigned capacityReportingCapabilityPresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned restartPresent : 1;
+ unsigned supportsACFSequencesPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ ASN1BOOL discoveryComplete;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225_SeqOfH225TransportAddress rasAddress;
+ H225EndpointType terminalType;
+ H225_SeqOfH225AliasAddress terminalAlias;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225VendorIdentifier endpointVendor;
+ H225_SeqOfH225Endpoint alternateEndpoints;
+ H225TimeToLive timeToLive;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1BOOL keepAlive;
+ H225EndpointIdentifier endpointIdentifier;
+ ASN1BOOL willSupplyUUIEs;
+ ASN1BOOL maintainConnection;
+ H225AlternateTransportAddresses alternateTransportAddresses;
+ H225_SeqOfH225AddressPattern terminalAliasPattern;
+ H225RasUsageInfoTypes usageReportingCapability;
+ ASN1BOOL multipleCalls;
+ H225_SeqOfH225H248PackagesDescriptor supportedH248Packages;
+ H225CallCreditCapability callCreditCapability;
+ H225CapacityReportingCapability capacityReportingCapability;
+ H225CallCapacity capacity;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225RegistrationRequest;
+
+EXTERN int asn1PE_H225RegistrationRequest (OOCTXT* pctxt, H225RegistrationRequest* pvalue);
+
+EXTERN int asn1PD_H225RegistrationRequest (OOCTXT* pctxt, H225RegistrationRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationConfirm_preGrantedARQ */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RegistrationConfirm_preGrantedARQ {
+ struct {
+ unsigned irrFrequencyInCallPresent : 1;
+ unsigned totalBandwidthRestrictionPresent : 1;
+ unsigned alternateTransportAddressesPresent : 1;
+ unsigned useSpecifiedTransportPresent : 1;
+ } m;
+ ASN1BOOL makeCall;
+ ASN1BOOL useGKCallSignalAddressToMakeCall;
+ ASN1BOOL answerCall;
+ ASN1BOOL useGKCallSignalAddressToAnswer;
+ ASN1USINT irrFrequencyInCall;
+ H225BandWidth totalBandwidthRestriction;
+ H225AlternateTransportAddresses alternateTransportAddresses;
+ H225UseSpecifiedTransport useSpecifiedTransport;
+} H225RegistrationConfirm_preGrantedARQ;
+
+EXTERN int asn1PE_H225RegistrationConfirm_preGrantedARQ (OOCTXT* pctxt, H225RegistrationConfirm_preGrantedARQ* pvalue);
+
+EXTERN int asn1PD_H225RegistrationConfirm_preGrantedARQ (OOCTXT* pctxt, H225RegistrationConfirm_preGrantedARQ* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225RasUsageSpecification */
+/* */
+/**************************************************************/
+
+/* List of H225RasUsageSpecification */
+typedef DList H225_SeqOfH225RasUsageSpecification;
+
+EXTERN int asn1PE_H225_SeqOfH225RasUsageSpecification (OOCTXT* pctxt, H225_SeqOfH225RasUsageSpecification* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225RasUsageSpecification (OOCTXT* pctxt, H225_SeqOfH225RasUsageSpecification* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RegistrationConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned terminalAliasPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned alternateGatekeeperPresent : 1;
+ unsigned timeToLivePresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned willRespondToIRRPresent : 1;
+ unsigned preGrantedARQPresent : 1;
+ unsigned maintainConnectionPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned supportsAdditiveRegistrationPresent : 1;
+ unsigned terminalAliasPatternPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ unsigned usageSpecPresent : 1;
+ unsigned featureServerAliasPresent : 1;
+ unsigned capacityReportingSpecPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225_SeqOfH225AliasAddress terminalAlias;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225EndpointIdentifier endpointIdentifier;
+ H225_SeqOfH225AlternateGK alternateGatekeeper;
+ H225TimeToLive timeToLive;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1BOOL willRespondToIRR;
+ H225RegistrationConfirm_preGrantedARQ preGrantedARQ;
+ ASN1BOOL maintainConnection;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225_SeqOfH225AddressPattern terminalAliasPattern;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+ H225_SeqOfH225RasUsageSpecification usageSpec;
+ H225AliasAddress featureServerAlias;
+ H225CapacityReportingSpecification capacityReportingSpec;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225RegistrationConfirm;
+
+EXTERN int asn1PE_H225RegistrationConfirm (OOCTXT* pctxt, H225RegistrationConfirm* pvalue);
+
+EXTERN int asn1PD_H225RegistrationConfirm (OOCTXT* pctxt, H225RegistrationConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationRejectReason_invalidTerminalAliases */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RegistrationRejectReason_invalidTerminalAliases {
+ struct {
+ unsigned terminalAliasPresent : 1;
+ unsigned terminalAliasPatternPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ } m;
+ H225_SeqOfH225AliasAddress terminalAlias;
+ H225_SeqOfH225AddressPattern terminalAliasPattern;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+} H225RegistrationRejectReason_invalidTerminalAliases;
+
+EXTERN int asn1PE_H225RegistrationRejectReason_invalidTerminalAliases (OOCTXT* pctxt, H225RegistrationRejectReason_invalidTerminalAliases* pvalue);
+
+EXTERN int asn1PD_H225RegistrationRejectReason_invalidTerminalAliases (OOCTXT* pctxt, H225RegistrationRejectReason_invalidTerminalAliases* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225RegistrationRejectReason_discoveryRequired 1
+#define T_H225RegistrationRejectReason_invalidRevision 2
+#define T_H225RegistrationRejectReason_invalidCallSignalAddress 3
+#define T_H225RegistrationRejectReason_invalidRASAddress 4
+#define T_H225RegistrationRejectReason_duplicateAlias 5
+#define T_H225RegistrationRejectReason_invalidTerminalType 6
+#define T_H225RegistrationRejectReason_undefinedReason 7
+#define T_H225RegistrationRejectReason_transportNotSupported 8
+#define T_H225RegistrationRejectReason_transportQOSNotSupported 9
+#define T_H225RegistrationRejectReason_resourceUnavailable 10
+#define T_H225RegistrationRejectReason_invalidAlias 11
+#define T_H225RegistrationRejectReason_securityDenial 12
+#define T_H225RegistrationRejectReason_fullRegistrationRequired 13
+#define T_H225RegistrationRejectReason_additiveRegistrationNotSupported 14
+#define T_H225RegistrationRejectReason_invalidTerminalAliases 15
+#define T_H225RegistrationRejectReason_genericDataReason 16
+#define T_H225RegistrationRejectReason_neededFeatureNotSupported 17
+#define T_H225RegistrationRejectReason_securityError 18
+#define T_H225RegistrationRejectReason_extElem1 19
+
+typedef struct EXTERN H225RegistrationRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ H225_SeqOfH225AliasAddress *duplicateAlias;
+ /* t = 6 */
+ /* t = 7 */
+ /* t = 8 */
+ /* t = 9 */
+ /* t = 10 */
+ /* t = 11 */
+ /* t = 12 */
+ /* t = 13 */
+ /* t = 14 */
+ /* t = 15 */
+ H225RegistrationRejectReason_invalidTerminalAliases *invalidTerminalAliases;
+ /* t = 16 */
+ /* t = 17 */
+ /* t = 18 */
+ H225SecurityErrors *securityError;
+ /* t = 19 */
+ } u;
+} H225RegistrationRejectReason;
+
+EXTERN int asn1PE_H225RegistrationRejectReason (OOCTXT* pctxt, H225RegistrationRejectReason* pvalue);
+
+EXTERN int asn1PD_H225RegistrationRejectReason (OOCTXT* pctxt, H225RegistrationRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* RegistrationReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RegistrationReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225RegistrationRejectReason rejectReason;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225RegistrationReject;
+
+EXTERN int asn1PE_H225RegistrationReject (OOCTXT* pctxt, H225RegistrationReject* pvalue);
+
+EXTERN int asn1PD_H225RegistrationReject (OOCTXT* pctxt, H225RegistrationReject* pvalue);
+
+/**************************************************************/
+/* */
+/* UnregRequestReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225UnregRequestReason_reregistrationRequired 1
+#define T_H225UnregRequestReason_ttlExpired 2
+#define T_H225UnregRequestReason_securityDenial 3
+#define T_H225UnregRequestReason_undefinedReason 4
+#define T_H225UnregRequestReason_maintenance 5
+#define T_H225UnregRequestReason_securityError 6
+#define T_H225UnregRequestReason_extElem1 7
+
+typedef struct EXTERN H225UnregRequestReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ H225SecurityErrors2 *securityError;
+ /* t = 7 */
+ } u;
+} H225UnregRequestReason;
+
+EXTERN int asn1PE_H225UnregRequestReason (OOCTXT* pctxt, H225UnregRequestReason* pvalue);
+
+EXTERN int asn1PD_H225UnregRequestReason (OOCTXT* pctxt, H225UnregRequestReason* pvalue);
+
+/**************************************************************/
+/* */
+/* UnregistrationRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225UnregistrationRequest {
+ struct {
+ unsigned endpointAliasPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned endpointIdentifierPresent : 1;
+ unsigned alternateEndpointsPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned reasonPresent : 1;
+ unsigned endpointAliasPatternPresent : 1;
+ unsigned supportedPrefixesPresent : 1;
+ unsigned alternateGatekeeperPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225_SeqOfH225AliasAddress endpointAlias;
+ H225NonStandardParameter nonStandardData;
+ H225EndpointIdentifier endpointIdentifier;
+ H225_SeqOfH225Endpoint alternateEndpoints;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225UnregRequestReason reason;
+ H225_SeqOfH225AddressPattern endpointAliasPattern;
+ H225_SeqOfH225SupportedPrefix supportedPrefixes;
+ H225_SeqOfH225AlternateGK alternateGatekeeper;
+ H225_SeqOfH225GenericData genericData;
+} H225UnregistrationRequest;
+
+EXTERN int asn1PE_H225UnregistrationRequest (OOCTXT* pctxt, H225UnregistrationRequest* pvalue);
+
+EXTERN int asn1PD_H225UnregistrationRequest (OOCTXT* pctxt, H225UnregistrationRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* UnregistrationConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225UnregistrationConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225GenericData genericData;
+} H225UnregistrationConfirm;
+
+EXTERN int asn1PE_H225UnregistrationConfirm (OOCTXT* pctxt, H225UnregistrationConfirm* pvalue);
+
+EXTERN int asn1PD_H225UnregistrationConfirm (OOCTXT* pctxt, H225UnregistrationConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* UnregRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225UnregRejectReason_notCurrentlyRegistered 1
+#define T_H225UnregRejectReason_callInProgress 2
+#define T_H225UnregRejectReason_undefinedReason 3
+#define T_H225UnregRejectReason_permissionDenied 4
+#define T_H225UnregRejectReason_securityDenial 5
+#define T_H225UnregRejectReason_securityError 6
+#define T_H225UnregRejectReason_extElem1 7
+
+typedef struct EXTERN H225UnregRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ H225SecurityErrors2 *securityError;
+ /* t = 7 */
+ } u;
+} H225UnregRejectReason;
+
+EXTERN int asn1PE_H225UnregRejectReason (OOCTXT* pctxt, H225UnregRejectReason* pvalue);
+
+EXTERN int asn1PD_H225UnregRejectReason (OOCTXT* pctxt, H225UnregRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* UnregistrationReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225UnregistrationReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225UnregRejectReason rejectReason;
+ H225NonStandardParameter nonStandardData;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225GenericData genericData;
+} H225UnregistrationReject;
+
+EXTERN int asn1PE_H225UnregistrationReject (OOCTXT* pctxt, H225UnregistrationReject* pvalue);
+
+EXTERN int asn1PD_H225UnregistrationReject (OOCTXT* pctxt, H225UnregistrationReject* pvalue);
+
+/**************************************************************/
+/* */
+/* CallModel */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225CallModel_direct 1
+#define T_H225CallModel_gatekeeperRouted 2
+#define T_H225CallModel_extElem1 3
+
+typedef struct EXTERN H225CallModel {
+ int t;
+} H225CallModel;
+
+EXTERN int asn1PE_H225CallModel (OOCTXT* pctxt, H225CallModel* pvalue);
+
+EXTERN int asn1PD_H225CallModel (OOCTXT* pctxt, H225CallModel* pvalue);
+
+/**************************************************************/
+/* */
+/* TransportQOS */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225TransportQOS_endpointControlled 1
+#define T_H225TransportQOS_gatekeeperControlled 2
+#define T_H225TransportQOS_noControl 3
+#define T_H225TransportQOS_extElem1 4
+
+typedef struct EXTERN H225TransportQOS {
+ int t;
+} H225TransportQOS;
+
+EXTERN int asn1PE_H225TransportQOS (OOCTXT* pctxt, H225TransportQOS* pvalue);
+
+EXTERN int asn1PD_H225TransportQOS (OOCTXT* pctxt, H225TransportQOS* pvalue);
+
+/**************************************************************/
+/* */
+/* AdmissionRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AdmissionRequest {
+ struct {
+ unsigned callModelPresent : 1;
+ unsigned destinationInfoPresent : 1;
+ unsigned destCallSignalAddressPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned srcCallSignalAddressPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned callServicesPresent : 1;
+ unsigned canMapAliasPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned srcAlternativesPresent : 1;
+ unsigned destAlternativesPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned transportQOSPresent : 1;
+ unsigned willSupplyUUIEsPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned gatewayDataRatePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned desiredProtocolsPresent : 1;
+ unsigned desiredTunnelledProtocolPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned canMapSrcAliasPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225CallType callType;
+ H225CallModel callModel;
+ H225EndpointIdentifier endpointIdentifier;
+ H225_SeqOfH225AliasAddress destinationInfo;
+ H225TransportAddress destCallSignalAddress;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225_SeqOfH225AliasAddress srcInfo;
+ H225TransportAddress srcCallSignalAddress;
+ H225BandWidth bandWidth;
+ H225CallReferenceValue callReferenceValue;
+ H225NonStandardParameter nonStandardData;
+ H225QseriesOptions callServices;
+ H225ConferenceIdentifier conferenceID;
+ ASN1BOOL activeMC;
+ ASN1BOOL answerCall;
+ ASN1BOOL canMapAlias;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225Endpoint srcAlternatives;
+ H225_SeqOfH225Endpoint destAlternatives;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225TransportQOS transportQOS;
+ ASN1BOOL willSupplyUUIEs;
+ H225CallLinkage callLinkage;
+ H225DataRate gatewayDataRate;
+ H225CallCapacity capacity;
+ H225CircuitInfo circuitInfo;
+ H225_SeqOfH225SupportedProtocols desiredProtocols;
+ H225TunnelledProtocol desiredTunnelledProtocol;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+ ASN1BOOL canMapSrcAlias;
+} H225AdmissionRequest;
+
+EXTERN int asn1PE_H225AdmissionRequest (OOCTXT* pctxt, H225AdmissionRequest* pvalue);
+
+EXTERN int asn1PD_H225AdmissionRequest (OOCTXT* pctxt, H225AdmissionRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* UUIEsRequested */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225UUIEsRequested {
+ struct {
+ unsigned statusPresent : 1;
+ unsigned statusInquiryPresent : 1;
+ unsigned setupAcknowledgePresent : 1;
+ unsigned notifyPresent : 1;
+ } m;
+ ASN1BOOL setup;
+ ASN1BOOL callProceeding;
+ ASN1BOOL connect;
+ ASN1BOOL alerting;
+ ASN1BOOL information;
+ ASN1BOOL releaseComplete;
+ ASN1BOOL facility;
+ ASN1BOOL progress;
+ ASN1BOOL empty;
+ ASN1BOOL status;
+ ASN1BOOL statusInquiry;
+ ASN1BOOL setupAcknowledge;
+ ASN1BOOL notify;
+} H225UUIEsRequested;
+
+EXTERN int asn1PE_H225UUIEsRequested (OOCTXT* pctxt, H225UUIEsRequested* pvalue);
+
+EXTERN int asn1PD_H225UUIEsRequested (OOCTXT* pctxt, H225UUIEsRequested* pvalue);
+
+/**************************************************************/
+/* */
+/* AdmissionConfirm_language */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AdmissionConfirm_language {
+ ASN1UINT n;
+ ASN1IA5String *elem;
+} H225AdmissionConfirm_language;
+
+EXTERN int asn1PE_H225AdmissionConfirm_language (OOCTXT* pctxt, H225AdmissionConfirm_language* pvalue);
+
+EXTERN int asn1PD_H225AdmissionConfirm_language (OOCTXT* pctxt, H225AdmissionConfirm_language* pvalue);
+
+/**************************************************************/
+/* */
+/* AdmissionConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AdmissionConfirm {
+ struct {
+ unsigned irrFrequencyPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned destinationInfoPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned destinationTypePresent : 1;
+ unsigned remoteExtensionAddressPresent : 1;
+ unsigned alternateEndpointsPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned transportQOSPresent : 1;
+ unsigned willRespondToIRRPresent : 1;
+ unsigned uuiesRequestedPresent : 1;
+ unsigned languagePresent : 1;
+ unsigned alternateTransportAddressesPresent : 1;
+ unsigned useSpecifiedTransportPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned usageSpecPresent : 1;
+ unsigned supportedProtocolsPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned modifiedSrcInfoPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225BandWidth bandWidth;
+ H225CallModel callModel;
+ H225TransportAddress destCallSignalAddress;
+ ASN1USINT irrFrequency;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225AliasAddress destinationInfo;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225EndpointType destinationType;
+ H225_SeqOfH225AliasAddress remoteExtensionAddress;
+ H225_SeqOfH225Endpoint alternateEndpoints;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225TransportQOS transportQOS;
+ ASN1BOOL willRespondToIRR;
+ H225UUIEsRequested uuiesRequested;
+ H225AdmissionConfirm_language language;
+ H225AlternateTransportAddresses alternateTransportAddresses;
+ H225UseSpecifiedTransport useSpecifiedTransport;
+ H225CircuitInfo circuitInfo;
+ H225_SeqOfH225RasUsageSpecification usageSpec;
+ H225_SeqOfH225SupportedProtocols supportedProtocols;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ ASN1BOOL multipleCalls;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+ H225_SeqOfH225AliasAddress modifiedSrcInfo;
+} H225AdmissionConfirm;
+
+EXTERN int asn1PE_H225AdmissionConfirm (OOCTXT* pctxt, H225AdmissionConfirm* pvalue);
+
+EXTERN int asn1PD_H225AdmissionConfirm (OOCTXT* pctxt, H225AdmissionConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225PartyNumber */
+/* */
+/**************************************************************/
+
+/* List of H225PartyNumber */
+typedef DList H225_SeqOfH225PartyNumber;
+
+EXTERN int asn1PE_H225_SeqOfH225PartyNumber (OOCTXT* pctxt, H225_SeqOfH225PartyNumber* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225PartyNumber (OOCTXT* pctxt, H225_SeqOfH225PartyNumber* pvalue);
+
+/**************************************************************/
+/* */
+/* AdmissionRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225AdmissionRejectReason_calledPartyNotRegistered 1
+#define T_H225AdmissionRejectReason_invalidPermission 2
+#define T_H225AdmissionRejectReason_requestDenied 3
+#define T_H225AdmissionRejectReason_undefinedReason 4
+#define T_H225AdmissionRejectReason_callerNotRegistered 5
+#define T_H225AdmissionRejectReason_routeCallToGatekeeper 6
+#define T_H225AdmissionRejectReason_invalidEndpointIdentifier 7
+#define T_H225AdmissionRejectReason_resourceUnavailable 8
+#define T_H225AdmissionRejectReason_securityDenial 9
+#define T_H225AdmissionRejectReason_qosControlNotSupported 10
+#define T_H225AdmissionRejectReason_incompleteAddress 11
+#define T_H225AdmissionRejectReason_aliasesInconsistent 12
+#define T_H225AdmissionRejectReason_routeCallToSCN 13
+#define T_H225AdmissionRejectReason_exceedsCallCapacity 14
+#define T_H225AdmissionRejectReason_collectDestination 15
+#define T_H225AdmissionRejectReason_collectPIN 16
+#define T_H225AdmissionRejectReason_genericDataReason 17
+#define T_H225AdmissionRejectReason_neededFeatureNotSupported 18
+#define T_H225AdmissionRejectReason_securityErrors 19
+#define T_H225AdmissionRejectReason_securityDHmismatch 20
+#define T_H225AdmissionRejectReason_noRouteToDestination 21
+#define T_H225AdmissionRejectReason_unallocatedNumber 22
+#define T_H225AdmissionRejectReason_extElem1 23
+
+typedef struct EXTERN H225AdmissionRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ /* t = 8 */
+ /* t = 9 */
+ /* t = 10 */
+ /* t = 11 */
+ /* t = 12 */
+ /* t = 13 */
+ H225_SeqOfH225PartyNumber *routeCallToSCN;
+ /* t = 14 */
+ /* t = 15 */
+ /* t = 16 */
+ /* t = 17 */
+ /* t = 18 */
+ /* t = 19 */
+ H225SecurityErrors2 *securityErrors;
+ /* t = 20 */
+ /* t = 21 */
+ /* t = 22 */
+ /* t = 23 */
+ } u;
+} H225AdmissionRejectReason;
+
+EXTERN int asn1PE_H225AdmissionRejectReason (OOCTXT* pctxt, H225AdmissionRejectReason* pvalue);
+
+EXTERN int asn1PD_H225AdmissionRejectReason (OOCTXT* pctxt, H225AdmissionRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* AdmissionReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225AdmissionReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned callSignalAddressPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225AdmissionRejectReason rejectReason;
+ H225NonStandardParameter nonStandardData;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225AdmissionReject;
+
+EXTERN int asn1PE_H225AdmissionReject (OOCTXT* pctxt, H225AdmissionReject* pvalue);
+
+EXTERN int asn1PD_H225AdmissionReject (OOCTXT* pctxt, H225AdmissionReject* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225BandwidthDetails */
+/* */
+/**************************************************************/
+
+/* List of H225BandwidthDetails */
+typedef DList H225_SeqOfH225BandwidthDetails;
+
+EXTERN int asn1PE_H225_SeqOfH225BandwidthDetails (OOCTXT* pctxt, H225_SeqOfH225BandwidthDetails* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225BandwidthDetails (OOCTXT* pctxt, H225_SeqOfH225BandwidthDetails* pvalue);
+
+/**************************************************************/
+/* */
+/* BandwidthRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225BandwidthRequest {
+ struct {
+ unsigned callTypePresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned answeredCallPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned usageInformationPresent : 1;
+ unsigned bandwidthDetailsPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225EndpointIdentifier endpointIdentifier;
+ H225ConferenceIdentifier conferenceID;
+ H225CallReferenceValue callReferenceValue;
+ H225CallType callType;
+ H225BandWidth bandWidth;
+ H225NonStandardParameter nonStandardData;
+ H225CallIdentifier callIdentifier;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1BOOL answeredCall;
+ H225CallLinkage callLinkage;
+ H225CallCapacity capacity;
+ H225RasUsageInformation usageInformation;
+ H225_SeqOfH225BandwidthDetails bandwidthDetails;
+ H225_SeqOfH225GenericData genericData;
+} H225BandwidthRequest;
+
+EXTERN int asn1PE_H225BandwidthRequest (OOCTXT* pctxt, H225BandwidthRequest* pvalue);
+
+EXTERN int asn1PD_H225BandwidthRequest (OOCTXT* pctxt, H225BandwidthRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* BandwidthConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225BandwidthConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225BandWidth bandWidth;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225CallCapacity capacity;
+ H225_SeqOfH225GenericData genericData;
+} H225BandwidthConfirm;
+
+EXTERN int asn1PE_H225BandwidthConfirm (OOCTXT* pctxt, H225BandwidthConfirm* pvalue);
+
+EXTERN int asn1PD_H225BandwidthConfirm (OOCTXT* pctxt, H225BandwidthConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* BandRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225BandRejectReason_notBound 1
+#define T_H225BandRejectReason_invalidConferenceID 2
+#define T_H225BandRejectReason_invalidPermission 3
+#define T_H225BandRejectReason_insufficientResources 4
+#define T_H225BandRejectReason_invalidRevision 5
+#define T_H225BandRejectReason_undefinedReason 6
+#define T_H225BandRejectReason_securityDenial 7
+#define T_H225BandRejectReason_securityError 8
+#define T_H225BandRejectReason_extElem1 9
+
+typedef struct EXTERN H225BandRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ /* t = 8 */
+ H225SecurityErrors2 *securityError;
+ /* t = 9 */
+ } u;
+} H225BandRejectReason;
+
+EXTERN int asn1PE_H225BandRejectReason (OOCTXT* pctxt, H225BandRejectReason* pvalue);
+
+EXTERN int asn1PD_H225BandRejectReason (OOCTXT* pctxt, H225BandRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* BandwidthReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225BandwidthReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225BandRejectReason rejectReason;
+ H225BandWidth allowedBandWidth;
+ H225NonStandardParameter nonStandardData;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225GenericData genericData;
+} H225BandwidthReject;
+
+EXTERN int asn1PE_H225BandwidthReject (OOCTXT* pctxt, H225BandwidthReject* pvalue);
+
+EXTERN int asn1PD_H225BandwidthReject (OOCTXT* pctxt, H225BandwidthReject* pvalue);
+
+/**************************************************************/
+/* */
+/* DisengageReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225DisengageReason_forcedDrop 1
+#define T_H225DisengageReason_normalDrop 2
+#define T_H225DisengageReason_undefinedReason 3
+#define T_H225DisengageReason_extElem1 4
+
+typedef struct EXTERN H225DisengageReason {
+ int t;
+} H225DisengageReason;
+
+EXTERN int asn1PE_H225DisengageReason (OOCTXT* pctxt, H225DisengageReason* pvalue);
+
+EXTERN int asn1PD_H225DisengageReason (OOCTXT* pctxt, H225DisengageReason* pvalue);
+
+/**************************************************************/
+/* */
+/* DisengageRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225DisengageRequest {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned answeredCallPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned usageInformationPresent : 1;
+ unsigned terminationCausePresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225EndpointIdentifier endpointIdentifier;
+ H225ConferenceIdentifier conferenceID;
+ H225CallReferenceValue callReferenceValue;
+ H225DisengageReason disengageReason;
+ H225NonStandardParameter nonStandardData;
+ H225CallIdentifier callIdentifier;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1BOOL answeredCall;
+ H225CallLinkage callLinkage;
+ H225CallCapacity capacity;
+ H225CircuitInfo circuitInfo;
+ H225RasUsageInformation usageInformation;
+ H225CallTerminationCause terminationCause;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225_SeqOfH225GenericData genericData;
+} H225DisengageRequest;
+
+EXTERN int asn1PE_H225DisengageRequest (OOCTXT* pctxt, H225DisengageRequest* pvalue);
+
+EXTERN int asn1PD_H225DisengageRequest (OOCTXT* pctxt, H225DisengageRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* DisengageConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225DisengageConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned usageInformationPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225CallCapacity capacity;
+ H225CircuitInfo circuitInfo;
+ H225RasUsageInformation usageInformation;
+ H225_SeqOfH225GenericData genericData;
+} H225DisengageConfirm;
+
+EXTERN int asn1PE_H225DisengageConfirm (OOCTXT* pctxt, H225DisengageConfirm* pvalue);
+
+EXTERN int asn1PD_H225DisengageConfirm (OOCTXT* pctxt, H225DisengageConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* DisengageRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225DisengageRejectReason_notRegistered 1
+#define T_H225DisengageRejectReason_requestToDropOther 2
+#define T_H225DisengageRejectReason_securityDenial 3
+#define T_H225DisengageRejectReason_securityError 4
+#define T_H225DisengageRejectReason_extElem1 5
+
+typedef struct EXTERN H225DisengageRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ H225SecurityErrors2 *securityError;
+ /* t = 5 */
+ } u;
+} H225DisengageRejectReason;
+
+EXTERN int asn1PE_H225DisengageRejectReason (OOCTXT* pctxt, H225DisengageRejectReason* pvalue);
+
+EXTERN int asn1PD_H225DisengageRejectReason (OOCTXT* pctxt, H225DisengageRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* DisengageReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225DisengageReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225DisengageRejectReason rejectReason;
+ H225NonStandardParameter nonStandardData;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225GenericData genericData;
+} H225DisengageReject;
+
+EXTERN int asn1PE_H225DisengageReject (OOCTXT* pctxt, H225DisengageReject* pvalue);
+
+EXTERN int asn1PD_H225DisengageReject (OOCTXT* pctxt, H225DisengageReject* pvalue);
+
+/**************************************************************/
+/* */
+/* LocationRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225LocationRequest {
+ struct {
+ unsigned endpointIdentifierPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned sourceInfoPresent : 1;
+ unsigned canMapAliasPresent : 1;
+ unsigned gatekeeperIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned desiredProtocolsPresent : 1;
+ unsigned desiredTunnelledProtocolPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned hopCountPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned bandWidthPresent : 1;
+ unsigned sourceEndpointInfoPresent : 1;
+ unsigned canMapSrcAliasPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225EndpointIdentifier endpointIdentifier;
+ H225_SeqOfH225AliasAddress destinationInfo;
+ H225NonStandardParameter nonStandardData;
+ H225TransportAddress replyAddress;
+ H225_SeqOfH225AliasAddress sourceInfo;
+ ASN1BOOL canMapAlias;
+ H225GatekeeperIdentifier gatekeeperIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225SupportedProtocols desiredProtocols;
+ H225TunnelledProtocol desiredTunnelledProtocol;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+ ASN1UINT8 hopCount;
+ H225CircuitInfo circuitInfo;
+ H225CallIdentifier callIdentifier;
+ H225BandWidth bandWidth;
+ H225_SeqOfH225AliasAddress sourceEndpointInfo;
+ ASN1BOOL canMapSrcAlias;
+} H225LocationRequest;
+
+EXTERN int asn1PE_H225LocationRequest (OOCTXT* pctxt, H225LocationRequest* pvalue);
+
+EXTERN int asn1PD_H225LocationRequest (OOCTXT* pctxt, H225LocationRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* LocationConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225LocationConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned destinationInfoPresent : 1;
+ unsigned destExtraCallInfoPresent : 1;
+ unsigned destinationTypePresent : 1;
+ unsigned remoteExtensionAddressPresent : 1;
+ unsigned alternateEndpointsPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned alternateTransportAddressesPresent : 1;
+ unsigned supportedProtocolsPresent : 1;
+ unsigned multipleCallsPresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ unsigned serviceControlPresent : 1;
+ unsigned modifiedSrcInfoPresent : 1;
+ unsigned bandWidthPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225TransportAddress callSignalAddress;
+ H225TransportAddress rasAddress;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225AliasAddress destinationInfo;
+ H225_SeqOfH225AliasAddress destExtraCallInfo;
+ H225EndpointType destinationType;
+ H225_SeqOfH225AliasAddress remoteExtensionAddress;
+ H225_SeqOfH225Endpoint alternateEndpoints;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225AlternateTransportAddresses alternateTransportAddresses;
+ H225_SeqOfH225SupportedProtocols supportedProtocols;
+ ASN1BOOL multipleCalls;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+ H225CircuitInfo circuitInfo;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225_SeqOfH225AliasAddress modifiedSrcInfo;
+ H225BandWidth bandWidth;
+} H225LocationConfirm;
+
+EXTERN int asn1PE_H225LocationConfirm (OOCTXT* pctxt, H225LocationConfirm* pvalue);
+
+EXTERN int asn1PD_H225LocationConfirm (OOCTXT* pctxt, H225LocationConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* LocationRejectReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225LocationRejectReason_notRegistered 1
+#define T_H225LocationRejectReason_invalidPermission 2
+#define T_H225LocationRejectReason_requestDenied 3
+#define T_H225LocationRejectReason_undefinedReason 4
+#define T_H225LocationRejectReason_securityDenial 5
+#define T_H225LocationRejectReason_aliasesInconsistent 6
+#define T_H225LocationRejectReason_routeCalltoSCN 7
+#define T_H225LocationRejectReason_resourceUnavailable 8
+#define T_H225LocationRejectReason_genericDataReason 9
+#define T_H225LocationRejectReason_neededFeatureNotSupported 10
+#define T_H225LocationRejectReason_hopCountExceeded 11
+#define T_H225LocationRejectReason_incompleteAddress 12
+#define T_H225LocationRejectReason_securityError 13
+#define T_H225LocationRejectReason_securityDHmismatch 14
+#define T_H225LocationRejectReason_noRouteToDestination 15
+#define T_H225LocationRejectReason_unallocatedNumber 16
+#define T_H225LocationRejectReason_extElem1 17
+
+typedef struct EXTERN H225LocationRejectReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ /* t = 5 */
+ /* t = 6 */
+ /* t = 7 */
+ H225_SeqOfH225PartyNumber *routeCalltoSCN;
+ /* t = 8 */
+ /* t = 9 */
+ /* t = 10 */
+ /* t = 11 */
+ /* t = 12 */
+ /* t = 13 */
+ H225SecurityErrors2 *securityError;
+ /* t = 14 */
+ /* t = 15 */
+ /* t = 16 */
+ /* t = 17 */
+ } u;
+} H225LocationRejectReason;
+
+EXTERN int asn1PE_H225LocationRejectReason (OOCTXT* pctxt, H225LocationRejectReason* pvalue);
+
+EXTERN int asn1PD_H225LocationRejectReason (OOCTXT* pctxt, H225LocationRejectReason* pvalue);
+
+/**************************************************************/
+/* */
+/* LocationReject */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225LocationReject {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ unsigned serviceControlPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225LocationRejectReason rejectReason;
+ H225NonStandardParameter nonStandardData;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+} H225LocationReject;
+
+EXTERN int asn1PE_H225LocationReject (OOCTXT* pctxt, H225LocationReject* pvalue);
+
+EXTERN int asn1PD_H225LocationReject (OOCTXT* pctxt, H225LocationReject* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequest */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequest {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned replyAddressPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned uuiesRequestedPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned usageInfoRequestedPresent : 1;
+ unsigned segmentedResponseSupportedPresent : 1;
+ unsigned nextSegmentRequestedPresent : 1;
+ unsigned capacityInfoRequestedPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225CallReferenceValue callReferenceValue;
+ H225NonStandardParameter nonStandardData;
+ H225TransportAddress replyAddress;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225UUIEsRequested uuiesRequested;
+ H225CallLinkage callLinkage;
+ H225RasUsageInfoTypes usageInfoRequested;
+ ASN1USINT nextSegmentRequested;
+ H225_SeqOfH225GenericData genericData;
+} H225InfoRequest;
+
+EXTERN int asn1PE_H225InfoRequest (OOCTXT* pctxt, H225InfoRequest* pvalue);
+
+EXTERN int asn1PD_H225InfoRequest (OOCTXT* pctxt, H225InfoRequest* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225RTPSession */
+/* */
+/**************************************************************/
+
+/* List of H225RTPSession */
+typedef DList H225_SeqOfH225RTPSession;
+
+EXTERN int asn1PE_H225_SeqOfH225RTPSession (OOCTXT* pctxt, H225_SeqOfH225RTPSession* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225RTPSession (OOCTXT* pctxt, H225_SeqOfH225RTPSession* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TransportChannelInfo */
+/* */
+/**************************************************************/
+
+/* List of H225TransportChannelInfo */
+typedef DList H225_SeqOfH225TransportChannelInfo;
+
+EXTERN int asn1PE_H225_SeqOfH225TransportChannelInfo (OOCTXT* pctxt, H225_SeqOfH225TransportChannelInfo* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225TransportChannelInfo (OOCTXT* pctxt, H225_SeqOfH225TransportChannelInfo* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ConferenceIdentifier */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225_SeqOfH225ConferenceIdentifier {
+ ASN1UINT n;
+ H225ConferenceIdentifier *elem;
+} H225_SeqOfH225ConferenceIdentifier;
+
+EXTERN int asn1PE_H225_SeqOfH225ConferenceIdentifier (OOCTXT* pctxt, H225_SeqOfH225ConferenceIdentifier* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225ConferenceIdentifier (OOCTXT* pctxt, H225_SeqOfH225ConferenceIdentifier* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestResponse_perCallInfo_element_pdu_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequestResponse_perCallInfo_element_pdu_element {
+ H225H323_UU_PDU h323pdu;
+ ASN1BOOL sent;
+} H225InfoRequestResponse_perCallInfo_element_pdu_element;
+
+EXTERN int asn1PE_H225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_el */
+/* */
+/**************************************************************/
+
+/* List of H225InfoRequestResponse_perCallInfo_element_pdu_element */
+typedef DList H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element;
+
+EXTERN int asn1PE_H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestResponse_perCallInfo_element */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequestResponse_perCallInfo_element {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned originatorPresent : 1;
+ unsigned audioPresent : 1;
+ unsigned videoPresent : 1;
+ unsigned dataPresent : 1;
+ unsigned callIdentifierPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned substituteConfIDsPresent : 1;
+ unsigned pduPresent : 1;
+ unsigned callLinkagePresent : 1;
+ unsigned usageInformationPresent : 1;
+ unsigned circuitInfoPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225CallReferenceValue callReferenceValue;
+ H225ConferenceIdentifier conferenceID;
+ ASN1BOOL originator;
+ H225_SeqOfH225RTPSession audio;
+ H225_SeqOfH225RTPSession video;
+ H225_SeqOfH225TransportChannelInfo data;
+ H225TransportChannelInfo h245;
+ H225TransportChannelInfo callSignaling;
+ H225CallType callType;
+ H225BandWidth bandWidth;
+ H225CallModel callModel;
+ H225CallIdentifier callIdentifier;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225_SeqOfH225ConferenceIdentifier substituteConfIDs;
+ H225_SeqOfH225InfoRequestResponse_perCallInfo_element_pdu_element pdu;
+ H225CallLinkage callLinkage;
+ H225RasUsageInformation usageInformation;
+ H225CircuitInfo circuitInfo;
+} H225InfoRequestResponse_perCallInfo_element;
+
+EXTERN int asn1PE_H225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225InfoRequestResponse_perCallInfo_element* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225InfoRequestResponse_perCallInfo_element */
+/* */
+/**************************************************************/
+
+/* List of H225InfoRequestResponse_perCallInfo_element */
+typedef DList H225_SeqOfH225InfoRequestResponse_perCallInfo_element;
+
+EXTERN int asn1PE_H225_SeqOfH225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225InfoRequestResponse_perCallInfo_element (OOCTXT* pctxt, H225_SeqOfH225InfoRequestResponse_perCallInfo_element* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestResponseStatus */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225InfoRequestResponseStatus_complete 1
+#define T_H225InfoRequestResponseStatus_incomplete 2
+#define T_H225InfoRequestResponseStatus_segment 3
+#define T_H225InfoRequestResponseStatus_invalidCall 4
+#define T_H225InfoRequestResponseStatus_extElem1 5
+
+typedef struct EXTERN H225InfoRequestResponseStatus {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ ASN1USINT segment;
+ /* t = 4 */
+ /* t = 5 */
+ } u;
+} H225InfoRequestResponseStatus;
+
+EXTERN int asn1PE_H225InfoRequestResponseStatus (OOCTXT* pctxt, H225InfoRequestResponseStatus* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestResponseStatus (OOCTXT* pctxt, H225InfoRequestResponseStatus* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestResponse */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequestResponse {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned endpointAliasPresent : 1;
+ unsigned perCallInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned needResponsePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned irrStatusPresent : 1;
+ unsigned unsolicitedPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225NonStandardParameter nonStandardData;
+ H225RequestSeqNum requestSeqNum;
+ H225EndpointType endpointType;
+ H225EndpointIdentifier endpointIdentifier;
+ H225TransportAddress rasAddress;
+ H225_SeqOfH225TransportAddress callSignalAddress;
+ H225_SeqOfH225AliasAddress endpointAlias;
+ H225_SeqOfH225InfoRequestResponse_perCallInfo_element perCallInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1BOOL needResponse;
+ H225CallCapacity capacity;
+ H225InfoRequestResponseStatus irrStatus;
+ ASN1BOOL unsolicited;
+ H225_SeqOfH225GenericData genericData;
+} H225InfoRequestResponse;
+
+EXTERN int asn1PE_H225InfoRequestResponse (OOCTXT* pctxt, H225InfoRequestResponse* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestResponse (OOCTXT* pctxt, H225InfoRequestResponse* pvalue);
+
+/**************************************************************/
+/* */
+/* NonStandardMessage */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225NonStandardMessage {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225NonStandardMessage;
+
+EXTERN int asn1PE_H225NonStandardMessage (OOCTXT* pctxt, H225NonStandardMessage* pvalue);
+
+EXTERN int asn1PD_H225NonStandardMessage (OOCTXT* pctxt, H225NonStandardMessage* pvalue);
+
+/**************************************************************/
+/* */
+/* UnknownMessageResponse */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225UnknownMessageResponse {
+ struct {
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned messageNotUnderstoodPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1DynOctStr messageNotUnderstood;
+} H225UnknownMessageResponse;
+
+EXTERN int asn1PE_H225UnknownMessageResponse (OOCTXT* pctxt, H225UnknownMessageResponse* pvalue);
+
+EXTERN int asn1PD_H225UnknownMessageResponse (OOCTXT* pctxt, H225UnknownMessageResponse* pvalue);
+
+/**************************************************************/
+/* */
+/* RequestInProgress */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225RequestInProgress {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ ASN1USINT delay;
+} H225RequestInProgress;
+
+EXTERN int asn1PE_H225RequestInProgress (OOCTXT* pctxt, H225RequestInProgress* pvalue);
+
+EXTERN int asn1PD_H225RequestInProgress (OOCTXT* pctxt, H225RequestInProgress* pvalue);
+
+/**************************************************************/
+/* */
+/* ResourcesAvailableIndicate */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ResourcesAvailableIndicate {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned capacityPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225EndpointIdentifier endpointIdentifier;
+ H225_SeqOfH225SupportedProtocols protocols;
+ ASN1BOOL almostOutOfResources;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225CallCapacity capacity;
+ H225_SeqOfH225GenericData genericData;
+} H225ResourcesAvailableIndicate;
+
+EXTERN int asn1PE_H225ResourcesAvailableIndicate (OOCTXT* pctxt, H225ResourcesAvailableIndicate* pvalue);
+
+EXTERN int asn1PD_H225ResourcesAvailableIndicate (OOCTXT* pctxt, H225ResourcesAvailableIndicate* pvalue);
+
+/**************************************************************/
+/* */
+/* ResourcesAvailableConfirm */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ResourcesAvailableConfirm {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ProtocolIdentifier protocolIdentifier;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225_SeqOfH225GenericData genericData;
+} H225ResourcesAvailableConfirm;
+
+EXTERN int asn1PE_H225ResourcesAvailableConfirm (OOCTXT* pctxt, H225ResourcesAvailableConfirm* pvalue);
+
+EXTERN int asn1PD_H225ResourcesAvailableConfirm (OOCTXT* pctxt, H225ResourcesAvailableConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestAck */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequestAck {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+} H225InfoRequestAck;
+
+EXTERN int asn1PE_H225InfoRequestAck (OOCTXT* pctxt, H225InfoRequestAck* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestAck (OOCTXT* pctxt, H225InfoRequestAck* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestNakReason */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225InfoRequestNakReason_notRegistered 1
+#define T_H225InfoRequestNakReason_securityDenial 2
+#define T_H225InfoRequestNakReason_undefinedReason 3
+#define T_H225InfoRequestNakReason_securityError 4
+#define T_H225InfoRequestNakReason_extElem1 5
+
+typedef struct EXTERN H225InfoRequestNakReason {
+ int t;
+ union {
+ /* t = 1 */
+ /* t = 2 */
+ /* t = 3 */
+ /* t = 4 */
+ H225SecurityErrors2 *securityError;
+ /* t = 5 */
+ } u;
+} H225InfoRequestNakReason;
+
+EXTERN int asn1PE_H225InfoRequestNakReason (OOCTXT* pctxt, H225InfoRequestNakReason* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestNakReason (OOCTXT* pctxt, H225InfoRequestNakReason* pvalue);
+
+/**************************************************************/
+/* */
+/* InfoRequestNak */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225InfoRequestNak {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned altGKInfoPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225InfoRequestNakReason nakReason;
+ H225AltGKInfo altGKInfo;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+} H225InfoRequestNak;
+
+EXTERN int asn1PE_H225InfoRequestNak (OOCTXT* pctxt, H225InfoRequestNak* pvalue);
+
+EXTERN int asn1PD_H225InfoRequestNak (OOCTXT* pctxt, H225InfoRequestNak* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlIndication_callSpecific */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ServiceControlIndication_callSpecific {
+ H225CallIdentifier callIdentifier;
+ H225ConferenceIdentifier conferenceID;
+ ASN1BOOL answeredCall;
+} H225ServiceControlIndication_callSpecific;
+
+EXTERN int asn1PE_H225ServiceControlIndication_callSpecific (OOCTXT* pctxt, H225ServiceControlIndication_callSpecific* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlIndication_callSpecific (OOCTXT* pctxt, H225ServiceControlIndication_callSpecific* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlIndication */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ServiceControlIndication {
+ struct {
+ unsigned nonStandardDataPresent : 1;
+ unsigned endpointIdentifierPresent : 1;
+ unsigned callSpecificPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ServiceControlSession serviceControl;
+ H225EndpointIdentifier endpointIdentifier;
+ H225ServiceControlIndication_callSpecific callSpecific;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225ServiceControlIndication;
+
+EXTERN int asn1PE_H225ServiceControlIndication (OOCTXT* pctxt, H225ServiceControlIndication* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlIndication (OOCTXT* pctxt, H225ServiceControlIndication* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlResponse_result */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225ServiceControlResponse_result_started 1
+#define T_H225ServiceControlResponse_result_failed 2
+#define T_H225ServiceControlResponse_result_stopped 3
+#define T_H225ServiceControlResponse_result_notAvailable 4
+#define T_H225ServiceControlResponse_result_neededFeatureNotSupported 5
+#define T_H225ServiceControlResponse_result_extElem1 6
+
+typedef struct EXTERN H225ServiceControlResponse_result {
+ int t;
+} H225ServiceControlResponse_result;
+
+EXTERN int asn1PE_H225ServiceControlResponse_result (OOCTXT* pctxt, H225ServiceControlResponse_result* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlResponse_result (OOCTXT* pctxt, H225ServiceControlResponse_result* pvalue);
+
+/**************************************************************/
+/* */
+/* ServiceControlResponse */
+/* */
+/**************************************************************/
+
+typedef struct EXTERN H225ServiceControlResponse {
+ struct {
+ unsigned resultPresent : 1;
+ unsigned nonStandardDataPresent : 1;
+ unsigned tokensPresent : 1;
+ unsigned cryptoTokensPresent : 1;
+ unsigned integrityCheckValuePresent : 1;
+ unsigned featureSetPresent : 1;
+ unsigned genericDataPresent : 1;
+ } m;
+ H225RequestSeqNum requestSeqNum;
+ H225ServiceControlResponse_result result;
+ H225NonStandardParameter nonStandardData;
+ H225_SeqOfH225ClearToken tokens;
+ H225_SeqOfH225CryptoH323Token cryptoTokens;
+ H225ICV integrityCheckValue;
+ H225FeatureSet featureSet;
+ H225_SeqOfH225GenericData genericData;
+} H225ServiceControlResponse;
+
+EXTERN int asn1PE_H225ServiceControlResponse (OOCTXT* pctxt, H225ServiceControlResponse* pvalue);
+
+EXTERN int asn1PD_H225ServiceControlResponse (OOCTXT* pctxt, H225ServiceControlResponse* pvalue);
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AdmissionConfirm */
+/* */
+/**************************************************************/
+
+/* List of H225AdmissionConfirm */
+typedef DList H225_SeqOfH225AdmissionConfirm;
+
+EXTERN int asn1PE_H225_SeqOfH225AdmissionConfirm (OOCTXT* pctxt, H225_SeqOfH225AdmissionConfirm* pvalue);
+
+EXTERN int asn1PD_H225_SeqOfH225AdmissionConfirm (OOCTXT* pctxt, H225_SeqOfH225AdmissionConfirm* pvalue);
+
+/**************************************************************/
+/* */
+/* RasMessage */
+/* */
+/**************************************************************/
+
+/* Choice tag constants */
+
+#define T_H225RasMessage_gatekeeperRequest 1
+#define T_H225RasMessage_gatekeeperConfirm 2
+#define T_H225RasMessage_gatekeeperReject 3
+#define T_H225RasMessage_registrationRequest 4
+#define T_H225RasMessage_registrationConfirm 5
+#define T_H225RasMessage_registrationReject 6
+#define T_H225RasMessage_unregistrationRequest 7
+#define T_H225RasMessage_unregistrationConfirm 8
+#define T_H225RasMessage_unregistrationReject 9
+#define T_H225RasMessage_admissionRequest 10
+#define T_H225RasMessage_admissionConfirm 11
+#define T_H225RasMessage_admissionReject 12
+#define T_H225RasMessage_bandwidthRequest 13
+#define T_H225RasMessage_bandwidthConfirm 14
+#define T_H225RasMessage_bandwidthReject 15
+#define T_H225RasMessage_disengageRequest 16
+#define T_H225RasMessage_disengageConfirm 17
+#define T_H225RasMessage_disengageReject 18
+#define T_H225RasMessage_locationRequest 19
+#define T_H225RasMessage_locationConfirm 20
+#define T_H225RasMessage_locationReject 21
+#define T_H225RasMessage_infoRequest 22
+#define T_H225RasMessage_infoRequestResponse 23
+#define T_H225RasMessage_nonStandardMessage 24
+#define T_H225RasMessage_unknownMessageResponse 25
+#define T_H225RasMessage_requestInProgress 26
+#define T_H225RasMessage_resourcesAvailableIndicate 27
+#define T_H225RasMessage_resourcesAvailableConfirm 28
+#define T_H225RasMessage_infoRequestAck 29
+#define T_H225RasMessage_infoRequestNak 30
+#define T_H225RasMessage_serviceControlIndication 31
+#define T_H225RasMessage_serviceControlResponse 32
+#define T_H225RasMessage_admissionConfirmSequence 33
+#define T_H225RasMessage_extElem1 34
+
+typedef struct EXTERN H225RasMessage {
+ int t;
+ union {
+ /* t = 1 */
+ H225GatekeeperRequest *gatekeeperRequest;
+ /* t = 2 */
+ H225GatekeeperConfirm *gatekeeperConfirm;
+ /* t = 3 */
+ H225GatekeeperReject *gatekeeperReject;
+ /* t = 4 */
+ H225RegistrationRequest *registrationRequest;
+ /* t = 5 */
+ H225RegistrationConfirm *registrationConfirm;
+ /* t = 6 */
+ H225RegistrationReject *registrationReject;
+ /* t = 7 */
+ H225UnregistrationRequest *unregistrationRequest;
+ /* t = 8 */
+ H225UnregistrationConfirm *unregistrationConfirm;
+ /* t = 9 */
+ H225UnregistrationReject *unregistrationReject;
+ /* t = 10 */
+ H225AdmissionRequest *admissionRequest;
+ /* t = 11 */
+ H225AdmissionConfirm *admissionConfirm;
+ /* t = 12 */
+ H225AdmissionReject *admissionReject;
+ /* t = 13 */
+ H225BandwidthRequest *bandwidthRequest;
+ /* t = 14 */
+ H225BandwidthConfirm *bandwidthConfirm;
+ /* t = 15 */
+ H225BandwidthReject *bandwidthReject;
+ /* t = 16 */
+ H225DisengageRequest *disengageRequest;
+ /* t = 17 */
+ H225DisengageConfirm *disengageConfirm;
+ /* t = 18 */
+ H225DisengageReject *disengageReject;
+ /* t = 19 */
+ H225LocationRequest *locationRequest;
+ /* t = 20 */
+ H225LocationConfirm *locationConfirm;
+ /* t = 21 */
+ H225LocationReject *locationReject;
+ /* t = 22 */
+ H225InfoRequest *infoRequest;
+ /* t = 23 */
+ H225InfoRequestResponse *infoRequestResponse;
+ /* t = 24 */
+ H225NonStandardMessage *nonStandardMessage;
+ /* t = 25 */
+ H225UnknownMessageResponse *unknownMessageResponse;
+ /* t = 26 */
+ H225RequestInProgress *requestInProgress;
+ /* t = 27 */
+ H225ResourcesAvailableIndicate *resourcesAvailableIndicate;
+ /* t = 28 */
+ H225ResourcesAvailableConfirm *resourcesAvailableConfirm;
+ /* t = 29 */
+ H225InfoRequestAck *infoRequestAck;
+ /* t = 30 */
+ H225InfoRequestNak *infoRequestNak;
+ /* t = 31 */
+ H225ServiceControlIndication *serviceControlIndication;
+ /* t = 32 */
+ H225ServiceControlResponse *serviceControlResponse;
+ /* t = 33 */
+ H225_SeqOfH225AdmissionConfirm *admissionConfirmSequence;
+ /* t = 34 */
+ } u;
+} H225RasMessage;
+
+EXTERN int asn1PE_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue);
+
+EXTERN int asn1PD_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/addons/ooh323c/src/h323/H323-MESSAGESDec.c b/addons/ooh323c/src/h323/H323-MESSAGESDec.c
new file mode 100644
index 000000000..2f8700b66
--- /dev/null
+++ b/addons/ooh323c/src/h323/H323-MESSAGESDec.c
@@ -0,0 +1,27199 @@
+/*
+ * Copyright (C) 2004-2005 by Objective Systems, Inc.
+ *
+ * This software is furnished under an open source license and may be
+ * used and copied only in accordance with the terms of this license.
+ * The text of the license may generally be found in the root
+ * directory of this installation in the COPYING file. It
+ * can also be viewed online at the following URL:
+ *
+ * http://www.obj-sys.com/open/license.html
+ *
+ * Any redistributions of this file including modified versions must
+ * maintain this copyright notice.
+ *
+ *****************************************************************************/
+
+#include "ooasn1.h"
+#include "H323-MESSAGES.h"
+#include "eventHandler.h"
+
+/**************************************************************/
+/* */
+/* ScreeningIndicator */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ScreeningIndicator (OOCTXT* pctxt, H225ScreeningIndicator* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (extbit) {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+
+ *pvalue = ui;
+ }
+ else {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 3);
+ if (stat != ASN_OK) return stat;
+
+ switch (ui) {
+ case 0: *pvalue = userProvidedNotScreened; break;
+ case 1: *pvalue = userProvidedVerifiedAndPassed; break;
+ case 2: *pvalue = userProvidedVerifiedAndFailed; break;
+ case 3: *pvalue = networkProvided; break;
+ default: return ASN_E_INVENUM;
+ }
+ }
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NumberDigits */
+/* */
+/**************************************************************/
+
+extern EXTERN const char* gs_H323_MESSAGES_NumberDigits_CharSet;
+
+EXTERN int asn1PD_H225NumberDigits (OOCTXT* pctxt, H225NumberDigits* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, pvalue, gs_H323_MESSAGES_NumberDigits_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TBCD_STRING */
+/* */
+/**************************************************************/
+
+extern EXTERN const char* gs_H323_MESSAGES_TBCD_STRING_CharSet;
+
+EXTERN int asn1PD_H225TBCD_STRING (OOCTXT* pctxt, H225TBCD_STRING* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConstrainedStringEx (pctxt, pvalue, gs_H323_MESSAGES_TBCD_STRING_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GloballyUniqueID */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GloballyUniqueID (OOCTXT* pctxt, H225GloballyUniqueID* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ConferenceIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ConferenceIdentifier (OOCTXT* pctxt, H225ConferenceIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = asn1PD_H225GloballyUniqueID (pctxt, pvalue);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* RequestSeqNum */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225RequestSeqNum (OOCTXT* pctxt, H225RequestSeqNum* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConsUInt16 (pctxt, pvalue, 1U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GatekeeperIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GatekeeperIdentifier (OOCTXT* pctxt, H225GatekeeperIdentifier* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBMPString (pctxt, pvalue, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* BandWidth */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225BandWidth (OOCTXT* pctxt, H225BandWidth* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConsUnsigned (pctxt, pvalue, 0U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallReferenceValue */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallReferenceValue (OOCTXT* pctxt, H225CallReferenceValue* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConsUInt16 (pctxt, pvalue, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EndpointIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225EndpointIdentifier (OOCTXT* pctxt, H225EndpointIdentifier* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBMPString (pctxt, pvalue, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->nchars, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ProtocolIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ProtocolIdentifier (OOCTXT* pctxt, H225ProtocolIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeObjectIdentifier (pctxt, pvalue);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->numids, pvalue->subid);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TimeToLive */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TimeToLive (OOCTXT* pctxt, H225TimeToLive* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeConsUnsigned (pctxt, pvalue, 1U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, *pvalue);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H248PackagesDescriptor */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H248PackagesDescriptor (OOCTXT* pctxt, H225H248PackagesDescriptor* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H248SignalsDescriptor */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H248SignalsDescriptor (OOCTXT* pctxt, H225H248SignalsDescriptor* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GenericIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GenericIdentifier (OOCTXT* pctxt, H225GenericIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 2);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* standard */
+ case 0:
+ invokeStartElement (pctxt, "standard", -1);
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (extbit == 0) {
+ stat = decodeConsInteger (pctxt, &pvalue->u.standard, 0, 16383);
+ if (stat != ASN_OK) return stat;
+ }
+ else {
+ stat = decodeUnconsInteger (pctxt, &pvalue->u.standard);
+ if (stat != ASN_OK) return stat;
+ }
+ invokeIntValue (pctxt, pvalue->u.standard);
+
+ invokeEndElement (pctxt, "standard", -1);
+
+ break;
+
+ /* oid */
+ case 1:
+ invokeStartElement (pctxt, "oid", -1);
+
+ pvalue->u.oid = ALLOC_ASN1ELEM (pctxt, ASN1OBJID);
+
+ stat = decodeObjectIdentifier (pctxt, pvalue->u.oid);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->u.oid->numids, pvalue->u.oid->subid);
+
+ invokeEndElement (pctxt, "oid", -1);
+
+ break;
+
+ /* nonStandard */
+ case 2:
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H225GloballyUniqueID);
+
+ stat = asn1PD_H225GloballyUniqueID (pctxt, pvalue->u.nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 4;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipAddress_ip */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipAddress_ip (OOCTXT* pctxt, H225TransportAddress_ipAddress_ip* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipAddress */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipAddress (OOCTXT* pctxt, H225TransportAddress_ipAddress* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode ip */
+
+ invokeStartElement (pctxt, "ip", -1);
+
+ stat = asn1PD_H225TransportAddress_ipAddress_ip (pctxt, &pvalue->ip);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ip", -1);
+
+ /* decode port */
+
+ invokeStartElement (pctxt, "port", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->port);
+
+ invokeEndElement (pctxt, "port", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_ip */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_ip (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_ip* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_route_element */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_route_element* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TransportAddress_ipSourceRoute_route_element */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (OOCTXT* pctxt, H225_SeqOfH225TransportAddress_ipSourceRoute_route_element* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ stat = decodeLength (pctxt, &pvalue->n);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ ALLOC_ASN1ARRAY (pctxt, pvalue, H225TransportAddress_ipSourceRoute_route_element);
+
+ for (xx1 = 0; xx1 < pvalue->n; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ stat = asn1PD_H225TransportAddress_ipSourceRoute_route_element (pctxt, &pvalue->elem[xx1]);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute_routing */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute_routing (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute_routing* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* strict */
+ case 0:
+ invokeStartElement (pctxt, "strict", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "strict", -1);
+
+ break;
+
+ /* loose */
+ case 1:
+ invokeStartElement (pctxt, "loose", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "loose", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipSourceRoute */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipSourceRoute (OOCTXT* pctxt, H225TransportAddress_ipSourceRoute* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode ip */
+
+ invokeStartElement (pctxt, "ip", -1);
+
+ stat = asn1PD_H225TransportAddress_ipSourceRoute_ip (pctxt, &pvalue->ip);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ip", -1);
+
+ /* decode port */
+
+ invokeStartElement (pctxt, "port", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->port);
+
+ invokeEndElement (pctxt, "port", -1);
+
+ /* decode route */
+
+ invokeStartElement (pctxt, "route", -1);
+
+ stat = asn1PD_H225_SeqOfH225TransportAddress_ipSourceRoute_route_element (pctxt, &pvalue->route);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "route", -1);
+
+ /* decode routing */
+
+ invokeStartElement (pctxt, "routing", -1);
+
+ stat = asn1PD_H225TransportAddress_ipSourceRoute_routing (pctxt, &pvalue->routing);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "routing", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_node */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_node (OOCTXT* pctxt, H225TransportAddress_ipxAddress_node* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 6, 6, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_netnum */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_netnum (OOCTXT* pctxt, H225TransportAddress_ipxAddress_netnum* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress_port */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress_port (OOCTXT* pctxt, H225TransportAddress_ipxAddress_port* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 2, 2, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ipxAddress */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ipxAddress (OOCTXT* pctxt, H225TransportAddress_ipxAddress* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode node */
+
+ invokeStartElement (pctxt, "node", -1);
+
+ stat = asn1PD_H225TransportAddress_ipxAddress_node (pctxt, &pvalue->node);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "node", -1);
+
+ /* decode netnum */
+
+ invokeStartElement (pctxt, "netnum", -1);
+
+ stat = asn1PD_H225TransportAddress_ipxAddress_netnum (pctxt, &pvalue->netnum);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "netnum", -1);
+
+ /* decode port */
+
+ invokeStartElement (pctxt, "port", -1);
+
+ stat = asn1PD_H225TransportAddress_ipxAddress_port (pctxt, &pvalue->port);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "port", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ip6Address_ip */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ip6Address_ip (OOCTXT* pctxt, H225TransportAddress_ip6Address_ip* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_ip6Address */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_ip6Address (OOCTXT* pctxt, H225TransportAddress_ip6Address* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode ip */
+
+ invokeStartElement (pctxt, "ip", -1);
+
+ stat = asn1PD_H225TransportAddress_ip6Address_ip (pctxt, &pvalue->ip);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ip", -1);
+
+ /* decode port */
+
+ invokeStartElement (pctxt, "port", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->port, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->port);
+
+ invokeEndElement (pctxt, "port", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_netBios */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_netBios (OOCTXT* pctxt, H225TransportAddress_netBios* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress_nsap */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress_nsap (OOCTXT* pctxt, H225TransportAddress_nsap* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H221NonStandard */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H221NonStandard (OOCTXT* pctxt, H225H221NonStandard* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode t35CountryCode */
+
+ invokeStartElement (pctxt, "t35CountryCode", -1);
+
+ stat = decodeConsUInt8 (pctxt, &pvalue->t35CountryCode, 0U, 255U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->t35CountryCode);
+
+ invokeEndElement (pctxt, "t35CountryCode", -1);
+
+ /* decode t35Extension */
+
+ invokeStartElement (pctxt, "t35Extension", -1);
+
+ stat = decodeConsUInt8 (pctxt, &pvalue->t35Extension, 0U, 255U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->t35Extension);
+
+ invokeEndElement (pctxt, "t35Extension", -1);
+
+ /* decode manufacturerCode */
+
+ invokeStartElement (pctxt, "manufacturerCode", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->manufacturerCode, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->manufacturerCode);
+
+ invokeEndElement (pctxt, "manufacturerCode", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NonStandardIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225NonStandardIdentifier (OOCTXT* pctxt, H225NonStandardIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* object */
+ case 0:
+ invokeStartElement (pctxt, "object", -1);
+
+ pvalue->u.object = ALLOC_ASN1ELEM (pctxt, ASN1OBJID);
+
+ stat = decodeObjectIdentifier (pctxt, pvalue->u.object);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->u.object->numids, pvalue->u.object->subid);
+
+ invokeEndElement (pctxt, "object", -1);
+
+ break;
+
+ /* h221NonStandard */
+ case 1:
+ invokeStartElement (pctxt, "h221NonStandard", -1);
+
+ pvalue->u.h221NonStandard = ALLOC_ASN1ELEM (pctxt, H225H221NonStandard);
+
+ stat = asn1PD_H225H221NonStandard (pctxt, pvalue->u.h221NonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h221NonStandard", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NonStandardParameter */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225NonStandardParameter (OOCTXT* pctxt, H225NonStandardParameter* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode nonStandardIdentifier */
+
+ invokeStartElement (pctxt, "nonStandardIdentifier", -1);
+
+ stat = asn1PD_H225NonStandardIdentifier (pctxt, &pvalue->nonStandardIdentifier);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardIdentifier", -1);
+
+ /* decode data */
+
+ invokeStartElement (pctxt, "data", -1);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->data);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->data.numocts, pvalue->data.data);
+
+ invokeEndElement (pctxt, "data", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TransportAddress */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TransportAddress (OOCTXT* pctxt, H225TransportAddress* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 6);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* ipAddress */
+ case 0:
+ invokeStartElement (pctxt, "ipAddress", -1);
+
+ pvalue->u.ipAddress = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipAddress);
+
+ stat = asn1PD_H225TransportAddress_ipAddress (pctxt, pvalue->u.ipAddress);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ipAddress", -1);
+
+ break;
+
+ /* ipSourceRoute */
+ case 1:
+ invokeStartElement (pctxt, "ipSourceRoute", -1);
+
+ pvalue->u.ipSourceRoute = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipSourceRoute);
+
+ stat = asn1PD_H225TransportAddress_ipSourceRoute (pctxt, pvalue->u.ipSourceRoute);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ipSourceRoute", -1);
+
+ break;
+
+ /* ipxAddress */
+ case 2:
+ invokeStartElement (pctxt, "ipxAddress", -1);
+
+ pvalue->u.ipxAddress = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ipxAddress);
+
+ stat = asn1PD_H225TransportAddress_ipxAddress (pctxt, pvalue->u.ipxAddress);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ipxAddress", -1);
+
+ break;
+
+ /* ip6Address */
+ case 3:
+ invokeStartElement (pctxt, "ip6Address", -1);
+
+ pvalue->u.ip6Address = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_ip6Address);
+
+ stat = asn1PD_H225TransportAddress_ip6Address (pctxt, pvalue->u.ip6Address);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ip6Address", -1);
+
+ break;
+
+ /* netBios */
+ case 4:
+ invokeStartElement (pctxt, "netBios", -1);
+
+ pvalue->u.netBios = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_netBios);
+
+ stat = asn1PD_H225TransportAddress_netBios (pctxt, pvalue->u.netBios);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "netBios", -1);
+
+ break;
+
+ /* nsap */
+ case 5:
+ invokeStartElement (pctxt, "nsap", -1);
+
+ pvalue->u.nsap = ALLOC_ASN1ELEM (pctxt, H225TransportAddress_nsap);
+
+ stat = asn1PD_H225TransportAddress_nsap (pctxt, pvalue->u.nsap);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nsap", -1);
+
+ break;
+
+ /* nonStandardAddress */
+ case 6:
+ invokeStartElement (pctxt, "nonStandardAddress", -1);
+
+ pvalue->u.nonStandardAddress = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandardAddress);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardAddress", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 8;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PublicTypeOfNumber */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PublicTypeOfNumber (OOCTXT* pctxt, H225PublicTypeOfNumber* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 5);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* unknown */
+ case 0:
+ invokeStartElement (pctxt, "unknown", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "unknown", -1);
+
+ break;
+
+ /* internationalNumber */
+ case 1:
+ invokeStartElement (pctxt, "internationalNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "internationalNumber", -1);
+
+ break;
+
+ /* nationalNumber */
+ case 2:
+ invokeStartElement (pctxt, "nationalNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "nationalNumber", -1);
+
+ break;
+
+ /* networkSpecificNumber */
+ case 3:
+ invokeStartElement (pctxt, "networkSpecificNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "networkSpecificNumber", -1);
+
+ break;
+
+ /* subscriberNumber */
+ case 4:
+ invokeStartElement (pctxt, "subscriberNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "subscriberNumber", -1);
+
+ break;
+
+ /* abbreviatedNumber */
+ case 5:
+ invokeStartElement (pctxt, "abbreviatedNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "abbreviatedNumber", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 7;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PublicPartyNumber */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PublicPartyNumber (OOCTXT* pctxt, H225PublicPartyNumber* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode publicTypeOfNumber */
+
+ invokeStartElement (pctxt, "publicTypeOfNumber", -1);
+
+ stat = asn1PD_H225PublicTypeOfNumber (pctxt, &pvalue->publicTypeOfNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "publicTypeOfNumber", -1);
+
+ /* decode publicNumberDigits */
+
+ invokeStartElement (pctxt, "publicNumberDigits", -1);
+
+ stat = asn1PD_H225NumberDigits (pctxt, &pvalue->publicNumberDigits);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "publicNumberDigits", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PrivateTypeOfNumber */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PrivateTypeOfNumber (OOCTXT* pctxt, H225PrivateTypeOfNumber* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 5);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* unknown */
+ case 0:
+ invokeStartElement (pctxt, "unknown", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "unknown", -1);
+
+ break;
+
+ /* level2RegionalNumber */
+ case 1:
+ invokeStartElement (pctxt, "level2RegionalNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "level2RegionalNumber", -1);
+
+ break;
+
+ /* level1RegionalNumber */
+ case 2:
+ invokeStartElement (pctxt, "level1RegionalNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "level1RegionalNumber", -1);
+
+ break;
+
+ /* pISNSpecificNumber */
+ case 3:
+ invokeStartElement (pctxt, "pISNSpecificNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "pISNSpecificNumber", -1);
+
+ break;
+
+ /* localNumber */
+ case 4:
+ invokeStartElement (pctxt, "localNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "localNumber", -1);
+
+ break;
+
+ /* abbreviatedNumber */
+ case 5:
+ invokeStartElement (pctxt, "abbreviatedNumber", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "abbreviatedNumber", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 7;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PrivatePartyNumber */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PrivatePartyNumber (OOCTXT* pctxt, H225PrivatePartyNumber* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode privateTypeOfNumber */
+
+ invokeStartElement (pctxt, "privateTypeOfNumber", -1);
+
+ stat = asn1PD_H225PrivateTypeOfNumber (pctxt, &pvalue->privateTypeOfNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "privateTypeOfNumber", -1);
+
+ /* decode privateNumberDigits */
+
+ invokeStartElement (pctxt, "privateNumberDigits", -1);
+
+ stat = asn1PD_H225NumberDigits (pctxt, &pvalue->privateNumberDigits);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "privateNumberDigits", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PartyNumber */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PartyNumber (OOCTXT* pctxt, H225PartyNumber* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 4);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* e164Number */
+ case 0:
+ invokeStartElement (pctxt, "e164Number", -1);
+
+ pvalue->u.e164Number = ALLOC_ASN1ELEM (pctxt, H225PublicPartyNumber);
+
+ stat = asn1PD_H225PublicPartyNumber (pctxt, pvalue->u.e164Number);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "e164Number", -1);
+
+ break;
+
+ /* dataPartyNumber */
+ case 1:
+ invokeStartElement (pctxt, "dataPartyNumber", -1);
+
+ stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.dataPartyNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataPartyNumber", -1);
+
+ break;
+
+ /* telexPartyNumber */
+ case 2:
+ invokeStartElement (pctxt, "telexPartyNumber", -1);
+
+ stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.telexPartyNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "telexPartyNumber", -1);
+
+ break;
+
+ /* privateNumber */
+ case 3:
+ invokeStartElement (pctxt, "privateNumber", -1);
+
+ pvalue->u.privateNumber = ALLOC_ASN1ELEM (pctxt, H225PrivatePartyNumber);
+
+ stat = asn1PD_H225PrivatePartyNumber (pctxt, pvalue->u.privateNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "privateNumber", -1);
+
+ break;
+
+ /* nationalStandardPartyNumber */
+ case 4:
+ invokeStartElement (pctxt, "nationalStandardPartyNumber", -1);
+
+ stat = asn1PD_H225NumberDigits (pctxt, &pvalue->u.nationalStandardPartyNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nationalStandardPartyNumber", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 6;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ 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 asn1PD_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;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* sid */
+ case 0:
+ invokeStartElement (pctxt, "sid", -1);
+
+ addSizeConstraint (pctxt, &sid_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.sid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_sid_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.sid);
+
+ invokeEndElement (pctxt, "sid", -1);
+
+ break;
+
+ /* mid */
+ case 1:
+ invokeStartElement (pctxt, "mid", -1);
+
+ addSizeConstraint (pctxt, &mid_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.mid, gs_H323_MESSAGES_ANSI_41_UIM_system_id_mid_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.mid);
+
+ invokeEndElement (pctxt, "mid", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_systemMyTypeCode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_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 = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_systemAccessType */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_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 = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ANSI_41_UIM_qualificationInformationCode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ANSI_41_UIM_qualificationInformationCode (OOCTXT* pctxt, H225ANSI_41_UIM_qualificationInformationCode* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 1, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ 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 asn1PD_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;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.imsiPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.minPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.mdnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.msisdnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.esnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.mscidPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.systemMyTypeCodePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.systemAccessTypePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.qualificationInformationCodePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.sesnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.socPresent = optbit;
+
+ /* decode imsi */
+
+ if (pvalue->m.imsiPresent) {
+ invokeStartElement (pctxt, "imsi", -1);
+
+ addSizeConstraint (pctxt, &imsi_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->imsi, gs_H323_MESSAGES_ANSI_41_UIM_imsi_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->imsi);
+
+ invokeEndElement (pctxt, "imsi", -1);
+ }
+
+ /* decode min */
+
+ if (pvalue->m.minPresent) {
+ invokeStartElement (pctxt, "min", -1);
+
+ addSizeConstraint (pctxt, &min_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->min, gs_H323_MESSAGES_ANSI_41_UIM_min_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->min);
+
+ invokeEndElement (pctxt, "min", -1);
+ }
+
+ /* decode mdn */
+
+ if (pvalue->m.mdnPresent) {
+ invokeStartElement (pctxt, "mdn", -1);
+
+ addSizeConstraint (pctxt, &mdn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->mdn, gs_H323_MESSAGES_ANSI_41_UIM_mdn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->mdn);
+
+ invokeEndElement (pctxt, "mdn", -1);
+ }
+
+ /* decode msisdn */
+
+ if (pvalue->m.msisdnPresent) {
+ invokeStartElement (pctxt, "msisdn", -1);
+
+ addSizeConstraint (pctxt, &msisdn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->msisdn, gs_H323_MESSAGES_ANSI_41_UIM_msisdn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->msisdn);
+
+ invokeEndElement (pctxt, "msisdn", -1);
+ }
+
+ /* decode esn */
+
+ if (pvalue->m.esnPresent) {
+ invokeStartElement (pctxt, "esn", -1);
+
+ addSizeConstraint (pctxt, &esn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->esn, gs_H323_MESSAGES_ANSI_41_UIM_esn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->esn);
+
+ invokeEndElement (pctxt, "esn", -1);
+ }
+
+ /* decode mscid */
+
+ if (pvalue->m.mscidPresent) {
+ invokeStartElement (pctxt, "mscid", -1);
+
+ addSizeConstraint (pctxt, &mscid_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->mscid, gs_H323_MESSAGES_ANSI_41_UIM_mscid_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->mscid);
+
+ invokeEndElement (pctxt, "mscid", -1);
+ }
+
+ /* decode system_id */
+
+ invokeStartElement (pctxt, "system_id", -1);
+
+ stat = asn1PD_H225ANSI_41_UIM_system_id (pctxt, &pvalue->system_id);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "system_id", -1);
+
+ /* decode systemMyTypeCode */
+
+ if (pvalue->m.systemMyTypeCodePresent) {
+ invokeStartElement (pctxt, "systemMyTypeCode", -1);
+
+ stat = asn1PD_H225ANSI_41_UIM_systemMyTypeCode (pctxt, &pvalue->systemMyTypeCode);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "systemMyTypeCode", -1);
+ }
+
+ /* decode systemAccessType */
+
+ if (pvalue->m.systemAccessTypePresent) {
+ invokeStartElement (pctxt, "systemAccessType", -1);
+
+ stat = asn1PD_H225ANSI_41_UIM_systemAccessType (pctxt, &pvalue->systemAccessType);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "systemAccessType", -1);
+ }
+
+ /* decode qualificationInformationCode */
+
+ if (pvalue->m.qualificationInformationCodePresent) {
+ invokeStartElement (pctxt, "qualificationInformationCode", -1);
+
+ stat = asn1PD_H225ANSI_41_UIM_qualificationInformationCode (pctxt, &pvalue->qualificationInformationCode);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "qualificationInformationCode", -1);
+ }
+
+ /* decode sesn */
+
+ if (pvalue->m.sesnPresent) {
+ invokeStartElement (pctxt, "sesn", -1);
+
+ addSizeConstraint (pctxt, &sesn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->sesn, gs_H323_MESSAGES_ANSI_41_UIM_sesn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->sesn);
+
+ invokeEndElement (pctxt, "sesn", -1);
+ }
+
+ /* decode soc */
+
+ if (pvalue->m.socPresent) {
+ invokeStartElement (pctxt, "soc", -1);
+
+ addSizeConstraint (pctxt, &soc_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->soc, gs_H323_MESSAGES_ANSI_41_UIM_soc_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->soc);
+
+ invokeEndElement (pctxt, "soc", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GSM_UIM_tmsi */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GSM_UIM_tmsi (OOCTXT* pctxt, H225GSM_UIM_tmsi* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ 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 asn1PD_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;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.imsiPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.tmsiPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.msisdnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.imeiPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.hplmnPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.vplmnPresent = optbit;
+
+ /* decode imsi */
+
+ if (pvalue->m.imsiPresent) {
+ invokeStartElement (pctxt, "imsi", -1);
+
+ addSizeConstraint (pctxt, &imsi_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->imsi, gs_H323_MESSAGES_GSM_UIM_imsi_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->imsi);
+
+ invokeEndElement (pctxt, "imsi", -1);
+ }
+
+ /* decode tmsi */
+
+ if (pvalue->m.tmsiPresent) {
+ invokeStartElement (pctxt, "tmsi", -1);
+
+ stat = asn1PD_H225GSM_UIM_tmsi (pctxt, &pvalue->tmsi);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "tmsi", -1);
+ }
+
+ /* decode msisdn */
+
+ if (pvalue->m.msisdnPresent) {
+ invokeStartElement (pctxt, "msisdn", -1);
+
+ addSizeConstraint (pctxt, &msisdn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->msisdn, gs_H323_MESSAGES_GSM_UIM_msisdn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->msisdn);
+
+ invokeEndElement (pctxt, "msisdn", -1);
+ }
+
+ /* decode imei */
+
+ if (pvalue->m.imeiPresent) {
+ invokeStartElement (pctxt, "imei", -1);
+
+ addSizeConstraint (pctxt, &imei_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->imei, gs_H323_MESSAGES_GSM_UIM_imei_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->imei);
+
+ invokeEndElement (pctxt, "imei", -1);
+ }
+
+ /* decode hplmn */
+
+ if (pvalue->m.hplmnPresent) {
+ invokeStartElement (pctxt, "hplmn", -1);
+
+ addSizeConstraint (pctxt, &hplmn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->hplmn, gs_H323_MESSAGES_GSM_UIM_hplmn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->hplmn);
+
+ invokeEndElement (pctxt, "hplmn", -1);
+ }
+
+ /* decode vplmn */
+
+ if (pvalue->m.vplmnPresent) {
+ invokeStartElement (pctxt, "vplmn", -1);
+
+ addSizeConstraint (pctxt, &vplmn_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->vplmn, gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->vplmn);
+
+ invokeEndElement (pctxt, "vplmn", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* MobileUIM */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225MobileUIM (OOCTXT* pctxt, H225MobileUIM* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* ansi_41_uim */
+ case 0:
+ invokeStartElement (pctxt, "ansi_41_uim", -1);
+
+ pvalue->u.ansi_41_uim = ALLOC_ASN1ELEM (pctxt, H225ANSI_41_UIM);
+
+ stat = asn1PD_H225ANSI_41_UIM (pctxt, pvalue->u.ansi_41_uim);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ansi_41_uim", -1);
+
+ break;
+
+ /* gsm_uim */
+ case 1:
+ invokeStartElement (pctxt, "gsm_uim", -1);
+
+ pvalue->u.gsm_uim = ALLOC_ASN1ELEM (pctxt, H225GSM_UIM);
+
+ stat = asn1PD_H225GSM_UIM (pctxt, pvalue->u.gsm_uim);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "gsm_uim", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* AliasAddress */
+/* */
+/**************************************************************/
+
+extern EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet;
+
+EXTERN int asn1PD_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;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* dialedDigits */
+ case 0:
+ invokeStartElement (pctxt, "dialedDigits", -1);
+
+ addSizeConstraint (pctxt, &dialedDigits_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.dialedDigits, gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet, 4, 4, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.dialedDigits);
+
+ invokeEndElement (pctxt, "dialedDigits", -1);
+
+ break;
+
+ /* h323_ID */
+ case 1:
+ invokeStartElement (pctxt, "h323_ID", -1);
+
+ addSizeConstraint (pctxt, &h323_ID_lsize1);
+
+ stat = decodeBMPString (pctxt, &pvalue->u.h323_ID, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->u.h323_ID.nchars, pvalue->u.h323_ID.data);
+
+ invokeEndElement (pctxt, "h323_ID", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ copyContext (&lctxt, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (pvalue->t) {
+ /* url_ID */
+ case 3:
+ invokeStartElement (pctxt, "url_ID", -1);
+
+ addSizeConstraint (pctxt, &url_ID_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.url_ID, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.url_ID);
+
+ invokeEndElement (pctxt, "url_ID", -1);
+
+ break;
+
+ /* transportID */
+ case 4:
+ invokeStartElement (pctxt, "transportID", -1);
+
+ pvalue->u.transportID = ALLOC_ASN1ELEM (pctxt, H225TransportAddress);
+
+ stat = asn1PD_H225TransportAddress (pctxt, pvalue->u.transportID);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "transportID", -1);
+
+ break;
+
+ /* email_ID */
+ case 5:
+ invokeStartElement (pctxt, "email_ID", -1);
+
+ addSizeConstraint (pctxt, &email_ID_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.email_ID, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.email_ID);
+
+ invokeEndElement (pctxt, "email_ID", -1);
+
+ break;
+
+ /* partyNumber */
+ case 6:
+ invokeStartElement (pctxt, "partyNumber", -1);
+
+ pvalue->u.partyNumber = ALLOC_ASN1ELEM (pctxt, H225PartyNumber);
+
+ stat = asn1PD_H225PartyNumber (pctxt, pvalue->u.partyNumber);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "partyNumber", -1);
+
+ break;
+
+ /* mobileUIM */
+ case 7:
+ invokeStartElement (pctxt, "mobileUIM", -1);
+
+ pvalue->u.mobileUIM = ALLOC_ASN1ELEM (pctxt, H225MobileUIM);
+
+ stat = asn1PD_H225MobileUIM (pctxt, pvalue->u.mobileUIM);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "mobileUIM", -1);
+
+ break;
+
+ default:;
+ }
+
+ copyContext (pctxt, &lctxt);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Content_compound */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Content_compound (OOCTXT* pctxt, H225Content_compound* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 512, 0 };
+ int stat = ASN_OK;
+ H225EnumeratedParameter* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeLength (pctxt, &count);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ dListInit (pvalue);
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225EnumeratedParameter);
+
+ stat = asn1PD_H225EnumeratedParameter (pctxt, (H225EnumeratedParameter*)pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Content_nested */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Content_nested (OOCTXT* pctxt, H225Content_nested* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
+ int stat = ASN_OK;
+ H225GenericData* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeLength (pctxt, &count);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ dListInit (pvalue);
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225GenericData);
+
+ stat = asn1PD_H225GenericData (pctxt, (H225GenericData*)pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Content */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Content (OOCTXT* pctxt, H225Content* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 11);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* raw */
+ case 0:
+ invokeStartElement (pctxt, "raw", -1);
+
+ pvalue->u.raw = ALLOC_ASN1ELEM (pctxt, ASN1DynOctStr);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)pvalue->u.raw);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->u.raw->numocts, pvalue->u.raw->data);
+
+ invokeEndElement (pctxt, "raw", -1);
+
+ break;
+
+ /* text */
+ case 1:
+ invokeStartElement (pctxt, "text", -1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.text, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.text);
+
+ invokeEndElement (pctxt, "text", -1);
+
+ break;
+
+ /* unicode */
+ case 2:
+ invokeStartElement (pctxt, "unicode", -1);
+
+ stat = decodeBMPString (pctxt, &pvalue->u.unicode, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->u.unicode.nchars, pvalue->u.unicode.data);
+
+ invokeEndElement (pctxt, "unicode", -1);
+
+ break;
+
+ /* bool_ */
+ case 3:
+ invokeStartElement (pctxt, "bool_", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->u.bool_);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->u.bool_);
+
+ invokeEndElement (pctxt, "bool_", -1);
+
+ break;
+
+ /* number8 */
+ case 4:
+ invokeStartElement (pctxt, "number8", -1);
+
+ stat = decodeConsUInt8 (pctxt, &pvalue->u.number8, 0U, 255U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->u.number8);
+
+ invokeEndElement (pctxt, "number8", -1);
+
+ break;
+
+ /* number16 */
+ case 5:
+ invokeStartElement (pctxt, "number16", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->u.number16, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->u.number16);
+
+ invokeEndElement (pctxt, "number16", -1);
+
+ break;
+
+ /* number32 */
+ case 6:
+ invokeStartElement (pctxt, "number32", -1);
+
+ stat = decodeConsUnsigned (pctxt, &pvalue->u.number32, 0U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->u.number32);
+
+ invokeEndElement (pctxt, "number32", -1);
+
+ break;
+
+ /* id */
+ case 7:
+ invokeStartElement (pctxt, "id", -1);
+
+ pvalue->u.id = ALLOC_ASN1ELEM (pctxt, H225GenericIdentifier);
+
+ stat = asn1PD_H225GenericIdentifier (pctxt, pvalue->u.id);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "id", -1);
+
+ break;
+
+ /* alias */
+ case 8:
+ invokeStartElement (pctxt, "alias", -1);
+
+ pvalue->u.alias = ALLOC_ASN1ELEM (pctxt, H225AliasAddress);
+
+ stat = asn1PD_H225AliasAddress (pctxt, pvalue->u.alias);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "alias", -1);
+
+ break;
+
+ /* transport */
+ case 9:
+ invokeStartElement (pctxt, "transport", -1);
+
+ pvalue->u.transport = ALLOC_ASN1ELEM (pctxt, H225TransportAddress);
+
+ stat = asn1PD_H225TransportAddress (pctxt, pvalue->u.transport);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "transport", -1);
+
+ break;
+
+ /* compound */
+ case 10:
+ invokeStartElement (pctxt, "compound", -1);
+
+ pvalue->u.compound = ALLOC_ASN1ELEM (pctxt, H225Content_compound);
+
+ stat = asn1PD_H225Content_compound (pctxt, pvalue->u.compound);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "compound", -1);
+
+ break;
+
+ /* nested */
+ case 11:
+ invokeStartElement (pctxt, "nested", -1);
+
+ pvalue->u.nested = ALLOC_ASN1ELEM (pctxt, H225Content_nested);
+
+ stat = asn1PD_H225Content_nested (pctxt, pvalue->u.nested);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nested", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 13;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EnumeratedParameter */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225EnumeratedParameter (OOCTXT* pctxt, H225EnumeratedParameter* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.contentPresent = optbit;
+
+ /* decode id */
+
+ invokeStartElement (pctxt, "id", -1);
+
+ stat = asn1PD_H225GenericIdentifier (pctxt, &pvalue->id);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "id", -1);
+
+ /* decode content */
+
+ if (pvalue->m.contentPresent) {
+ invokeStartElement (pctxt, "content", -1);
+
+ stat = asn1PD_H225Content (pctxt, &pvalue->content);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "content", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GenericData_parameters */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GenericData_parameters (OOCTXT* pctxt, H225GenericData_parameters* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 512, 0 };
+ int stat = ASN_OK;
+ H225EnumeratedParameter* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeLength (pctxt, &count);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ dListInit (pvalue);
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225EnumeratedParameter);
+
+ stat = asn1PD_H225EnumeratedParameter (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GenericData */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GenericData (OOCTXT* pctxt, H225GenericData* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.parametersPresent = optbit;
+
+ /* decode id */
+
+ invokeStartElement (pctxt, "id", -1);
+
+ stat = asn1PD_H225GenericIdentifier (pctxt, &pvalue->id);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "id", -1);
+
+ /* decode parameters */
+
+ if (pvalue->m.parametersPresent) {
+ invokeStartElement (pctxt, "parameters", -1);
+
+ stat = asn1PD_H225GenericData_parameters (pctxt, &pvalue->parameters);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "parameters", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* FeatureDescriptor */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225FeatureDescriptor (OOCTXT* pctxt, H225FeatureDescriptor* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = asn1PD_H225GenericData (pctxt, pvalue);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* FastStartToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225FastStartToken (OOCTXT* pctxt, H225FastStartToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = asn1PD_H235ClearToken (pctxt, pvalue);
+ if (stat != ASN_OK) return stat;
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EncodedFastStartToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225EncodedFastStartToken (OOCTXT* pctxt, H225EncodedFastStartToken* pvalue)
+{
+ int stat = ASN_OK;
+
+ stat = decodeOpenType (pctxt, &pvalue->data, &pvalue->numocts);
+ if (stat != ASN_OK) return stat;
+ invokeOpenTypeValue
+ (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H323_UserInformation_user_data_user_information */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H323_UserInformation_user_data_user_information (OOCTXT* pctxt, H225H323_UserInformation_user_data_user_information* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 131, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EndpointType_set */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225EndpointType_set (OOCTXT* pctxt, H225EndpointType_set* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 32, 32, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeBitString (pctxt,
+ &pvalue->numbits,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->numbits, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* VendorIdentifier_productId */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225VendorIdentifier_productId (OOCTXT* pctxt, H225VendorIdentifier_productId* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* VendorIdentifier_versionId */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225VendorIdentifier_versionId (OOCTXT* pctxt, H225VendorIdentifier_versionId* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CicInfo_cic_element */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CicInfo_cic_element (OOCTXT* pctxt, H225CicInfo_cic_element* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 2, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CicInfo_pointCode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CicInfo_pointCode (OOCTXT* pctxt, H225CicInfo_pointCode* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 2, 5, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CarrierInfo_carrierIdentificationCode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CarrierInfo_carrierIdentificationCode (OOCTXT* pctxt, H225CarrierInfo_carrierIdentificationCode* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 3, 4, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallTerminationCause_releaseCompleteCauseIE */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallTerminationCause_releaseCompleteCauseIE (OOCTXT* pctxt, H225CallTerminationCause_releaseCompleteCauseIE* pvalue)
+{
+ static Asn1SizeCnst lsize1 = { 0, 2, 32, 0 };
+ int stat = ASN_OK;
+
+ addSizeConstraint (pctxt, &lsize1);
+
+ stat = decodeOctetString (pctxt,
+ &pvalue->numocts,
+ pvalue->data,
+ sizeof(pvalue->data));
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->numocts, pvalue->data);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225AliasAddress */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225AliasAddress (OOCTXT* pctxt, H225_SeqOfH225AliasAddress* pvalue)
+{
+ int stat = ASN_OK;
+ H225AliasAddress* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225AliasAddress);
+
+ stat = asn1PD_H225AliasAddress (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* VendorIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225VendorIdentifier (OOCTXT* pctxt, H225VendorIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.productIdPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.versionIdPresent = optbit;
+
+ /* decode vendor */
+
+ invokeStartElement (pctxt, "vendor", -1);
+
+ stat = asn1PD_H225H221NonStandard (pctxt, &pvalue->vendor);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "vendor", -1);
+
+ /* decode productId */
+
+ if (pvalue->m.productIdPresent) {
+ invokeStartElement (pctxt, "productId", -1);
+
+ stat = asn1PD_H225VendorIdentifier_productId (pctxt, &pvalue->productId);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "productId", -1);
+ }
+
+ /* decode versionId */
+
+ if (pvalue->m.versionIdPresent) {
+ invokeStartElement (pctxt, "versionId", -1);
+
+ stat = asn1PD_H225VendorIdentifier_versionId (pctxt, &pvalue->versionId);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "versionId", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 1 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.enterpriseNumberPresent = 1;
+
+ invokeStartElement (pctxt, "enterpriseNumber", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->enterpriseNumber);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->enterpriseNumber.numids, pvalue->enterpriseNumber.subid);
+
+ invokeEndElement (pctxt, "enterpriseNumber", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GatekeeperInfo */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GatekeeperInfo (OOCTXT* pctxt, H225GatekeeperInfo* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* DataRate */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225DataRate (OOCTXT* pctxt, H225DataRate* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.channelMultiplierPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode channelRate */
+
+ invokeStartElement (pctxt, "channelRate", -1);
+
+ stat = asn1PD_H225BandWidth (pctxt, &pvalue->channelRate);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "channelRate", -1);
+
+ /* decode channelMultiplier */
+
+ if (pvalue->m.channelMultiplierPresent) {
+ invokeStartElement (pctxt, "channelMultiplier", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->channelMultiplier, 1U, 256U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->channelMultiplier);
+
+ invokeEndElement (pctxt, "channelMultiplier", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225DataRate */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225DataRate (OOCTXT* pctxt, H225_SeqOfH225DataRate* pvalue)
+{
+ int stat = ASN_OK;
+ H225DataRate* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225DataRate);
+
+ stat = asn1PD_H225DataRate (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* SupportedPrefix */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225SupportedPrefix (OOCTXT* pctxt, H225SupportedPrefix* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode prefix */
+
+ invokeStartElement (pctxt, "prefix", -1);
+
+ stat = asn1PD_H225AliasAddress (pctxt, &pvalue->prefix);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "prefix", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225SupportedPrefix */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225SupportedPrefix (OOCTXT* pctxt, H225_SeqOfH225SupportedPrefix* pvalue)
+{
+ int stat = ASN_OK;
+ H225SupportedPrefix* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225SupportedPrefix);
+
+ stat = asn1PD_H225SupportedPrefix (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H310Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H310Caps (OOCTXT* pctxt, H225H310Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H320Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H320Caps (OOCTXT* pctxt, H225H320Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H321Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H321Caps (OOCTXT* pctxt, H225H321Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H322Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H322Caps (OOCTXT* pctxt, H225H322Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H323Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H323Caps (OOCTXT* pctxt, H225H323Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H324Caps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H324Caps (OOCTXT* pctxt, H225H324Caps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* VoiceCaps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225VoiceCaps (OOCTXT* pctxt, H225VoiceCaps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* T120OnlyCaps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225T120OnlyCaps (OOCTXT* pctxt, H225T120OnlyCaps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.dataRatesSupportedPresent = 1;
+
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedPrefixesPresent = 1;
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* NonStandardProtocol */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225NonStandardProtocol (OOCTXT* pctxt, H225NonStandardProtocol* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.dataRatesSupportedPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode dataRatesSupported */
+
+ if (pvalue->m.dataRatesSupportedPresent) {
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ }
+
+ /* decode supportedPrefixes */
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* T38FaxAnnexbOnlyCaps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225T38FaxAnnexbOnlyCaps (OOCTXT* pctxt, H225T38FaxAnnexbOnlyCaps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.dataRatesSupportedPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode dataRatesSupported */
+
+ if (pvalue->m.dataRatesSupportedPresent) {
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ }
+
+ /* decode supportedPrefixes */
+
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+
+ /* decode t38FaxProtocol */
+
+ invokeStartElement (pctxt, "t38FaxProtocol", -1);
+
+ stat = asn1PD_H245DataProtocolCapability (pctxt, &pvalue->t38FaxProtocol);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "t38FaxProtocol", -1);
+
+ /* decode t38FaxProfile */
+
+ invokeStartElement (pctxt, "t38FaxProfile", -1);
+
+ stat = asn1PD_H245T38FaxProfile (pctxt, &pvalue->t38FaxProfile);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "t38FaxProfile", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* SIPCaps */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225SIPCaps (OOCTXT* pctxt, H225SIPCaps* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.dataRatesSupportedPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.supportedPrefixesPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode dataRatesSupported */
+
+ if (pvalue->m.dataRatesSupportedPresent) {
+ invokeStartElement (pctxt, "dataRatesSupported", -1);
+
+ stat = asn1PD_H225_SeqOfH225DataRate (pctxt, &pvalue->dataRatesSupported);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "dataRatesSupported", -1);
+ }
+
+ /* decode supportedPrefixes */
+
+ if (pvalue->m.supportedPrefixesPresent) {
+ invokeStartElement (pctxt, "supportedPrefixes", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedPrefix (pctxt, &pvalue->supportedPrefixes);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedPrefixes", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* SupportedProtocols */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225SupportedProtocols (OOCTXT* pctxt, H225SupportedProtocols* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 8);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* nonStandardData */
+ case 0:
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ pvalue->u.nonStandardData = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+
+ break;
+
+ /* h310 */
+ case 1:
+ invokeStartElement (pctxt, "h310", -1);
+
+ pvalue->u.h310 = ALLOC_ASN1ELEM (pctxt, H225H310Caps);
+
+ stat = asn1PD_H225H310Caps (pctxt, pvalue->u.h310);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h310", -1);
+
+ break;
+
+ /* h320 */
+ case 2:
+ invokeStartElement (pctxt, "h320", -1);
+
+ pvalue->u.h320 = ALLOC_ASN1ELEM (pctxt, H225H320Caps);
+
+ stat = asn1PD_H225H320Caps (pctxt, pvalue->u.h320);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h320", -1);
+
+ break;
+
+ /* h321 */
+ case 3:
+ invokeStartElement (pctxt, "h321", -1);
+
+ pvalue->u.h321 = ALLOC_ASN1ELEM (pctxt, H225H321Caps);
+
+ stat = asn1PD_H225H321Caps (pctxt, pvalue->u.h321);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h321", -1);
+
+ break;
+
+ /* h322 */
+ case 4:
+ invokeStartElement (pctxt, "h322", -1);
+
+ pvalue->u.h322 = ALLOC_ASN1ELEM (pctxt, H225H322Caps);
+
+ stat = asn1PD_H225H322Caps (pctxt, pvalue->u.h322);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h322", -1);
+
+ break;
+
+ /* h323 */
+ case 5:
+ invokeStartElement (pctxt, "h323", -1);
+
+ pvalue->u.h323 = ALLOC_ASN1ELEM (pctxt, H225H323Caps);
+
+ stat = asn1PD_H225H323Caps (pctxt, pvalue->u.h323);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h323", -1);
+
+ break;
+
+ /* h324 */
+ case 6:
+ invokeStartElement (pctxt, "h324", -1);
+
+ pvalue->u.h324 = ALLOC_ASN1ELEM (pctxt, H225H324Caps);
+
+ stat = asn1PD_H225H324Caps (pctxt, pvalue->u.h324);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "h324", -1);
+
+ break;
+
+ /* voice */
+ case 7:
+ invokeStartElement (pctxt, "voice", -1);
+
+ pvalue->u.voice = ALLOC_ASN1ELEM (pctxt, H225VoiceCaps);
+
+ stat = asn1PD_H225VoiceCaps (pctxt, pvalue->u.voice);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "voice", -1);
+
+ break;
+
+ /* t120_only */
+ case 8:
+ invokeStartElement (pctxt, "t120_only", -1);
+
+ pvalue->u.t120_only = ALLOC_ASN1ELEM (pctxt, H225T120OnlyCaps);
+
+ stat = asn1PD_H225T120OnlyCaps (pctxt, pvalue->u.t120_only);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "t120_only", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 10;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ copyContext (&lctxt, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (pvalue->t) {
+ /* nonStandardProtocol */
+ case 10:
+ invokeStartElement (pctxt, "nonStandardProtocol", -1);
+
+ pvalue->u.nonStandardProtocol = ALLOC_ASN1ELEM (pctxt, H225NonStandardProtocol);
+
+ stat = asn1PD_H225NonStandardProtocol (pctxt, pvalue->u.nonStandardProtocol);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardProtocol", -1);
+
+ break;
+
+ /* t38FaxAnnexbOnly */
+ case 11:
+ invokeStartElement (pctxt, "t38FaxAnnexbOnly", -1);
+
+ pvalue->u.t38FaxAnnexbOnly = ALLOC_ASN1ELEM (pctxt, H225T38FaxAnnexbOnlyCaps);
+
+ stat = asn1PD_H225T38FaxAnnexbOnlyCaps (pctxt, pvalue->u.t38FaxAnnexbOnly);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "t38FaxAnnexbOnly", -1);
+
+ break;
+
+ /* sip */
+ case 12:
+ invokeStartElement (pctxt, "sip", -1);
+
+ pvalue->u.sip = ALLOC_ASN1ELEM (pctxt, H225SIPCaps);
+
+ stat = asn1PD_H225SIPCaps (pctxt, pvalue->u.sip);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "sip", -1);
+
+ break;
+
+ default:;
+ }
+
+ copyContext (pctxt, &lctxt);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225SupportedProtocols */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225SupportedProtocols (OOCTXT* pctxt, H225_SeqOfH225SupportedProtocols* pvalue)
+{
+ int stat = ASN_OK;
+ H225SupportedProtocols* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225SupportedProtocols);
+
+ stat = asn1PD_H225SupportedProtocols (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* GatewayInfo */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225GatewayInfo (OOCTXT* pctxt, H225GatewayInfo* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.protocolPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode protocol */
+
+ if (pvalue->m.protocolPresent) {
+ invokeStartElement (pctxt, "protocol", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedProtocols (pctxt, &pvalue->protocol);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "protocol", -1);
+ }
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* McuInfo */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225McuInfo (OOCTXT* pctxt, H225McuInfo* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 1 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.protocolPresent = 1;
+
+ invokeStartElement (pctxt, "protocol", -1);
+
+ stat = asn1PD_H225_SeqOfH225SupportedProtocols (pctxt, &pvalue->protocol);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "protocol", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TerminalInfo */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TerminalInfo (OOCTXT* pctxt, H225TerminalInfo* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TunnelledProtocolAlternateIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TunnelledProtocolAlternateIdentifier (OOCTXT* pctxt, H225TunnelledProtocolAlternateIdentifier* pvalue)
+{
+ static Asn1SizeCnst protocolType_lsize1 = { 0, 1, 64, 0 };
+ static Asn1SizeCnst protocolVariant_lsize1 = { 0, 1, 64, 0 };
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.protocolVariantPresent = optbit;
+
+ /* decode protocolType */
+
+ invokeStartElement (pctxt, "protocolType", -1);
+
+ addSizeConstraint (pctxt, &protocolType_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->protocolType, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->protocolType);
+
+ invokeEndElement (pctxt, "protocolType", -1);
+
+ /* decode protocolVariant */
+
+ if (pvalue->m.protocolVariantPresent) {
+ invokeStartElement (pctxt, "protocolVariant", -1);
+
+ addSizeConstraint (pctxt, &protocolVariant_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->protocolVariant, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->protocolVariant);
+
+ invokeEndElement (pctxt, "protocolVariant", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TunnelledProtocol_id */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TunnelledProtocol_id (OOCTXT* pctxt, H225TunnelledProtocol_id* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* tunnelledProtocolObjectID */
+ case 0:
+ invokeStartElement (pctxt, "tunnelledProtocolObjectID", -1);
+
+ pvalue->u.tunnelledProtocolObjectID = ALLOC_ASN1ELEM (pctxt, ASN1OBJID);
+
+ stat = decodeObjectIdentifier (pctxt, pvalue->u.tunnelledProtocolObjectID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->u.tunnelledProtocolObjectID->numids, pvalue->u.tunnelledProtocolObjectID->subid);
+
+ invokeEndElement (pctxt, "tunnelledProtocolObjectID", -1);
+
+ break;
+
+ /* tunnelledProtocolAlternateID */
+ case 1:
+ invokeStartElement (pctxt, "tunnelledProtocolAlternateID", -1);
+
+ pvalue->u.tunnelledProtocolAlternateID = ALLOC_ASN1ELEM (pctxt, H225TunnelledProtocolAlternateIdentifier);
+
+ stat = asn1PD_H225TunnelledProtocolAlternateIdentifier (pctxt, pvalue->u.tunnelledProtocolAlternateID);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "tunnelledProtocolAlternateID", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* TunnelledProtocol */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225TunnelledProtocol (OOCTXT* pctxt, H225TunnelledProtocol* pvalue)
+{
+ static Asn1SizeCnst subIdentifier_lsize1 = { 0, 1, 64, 0 };
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.subIdentifierPresent = optbit;
+
+ /* decode id */
+
+ invokeStartElement (pctxt, "id", -1);
+
+ stat = asn1PD_H225TunnelledProtocol_id (pctxt, &pvalue->id);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "id", -1);
+
+ /* decode subIdentifier */
+
+ if (pvalue->m.subIdentifierPresent) {
+ invokeStartElement (pctxt, "subIdentifier", -1);
+
+ addSizeConstraint (pctxt, &subIdentifier_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->subIdentifier, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->subIdentifier);
+
+ invokeEndElement (pctxt, "subIdentifier", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225TunnelledProtocol */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225TunnelledProtocol (OOCTXT* pctxt, H225_SeqOfH225TunnelledProtocol* pvalue)
+{
+ int stat = ASN_OK;
+ H225TunnelledProtocol* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225TunnelledProtocol);
+
+ stat = asn1PD_H225TunnelledProtocol (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* EndpointType */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225EndpointType (OOCTXT* pctxt, H225EndpointType* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ OOCTXT lctxt2;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardDataPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.vendorPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.gatekeeperPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.gatewayPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.mcuPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.terminalPresent = optbit;
+
+ /* decode nonStandardData */
+
+ if (pvalue->m.nonStandardDataPresent) {
+ invokeStartElement (pctxt, "nonStandardData", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandardData);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandardData", -1);
+ }
+
+ /* decode vendor */
+
+ if (pvalue->m.vendorPresent) {
+ invokeStartElement (pctxt, "vendor", -1);
+
+ stat = asn1PD_H225VendorIdentifier (pctxt, &pvalue->vendor);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "vendor", -1);
+ }
+
+ /* decode gatekeeper */
+
+ if (pvalue->m.gatekeeperPresent) {
+ invokeStartElement (pctxt, "gatekeeper", -1);
+
+ stat = asn1PD_H225GatekeeperInfo (pctxt, &pvalue->gatekeeper);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "gatekeeper", -1);
+ }
+
+ /* decode gateway */
+
+ if (pvalue->m.gatewayPresent) {
+ invokeStartElement (pctxt, "gateway", -1);
+
+ stat = asn1PD_H225GatewayInfo (pctxt, &pvalue->gateway);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "gateway", -1);
+ }
+
+ /* decode mcu */
+
+ if (pvalue->m.mcuPresent) {
+ invokeStartElement (pctxt, "mcu", -1);
+
+ stat = asn1PD_H225McuInfo (pctxt, &pvalue->mcu);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "mcu", -1);
+ }
+
+ /* decode terminal */
+
+ if (pvalue->m.terminalPresent) {
+ invokeStartElement (pctxt, "terminal", -1);
+
+ stat = asn1PD_H225TerminalInfo (pctxt, &pvalue->terminal);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "terminal", -1);
+ }
+
+ /* decode mc */
+
+ invokeStartElement (pctxt, "mc", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->mc);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->mc);
+
+ invokeEndElement (pctxt, "mc", -1);
+
+ /* decode undefinedNode */
+
+ invokeStartElement (pctxt, "undefinedNode", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->undefinedNode);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->undefinedNode);
+
+ invokeEndElement (pctxt, "undefinedNode", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ if (i < 2 && openType.numocts > 0) { /* known element */
+ copyContext (&lctxt2, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (i) {
+ case 0:
+ pvalue->m.setPresent = 1;
+
+ invokeStartElement (pctxt, "set", -1);
+
+ stat = asn1PD_H225EndpointType_set (pctxt, &pvalue->set);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "set", -1);
+ break;
+
+ case 1:
+ pvalue->m.supportedTunnelledProtocolsPresent = 1;
+
+ invokeStartElement (pctxt, "supportedTunnelledProtocols", -1);
+
+ stat = asn1PD_H225_SeqOfH225TunnelledProtocol (pctxt, &pvalue->supportedTunnelledProtocols);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "supportedTunnelledProtocols", -1);
+ break;
+
+ default:
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ copyContext (pctxt, &lctxt2);
+ }
+ else { /* unknown element */
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CallReferenceValue */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225CallReferenceValue (OOCTXT* pctxt, H225_SeqOfH225CallReferenceValue* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ stat = decodeLength (pctxt, &pvalue->n);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ ALLOC_ASN1ARRAY (pctxt, pvalue, H225CallReferenceValue);
+
+ for (xx1 = 0; xx1 < pvalue->n; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ stat = asn1PD_H225CallReferenceValue (pctxt, &pvalue->elem[xx1]);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_conferenceGoal */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Setup_UUIE_conferenceGoal (OOCTXT* pctxt, H225Setup_UUIE_conferenceGoal* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+ OOCTXT lctxt;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 2);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* create */
+ case 0:
+ invokeStartElement (pctxt, "create", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "create", -1);
+
+ break;
+
+ /* join */
+ case 1:
+ invokeStartElement (pctxt, "join", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "join", -1);
+
+ break;
+
+ /* invite */
+ case 2:
+ invokeStartElement (pctxt, "invite", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "invite", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 4;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ copyContext (&lctxt, pctxt);
+ initContextBuffer (pctxt, openType.data, openType.numocts);
+
+ switch (pvalue->t) {
+ /* capability_negotiation */
+ case 4:
+ invokeStartElement (pctxt, "capability_negotiation", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "capability_negotiation", -1);
+
+ break;
+
+ /* callIndependentSupplementaryService */
+ case 5:
+ invokeStartElement (pctxt, "callIndependentSupplementaryService", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "callIndependentSupplementaryService", -1);
+
+ break;
+
+ default:;
+ }
+
+ copyContext (pctxt, &lctxt);
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Q954Details */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Q954Details (OOCTXT* pctxt, H225Q954Details* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode conferenceCalling */
+
+ invokeStartElement (pctxt, "conferenceCalling", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->conferenceCalling);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->conferenceCalling);
+
+ invokeEndElement (pctxt, "conferenceCalling", -1);
+
+ /* decode threePartyService */
+
+ invokeStartElement (pctxt, "threePartyService", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->threePartyService);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->threePartyService);
+
+ invokeEndElement (pctxt, "threePartyService", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* QseriesOptions */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225QseriesOptions (OOCTXT* pctxt, H225QseriesOptions* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode q932Full */
+
+ invokeStartElement (pctxt, "q932Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q932Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q932Full);
+
+ invokeEndElement (pctxt, "q932Full", -1);
+
+ /* decode q951Full */
+
+ invokeStartElement (pctxt, "q951Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q951Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q951Full);
+
+ invokeEndElement (pctxt, "q951Full", -1);
+
+ /* decode q952Full */
+
+ invokeStartElement (pctxt, "q952Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q952Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q952Full);
+
+ invokeEndElement (pctxt, "q952Full", -1);
+
+ /* decode q953Full */
+
+ invokeStartElement (pctxt, "q953Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q953Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q953Full);
+
+ invokeEndElement (pctxt, "q953Full", -1);
+
+ /* decode q955Full */
+
+ invokeStartElement (pctxt, "q955Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q955Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q955Full);
+
+ invokeEndElement (pctxt, "q955Full", -1);
+
+ /* decode q956Full */
+
+ invokeStartElement (pctxt, "q956Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q956Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q956Full);
+
+ invokeEndElement (pctxt, "q956Full", -1);
+
+ /* decode q957Full */
+
+ invokeStartElement (pctxt, "q957Full", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->q957Full);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->q957Full);
+
+ invokeEndElement (pctxt, "q957Full", -1);
+
+ /* decode q954Info */
+
+ invokeStartElement (pctxt, "q954Info", -1);
+
+ stat = asn1PD_H225Q954Details (pctxt, &pvalue->q954Info);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "q954Info", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallType */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallType (OOCTXT* pctxt, H225CallType* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 3);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* pointToPoint */
+ case 0:
+ invokeStartElement (pctxt, "pointToPoint", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "pointToPoint", -1);
+
+ break;
+
+ /* oneToN */
+ case 1:
+ invokeStartElement (pctxt, "oneToN", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "oneToN", -1);
+
+ break;
+
+ /* nToOne */
+ case 2:
+ invokeStartElement (pctxt, "nToOne", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "nToOne", -1);
+
+ break;
+
+ /* nToN */
+ case 3:
+ invokeStartElement (pctxt, "nToN", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "nToN", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 5;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallIdentifier */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallIdentifier (OOCTXT* pctxt, H225CallIdentifier* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode guid */
+
+ invokeStartElement (pctxt, "guid", -1);
+
+ stat = asn1PD_H225GloballyUniqueID (pctxt, &pvalue->guid);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "guid", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* SecurityServiceMode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225SecurityServiceMode (OOCTXT* pctxt, H225SecurityServiceMode* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 2);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* nonStandard */
+ case 0:
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+
+ break;
+
+ /* none */
+ case 1:
+ invokeStartElement (pctxt, "none", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "none", -1);
+
+ break;
+
+ /* default_ */
+ case 2:
+ invokeStartElement (pctxt, "default_", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "default_", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 4;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* SecurityCapabilities */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225SecurityCapabilities (OOCTXT* pctxt, H225SecurityCapabilities* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.nonStandardPresent = optbit;
+
+ /* decode nonStandard */
+
+ if (pvalue->m.nonStandardPresent) {
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, &pvalue->nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+ }
+
+ /* decode encryption */
+
+ invokeStartElement (pctxt, "encryption", -1);
+
+ stat = asn1PD_H225SecurityServiceMode (pctxt, &pvalue->encryption);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "encryption", -1);
+
+ /* decode authenticaton */
+
+ invokeStartElement (pctxt, "authenticaton", -1);
+
+ stat = asn1PD_H225SecurityServiceMode (pctxt, &pvalue->authenticaton);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "authenticaton", -1);
+
+ /* decode integrity */
+
+ invokeStartElement (pctxt, "integrity", -1);
+
+ stat = asn1PD_H225SecurityServiceMode (pctxt, &pvalue->integrity);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "integrity", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* H245Security */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225H245Security (OOCTXT* pctxt, H225H245Security* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 3);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* nonStandard */
+ case 0:
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+
+ break;
+
+ /* noSecurity */
+ case 1:
+ invokeStartElement (pctxt, "noSecurity", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "noSecurity", -1);
+
+ break;
+
+ /* tls */
+ case 2:
+ invokeStartElement (pctxt, "tls", -1);
+
+ pvalue->u.tls = ALLOC_ASN1ELEM (pctxt, H225SecurityCapabilities);
+
+ stat = asn1PD_H225SecurityCapabilities (pctxt, pvalue->u.tls);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "tls", -1);
+
+ break;
+
+ /* ipsec */
+ case 3:
+ invokeStartElement (pctxt, "ipsec", -1);
+
+ pvalue->u.ipsec = ALLOC_ASN1ELEM (pctxt, H225SecurityCapabilities);
+
+ stat = asn1PD_H225SecurityCapabilities (pctxt, pvalue->u.ipsec);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "ipsec", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 5;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225H245Security */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225H245Security (OOCTXT* pctxt, H225_SeqOfH225H245Security* pvalue)
+{
+ int stat = ASN_OK;
+ H225H245Security* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225H245Security);
+
+ stat = asn1PD_H225H245Security (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225ClearToken */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225ClearToken (OOCTXT* pctxt, H225_SeqOfH225ClearToken* pvalue)
+{
+ int stat = ASN_OK;
+ H235ClearToken* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H235ClearToken);
+
+ stat = asn1PD_H235ClearToken (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoEPPwdHash */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoEPPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPPwdHash* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode alias */
+
+ invokeStartElement (pctxt, "alias", -1);
+
+ stat = asn1PD_H225AliasAddress (pctxt, &pvalue->alias);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "alias", -1);
+
+ /* decode timeStamp */
+
+ invokeStartElement (pctxt, "timeStamp", -1);
+
+ stat = asn1PD_H235TimeStamp (pctxt, &pvalue->timeStamp);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "timeStamp", -1);
+
+ /* decode token */
+
+ invokeStartElement (pctxt, "token", -1);
+
+ stat = asn1PD_H235HASHED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "token", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoGKPwdHash */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoGKPwdHash (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKPwdHash* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode gatekeeperId */
+
+ invokeStartElement (pctxt, "gatekeeperId", -1);
+
+ stat = asn1PD_H225GatekeeperIdentifier (pctxt, &pvalue->gatekeeperId);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "gatekeeperId", -1);
+
+ /* decode timeStamp */
+
+ invokeStartElement (pctxt, "timeStamp", -1);
+
+ stat = asn1PD_H235TimeStamp (pctxt, &pvalue->timeStamp);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "timeStamp", -1);
+
+ /* decode token */
+
+ invokeStartElement (pctxt, "token", -1);
+
+ stat = asn1PD_H235HASHED (pctxt, &pvalue->token);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "token", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoEPCert */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoEPCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoEPCert* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode toBeSigned */
+
+ invokeStartElement (pctxt, "toBeSigned", -1);
+
+ stat = asn1PD_H235EncodedPwdCertToken (pctxt, &pvalue->toBeSigned);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "toBeSigned", -1);
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode signature */
+
+ invokeStartElement (pctxt, "signature", -1);
+
+ stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->signature);
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->signature.numbits, pvalue->signature.data);
+
+ invokeEndElement (pctxt, "signature", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoGKCert */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoGKCert (OOCTXT* pctxt, H225CryptoH323Token_cryptoGKCert* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode toBeSigned */
+
+ invokeStartElement (pctxt, "toBeSigned", -1);
+
+ stat = asn1PD_H235EncodedPwdCertToken (pctxt, &pvalue->toBeSigned);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "toBeSigned", -1);
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode signature */
+
+ invokeStartElement (pctxt, "signature", -1);
+
+ stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->signature);
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->signature.numbits, pvalue->signature.data);
+
+ invokeEndElement (pctxt, "signature", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token_cryptoFastStart */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token_cryptoFastStart (OOCTXT* pctxt, H225CryptoH323Token_cryptoFastStart* pvalue)
+{
+ int stat = ASN_OK;
+
+ /* decode toBeSigned */
+
+ invokeStartElement (pctxt, "toBeSigned", -1);
+
+ stat = asn1PD_H225EncodedFastStartToken (pctxt, &pvalue->toBeSigned);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "toBeSigned", -1);
+
+ /* decode algorithmOID */
+
+ invokeStartElement (pctxt, "algorithmOID", -1);
+
+ stat = decodeObjectIdentifier (pctxt, &pvalue->algorithmOID);
+ if (stat != ASN_OK) return stat;
+ invokeOidValue (pctxt, pvalue->algorithmOID.numids, pvalue->algorithmOID.subid);
+
+ invokeEndElement (pctxt, "algorithmOID", -1);
+
+ /* decode paramS */
+
+ invokeStartElement (pctxt, "paramS", -1);
+
+ stat = asn1PD_H235Params (pctxt, &pvalue->paramS);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "paramS", -1);
+
+ /* decode signature */
+
+ invokeStartElement (pctxt, "signature", -1);
+
+ stat = decodeDynBitString (pctxt, (ASN1DynBitStr*)&pvalue->signature);
+ if (stat != ASN_OK) return stat;
+
+ invokeBitStrValue (pctxt, pvalue->signature.numbits, pvalue->signature.data);
+
+ invokeEndElement (pctxt, "signature", -1);
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CryptoH323Token */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CryptoH323Token (OOCTXT* pctxt, H225CryptoH323Token* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 7);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* cryptoEPPwdHash */
+ case 0:
+ invokeStartElement (pctxt, "cryptoEPPwdHash", -1);
+
+ pvalue->u.cryptoEPPwdHash = ALLOC_ASN1ELEM (pctxt, H225CryptoH323Token_cryptoEPPwdHash);
+
+ stat = asn1PD_H225CryptoH323Token_cryptoEPPwdHash (pctxt, pvalue->u.cryptoEPPwdHash);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoEPPwdHash", -1);
+
+ break;
+
+ /* cryptoGKPwdHash */
+ case 1:
+ invokeStartElement (pctxt, "cryptoGKPwdHash", -1);
+
+ pvalue->u.cryptoGKPwdHash = ALLOC_ASN1ELEM (pctxt, H225CryptoH323Token_cryptoGKPwdHash);
+
+ stat = asn1PD_H225CryptoH323Token_cryptoGKPwdHash (pctxt, pvalue->u.cryptoGKPwdHash);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoGKPwdHash", -1);
+
+ break;
+
+ /* cryptoEPPwdEncr */
+ case 2:
+ invokeStartElement (pctxt, "cryptoEPPwdEncr", -1);
+
+ pvalue->u.cryptoEPPwdEncr = ALLOC_ASN1ELEM (pctxt, H235ENCRYPTED);
+
+ stat = asn1PD_H235ENCRYPTED (pctxt, pvalue->u.cryptoEPPwdEncr);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoEPPwdEncr", -1);
+
+ break;
+
+ /* cryptoGKPwdEncr */
+ case 3:
+ invokeStartElement (pctxt, "cryptoGKPwdEncr", -1);
+
+ pvalue->u.cryptoGKPwdEncr = ALLOC_ASN1ELEM (pctxt, H235ENCRYPTED);
+
+ stat = asn1PD_H235ENCRYPTED (pctxt, pvalue->u.cryptoGKPwdEncr);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoGKPwdEncr", -1);
+
+ break;
+
+ /* cryptoEPCert */
+ case 4:
+ invokeStartElement (pctxt, "cryptoEPCert", -1);
+
+ pvalue->u.cryptoEPCert = ALLOC_ASN1ELEM (pctxt, H225CryptoH323Token_cryptoEPCert);
+
+ stat = asn1PD_H225CryptoH323Token_cryptoEPCert (pctxt, pvalue->u.cryptoEPCert);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoEPCert", -1);
+
+ break;
+
+ /* cryptoGKCert */
+ case 5:
+ invokeStartElement (pctxt, "cryptoGKCert", -1);
+
+ pvalue->u.cryptoGKCert = ALLOC_ASN1ELEM (pctxt, H225CryptoH323Token_cryptoGKCert);
+
+ stat = asn1PD_H225CryptoH323Token_cryptoGKCert (pctxt, pvalue->u.cryptoGKCert);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoGKCert", -1);
+
+ break;
+
+ /* cryptoFastStart */
+ case 6:
+ invokeStartElement (pctxt, "cryptoFastStart", -1);
+
+ pvalue->u.cryptoFastStart = ALLOC_ASN1ELEM (pctxt, H225CryptoH323Token_cryptoFastStart);
+
+ stat = asn1PD_H225CryptoH323Token_cryptoFastStart (pctxt, pvalue->u.cryptoFastStart);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "cryptoFastStart", -1);
+
+ break;
+
+ /* nestedcryptoToken */
+ case 7:
+ invokeStartElement (pctxt, "nestedcryptoToken", -1);
+
+ pvalue->u.nestedcryptoToken = ALLOC_ASN1ELEM (pctxt, H235CryptoToken);
+
+ stat = asn1PD_H235CryptoToken (pctxt, pvalue->u.nestedcryptoToken);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nestedcryptoToken", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 9;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* _SeqOfH225CryptoH323Token */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225_SeqOfH225CryptoH323Token (OOCTXT* pctxt, H225_SeqOfH225CryptoH323Token* pvalue)
+{
+ int stat = ASN_OK;
+ H225CryptoH323Token* pdata;
+ ASN1UINT count = 0;
+ ASN1UINT xx1;
+ int lstat;
+
+ dListInit (pvalue);
+
+ for (;;) {
+ /* decode length determinant */
+
+ lstat = decodeLength (pctxt, &count);
+ if (lstat != ASN_OK && lstat != ASN_OK_FRAG) {
+ return lstat;
+ }
+
+ /* decode elements */
+
+ for (xx1 = 0; xx1 < count; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ pdata = ALLOC_ASN1ELEMDNODE (pctxt, H225CryptoH323Token);
+
+ stat = asn1PD_H225CryptoH323Token (pctxt, pdata);
+ if (stat != ASN_OK) return stat;
+ invokeEndElement (pctxt, "elem", xx1);
+
+ dListAppendNode (pctxt, pvalue, pdata);
+ }
+
+ if(lstat == ASN_OK) break;
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_fastStart */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Setup_UUIE_fastStart (OOCTXT* pctxt, H225Setup_UUIE_fastStart* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ stat = decodeLength (pctxt, &pvalue->n);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ ALLOC_ASN1ARRAY (pctxt, pvalue, ASN1DynOctStr);
+
+ for (xx1 = 0; xx1 < pvalue->n; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ stat = decodeDynOctetString (pctxt, (ASN1DynOctStr*)&pvalue->elem[xx1]);
+ if (stat != ASN_OK) return stat;
+ invokeOctStrValue (pctxt, pvalue->elem[xx1].numocts, pvalue->elem[xx1].data);
+ invokeEndElement (pctxt, "elem", xx1);
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ScnConnectionType */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ScnConnectionType (OOCTXT* pctxt, H225ScnConnectionType* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 6);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* unknown */
+ case 0:
+ invokeStartElement (pctxt, "unknown", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "unknown", -1);
+
+ break;
+
+ /* bChannel */
+ case 1:
+ invokeStartElement (pctxt, "bChannel", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "bChannel", -1);
+
+ break;
+
+ /* hybrid2x64 */
+ case 2:
+ invokeStartElement (pctxt, "hybrid2x64", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "hybrid2x64", -1);
+
+ break;
+
+ /* hybrid384 */
+ case 3:
+ invokeStartElement (pctxt, "hybrid384", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "hybrid384", -1);
+
+ break;
+
+ /* hybrid1536 */
+ case 4:
+ invokeStartElement (pctxt, "hybrid1536", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "hybrid1536", -1);
+
+ break;
+
+ /* hybrid1920 */
+ case 5:
+ invokeStartElement (pctxt, "hybrid1920", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "hybrid1920", -1);
+
+ break;
+
+ /* multirate */
+ case 6:
+ invokeStartElement (pctxt, "multirate", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "multirate", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 8;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ScnConnectionAggregation */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ScnConnectionAggregation (OOCTXT* pctxt, H225ScnConnectionAggregation* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 5);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* auto_ */
+ case 0:
+ invokeStartElement (pctxt, "auto_", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "auto_", -1);
+
+ break;
+
+ /* none */
+ case 1:
+ invokeStartElement (pctxt, "none", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "none", -1);
+
+ break;
+
+ /* h221 */
+ case 2:
+ invokeStartElement (pctxt, "h221", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "h221", -1);
+
+ break;
+
+ /* bonded_mode1 */
+ case 3:
+ invokeStartElement (pctxt, "bonded_mode1", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "bonded_mode1", -1);
+
+ break;
+
+ /* bonded_mode2 */
+ case 4:
+ invokeStartElement (pctxt, "bonded_mode2", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "bonded_mode2", -1);
+
+ break;
+
+ /* bonded_mode3 */
+ case 5:
+ invokeStartElement (pctxt, "bonded_mode3", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "bonded_mode3", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 7;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_connectionParameters */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Setup_UUIE_connectionParameters (OOCTXT* pctxt, H225Setup_UUIE_connectionParameters* pvalue)
+{
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* decode connectionType */
+
+ invokeStartElement (pctxt, "connectionType", -1);
+
+ stat = asn1PD_H225ScnConnectionType (pctxt, &pvalue->connectionType);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "connectionType", -1);
+
+ /* decode numberOfScnConnections */
+
+ invokeStartElement (pctxt, "numberOfScnConnections", -1);
+
+ stat = decodeConsUInt16 (pctxt, &pvalue->numberOfScnConnections, 0U, 65535U);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->numberOfScnConnections);
+
+ invokeEndElement (pctxt, "numberOfScnConnections", -1);
+
+ /* decode connectionAggregation */
+
+ invokeStartElement (pctxt, "connectionAggregation", -1);
+
+ stat = asn1PD_H225ScnConnectionAggregation (pctxt, &pvalue->connectionAggregation);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "connectionAggregation", -1);
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* Setup_UUIE_language */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225Setup_UUIE_language (OOCTXT* pctxt, H225Setup_UUIE_language* pvalue)
+{
+ static Asn1SizeCnst element_lsize1 = { 0, 1, 32, 0 };
+ int stat = ASN_OK;
+ ASN1UINT xx1;
+
+ /* decode length determinant */
+
+ stat = decodeLength (pctxt, &pvalue->n);
+ if (stat != ASN_OK) return stat;
+
+ /* decode elements */
+
+ ALLOC_ASN1ARRAY (pctxt, pvalue, ASN1IA5String);
+
+ for (xx1 = 0; xx1 < pvalue->n; xx1++) {
+ invokeStartElement (pctxt, "elem", xx1);
+
+ addSizeConstraint (pctxt, &element_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->elem[xx1], 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->elem[xx1]);
+ invokeEndElement (pctxt, "elem", xx1);
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* PresentationIndicator */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225PresentationIndicator (OOCTXT* pctxt, H225PresentationIndicator* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 2);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* presentationAllowed */
+ case 0:
+ invokeStartElement (pctxt, "presentationAllowed", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "presentationAllowed", -1);
+
+ break;
+
+ /* presentationRestricted */
+ case 1:
+ invokeStartElement (pctxt, "presentationRestricted", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "presentationRestricted", -1);
+
+ break;
+
+ /* addressNotAvailable */
+ case 2:
+ invokeStartElement (pctxt, "addressNotAvailable", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "addressNotAvailable", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 4;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl_billingMode */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallCreditServiceControl_billingMode (OOCTXT* pctxt, H225CallCreditServiceControl_billingMode* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* credit */
+ case 0:
+ invokeStartElement (pctxt, "credit", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "credit", -1);
+
+ break;
+
+ /* debit */
+ case 1:
+ invokeStartElement (pctxt, "debit", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "debit", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl_callStartingPoint */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallCreditServiceControl_callStartingPoint (OOCTXT* pctxt, H225CallCreditServiceControl_callStartingPoint* pvalue)
+{
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 1);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* alerting */
+ case 0:
+ invokeStartElement (pctxt, "alerting", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "alerting", -1);
+
+ break;
+
+ /* connect */
+ case 1:
+ invokeStartElement (pctxt, "connect", -1);
+
+ /* NULL */
+ invokeNullValue (pctxt);
+
+ invokeEndElement (pctxt, "connect", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = decodeSmallNonNegWholeNumber (pctxt, &ui);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 3;
+
+ stat = decodeByteAlign (pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* CallCreditServiceControl */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225CallCreditServiceControl (OOCTXT* pctxt, H225CallCreditServiceControl* pvalue)
+{
+ static Asn1SizeCnst amountString_lsize1 = { 0, 1, 512, 0 };
+ int stat = ASN_OK;
+ OOCTXT lctxt;
+ ASN1OpenType openType;
+ ASN1UINT bitcnt;
+ ASN1UINT i;
+ ASN1BOOL optbit;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ /* optional bits */
+
+ memset (&pvalue->m, 0, sizeof(pvalue->m));
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.amountStringPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.billingModePresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.callDurationLimitPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.enforceCallDurationLimitPresent = optbit;
+
+ DECODEBIT (pctxt, &optbit);
+ pvalue->m.callStartingPointPresent = optbit;
+
+ /* decode amountString */
+
+ if (pvalue->m.amountStringPresent) {
+ invokeStartElement (pctxt, "amountString", -1);
+
+ addSizeConstraint (pctxt, &amountString_lsize1);
+
+ stat = decodeBMPString (pctxt, &pvalue->amountString, 0);
+ if (stat != ASN_OK) return stat;
+ invokeCharStr16BitValue (pctxt, pvalue->amountString.nchars, pvalue->amountString.data);
+
+ invokeEndElement (pctxt, "amountString", -1);
+ }
+
+ /* decode billingMode */
+
+ if (pvalue->m.billingModePresent) {
+ invokeStartElement (pctxt, "billingMode", -1);
+
+ stat = asn1PD_H225CallCreditServiceControl_billingMode (pctxt, &pvalue->billingMode);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "billingMode", -1);
+ }
+
+ /* decode callDurationLimit */
+
+ if (pvalue->m.callDurationLimitPresent) {
+ invokeStartElement (pctxt, "callDurationLimit", -1);
+
+ stat = decodeConsUnsigned (pctxt, &pvalue->callDurationLimit, 1U, ASN1UINT_MAX);
+ if (stat != ASN_OK) return stat;
+ invokeUIntValue (pctxt, pvalue->callDurationLimit);
+
+ invokeEndElement (pctxt, "callDurationLimit", -1);
+ }
+
+ /* decode enforceCallDurationLimit */
+
+ if (pvalue->m.enforceCallDurationLimitPresent) {
+ invokeStartElement (pctxt, "enforceCallDurationLimit", -1);
+
+ stat = DECODEBIT (pctxt, &pvalue->enforceCallDurationLimit);
+ if (stat != ASN_OK) return stat;
+ invokeBoolValue (pctxt, pvalue->enforceCallDurationLimit);
+
+ invokeEndElement (pctxt, "enforceCallDurationLimit", -1);
+ }
+
+ /* decode callStartingPoint */
+
+ if (pvalue->m.callStartingPointPresent) {
+ invokeStartElement (pctxt, "callStartingPoint", -1);
+
+ stat = asn1PD_H225CallCreditServiceControl_callStartingPoint (pctxt, &pvalue->callStartingPoint);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "callStartingPoint", -1);
+ }
+
+ if (extbit) {
+
+ /* decode extension optional bits length */
+
+ stat = decodeSmallNonNegWholeNumber (pctxt, &bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ bitcnt += 1;
+
+ ZEROCONTEXT (&lctxt);
+ stat = setPERBufferUsingCtxt (&lctxt, pctxt);
+ if (stat != ASN_OK) return stat;
+
+ stat = moveBitCursor (pctxt, bitcnt);
+ if (stat != ASN_OK) return stat;
+
+ for (i = 0; i < bitcnt; i++) {
+ DECODEBIT (&lctxt, &optbit);
+
+ if (optbit) {
+ stat = decodeOpenType (pctxt, &openType.data, &openType.numocts);
+ if (stat != ASN_OK) return stat;
+
+ pctxt->buffer.byteIndex += openType.numocts;
+ }
+ }
+ }
+
+ return (stat);
+}
+
+/**************************************************************/
+/* */
+/* ServiceControlDescriptor */
+/* */
+/**************************************************************/
+
+EXTERN int asn1PD_H225ServiceControlDescriptor (OOCTXT* pctxt, H225ServiceControlDescriptor* pvalue)
+{
+ static Asn1SizeCnst url_lsize1 = { 0, 0, 512, 0 };
+ int stat = ASN_OK;
+ ASN1UINT ui;
+ ASN1OpenType openType;
+ ASN1BOOL extbit;
+
+ /* extension bit */
+
+ DECODEBIT (pctxt, &extbit);
+
+ if (!extbit) {
+ stat = decodeConsUnsigned (pctxt, &ui, 0, 3);
+ if (stat != ASN_OK) return stat;
+ else pvalue->t = ui + 1;
+
+ switch (ui) {
+ /* url */
+ case 0:
+ invokeStartElement (pctxt, "url", -1);
+
+ addSizeConstraint (pctxt, &url_lsize1);
+
+ stat = decodeConstrainedStringEx (pctxt, &pvalue->u.url, 0, 8, 7, 7);
+ if (stat != ASN_OK) return stat;
+ invokeCharStrValue (pctxt, pvalue->u.url);
+
+ invokeEndElement (pctxt, "url", -1);
+
+ break;
+
+ /* signal */
+ case 1:
+ invokeStartElement (pctxt, "signal", -1);
+
+ pvalue->u.signal = ALLOC_ASN1ELEM (pctxt, H225H248SignalsDescriptor);
+
+ stat = asn1PD_H225H248SignalsDescriptor (pctxt, pvalue->u.signal);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "signal", -1);
+
+ break;
+
+ /* nonStandard */
+ case 2:
+ invokeStartElement (pctxt, "nonStandard", -1);
+
+ pvalue->u.nonStandard = ALLOC_ASN1ELEM (pctxt, H225NonStandardParameter);
+
+ stat = asn1PD_H225NonStandardParameter (pctxt, pvalue->u.nonStandard);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "nonStandard", -1);
+
+ break;
+
+ /* callCreditServiceControl */
+ case 3:
+ invokeStartElement (pctxt, "callCreditServiceControl", -1);
+
+ pvalue->u.callCreditServiceControl = ALLOC_ASN1ELEM (pctxt, H225CallCreditServiceControl);
+
+ stat = asn1PD_H225CallCreditServiceControl (pctxt, pvalue->u.callCreditServiceControl);
+ if (stat != ASN_OK) return stat;
+
+ invokeEndElement (pctxt, "callCreditServiceControl", -1);
+
+ break;
+
+ default:
+ return ASN_E_INVOPT;
+ }
+ }
+ else {
+ stat = dec