/* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007
 *
 * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
 *
 * This source code is licensed under General Public License version 2.
 */

static field_t _TransportAddress_ipAddress[] = {	/* SEQUENCE */
	{FNAME("ip") OCTSTR, FIXD, 4, 0, DECODE,
	 offsetof(TransportAddress_ipAddress, ip), NULL},
	{FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _TransportAddress_ipSourceRoute_route[] = {	/* SEQUENCE OF */
	{FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
};

static field_t _TransportAddress_ipSourceRoute_routing[] = {	/* CHOICE */
	{FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _TransportAddress_ipSourceRoute[] = {	/* SEQUENCE */
	{FNAME("ip") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
	{FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
	 _TransportAddress_ipSourceRoute_route},
	{FNAME("routing") CHOICE, 1, 2, 2, SKIP | EXT, 0,
	 _TransportAddress_ipSourceRoute_routing},
};

static field_t _TransportAddress_ipxAddress[] = {	/* SEQUENCE */
	{FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
	{FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
	{FNAME("port") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
};

static field_t _TransportAddress_ip6Address[] = {	/* SEQUENCE */
	{FNAME("ip") OCTSTR, FIXD, 16, 0, DECODE,
	 offsetof(TransportAddress_ip6Address, ip), NULL},
	{FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _H221NonStandard[] = {	/* SEQUENCE */
	{FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _NonStandardIdentifier[] = {	/* CHOICE */
	{FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP | EXT, 0,
	 _H221NonStandard},
};

static field_t _NonStandardParameter[] = {	/* SEQUENCE */
	{FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP | EXT, 0,
	 _NonStandardIdentifier},
	{FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _TransportAddress[] = {	/* CHOICE */
	{FNAME("ipAddress") SEQ, 0, 2, 2, DECODE,
	 offsetof(TransportAddress, ipAddress), _TransportAddress_ipAddress},
	{FNAME("ipSourceRoute") SEQ, 0, 4, 4, SKIP | EXT, 0,
	 _TransportAddress_ipSourceRoute},
	{FNAME("ipxAddress") SEQ, 0, 3, 3, SKIP, 0,
	 _TransportAddress_ipxAddress},
	{FNAME("ip6Address") SEQ, 0, 2, 2, DECODE | EXT,
	 offsetof(TransportAddress, ip6Address),
	 _TransportAddress_ip6Address},
	{FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
	{FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
	{FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0,
	 _NonStandardParameter},
};

static field_t _AliasAddress[] = {	/* CHOICE */
	{FNAME("dialedDigits") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("h323-ID") BMPSTR, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("url-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("transportID") CHOICE, 3, 7, 7, SKIP | EXT, 0, NULL},
	{FNAME("email-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("partyNumber") CHOICE, 3, 5, 5, SKIP | EXT, 0, NULL},
	{FNAME("mobileUIM") CHOICE, 1, 2, 2, SKIP | EXT, 0, NULL},
};

static field_t _Setup_UUIE_sourceAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _VendorIdentifier[] = {	/* SEQUENCE */
	{FNAME("vendor") SEQ, 0, 3, 3, SKIP | EXT, 0, _H221NonStandard},
	{FNAME("productId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("versionId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _GatekeeperInfo[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
};

static field_t _H310Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H320Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H321Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H322Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H323Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H324Caps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _VoiceCaps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _T120OnlyCaps[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _SupportedProtocols[] = {	/* CHOICE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP, 0,
	 _NonStandardParameter},
	{FNAME("h310") SEQ, 1, 1, 3, SKIP | EXT, 0, _H310Caps},
	{FNAME("h320") SEQ, 1, 1, 3, SKIP | EXT, 0, _H320Caps},
	{FNAME("h321") SEQ, 1, 1, 3, SKIP | EXT, 0, _H321Caps},
	{FNAME("h322") SEQ, 1, 1, 3, SKIP | EXT, 0, _H322Caps},
	{FNAME("h323") SEQ, 1, 1, 3, SKIP | EXT, 0, _H323Caps},
	{FNAME("h324") SEQ, 1, 1, 3, SKIP | EXT, 0, _H324Caps},
	{FNAME("voice") SEQ, 1, 1, 3, SKIP | EXT, 0, _VoiceCaps},
	{FNAME("t120-only") SEQ, 1, 1, 3, SKIP | EXT, 0, _T120OnlyCaps},
	{FNAME("nonStandardProtocol") SEQ, 2, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("t38FaxAnnexbOnly") SEQ, 2, 5, 5, SKIP | EXT, 0, NULL},
};

static field_t _GatewayInfo_protocol[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 4, 9, 11, SKIP | EXT, 0, _SupportedProtocols},
};

static field_t _GatewayInfo[] = {	/* SEQUENCE */
	{FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _GatewayInfo_protocol},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
};

static field_t _McuInfo[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
};

static field_t _TerminalInfo[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
};

static field_t _EndpointType[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("vendor") SEQ, 2, 3, 3, SKIP | EXT | OPT, 0,
	 _VendorIdentifier},
	{FNAME("gatekeeper") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0,
	 _GatekeeperInfo},
	{FNAME("gateway") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, _GatewayInfo},
	{FNAME("mcu") SEQ, 1, 1, 2, SKIP | EXT | OPT, 0, _McuInfo},
	{FNAME("terminal") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0, _TerminalInfo},
	{FNAME("mc") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("undefinedNode") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("set") BITSTR, FIXD, 32, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedTunnelledProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT,
	 0, NULL},
};

static field_t _Setup_UUIE_destinationAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _Setup_UUIE_destExtraCallInfo[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _Setup_UUIE_destExtraCRV[] = {	/* SEQUENCE OF */
	{FNAME("item") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _Setup_UUIE_conferenceGoal[] = {	/* CHOICE */
	{FNAME("create") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("join") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("invite") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("capability-negotiation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("callIndependentSupplementaryService") NUL, FIXD, 0, 0, SKIP,
	 0, NULL},
};

static field_t _Q954Details[] = {	/* SEQUENCE */
	{FNAME("conferenceCalling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("threePartyService") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _QseriesOptions[] = {	/* SEQUENCE */
	{FNAME("q932Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q951Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q952Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q953Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q955Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q956Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q957Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("q954Info") SEQ, 0, 2, 2, SKIP | EXT, 0, _Q954Details},
};

static field_t _CallType[] = {	/* CHOICE */
	{FNAME("pointToPoint") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("oneToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("nToOne") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("nToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _H245_NonStandardIdentifier_h221NonStandard[] = {	/* SEQUENCE */
	{FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _H245_NonStandardIdentifier[] = {	/* CHOICE */
	{FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP, 0,
	 _H245_NonStandardIdentifier_h221NonStandard},
};

static field_t _H245_NonStandardParameter[] = {	/* SEQUENCE */
	{FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP, 0,
	 _H245_NonStandardIdentifier},
	{FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H261VideoCapability[] = {	/* SEQUENCE */
	{FNAME("qcifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("cifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
	 NULL},
	{FNAME("maxBitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("stillImageTransmission") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _H262VideoCapability[] = {	/* SEQUENCE */
	{FNAME("profileAndLevel-SPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-MPatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-MPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-MPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-MPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-SNRatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-SNRatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-SpatialatH-14") BOOL, FIXD, 0, 0, SKIP, 0,
	 NULL},
	{FNAME("profileAndLevel-HPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-HPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("profileAndLevel-HPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("framesPerSecond") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _H263VideoCapability[] = {	/* SEQUENCE */
	{FNAME("sqcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("qcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("cifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("cif4MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("cif16MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("maxBitRate") INT, CONS, 1, 0, SKIP, 0, NULL},
	{FNAME("unrestrictedVector") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("arithmeticCoding") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("advancedPrediction") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("pbFrames") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
	 NULL},
	{FNAME("hrd-B") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("bppMaxKb") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("slowSqcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("slowQcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("slowCifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("slowCif4MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("slowCif16MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("errorCompensation") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("enhancementLayerInfo") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("h263Options") SEQ, 5, 29, 31, SKIP | EXT | OPT, 0, NULL},
};

static field_t _IS11172VideoCapability[] = {	/* SEQUENCE */
	{FNAME("constrainedBitstream") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("pictureRate") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _VideoCapability[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("h261VideoCapability") SEQ, 2, 5, 6, SKIP | EXT, 0,
	 _H261VideoCapability},
	{FNAME("h262VideoCapability") SEQ, 6, 17, 18, SKIP | EXT, 0,
	 _H262VideoCapability},
	{FNAME("h263VideoCapability") SEQ, 7, 13, 21, SKIP | EXT, 0,
	 _H263VideoCapability},
	{FNAME("is11172VideoCapability") SEQ, 6, 7, 8, SKIP | EXT, 0,
	 _IS11172VideoCapability},
	{FNAME("genericVideoCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
};

static field_t _AudioCapability_g7231[] = {	/* SEQUENCE */
	{FNAME("maxAl-sduAudioFrames") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("silenceSuppression") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _IS11172AudioCapability[] = {	/* SEQUENCE */
	{FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
};

static field_t _IS13818AudioCapability[] = {	/* SEQUENCE */
	{FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling16k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling22k05") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling24k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("threeChannels2-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("threeChannels3-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fourChannels2-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fourChannels2-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fourChannels3-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fiveChannels3-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fiveChannels3-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("lowFrequencyEnhancement") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("multilingual") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
};

static field_t _AudioCapability[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("g711Alaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g711Alaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g711Ulaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g711Ulaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g722-64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g722-56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g722-48k") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g7231") SEQ, 0, 2, 2, SKIP, 0, _AudioCapability_g7231},
	{FNAME("g728") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g729") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g729AnnexA") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("is11172AudioCapability") SEQ, 0, 9, 9, SKIP | EXT, 0,
	 _IS11172AudioCapability},
	{FNAME("is13818AudioCapability") SEQ, 0, 21, 21, SKIP | EXT, 0,
	 _IS13818AudioCapability},
	{FNAME("g729wAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g729AnnexAwAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
	{FNAME("g7231AnnexCCapability") SEQ, 1, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("gsmFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("gsmHalfRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("gsmEnhancedFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("genericAudioCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
	{FNAME("g729Extensions") SEQ, 1, 8, 8, SKIP | EXT, 0, NULL},
};

static field_t _DataProtocolCapability[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("v14buffered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("v42lapm") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("hdlcFrameTunnelling") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("h310SeparateVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("h310SingleVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("transparent") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("segmentationAndReassembly") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("hdlcFrameTunnelingwSAR") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("v120") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("separateLANStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("v76wCompression") CHOICE, 2, 3, 3, SKIP | EXT, 0, NULL},
	{FNAME("tcp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("udp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _T84Profile_t84Restricted[] = {	/* SEQUENCE */
	{FNAME("qcif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("cif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("ccir601Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("ccir601Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("hdtvSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("hdtvProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("g3FacsMH200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("g3FacsMH200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("g4FacsMMR200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("g4FacsMMR200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("jbig200x200Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("jbig200x200Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("jbig300x300Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("jbig300x300Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("digPhotoLow") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("digPhotoMedSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("digPhotoMedProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("digPhotoHighSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("digPhotoHighProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _T84Profile[] = {	/* CHOICE */
	{FNAME("t84Unrestricted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("t84Restricted") SEQ, 0, 19, 19, SKIP | EXT, 0,
	 _T84Profile_t84Restricted},
};

static field_t _DataApplicationCapability_application_t84[] = {	/* SEQUENCE */
	{FNAME("t84Protocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("t84Profile") CHOICE, 1, 2, 2, SKIP, 0, _T84Profile},
};

static field_t _DataApplicationCapability_application_nlpid[] = {	/* SEQUENCE */
	{FNAME("nlpidProtocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("nlpidData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _DataApplicationCapability_application[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("t120") CHOICE, 3, 7, 14, DECODE | EXT,
	 offsetof(DataApplicationCapability_application, t120),
	 _DataProtocolCapability},
	{FNAME("dsm-cc") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("userData") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("t84") SEQ, 0, 2, 2, SKIP, 0,
	 _DataApplicationCapability_application_t84},
	{FNAME("t434") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("h224") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("nlpid") SEQ, 0, 2, 2, SKIP, 0,
	 _DataApplicationCapability_application_nlpid},
	{FNAME("dsvdControl") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("h222DataPartitioning") CHOICE, 3, 7, 14, SKIP | EXT, 0,
	 _DataProtocolCapability},
	{FNAME("t30fax") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
	{FNAME("t140") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
	{FNAME("t38fax") SEQ, 0, 2, 2, SKIP, 0, NULL},
	{FNAME("genericDataCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
};

static field_t _DataApplicationCapability[] = {	/* SEQUENCE */
	{FNAME("application") CHOICE, 4, 10, 14, DECODE | EXT,
	 offsetof(DataApplicationCapability, application),
	 _DataApplicationCapability_application},
	{FNAME("maxBitRate") INT, CONS, 0, 0, SKIP, 0, NULL},
};

static field_t _EncryptionMode[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("h233Encryption") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _DataType[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("nullData") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("videoData") CHOICE, 3, 5, 6, SKIP | EXT, 0, _VideoCapability},
	{FNAME("audioData") CHOICE, 4, 14, 22, SKIP | EXT, 0,
	 _AudioCapability},
	{FNAME("data") SEQ, 0, 2, 2, DECODE | EXT, offsetof(DataType, data),
	 _DataApplicationCapability},
	{FNAME("encryptionData") CHOICE, 1, 2, 2, SKIP | EXT, 0,
	 _EncryptionMode},
	{FNAME("h235Control") SEQ, 0, 2, 2, SKIP, 0, NULL},
	{FNAME("h235Media") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
	{FNAME("multiplexedStream") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
};

static field_t _H222LogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("resourceID") INT, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("subChannelID") INT, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("pcr-pid") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("programDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("streamDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
};

static field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = {	/* SEQUENCE */
	{FNAME("controlFieldOctets") INT, 2, 0, 0, SKIP, 0, NULL},
	{FNAME("sendBufferSize") INT, CONS, 0, 0, SKIP, 0, NULL},
};

static field_t _H223LogicalChannelParameters_adaptationLayerType[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
	 _H245_NonStandardParameter},
	{FNAME("al1Framed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("al1NotFramed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("al2WithoutSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("al2WithSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("al3") SEQ, 0, 2, 2, SKIP, 0,
	 _H223LogicalChannelParameters_adaptationLayerType_al3},
	{FNAME("al1M") SEQ, 0, 7, 8, SKIP | EXT, 0, NULL},
	{FNAME("al2M") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
	{FNAME("al3M") SEQ, 0, 5, 6, SKIP | EXT, 0, NULL},
};

static field_t _H223LogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("adaptationLayerType") CHOICE, 3, 6, 9, SKIP | EXT, 0,
	 _H223LogicalChannelParameters_adaptationLayerType},
	{FNAME("segmentableFlag") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _CRCLength[] = {	/* CHOICE */
	{FNAME("crc8bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("crc16bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("crc32bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V76HDLCParameters[] = {	/* SEQUENCE */
	{FNAME("crcLength") CHOICE, 2, 3, 3, SKIP | EXT, 0, _CRCLength},
	{FNAME("n401") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("loopbackTestProcedure") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V76LogicalChannelParameters_suspendResume[] = {	/* CHOICE */
	{FNAME("noSuspendResume") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("suspendResumewAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("suspendResumewoAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = {	/* CHOICE */
	{FNAME("rej") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("sREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("mSREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V76LogicalChannelParameters_mode_eRM[] = {	/* SEQUENCE */
	{FNAME("windowSize") INT, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("recovery") CHOICE, 2, 3, 3, SKIP | EXT, 0,
	 _V76LogicalChannelParameters_mode_eRM_recovery},
};

static field_t _V76LogicalChannelParameters_mode[] = {	/* CHOICE */
	{FNAME("eRM") SEQ, 0, 2, 2, SKIP | EXT, 0,
	 _V76LogicalChannelParameters_mode_eRM},
	{FNAME("uNERM") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V75Parameters[] = {	/* SEQUENCE */
	{FNAME("audioHeaderPresent") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _V76LogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("hdlcParameters") SEQ, 0, 3, 3, SKIP | EXT, 0,
	 _V76HDLCParameters},
	{FNAME("suspendResume") CHOICE, 2, 3, 3, SKIP | EXT, 0,
	 _V76LogicalChannelParameters_suspendResume},
	{FNAME("uIH") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("mode") CHOICE, 1, 2, 2, SKIP | EXT, 0,
	 _V76LogicalChannelParameters_mode},
	{FNAME("v75Parameters") SEQ, 0, 1, 1, SKIP | EXT, 0, _V75Parameters},
};

static field_t _H2250LogicalChannelParameters_nonStandard[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
};

static field_t _UnicastAddress_iPAddress[] = {	/* SEQUENCE */
	{FNAME("network") OCTSTR, FIXD, 4, 0, DECODE,
	 offsetof(UnicastAddress_iPAddress, network), NULL},
	{FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _UnicastAddress_iPXAddress[] = {	/* SEQUENCE */
	{FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
	{FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
	{FNAME("tsapIdentifier") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
};

static field_t _UnicastAddress_iP6Address[] = {	/* SEQUENCE */
	{FNAME("network") OCTSTR, FIXD, 16, 0, DECODE,
	 offsetof(UnicastAddress_iP6Address, network), NULL},
	{FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _UnicastAddress_iPSourceRouteAddress_routing[] = {	/* CHOICE */
	{FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _UnicastAddress_iPSourceRouteAddress_route[] = {	/* SEQUENCE OF */
	{FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
};

static field_t _UnicastAddress_iPSourceRouteAddress[] = {	/* SEQUENCE */
	{FNAME("routing") CHOICE, 1, 2, 2, SKIP, 0,
	 _UnicastAddress_iPSourceRouteAddress_routing},
	{FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
	{FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
	 _UnicastAddress_iPSourceRouteAddress_route},
};

static field_t _UnicastAddress[] = {	/* CHOICE */
	{FNAME("iPAddress") SEQ, 0, 2, 2, DECODE | EXT,
	 offsetof(UnicastAddress, iPAddress), _UnicastAddress_iPAddress},
	{FNAME("iPXAddress") SEQ, 0, 3, 3, SKIP | EXT, 0,
	 _UnicastAddress_iPXAddress},
	{FNAME("iP6Address") SEQ, 0, 2, 2, DECODE | EXT,
	 offsetof(UnicastAddress, iP6Address), _UnicastAddress_iP6Address},
	{FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
	{FNAME("iPSourceRouteAddress") SEQ, 0, 4, 4, SKIP | EXT, 0,
	 _UnicastAddress_iPSourceRouteAddress},
	{FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
	{FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
};

static field_t _MulticastAddress_iPAddress[] = {	/* SEQUENCE */
	{FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
	{FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _MulticastAddress_iP6Address[] = {	/* SEQUENCE */
	{FNAME("network") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
	{FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _MulticastAddress[] = {	/* CHOICE */
	{FNAME("iPAddress") SEQ, 0, 2, 2, SKIP | EXT, 0,
	 _MulticastAddress_iPAddress},
	{FNAME("iP6Address") SEQ, 0, 2, 2, SKIP | EXT, 0,
	 _MulticastAddress_iP6Address},
	{FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
	{FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
};

static field_t _H245_TransportAddress[] = {	/* CHOICE */
	{FNAME("unicastAddress") CHOICE, 3, 5, 7, DECODE | EXT,
	 offsetof(H245_TransportAddress, unicastAddress), _UnicastAddress},
	{FNAME("multicastAddress") CHOICE, 1, 2, 4, SKIP | EXT, 0,
	 _MulticastAddress},
};

static field_t _H2250LogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _H2250LogicalChannelParameters_nonStandard},
	{FNAME("sessionID") INT, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("associatedSessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
	 offsetof(H2250LogicalChannelParameters, mediaChannel),
	 _H245_TransportAddress},
	{FNAME("mediaGuaranteedDelivery") BOOL, FIXD, 0, 0, SKIP | OPT, 0,
	 NULL},
	{FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
	 offsetof(H2250LogicalChannelParameters, mediaControlChannel),
	 _H245_TransportAddress},
	{FNAME("mediaControlGuaranteedDelivery") BOOL, FIXD, 0, 0, STOP | OPT,
	 0, NULL},
	{FNAME("silenceSuppression") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destination") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, STOP | OPT, 0, NULL},
	{FNAME("mediaPacketization") CHOICE, 0, 1, 2, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("transportCapability") SEQ, 3, 3, 3, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("redundancyEncoding") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("source") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, NULL},
};

static field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = {	/* CHOICE */
	{FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
	 _H222LogicalChannelParameters},
	{FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
	 _H223LogicalChannelParameters},
	{FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
	 _V76LogicalChannelParameters},
	{FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
	 offsetof
	 (OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters,
	  h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
	{FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("dataType") CHOICE, 3, 6, 9, DECODE | EXT,
	 offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
		  dataType), _DataType},
	{FNAME("multiplexParameters") CHOICE, 2, 3, 5, DECODE | EXT,
	 offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
		  multiplexParameters),
	 _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters},
	{FNAME("forwardLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
	 0, NULL},
	{FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = {	/* CHOICE */
	{FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
	 _H223LogicalChannelParameters},
	{FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
	 _V76LogicalChannelParameters},
	{FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
	 offsetof
	 (OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters,
	  h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
};

static field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("dataType") CHOICE, 3, 6, 9, SKIP | EXT, 0, _DataType},
	{FNAME("multiplexParameters") CHOICE, 1, 2, 3, DECODE | EXT | OPT,
	 offsetof(OpenLogicalChannel_reverseLogicalChannelParameters,
		  multiplexParameters),
	 _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters},
	{FNAME("reverseLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
	 0, NULL},
	{FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _NetworkAccessParameters_distribution[] = {	/* CHOICE */
	{FNAME("unicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("multicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _Q2931Address_address[] = {	/* CHOICE */
	{FNAME("internationalNumber") NUMSTR, 4, 1, 0, SKIP, 0, NULL},
	{FNAME("nsapAddress") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
};

static field_t _Q2931Address[] = {	/* SEQUENCE */
	{FNAME("address") CHOICE, 1, 2, 2, SKIP | EXT, 0,
	 _Q2931Address_address},
	{FNAME("subaddress") OCTSTR, 5, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _NetworkAccessParameters_networkAddress[] = {	/* CHOICE */
	{FNAME("q2931Address") SEQ, 1, 2, 2, SKIP | EXT, 0, _Q2931Address},
	{FNAME("e164Address") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("localAreaAddress") CHOICE, 1, 2, 2, DECODE | EXT,
	 offsetof(NetworkAccessParameters_networkAddress, localAreaAddress),
	 _H245_TransportAddress},
};

static field_t _NetworkAccessParameters[] = {	/* SEQUENCE */
	{FNAME("distribution") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0,
	 _NetworkAccessParameters_distribution},
	{FNAME("networkAddress") CHOICE, 2, 3, 3, DECODE | EXT,
	 offsetof(NetworkAccessParameters, networkAddress),
	 _NetworkAccessParameters_networkAddress},
	{FNAME("associateConference") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("externalReference") OCTSTR, 8, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("t120SetupProcedure") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
};

static field_t _OpenLogicalChannel[] = {	/* SEQUENCE */
	{FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("forwardLogicalChannelParameters") SEQ, 1, 3, 5, DECODE | EXT,
	 offsetof(OpenLogicalChannel, forwardLogicalChannelParameters),
	 _OpenLogicalChannel_forwardLogicalChannelParameters},
	{FNAME("reverseLogicalChannelParameters") SEQ, 1, 2, 4,
	 DECODE | EXT | OPT, offsetof(OpenLogicalChannel,
				      reverseLogicalChannelParameters),
	 _OpenLogicalChannel_reverseLogicalChannelParameters},
	{FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
	 offsetof(OpenLogicalChannel, separateStack),
	 _NetworkAccessParameters},
	{FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
};

static field_t _Setup_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _Setup_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Setup_UUIE, h245Address), _TransportAddress},
	{FNAME("sourceAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Setup_UUIE_sourceAddress},
	{FNAME("sourceInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
	{FNAME("destinationAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Setup_UUIE_destinationAddress},
	{FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Setup_UUIE, destCallSignalAddress), _TransportAddress},
	{FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Setup_UUIE_destExtraCallInfo},
	{FNAME("destExtraCRV") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Setup_UUIE_destExtraCRV},
	{FNAME("activeMC") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
	{FNAME("conferenceGoal") CHOICE, 2, 3, 5, SKIP | EXT, 0,
	 _Setup_UUIE_conferenceGoal},
	{FNAME("callServices") SEQ, 0, 8, 8, SKIP | EXT | OPT, 0,
	 _QseriesOptions},
	{FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
	{FNAME("sourceCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Setup_UUIE, sourceCallSignalAddress), _TransportAddress},
	{FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("h245SecurityCapability") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(Setup_UUIE, fastStart), _Setup_UUIE_fastStart},
	{FNAME("mediaWaitForConnect") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("canOverlapSend") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("connectionParameters") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("symmetricOperationRequired") NUL, FIXD, 0, 0, SKIP | OPT, 0,
	 NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
	{FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("neededFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("desiredFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("supportedFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("parallelH245Control") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("additionalSourceAddresses") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 NULL},
};

static field_t _CallProceeding_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _CallProceeding_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
	 _EndpointType},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(CallProceeding_UUIE, h245Address), _TransportAddress},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(CallProceeding_UUIE, fastStart),
	 _CallProceeding_UUIE_fastStart},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
};

static field_t _Connect_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _Connect_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Connect_UUIE, h245Address), _TransportAddress},
	{FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
	 _EndpointType},
	{FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(Connect_UUIE, fastStart), _Connect_UUIE_fastStart},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("connectedAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
};

static field_t _Alerting_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _Alerting_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
	 _EndpointType},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Alerting_UUIE, h245Address), _TransportAddress},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(Alerting_UUIE, fastStart), _Alerting_UUIE_fastStart},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("alertingAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
};

static field_t _Information_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, SKIP | OPT, 0, NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
};

static field_t _ReleaseCompleteReason[] = {	/* CHOICE */
	{FNAME("noBandwidth") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("gatekeeperResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("unreachableDestination") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("destinationRejection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("invalidRevision") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("noPermission") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("unreachableGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("gatewayResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("badFormatAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("adaptiveBusy") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("inConf") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("facilityCallDeflection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("securityDenied") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("calledPartyNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("callerNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("newConnectionNeeded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("nonStandardReason") SEQ, 0, 2, 2, SKIP, 0, NULL},
	{FNAME("replaceWithConferenceInvite") OCTSTR, FIXD, 16, 0, SKIP, 0,
	 NULL},
	{FNAME("genericDataReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("neededFeatureNotSupported") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("tunnelledSignallingRejected") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _ReleaseComplete_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("reason") CHOICE, 4, 12, 22, SKIP | EXT | OPT, 0,
	 _ReleaseCompleteReason},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("busyAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
};

static field_t _Facility_UUIE_alternativeAliasAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _FacilityReason[] = {	/* CHOICE */
	{FNAME("routeCallToGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("callForwarded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("routeCallToMC") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("conferenceListChoice") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("startH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("noH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("newTokens") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("featureSetUpdate") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("forwardedElements") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("transportedInformation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _Facility_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _Facility_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("alternativeAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Facility_UUIE, alternativeAddress), _TransportAddress},
	{FNAME("alternativeAliasAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Facility_UUIE_alternativeAliasAddress},
	{FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
	{FNAME("reason") CHOICE, 2, 4, 11, DECODE | EXT,
	 offsetof(Facility_UUIE, reason), _FacilityReason},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
	{FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("conferences") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Facility_UUIE, h245Address), _TransportAddress},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(Facility_UUIE, fastStart), _Facility_UUIE_fastStart},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
	{FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT | OPT, 0, NULL},
	{FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
	 NULL},
};

static field_t _CallIdentifier[] = {	/* SEQUENCE */
	{FNAME("guid") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
};

static field_t _SecurityServiceMode[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
	{FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("default") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _SecurityCapabilities[] = {	/* SEQUENCE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("encryption") CHOICE, 2, 3, 3, SKIP | EXT, 0,
	 _SecurityServiceMode},
	{FNAME("authenticaton") CHOICE, 2, 3, 3, SKIP | EXT, 0,
	 _SecurityServiceMode},
	{FNAME("integrity") CHOICE, 2, 3, 3, SKIP | EXT, 0,
	 _SecurityServiceMode},
};

static field_t _H245Security[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
	{FNAME("noSecurity") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("tls") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
	{FNAME("ipsec") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
};

static field_t _DHset[] = {	/* SEQUENCE */
	{FNAME("halfkey") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("modSize") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
	{FNAME("generator") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
};

static field_t _TypedCertificate[] = {	/* SEQUENCE */
	{FNAME("type") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("certificate") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _H235_NonStandardParameter[] = {	/* SEQUENCE */
	{FNAME("nonStandardIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _ClearToken[] = {	/* SEQUENCE */
	{FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("timeStamp") INT, CONS, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("password") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("dhkey") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0, _DHset},
	{FNAME("challenge") OCTSTR, 7, 8, 0, SKIP | OPT, 0, NULL},
	{FNAME("random") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("certificate") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0,
	 _TypedCertificate},
	{FNAME("generalID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _H235_NonStandardParameter},
	{FNAME("eckasdhkey") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, NULL},
	{FNAME("sendersID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _Progress_UUIE_tokens[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
};

static field_t _Params[] = {	/* SEQUENCE */
	{FNAME("ranInt") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("iv8") OCTSTR, FIXD, 8, 0, SKIP | OPT, 0, NULL},
	{FNAME("iv16") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
};

static field_t _CryptoH323Token_cryptoEPPwdHash_token[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoEPPwdHash[] = {	/* SEQUENCE */
	{FNAME("alias") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
	{FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
	{FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoEPPwdHash_token},
};

static field_t _CryptoH323Token_cryptoGKPwdHash_token[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoGKPwdHash[] = {	/* SEQUENCE */
	{FNAME("gatekeeperId") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
	{FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoGKPwdHash_token},
};

static field_t _CryptoH323Token_cryptoEPPwdEncr[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoGKPwdEncr[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoEPCert[] = {	/* SEQUENCE */
	{FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoGKCert[] = {	/* SEQUENCE */
	{FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoH323Token_cryptoFastStart[] = {	/* SEQUENCE */
	{FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoToken_cryptoEncryptedToken_token[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoToken_cryptoEncryptedToken[] = {	/* SEQUENCE */
	{FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoToken_cryptoEncryptedToken_token},
};

static field_t _CryptoToken_cryptoSignedToken_token[] = {	/* SEQUENCE */
	{FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoToken_cryptoSignedToken[] = {	/* SEQUENCE */
	{FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("token") SEQ, 0, 4, 4, SKIP, 0,
	 _CryptoToken_cryptoSignedToken_token},
};

static field_t _CryptoToken_cryptoHashedToken_token[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoToken_cryptoHashedToken[] = {	/* SEQUENCE */
	{FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("hashedVals") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
	{FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoToken_cryptoHashedToken_token},
};

static field_t _CryptoToken_cryptoPwdEncr[] = {	/* SEQUENCE */
	{FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
	{FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
};

static field_t _CryptoToken[] = {	/* CHOICE */
	{FNAME("cryptoEncryptedToken") SEQ, 0, 2, 2, SKIP, 0,
	 _CryptoToken_cryptoEncryptedToken},
	{FNAME("cryptoSignedToken") SEQ, 0, 2, 2, SKIP, 0,
	 _CryptoToken_cryptoSignedToken},
	{FNAME("cryptoHashedToken") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoToken_cryptoHashedToken},
	{FNAME("cryptoPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoToken_cryptoPwdEncr},
};

static field_t _CryptoH323Token[] = {	/* CHOICE */
	{FNAME("cryptoEPPwdHash") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoEPPwdHash},
	{FNAME("cryptoGKPwdHash") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoGKPwdHash},
	{FNAME("cryptoEPPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoEPPwdEncr},
	{FNAME("cryptoGKPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
	 _CryptoH323Token_cryptoGKPwdEncr},
	{FNAME("cryptoEPCert") SEQ, 0, 4, 4, SKIP, 0,
	 _CryptoH323Token_cryptoEPCert},
	{FNAME("cryptoGKCert") SEQ, 0, 4, 4, SKIP, 0,
	 _CryptoH323Token_cryptoGKCert},
	{FNAME("cryptoFastStart") SEQ, 0, 4, 4, SKIP, 0,
	 _CryptoH323Token_cryptoFastStart},
	{FNAME("nestedcryptoToken") CHOICE, 2, 4, 4, SKIP | EXT, 0,
	 _CryptoToken},
};

static field_t _Progress_UUIE_cryptoTokens[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 8, 8, SKIP | EXT, 0, _CryptoH323Token},
};

static field_t _Progress_UUIE_fastStart[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
	 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
	,
};

static field_t _Progress_UUIE[] = {	/* SEQUENCE */
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
	 _EndpointType},
	{FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(Progress_UUIE, h245Address), _TransportAddress},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0,
	 _CallIdentifier},
	{FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
	 _H245Security},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Progress_UUIE_tokens},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _Progress_UUIE_cryptoTokens},
	{FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
	 offsetof(Progress_UUIE, fastStart), _Progress_UUIE_fastStart},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
};

static field_t _H323_UU_PDU_h323_message_body[] = {	/* CHOICE */
	{FNAME("setup") SEQ, 7, 13, 39, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, setup), _Setup_UUIE},
	{FNAME("callProceeding") SEQ, 1, 3, 12, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, callProceeding),
	 _CallProceeding_UUIE},
	{FNAME("connect") SEQ, 1, 4, 19, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, connect), _Connect_UUIE},
	{FNAME("alerting") SEQ, 1, 3, 17, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, alerting), _Alerting_UUIE},
	{FNAME("information") SEQ, 0, 1, 7, SKIP | EXT, 0, _Information_UUIE},
	{FNAME("releaseComplete") SEQ, 1, 2, 11, SKIP | EXT, 0,
	 _ReleaseComplete_UUIE},
	{FNAME("facility") SEQ, 3, 5, 21, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, facility), _Facility_UUIE},
	{FNAME("progress") SEQ, 5, 8, 11, DECODE | EXT,
	 offsetof(H323_UU_PDU_h323_message_body, progress), _Progress_UUIE},
	{FNAME("empty") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("status") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
	{FNAME("statusInquiry") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
	{FNAME("setupAcknowledge") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
	{FNAME("notify") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
};

static field_t _RequestMessage[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("masterSlaveDetermination") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("terminalCapabilitySet") SEQ, 3, 5, 5, STOP | EXT, 0, NULL},
	{FNAME("openLogicalChannel") SEQ, 1, 3, 5, DECODE | EXT,
	 offsetof(RequestMessage, openLogicalChannel), _OpenLogicalChannel},
	{FNAME("closeLogicalChannel") SEQ, 0, 2, 3, STOP | EXT, 0, NULL},
	{FNAME("requestChannelClose") SEQ, 0, 1, 3, STOP | EXT, 0, NULL},
	{FNAME("multiplexEntrySend") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("requestMultiplexEntry") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("requestMode") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("roundTripDelayRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("maintenanceLoopRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("communicationModeRequest") SEQ, 0, 0, 0, STOP | EXT, 0, NULL},
	{FNAME("conferenceRequest") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
	{FNAME("multilinkRequest") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
	{FNAME("logicalChannelRateRequest") SEQ, 0, 3, 3, STOP | EXT, 0,
	 NULL},
};

static field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = {	/* CHOICE */
	{FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
	 _H222LogicalChannelParameters},
	{FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
	 offsetof
	 (OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters,
	  h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
};

static field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = {	/* SEQUENCE */
	{FNAME("reverseLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("multiplexParameters") CHOICE, 0, 1, 2, DECODE | EXT | OPT,
	 offsetof(OpenLogicalChannelAck_reverseLogicalChannelParameters,
		  multiplexParameters),
	 _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters},
	{FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
};

static field_t _H2250LogicalChannelAckParameters_nonStandard[] = {	/* SEQUENCE OF */
	{FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
};

static field_t _H2250LogicalChannelAckParameters[] = {	/* SEQUENCE */
	{FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _H2250LogicalChannelAckParameters_nonStandard},
	{FNAME("sessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
	 offsetof(H2250LogicalChannelAckParameters, mediaChannel),
	 _H245_TransportAddress},
	{FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
	 offsetof(H2250LogicalChannelAckParameters, mediaControlChannel),
	 _H245_TransportAddress},
	{FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, SKIP | OPT, 0, NULL},
	{FNAME("flowControlToZero") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
};

static field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = {	/* CHOICE */
	{FNAME("h2250LogicalChannelAckParameters") SEQ, 5, 5, 7, DECODE | EXT,
	 offsetof(OpenLogicalChannelAck_forwardMultiplexAckParameters,
		  h2250LogicalChannelAckParameters),
	 _H2250LogicalChannelAckParameters},
};

static field_t _OpenLogicalChannelAck[] = {	/* SEQUENCE */
	{FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("reverseLogicalChannelParameters") SEQ, 2, 3, 4,
	 DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
				      reverseLogicalChannelParameters),
	 _OpenLogicalChannelAck_reverseLogicalChannelParameters},
	{FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
	 offsetof(OpenLogicalChannelAck, separateStack),
	 _NetworkAccessParameters},
	{FNAME("forwardMultiplexAckParameters") CHOICE, 0, 1, 1,
	 DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
				      forwardMultiplexAckParameters),
	 _OpenLogicalChannelAck_forwardMultiplexAckParameters},
	{FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
};

static field_t _ResponseMessage[] = {	/* CHOICE */
	{FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("masterSlaveDeterminationAck") SEQ, 0, 1, 1, STOP | EXT, 0,
	 NULL},
	{FNAME("masterSlaveDeterminationReject") SEQ, 0, 1, 1, STOP | EXT, 0,
	 NULL},
	{FNAME("terminalCapabilitySetAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("terminalCapabilitySetReject") SEQ, 0, 2, 2, STOP | EXT, 0,
	 NULL},
	{FNAME("openLogicalChannelAck") SEQ, 1, 2, 5, DECODE | EXT,
	 offsetof(ResponseMessage, openLogicalChannelAck),
	 _OpenLogicalChannelAck},
	{FNAME("openLogicalChannelReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("closeLogicalChannelAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("requestChannelCloseAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("requestChannelCloseReject") SEQ, 0, 2, 2, STOP | EXT, 0,
	 NULL},
	{FNAME("multiplexEntrySendAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("multiplexEntrySendReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("requestMultiplexEntryAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("requestMultiplexEntryReject") SEQ, 0, 2, 2, STOP | EXT, 0,
	 NULL},
	{FNAME("requestModeAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("requestModeReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("roundTripDelayResponse") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("maintenanceLoopAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("maintenanceLoopReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
	{FNAME("communicationModeResponse") CHOICE, 0, 1, 1, STOP | EXT, 0,
	 NULL},
	{FNAME("conferenceResponse") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
	{FNAME("multilinkResponse") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
	{FNAME("logicalChannelRateAcknowledge") SEQ, 0, 3, 3, STOP | EXT, 0,
	 NULL},
	{FNAME("logicalChannelRateReject") SEQ, 1, 4, 4, STOP | EXT, 0, NULL},
};

static field_t _MultimediaSystemControlMessage[] = {	/* CHOICE */
	{FNAME("request") CHOICE, 4, 11, 15, DECODE | EXT,
	 offsetof(MultimediaSystemControlMessage, request), _RequestMessage},
	{FNAME("response") CHOICE, 5, 19, 24, DECODE | EXT,
	 offsetof(MultimediaSystemControlMessage, response),
	 _ResponseMessage},
	{FNAME("command") CHOICE, 3, 7, 12, STOP | EXT, 0, NULL},
	{FNAME("indication") CHOICE, 4, 14, 23, STOP | EXT, 0, NULL},
};

static field_t _H323_UU_PDU_h245Control[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 2, 4, 4, DECODE | OPEN | EXT,
	 sizeof(MultimediaSystemControlMessage),
	 _MultimediaSystemControlMessage}
	,
};

static field_t _H323_UU_PDU[] = {	/* SEQUENCE */
	{FNAME("h323-message-body") CHOICE, 3, 7, 13, DECODE | EXT,
	 offsetof(H323_UU_PDU, h323_message_body),
	 _H323_UU_PDU_h323_message_body},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("h4501SupplementaryService") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 NULL},
	{FNAME("h245Tunneling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("h245Control") SEQOF, SEMI, 0, 4, DECODE | OPT,
	 offsetof(H323_UU_PDU, h245Control), _H323_UU_PDU_h245Control},
	{FNAME("nonStandardControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("tunnelledSignallingMessage") SEQ, 2, 4, 4, STOP | EXT | OPT,
	 0, NULL},
	{FNAME("provisionalRespToH245Tunneling") NUL, FIXD, 0, 0, STOP | OPT,
	 0, NULL},
	{FNAME("stimulusControl") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _H323_UserInformation[] = {	/* SEQUENCE */
	{FNAME("h323-uu-pdu") SEQ, 1, 2, 11, DECODE | EXT,
	 offsetof(H323_UserInformation, h323_uu_pdu), _H323_UU_PDU},
	{FNAME("user-data") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
};

static field_t _GatekeeperRequest[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(GatekeeperRequest, rasAddress), _TransportAddress},
	{FNAME("endpointType") SEQ, 6, 8, 10, STOP | EXT, 0, NULL},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
	{FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("authenticationCapability") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("algorithmOIDs") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _GatekeeperConfirm[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(GatekeeperConfirm, rasAddress), _TransportAddress},
	{FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("authenticationMode") CHOICE, 3, 7, 8, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("algorithmOID") OID, BYTE, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _RegistrationRequest_callSignalAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
	 sizeof(TransportAddress), _TransportAddress}
	,
};

static field_t _RegistrationRequest_rasAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
	 sizeof(TransportAddress), _TransportAddress}
	,
};

static field_t _RegistrationRequest_terminalAlias[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _RegistrationRequest[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("discoveryComplete") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
	 offsetof(RegistrationRequest, callSignalAddress),
	 _RegistrationRequest_callSignalAddress},
	{FNAME("rasAddress") SEQOF, SEMI, 0, 10, DECODE,
	 offsetof(RegistrationRequest, rasAddress),
	 _RegistrationRequest_rasAddress},
	{FNAME("terminalType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
	{FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _RegistrationRequest_terminalAlias},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("endpointVendor") SEQ, 2, 3, 3, SKIP | EXT, 0,
	 _VendorIdentifier},
	{FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
	 offsetof(RegistrationRequest, timeToLive), NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("keepAlive") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
	 0, NULL},
	{FNAME("additiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("usageReportingCapability") SEQ, 3, 4, 4, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("supportedH248Packages") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("callCreditCapability") SEQ, 2, 2, 2, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("capacityReportingCapability") SEQ, 0, 1, 1, STOP | EXT | OPT,
	 0, NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _RegistrationConfirm_callSignalAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
	 sizeof(TransportAddress), _TransportAddress}
	,
};

static field_t _RegistrationConfirm_terminalAlias[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _RegistrationConfirm[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
	 offsetof(RegistrationConfirm, callSignalAddress),
	 _RegistrationConfirm_callSignalAddress},
	{FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _RegistrationConfirm_terminalAlias},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
	{FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
	 offsetof(RegistrationConfirm, timeToLive), NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("preGrantedARQ") SEQ, 0, 4, 8, STOP | EXT | OPT, 0, NULL},
	{FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("supportsAdditiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("featureServerAlias") CHOICE, 1, 2, 7, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("capacityReportingSpec") SEQ, 0, 1, 1, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _UnregistrationRequest_callSignalAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
	 sizeof(TransportAddress), _TransportAddress}
	,
};

static field_t _UnregistrationRequest[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
	 offsetof(UnregistrationRequest, callSignalAddress),
	 _UnregistrationRequest_callSignalAddress},
	{FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("reason") CHOICE, 2, 4, 5, STOP | EXT | OPT, 0, NULL},
	{FNAME("endpointAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _CallModel[] = {	/* CHOICE */
	{FNAME("direct") NUL, FIXD, 0, 0, SKIP, 0, NULL},
	{FNAME("gatekeeperRouted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
};

static field_t _AdmissionRequest_destinationInfo[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _AdmissionRequest_destExtraCallInfo[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _AdmissionRequest_srcInfo[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _AdmissionRequest[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
	{FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, _CallModel},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _AdmissionRequest_destinationInfo},
	{FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(AdmissionRequest, destCallSignalAddress),
	 _TransportAddress},
	{FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
	 _AdmissionRequest_destExtraCallInfo},
	{FNAME("srcInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
	 _AdmissionRequest_srcInfo},
	{FNAME("srcCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
	 offsetof(AdmissionRequest, srcCallSignalAddress), _TransportAddress},
	{FNAME("bandWidth") INT, CONS, 0, 0, STOP, 0, NULL},
	{FNAME("callReferenceValue") INT, WORD, 0, 0, STOP, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
	{FNAME("conferenceID") OCTSTR, FIXD, 16, 0, STOP, 0, NULL},
	{FNAME("activeMC") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("answerCall") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("callIdentifier") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
	{FNAME("srcAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("gatewayDataRate") SEQ, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _AdmissionConfirm[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("bandWidth") INT, CONS, 0, 0, SKIP, 0, NULL},
	{FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT, 0, _CallModel},
	{FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(AdmissionConfirm, destCallSignalAddress),
	 _TransportAddress},
	{FNAME("irrFrequency") INT, WORD, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
	{FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("uuiesRequested") SEQ, 0, 9, 13, STOP | EXT, 0, NULL},
	{FNAME("language") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
	 0, NULL},
	{FNAME("useSpecifiedTransport") CHOICE, 1, 2, 2, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _LocationRequest_destinationInfo[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
};

static field_t _LocationRequest[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
	{FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
	 _LocationRequest_destinationInfo},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("replyAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(LocationRequest, replyAddress), _TransportAddress},
	{FNAME("sourceInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
	 NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("hopCount") INT, 8, 1, 0, STOP | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
};

static field_t _LocationConfirm[] = {	/* SEQUENCE */
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("callSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(LocationConfirm, callSignalAddress), _TransportAddress},
	{FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(LocationConfirm, rasAddress), _TransportAddress},
	{FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
	{FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
	 NULL},
	{FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
	 0, NULL},
	{FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
	{FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _InfoRequestResponse_callSignalAddress[] = {	/* SEQUENCE OF */
	{FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
	 sizeof(TransportAddress), _TransportAddress}
	,
};

static field_t _InfoRequestResponse[] = {	/* SEQUENCE */
	{FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
	 _NonStandardParameter},
	{FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
	{FNAME("endpointType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
	{FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
	{FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
	 offsetof(InfoRequestResponse, rasAddress), _TransportAddress},
	{FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
	 offsetof(InfoRequestResponse, callSignalAddress),
	 _InfoRequestResponse_callSignalAddress},
	{FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("perCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
	{FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
	{FNAME("needResponse") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
	{FNAME("irrStatus") CHOICE, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
	{FNAME("unsolicited") BOOL, FIXD, 0, 0, STOP, 0, NULL},
	{FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
};

static field_t _RasMessage[] = {	/* CHOICE */
	{FNAME("gatekeeperRequest") SEQ, 4, 8, 18, DECODE | EXT,
	 offsetof(RasMessage, gatekeeperRequest), _GatekeeperRequest},
	{FNAME("gatekeeperConfirm") SEQ, 2, 5, 14, DECODE | EXT,
	 offsetof(RasMessage, gatekeeperConfirm), _GatekeeperConfirm},
	{FNAME("gatekeeperReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
	{FNAME("registrationRequest") SEQ, 3, 10, 31, DECODE | EXT,
	 offsetof(RasMessage, registrationRequest), _RegistrationRequest},
	{FNAME("registrationConfirm") SEQ, 3, 7, 24, DECODE | EXT,
	 offsetof(RasMessage, registrationConfirm), _RegistrationConfirm},
	{FNAME("registrationReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
	{FNAME("unregistrationRequest") SEQ, 3, 5, 15, DECODE | EXT,
	 offsetof(RasMessage, unregistrationRequest), _UnregistrationRequest},
	{FNAME("unregistrationConfirm") SEQ, 1, 2, 6, STOP | EXT, 0, NULL},
	{FNAME("unregistrationReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
	{FNAME("admissionRequest") SEQ, 7, 16, 34, DECODE | EXT,
	 offsetof(RasMessage, admissionRequest), _AdmissionRequest},
	{FNAME("admissionConfirm") SEQ, 2, 6, 27, DECODE | EXT,
	 offsetof(RasMessage, admissionConfirm), _AdmissionConfirm},
	{FNAME("admissionReject") SEQ, 1, 3, 11, STOP | EXT, 0, NULL},
	{FNAME("bandwidthRequest") SEQ, 2, 7, 18, STOP | EXT, 0, NULL},
	{FNAME("bandwidthConfirm") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
	{FNAME("bandwidthReject") SEQ, 1, 4, 9, STOP | EXT, 0, NULL},
	{FNAME("disengageRequest") SEQ, 1, 6, 19, STOP | EXT, 0, NULL},
	{FNAME("disengageConfirm") SEQ, 1, 2, 9, STOP | EXT, 0, NULL},
	{FNAME("disengageReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
	{FNAME("locationRequest") SEQ, 2, 5, 17, DECODE | EXT,
	 offsetof(RasMessage, locationRequest), _LocationRequest},
	{FNAME("locationConfirm") SEQ, 1, 4, 19, DECODE | EXT,
	 offsetof(RasMessage, locationConfirm), _LocationConfirm},
	{FNAME("locationReject") SEQ, 1, 3, 10, STOP | EXT, 0, NULL},
	{FNAME("infoRequest") SEQ, 2, 4, 15, STOP | EXT, 0, NULL},
	{FNAME("infoRequestResponse") SEQ, 3, 8, 16, DECODE | EXT,
	 offsetof(RasMessage, infoRequestResponse), _InfoRequestResponse},
	{FNAME("nonStandardMessage") SEQ, 0, 2, 7, STOP | EXT, 0, NULL},
	{FNAME("unknownMessageResponse") SEQ, 0, 1, 5, STOP | EXT, 0, NULL},
	{FNAME("requestInProgress") SEQ, 4, 6, 6, STOP | EXT, 0, NULL},
	{FNAME("resourcesAvailableIndicate") SEQ, 4, 9, 11, STOP | EXT, 0,
	 NULL},
	{FNAME("resourcesAvailableConfirm") SEQ, 4, 6, 7, STOP | EXT, 0,
	 NULL},
	{FNAME("infoRequestAck") SEQ, 4, 5, 5, STOP | EXT, 0, NULL},
	{FNAME("infoRequestNak") SEQ, 5, 7, 7, STOP | EXT, 0, NULL},
	{FNAME("serviceControlIndication") SEQ, 8, 10, 10, STOP | EXT, 0,
	 NULL},
	{FNAME("serviceControlResponse") SEQ, 7, 8, 8, STOP | EXT, 0, NULL},
};
