1 /* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007 2 * 3 * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net> 4 * 5 * This source code is licensed under General Public License version 2. 6 */ 7 8 static const struct field_t _TransportAddress_ipAddress[] = { /* SEQUENCE */ 9 {FNAME("ip") OCTSTR, FIXD, 4, 0, DECODE, 10 offsetof(TransportAddress_ipAddress, ip), NULL}, 11 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL}, 12 }; 13 14 static const struct field_t _TransportAddress_ipSourceRoute_route[] = { /* SEQUENCE OF */ 15 {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 16 }; 17 18 static const struct field_t _TransportAddress_ipSourceRoute_routing[] = { /* CHOICE */ 19 {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 20 {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 21 }; 22 23 static const struct field_t _TransportAddress_ipSourceRoute[] = { /* SEQUENCE */ 24 {FNAME("ip") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 25 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL}, 26 {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0, 27 _TransportAddress_ipSourceRoute_route}, 28 {FNAME("routing") CHOICE, 1, 2, 2, SKIP | EXT, 0, 29 _TransportAddress_ipSourceRoute_routing}, 30 }; 31 32 static const struct field_t _TransportAddress_ipxAddress[] = { /* SEQUENCE */ 33 {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL}, 34 {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 35 {FNAME("port") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL}, 36 }; 37 38 static const struct field_t _TransportAddress_ip6Address[] = { /* SEQUENCE */ 39 {FNAME("ip") OCTSTR, FIXD, 16, 0, DECODE, 40 offsetof(TransportAddress_ip6Address, ip), NULL}, 41 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL}, 42 }; 43 44 static const struct field_t _H221NonStandard[] = { /* SEQUENCE */ 45 {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL}, 46 {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL}, 47 {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL}, 48 }; 49 50 static const struct field_t _NonStandardIdentifier[] = { /* CHOICE */ 51 {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL}, 52 {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP | EXT, 0, 53 _H221NonStandard}, 54 }; 55 56 static const struct field_t _NonStandardParameter[] = { /* SEQUENCE */ 57 {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP | EXT, 0, 58 _NonStandardIdentifier}, 59 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 60 }; 61 62 static const struct field_t _TransportAddress[] = { /* CHOICE */ 63 {FNAME("ipAddress") SEQ, 0, 2, 2, DECODE, 64 offsetof(TransportAddress, ipAddress), _TransportAddress_ipAddress}, 65 {FNAME("ipSourceRoute") SEQ, 0, 4, 4, SKIP | EXT, 0, 66 _TransportAddress_ipSourceRoute}, 67 {FNAME("ipxAddress") SEQ, 0, 3, 3, SKIP, 0, 68 _TransportAddress_ipxAddress}, 69 {FNAME("ip6Address") SEQ, 0, 2, 2, DECODE | EXT, 70 offsetof(TransportAddress, ip6Address), 71 _TransportAddress_ip6Address}, 72 {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 73 {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL}, 74 {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, 75 _NonStandardParameter}, 76 }; 77 78 static const struct field_t _AliasAddress[] = { /* CHOICE */ 79 {FNAME("dialedDigits") NUMDGT, 7, 1, 0, SKIP, 0, NULL}, 80 {FNAME("h323-ID") BMPSTR, BYTE, 1, 0, SKIP, 0, NULL}, 81 {FNAME("url-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL}, 82 {FNAME("transportID") CHOICE, 3, 7, 7, SKIP | EXT, 0, NULL}, 83 {FNAME("email-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL}, 84 {FNAME("partyNumber") CHOICE, 3, 5, 5, SKIP | EXT, 0, NULL}, 85 {FNAME("mobileUIM") CHOICE, 1, 2, 2, SKIP | EXT, 0, NULL}, 86 }; 87 88 static const struct field_t _Setup_UUIE_sourceAddress[] = { /* SEQUENCE OF */ 89 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 90 }; 91 92 static const struct field_t _VendorIdentifier[] = { /* SEQUENCE */ 93 {FNAME("vendor") SEQ, 0, 3, 3, SKIP | EXT, 0, _H221NonStandard}, 94 {FNAME("productId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL}, 95 {FNAME("versionId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL}, 96 }; 97 98 static const struct field_t _GatekeeperInfo[] = { /* SEQUENCE */ 99 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 100 _NonStandardParameter}, 101 }; 102 103 static const struct field_t _H310Caps[] = { /* SEQUENCE */ 104 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 105 _NonStandardParameter}, 106 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 107 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 108 }; 109 110 static const struct field_t _H320Caps[] = { /* SEQUENCE */ 111 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 112 _NonStandardParameter}, 113 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 114 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 115 }; 116 117 static const struct field_t _H321Caps[] = { /* SEQUENCE */ 118 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 119 _NonStandardParameter}, 120 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 121 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 122 }; 123 124 static const struct field_t _H322Caps[] = { /* SEQUENCE */ 125 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 126 _NonStandardParameter}, 127 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 128 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 129 }; 130 131 static const struct field_t _H323Caps[] = { /* SEQUENCE */ 132 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 133 _NonStandardParameter}, 134 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 135 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 136 }; 137 138 static const struct field_t _H324Caps[] = { /* SEQUENCE */ 139 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 140 _NonStandardParameter}, 141 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 142 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 143 }; 144 145 static const struct field_t _VoiceCaps[] = { /* SEQUENCE */ 146 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 147 _NonStandardParameter}, 148 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 149 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 150 }; 151 152 static const struct field_t _T120OnlyCaps[] = { /* SEQUENCE */ 153 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 154 _NonStandardParameter}, 155 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 156 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL}, 157 }; 158 159 static const struct field_t _SupportedProtocols[] = { /* CHOICE */ 160 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP, 0, 161 _NonStandardParameter}, 162 {FNAME("h310") SEQ, 1, 1, 3, SKIP | EXT, 0, _H310Caps}, 163 {FNAME("h320") SEQ, 1, 1, 3, SKIP | EXT, 0, _H320Caps}, 164 {FNAME("h321") SEQ, 1, 1, 3, SKIP | EXT, 0, _H321Caps}, 165 {FNAME("h322") SEQ, 1, 1, 3, SKIP | EXT, 0, _H322Caps}, 166 {FNAME("h323") SEQ, 1, 1, 3, SKIP | EXT, 0, _H323Caps}, 167 {FNAME("h324") SEQ, 1, 1, 3, SKIP | EXT, 0, _H324Caps}, 168 {FNAME("voice") SEQ, 1, 1, 3, SKIP | EXT, 0, _VoiceCaps}, 169 {FNAME("t120-only") SEQ, 1, 1, 3, SKIP | EXT, 0, _T120OnlyCaps}, 170 {FNAME("nonStandardProtocol") SEQ, 2, 3, 3, SKIP | EXT, 0, NULL}, 171 {FNAME("t38FaxAnnexbOnly") SEQ, 2, 5, 5, SKIP | EXT, 0, NULL}, 172 }; 173 174 static const struct field_t _GatewayInfo_protocol[] = { /* SEQUENCE OF */ 175 {FNAME("item") CHOICE, 4, 9, 11, SKIP | EXT, 0, _SupportedProtocols}, 176 }; 177 178 static const struct field_t _GatewayInfo[] = { /* SEQUENCE */ 179 {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 180 _GatewayInfo_protocol}, 181 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 182 _NonStandardParameter}, 183 }; 184 185 static const struct field_t _McuInfo[] = { /* SEQUENCE */ 186 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 187 _NonStandardParameter}, 188 {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 189 }; 190 191 static const struct field_t _TerminalInfo[] = { /* SEQUENCE */ 192 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 193 _NonStandardParameter}, 194 }; 195 196 static const struct field_t _EndpointType[] = { /* SEQUENCE */ 197 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 198 _NonStandardParameter}, 199 {FNAME("vendor") SEQ, 2, 3, 3, SKIP | EXT | OPT, 0, 200 _VendorIdentifier}, 201 {FNAME("gatekeeper") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0, 202 _GatekeeperInfo}, 203 {FNAME("gateway") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, _GatewayInfo}, 204 {FNAME("mcu") SEQ, 1, 1, 2, SKIP | EXT | OPT, 0, _McuInfo}, 205 {FNAME("terminal") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0, _TerminalInfo}, 206 {FNAME("mc") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 207 {FNAME("undefinedNode") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 208 {FNAME("set") BITSTR, FIXD, 32, 0, SKIP | OPT, 0, NULL}, 209 {FNAME("supportedTunnelledProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT, 210 0, NULL}, 211 }; 212 213 static const struct field_t _Setup_UUIE_destinationAddress[] = { /* SEQUENCE OF */ 214 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 215 }; 216 217 static const struct field_t _Setup_UUIE_destExtraCallInfo[] = { /* SEQUENCE OF */ 218 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 219 }; 220 221 static const struct field_t _Setup_UUIE_destExtraCRV[] = { /* SEQUENCE OF */ 222 {FNAME("item") INT, WORD, 0, 0, SKIP, 0, NULL}, 223 }; 224 225 static const struct field_t _Setup_UUIE_conferenceGoal[] = { /* CHOICE */ 226 {FNAME("create") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 227 {FNAME("join") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 228 {FNAME("invite") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 229 {FNAME("capability-negotiation") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 230 {FNAME("callIndependentSupplementaryService") NUL, FIXD, 0, 0, SKIP, 231 0, NULL}, 232 }; 233 234 static const struct field_t _Q954Details[] = { /* SEQUENCE */ 235 {FNAME("conferenceCalling") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 236 {FNAME("threePartyService") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 237 }; 238 239 static const struct field_t _QseriesOptions[] = { /* SEQUENCE */ 240 {FNAME("q932Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 241 {FNAME("q951Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 242 {FNAME("q952Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 243 {FNAME("q953Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 244 {FNAME("q955Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 245 {FNAME("q956Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 246 {FNAME("q957Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 247 {FNAME("q954Info") SEQ, 0, 2, 2, SKIP | EXT, 0, _Q954Details}, 248 }; 249 250 static const struct field_t _CallType[] = { /* CHOICE */ 251 {FNAME("pointToPoint") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 252 {FNAME("oneToN") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 253 {FNAME("nToOne") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 254 {FNAME("nToN") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 255 }; 256 257 static const struct field_t _H245_NonStandardIdentifier_h221NonStandard[] = { /* SEQUENCE */ 258 {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL}, 259 {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL}, 260 {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL}, 261 }; 262 263 static const struct field_t _H245_NonStandardIdentifier[] = { /* CHOICE */ 264 {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL}, 265 {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP, 0, 266 _H245_NonStandardIdentifier_h221NonStandard}, 267 }; 268 269 static const struct field_t _H245_NonStandardParameter[] = { /* SEQUENCE */ 270 {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP, 0, 271 _H245_NonStandardIdentifier}, 272 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 273 }; 274 275 static const struct field_t _H261VideoCapability[] = { /* SEQUENCE */ 276 {FNAME("qcifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL}, 277 {FNAME("cifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL}, 278 {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0, 279 NULL}, 280 {FNAME("maxBitRate") INT, WORD, 1, 0, SKIP, 0, NULL}, 281 {FNAME("stillImageTransmission") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 282 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 283 }; 284 285 static const struct field_t _H262VideoCapability[] = { /* SEQUENCE */ 286 {FNAME("profileAndLevel-SPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 287 {FNAME("profileAndLevel-MPatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 288 {FNAME("profileAndLevel-MPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 289 {FNAME("profileAndLevel-MPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 290 {FNAME("profileAndLevel-MPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 291 {FNAME("profileAndLevel-SNRatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 292 {FNAME("profileAndLevel-SNRatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 293 {FNAME("profileAndLevel-SpatialatH-14") BOOL, FIXD, 0, 0, SKIP, 0, 294 NULL}, 295 {FNAME("profileAndLevel-HPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 296 {FNAME("profileAndLevel-HPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 297 {FNAME("profileAndLevel-HPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 298 {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 299 {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 300 {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 301 {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 302 {FNAME("framesPerSecond") INT, 4, 0, 0, SKIP | OPT, 0, NULL}, 303 {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 304 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 305 }; 306 307 static const struct field_t _H263VideoCapability[] = { /* SEQUENCE */ 308 {FNAME("sqcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL}, 309 {FNAME("qcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL}, 310 {FNAME("cifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL}, 311 {FNAME("cif4MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL}, 312 {FNAME("cif16MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL}, 313 {FNAME("maxBitRate") INT, CONS, 1, 0, SKIP, 0, NULL}, 314 {FNAME("unrestrictedVector") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 315 {FNAME("arithmeticCoding") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 316 {FNAME("advancedPrediction") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 317 {FNAME("pbFrames") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 318 {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0, 319 NULL}, 320 {FNAME("hrd-B") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 321 {FNAME("bppMaxKb") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 322 {FNAME("slowSqcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 323 {FNAME("slowQcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 324 {FNAME("slowCifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 325 {FNAME("slowCif4MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 326 {FNAME("slowCif16MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 327 {FNAME("errorCompensation") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 328 {FNAME("enhancementLayerInfo") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, 329 NULL}, 330 {FNAME("h263Options") SEQ, 5, 29, 31, SKIP | EXT | OPT, 0, NULL}, 331 }; 332 333 static const struct field_t _IS11172VideoCapability[] = { /* SEQUENCE */ 334 {FNAME("constrainedBitstream") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 335 {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 336 {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 337 {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 338 {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 339 {FNAME("pictureRate") INT, 4, 0, 0, SKIP | OPT, 0, NULL}, 340 {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL}, 341 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 342 }; 343 344 static const struct field_t _VideoCapability[] = { /* CHOICE */ 345 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 346 _H245_NonStandardParameter}, 347 {FNAME("h261VideoCapability") SEQ, 2, 5, 6, SKIP | EXT, 0, 348 _H261VideoCapability}, 349 {FNAME("h262VideoCapability") SEQ, 6, 17, 18, SKIP | EXT, 0, 350 _H262VideoCapability}, 351 {FNAME("h263VideoCapability") SEQ, 7, 13, 21, SKIP | EXT, 0, 352 _H263VideoCapability}, 353 {FNAME("is11172VideoCapability") SEQ, 6, 7, 8, SKIP | EXT, 0, 354 _IS11172VideoCapability}, 355 {FNAME("genericVideoCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL}, 356 }; 357 358 static const struct field_t _AudioCapability_g7231[] = { /* SEQUENCE */ 359 {FNAME("maxAl-sduAudioFrames") INT, BYTE, 1, 0, SKIP, 0, NULL}, 360 {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 361 }; 362 363 static const struct field_t _IS11172AudioCapability[] = { /* SEQUENCE */ 364 {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 365 {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 366 {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 367 {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 368 {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 369 {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 370 {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 371 {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 372 {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL}, 373 }; 374 375 static const struct field_t _IS13818AudioCapability[] = { /* SEQUENCE */ 376 {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 377 {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 378 {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 379 {FNAME("audioSampling16k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 380 {FNAME("audioSampling22k05") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 381 {FNAME("audioSampling24k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 382 {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 383 {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 384 {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 385 {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 386 {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 387 {FNAME("threeChannels2-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 388 {FNAME("threeChannels3-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 389 {FNAME("fourChannels2-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 390 {FNAME("fourChannels2-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 391 {FNAME("fourChannels3-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 392 {FNAME("fiveChannels3-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 393 {FNAME("fiveChannels3-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 394 {FNAME("lowFrequencyEnhancement") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 395 {FNAME("multilingual") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 396 {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL}, 397 }; 398 399 static const struct field_t _AudioCapability[] = { /* CHOICE */ 400 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 401 _H245_NonStandardParameter}, 402 {FNAME("g711Alaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 403 {FNAME("g711Alaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 404 {FNAME("g711Ulaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 405 {FNAME("g711Ulaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 406 {FNAME("g722-64k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 407 {FNAME("g722-56k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 408 {FNAME("g722-48k") INT, BYTE, 1, 0, SKIP, 0, NULL}, 409 {FNAME("g7231") SEQ, 0, 2, 2, SKIP, 0, _AudioCapability_g7231}, 410 {FNAME("g728") INT, BYTE, 1, 0, SKIP, 0, NULL}, 411 {FNAME("g729") INT, BYTE, 1, 0, SKIP, 0, NULL}, 412 {FNAME("g729AnnexA") INT, BYTE, 1, 0, SKIP, 0, NULL}, 413 {FNAME("is11172AudioCapability") SEQ, 0, 9, 9, SKIP | EXT, 0, 414 _IS11172AudioCapability}, 415 {FNAME("is13818AudioCapability") SEQ, 0, 21, 21, SKIP | EXT, 0, 416 _IS13818AudioCapability}, 417 {FNAME("g729wAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL}, 418 {FNAME("g729AnnexAwAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL}, 419 {FNAME("g7231AnnexCCapability") SEQ, 1, 3, 3, SKIP | EXT, 0, NULL}, 420 {FNAME("gsmFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL}, 421 {FNAME("gsmHalfRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL}, 422 {FNAME("gsmEnhancedFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL}, 423 {FNAME("genericAudioCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL}, 424 {FNAME("g729Extensions") SEQ, 1, 8, 8, SKIP | EXT, 0, NULL}, 425 }; 426 427 static const struct field_t _DataProtocolCapability[] = { /* CHOICE */ 428 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 429 _H245_NonStandardParameter}, 430 {FNAME("v14buffered") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 431 {FNAME("v42lapm") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 432 {FNAME("hdlcFrameTunnelling") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 433 {FNAME("h310SeparateVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 434 {FNAME("h310SingleVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 435 {FNAME("transparent") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 436 {FNAME("segmentationAndReassembly") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 437 {FNAME("hdlcFrameTunnelingwSAR") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 438 {FNAME("v120") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 439 {FNAME("separateLANStack") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 440 {FNAME("v76wCompression") CHOICE, 2, 3, 3, SKIP | EXT, 0, NULL}, 441 {FNAME("tcp") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 442 {FNAME("udp") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 443 }; 444 445 static const struct field_t _T84Profile_t84Restricted[] = { /* SEQUENCE */ 446 {FNAME("qcif") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 447 {FNAME("cif") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 448 {FNAME("ccir601Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 449 {FNAME("ccir601Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 450 {FNAME("hdtvSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 451 {FNAME("hdtvProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 452 {FNAME("g3FacsMH200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 453 {FNAME("g3FacsMH200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 454 {FNAME("g4FacsMMR200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 455 {FNAME("g4FacsMMR200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 456 {FNAME("jbig200x200Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 457 {FNAME("jbig200x200Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 458 {FNAME("jbig300x300Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 459 {FNAME("jbig300x300Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 460 {FNAME("digPhotoLow") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 461 {FNAME("digPhotoMedSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 462 {FNAME("digPhotoMedProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 463 {FNAME("digPhotoHighSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 464 {FNAME("digPhotoHighProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 465 }; 466 467 static const struct field_t _T84Profile[] = { /* CHOICE */ 468 {FNAME("t84Unrestricted") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 469 {FNAME("t84Restricted") SEQ, 0, 19, 19, SKIP | EXT, 0, 470 _T84Profile_t84Restricted}, 471 }; 472 473 static const struct field_t _DataApplicationCapability_application_t84[] = { /* SEQUENCE */ 474 {FNAME("t84Protocol") CHOICE, 3, 7, 14, SKIP | EXT, 0, 475 _DataProtocolCapability}, 476 {FNAME("t84Profile") CHOICE, 1, 2, 2, SKIP, 0, _T84Profile}, 477 }; 478 479 static const struct field_t _DataApplicationCapability_application_nlpid[] = { /* SEQUENCE */ 480 {FNAME("nlpidProtocol") CHOICE, 3, 7, 14, SKIP | EXT, 0, 481 _DataProtocolCapability}, 482 {FNAME("nlpidData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 483 }; 484 485 static const struct field_t _DataApplicationCapability_application[] = { /* CHOICE */ 486 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 487 _H245_NonStandardParameter}, 488 {FNAME("t120") CHOICE, 3, 7, 14, DECODE | EXT, 489 offsetof(DataApplicationCapability_application, t120), 490 _DataProtocolCapability}, 491 {FNAME("dsm-cc") CHOICE, 3, 7, 14, SKIP | EXT, 0, 492 _DataProtocolCapability}, 493 {FNAME("userData") CHOICE, 3, 7, 14, SKIP | EXT, 0, 494 _DataProtocolCapability}, 495 {FNAME("t84") SEQ, 0, 2, 2, SKIP, 0, 496 _DataApplicationCapability_application_t84}, 497 {FNAME("t434") CHOICE, 3, 7, 14, SKIP | EXT, 0, 498 _DataProtocolCapability}, 499 {FNAME("h224") CHOICE, 3, 7, 14, SKIP | EXT, 0, 500 _DataProtocolCapability}, 501 {FNAME("nlpid") SEQ, 0, 2, 2, SKIP, 0, 502 _DataApplicationCapability_application_nlpid}, 503 {FNAME("dsvdControl") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 504 {FNAME("h222DataPartitioning") CHOICE, 3, 7, 14, SKIP | EXT, 0, 505 _DataProtocolCapability}, 506 {FNAME("t30fax") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL}, 507 {FNAME("t140") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL}, 508 {FNAME("t38fax") SEQ, 0, 2, 2, SKIP, 0, NULL}, 509 {FNAME("genericDataCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL}, 510 }; 511 512 static const struct field_t _DataApplicationCapability[] = { /* SEQUENCE */ 513 {FNAME("application") CHOICE, 4, 10, 14, DECODE | EXT, 514 offsetof(DataApplicationCapability, application), 515 _DataApplicationCapability_application}, 516 {FNAME("maxBitRate") INT, CONS, 0, 0, SKIP, 0, NULL}, 517 }; 518 519 static const struct field_t _EncryptionMode[] = { /* CHOICE */ 520 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 521 _H245_NonStandardParameter}, 522 {FNAME("h233Encryption") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 523 }; 524 525 static const struct field_t _DataType[] = { /* CHOICE */ 526 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 527 _H245_NonStandardParameter}, 528 {FNAME("nullData") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 529 {FNAME("videoData") CHOICE, 3, 5, 6, SKIP | EXT, 0, _VideoCapability}, 530 {FNAME("audioData") CHOICE, 4, 14, 22, SKIP | EXT, 0, 531 _AudioCapability}, 532 {FNAME("data") SEQ, 0, 2, 2, DECODE | EXT, offsetof(DataType, data), 533 _DataApplicationCapability}, 534 {FNAME("encryptionData") CHOICE, 1, 2, 2, SKIP | EXT, 0, 535 _EncryptionMode}, 536 {FNAME("h235Control") SEQ, 0, 2, 2, SKIP, 0, NULL}, 537 {FNAME("h235Media") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL}, 538 {FNAME("multiplexedStream") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL}, 539 }; 540 541 static const struct field_t _H222LogicalChannelParameters[] = { /* SEQUENCE */ 542 {FNAME("resourceID") INT, WORD, 0, 0, SKIP, 0, NULL}, 543 {FNAME("subChannelID") INT, WORD, 0, 0, SKIP, 0, NULL}, 544 {FNAME("pcr-pid") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 545 {FNAME("programDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 546 {FNAME("streamDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 547 }; 548 549 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = { /* SEQUENCE */ 550 {FNAME("controlFieldOctets") INT, 2, 0, 0, SKIP, 0, NULL}, 551 {FNAME("sendBufferSize") INT, CONS, 0, 0, SKIP, 0, NULL}, 552 }; 553 554 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType[] = { /* CHOICE */ 555 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, 556 _H245_NonStandardParameter}, 557 {FNAME("al1Framed") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 558 {FNAME("al1NotFramed") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 559 {FNAME("al2WithoutSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 560 {FNAME("al2WithSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 561 {FNAME("al3") SEQ, 0, 2, 2, SKIP, 0, 562 _H223LogicalChannelParameters_adaptationLayerType_al3}, 563 {FNAME("al1M") SEQ, 0, 7, 8, SKIP | EXT, 0, NULL}, 564 {FNAME("al2M") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL}, 565 {FNAME("al3M") SEQ, 0, 5, 6, SKIP | EXT, 0, NULL}, 566 }; 567 568 static const struct field_t _H223LogicalChannelParameters[] = { /* SEQUENCE */ 569 {FNAME("adaptationLayerType") CHOICE, 3, 6, 9, SKIP | EXT, 0, 570 _H223LogicalChannelParameters_adaptationLayerType}, 571 {FNAME("segmentableFlag") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 572 }; 573 574 static const struct field_t _CRCLength[] = { /* CHOICE */ 575 {FNAME("crc8bit") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 576 {FNAME("crc16bit") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 577 {FNAME("crc32bit") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 578 }; 579 580 static const struct field_t _V76HDLCParameters[] = { /* SEQUENCE */ 581 {FNAME("crcLength") CHOICE, 2, 3, 3, SKIP | EXT, 0, _CRCLength}, 582 {FNAME("n401") INT, WORD, 1, 0, SKIP, 0, NULL}, 583 {FNAME("loopbackTestProcedure") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 584 }; 585 586 static const struct field_t _V76LogicalChannelParameters_suspendResume[] = { /* CHOICE */ 587 {FNAME("noSuspendResume") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 588 {FNAME("suspendResumewAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 589 {FNAME("suspendResumewoAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 590 }; 591 592 static const struct field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = { /* CHOICE */ 593 {FNAME("rej") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 594 {FNAME("sREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 595 {FNAME("mSREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 596 }; 597 598 static const struct field_t _V76LogicalChannelParameters_mode_eRM[] = { /* SEQUENCE */ 599 {FNAME("windowSize") INT, 7, 1, 0, SKIP, 0, NULL}, 600 {FNAME("recovery") CHOICE, 2, 3, 3, SKIP | EXT, 0, 601 _V76LogicalChannelParameters_mode_eRM_recovery}, 602 }; 603 604 static const struct field_t _V76LogicalChannelParameters_mode[] = { /* CHOICE */ 605 {FNAME("eRM") SEQ, 0, 2, 2, SKIP | EXT, 0, 606 _V76LogicalChannelParameters_mode_eRM}, 607 {FNAME("uNERM") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 608 }; 609 610 static const struct field_t _V75Parameters[] = { /* SEQUENCE */ 611 {FNAME("audioHeaderPresent") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 612 }; 613 614 static const struct field_t _V76LogicalChannelParameters[] = { /* SEQUENCE */ 615 {FNAME("hdlcParameters") SEQ, 0, 3, 3, SKIP | EXT, 0, 616 _V76HDLCParameters}, 617 {FNAME("suspendResume") CHOICE, 2, 3, 3, SKIP | EXT, 0, 618 _V76LogicalChannelParameters_suspendResume}, 619 {FNAME("uIH") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 620 {FNAME("mode") CHOICE, 1, 2, 2, SKIP | EXT, 0, 621 _V76LogicalChannelParameters_mode}, 622 {FNAME("v75Parameters") SEQ, 0, 1, 1, SKIP | EXT, 0, _V75Parameters}, 623 }; 624 625 static const struct field_t _H2250LogicalChannelParameters_nonStandard[] = { /* SEQUENCE OF */ 626 {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter}, 627 }; 628 629 static const struct field_t _UnicastAddress_iPAddress[] = { /* SEQUENCE */ 630 {FNAME("network") OCTSTR, FIXD, 4, 0, DECODE, 631 offsetof(UnicastAddress_iPAddress, network), NULL}, 632 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL}, 633 }; 634 635 static const struct field_t _UnicastAddress_iPXAddress[] = { /* SEQUENCE */ 636 {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL}, 637 {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 638 {FNAME("tsapIdentifier") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL}, 639 }; 640 641 static const struct field_t _UnicastAddress_iP6Address[] = { /* SEQUENCE */ 642 {FNAME("network") OCTSTR, FIXD, 16, 0, DECODE, 643 offsetof(UnicastAddress_iP6Address, network), NULL}, 644 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL}, 645 }; 646 647 static const struct field_t _UnicastAddress_iPSourceRouteAddress_routing[] = { /* CHOICE */ 648 {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 649 {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 650 }; 651 652 static const struct field_t _UnicastAddress_iPSourceRouteAddress_route[] = { /* SEQUENCE OF */ 653 {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 654 }; 655 656 static const struct field_t _UnicastAddress_iPSourceRouteAddress[] = { /* SEQUENCE */ 657 {FNAME("routing") CHOICE, 1, 2, 2, SKIP, 0, 658 _UnicastAddress_iPSourceRouteAddress_routing}, 659 {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 660 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL}, 661 {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0, 662 _UnicastAddress_iPSourceRouteAddress_route}, 663 }; 664 665 static const struct field_t _UnicastAddress[] = { /* CHOICE */ 666 {FNAME("iPAddress") SEQ, 0, 2, 2, DECODE | EXT, 667 offsetof(UnicastAddress, iPAddress), _UnicastAddress_iPAddress}, 668 {FNAME("iPXAddress") SEQ, 0, 3, 3, SKIP | EXT, 0, 669 _UnicastAddress_iPXAddress}, 670 {FNAME("iP6Address") SEQ, 0, 2, 2, DECODE | EXT, 671 offsetof(UnicastAddress, iP6Address), _UnicastAddress_iP6Address}, 672 {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 673 {FNAME("iPSourceRouteAddress") SEQ, 0, 4, 4, SKIP | EXT, 0, 674 _UnicastAddress_iPSourceRouteAddress}, 675 {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL}, 676 {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL}, 677 }; 678 679 static const struct field_t _MulticastAddress_iPAddress[] = { /* SEQUENCE */ 680 {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL}, 681 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL}, 682 }; 683 684 static const struct field_t _MulticastAddress_iP6Address[] = { /* SEQUENCE */ 685 {FNAME("network") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 686 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL}, 687 }; 688 689 static const struct field_t _MulticastAddress[] = { /* CHOICE */ 690 {FNAME("iPAddress") SEQ, 0, 2, 2, SKIP | EXT, 0, 691 _MulticastAddress_iPAddress}, 692 {FNAME("iP6Address") SEQ, 0, 2, 2, SKIP | EXT, 0, 693 _MulticastAddress_iP6Address}, 694 {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL}, 695 {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL}, 696 }; 697 698 static const struct field_t _H245_TransportAddress[] = { /* CHOICE */ 699 {FNAME("unicastAddress") CHOICE, 3, 5, 7, DECODE | EXT, 700 offsetof(H245_TransportAddress, unicastAddress), _UnicastAddress}, 701 {FNAME("multicastAddress") CHOICE, 1, 2, 4, SKIP | EXT, 0, 702 _MulticastAddress}, 703 }; 704 705 static const struct field_t _H2250LogicalChannelParameters[] = { /* SEQUENCE */ 706 {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 707 _H2250LogicalChannelParameters_nonStandard}, 708 {FNAME("sessionID") INT, BYTE, 0, 0, SKIP, 0, NULL}, 709 {FNAME("associatedSessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL}, 710 {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT, 711 offsetof(H2250LogicalChannelParameters, mediaChannel), 712 _H245_TransportAddress}, 713 {FNAME("mediaGuaranteedDelivery") BOOL, FIXD, 0, 0, SKIP | OPT, 0, 714 NULL}, 715 {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT, 716 offsetof(H2250LogicalChannelParameters, mediaControlChannel), 717 _H245_TransportAddress}, 718 {FNAME("mediaControlGuaranteedDelivery") BOOL, FIXD, 0, 0, STOP | OPT, 719 0, NULL}, 720 {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 721 {FNAME("destination") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL}, 722 {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, STOP | OPT, 0, NULL}, 723 {FNAME("mediaPacketization") CHOICE, 0, 1, 2, STOP | EXT | OPT, 0, 724 NULL}, 725 {FNAME("transportCapability") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, 726 NULL}, 727 {FNAME("redundancyEncoding") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, NULL}, 728 {FNAME("source") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, NULL}, 729 }; 730 731 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */ 732 {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0, 733 _H222LogicalChannelParameters}, 734 {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0, 735 _H223LogicalChannelParameters}, 736 {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0, 737 _V76LogicalChannelParameters}, 738 {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT, 739 offsetof 740 (OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters, 741 h2250LogicalChannelParameters), _H2250LogicalChannelParameters}, 742 {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 743 }; 744 745 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = { /* SEQUENCE */ 746 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 747 {FNAME("dataType") CHOICE, 3, 6, 9, DECODE | EXT, 748 offsetof(OpenLogicalChannel_forwardLogicalChannelParameters, 749 dataType), _DataType}, 750 {FNAME("multiplexParameters") CHOICE, 2, 3, 5, DECODE | EXT, 751 offsetof(OpenLogicalChannel_forwardLogicalChannelParameters, 752 multiplexParameters), 753 _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters}, 754 {FNAME("forwardLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT, 755 0, NULL}, 756 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 757 }; 758 759 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */ 760 {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0, 761 _H223LogicalChannelParameters}, 762 {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0, 763 _V76LogicalChannelParameters}, 764 {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT, 765 offsetof 766 (OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters, 767 h2250LogicalChannelParameters), _H2250LogicalChannelParameters}, 768 }; 769 770 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = { /* SEQUENCE */ 771 {FNAME("dataType") CHOICE, 3, 6, 9, SKIP | EXT, 0, _DataType}, 772 {FNAME("multiplexParameters") CHOICE, 1, 2, 3, DECODE | EXT | OPT, 773 offsetof(OpenLogicalChannel_reverseLogicalChannelParameters, 774 multiplexParameters), 775 _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters}, 776 {FNAME("reverseLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT, 777 0, NULL}, 778 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 779 }; 780 781 static const struct field_t _NetworkAccessParameters_distribution[] = { /* CHOICE */ 782 {FNAME("unicast") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 783 {FNAME("multicast") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 784 }; 785 786 static const struct field_t _Q2931Address_address[] = { /* CHOICE */ 787 {FNAME("internationalNumber") NUMSTR, 4, 1, 0, SKIP, 0, NULL}, 788 {FNAME("nsapAddress") OCTSTR, 5, 1, 0, SKIP, 0, NULL}, 789 }; 790 791 static const struct field_t _Q2931Address[] = { /* SEQUENCE */ 792 {FNAME("address") CHOICE, 1, 2, 2, SKIP | EXT, 0, 793 _Q2931Address_address}, 794 {FNAME("subaddress") OCTSTR, 5, 1, 0, SKIP | OPT, 0, NULL}, 795 }; 796 797 static const struct field_t _NetworkAccessParameters_networkAddress[] = { /* CHOICE */ 798 {FNAME("q2931Address") SEQ, 1, 2, 2, SKIP | EXT, 0, _Q2931Address}, 799 {FNAME("e164Address") NUMDGT, 7, 1, 0, SKIP, 0, NULL}, 800 {FNAME("localAreaAddress") CHOICE, 1, 2, 2, DECODE | EXT, 801 offsetof(NetworkAccessParameters_networkAddress, localAreaAddress), 802 _H245_TransportAddress}, 803 }; 804 805 static const struct field_t _NetworkAccessParameters[] = { /* SEQUENCE */ 806 {FNAME("distribution") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, 807 _NetworkAccessParameters_distribution}, 808 {FNAME("networkAddress") CHOICE, 2, 3, 3, DECODE | EXT, 809 offsetof(NetworkAccessParameters, networkAddress), 810 _NetworkAccessParameters_networkAddress}, 811 {FNAME("associateConference") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 812 {FNAME("externalReference") OCTSTR, 8, 1, 0, SKIP | OPT, 0, NULL}, 813 {FNAME("t120SetupProcedure") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0, 814 NULL}, 815 }; 816 817 static const struct field_t _OpenLogicalChannel[] = { /* SEQUENCE */ 818 {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL}, 819 {FNAME("forwardLogicalChannelParameters") SEQ, 1, 3, 5, DECODE | EXT, 820 offsetof(OpenLogicalChannel, forwardLogicalChannelParameters), 821 _OpenLogicalChannel_forwardLogicalChannelParameters}, 822 {FNAME("reverseLogicalChannelParameters") SEQ, 1, 2, 4, 823 DECODE | EXT | OPT, offsetof(OpenLogicalChannel, 824 reverseLogicalChannelParameters), 825 _OpenLogicalChannel_reverseLogicalChannelParameters}, 826 {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT, 827 offsetof(OpenLogicalChannel, separateStack), 828 _NetworkAccessParameters}, 829 {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL}, 830 }; 831 832 static const struct field_t _Setup_UUIE_fastStart[] = { /* SEQUENCE OF */ 833 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 834 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 835 , 836 }; 837 838 static const struct field_t _Setup_UUIE[] = { /* SEQUENCE */ 839 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 840 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 841 offsetof(Setup_UUIE, h245Address), _TransportAddress}, 842 {FNAME("sourceAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 843 _Setup_UUIE_sourceAddress}, 844 {FNAME("sourceInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType}, 845 {FNAME("destinationAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 846 _Setup_UUIE_destinationAddress}, 847 {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 848 offsetof(Setup_UUIE, destCallSignalAddress), _TransportAddress}, 849 {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 850 _Setup_UUIE_destExtraCallInfo}, 851 {FNAME("destExtraCRV") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 852 _Setup_UUIE_destExtraCRV}, 853 {FNAME("activeMC") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 854 {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 855 {FNAME("conferenceGoal") CHOICE, 2, 3, 5, SKIP | EXT, 0, 856 _Setup_UUIE_conferenceGoal}, 857 {FNAME("callServices") SEQ, 0, 8, 8, SKIP | EXT | OPT, 0, 858 _QseriesOptions}, 859 {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType}, 860 {FNAME("sourceCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 861 offsetof(Setup_UUIE, sourceCallSignalAddress), _TransportAddress}, 862 {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0, 863 NULL}, 864 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 865 {FNAME("h245SecurityCapability") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 866 NULL}, 867 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 868 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 869 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 870 offsetof(Setup_UUIE, fastStart), _Setup_UUIE_fastStart}, 871 {FNAME("mediaWaitForConnect") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 872 {FNAME("canOverlapSend") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 873 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 874 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 875 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 876 {FNAME("connectionParameters") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0, 877 NULL}, 878 {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 879 {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0, 880 NULL}, 881 {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0, 882 NULL}, 883 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 884 {FNAME("symmetricOperationRequired") NUL, FIXD, 0, 0, SKIP | OPT, 0, 885 NULL}, 886 {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL}, 887 {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL}, 888 {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 889 {FNAME("neededFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 890 {FNAME("desiredFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 891 {FNAME("supportedFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 892 {FNAME("parallelH245Control") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 893 {FNAME("additionalSourceAddresses") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 894 NULL}, 895 }; 896 897 static const struct field_t _CallProceeding_UUIE_fastStart[] = { /* SEQUENCE OF */ 898 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 899 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 900 , 901 }; 902 903 static const struct field_t _CallProceeding_UUIE[] = { /* SEQUENCE */ 904 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 905 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, 906 _EndpointType}, 907 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 908 offsetof(CallProceeding_UUIE, h245Address), _TransportAddress}, 909 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 910 {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0, 911 NULL}, 912 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 913 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 914 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 915 offsetof(CallProceeding_UUIE, fastStart), 916 _CallProceeding_UUIE_fastStart}, 917 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 918 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 919 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 920 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL}, 921 }; 922 923 static const struct field_t _Connect_UUIE_fastStart[] = { /* SEQUENCE OF */ 924 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 925 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 926 , 927 }; 928 929 static const struct field_t _Connect_UUIE[] = { /* SEQUENCE */ 930 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 931 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 932 offsetof(Connect_UUIE, h245Address), _TransportAddress}, 933 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, 934 _EndpointType}, 935 {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 936 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 937 {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0, 938 NULL}, 939 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 940 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 941 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 942 offsetof(Connect_UUIE, fastStart), _Connect_UUIE_fastStart}, 943 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 944 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 945 {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 946 {FNAME("connectedAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 947 {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0, 948 NULL}, 949 {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0, 950 NULL}, 951 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 952 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 953 {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL}, 954 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL}, 955 }; 956 957 static const struct field_t _Alerting_UUIE_fastStart[] = { /* SEQUENCE OF */ 958 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 959 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 960 , 961 }; 962 963 static const struct field_t _Alerting_UUIE[] = { /* SEQUENCE */ 964 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 965 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, 966 _EndpointType}, 967 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 968 offsetof(Alerting_UUIE, h245Address), _TransportAddress}, 969 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 970 {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0, 971 NULL}, 972 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 973 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 974 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 975 offsetof(Alerting_UUIE, fastStart), _Alerting_UUIE_fastStart}, 976 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 977 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 978 {FNAME("alertingAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 979 {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0, 980 NULL}, 981 {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0, 982 NULL}, 983 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 984 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 985 {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL}, 986 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL}, 987 }; 988 989 static const struct field_t _Information_UUIE[] = { /* SEQUENCE */ 990 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 991 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 992 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 993 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 994 {FNAME("fastStart") SEQOF, SEMI, 0, 30, SKIP | OPT, 0, NULL}, 995 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 996 {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL}, 997 }; 998 999 static const struct field_t _ReleaseCompleteReason[] = { /* CHOICE */ 1000 {FNAME("noBandwidth") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1001 {FNAME("gatekeeperResources") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1002 {FNAME("unreachableDestination") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1003 {FNAME("destinationRejection") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1004 {FNAME("invalidRevision") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1005 {FNAME("noPermission") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1006 {FNAME("unreachableGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1007 {FNAME("gatewayResources") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1008 {FNAME("badFormatAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1009 {FNAME("adaptiveBusy") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1010 {FNAME("inConf") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1011 {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1012 {FNAME("facilityCallDeflection") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1013 {FNAME("securityDenied") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1014 {FNAME("calledPartyNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1015 {FNAME("callerNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1016 {FNAME("newConnectionNeeded") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1017 {FNAME("nonStandardReason") SEQ, 0, 2, 2, SKIP, 0, NULL}, 1018 {FNAME("replaceWithConferenceInvite") OCTSTR, FIXD, 16, 0, SKIP, 0, 1019 NULL}, 1020 {FNAME("genericDataReason") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1021 {FNAME("neededFeatureNotSupported") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1022 {FNAME("tunnelledSignallingRejected") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1023 }; 1024 1025 static const struct field_t _ReleaseComplete_UUIE[] = { /* SEQUENCE */ 1026 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1027 {FNAME("reason") CHOICE, 4, 12, 22, SKIP | EXT | OPT, 0, 1028 _ReleaseCompleteReason}, 1029 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 1030 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1031 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1032 {FNAME("busyAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1033 {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0, 1034 NULL}, 1035 {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0, 1036 NULL}, 1037 {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL}, 1038 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1039 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL}, 1040 }; 1041 1042 static const struct field_t _Facility_UUIE_alternativeAliasAddress[] = { /* SEQUENCE OF */ 1043 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1044 }; 1045 1046 static const struct field_t _FacilityReason[] = { /* CHOICE */ 1047 {FNAME("routeCallToGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1048 {FNAME("callForwarded") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1049 {FNAME("routeCallToMC") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1050 {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1051 {FNAME("conferenceListChoice") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1052 {FNAME("startH245") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1053 {FNAME("noH245") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1054 {FNAME("newTokens") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1055 {FNAME("featureSetUpdate") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1056 {FNAME("forwardedElements") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1057 {FNAME("transportedInformation") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1058 }; 1059 1060 static const struct field_t _Facility_UUIE_fastStart[] = { /* SEQUENCE OF */ 1061 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 1062 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 1063 , 1064 }; 1065 1066 static const struct field_t _Facility_UUIE[] = { /* SEQUENCE */ 1067 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1068 {FNAME("alternativeAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 1069 offsetof(Facility_UUIE, alternativeAddress), _TransportAddress}, 1070 {FNAME("alternativeAliasAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1071 _Facility_UUIE_alternativeAliasAddress}, 1072 {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL}, 1073 {FNAME("reason") CHOICE, 2, 4, 11, DECODE | EXT, 1074 offsetof(Facility_UUIE, reason), _FacilityReason}, 1075 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL}, 1076 {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1077 {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0, 1078 NULL}, 1079 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1080 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1081 {FNAME("conferences") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1082 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 1083 offsetof(Facility_UUIE, h245Address), _TransportAddress}, 1084 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 1085 offsetof(Facility_UUIE, fastStart), _Facility_UUIE_fastStart}, 1086 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1087 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1088 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 1089 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1090 {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL}, 1091 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL}, 1092 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT | OPT, 0, NULL}, 1093 {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0, 1094 NULL}, 1095 }; 1096 1097 static const struct field_t _CallIdentifier[] = { /* SEQUENCE */ 1098 {FNAME("guid") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL}, 1099 }; 1100 1101 static const struct field_t _SecurityServiceMode[] = { /* CHOICE */ 1102 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter}, 1103 {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1104 {FNAME("default") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1105 }; 1106 1107 static const struct field_t _SecurityCapabilities[] = { /* SEQUENCE */ 1108 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0, 1109 _NonStandardParameter}, 1110 {FNAME("encryption") CHOICE, 2, 3, 3, SKIP | EXT, 0, 1111 _SecurityServiceMode}, 1112 {FNAME("authenticaton") CHOICE, 2, 3, 3, SKIP | EXT, 0, 1113 _SecurityServiceMode}, 1114 {FNAME("integrity") CHOICE, 2, 3, 3, SKIP | EXT, 0, 1115 _SecurityServiceMode}, 1116 }; 1117 1118 static const struct field_t _H245Security[] = { /* CHOICE */ 1119 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter}, 1120 {FNAME("noSecurity") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1121 {FNAME("tls") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities}, 1122 {FNAME("ipsec") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities}, 1123 }; 1124 1125 static const struct field_t _DHset[] = { /* SEQUENCE */ 1126 {FNAME("halfkey") BITSTR, WORD, 0, 0, SKIP, 0, NULL}, 1127 {FNAME("modSize") BITSTR, WORD, 0, 0, SKIP, 0, NULL}, 1128 {FNAME("generator") BITSTR, WORD, 0, 0, SKIP, 0, NULL}, 1129 }; 1130 1131 static const struct field_t _TypedCertificate[] = { /* SEQUENCE */ 1132 {FNAME("type") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1133 {FNAME("certificate") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1134 }; 1135 1136 static const struct field_t _H235_NonStandardParameter[] = { /* SEQUENCE */ 1137 {FNAME("nonStandardIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1138 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1139 }; 1140 1141 static const struct field_t _ClearToken[] = { /* SEQUENCE */ 1142 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1143 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP | OPT, 0, NULL}, 1144 {FNAME("password") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1145 {FNAME("dhkey") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0, _DHset}, 1146 {FNAME("challenge") OCTSTR, 7, 8, 0, SKIP | OPT, 0, NULL}, 1147 {FNAME("random") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL}, 1148 {FNAME("certificate") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, 1149 _TypedCertificate}, 1150 {FNAME("generalID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1151 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0, 1152 _H235_NonStandardParameter}, 1153 {FNAME("eckasdhkey") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, NULL}, 1154 {FNAME("sendersID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1155 }; 1156 1157 static const struct field_t _Progress_UUIE_tokens[] = { /* SEQUENCE OF */ 1158 {FNAME("item") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken}, 1159 }; 1160 1161 static const struct field_t _Params[] = { /* SEQUENCE */ 1162 {FNAME("ranInt") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL}, 1163 {FNAME("iv8") OCTSTR, FIXD, 8, 0, SKIP | OPT, 0, NULL}, 1164 {FNAME("iv16") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL}, 1165 }; 1166 1167 static const struct field_t _CryptoH323Token_cryptoEPPwdHash_token[] = { /* SEQUENCE */ 1168 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1169 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1170 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1171 }; 1172 1173 static const struct field_t _CryptoH323Token_cryptoEPPwdHash[] = { /* SEQUENCE */ 1174 {FNAME("alias") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1175 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL}, 1176 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0, 1177 _CryptoH323Token_cryptoEPPwdHash_token}, 1178 }; 1179 1180 static const struct field_t _CryptoH323Token_cryptoGKPwdHash_token[] = { /* SEQUENCE */ 1181 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1182 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1183 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1184 }; 1185 1186 static const struct field_t _CryptoH323Token_cryptoGKPwdHash[] = { /* SEQUENCE */ 1187 {FNAME("gatekeeperId") BMPSTR, 7, 1, 0, SKIP, 0, NULL}, 1188 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL}, 1189 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0, 1190 _CryptoH323Token_cryptoGKPwdHash_token}, 1191 }; 1192 1193 static const struct field_t _CryptoH323Token_cryptoEPPwdEncr[] = { /* SEQUENCE */ 1194 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1195 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1196 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1197 }; 1198 1199 static const struct field_t _CryptoH323Token_cryptoGKPwdEncr[] = { /* SEQUENCE */ 1200 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1201 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1202 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1203 }; 1204 1205 static const struct field_t _CryptoH323Token_cryptoEPCert[] = { /* SEQUENCE */ 1206 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL}, 1207 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1208 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1209 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1210 }; 1211 1212 static const struct field_t _CryptoH323Token_cryptoGKCert[] = { /* SEQUENCE */ 1213 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL}, 1214 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1215 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1216 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1217 }; 1218 1219 static const struct field_t _CryptoH323Token_cryptoFastStart[] = { /* SEQUENCE */ 1220 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL}, 1221 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1222 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1223 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1224 }; 1225 1226 static const struct field_t _CryptoToken_cryptoEncryptedToken_token[] = { /* SEQUENCE */ 1227 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1228 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1229 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1230 }; 1231 1232 static const struct field_t _CryptoToken_cryptoEncryptedToken[] = { /* SEQUENCE */ 1233 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1234 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0, 1235 _CryptoToken_cryptoEncryptedToken_token}, 1236 }; 1237 1238 static const struct field_t _CryptoToken_cryptoSignedToken_token[] = { /* SEQUENCE */ 1239 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL}, 1240 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1241 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1242 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1243 }; 1244 1245 static const struct field_t _CryptoToken_cryptoSignedToken[] = { /* SEQUENCE */ 1246 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1247 {FNAME("token") SEQ, 0, 4, 4, SKIP, 0, 1248 _CryptoToken_cryptoSignedToken_token}, 1249 }; 1250 1251 static const struct field_t _CryptoToken_cryptoHashedToken_token[] = { /* SEQUENCE */ 1252 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1253 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1254 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1255 }; 1256 1257 static const struct field_t _CryptoToken_cryptoHashedToken[] = { /* SEQUENCE */ 1258 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1259 {FNAME("hashedVals") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken}, 1260 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0, 1261 _CryptoToken_cryptoHashedToken_token}, 1262 }; 1263 1264 static const struct field_t _CryptoToken_cryptoPwdEncr[] = { /* SEQUENCE */ 1265 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1266 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params}, 1267 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL}, 1268 }; 1269 1270 static const struct field_t _CryptoToken[] = { /* CHOICE */ 1271 {FNAME("cryptoEncryptedToken") SEQ, 0, 2, 2, SKIP, 0, 1272 _CryptoToken_cryptoEncryptedToken}, 1273 {FNAME("cryptoSignedToken") SEQ, 0, 2, 2, SKIP, 0, 1274 _CryptoToken_cryptoSignedToken}, 1275 {FNAME("cryptoHashedToken") SEQ, 0, 3, 3, SKIP, 0, 1276 _CryptoToken_cryptoHashedToken}, 1277 {FNAME("cryptoPwdEncr") SEQ, 0, 3, 3, SKIP, 0, 1278 _CryptoToken_cryptoPwdEncr}, 1279 }; 1280 1281 static const struct field_t _CryptoH323Token[] = { /* CHOICE */ 1282 {FNAME("cryptoEPPwdHash") SEQ, 0, 3, 3, SKIP, 0, 1283 _CryptoH323Token_cryptoEPPwdHash}, 1284 {FNAME("cryptoGKPwdHash") SEQ, 0, 3, 3, SKIP, 0, 1285 _CryptoH323Token_cryptoGKPwdHash}, 1286 {FNAME("cryptoEPPwdEncr") SEQ, 0, 3, 3, SKIP, 0, 1287 _CryptoH323Token_cryptoEPPwdEncr}, 1288 {FNAME("cryptoGKPwdEncr") SEQ, 0, 3, 3, SKIP, 0, 1289 _CryptoH323Token_cryptoGKPwdEncr}, 1290 {FNAME("cryptoEPCert") SEQ, 0, 4, 4, SKIP, 0, 1291 _CryptoH323Token_cryptoEPCert}, 1292 {FNAME("cryptoGKCert") SEQ, 0, 4, 4, SKIP, 0, 1293 _CryptoH323Token_cryptoGKCert}, 1294 {FNAME("cryptoFastStart") SEQ, 0, 4, 4, SKIP, 0, 1295 _CryptoH323Token_cryptoFastStart}, 1296 {FNAME("nestedcryptoToken") CHOICE, 2, 4, 4, SKIP | EXT, 0, 1297 _CryptoToken}, 1298 }; 1299 1300 static const struct field_t _Progress_UUIE_cryptoTokens[] = { /* SEQUENCE OF */ 1301 {FNAME("item") CHOICE, 3, 8, 8, SKIP | EXT, 0, _CryptoH323Token}, 1302 }; 1303 1304 static const struct field_t _Progress_UUIE_fastStart[] = { /* SEQUENCE OF */ 1305 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT, 1306 sizeof(OpenLogicalChannel), _OpenLogicalChannel} 1307 , 1308 }; 1309 1310 static const struct field_t _Progress_UUIE[] = { /* SEQUENCE */ 1311 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1312 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, 1313 _EndpointType}, 1314 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 1315 offsetof(Progress_UUIE, h245Address), _TransportAddress}, 1316 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, 1317 _CallIdentifier}, 1318 {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0, 1319 _H245Security}, 1320 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1321 _Progress_UUIE_tokens}, 1322 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1323 _Progress_UUIE_cryptoTokens}, 1324 {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT, 1325 offsetof(Progress_UUIE, fastStart), _Progress_UUIE_fastStart}, 1326 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1327 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1328 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL}, 1329 }; 1330 1331 static const struct field_t _H323_UU_PDU_h323_message_body[] = { /* CHOICE */ 1332 {FNAME("setup") SEQ, 7, 13, 39, DECODE | EXT, 1333 offsetof(H323_UU_PDU_h323_message_body, setup), _Setup_UUIE}, 1334 {FNAME("callProceeding") SEQ, 1, 3, 12, DECODE | EXT, 1335 offsetof(H323_UU_PDU_h323_message_body, callProceeding), 1336 _CallProceeding_UUIE}, 1337 {FNAME("connect") SEQ, 1, 4, 19, DECODE | EXT, 1338 offsetof(H323_UU_PDU_h323_message_body, connect), _Connect_UUIE}, 1339 {FNAME("alerting") SEQ, 1, 3, 17, DECODE | EXT, 1340 offsetof(H323_UU_PDU_h323_message_body, alerting), _Alerting_UUIE}, 1341 {FNAME("information") SEQ, 0, 1, 7, SKIP | EXT, 0, _Information_UUIE}, 1342 {FNAME("releaseComplete") SEQ, 1, 2, 11, SKIP | EXT, 0, 1343 _ReleaseComplete_UUIE}, 1344 {FNAME("facility") SEQ, 3, 5, 21, DECODE | EXT, 1345 offsetof(H323_UU_PDU_h323_message_body, facility), _Facility_UUIE}, 1346 {FNAME("progress") SEQ, 5, 8, 11, DECODE | EXT, 1347 offsetof(H323_UU_PDU_h323_message_body, progress), _Progress_UUIE}, 1348 {FNAME("empty") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1349 {FNAME("status") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL}, 1350 {FNAME("statusInquiry") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL}, 1351 {FNAME("setupAcknowledge") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL}, 1352 {FNAME("notify") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL}, 1353 }; 1354 1355 static const struct field_t _RequestMessage[] = { /* CHOICE */ 1356 {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1357 {FNAME("masterSlaveDetermination") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1358 {FNAME("terminalCapabilitySet") SEQ, 3, 5, 5, STOP | EXT, 0, NULL}, 1359 {FNAME("openLogicalChannel") SEQ, 1, 3, 5, DECODE | EXT, 1360 offsetof(RequestMessage, openLogicalChannel), _OpenLogicalChannel}, 1361 {FNAME("closeLogicalChannel") SEQ, 0, 2, 3, STOP | EXT, 0, NULL}, 1362 {FNAME("requestChannelClose") SEQ, 0, 1, 3, STOP | EXT, 0, NULL}, 1363 {FNAME("multiplexEntrySend") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1364 {FNAME("requestMultiplexEntry") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1365 {FNAME("requestMode") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1366 {FNAME("roundTripDelayRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1367 {FNAME("maintenanceLoopRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1368 {FNAME("communicationModeRequest") SEQ, 0, 0, 0, STOP | EXT, 0, NULL}, 1369 {FNAME("conferenceRequest") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL}, 1370 {FNAME("multilinkRequest") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL}, 1371 {FNAME("logicalChannelRateRequest") SEQ, 0, 3, 3, STOP | EXT, 0, 1372 NULL}, 1373 }; 1374 1375 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */ 1376 {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0, 1377 _H222LogicalChannelParameters}, 1378 {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT, 1379 offsetof 1380 (OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters, 1381 h2250LogicalChannelParameters), _H2250LogicalChannelParameters}, 1382 }; 1383 1384 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = { /* SEQUENCE */ 1385 {FNAME("reverseLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL}, 1386 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 1387 {FNAME("multiplexParameters") CHOICE, 0, 1, 2, DECODE | EXT | OPT, 1388 offsetof(OpenLogicalChannelAck_reverseLogicalChannelParameters, 1389 multiplexParameters), 1390 _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters}, 1391 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL}, 1392 }; 1393 1394 static const struct field_t _H2250LogicalChannelAckParameters_nonStandard[] = { /* SEQUENCE OF */ 1395 {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter}, 1396 }; 1397 1398 static const struct field_t _H2250LogicalChannelAckParameters[] = { /* SEQUENCE */ 1399 {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1400 _H2250LogicalChannelAckParameters_nonStandard}, 1401 {FNAME("sessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL}, 1402 {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT, 1403 offsetof(H2250LogicalChannelAckParameters, mediaChannel), 1404 _H245_TransportAddress}, 1405 {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT, 1406 offsetof(H2250LogicalChannelAckParameters, mediaControlChannel), 1407 _H245_TransportAddress}, 1408 {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, SKIP | OPT, 0, NULL}, 1409 {FNAME("flowControlToZero") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1410 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL}, 1411 }; 1412 1413 static const struct field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = { /* CHOICE */ 1414 {FNAME("h2250LogicalChannelAckParameters") SEQ, 5, 5, 7, DECODE | EXT, 1415 offsetof(OpenLogicalChannelAck_forwardMultiplexAckParameters, 1416 h2250LogicalChannelAckParameters), 1417 _H2250LogicalChannelAckParameters}, 1418 }; 1419 1420 static const struct field_t _OpenLogicalChannelAck[] = { /* SEQUENCE */ 1421 {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL}, 1422 {FNAME("reverseLogicalChannelParameters") SEQ, 2, 3, 4, 1423 DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck, 1424 reverseLogicalChannelParameters), 1425 _OpenLogicalChannelAck_reverseLogicalChannelParameters}, 1426 {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT, 1427 offsetof(OpenLogicalChannelAck, separateStack), 1428 _NetworkAccessParameters}, 1429 {FNAME("forwardMultiplexAckParameters") CHOICE, 0, 1, 1, 1430 DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck, 1431 forwardMultiplexAckParameters), 1432 _OpenLogicalChannelAck_forwardMultiplexAckParameters}, 1433 {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL}, 1434 }; 1435 1436 static const struct field_t _ResponseMessage[] = { /* CHOICE */ 1437 {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1438 {FNAME("masterSlaveDeterminationAck") SEQ, 0, 1, 1, STOP | EXT, 0, 1439 NULL}, 1440 {FNAME("masterSlaveDeterminationReject") SEQ, 0, 1, 1, STOP | EXT, 0, 1441 NULL}, 1442 {FNAME("terminalCapabilitySetAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1443 {FNAME("terminalCapabilitySetReject") SEQ, 0, 2, 2, STOP | EXT, 0, 1444 NULL}, 1445 {FNAME("openLogicalChannelAck") SEQ, 1, 2, 5, DECODE | EXT, 1446 offsetof(ResponseMessage, openLogicalChannelAck), 1447 _OpenLogicalChannelAck}, 1448 {FNAME("openLogicalChannelReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1449 {FNAME("closeLogicalChannelAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1450 {FNAME("requestChannelCloseAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1451 {FNAME("requestChannelCloseReject") SEQ, 0, 2, 2, STOP | EXT, 0, 1452 NULL}, 1453 {FNAME("multiplexEntrySendAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1454 {FNAME("multiplexEntrySendReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1455 {FNAME("requestMultiplexEntryAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1456 {FNAME("requestMultiplexEntryReject") SEQ, 0, 2, 2, STOP | EXT, 0, 1457 NULL}, 1458 {FNAME("requestModeAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1459 {FNAME("requestModeReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1460 {FNAME("roundTripDelayResponse") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1461 {FNAME("maintenanceLoopAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1462 {FNAME("maintenanceLoopReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL}, 1463 {FNAME("communicationModeResponse") CHOICE, 0, 1, 1, STOP | EXT, 0, 1464 NULL}, 1465 {FNAME("conferenceResponse") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL}, 1466 {FNAME("multilinkResponse") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL}, 1467 {FNAME("logicalChannelRateAcknowledge") SEQ, 0, 3, 3, STOP | EXT, 0, 1468 NULL}, 1469 {FNAME("logicalChannelRateReject") SEQ, 1, 4, 4, STOP | EXT, 0, NULL}, 1470 }; 1471 1472 static const struct field_t _MultimediaSystemControlMessage[] = { /* CHOICE */ 1473 {FNAME("request") CHOICE, 4, 11, 15, DECODE | EXT, 1474 offsetof(MultimediaSystemControlMessage, request), _RequestMessage}, 1475 {FNAME("response") CHOICE, 5, 19, 24, DECODE | EXT, 1476 offsetof(MultimediaSystemControlMessage, response), 1477 _ResponseMessage}, 1478 {FNAME("command") CHOICE, 3, 7, 12, STOP | EXT, 0, NULL}, 1479 {FNAME("indication") CHOICE, 4, 14, 23, STOP | EXT, 0, NULL}, 1480 }; 1481 1482 static const struct field_t _H323_UU_PDU_h245Control[] = { /* SEQUENCE OF */ 1483 {FNAME("item") CHOICE, 2, 4, 4, DECODE | OPEN | EXT, 1484 sizeof(MultimediaSystemControlMessage), 1485 _MultimediaSystemControlMessage} 1486 , 1487 }; 1488 1489 static const struct field_t _H323_UU_PDU[] = { /* SEQUENCE */ 1490 {FNAME("h323-message-body") CHOICE, 3, 7, 13, DECODE | EXT, 1491 offsetof(H323_UU_PDU, h323_message_body), 1492 _H323_UU_PDU_h323_message_body}, 1493 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1494 _NonStandardParameter}, 1495 {FNAME("h4501SupplementaryService") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1496 NULL}, 1497 {FNAME("h245Tunneling") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1498 {FNAME("h245Control") SEQOF, SEMI, 0, 4, DECODE | OPT, 1499 offsetof(H323_UU_PDU, h245Control), _H323_UU_PDU_h245Control}, 1500 {FNAME("nonStandardControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1501 {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL}, 1502 {FNAME("tunnelledSignallingMessage") SEQ, 2, 4, 4, STOP | EXT | OPT, 1503 0, NULL}, 1504 {FNAME("provisionalRespToH245Tunneling") NUL, FIXD, 0, 0, STOP | OPT, 1505 0, NULL}, 1506 {FNAME("stimulusControl") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL}, 1507 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1508 }; 1509 1510 static const struct field_t _H323_UserInformation[] = { /* SEQUENCE */ 1511 {FNAME("h323-uu-pdu") SEQ, 1, 2, 11, DECODE | EXT, 1512 offsetof(H323_UserInformation, h323_uu_pdu), _H323_UU_PDU}, 1513 {FNAME("user-data") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL}, 1514 }; 1515 1516 static const struct field_t _GatekeeperRequest[] = { /* SEQUENCE */ 1517 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1518 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1519 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1520 _NonStandardParameter}, 1521 {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1522 offsetof(GatekeeperRequest, rasAddress), _TransportAddress}, 1523 {FNAME("endpointType") SEQ, 6, 8, 10, STOP | EXT, 0, NULL}, 1524 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1525 {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL}, 1526 {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1527 {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1528 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1529 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1530 {FNAME("authenticationCapability") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1531 NULL}, 1532 {FNAME("algorithmOIDs") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1533 {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1534 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1535 {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1536 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1537 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1538 }; 1539 1540 static const struct field_t _GatekeeperConfirm[] = { /* SEQUENCE */ 1541 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1542 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1543 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1544 _NonStandardParameter}, 1545 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1546 {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1547 offsetof(GatekeeperConfirm, rasAddress), _TransportAddress}, 1548 {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1549 {FNAME("authenticationMode") CHOICE, 3, 7, 8, STOP | EXT | OPT, 0, 1550 NULL}, 1551 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1552 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1553 {FNAME("algorithmOID") OID, BYTE, 0, 0, STOP | OPT, 0, NULL}, 1554 {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1555 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1556 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1557 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1558 }; 1559 1560 static const struct field_t _RegistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */ 1561 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT, 1562 sizeof(TransportAddress), _TransportAddress} 1563 , 1564 }; 1565 1566 static const struct field_t _RegistrationRequest_rasAddress[] = { /* SEQUENCE OF */ 1567 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT, 1568 sizeof(TransportAddress), _TransportAddress} 1569 , 1570 }; 1571 1572 static const struct field_t _RegistrationRequest_terminalAlias[] = { /* SEQUENCE OF */ 1573 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1574 }; 1575 1576 static const struct field_t _RegistrationRequest[] = { /* SEQUENCE */ 1577 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1578 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1579 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1580 _NonStandardParameter}, 1581 {FNAME("discoveryComplete") BOOL, FIXD, 0, 0, SKIP, 0, NULL}, 1582 {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE, 1583 offsetof(RegistrationRequest, callSignalAddress), 1584 _RegistrationRequest_callSignalAddress}, 1585 {FNAME("rasAddress") SEQOF, SEMI, 0, 10, DECODE, 1586 offsetof(RegistrationRequest, rasAddress), 1587 _RegistrationRequest_rasAddress}, 1588 {FNAME("terminalType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType}, 1589 {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1590 _RegistrationRequest_terminalAlias}, 1591 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1592 {FNAME("endpointVendor") SEQ, 2, 3, 3, SKIP | EXT, 0, 1593 _VendorIdentifier}, 1594 {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1595 {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT, 1596 offsetof(RegistrationRequest, timeToLive), NULL}, 1597 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1598 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1599 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1600 {FNAME("keepAlive") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1601 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1602 {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1603 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1604 {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT, 1605 0, NULL}, 1606 {FNAME("additiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1607 {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1608 NULL}, 1609 {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1610 {FNAME("usageReportingCapability") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, 1611 NULL}, 1612 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1613 {FNAME("supportedH248Packages") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1614 NULL}, 1615 {FNAME("callCreditCapability") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, 1616 NULL}, 1617 {FNAME("capacityReportingCapability") SEQ, 0, 1, 1, STOP | EXT | OPT, 1618 0, NULL}, 1619 {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL}, 1620 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1621 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1622 }; 1623 1624 static const struct field_t _RegistrationConfirm_callSignalAddress[] = { /* SEQUENCE OF */ 1625 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT, 1626 sizeof(TransportAddress), _TransportAddress} 1627 , 1628 }; 1629 1630 static const struct field_t _RegistrationConfirm_terminalAlias[] = { /* SEQUENCE OF */ 1631 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1632 }; 1633 1634 static const struct field_t _RegistrationConfirm[] = { /* SEQUENCE */ 1635 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1636 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL}, 1637 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1638 _NonStandardParameter}, 1639 {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE, 1640 offsetof(RegistrationConfirm, callSignalAddress), 1641 _RegistrationConfirm_callSignalAddress}, 1642 {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1643 _RegistrationConfirm_terminalAlias}, 1644 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1645 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL}, 1646 {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL}, 1647 {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT, 1648 offsetof(RegistrationConfirm, timeToLive), NULL}, 1649 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1650 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1651 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1652 {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1653 {FNAME("preGrantedARQ") SEQ, 0, 4, 8, STOP | EXT | OPT, 0, NULL}, 1654 {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1655 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1656 {FNAME("supportsAdditiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0, 1657 NULL}, 1658 {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1659 NULL}, 1660 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1661 {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1662 {FNAME("featureServerAlias") CHOICE, 1, 2, 7, STOP | EXT | OPT, 0, 1663 NULL}, 1664 {FNAME("capacityReportingSpec") SEQ, 0, 1, 1, STOP | EXT | OPT, 0, 1665 NULL}, 1666 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1667 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1668 }; 1669 1670 static const struct field_t _UnregistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */ 1671 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT, 1672 sizeof(TransportAddress), _TransportAddress} 1673 , 1674 }; 1675 1676 static const struct field_t _UnregistrationRequest[] = { /* SEQUENCE */ 1677 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1678 {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE, 1679 offsetof(UnregistrationRequest, callSignalAddress), 1680 _UnregistrationRequest_callSignalAddress}, 1681 {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1682 {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1683 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1684 {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1685 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1686 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1687 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1688 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1689 {FNAME("reason") CHOICE, 2, 4, 5, STOP | EXT | OPT, 0, NULL}, 1690 {FNAME("endpointAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1691 NULL}, 1692 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1693 {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1694 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1695 }; 1696 1697 static const struct field_t _CallModel[] = { /* CHOICE */ 1698 {FNAME("direct") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1699 {FNAME("gatekeeperRouted") NUL, FIXD, 0, 0, SKIP, 0, NULL}, 1700 }; 1701 1702 static const struct field_t _AdmissionRequest_destinationInfo[] = { /* SEQUENCE OF */ 1703 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1704 }; 1705 1706 static const struct field_t _AdmissionRequest_destExtraCallInfo[] = { /* SEQUENCE OF */ 1707 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1708 }; 1709 1710 static const struct field_t _AdmissionRequest_srcInfo[] = { /* SEQUENCE OF */ 1711 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1712 }; 1713 1714 static const struct field_t _AdmissionRequest[] = { /* SEQUENCE */ 1715 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1716 {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType}, 1717 {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, _CallModel}, 1718 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL}, 1719 {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1720 _AdmissionRequest_destinationInfo}, 1721 {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 1722 offsetof(AdmissionRequest, destCallSignalAddress), 1723 _TransportAddress}, 1724 {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, 1725 _AdmissionRequest_destExtraCallInfo}, 1726 {FNAME("srcInfo") SEQOF, SEMI, 0, 0, SKIP, 0, 1727 _AdmissionRequest_srcInfo}, 1728 {FNAME("srcCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT, 1729 offsetof(AdmissionRequest, srcCallSignalAddress), _TransportAddress}, 1730 {FNAME("bandWidth") INT, CONS, 0, 0, STOP, 0, NULL}, 1731 {FNAME("callReferenceValue") INT, WORD, 0, 0, STOP, 0, NULL}, 1732 {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1733 {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL}, 1734 {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, STOP, 0, NULL}, 1735 {FNAME("activeMC") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1736 {FNAME("answerCall") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1737 {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1738 {FNAME("callIdentifier") SEQ, 0, 1, 1, STOP | EXT, 0, NULL}, 1739 {FNAME("srcAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1740 {FNAME("destAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1741 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1742 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1743 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1744 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1745 {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL}, 1746 {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1747 {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL}, 1748 {FNAME("gatewayDataRate") SEQ, 2, 3, 3, STOP | EXT | OPT, 0, NULL}, 1749 {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL}, 1750 {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL}, 1751 {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1752 {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, 1753 NULL}, 1754 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1755 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1756 }; 1757 1758 static const struct field_t _AdmissionConfirm[] = { /* SEQUENCE */ 1759 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1760 {FNAME("bandWidth") INT, CONS, 0, 0, SKIP, 0, NULL}, 1761 {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT, 0, _CallModel}, 1762 {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1763 offsetof(AdmissionConfirm, destCallSignalAddress), 1764 _TransportAddress}, 1765 {FNAME("irrFrequency") INT, WORD, 1, 0, STOP | OPT, 0, NULL}, 1766 {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1767 {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1768 {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1769 {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL}, 1770 {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1771 NULL}, 1772 {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1773 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1774 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1775 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1776 {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL}, 1777 {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1778 {FNAME("uuiesRequested") SEQ, 0, 9, 13, STOP | EXT, 0, NULL}, 1779 {FNAME("language") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1780 {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT, 1781 0, NULL}, 1782 {FNAME("useSpecifiedTransport") CHOICE, 1, 2, 2, STOP | EXT | OPT, 0, 1783 NULL}, 1784 {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL}, 1785 {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1786 {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1787 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1788 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1789 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1790 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1791 }; 1792 1793 static const struct field_t _LocationRequest_destinationInfo[] = { /* SEQUENCE OF */ 1794 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress}, 1795 }; 1796 1797 static const struct field_t _LocationRequest[] = { /* SEQUENCE */ 1798 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1799 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL}, 1800 {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP, 0, 1801 _LocationRequest_destinationInfo}, 1802 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1803 _NonStandardParameter}, 1804 {FNAME("replyAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1805 offsetof(LocationRequest, replyAddress), _TransportAddress}, 1806 {FNAME("sourceInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1807 {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1808 {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL}, 1809 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1810 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1811 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1812 {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1813 {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, 1814 NULL}, 1815 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1816 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1817 {FNAME("hopCount") INT, 8, 1, 0, STOP | OPT, 0, NULL}, 1818 {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL}, 1819 }; 1820 1821 static const struct field_t _LocationConfirm[] = { /* SEQUENCE */ 1822 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1823 {FNAME("callSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1824 offsetof(LocationConfirm, callSignalAddress), _TransportAddress}, 1825 {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1826 offsetof(LocationConfirm, rasAddress), _TransportAddress}, 1827 {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1828 {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1829 {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1830 {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL}, 1831 {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0, 1832 NULL}, 1833 {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1834 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1835 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1836 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1837 {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT, 1838 0, NULL}, 1839 {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1840 {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL}, 1841 {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL}, 1842 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1843 {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL}, 1844 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1845 }; 1846 1847 static const struct field_t _InfoRequestResponse_callSignalAddress[] = { /* SEQUENCE OF */ 1848 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT, 1849 sizeof(TransportAddress), _TransportAddress} 1850 , 1851 }; 1852 1853 static const struct field_t _InfoRequestResponse[] = { /* SEQUENCE */ 1854 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0, 1855 _NonStandardParameter}, 1856 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL}, 1857 {FNAME("endpointType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType}, 1858 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL}, 1859 {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT, 1860 offsetof(InfoRequestResponse, rasAddress), _TransportAddress}, 1861 {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE, 1862 offsetof(InfoRequestResponse, callSignalAddress), 1863 _InfoRequestResponse_callSignalAddress}, 1864 {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1865 {FNAME("perCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1866 {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1867 {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1868 {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL}, 1869 {FNAME("needResponse") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1870 {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL}, 1871 {FNAME("irrStatus") CHOICE, 2, 4, 4, STOP | EXT | OPT, 0, NULL}, 1872 {FNAME("unsolicited") BOOL, FIXD, 0, 0, STOP, 0, NULL}, 1873 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL}, 1874 }; 1875 1876 static const struct field_t _RasMessage[] = { /* CHOICE */ 1877 {FNAME("gatekeeperRequest") SEQ, 4, 8, 18, DECODE | EXT, 1878 offsetof(RasMessage, gatekeeperRequest), _GatekeeperRequest}, 1879 {FNAME("gatekeeperConfirm") SEQ, 2, 5, 14, DECODE | EXT, 1880 offsetof(RasMessage, gatekeeperConfirm), _GatekeeperConfirm}, 1881 {FNAME("gatekeeperReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL}, 1882 {FNAME("registrationRequest") SEQ, 3, 10, 31, DECODE | EXT, 1883 offsetof(RasMessage, registrationRequest), _RegistrationRequest}, 1884 {FNAME("registrationConfirm") SEQ, 3, 7, 24, DECODE | EXT, 1885 offsetof(RasMessage, registrationConfirm), _RegistrationConfirm}, 1886 {FNAME("registrationReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL}, 1887 {FNAME("unregistrationRequest") SEQ, 3, 5, 15, DECODE | EXT, 1888 offsetof(RasMessage, unregistrationRequest), _UnregistrationRequest}, 1889 {FNAME("unregistrationConfirm") SEQ, 1, 2, 6, STOP | EXT, 0, NULL}, 1890 {FNAME("unregistrationReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL}, 1891 {FNAME("admissionRequest") SEQ, 7, 16, 34, DECODE | EXT, 1892 offsetof(RasMessage, admissionRequest), _AdmissionRequest}, 1893 {FNAME("admissionConfirm") SEQ, 2, 6, 27, DECODE | EXT, 1894 offsetof(RasMessage, admissionConfirm), _AdmissionConfirm}, 1895 {FNAME("admissionReject") SEQ, 1, 3, 11, STOP | EXT, 0, NULL}, 1896 {FNAME("bandwidthRequest") SEQ, 2, 7, 18, STOP | EXT, 0, NULL}, 1897 {FNAME("bandwidthConfirm") SEQ, 1, 3, 8, STOP | EXT, 0, NULL}, 1898 {FNAME("bandwidthReject") SEQ, 1, 4, 9, STOP | EXT, 0, NULL}, 1899 {FNAME("disengageRequest") SEQ, 1, 6, 19, STOP | EXT, 0, NULL}, 1900 {FNAME("disengageConfirm") SEQ, 1, 2, 9, STOP | EXT, 0, NULL}, 1901 {FNAME("disengageReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL}, 1902 {FNAME("locationRequest") SEQ, 2, 5, 17, DECODE | EXT, 1903 offsetof(RasMessage, locationRequest), _LocationRequest}, 1904 {FNAME("locationConfirm") SEQ, 1, 4, 19, DECODE | EXT, 1905 offsetof(RasMessage, locationConfirm), _LocationConfirm}, 1906 {FNAME("locationReject") SEQ, 1, 3, 10, STOP | EXT, 0, NULL}, 1907 {FNAME("infoRequest") SEQ, 2, 4, 15, STOP | EXT, 0, NULL}, 1908 {FNAME("infoRequestResponse") SEQ, 3, 8, 16, DECODE | EXT, 1909 offsetof(RasMessage, infoRequestResponse), _InfoRequestResponse}, 1910 {FNAME("nonStandardMessage") SEQ, 0, 2, 7, STOP | EXT, 0, NULL}, 1911 {FNAME("unknownMessageResponse") SEQ, 0, 1, 5, STOP | EXT, 0, NULL}, 1912 {FNAME("requestInProgress") SEQ, 4, 6, 6, STOP | EXT, 0, NULL}, 1913 {FNAME("resourcesAvailableIndicate") SEQ, 4, 9, 11, STOP | EXT, 0, 1914 NULL}, 1915 {FNAME("resourcesAvailableConfirm") SEQ, 4, 6, 7, STOP | EXT, 0, 1916 NULL}, 1917 {FNAME("infoRequestAck") SEQ, 4, 5, 5, STOP | EXT, 0, NULL}, 1918 {FNAME("infoRequestNak") SEQ, 5, 7, 7, STOP | EXT, 0, NULL}, 1919 {FNAME("serviceControlIndication") SEQ, 8, 10, 10, STOP | EXT, 0, 1920 NULL}, 1921 {FNAME("serviceControlResponse") SEQ, 7, 8, 8, STOP | EXT, 0, NULL}, 1922 }; 1923