Coverage Report

Created: 2026-06-30 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-h225.c
Line
Count
Source
1
/* Do not modify this file. Changes will be overwritten.                      */
2
/* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3
/* packet-h225.c                                                              */
4
/* asn2wrs.py -q -L -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../.. H323-MESSAGES.asn */
5
6
/* packet-h225.c
7
 * Routines for h225 packet dissection
8
 * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
9
 *
10
 * Wireshark - Network traffic analyzer
11
 * By Gerald Combs <gerald@wireshark.org>
12
 * Copyright 1998 Gerald Combs
13
 *
14
 * SPDX-License-Identifier: GPL-2.0-or-later
15
 *
16
 * To quote the author of the previous H323/H225/H245 dissector:
17
 *   "This is a complete replacement of the previous limited dissector
18
 * that Ronnie was crazy enough to write by hand. It was a lot of time
19
 * to hack it by hand, but it is incomplete and buggy and it is good when
20
 * it will go away."
21
 * Ronnie did a great job and all the VoIP users had made good use of it!
22
 * Credit to Tomas Kukosa for developing the asn2wrs compiler.
23
 *
24
 */
25
26
#include "config.h"
27
28
#include <epan/packet.h>
29
#include <epan/conversation.h>
30
#include <epan/proto_data.h>
31
32
#include <epan/prefs.h>
33
#include <epan/oids.h>
34
#include <epan/next_tvb.h>
35
#include <epan/asn1.h>
36
#include <epan/t35.h>
37
#include <epan/tap.h>
38
#include <epan/stat_tap_ui.h>
39
#include <epan/rtd_table.h>
40
#include <epan/tfs.h>
41
#include <wsutil/array.h>
42
43
#include "packet-frame.h"
44
#include "packet-tpkt.h"
45
#include "packet-per.h"
46
#include "packet-h225.h"
47
#include "packet-h235.h"
48
#include "packet-h245.h"
49
#include "packet-h323.h"
50
#include "packet-q931.h"
51
#include "packet-tls.h"
52
53
14
#define UDP_PORT_RAS_RANGE "1718-1719"
54
#define TCP_PORT_CS   1720
55
#define TLS_PORT_CS   1300
56
57
void proto_register_h225(void);
58
static h225_packet_info* create_h225_packet_info(packet_info *pinfo);
59
static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi);
60
61
/* Item of ras request list*/
62
typedef struct _h225ras_call_t {
63
  uint32_t requestSeqNum;
64
  e_guid_t guid;
65
  uint32_t req_num;  /* frame number request seen */
66
  uint32_t rsp_num;  /* frame number response seen */
67
  nstime_t req_time;  /* arrival time of request */
68
  bool responded; /* true, if request has been responded */
69
  struct _h225ras_call_t *next_call; /* pointer to next ras request with same SequenceNumber and conversation handle */
70
} h225ras_call_t;
71
72
73
/* Item of ras-request key list*/
74
typedef struct _h225ras_call_info_key {
75
  unsigned reqSeqNum;
76
  conversation_t *conversation;
77
} h225ras_call_info_key;
78
79
/* Global Memory Chunks for lists and Global hash tables*/
80
81
static wmem_map_t *ras_calls[7];
82
83
/* functions, needed using ras-request and halfcall matching*/
84
static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
85
static h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category);
86
static h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category);
87
88
89
static dissector_handle_t h225ras_handle;
90
static dissector_handle_t data_handle;
91
/* Subdissector tables */
92
static dissector_table_t nsp_object_dissector_table;
93
static dissector_table_t nsp_h221_dissector_table;
94
static dissector_table_t tp_dissector_table;
95
static dissector_table_t gef_name_dissector_table;
96
static dissector_table_t gef_content_dissector_table;
97
98
99
static dissector_handle_t h245_handle;
100
static dissector_handle_t h245dg_handle;
101
static dissector_handle_t h4501_handle;
102
103
static dissector_handle_t nsp_handle;
104
static dissector_handle_t tp_handle;
105
106
static next_tvb_list_t *h245_list;
107
static next_tvb_list_t *tp_list;
108
109
/* Initialize the protocol and registered fields */
110
static int h225_tap;
111
static int proto_h225;
112
113
static int hf_h221Manufacturer;
114
static int hf_h225_ras_req_frame;
115
static int hf_h225_ras_rsp_frame;
116
static int hf_h225_ras_dup;
117
static int hf_h225_ras_deltatime;
118
static int hf_h225_debug_dissector_try_string;
119
120
static int hf_h225_H323_UserInformation_PDU;      /* H323_UserInformation */
121
static int hf_h225_h225_ExtendedAliasAddress_PDU;  /* ExtendedAliasAddress */
122
static int hf_h225_RasMessage_PDU;                /* RasMessage */
123
static int hf_h225_h323_uu_pdu;                   /* H323_UU_PDU */
124
static int hf_h225_user_data;                     /* T_user_data */
125
static int hf_h225_protocol_discriminator;        /* INTEGER_0_255 */
126
static int hf_h225_user_information;              /* OCTET_STRING_SIZE_1_131 */
127
static int hf_h225_h323_message_body;             /* T_h323_message_body */
128
static int hf_h225_setup;                         /* Setup_UUIE */
129
static int hf_h225_callProceeding;                /* CallProceeding_UUIE */
130
static int hf_h225_connect;                       /* Connect_UUIE */
131
static int hf_h225_alerting;                      /* Alerting_UUIE */
132
static int hf_h225_information;                   /* Information_UUIE */
133
static int hf_h225_releaseComplete;               /* ReleaseComplete_UUIE */
134
static int hf_h225_facility;                      /* Facility_UUIE */
135
static int hf_h225_progress;                      /* Progress_UUIE */
136
static int hf_h225_empty_flg;                     /* T_empty_flg */
137
static int hf_h225_status;                        /* Status_UUIE */
138
static int hf_h225_statusInquiry;                 /* StatusInquiry_UUIE */
139
static int hf_h225_setupAcknowledge;              /* SetupAcknowledge_UUIE */
140
static int hf_h225_notify;                        /* Notify_UUIE */
141
static int hf_h225_nonStandardData;               /* NonStandardParameter */
142
static int hf_h225_h4501SupplementaryService;     /* T_h4501SupplementaryService */
143
static int hf_h225_h4501SupplementaryService_item;  /* T_h4501SupplementaryService_item */
144
static int hf_h225_h245Tunnelling;                /* T_h245Tunnelling */
145
static int hf_h225_H245Control_item;              /* H245Control_item */
146
static int hf_h225_h245Control;                   /* H245Control */
147
static int hf_h225_nonStandardControl;            /* SEQUENCE_OF_NonStandardParameter */
148
static int hf_h225_nonStandardControl_item;       /* NonStandardParameter */
149
static int hf_h225_callLinkage;                   /* CallLinkage */
150
static int hf_h225_tunnelledSignallingMessage;    /* T_tunnelledSignallingMessage */
151
static int hf_h225_tunnelledProtocolID;           /* TunnelledProtocol */
152
static int hf_h225_messageContent;                /* T_messageContent */
153
static int hf_h225_messageContent_item;           /* T_messageContent_item */
154
static int hf_h225_tunnellingRequired;            /* NULL */
155
static int hf_h225_provisionalRespToH245Tunnelling;  /* NULL */
156
static int hf_h225_stimulusControl;               /* StimulusControl */
157
static int hf_h225_genericData;                   /* SEQUENCE_OF_GenericData */
158
static int hf_h225_genericData_item;              /* GenericData */
159
static int hf_h225_nonStandard;                   /* NonStandardParameter */
160
static int hf_h225_isText;                        /* NULL */
161
static int hf_h225_h248Message;                   /* OCTET_STRING */
162
static int hf_h225_protocolIdentifier;            /* ProtocolIdentifier */
163
static int hf_h225_uUIE_destinationInfo;          /* EndpointType */
164
static int hf_h225_h245Address;                   /* H245TransportAddress */
165
static int hf_h225_callIdentifier;                /* CallIdentifier */
166
static int hf_h225_h245SecurityMode;              /* H245Security */
167
static int hf_h225_tokens;                        /* SEQUENCE_OF_ClearToken */
168
static int hf_h225_tokens_item;                   /* ClearToken */
169
static int hf_h225_cryptoTokens;                  /* SEQUENCE_OF_CryptoH323Token */
170
static int hf_h225_cryptoTokens_item;             /* CryptoH323Token */
171
static int hf_h225_fastStart;                     /* FastStart */
172
static int hf_h225_multipleCalls;                 /* BOOLEAN */
173
static int hf_h225_maintainConnection;            /* BOOLEAN */
174
static int hf_h225_alertingAddress;               /* SEQUENCE_OF_AliasAddress */
175
static int hf_h225_alertingAddress_item;          /* AliasAddress */
176
static int hf_h225_presentationIndicator;         /* PresentationIndicator */
177
static int hf_h225_screeningIndicator;            /* ScreeningIndicator */
178
static int hf_h225_fastConnectRefused;            /* NULL */
179
static int hf_h225_serviceControl;                /* SEQUENCE_OF_ServiceControlSession */
180
static int hf_h225_serviceControl_item;           /* ServiceControlSession */
181
static int hf_h225_capacity;                      /* CallCapacity */
182
static int hf_h225_featureSet;                    /* FeatureSet */
183
static int hf_h225_displayName;                   /* SEQUENCE_OF_DisplayName */
184
static int hf_h225_displayName_item;              /* DisplayName */
185
static int hf_h225_conferenceID;                  /* ConferenceIdentifier */
186
static int hf_h225_language;                      /* Language */
187
static int hf_h225_connectedAddress;              /* SEQUENCE_OF_AliasAddress */
188
static int hf_h225_connectedAddress_item;         /* AliasAddress */
189
static int hf_h225_circuitInfo;                   /* CircuitInfo */
190
static int hf_h225_releaseCompleteReason;         /* ReleaseCompleteReason */
191
static int hf_h225_busyAddress;                   /* SEQUENCE_OF_AliasAddress */
192
static int hf_h225_busyAddress_item;              /* AliasAddress */
193
static int hf_h225_destinationInfo;               /* EndpointType */
194
static int hf_h225_noBandwidth;                   /* NULL */
195
static int hf_h225_gatekeeperResources;           /* NULL */
196
static int hf_h225_unreachableDestination;        /* NULL */
197
static int hf_h225_destinationRejection;          /* NULL */
198
static int hf_h225_invalidRevision;               /* NULL */
199
static int hf_h225_noPermission;                  /* NULL */
200
static int hf_h225_unreachableGatekeeper;         /* NULL */
201
static int hf_h225_gatewayResources;              /* NULL */
202
static int hf_h225_badFormatAddress;              /* NULL */
203
static int hf_h225_adaptiveBusy;                  /* NULL */
204
static int hf_h225_inConf;                        /* NULL */
205
static int hf_h225_undefinedReason;               /* NULL */
206
static int hf_h225_facilityCallDeflection;        /* NULL */
207
static int hf_h225_securityDenied;                /* NULL */
208
static int hf_h225_calledPartyNotRegistered;      /* NULL */
209
static int hf_h225_callerNotRegistered;           /* NULL */
210
static int hf_h225_newConnectionNeeded;           /* NULL */
211
static int hf_h225_nonStandardReason;             /* NonStandardParameter */
212
static int hf_h225_replaceWithConferenceInvite;   /* ConferenceIdentifier */
213
static int hf_h225_genericDataReason;             /* NULL */
214
static int hf_h225_neededFeatureNotSupported;     /* NULL */
215
static int hf_h225_tunnelledSignallingRejected;   /* NULL */
216
static int hf_h225_invalidCID;                    /* NULL */
217
static int hf_h225_rLC_securityError;             /* SecurityErrors */
218
static int hf_h225_hopCountExceeded;              /* NULL */
219
static int hf_h225_sourceAddress;                 /* SEQUENCE_OF_AliasAddress */
220
static int hf_h225_sourceAddress_item;            /* AliasAddress */
221
static int hf_h225_setup_UUIE_sourceInfo;         /* EndpointType */
222
static int hf_h225_destinationAddress;            /* SEQUENCE_OF_AliasAddress */
223
static int hf_h225_destinationAddress_item;       /* AliasAddress */
224
static int hf_h225_destCallSignalAddress;         /* TransportAddress */
225
static int hf_h225_destExtraCallInfo;             /* SEQUENCE_OF_AliasAddress */
226
static int hf_h225_destExtraCallInfo_item;        /* AliasAddress */
227
static int hf_h225_destExtraCRV;                  /* SEQUENCE_OF_CallReferenceValue */
228
static int hf_h225_destExtraCRV_item;             /* CallReferenceValue */
229
static int hf_h225_activeMC;                      /* BOOLEAN */
230
static int hf_h225_conferenceGoal;                /* T_conferenceGoal */
231
static int hf_h225_create;                        /* NULL */
232
static int hf_h225_join;                          /* NULL */
233
static int hf_h225_invite;                        /* NULL */
234
static int hf_h225_capability_negotiation;        /* NULL */
235
static int hf_h225_callIndependentSupplementaryService;  /* NULL */
236
static int hf_h225_callServices;                  /* QseriesOptions */
237
static int hf_h225_callType;                      /* CallType */
238
static int hf_h225_sourceCallSignalAddress;       /* TransportAddress */
239
static int hf_h225_uUIE_remoteExtensionAddress;   /* AliasAddress */
240
static int hf_h225_h245SecurityCapability;        /* SEQUENCE_OF_H245Security */
241
static int hf_h225_h245SecurityCapability_item;   /* H245Security */
242
static int hf_h225_FastStart_item;                /* FastStart_item */
243
static int hf_h225_mediaWaitForConnect;           /* BOOLEAN */
244
static int hf_h225_canOverlapSend;                /* BOOLEAN */
245
static int hf_h225_endpointIdentifier;            /* EndpointIdentifier */
246
static int hf_h225_connectionParameters;          /* T_connectionParameters */
247
static int hf_h225_connectionType;                /* ScnConnectionType */
248
static int hf_h225_numberOfScnConnections;        /* INTEGER_0_65535 */
249
static int hf_h225_connectionAggregation;         /* ScnConnectionAggregation */
250
static int hf_h225_Language_item;                 /* IA5String_SIZE_1_32 */
251
static int hf_h225_symmetricOperationRequired;    /* NULL */
252
static int hf_h225_desiredProtocols;              /* SEQUENCE_OF_SupportedProtocols */
253
static int hf_h225_desiredProtocols_item;         /* SupportedProtocols */
254
static int hf_h225_neededFeatures;                /* SEQUENCE_OF_FeatureDescriptor */
255
static int hf_h225_neededFeatures_item;           /* FeatureDescriptor */
256
static int hf_h225_desiredFeatures;               /* SEQUENCE_OF_FeatureDescriptor */
257
static int hf_h225_desiredFeatures_item;          /* FeatureDescriptor */
258
static int hf_h225_supportedFeatures;             /* SEQUENCE_OF_FeatureDescriptor */
259
static int hf_h225_supportedFeatures_item;        /* FeatureDescriptor */
260
static int hf_h225_ParallelH245Control_item;      /* ParallelH245Control_item */
261
static int hf_h225_parallelH245Control;           /* ParallelH245Control */
262
static int hf_h225_additionalSourceAddresses;     /* SEQUENCE_OF_ExtendedAliasAddress */
263
static int hf_h225_additionalSourceAddresses_item;  /* ExtendedAliasAddress */
264
static int hf_h225_hopCount_1_31;                 /* INTEGER_1_31 */
265
static int hf_h225_unknown;                       /* NULL */
266
static int hf_h225_bChannel;                      /* NULL */
267
static int hf_h225_hybrid2x64;                    /* NULL */
268
static int hf_h225_hybrid384;                     /* NULL */
269
static int hf_h225_hybrid1536;                    /* NULL */
270
static int hf_h225_hybrid1920;                    /* NULL */
271
static int hf_h225_multirate;                     /* NULL */
272
static int hf_h225_auto;                          /* NULL */
273
static int hf_h225_none;                          /* NULL */
274
static int hf_h225_h221;                          /* NULL */
275
static int hf_h225_bonded_mode1;                  /* NULL */
276
static int hf_h225_bonded_mode2;                  /* NULL */
277
static int hf_h225_bonded_mode3;                  /* NULL */
278
static int hf_h225_presentationAllowed;           /* NULL */
279
static int hf_h225_presentationRestricted;        /* NULL */
280
static int hf_h225_addressNotAvailable;           /* NULL */
281
static int hf_h225_alternativeAddress;            /* TransportAddress */
282
static int hf_h225_alternativeAliasAddress;       /* SEQUENCE_OF_AliasAddress */
283
static int hf_h225_alternativeAliasAddress_item;  /* AliasAddress */
284
static int hf_h225_facilityReason;                /* FacilityReason */
285
static int hf_h225_conferences;                   /* SEQUENCE_OF_ConferenceList */
286
static int hf_h225_conferences_item;              /* ConferenceList */
287
static int hf_h225_conferenceAlias;               /* AliasAddress */
288
static int hf_h225_routeCallToGatekeeper;         /* NULL */
289
static int hf_h225_callForwarded;                 /* NULL */
290
static int hf_h225_routeCallToMC;                 /* NULL */
291
static int hf_h225_conferenceListChoice;          /* NULL */
292
static int hf_h225_startH245;                     /* NULL */
293
static int hf_h225_noH245;                        /* NULL */
294
static int hf_h225_newTokens;                     /* NULL */
295
static int hf_h225_featureSetUpdate;              /* NULL */
296
static int hf_h225_forwardedElements;             /* NULL */
297
static int hf_h225_transportedInformation;        /* NULL */
298
static int hf_h225_h245IpAddress;                 /* T_h245IpAddress */
299
static int hf_h225_h245Ip;                        /* T_h245Ip */
300
static int hf_h225_h245IpPort;                    /* T_h245IpPort */
301
static int hf_h225_h245IpSourceRoute;             /* T_h245IpSourceRoute */
302
static int hf_h225_ip;                            /* OCTET_STRING_SIZE_4 */
303
static int hf_h225_port;                          /* INTEGER_0_65535 */
304
static int hf_h225_h245Route;                     /* T_h245Route */
305
static int hf_h225_h245Route_item;                /* OCTET_STRING_SIZE_4 */
306
static int hf_h225_h245Routing;                   /* T_h245Routing */
307
static int hf_h225_strict;                        /* NULL */
308
static int hf_h225_loose;                         /* NULL */
309
static int hf_h225_h245IpxAddress;                /* T_h245IpxAddress */
310
static int hf_h225_node;                          /* OCTET_STRING_SIZE_6 */
311
static int hf_h225_netnum;                        /* OCTET_STRING_SIZE_4 */
312
static int hf_h225_h245IpxPort;                   /* OCTET_STRING_SIZE_2 */
313
static int hf_h225_h245Ip6Address;                /* T_h245Ip6Address */
314
static int hf_h225_h245Ip6;                       /* T_h245Ip6 */
315
static int hf_h225_h245Ip6port;                   /* T_h245Ip6port */
316
static int hf_h225_netBios;                       /* OCTET_STRING_SIZE_16 */
317
static int hf_h225_nsap;                          /* OCTET_STRING_SIZE_1_20 */
318
static int hf_h225_nonStandardAddress;            /* NonStandardParameter */
319
static int hf_h225_ipAddress;                     /* T_ipAddress */
320
static int hf_h225_ipV4;                          /* IpV4 */
321
static int hf_h225_ipV4_port;                     /* INTEGER_0_65535 */
322
static int hf_h225_ipSourceRoute;                 /* T_ipSourceRoute */
323
static int hf_h225_src_route_ipV4;                /* OCTET_STRING_SIZE_4 */
324
static int hf_h225_ipV4_src_port;                 /* INTEGER_0_65535 */
325
static int hf_h225_route;                         /* T_route */
326
static int hf_h225_route_item;                    /* OCTET_STRING_SIZE_4 */
327
static int hf_h225_routing;                       /* T_routing */
328
static int hf_h225_ipxAddress;                    /* T_ipxAddress */
329
static int hf_h225_ipx_port;                      /* OCTET_STRING_SIZE_2 */
330
static int hf_h225_ip6Address;                    /* T_ip6Address */
331
static int hf_h225_ipV6;                          /* OCTET_STRING_SIZE_16 */
332
static int hf_h225_ipV6_port;                     /* INTEGER_0_65535 */
333
static int hf_h225_vendor;                        /* VendorIdentifier */
334
static int hf_h225_gatekeeper;                    /* GatekeeperInfo */
335
static int hf_h225_gateway;                       /* GatewayInfo */
336
static int hf_h225_mcu;                           /* McuInfo */
337
static int hf_h225_terminal;                      /* TerminalInfo */
338
static int hf_h225_mc;                            /* BOOLEAN */
339
static int hf_h225_undefinedNode;                 /* BOOLEAN */
340
static int hf_h225_set;                           /* BIT_STRING_SIZE_32 */
341
static int hf_h225_supportedTunnelledProtocols;   /* SEQUENCE_OF_TunnelledProtocol */
342
static int hf_h225_supportedTunnelledProtocols_item;  /* TunnelledProtocol */
343
static int hf_h225_protocol;                      /* SEQUENCE_OF_SupportedProtocols */
344
static int hf_h225_protocol_item;                 /* SupportedProtocols */
345
static int hf_h225_h310;                          /* H310Caps */
346
static int hf_h225_h320;                          /* H320Caps */
347
static int hf_h225_h321;                          /* H321Caps */
348
static int hf_h225_h322;                          /* H322Caps */
349
static int hf_h225_h323;                          /* H323Caps */
350
static int hf_h225_h324;                          /* H324Caps */
351
static int hf_h225_voice;                         /* VoiceCaps */
352
static int hf_h225_t120_only;                     /* T120OnlyCaps */
353
static int hf_h225_nonStandardProtocol;           /* NonStandardProtocol */
354
static int hf_h225_t38FaxAnnexbOnly;              /* T38FaxAnnexbOnlyCaps */
355
static int hf_h225_sip;                           /* SIPCaps */
356
static int hf_h225_dataRatesSupported;            /* SEQUENCE_OF_DataRate */
357
static int hf_h225_dataRatesSupported_item;       /* DataRate */
358
static int hf_h225_supportedPrefixes;             /* SEQUENCE_OF_SupportedPrefix */
359
static int hf_h225_supportedPrefixes_item;        /* SupportedPrefix */
360
static int hf_h225_t38FaxProtocol;                /* DataProtocolCapability */
361
static int hf_h225_t38FaxProfile;                 /* T38FaxProfile */
362
static int hf_h225_vendorIdentifier_vendor;       /* H221NonStandard */
363
static int hf_h225_productId;                     /* OCTET_STRING_SIZE_1_256 */
364
static int hf_h225_versionId;                     /* OCTET_STRING_SIZE_1_256 */
365
static int hf_h225_enterpriseNumber;              /* OBJECT_IDENTIFIER */
366
static int hf_h225_t35CountryCode;                /* T_t35CountryCode */
367
static int hf_h225_t35Extension;                  /* T_t35Extension */
368
static int hf_h225_manufacturerCode;              /* T_manufacturerCode */
369
static int hf_h225_tunnelledProtocol_id;          /* TunnelledProtocol_id */
370
static int hf_h225_tunnelledProtocolObjectID;     /* T_tunnelledProtocolObjectID */
371
static int hf_h225_tunnelledProtocolAlternateID;  /* TunnelledProtocolAlternateIdentifier */
372
static int hf_h225_subIdentifier;                 /* IA5String_SIZE_1_64 */
373
static int hf_h225_protocolType;                  /* IA5String_SIZE_1_64 */
374
static int hf_h225_protocolVariant;               /* IA5String_SIZE_1_64 */
375
static int hf_h225_nonStandardIdentifier;         /* NonStandardIdentifier */
376
static int hf_h225_nsp_data;                      /* T_nsp_data */
377
static int hf_h225_nsiOID;                        /* T_nsiOID */
378
static int hf_h225_h221NonStandard;               /* H221NonStandard */
379
static int hf_h225_dialledDigits;                 /* DialedDigits */
380
static int hf_h225_h323_ID;                       /* BMPString_SIZE_1_256 */
381
static int hf_h225_url_ID;                        /* IA5String_SIZE_1_512 */
382
static int hf_h225_transportID;                   /* TransportAddress */
383
static int hf_h225_email_ID;                      /* IA5String_SIZE_1_512 */
384
static int hf_h225_partyNumber;                   /* PartyNumber */
385
static int hf_h225_mobileUIM;                     /* MobileUIM */
386
static int hf_h225_isupNumber;                    /* IsupNumber */
387
static int hf_h225_wildcard;                      /* AliasAddress */
388
static int hf_h225_range;                         /* T_range */
389
static int hf_h225_startOfRange;                  /* PartyNumber */
390
static int hf_h225_endOfRange;                    /* PartyNumber */
391
static int hf_h225_e164Number;                    /* PublicPartyNumber */
392
static int hf_h225_dataPartyNumber;               /* NumberDigits */
393
static int hf_h225_telexPartyNumber;              /* NumberDigits */
394
static int hf_h225_privateNumber;                 /* PrivatePartyNumber */
395
static int hf_h225_nationalStandardPartyNumber;   /* NumberDigits */
396
static int hf_h225_publicTypeOfNumber;            /* PublicTypeOfNumber */
397
static int hf_h225_publicNumberDigits;            /* NumberDigits */
398
static int hf_h225_privateTypeOfNumber;           /* PrivateTypeOfNumber */
399
static int hf_h225_privateNumberDigits;           /* NumberDigits */
400
static int hf_h225_displayName_language;          /* IA5String */
401
static int hf_h225_name;                          /* BMPString_SIZE_1_80 */
402
static int hf_h225_internationalNumber;           /* NULL */
403
static int hf_h225_nationalNumber;                /* NULL */
404
static int hf_h225_networkSpecificNumber;         /* NULL */
405
static int hf_h225_subscriberNumber;              /* NULL */
406
static int hf_h225_abbreviatedNumber;             /* NULL */
407
static int hf_h225_level2RegionalNumber;          /* NULL */
408
static int hf_h225_level1RegionalNumber;          /* NULL */
409
static int hf_h225_pISNSpecificNumber;            /* NULL */
410
static int hf_h225_localNumber;                   /* NULL */
411
static int hf_h225_ansi_41_uim;                   /* ANSI_41_UIM */
412
static int hf_h225_gsm_uim;                       /* GSM_UIM */
413
static int hf_h225_imsi;                          /* TBCD_STRING_SIZE_3_16 */
414
static int hf_h225_min;                           /* TBCD_STRING_SIZE_3_16 */
415
static int hf_h225_mdn;                           /* TBCD_STRING_SIZE_3_16 */
416
static int hf_h225_msisdn;                        /* TBCD_STRING_SIZE_3_16 */
417
static int hf_h225_esn;                           /* TBCD_STRING_SIZE_16 */
418
static int hf_h225_mscid;                         /* TBCD_STRING_SIZE_3_16 */
419
static int hf_h225_system_id;                     /* T_system_id */
420
static int hf_h225_sid;                           /* TBCD_STRING_SIZE_1_4 */
421
static int hf_h225_mid;                           /* TBCD_STRING_SIZE_1_4 */
422
static int hf_h225_systemMyTypeCode;              /* OCTET_STRING_SIZE_1 */
423
static int hf_h225_systemAccessType;              /* OCTET_STRING_SIZE_1 */
424
static int hf_h225_qualificationInformationCode;  /* OCTET_STRING_SIZE_1 */
425
static int hf_h225_sesn;                          /* TBCD_STRING_SIZE_16 */
426
static int hf_h225_soc;                           /* TBCD_STRING_SIZE_3_16 */
427
static int hf_h225_tmsi;                          /* OCTET_STRING_SIZE_1_4 */
428
static int hf_h225_imei;                          /* TBCD_STRING_SIZE_15_16 */
429
static int hf_h225_hplmn;                         /* TBCD_STRING_SIZE_1_4 */
430
static int hf_h225_vplmn;                         /* TBCD_STRING_SIZE_1_4 */
431
static int hf_h225_isupE164Number;                /* IsupPublicPartyNumber */
432
static int hf_h225_isupDataPartyNumber;           /* IsupDigits */
433
static int hf_h225_isupTelexPartyNumber;          /* IsupDigits */
434
static int hf_h225_isupPrivateNumber;             /* IsupPrivatePartyNumber */
435
static int hf_h225_isupNationalStandardPartyNumber;  /* IsupDigits */
436
static int hf_h225_natureOfAddress;               /* NatureOfAddress */
437
static int hf_h225_address;                       /* IsupDigits */
438
static int hf_h225_routingNumberNationalFormat;   /* NULL */
439
static int hf_h225_routingNumberNetworkSpecificFormat;  /* NULL */
440
static int hf_h225_routingNumberWithCalledDirectoryNumber;  /* NULL */
441
static int hf_h225_extAliasAddress;               /* AliasAddress */
442
static int hf_h225_aliasAddress;                  /* SEQUENCE_OF_AliasAddress */
443
static int hf_h225_aliasAddress_item;             /* AliasAddress */
444
static int hf_h225_callSignalAddress;             /* SEQUENCE_OF_TransportAddress */
445
static int hf_h225_callSignalAddress_item;        /* TransportAddress */
446
static int hf_h225_rasAddress;                    /* SEQUENCE_OF_TransportAddress */
447
static int hf_h225_rasAddress_item;               /* TransportAddress */
448
static int hf_h225_endpointType;                  /* EndpointType */
449
static int hf_h225_priority;                      /* INTEGER_0_127 */
450
static int hf_h225_remoteExtensionAddress;        /* SEQUENCE_OF_AliasAddress */
451
static int hf_h225_ep_remoteExtensionAddress_item;  /* AliasAddress */
452
static int hf_h225_alternateTransportAddresses;   /* AlternateTransportAddresses */
453
static int hf_h225_annexE;                        /* SEQUENCE_OF_TransportAddress */
454
static int hf_h225_annexE_item;                   /* TransportAddress */
455
static int hf_h225_sctp;                          /* SEQUENCE_OF_TransportAddress */
456
static int hf_h225_sctp_item;                     /* TransportAddress */
457
static int hf_h225_tcp;                           /* NULL */
458
static int hf_h225_annexE_flg;                    /* NULL */
459
static int hf_h225_sctp_flg;                      /* NULL */
460
static int hf_h225_alternateGK_rasAddress;        /* TransportAddress */
461
static int hf_h225_gatekeeperIdentifier;          /* GatekeeperIdentifier */
462
static int hf_h225_needToRegister;                /* BOOLEAN */
463
static int hf_h225_alternateGatekeeper;           /* SEQUENCE_OF_AlternateGK */
464
static int hf_h225_alternateGatekeeper_item;      /* AlternateGK */
465
static int hf_h225_altGKisPermanent;              /* BOOLEAN */
466
static int hf_h225_default;                       /* NULL */
467
static int hf_h225_encryption;                    /* SecurityServiceMode */
468
static int hf_h225_authenticaton;                 /* SecurityServiceMode */
469
static int hf_h225_securityCapabilities_integrity;  /* SecurityServiceMode */
470
static int hf_h225_securityWrongSyncTime;         /* NULL */
471
static int hf_h225_securityReplay;                /* NULL */
472
static int hf_h225_securityWrongGeneralID;        /* NULL */
473
static int hf_h225_securityWrongSendersID;        /* NULL */
474
static int hf_h225_securityIntegrityFailed;       /* NULL */
475
static int hf_h225_securityWrongOID;              /* NULL */
476
static int hf_h225_securityDHmismatch;            /* NULL */
477
static int hf_h225_securityCertificateExpired;    /* NULL */
478
static int hf_h225_securityCertificateDateInvalid;  /* NULL */
479
static int hf_h225_securityCertificateRevoked;    /* NULL */
480
static int hf_h225_securityCertificateNotReadable;  /* NULL */
481
static int hf_h225_securityCertificateSignatureInvalid;  /* NULL */
482
static int hf_h225_securityCertificateMissing;    /* NULL */
483
static int hf_h225_securityCertificateIncomplete;  /* NULL */
484
static int hf_h225_securityUnsupportedCertificateAlgOID;  /* NULL */
485
static int hf_h225_securityUnknownCA;             /* NULL */
486
static int hf_h225_noSecurity;                    /* NULL */
487
static int hf_h225_tls;                           /* SecurityCapabilities */
488
static int hf_h225_ipsec;                         /* SecurityCapabilities */
489
static int hf_h225_q932Full;                      /* BOOLEAN */
490
static int hf_h225_q951Full;                      /* BOOLEAN */
491
static int hf_h225_q952Full;                      /* BOOLEAN */
492
static int hf_h225_q953Full;                      /* BOOLEAN */
493
static int hf_h225_q955Full;                      /* BOOLEAN */
494
static int hf_h225_q956Full;                      /* BOOLEAN */
495
static int hf_h225_q957Full;                      /* BOOLEAN */
496
static int hf_h225_q954Info;                      /* Q954Details */
497
static int hf_h225_conferenceCalling;             /* BOOLEAN */
498
static int hf_h225_threePartyService;             /* BOOLEAN */
499
static int hf_h225_guid;                          /* T_guid */
500
static int hf_h225_isoAlgorithm;                  /* OBJECT_IDENTIFIER */
501
static int hf_h225_hMAC_MD5;                      /* NULL */
502
static int hf_h225_hMAC_iso10118_2_s;             /* EncryptIntAlg */
503
static int hf_h225_hMAC_iso10118_2_l;             /* EncryptIntAlg */
504
static int hf_h225_hMAC_iso10118_3;               /* OBJECT_IDENTIFIER */
505
static int hf_h225_digSig;                        /* NULL */
506
static int hf_h225_iso9797;                       /* OBJECT_IDENTIFIER */
507
static int hf_h225_nonIsoIM;                      /* NonIsoIntegrityMechanism */
508
static int hf_h225_algorithmOID;                  /* OBJECT_IDENTIFIER */
509
static int hf_h225_icv;                           /* BIT_STRING */
510
static int hf_h225_cryptoEPPwdHash;               /* T_cryptoEPPwdHash */
511
static int hf_h225_alias;                         /* AliasAddress */
512
static int hf_h225_timeStamp;                     /* TimeStamp */
513
static int hf_h225_token;                         /* HASHED */
514
static int hf_h225_cryptoGKPwdHash;               /* T_cryptoGKPwdHash */
515
static int hf_h225_gatekeeperId;                  /* GatekeeperIdentifier */
516
static int hf_h225_cryptoEPPwdEncr;               /* ENCRYPTED */
517
static int hf_h225_cryptoGKPwdEncr;               /* ENCRYPTED */
518
static int hf_h225_cryptoEPCert;                  /* SIGNED */
519
static int hf_h225_cryptoGKCert;                  /* SIGNED */
520
static int hf_h225_cryptoFastStart;               /* SIGNED */
521
static int hf_h225_nestedcryptoToken;             /* CryptoToken */
522
static int hf_h225_channelRate;                   /* BandWidth */
523
static int hf_h225_channelMultiplier;             /* INTEGER_1_256 */
524
static int hf_h225_globalCallId;                  /* GloballyUniqueID */
525
static int hf_h225_threadId;                      /* GloballyUniqueID */
526
static int hf_h225_prefix;                        /* AliasAddress */
527
static int hf_h225_canReportCallCapacity;         /* BOOLEAN */
528
static int hf_h225_capacityReportingSpecification_when;  /* CapacityReportingSpecification_when */
529
static int hf_h225_callStart;                     /* NULL */
530
static int hf_h225_callEnd;                       /* NULL */
531
static int hf_h225_maximumCallCapacity;           /* CallCapacityInfo */
532
static int hf_h225_currentCallCapacity;           /* CallCapacityInfo */
533
static int hf_h225_voiceGwCallsAvailable;         /* SEQUENCE_OF_CallsAvailable */
534
static int hf_h225_voiceGwCallsAvailable_item;    /* CallsAvailable */
535
static int hf_h225_h310GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
536
static int hf_h225_h310GwCallsAvailable_item;     /* CallsAvailable */
537
static int hf_h225_h320GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
538
static int hf_h225_h320GwCallsAvailable_item;     /* CallsAvailable */
539
static int hf_h225_h321GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
540
static int hf_h225_h321GwCallsAvailable_item;     /* CallsAvailable */
541
static int hf_h225_h322GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
542
static int hf_h225_h322GwCallsAvailable_item;     /* CallsAvailable */
543
static int hf_h225_h323GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
544
static int hf_h225_h323GwCallsAvailable_item;     /* CallsAvailable */
545
static int hf_h225_h324GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
546
static int hf_h225_h324GwCallsAvailable_item;     /* CallsAvailable */
547
static int hf_h225_t120OnlyGwCallsAvailable;      /* SEQUENCE_OF_CallsAvailable */
548
static int hf_h225_t120OnlyGwCallsAvailable_item;  /* CallsAvailable */
549
static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable;  /* SEQUENCE_OF_CallsAvailable */
550
static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item;  /* CallsAvailable */
551
static int hf_h225_terminalCallsAvailable;        /* SEQUENCE_OF_CallsAvailable */
552
static int hf_h225_terminalCallsAvailable_item;   /* CallsAvailable */
553
static int hf_h225_mcuCallsAvailable;             /* SEQUENCE_OF_CallsAvailable */
554
static int hf_h225_mcuCallsAvailable_item;        /* CallsAvailable */
555
static int hf_h225_sipGwCallsAvailable;           /* SEQUENCE_OF_CallsAvailable */
556
static int hf_h225_sipGwCallsAvailable_item;      /* CallsAvailable */
557
static int hf_h225_calls;                         /* INTEGER_0_4294967295 */
558
static int hf_h225_group_IA5String;               /* IA5String_SIZE_1_128 */
559
static int hf_h225_carrier;                       /* CarrierInfo */
560
static int hf_h225_sourceCircuitID;               /* CircuitIdentifier */
561
static int hf_h225_destinationCircuitID;          /* CircuitIdentifier */
562
static int hf_h225_cic;                           /* CicInfo */
563
static int hf_h225_group;                         /* GroupID */
564
static int hf_h225_cic_2_4;                       /* T_cic_2_4 */
565
static int hf_h225_cic_2_4_item;                  /* OCTET_STRING_SIZE_2_4 */
566
static int hf_h225_pointCode;                     /* OCTET_STRING_SIZE_2_5 */
567
static int hf_h225_member;                        /* T_member */
568
static int hf_h225_member_item;                   /* INTEGER_0_65535 */
569
static int hf_h225_carrierIdentificationCode;     /* OCTET_STRING_SIZE_3_4 */
570
static int hf_h225_carrierName;                   /* IA5String_SIZE_1_128 */
571
static int hf_h225_url;                           /* IA5String_SIZE_0_512 */
572
static int hf_h225_signal;                        /* H248SignalsDescriptor */
573
static int hf_h225_callCreditServiceControl;      /* CallCreditServiceControl */
574
static int hf_h225_sessionId_0_255;               /* INTEGER_0_255 */
575
static int hf_h225_contents;                      /* ServiceControlDescriptor */
576
static int hf_h225_reason;                        /* ServiceControlSession_reason */
577
static int hf_h225_open;                          /* NULL */
578
static int hf_h225_refresh;                       /* NULL */
579
static int hf_h225_close;                         /* NULL */
580
static int hf_h225_nonStandardUsageTypes;         /* SEQUENCE_OF_NonStandardParameter */
581
static int hf_h225_nonStandardUsageTypes_item;    /* NonStandardParameter */
582
static int hf_h225_startTime;                     /* NULL */
583
static int hf_h225_endTime_flg;                   /* NULL */
584
static int hf_h225_terminationCause_flg;          /* NULL */
585
static int hf_h225_when;                          /* RasUsageSpecification_when */
586
static int hf_h225_start;                         /* NULL */
587
static int hf_h225_end;                           /* NULL */
588
static int hf_h225_inIrr;                         /* NULL */
589
static int hf_h225_ras_callStartingPoint;         /* RasUsageSpecificationcallStartingPoint */
590
static int hf_h225_alerting_flg;                  /* NULL */
591
static int hf_h225_connect_flg;                   /* NULL */
592
static int hf_h225_required;                      /* RasUsageInfoTypes */
593
static int hf_h225_nonStandardUsageFields;        /* SEQUENCE_OF_NonStandardParameter */
594
static int hf_h225_nonStandardUsageFields_item;   /* NonStandardParameter */
595
static int hf_h225_alertingTime;                  /* TimeStamp */
596
static int hf_h225_connectTime;                   /* TimeStamp */
597
static int hf_h225_endTime;                       /* TimeStamp */
598
static int hf_h225_releaseCompleteCauseIE;        /* OCTET_STRING_SIZE_2_32 */
599
static int hf_h225_sender;                        /* BOOLEAN */
600
static int hf_h225_multicast;                     /* BOOLEAN */
601
static int hf_h225_bandwidth;                     /* BandWidth */
602
static int hf_h225_rtcpAddresses;                 /* TransportChannelInfo */
603
static int hf_h225_canDisplayAmountString;        /* BOOLEAN */
604
static int hf_h225_canEnforceDurationLimit;       /* BOOLEAN */
605
static int hf_h225_amountString;                  /* BMPString_SIZE_1_512 */
606
static int hf_h225_billingMode;                   /* T_billingMode */
607
static int hf_h225_credit;                        /* NULL */
608
static int hf_h225_debit;                         /* NULL */
609
static int hf_h225_callDurationLimit;             /* INTEGER_1_4294967295 */
610
static int hf_h225_enforceCallDurationLimit;      /* BOOLEAN */
611
static int hf_h225_callStartingPoint;             /* CallCreditServiceControl_callStartingPoint */
612
static int hf_h225_id;                            /* GenericIdentifier */
613
static int hf_h225_parameters;                    /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
614
static int hf_h225_parameters_item;               /* EnumeratedParameter */
615
static int hf_h225_standard;                      /* T_standard */
616
static int hf_h225_oid;                           /* T_oid */
617
static int hf_h225_genericIdentifier_nonStandard;  /* GloballyUniqueID */
618
static int hf_h225_content;                       /* Content */
619
static int hf_h225_raw;                           /* T_raw */
620
static int hf_h225_text;                          /* IA5String */
621
static int hf_h225_unicode;                       /* BMPString */
622
static int hf_h225_bool;                          /* BOOLEAN */
623
static int hf_h225_number8;                       /* INTEGER_0_255 */
624
static int hf_h225_number16;                      /* INTEGER_0_65535 */
625
static int hf_h225_number32;                      /* INTEGER_0_4294967295 */
626
static int hf_h225_transport;                     /* TransportAddress */
627
static int hf_h225_compound;                      /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
628
static int hf_h225_compound_item;                 /* EnumeratedParameter */
629
static int hf_h225_nested;                        /* SEQUENCE_SIZE_1_16_OF_GenericData */
630
static int hf_h225_nested_item;                   /* GenericData */
631
static int hf_h225_replacementFeatureSet;         /* BOOLEAN */
632
static int hf_h225_sendAddress;                   /* TransportAddress */
633
static int hf_h225_recvAddress;                   /* TransportAddress */
634
static int hf_h225_rtpAddress;                    /* TransportChannelInfo */
635
static int hf_h225_rtcpAddress;                   /* TransportChannelInfo */
636
static int hf_h225_cname;                         /* PrintableString */
637
static int hf_h225_ssrc;                          /* INTEGER_1_4294967295 */
638
static int hf_h225_sessionId;                     /* INTEGER_1_255 */
639
static int hf_h225_associatedSessionIds;          /* T_associatedSessionIds */
640
static int hf_h225_associatedSessionIds_item;     /* INTEGER_1_255 */
641
static int hf_h225_multicast_flg;                 /* NULL */
642
static int hf_h225_gatekeeperBased;               /* NULL */
643
static int hf_h225_endpointBased;                 /* NULL */
644
static int hf_h225_gatekeeperRequest;             /* GatekeeperRequest */
645
static int hf_h225_gatekeeperConfirm;             /* GatekeeperConfirm */
646
static int hf_h225_gatekeeperReject;              /* GatekeeperReject */
647
static int hf_h225_registrationRequest;           /* RegistrationRequest */
648
static int hf_h225_registrationConfirm;           /* RegistrationConfirm */
649
static int hf_h225_registrationReject;            /* RegistrationReject */
650
static int hf_h225_unregistrationRequest;         /* UnregistrationRequest */
651
static int hf_h225_unregistrationConfirm;         /* UnregistrationConfirm */
652
static int hf_h225_unregistrationReject;          /* UnregistrationReject */
653
static int hf_h225_admissionRequest;              /* AdmissionRequest */
654
static int hf_h225_admissionConfirm;              /* AdmissionConfirm */
655
static int hf_h225_admissionReject;               /* AdmissionReject */
656
static int hf_h225_bandwidthRequest;              /* BandwidthRequest */
657
static int hf_h225_bandwidthConfirm;              /* BandwidthConfirm */
658
static int hf_h225_bandwidthReject;               /* BandwidthReject */
659
static int hf_h225_disengageRequest;              /* DisengageRequest */
660
static int hf_h225_disengageConfirm;              /* DisengageConfirm */
661
static int hf_h225_disengageReject;               /* DisengageReject */
662
static int hf_h225_locationRequest;               /* LocationRequest */
663
static int hf_h225_locationConfirm;               /* LocationConfirm */
664
static int hf_h225_locationReject;                /* LocationReject */
665
static int hf_h225_infoRequest;                   /* InfoRequest */
666
static int hf_h225_infoRequestResponse;           /* InfoRequestResponse */
667
static int hf_h225_nonStandardMessage;            /* NonStandardMessage */
668
static int hf_h225_unknownMessageResponse;        /* UnknownMessageResponse */
669
static int hf_h225_requestInProgress;             /* RequestInProgress */
670
static int hf_h225_resourcesAvailableIndicate;    /* ResourcesAvailableIndicate */
671
static int hf_h225_resourcesAvailableConfirm;     /* ResourcesAvailableConfirm */
672
static int hf_h225_infoRequestAck;                /* InfoRequestAck */
673
static int hf_h225_infoRequestNak;                /* InfoRequestNak */
674
static int hf_h225_serviceControlIndication;      /* ServiceControlIndication */
675
static int hf_h225_serviceControlResponse;        /* ServiceControlResponse */
676
static int hf_h225_admissionConfirmSequence;      /* SEQUENCE_OF_AdmissionConfirm */
677
static int hf_h225_admissionConfirmSequence_item;  /* AdmissionConfirm */
678
static int hf_h225_requestSeqNum;                 /* RequestSeqNum */
679
static int hf_h225_gatekeeperRequest_rasAddress;  /* TransportAddress */
680
static int hf_h225_endpointAlias;                 /* SEQUENCE_OF_AliasAddress */
681
static int hf_h225_endpointAlias_item;            /* AliasAddress */
682
static int hf_h225_alternateEndpoints;            /* SEQUENCE_OF_Endpoint */
683
static int hf_h225_alternateEndpoints_item;       /* Endpoint */
684
static int hf_h225_authenticationCapability;      /* SEQUENCE_OF_AuthenticationMechanism */
685
static int hf_h225_authenticationCapability_item;  /* AuthenticationMechanism */
686
static int hf_h225_algorithmOIDs;                 /* T_algorithmOIDs */
687
static int hf_h225_algorithmOIDs_item;            /* OBJECT_IDENTIFIER */
688
static int hf_h225_integrity;                     /* SEQUENCE_OF_IntegrityMechanism */
689
static int hf_h225_integrity_item;                /* IntegrityMechanism */
690
static int hf_h225_integrityCheckValue;           /* ICV */
691
static int hf_h225_supportsAltGK;                 /* NULL */
692
static int hf_h225_supportsAssignedGK;            /* BOOLEAN */
693
static int hf_h225_assignedGatekeeper;            /* AlternateGK */
694
static int hf_h225_gatekeeperConfirm_rasAddress;  /* TransportAddress */
695
static int hf_h225_authenticationMode;            /* AuthenticationMechanism */
696
static int hf_h225_rehomingModel;                 /* RehomingModel */
697
static int hf_h225_gatekeeperRejectReason;        /* GatekeeperRejectReason */
698
static int hf_h225_altGKInfo;                     /* AltGKInfo */
699
static int hf_h225_resourceUnavailable;           /* NULL */
700
static int hf_h225_terminalExcluded;              /* NULL */
701
static int hf_h225_securityDenial;                /* NULL */
702
static int hf_h225_gkRej_securityError;           /* SecurityErrors */
703
static int hf_h225_discoveryComplete;             /* BOOLEAN */
704
static int hf_h225_terminalType;                  /* EndpointType */
705
static int hf_h225_terminalAlias;                 /* SEQUENCE_OF_AliasAddress */
706
static int hf_h225_terminalAlias_item;            /* AliasAddress */
707
static int hf_h225_endpointVendor;                /* VendorIdentifier */
708
static int hf_h225_timeToLive;                    /* TimeToLive */
709
static int hf_h225_keepAlive;                     /* BOOLEAN */
710
static int hf_h225_willSupplyUUIEs;               /* BOOLEAN */
711
static int hf_h225_additiveRegistration;          /* NULL */
712
static int hf_h225_terminalAliasPattern;          /* SEQUENCE_OF_AddressPattern */
713
static int hf_h225_terminalAliasPattern_item;     /* AddressPattern */
714
static int hf_h225_usageReportingCapability;      /* RasUsageInfoTypes */
715
static int hf_h225_supportedH248Packages;         /* SEQUENCE_OF_H248PackagesDescriptor */
716
static int hf_h225_supportedH248Packages_item;    /* H248PackagesDescriptor */
717
static int hf_h225_callCreditCapability;          /* CallCreditCapability */
718
static int hf_h225_capacityReportingCapability;   /* CapacityReportingCapability */
719
static int hf_h225_restart;                       /* NULL */
720
static int hf_h225_supportsACFSequences;          /* NULL */
721
static int hf_h225_transportQOS;                  /* TransportQOS */
722
static int hf_h225_willRespondToIRR;              /* BOOLEAN */
723
static int hf_h225_preGrantedARQ;                 /* T_preGrantedARQ */
724
static int hf_h225_makeCall;                      /* BOOLEAN */
725
static int hf_h225_useGKCallSignalAddressToMakeCall;  /* BOOLEAN */
726
static int hf_h225_answerCall;                    /* BOOLEAN */
727
static int hf_h225_useGKCallSignalAddressToAnswer;  /* BOOLEAN */
728
static int hf_h225_irrFrequencyInCall;            /* INTEGER_1_65535 */
729
static int hf_h225_totalBandwidthRestriction;     /* BandWidth */
730
static int hf_h225_useSpecifiedTransport;         /* UseSpecifiedTransport */
731
static int hf_h225_supportsAdditiveRegistration;  /* NULL */
732
static int hf_h225_usageSpec;                     /* SEQUENCE_OF_RasUsageSpecification */
733
static int hf_h225_usageSpec_item;                /* RasUsageSpecification */
734
static int hf_h225_featureServerAlias;            /* AliasAddress */
735
static int hf_h225_capacityReportingSpec;         /* CapacityReportingSpecification */
736
static int hf_h225_registrationRejectReason;      /* RegistrationRejectReason */
737
static int hf_h225_discoveryRequired;             /* NULL */
738
static int hf_h225_invalidCallSignalAddress;      /* NULL */
739
static int hf_h225_invalidRASAddress;             /* NULL */
740
static int hf_h225_duplicateAlias;                /* SEQUENCE_OF_AliasAddress */
741
static int hf_h225_duplicateAlias_item;           /* AliasAddress */
742
static int hf_h225_invalidTerminalType;           /* NULL */
743
static int hf_h225_transportNotSupported;         /* NULL */
744
static int hf_h225_transportQOSNotSupported;      /* NULL */
745
static int hf_h225_invalidAlias;                  /* NULL */
746
static int hf_h225_fullRegistrationRequired;      /* NULL */
747
static int hf_h225_additiveRegistrationNotSupported;  /* NULL */
748
static int hf_h225_invalidTerminalAliases;        /* T_invalidTerminalAliases */
749
static int hf_h225_reg_securityError;             /* SecurityErrors */
750
static int hf_h225_registerWithAssignedGK;        /* NULL */
751
static int hf_h225_unregRequestReason;            /* UnregRequestReason */
752
static int hf_h225_endpointAliasPattern;          /* SEQUENCE_OF_AddressPattern */
753
static int hf_h225_endpointAliasPattern_item;     /* AddressPattern */
754
static int hf_h225_reregistrationRequired;        /* NULL */
755
static int hf_h225_ttlExpired;                    /* NULL */
756
static int hf_h225_maintenance;                   /* NULL */
757
static int hf_h225_securityError;                 /* SecurityErrors2 */
758
static int hf_h225_unregRejectReason;             /* UnregRejectReason */
759
static int hf_h225_notCurrentlyRegistered;        /* NULL */
760
static int hf_h225_callInProgress;                /* NULL */
761
static int hf_h225_permissionDenied;              /* NULL */
762
static int hf_h225_callModel;                     /* CallModel */
763
static int hf_h225_DestinationInfo_item;          /* DestinationInfo_item */
764
static int hf_h225_destinationInfo_01;            /* DestinationInfo */
765
static int hf_h225_srcInfo;                       /* SEQUENCE_OF_AliasAddress */
766
static int hf_h225_srcInfo_item;                  /* AliasAddress */
767
static int hf_h225_srcCallSignalAddress;          /* TransportAddress */
768
static int hf_h225_bandWidth;                     /* BandWidth */
769
static int hf_h225_callReferenceValue;            /* CallReferenceValue */
770
static int hf_h225_canMapAlias;                   /* BOOLEAN */
771
static int hf_h225_srcAlternatives;               /* SEQUENCE_OF_Endpoint */
772
static int hf_h225_srcAlternatives_item;          /* Endpoint */
773
static int hf_h225_destAlternatives;              /* SEQUENCE_OF_Endpoint */
774
static int hf_h225_destAlternatives_item;         /* Endpoint */
775
static int hf_h225_gatewayDataRate;               /* DataRate */
776
static int hf_h225_desiredTunnelledProtocol;      /* TunnelledProtocol */
777
static int hf_h225_canMapSrcAlias;                /* BOOLEAN */
778
static int hf_h225_pointToPoint;                  /* NULL */
779
static int hf_h225_oneToN;                        /* NULL */
780
static int hf_h225_nToOne;                        /* NULL */
781
static int hf_h225_nToN;                          /* NULL */
782
static int hf_h225_direct;                        /* NULL */
783
static int hf_h225_gatekeeperRouted;              /* NULL */
784
static int hf_h225_endpointControlled;            /* NULL */
785
static int hf_h225_gatekeeperControlled;          /* NULL */
786
static int hf_h225_noControl;                     /* NULL */
787
static int hf_h225_qOSCapabilities;               /* SEQUENCE_SIZE_1_256_OF_QOSCapability */
788
static int hf_h225_qOSCapabilities_item;          /* QOSCapability */
789
static int hf_h225_irrFrequency;                  /* INTEGER_1_65535 */
790
static int hf_h225_destinationType;               /* EndpointType */
791
static int hf_h225_ac_remoteExtensionAddress_item;  /* AliasAddress */
792
static int hf_h225_uuiesRequested;                /* UUIEsRequested */
793
static int hf_h225_supportedProtocols;            /* SEQUENCE_OF_SupportedProtocols */
794
static int hf_h225_supportedProtocols_item;       /* SupportedProtocols */
795
static int hf_h225_modifiedSrcInfo;               /* SEQUENCE_OF_AliasAddress */
796
static int hf_h225_modifiedSrcInfo_item;          /* AliasAddress */
797
static int hf_h225_setup_bool;                    /* BOOLEAN */
798
static int hf_h225_callProceeding_flg;            /* BOOLEAN */
799
static int hf_h225_connect_bool;                  /* BOOLEAN */
800
static int hf_h225_alerting_bool;                 /* BOOLEAN */
801
static int hf_h225_information_bool;              /* BOOLEAN */
802
static int hf_h225_releaseComplete_bool;          /* BOOLEAN */
803
static int hf_h225_facility_bool;                 /* BOOLEAN */
804
static int hf_h225_progress_bool;                 /* BOOLEAN */
805
static int hf_h225_empty;                         /* BOOLEAN */
806
static int hf_h225_status_bool;                   /* BOOLEAN */
807
static int hf_h225_statusInquiry_bool;            /* BOOLEAN */
808
static int hf_h225_setupAcknowledge_bool;         /* BOOLEAN */
809
static int hf_h225_notify_bool;                   /* BOOLEAN */
810
static int hf_h225_rejectReason;                  /* AdmissionRejectReason */
811
static int hf_h225_invalidPermission;             /* NULL */
812
static int hf_h225_requestDenied;                 /* NULL */
813
static int hf_h225_invalidEndpointIdentifier;     /* NULL */
814
static int hf_h225_qosControlNotSupported;        /* NULL */
815
static int hf_h225_incompleteAddress;             /* NULL */
816
static int hf_h225_aliasesInconsistent;           /* NULL */
817
static int hf_h225_routeCallToSCN;                /* SEQUENCE_OF_PartyNumber */
818
static int hf_h225_routeCallToSCN_item;           /* PartyNumber */
819
static int hf_h225_exceedsCallCapacity;           /* NULL */
820
static int hf_h225_collectDestination;            /* NULL */
821
static int hf_h225_collectPIN;                    /* NULL */
822
static int hf_h225_noRouteToDestination;          /* NULL */
823
static int hf_h225_unallocatedNumber;             /* NULL */
824
static int hf_h225_answeredCall;                  /* BOOLEAN */
825
static int hf_h225_usageInformation;              /* RasUsageInformation */
826
static int hf_h225_bandwidthDetails;              /* SEQUENCE_OF_BandwidthDetails */
827
static int hf_h225_bandwidthDetails_item;         /* BandwidthDetails */
828
static int hf_h225_bandRejectReason;              /* BandRejectReason */
829
static int hf_h225_allowedBandWidth;              /* BandWidth */
830
static int hf_h225_notBound;                      /* NULL */
831
static int hf_h225_invalidConferenceID;           /* NULL */
832
static int hf_h225_insufficientResources;         /* NULL */
833
static int hf_h225_replyAddress;                  /* TransportAddress */
834
static int hf_h225_sourceInfo;                    /* SEQUENCE_OF_AliasAddress */
835
static int hf_h225_sourceInfo_item;               /* AliasAddress */
836
static int hf_h225_hopCount;                      /* INTEGER_1_255 */
837
static int hf_h225_sourceEndpointInfo;            /* SEQUENCE_OF_AliasAddress */
838
static int hf_h225_sourceEndpointInfo_item;       /* AliasAddress */
839
static int hf_h225_locationConfirm_callSignalAddress;  /* TransportAddress */
840
static int hf_h225_locationConfirm_rasAddress;    /* TransportAddress */
841
static int hf_h225_remoteExtensionAddress_item;   /* AliasAddress */
842
static int hf_h225_locationRejectReason;          /* LocationRejectReason */
843
static int hf_h225_notRegistered;                 /* NULL */
844
static int hf_h225_routeCalltoSCN;                /* SEQUENCE_OF_PartyNumber */
845
static int hf_h225_routeCalltoSCN_item;           /* PartyNumber */
846
static int hf_h225_disengageReason;               /* DisengageReason */
847
static int hf_h225_terminationCause;              /* CallTerminationCause */
848
static int hf_h225_forcedDrop;                    /* NULL */
849
static int hf_h225_normalDrop;                    /* NULL */
850
static int hf_h225_disengageRejectReason;         /* DisengageRejectReason */
851
static int hf_h225_requestToDropOther;            /* NULL */
852
static int hf_h225_usageInfoRequested;            /* RasUsageInfoTypes */
853
static int hf_h225_segmentedResponseSupported;    /* NULL */
854
static int hf_h225_nextSegmentRequested;          /* INTEGER_0_65535 */
855
static int hf_h225_capacityInfoRequested;         /* NULL */
856
static int hf_h225_infoRequestResponse_rasAddress;  /* TransportAddress */
857
static int hf_h225_perCallInfo;                   /* T_perCallInfo */
858
static int hf_h225_perCallInfo_item;              /* T_perCallInfo_item */
859
static int hf_h225_originator;                    /* BOOLEAN */
860
static int hf_h225_audio;                         /* SEQUENCE_OF_RTPSession */
861
static int hf_h225_audio_item;                    /* RTPSession */
862
static int hf_h225_video;                         /* SEQUENCE_OF_RTPSession */
863
static int hf_h225_video_item;                    /* RTPSession */
864
static int hf_h225_data;                          /* SEQUENCE_OF_TransportChannelInfo */
865
static int hf_h225_data_item;                     /* TransportChannelInfo */
866
static int hf_h225_h245;                          /* TransportChannelInfo */
867
static int hf_h225_callSignalling;                /* TransportChannelInfo */
868
static int hf_h225_substituteConfIDs;             /* SEQUENCE_OF_ConferenceIdentifier */
869
static int hf_h225_substituteConfIDs_item;        /* ConferenceIdentifier */
870
static int hf_h225_pdu;                           /* T_pdu */
871
static int hf_h225_pdu_item;                      /* T_pdu_item */
872
static int hf_h225_h323pdu;                       /* H323_UU_PDU */
873
static int hf_h225_sent;                          /* BOOLEAN */
874
static int hf_h225_needResponse;                  /* BOOLEAN */
875
static int hf_h225_irrStatus;                     /* InfoRequestResponseStatus */
876
static int hf_h225_unsolicited;                   /* BOOLEAN */
877
static int hf_h225_complete;                      /* NULL */
878
static int hf_h225_incomplete;                    /* NULL */
879
static int hf_h225_segment;                       /* INTEGER_0_65535 */
880
static int hf_h225_invalidCall;                   /* NULL */
881
static int hf_h225_nakReason;                     /* InfoRequestNakReason */
882
static int hf_h225_messageNotUnderstood;          /* OCTET_STRING */
883
static int hf_h225_delay;                         /* INTEGER_1_65535 */
884
static int hf_h225_protocols;                     /* SEQUENCE_OF_SupportedProtocols */
885
static int hf_h225_protocols_item;                /* SupportedProtocols */
886
static int hf_h225_almostOutOfResources;          /* BOOLEAN */
887
static int hf_h225_callSpecific;                  /* T_callSpecific */
888
static int hf_h225_result;                        /* T_result */
889
static int hf_h225_started;                       /* NULL */
890
static int hf_h225_failed;                        /* NULL */
891
static int hf_h225_stopped;                       /* NULL */
892
static int hf_h225_notAvailable;                  /* NULL */
893
894
/* Initialize the subtree pointers */
895
static int ett_h225;
896
static int ett_h225_H323_UserInformation;
897
static int ett_h225_T_user_data;
898
static int ett_h225_H323_UU_PDU;
899
static int ett_h225_T_h323_message_body;
900
static int ett_h225_T_h4501SupplementaryService;
901
static int ett_h225_H245Control;
902
static int ett_h225_SEQUENCE_OF_NonStandardParameter;
903
static int ett_h225_T_tunnelledSignallingMessage;
904
static int ett_h225_T_messageContent;
905
static int ett_h225_SEQUENCE_OF_GenericData;
906
static int ett_h225_StimulusControl;
907
static int ett_h225_Alerting_UUIE;
908
static int ett_h225_SEQUENCE_OF_ClearToken;
909
static int ett_h225_SEQUENCE_OF_CryptoH323Token;
910
static int ett_h225_SEQUENCE_OF_AliasAddress;
911
static int ett_h225_SEQUENCE_OF_ServiceControlSession;
912
static int ett_h225_SEQUENCE_OF_DisplayName;
913
static int ett_h225_CallProceeding_UUIE;
914
static int ett_h225_Connect_UUIE;
915
static int ett_h225_Information_UUIE;
916
static int ett_h225_ReleaseComplete_UUIE;
917
static int ett_h225_ReleaseCompleteReason;
918
static int ett_h225_Setup_UUIE;
919
static int ett_h225_SEQUENCE_OF_CallReferenceValue;
920
static int ett_h225_T_conferenceGoal;
921
static int ett_h225_SEQUENCE_OF_H245Security;
922
static int ett_h225_FastStart;
923
static int ett_h225_T_connectionParameters;
924
static int ett_h225_Language;
925
static int ett_h225_SEQUENCE_OF_SupportedProtocols;
926
static int ett_h225_SEQUENCE_OF_FeatureDescriptor;
927
static int ett_h225_ParallelH245Control;
928
static int ett_h225_SEQUENCE_OF_ExtendedAliasAddress;
929
static int ett_h225_ScnConnectionType;
930
static int ett_h225_ScnConnectionAggregation;
931
static int ett_h225_PresentationIndicator;
932
static int ett_h225_Facility_UUIE;
933
static int ett_h225_SEQUENCE_OF_ConferenceList;
934
static int ett_h225_ConferenceList;
935
static int ett_h225_FacilityReason;
936
static int ett_h225_Progress_UUIE;
937
static int ett_h225_TransportAddress;
938
static int ett_h225_H245TransportAddress;
939
static int ett_h225_T_h245IpAddress;
940
static int ett_h225_T_h245IpSourceRoute;
941
static int ett_h225_T_h245Route;
942
static int ett_h225_T_h245Routing;
943
static int ett_h225_T_h245IpxAddress;
944
static int ett_h225_T_h245Ip6Address;
945
static int ett_h225_T_ipAddress;
946
static int ett_h225_T_ipSourceRoute;
947
static int ett_h225_T_route;
948
static int ett_h225_T_routing;
949
static int ett_h225_T_ipxAddress;
950
static int ett_h225_T_ip6Address;
951
static int ett_h225_Status_UUIE;
952
static int ett_h225_StatusInquiry_UUIE;
953
static int ett_h225_SetupAcknowledge_UUIE;
954
static int ett_h225_Notify_UUIE;
955
static int ett_h225_EndpointType;
956
static int ett_h225_SEQUENCE_OF_TunnelledProtocol;
957
static int ett_h225_GatewayInfo;
958
static int ett_h225_SupportedProtocols;
959
static int ett_h225_H310Caps;
960
static int ett_h225_SEQUENCE_OF_DataRate;
961
static int ett_h225_SEQUENCE_OF_SupportedPrefix;
962
static int ett_h225_H320Caps;
963
static int ett_h225_H321Caps;
964
static int ett_h225_H322Caps;
965
static int ett_h225_H323Caps;
966
static int ett_h225_H324Caps;
967
static int ett_h225_VoiceCaps;
968
static int ett_h225_T120OnlyCaps;
969
static int ett_h225_NonStandardProtocol;
970
static int ett_h225_T38FaxAnnexbOnlyCaps;
971
static int ett_h225_SIPCaps;
972
static int ett_h225_McuInfo;
973
static int ett_h225_TerminalInfo;
974
static int ett_h225_GatekeeperInfo;
975
static int ett_h225_VendorIdentifier;
976
static int ett_h225_H221NonStandard;
977
static int ett_h225_TunnelledProtocol;
978
static int ett_h225_TunnelledProtocol_id;
979
static int ett_h225_TunnelledProtocolAlternateIdentifier;
980
static int ett_h225_NonStandardParameter;
981
static int ett_h225_NonStandardIdentifier;
982
static int ett_h225_AliasAddress;
983
static int ett_h225_AddressPattern;
984
static int ett_h225_T_range;
985
static int ett_h225_PartyNumber;
986
static int ett_h225_PublicPartyNumber;
987
static int ett_h225_PrivatePartyNumber;
988
static int ett_h225_DisplayName;
989
static int ett_h225_PublicTypeOfNumber;
990
static int ett_h225_PrivateTypeOfNumber;
991
static int ett_h225_MobileUIM;
992
static int ett_h225_ANSI_41_UIM;
993
static int ett_h225_T_system_id;
994
static int ett_h225_GSM_UIM;
995
static int ett_h225_IsupNumber;
996
static int ett_h225_IsupPublicPartyNumber;
997
static int ett_h225_IsupPrivatePartyNumber;
998
static int ett_h225_NatureOfAddress;
999
static int ett_h225_ExtendedAliasAddress;
1000
static int ett_h225_Endpoint;
1001
static int ett_h225_SEQUENCE_OF_TransportAddress;
1002
static int ett_h225_AlternateTransportAddresses;
1003
static int ett_h225_UseSpecifiedTransport;
1004
static int ett_h225_AlternateGK;
1005
static int ett_h225_AltGKInfo;
1006
static int ett_h225_SEQUENCE_OF_AlternateGK;
1007
static int ett_h225_SecurityServiceMode;
1008
static int ett_h225_SecurityCapabilities;
1009
static int ett_h225_SecurityErrors;
1010
static int ett_h225_SecurityErrors2;
1011
static int ett_h225_H245Security;
1012
static int ett_h225_QseriesOptions;
1013
static int ett_h225_Q954Details;
1014
static int ett_h225_CallIdentifier;
1015
static int ett_h225_EncryptIntAlg;
1016
static int ett_h225_NonIsoIntegrityMechanism;
1017
static int ett_h225_IntegrityMechanism;
1018
static int ett_h225_ICV;
1019
static int ett_h225_CryptoH323Token;
1020
static int ett_h225_T_cryptoEPPwdHash;
1021
static int ett_h225_T_cryptoGKPwdHash;
1022
static int ett_h225_DataRate;
1023
static int ett_h225_CallLinkage;
1024
static int ett_h225_SupportedPrefix;
1025
static int ett_h225_CapacityReportingCapability;
1026
static int ett_h225_CapacityReportingSpecification;
1027
static int ett_h225_CapacityReportingSpecification_when;
1028
static int ett_h225_CallCapacity;
1029
static int ett_h225_CallCapacityInfo;
1030
static int ett_h225_SEQUENCE_OF_CallsAvailable;
1031
static int ett_h225_CallsAvailable;
1032
static int ett_h225_CircuitInfo;
1033
static int ett_h225_CircuitIdentifier;
1034
static int ett_h225_CicInfo;
1035
static int ett_h225_T_cic_2_4;
1036
static int ett_h225_GroupID;
1037
static int ett_h225_T_member;
1038
static int ett_h225_CarrierInfo;
1039
static int ett_h225_ServiceControlDescriptor;
1040
static int ett_h225_ServiceControlSession;
1041
static int ett_h225_ServiceControlSession_reason;
1042
static int ett_h225_RasUsageInfoTypes;
1043
static int ett_h225_RasUsageSpecification;
1044
static int ett_h225_RasUsageSpecification_when;
1045
static int ett_h225_RasUsageSpecificationcallStartingPoint;
1046
static int ett_h225_RasUsageInformation;
1047
static int ett_h225_CallTerminationCause;
1048
static int ett_h225_BandwidthDetails;
1049
static int ett_h225_CallCreditCapability;
1050
static int ett_h225_CallCreditServiceControl;
1051
static int ett_h225_T_billingMode;
1052
static int ett_h225_CallCreditServiceControl_callStartingPoint;
1053
static int ett_h225_GenericData;
1054
static int ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter;
1055
static int ett_h225_GenericIdentifier;
1056
static int ett_h225_EnumeratedParameter;
1057
static int ett_h225_Content;
1058
static int ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData;
1059
static int ett_h225_FeatureSet;
1060
static int ett_h225_TransportChannelInfo;
1061
static int ett_h225_RTPSession;
1062
static int ett_h225_T_associatedSessionIds;
1063
static int ett_h225_RehomingModel;
1064
static int ett_h225_RasMessage;
1065
static int ett_h225_SEQUENCE_OF_AdmissionConfirm;
1066
static int ett_h225_GatekeeperRequest;
1067
static int ett_h225_SEQUENCE_OF_Endpoint;
1068
static int ett_h225_SEQUENCE_OF_AuthenticationMechanism;
1069
static int ett_h225_T_algorithmOIDs;
1070
static int ett_h225_SEQUENCE_OF_IntegrityMechanism;
1071
static int ett_h225_GatekeeperConfirm;
1072
static int ett_h225_GatekeeperReject;
1073
static int ett_h225_GatekeeperRejectReason;
1074
static int ett_h225_RegistrationRequest;
1075
static int ett_h225_SEQUENCE_OF_AddressPattern;
1076
static int ett_h225_SEQUENCE_OF_H248PackagesDescriptor;
1077
static int ett_h225_RegistrationConfirm;
1078
static int ett_h225_T_preGrantedARQ;
1079
static int ett_h225_SEQUENCE_OF_RasUsageSpecification;
1080
static int ett_h225_RegistrationReject;
1081
static int ett_h225_RegistrationRejectReason;
1082
static int ett_h225_T_invalidTerminalAliases;
1083
static int ett_h225_UnregistrationRequest;
1084
static int ett_h225_UnregRequestReason;
1085
static int ett_h225_UnregistrationConfirm;
1086
static int ett_h225_UnregistrationReject;
1087
static int ett_h225_UnregRejectReason;
1088
static int ett_h225_AdmissionRequest;
1089
static int ett_h225_DestinationInfo;
1090
static int ett_h225_CallType;
1091
static int ett_h225_CallModel;
1092
static int ett_h225_TransportQOS;
1093
static int ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability;
1094
static int ett_h225_AdmissionConfirm;
1095
static int ett_h225_UUIEsRequested;
1096
static int ett_h225_AdmissionReject;
1097
static int ett_h225_AdmissionRejectReason;
1098
static int ett_h225_SEQUENCE_OF_PartyNumber;
1099
static int ett_h225_BandwidthRequest;
1100
static int ett_h225_SEQUENCE_OF_BandwidthDetails;
1101
static int ett_h225_BandwidthConfirm;
1102
static int ett_h225_BandwidthReject;
1103
static int ett_h225_BandRejectReason;
1104
static int ett_h225_LocationRequest;
1105
static int ett_h225_LocationConfirm;
1106
static int ett_h225_LocationReject;
1107
static int ett_h225_LocationRejectReason;
1108
static int ett_h225_DisengageRequest;
1109
static int ett_h225_DisengageReason;
1110
static int ett_h225_DisengageConfirm;
1111
static int ett_h225_DisengageReject;
1112
static int ett_h225_DisengageRejectReason;
1113
static int ett_h225_InfoRequest;
1114
static int ett_h225_InfoRequestResponse;
1115
static int ett_h225_T_perCallInfo;
1116
static int ett_h225_T_perCallInfo_item;
1117
static int ett_h225_SEQUENCE_OF_RTPSession;
1118
static int ett_h225_SEQUENCE_OF_TransportChannelInfo;
1119
static int ett_h225_SEQUENCE_OF_ConferenceIdentifier;
1120
static int ett_h225_T_pdu;
1121
static int ett_h225_T_pdu_item;
1122
static int ett_h225_InfoRequestResponseStatus;
1123
static int ett_h225_InfoRequestAck;
1124
static int ett_h225_InfoRequestNak;
1125
static int ett_h225_InfoRequestNakReason;
1126
static int ett_h225_NonStandardMessage;
1127
static int ett_h225_UnknownMessageResponse;
1128
static int ett_h225_RequestInProgress;
1129
static int ett_h225_ResourcesAvailableIndicate;
1130
static int ett_h225_ResourcesAvailableConfirm;
1131
static int ett_h225_ServiceControlIndication;
1132
static int ett_h225_T_callSpecific;
1133
static int ett_h225_ServiceControlResponse;
1134
static int ett_h225_T_result;
1135
1136
/* Preferences */
1137
static unsigned h225_tls_port = TLS_PORT_CS;
1138
static bool h225_reassembly = true;
1139
static bool h225_h245_in_tree = true;
1140
static bool h225_tp_in_tree = true;
1141
1142
/* Global variables */
1143
static uint32_t ipv4_address;
1144
static ws_in6_addr ipv6_address;
1145
static ws_in6_addr ipv6_address_zeros = {{0}};
1146
static uint32_t ip_port;
1147
static bool contains_faststart;
1148
static e_guid_t *call_id_guid;
1149
1150
/* NonStandardParameter */
1151
static const char *nsiOID;
1152
static uint32_t h221NonStandard;
1153
static uint32_t t35CountryCode;
1154
static uint32_t t35Extension;
1155
static uint32_t manufacturerCode;
1156
1157
/* TunnelledProtocol */
1158
static const char *tpOID;
1159
1160
static const value_string ras_message_category[] = {
1161
  {  0, "Gatekeeper    "},
1162
  {  1, "Registration  "},
1163
  {  2, "UnRegistration"},
1164
  {  3, "Admission     "},
1165
  {  4, "Bandwidth     "},
1166
  {  5, "Disengage     "},
1167
  {  6, "Location      "},
1168
  {  0, NULL }
1169
};
1170
1171
typedef enum _ras_type {
1172
  RAS_REQUEST,
1173
  RAS_CONFIRM,
1174
  RAS_REJECT,
1175
  RAS_OTHER
1176
}ras_type;
1177
1178
typedef enum _ras_category {
1179
  RAS_GATEKEEPER,
1180
  RAS_REGISTRATION,
1181
  RAS_UNREGISTRATION,
1182
  RAS_ADMISSION,
1183
  RAS_BANDWIDTH,
1184
  RAS_DISENGAGE,
1185
  RAS_LOCATION,
1186
  RAS_OTHERS
1187
}ras_category;
1188
1189
14
#define NUM_RAS_STATS 7
1190
1191
static tap_packet_status
1192
h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *phi, tap_flags_t flags _U_)
1193
0
{
1194
0
  rtd_data_t* rtd_data = (rtd_data_t*)phs;
1195
0
  rtd_stat_table* rs = &rtd_data->stat_table;
1196
0
  const h225_packet_info *pi=(const h225_packet_info *)phi;
1197
1198
0
  ras_type rasmsg_type = RAS_OTHER;
1199
0
  ras_category rascategory = RAS_OTHERS;
1200
1201
0
  if (pi->msg_type != H225_RAS || pi->msg_tag == -1) {
1202
    /* No RAS Message or uninitialized msg_tag -> return */
1203
0
    return TAP_PACKET_DONT_REDRAW;
1204
0
  }
1205
1206
0
  if (pi->msg_tag < 21) {
1207
    /* */
1208
0
    rascategory = (ras_category)(pi->msg_tag / 3);
1209
0
    rasmsg_type = (ras_type)(pi->msg_tag % 3);
1210
0
  }
1211
0
  else {
1212
    /* No SRT yet (ToDo) */
1213
0
    return TAP_PACKET_DONT_REDRAW;
1214
0
  }
1215
1216
0
  switch(rasmsg_type) {
1217
1218
0
  case RAS_REQUEST:
1219
0
    if(pi->is_duplicate){
1220
0
      rs->time_stats[rascategory].req_dup_num++;
1221
0
    }
1222
0
    else {
1223
0
      rs->time_stats[rascategory].open_req_num++;
1224
0
    }
1225
0
    break;
1226
1227
0
  case RAS_CONFIRM:
1228
    /* no break - delay stats are identical for Confirm and Reject */
1229
0
  case RAS_REJECT:
1230
0
    if(pi->is_duplicate){
1231
      /* Duplicate is ignored */
1232
0
      rs->time_stats[rascategory].rsp_dup_num++;
1233
0
    }
1234
0
    else if (!pi->request_available) {
1235
      /* no request was seen, ignore response */
1236
0
      rs->time_stats[rascategory].disc_rsp_num++;
1237
0
    }
1238
0
    else {
1239
0
      rs->time_stats[rascategory].open_req_num--;
1240
0
      time_stat_update(&(rs->time_stats[rascategory].rtd[0]),&(pi->delta_time), pinfo);
1241
0
    }
1242
0
    break;
1243
1244
0
  default:
1245
0
    return TAP_PACKET_DONT_REDRAW;
1246
0
  }
1247
0
  return TAP_PACKET_REDRAW;
1248
0
}
1249
1250
static void h225_set_cs_type(packet_info *pinfo, h225_packet_info* h225_pi, h225_cs_type cs_type, bool faststart)
1251
40
{
1252
40
  if (h225_pi == NULL)
1253
0
    return;
1254
1255
40
  h225_pi->cs_type = cs_type;
1256
  /* XXX - Why not always use contains_faststart or h225_pi->is_faststart
1257
   * There are some UUIEs (e.g., Facility-UUIE) where a fastStart can be
1258
   * included but the path adding extra to the label has never been used.
1259
   * Is that an oversight or intentional?
1260
   */
1261
40
  if (faststart) {
1262
0
    h225_pi->frame_label = wmem_strdup_printf(pinfo->pool, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
1263
40
  } else {
1264
40
    h225_pi->frame_label = wmem_strdup(pinfo->pool, val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
1265
40
  }
1266
40
}
1267
1268
/*--- Cyclic dependencies ---*/
1269
1270
/* EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter */
1271
static unsigned dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1272
1273
/* GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData */
1274
/*unsigned dissect_h225_GenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
1275
1276
1277
1278
1279
static unsigned
1280
97
dissect_h225_ProtocolIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1281
97
  offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1282
1283
97
  return offset;
1284
97
}
1285
1286
1287
1288
static unsigned
1289
28
dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1290
28
  tvbuff_t *value_tvb;
1291
1292
28
  ipv4_address = 0;
1293
28
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1294
28
                                       4, 4, false, &value_tvb);
1295
1296
28
  if (value_tvb)
1297
28
    ipv4_address = tvb_get_ipv4(value_tvb, 0);
1298
1299
28
  return offset;
1300
28
}
1301
1302
1303
1304
static unsigned
1305
28
dissect_h225_T_h245IpPort(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1306
28
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1307
28
                                                            0U, 65535U, &ip_port, false);
1308
1309
28
  return offset;
1310
28
}
1311
1312
1313
static const per_sequence_t T_h245IpAddress_sequence[] = {
1314
  { &hf_h225_h245Ip         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip },
1315
  { &hf_h225_h245IpPort     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245IpPort },
1316
  { NULL, 0, 0, NULL }
1317
};
1318
1319
static unsigned
1320
28
dissect_h225_T_h245IpAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1321
28
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1322
28
                                   ett_h225_T_h245IpAddress, T_h245IpAddress_sequence);
1323
1324
28
  return offset;
1325
28
}
1326
1327
1328
1329
static unsigned
1330
557
dissect_h225_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331
557
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1332
557
                                       4, 4, false, NULL);
1333
1334
557
  return offset;
1335
557
}
1336
1337
1338
1339
static unsigned
1340
643
dissect_h225_INTEGER_0_65535(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1341
643
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1342
643
                                                            0U, 65535U, NULL, false);
1343
1344
643
  return offset;
1345
643
}
1346
1347
1348
static const per_sequence_t T_h245Route_sequence_of[1] = {
1349
  { &hf_h225_h245Route_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1350
};
1351
1352
static unsigned
1353
0
dissect_h225_T_h245Route(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1354
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1355
0
                                      ett_h225_T_h245Route, T_h245Route_sequence_of);
1356
1357
0
  return offset;
1358
0
}
1359
1360
1361
1362
static unsigned
1363
642
dissect_h225_NULL(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1364
642
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1365
1366
642
  return offset;
1367
642
}
1368
1369
1370
static const value_string h225_T_h245Routing_vals[] = {
1371
  {   0, "strict" },
1372
  {   1, "loose" },
1373
  { 0, NULL }
1374
};
1375
1376
static const per_choice_t T_h245Routing_choice[] = {
1377
  {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1378
  {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1379
  { 0, NULL, 0, NULL }
1380
};
1381
1382
static unsigned
1383
0
dissect_h225_T_h245Routing(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1384
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1385
0
                                 ett_h225_T_h245Routing, T_h245Routing_choice,
1386
0
                                 NULL);
1387
1388
0
  return offset;
1389
0
}
1390
1391
1392
static const per_sequence_t T_h245IpSourceRoute_sequence[] = {
1393
  { &hf_h225_ip             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1394
  { &hf_h225_port           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1395
  { &hf_h225_h245Route      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Route },
1396
  { &hf_h225_h245Routing    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Routing },
1397
  { NULL, 0, 0, NULL }
1398
};
1399
1400
static unsigned
1401
0
dissect_h225_T_h245IpSourceRoute(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1402
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1403
0
                                   ett_h225_T_h245IpSourceRoute, T_h245IpSourceRoute_sequence);
1404
1405
0
  return offset;
1406
0
}
1407
1408
1409
1410
static unsigned
1411
109
dissect_h225_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1412
109
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1413
109
                                       6, 6, false, NULL);
1414
1415
109
  return offset;
1416
109
}
1417
1418
1419
1420
static unsigned
1421
109
dissect_h225_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1422
109
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1423
109
                                       2, 2, false, NULL);
1424
1425
109
  return offset;
1426
109
}
1427
1428
1429
static const per_sequence_t T_h245IpxAddress_sequence[] = {
1430
  { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1431
  { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1432
  { &hf_h225_h245IpxPort    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1433
  { NULL, 0, 0, NULL }
1434
};
1435
1436
static unsigned
1437
0
dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1438
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1439
0
                                   ett_h225_T_h245IpxAddress, T_h245IpxAddress_sequence);
1440
1441
0
  return offset;
1442
0
}
1443
1444
1445
1446
static unsigned
1447
0
dissect_h225_T_h245Ip6(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1448
0
  tvbuff_t *value_tvb;
1449
1450
0
  ipv6_address = ipv6_address_zeros;
1451
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1452
0
                                       16, 16, false, &value_tvb);
1453
1454
0
  if (value_tvb)
1455
0
    tvb_get_ipv6(value_tvb, 0, &ipv6_address);
1456
1457
0
  return offset;
1458
0
}
1459
1460
1461
1462
static unsigned
1463
0
dissect_h225_T_h245Ip6port(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1464
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1465
0
                                                            0U, 65535U, &ip_port, false);
1466
1467
0
  return offset;
1468
0
}
1469
1470
1471
static const per_sequence_t T_h245Ip6Address_sequence[] = {
1472
  { &hf_h225_h245Ip6        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6 },
1473
  { &hf_h225_h245Ip6port    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6port },
1474
  { NULL, 0, 0, NULL }
1475
};
1476
1477
static unsigned
1478
0
dissect_h225_T_h245Ip6Address(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1479
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1480
0
                                   ett_h225_T_h245Ip6Address, T_h245Ip6Address_sequence);
1481
1482
0
  return offset;
1483
0
}
1484
1485
1486
1487
static unsigned
1488
73
dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1489
73
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1490
73
                                       16, 16, false, NULL);
1491
1492
73
  return offset;
1493
73
}
1494
1495
1496
1497
static unsigned
1498
140
dissect_h225_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1499
140
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1500
140
                                       1, 20, false, NULL);
1501
1502
140
  return offset;
1503
140
}
1504
1505
1506
1507
static unsigned
1508
222
dissect_h225_T_nsiOID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1509
222
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &nsiOID);
1510
1511
222
  return offset;
1512
222
}
1513
1514
1515
1516
static unsigned
1517
56
dissect_h225_T_t35CountryCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1518
56
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1519
56
                                                            0U, 255U, &t35CountryCode, false);
1520
1521
56
  return offset;
1522
56
}
1523
1524
1525
1526
static unsigned
1527
56
dissect_h225_T_t35Extension(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1528
56
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1529
56
                                                            0U, 255U, &t35Extension, false);
1530
1531
56
  return offset;
1532
56
}
1533
1534
1535
1536
static unsigned
1537
56
dissect_h225_T_manufacturerCode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1538
56
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1539
56
                                                            0U, 65535U, &manufacturerCode, false);
1540
1541
56
  return offset;
1542
56
}
1543
1544
1545
static const per_sequence_t H221NonStandard_sequence[] = {
1546
  { &hf_h225_t35CountryCode , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35CountryCode },
1547
  { &hf_h225_t35Extension   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35Extension },
1548
  { &hf_h225_manufacturerCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_manufacturerCode },
1549
  { NULL, 0, 0, NULL }
1550
};
1551
1552
static unsigned
1553
56
dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1554
56
  t35CountryCode = 0;
1555
56
  t35Extension = 0;
1556
56
  manufacturerCode = 0;
1557
56
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1558
56
                                   ett_h225_H221NonStandard, H221NonStandard_sequence);
1559
1560
56
  h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
1561
56
  proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
1562
56
  return offset;
1563
56
}
1564
1565
1566
static const value_string h225_NonStandardIdentifier_vals[] = {
1567
  {   0, "object" },
1568
  {   1, "h221NonStandard" },
1569
  { 0, NULL }
1570
};
1571
1572
static const per_choice_t NonStandardIdentifier_choice[] = {
1573
  {   0, &hf_h225_nsiOID         , ASN1_EXTENSION_ROOT    , dissect_h225_T_nsiOID },
1574
  {   1, &hf_h225_h221NonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_H221NonStandard },
1575
  { 0, NULL, 0, NULL }
1576
};
1577
1578
static unsigned
1579
307
dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1580
307
  int32_t value;
1581
1582
307
  nsiOID = "";
1583
307
  h221NonStandard = 0;
1584
1585
307
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1586
307
                                 ett_h225_NonStandardIdentifier, NonStandardIdentifier_choice,
1587
307
                                 &value);
1588
1589
307
  switch (value) {
1590
205
    case 0 :  /* object */
1591
205
      nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
1592
205
      break;
1593
24
    case 1 :  /* h221NonStandard */
1594
24
      nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
1595
24
      break;
1596
47
    default :
1597
47
      nsp_handle = NULL;
1598
307
    }
1599
1600
276
  return offset;
1601
307
}
1602
1603
1604
1605
static unsigned
1606
276
dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1607
276
  tvbuff_t *next_tvb = NULL;
1608
1609
276
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1610
276
                                       NO_BOUND, NO_BOUND, false, &next_tvb);
1611
1612
276
  if (next_tvb && tvb_reported_length(next_tvb)) {
1613
138
    call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
1614
138
  }
1615
1616
276
  return offset;
1617
276
}
1618
1619
1620
static const per_sequence_t NonStandardParameter_sequence[] = {
1621
  { &hf_h225_nonStandardIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardIdentifier },
1622
  { &hf_h225_nsp_data       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_nsp_data },
1623
  { NULL, 0, 0, NULL }
1624
};
1625
1626
unsigned
1627
307
dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1628
307
  nsp_handle = NULL;
1629
307
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1630
307
                                   ett_h225_NonStandardParameter, NonStandardParameter_sequence);
1631
1632
307
  return offset;
1633
307
}
1634
1635
1636
static const value_string h225_H245TransportAddress_vals[] = {
1637
  {   0, "ipAddress" },
1638
  {   1, "ipSourceRoute" },
1639
  {   2, "ipxAddress" },
1640
  {   3, "ip6Address" },
1641
  {   4, "netBios" },
1642
  {   5, "nsap" },
1643
  {   6, "nonStandardAddress" },
1644
  { 0, NULL }
1645
};
1646
1647
static const per_choice_t H245TransportAddress_choice[] = {
1648
  {   0, &hf_h225_h245IpAddress  , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpAddress },
1649
  {   1, &hf_h225_h245IpSourceRoute, ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpSourceRoute },
1650
  {   2, &hf_h225_h245IpxAddress , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpxAddress },
1651
  {   3, &hf_h225_h245Ip6Address , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245Ip6Address },
1652
  {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1653
  {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1654
  {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1655
  { 0, NULL, 0, NULL }
1656
};
1657
1658
static unsigned
1659
34
dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660
34
  h225_packet_info* h225_pi;
1661
34
  ipv4_address=0;
1662
34
  ipv6_address = ipv6_address_zeros;
1663
34
  ip_port=0;
1664
1665
34
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1666
34
                                 ett_h225_H245TransportAddress, H245TransportAddress_choice,
1667
34
                                 NULL);
1668
1669
  /* we need this info for TAPing */
1670
34
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1671
1672
34
  if (h225_pi) {
1673
33
    h225_pi->is_h245 = true;
1674
33
    h225_pi->h245_address = ipv4_address;
1675
33
    h225_pi->h245_port = ip_port;
1676
33
  }
1677
34
  if ( !actx->pinfo->fd->visited && h245_handle && ip_port!=0 ) {
1678
25
    address src_addr;
1679
25
    conversation_t *conv=NULL;
1680
1681
25
    if (ipv4_address!=0) {
1682
25
      set_address(&src_addr, AT_IPv4, 4, &ipv4_address);
1683
25
    } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
1684
0
      set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
1685
0
    } else {
1686
0
      return offset;
1687
0
    }
1688
1689
25
    conv=find_conversation(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
1690
25
    if(!conv){
1691
12
      conv=conversation_new(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
1692
12
      conversation_set_dissector(conv, h245_handle);
1693
12
    }
1694
25
  }
1695
34
  return offset;
1696
34
}
1697
1698
1699
1700
static unsigned
1701
1.78k
dissect_h225_DialedDigits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1702
1.78k
  tvbuff_t *value_tvb = NULL;
1703
1.78k
  unsigned len = 0;
1704
1.78k
  h225_packet_info* h225_pi;
1705
1706
1.78k
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1707
1.78k
                                                      1, 128, false, "0123456789#*,", 13,
1708
1.78k
                                                      &value_tvb);
1709
1710
1.78k
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1711
1.78k
  if (h225_pi && h225_pi->is_destinationInfo == true) {
1712
296
    if (value_tvb) {
1713
296
      len = tvb_reported_length(value_tvb);
1714
      /* XXX - should this be allocated as an ephemeral string? */
1715
296
      if (len > sizeof h225_pi->dialedDigits - 1)
1716
1
        len = sizeof h225_pi->dialedDigits - 1;
1717
296
      tvb_memcpy(value_tvb, (uint8_t*)h225_pi->dialedDigits, 0, len);
1718
296
    }
1719
296
    h225_pi->dialedDigits[len] = '\0';
1720
296
    h225_pi->is_destinationInfo = false;
1721
296
  }
1722
1723
1.78k
  return offset;
1724
1.78k
}
1725
1726
1727
1728
static unsigned
1729
135
dissect_h225_BMPString_SIZE_1_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1730
135
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1731
135
                                          1, 256, false);
1732
1733
135
  return offset;
1734
135
}
1735
1736
1737
1738
static unsigned
1739
44
dissect_h225_IA5String_SIZE_1_512(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1740
44
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1741
44
                                          1, 512, false,
1742
44
                                          NULL);
1743
1744
44
  return offset;
1745
44
}
1746
1747
1748
1749
static unsigned
1750
453
dissect_h225_IpV4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1751
453
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1752
453
                                       4, 4, false, NULL);
1753
1754
453
  return offset;
1755
453
}
1756
1757
1758
static const per_sequence_t T_ipAddress_sequence[] = {
1759
  { &hf_h225_ipV4           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IpV4 },
1760
  { &hf_h225_ipV4_port      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1761
  { NULL, 0, 0, NULL }
1762
};
1763
1764
static unsigned
1765
453
dissect_h225_T_ipAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1766
453
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1767
453
                                   ett_h225_T_ipAddress, T_ipAddress_sequence);
1768
1769
453
  return offset;
1770
453
}
1771
1772
1773
static const per_sequence_t T_route_sequence_of[1] = {
1774
  { &hf_h225_route_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1775
};
1776
1777
static unsigned
1778
25
dissect_h225_T_route(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1779
25
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1780
25
                                      ett_h225_T_route, T_route_sequence_of);
1781
1782
25
  return offset;
1783
25
}
1784
1785
1786
static const value_string h225_T_routing_vals[] = {
1787
  {   0, "strict" },
1788
  {   1, "loose" },
1789
  { 0, NULL }
1790
};
1791
1792
static const per_choice_t T_routing_choice[] = {
1793
  {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1794
  {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1795
  { 0, NULL, 0, NULL }
1796
};
1797
1798
static unsigned
1799
18
dissect_h225_T_routing(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1800
18
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1801
18
                                 ett_h225_T_routing, T_routing_choice,
1802
18
                                 NULL);
1803
1804
18
  return offset;
1805
18
}
1806
1807
1808
static const per_sequence_t T_ipSourceRoute_sequence[] = {
1809
  { &hf_h225_src_route_ipV4 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1810
  { &hf_h225_ipV4_src_port  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1811
  { &hf_h225_route          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_route },
1812
  { &hf_h225_routing        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_routing },
1813
  { NULL, 0, 0, NULL }
1814
};
1815
1816
static unsigned
1817
26
dissect_h225_T_ipSourceRoute(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1818
26
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1819
26
                                   ett_h225_T_ipSourceRoute, T_ipSourceRoute_sequence);
1820
1821
26
  return offset;
1822
26
}
1823
1824
1825
static const per_sequence_t T_ipxAddress_sequence[] = {
1826
  { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1827
  { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1828
  { &hf_h225_ipx_port       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1829
  { NULL, 0, 0, NULL }
1830
};
1831
1832
static unsigned
1833
109
dissect_h225_T_ipxAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1834
109
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1835
109
                                   ett_h225_T_ipxAddress, T_ipxAddress_sequence);
1836
1837
109
  return offset;
1838
109
}
1839
1840
1841
static const per_sequence_t T_ip6Address_sequence[] = {
1842
  { &hf_h225_ipV6           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_16 },
1843
  { &hf_h225_ipV6_port      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1844
  { NULL, 0, 0, NULL }
1845
};
1846
1847
static unsigned
1848
31
dissect_h225_T_ip6Address(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1849
31
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1850
31
                                   ett_h225_T_ip6Address, T_ip6Address_sequence);
1851
1852
31
  return offset;
1853
31
}
1854
1855
1856
const value_string h225_TransportAddress_vals[] = {
1857
  {   0, "ipAddress" },
1858
  {   1, "ipSourceRoute" },
1859
  {   2, "ipxAddress" },
1860
  {   3, "ip6Address" },
1861
  {   4, "netBios" },
1862
  {   5, "nsap" },
1863
  {   6, "nonStandardAddress" },
1864
  { 0, NULL }
1865
};
1866
1867
static const per_choice_t TransportAddress_choice[] = {
1868
  {   0, &hf_h225_ipAddress      , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipAddress },
1869
  {   1, &hf_h225_ipSourceRoute  , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipSourceRoute },
1870
  {   2, &hf_h225_ipxAddress     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipxAddress },
1871
  {   3, &hf_h225_ip6Address     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ip6Address },
1872
  {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1873
  {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1874
  {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1875
  { 0, NULL, 0, NULL }
1876
};
1877
1878
unsigned
1879
862
dissect_h225_TransportAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1880
862
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1881
862
                                 ett_h225_TransportAddress, TransportAddress_choice,
1882
862
                                 NULL);
1883
1884
862
  return offset;
1885
862
}
1886
1887
1888
const value_string h225_PublicTypeOfNumber_vals[] = {
1889
  {   0, "unknown" },
1890
  {   1, "internationalNumber" },
1891
  {   2, "nationalNumber" },
1892
  {   3, "networkSpecificNumber" },
1893
  {   4, "subscriberNumber" },
1894
  {   5, "abbreviatedNumber" },
1895
  { 0, NULL }
1896
};
1897
1898
static const per_choice_t PublicTypeOfNumber_choice[] = {
1899
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1900
  {   1, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1901
  {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1902
  {   3, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1903
  {   4, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1904
  {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1905
  { 0, NULL, 0, NULL }
1906
};
1907
1908
unsigned
1909
28
dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1910
28
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1911
28
                                 ett_h225_PublicTypeOfNumber, PublicTypeOfNumber_choice,
1912
28
                                 NULL);
1913
1914
28
  return offset;
1915
28
}
1916
1917
1918
1919
static unsigned
1920
59
dissect_h225_NumberDigits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1921
59
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1922
59
                                                      1, 128, false, "0123456789#*,", 13,
1923
59
                                                      NULL);
1924
1925
59
  return offset;
1926
59
}
1927
1928
1929
static const per_sequence_t PublicPartyNumber_sequence[] = {
1930
  { &hf_h225_publicTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PublicTypeOfNumber },
1931
  { &hf_h225_publicNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1932
  { NULL, 0, 0, NULL }
1933
};
1934
1935
static unsigned
1936
28
dissect_h225_PublicPartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1937
28
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1938
28
                                   ett_h225_PublicPartyNumber, PublicPartyNumber_sequence);
1939
1940
28
  return offset;
1941
28
}
1942
1943
1944
const value_string h225_PrivateTypeOfNumber_vals[] = {
1945
  {   0, "unknown" },
1946
  {   1, "level2RegionalNumber" },
1947
  {   2, "level1RegionalNumber" },
1948
  {   3, "pISNSpecificNumber" },
1949
  {   4, "localNumber" },
1950
  {   5, "abbreviatedNumber" },
1951
  { 0, NULL }
1952
};
1953
1954
static const per_choice_t PrivateTypeOfNumber_choice[] = {
1955
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1956
  {   1, &hf_h225_level2RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1957
  {   2, &hf_h225_level1RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1958
  {   3, &hf_h225_pISNSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1959
  {   4, &hf_h225_localNumber    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1960
  {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1961
  { 0, NULL, 0, NULL }
1962
};
1963
1964
unsigned
1965
6
dissect_h225_PrivateTypeOfNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1966
6
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1967
6
                                 ett_h225_PrivateTypeOfNumber, PrivateTypeOfNumber_choice,
1968
6
                                 NULL);
1969
1970
6
  return offset;
1971
6
}
1972
1973
1974
static const per_sequence_t PrivatePartyNumber_sequence[] = {
1975
  { &hf_h225_privateTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
1976
  { &hf_h225_privateNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1977
  { NULL, 0, 0, NULL }
1978
};
1979
1980
static unsigned
1981
5
dissect_h225_PrivatePartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1982
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1983
5
                                   ett_h225_PrivatePartyNumber, PrivatePartyNumber_sequence);
1984
1985
5
  return offset;
1986
5
}
1987
1988
1989
const value_string h225_PartyNumber_vals[] = {
1990
  {   0, "e164Number" },
1991
  {   1, "dataPartyNumber" },
1992
  {   2, "telexPartyNumber" },
1993
  {   3, "privateNumber" },
1994
  {   4, "nationalStandardPartyNumber" },
1995
  { 0, NULL }
1996
};
1997
1998
static const per_choice_t PartyNumber_choice[] = {
1999
  {   0, &hf_h225_e164Number     , ASN1_EXTENSION_ROOT    , dissect_h225_PublicPartyNumber },
2000
  {   1, &hf_h225_dataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2001
  {   2, &hf_h225_telexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2002
  {   3, &hf_h225_privateNumber  , ASN1_EXTENSION_ROOT    , dissect_h225_PrivatePartyNumber },
2003
  {   4, &hf_h225_nationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2004
  { 0, NULL, 0, NULL }
2005
};
2006
2007
unsigned
2008
77
dissect_h225_PartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2009
77
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2010
77
                                 ett_h225_PartyNumber, PartyNumber_choice,
2011
77
                                 NULL);
2012
2013
77
  return offset;
2014
77
}
2015
2016
2017
2018
static unsigned
2019
30
dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2020
30
  int min_len, max_len;
2021
30
  bool has_extension;
2022
2023
30
  get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
2024
30
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2025
30
                                                      min_len, max_len, has_extension, "0123456789#*abc", 15,
2026
30
                                                      NULL);
2027
2028
30
  return offset;
2029
30
}
2030
2031
2032
2033
static unsigned
2034
15
dissect_h225_TBCD_STRING_SIZE_3_16(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035
15
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2036
15
                                                "TBCD_STRING", 3, 16, false);
2037
2038
15
  return offset;
2039
15
}
2040
2041
2042
2043
static unsigned
2044
6
dissect_h225_TBCD_STRING_SIZE_16(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2045
6
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2046
6
                                                "TBCD_STRING", 16, 16, false);
2047
2048
6
  return offset;
2049
6
}
2050
2051
2052
2053
static unsigned
2054
5
dissect_h225_TBCD_STRING_SIZE_1_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2055
5
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2056
5
                                                "TBCD_STRING", 1, 4, false);
2057
2058
5
  return offset;
2059
5
}
2060
2061
2062
static const value_string h225_T_system_id_vals[] = {
2063
  {   0, "sid" },
2064
  {   1, "mid" },
2065
  { 0, NULL }
2066
};
2067
2068
static const per_choice_t T_system_id_choice[] = {
2069
  {   0, &hf_h225_sid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2070
  {   1, &hf_h225_mid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2071
  { 0, NULL, 0, NULL }
2072
};
2073
2074
static unsigned
2075
5
dissect_h225_T_system_id(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2076
5
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2077
5
                                 ett_h225_T_system_id, T_system_id_choice,
2078
5
                                 NULL);
2079
2080
5
  return offset;
2081
5
}
2082
2083
2084
2085
static unsigned
2086
6
dissect_h225_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2087
6
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2088
6
                                       1, 1, false, NULL);
2089
2090
6
  return offset;
2091
6
}
2092
2093
2094
static const per_sequence_t ANSI_41_UIM_sequence[] = {
2095
  { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2096
  { &hf_h225_min            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2097
  { &hf_h225_mdn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2098
  { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2099
  { &hf_h225_esn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2100
  { &hf_h225_mscid          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2101
  { &hf_h225_system_id      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_system_id },
2102
  { &hf_h225_systemMyTypeCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2103
  { &hf_h225_systemAccessType, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2104
  { &hf_h225_qualificationInformationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2105
  { &hf_h225_sesn           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2106
  { &hf_h225_soc            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2107
  { NULL, 0, 0, NULL }
2108
};
2109
2110
static unsigned
2111
6
dissect_h225_ANSI_41_UIM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2112
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2113
6
                                   ett_h225_ANSI_41_UIM, ANSI_41_UIM_sequence);
2114
2115
6
  return offset;
2116
6
}
2117
2118
2119
2120
static unsigned
2121
4
dissect_h225_OCTET_STRING_SIZE_1_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2122
4
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2123
4
                                       1, 4, false, NULL);
2124
2125
4
  return offset;
2126
4
}
2127
2128
2129
2130
static unsigned
2131
4
dissect_h225_TBCD_STRING_SIZE_15_16(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2132
4
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2133
4
                                                "TBCD_STRING", 15, 16, false);
2134
2135
4
  return offset;
2136
4
}
2137
2138
2139
static const per_sequence_t GSM_UIM_sequence[] = {
2140
  { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2141
  { &hf_h225_tmsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_4 },
2142
  { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2143
  { &hf_h225_imei           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_15_16 },
2144
  { &hf_h225_hplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2145
  { &hf_h225_vplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2146
  { NULL, 0, 0, NULL }
2147
};
2148
2149
static unsigned
2150
7
dissect_h225_GSM_UIM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2151
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2152
7
                                   ett_h225_GSM_UIM, GSM_UIM_sequence);
2153
2154
7
  return offset;
2155
7
}
2156
2157
2158
static const value_string h225_MobileUIM_vals[] = {
2159
  {   0, "ansi-41-uim" },
2160
  {   1, "gsm-uim" },
2161
  { 0, NULL }
2162
};
2163
2164
static const per_choice_t MobileUIM_choice[] = {
2165
  {   0, &hf_h225_ansi_41_uim    , ASN1_EXTENSION_ROOT    , dissect_h225_ANSI_41_UIM },
2166
  {   1, &hf_h225_gsm_uim        , ASN1_EXTENSION_ROOT    , dissect_h225_GSM_UIM },
2167
  { 0, NULL, 0, NULL }
2168
};
2169
2170
static unsigned
2171
15
dissect_h225_MobileUIM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2172
15
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2173
15
                                 ett_h225_MobileUIM, MobileUIM_choice,
2174
15
                                 NULL);
2175
2176
15
  return offset;
2177
15
}
2178
2179
2180
static const value_string h225_NatureOfAddress_vals[] = {
2181
  {   0, "unknown" },
2182
  {   1, "subscriberNumber" },
2183
  {   2, "nationalNumber" },
2184
  {   3, "internationalNumber" },
2185
  {   4, "networkSpecificNumber" },
2186
  {   5, "routingNumberNationalFormat" },
2187
  {   6, "routingNumberNetworkSpecificFormat" },
2188
  {   7, "routingNumberWithCalledDirectoryNumber" },
2189
  { 0, NULL }
2190
};
2191
2192
static const per_choice_t NatureOfAddress_choice[] = {
2193
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2194
  {   1, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2195
  {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2196
  {   3, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2197
  {   4, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2198
  {   5, &hf_h225_routingNumberNationalFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2199
  {   6, &hf_h225_routingNumberNetworkSpecificFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2200
  {   7, &hf_h225_routingNumberWithCalledDirectoryNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2201
  { 0, NULL, 0, NULL }
2202
};
2203
2204
static unsigned
2205
5
dissect_h225_NatureOfAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2206
5
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2207
5
                                 ett_h225_NatureOfAddress, NatureOfAddress_choice,
2208
5
                                 NULL);
2209
2210
5
  return offset;
2211
5
}
2212
2213
2214
2215
static unsigned
2216
5
dissect_h225_IsupDigits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2217
5
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2218
5
                                                      1, 128, false, "0123456789ABCDE", 15,
2219
5
                                                      NULL);
2220
2221
5
  return offset;
2222
5
}
2223
2224
2225
static const per_sequence_t IsupPublicPartyNumber_sequence[] = {
2226
  { &hf_h225_natureOfAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NatureOfAddress },
2227
  { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2228
  { NULL, 0, 0, NULL }
2229
};
2230
2231
static unsigned
2232
5
dissect_h225_IsupPublicPartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2233
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2234
5
                                   ett_h225_IsupPublicPartyNumber, IsupPublicPartyNumber_sequence);
2235
2236
5
  return offset;
2237
5
}
2238
2239
2240
static const per_sequence_t IsupPrivatePartyNumber_sequence[] = {
2241
  { &hf_h225_privateTypeOfNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
2242
  { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2243
  { NULL, 0, 0, NULL }
2244
};
2245
2246
static unsigned
2247
1
dissect_h225_IsupPrivatePartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2248
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2249
1
                                   ett_h225_IsupPrivatePartyNumber, IsupPrivatePartyNumber_sequence);
2250
2251
1
  return offset;
2252
1
}
2253
2254
2255
static const value_string h225_IsupNumber_vals[] = {
2256
  {   0, "e164Number" },
2257
  {   1, "dataPartyNumber" },
2258
  {   2, "telexPartyNumber" },
2259
  {   3, "privateNumber" },
2260
  {   4, "nationalStandardPartyNumber" },
2261
  { 0, NULL }
2262
};
2263
2264
static const per_choice_t IsupNumber_choice[] = {
2265
  {   0, &hf_h225_isupE164Number , ASN1_EXTENSION_ROOT    , dissect_h225_IsupPublicPartyNumber },
2266
  {   1, &hf_h225_isupDataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2267
  {   2, &hf_h225_isupTelexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2268
  {   3, &hf_h225_isupPrivateNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupPrivatePartyNumber },
2269
  {   4, &hf_h225_isupNationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2270
  { 0, NULL, 0, NULL }
2271
};
2272
2273
static unsigned
2274
6
dissect_h225_IsupNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2275
6
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2276
6
                                 ett_h225_IsupNumber, IsupNumber_choice,
2277
6
                                 NULL);
2278
2279
6
  return offset;
2280
6
}
2281
2282
2283
const value_string AliasAddress_vals[] = {
2284
  {   0, "dialledDigits" },
2285
  {   1, "h323-ID" },
2286
  {   2, "url-ID" },
2287
  {   3, "transportID" },
2288
  {   4, "email-ID" },
2289
  {   5, "partyNumber" },
2290
  {   6, "mobileUIM" },
2291
  {   7, "isupNumber" },
2292
  { 0, NULL }
2293
};
2294
2295
static const per_choice_t AliasAddress_choice[] = {
2296
  {   0, &hf_h225_dialledDigits  , ASN1_EXTENSION_ROOT    , dissect_h225_DialedDigits },
2297
  {   1, &hf_h225_h323_ID        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString_SIZE_1_256 },
2298
  {   2, &hf_h225_url_ID         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2299
  {   3, &hf_h225_transportID    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_TransportAddress },
2300
  {   4, &hf_h225_email_ID       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2301
  {   5, &hf_h225_partyNumber    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_PartyNumber },
2302
  {   6, &hf_h225_mobileUIM      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_MobileUIM },
2303
  {   7, &hf_h225_isupNumber     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IsupNumber },
2304
  { 0, NULL, 0, NULL }
2305
};
2306
2307
unsigned
2308
2.03k
dissect_h225_AliasAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2309
2.03k
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2310
2.03k
                                 ett_h225_AliasAddress, AliasAddress_choice,
2311
2.03k
                                 NULL);
2312
2313
2.03k
  return offset;
2314
2.03k
}
2315
2316
2317
static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
2318
  { &hf_h225_alertingAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2319
};
2320
2321
static unsigned
2322
21
dissect_h225_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2323
21
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2324
21
                                      ett_h225_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
2325
2326
21
  return offset;
2327
21
}
2328
2329
2330
2331
static unsigned
2332
21
dissect_h225_OCTET_STRING_SIZE_1_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2333
21
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2334
21
                                       1, 256, false, NULL);
2335
2336
21
  return offset;
2337
21
}
2338
2339
2340
2341
static unsigned
2342
28
dissect_h225_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2343
28
  offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2344
2345
28
  return offset;
2346
28
}
2347
2348
2349
static const per_sequence_t VendorIdentifier_sequence[] = {
2350
  { &hf_h225_vendorIdentifier_vendor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H221NonStandard },
2351
  { &hf_h225_productId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2352
  { &hf_h225_versionId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2353
  { &hf_h225_enterpriseNumber, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
2354
  { NULL, 0, 0, NULL }
2355
};
2356
2357
static unsigned
2358
32
dissect_h225_VendorIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2359
32
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2360
32
                                   ett_h225_VendorIdentifier, VendorIdentifier_sequence);
2361
2362
32
  return offset;
2363
32
}
2364
2365
2366
static const per_sequence_t GatekeeperInfo_sequence[] = {
2367
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2368
  { NULL, 0, 0, NULL }
2369
};
2370
2371
static unsigned
2372
30
dissect_h225_GatekeeperInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2373
30
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2374
30
                                   ett_h225_GatekeeperInfo, GatekeeperInfo_sequence);
2375
2376
30
  return offset;
2377
30
}
2378
2379
2380
2381
unsigned
2382
282
dissect_h225_BandWidth(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2383
282
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2384
282
                                                            0U, 4294967295U, NULL, false);
2385
2386
282
  return offset;
2387
282
}
2388
2389
2390
2391
static unsigned
2392
12
dissect_h225_INTEGER_1_256(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2393
12
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2394
12
                                                            1U, 256U, NULL, false);
2395
2396
12
  return offset;
2397
12
}
2398
2399
2400
static const per_sequence_t DataRate_sequence[] = {
2401
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2402
  { &hf_h225_channelRate    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
2403
  { &hf_h225_channelMultiplier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_256 },
2404
  { NULL, 0, 0, NULL }
2405
};
2406
2407
static unsigned
2408
27
dissect_h225_DataRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2409
27
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2410
27
                                   ett_h225_DataRate, DataRate_sequence);
2411
2412
27
  return offset;
2413
27
}
2414
2415
2416
static const per_sequence_t SEQUENCE_OF_DataRate_sequence_of[1] = {
2417
  { &hf_h225_dataRatesSupported_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DataRate },
2418
};
2419
2420
static unsigned
2421
5
dissect_h225_SEQUENCE_OF_DataRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2422
5
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2423
5
                                      ett_h225_SEQUENCE_OF_DataRate, SEQUENCE_OF_DataRate_sequence_of);
2424
2425
5
  return offset;
2426
5
}
2427
2428
2429
static const per_sequence_t SupportedPrefix_sequence[] = {
2430
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2431
  { &hf_h225_prefix         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2432
  { NULL, 0, 0, NULL }
2433
};
2434
2435
static unsigned
2436
4
dissect_h225_SupportedPrefix(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2437
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2438
4
                                   ett_h225_SupportedPrefix, SupportedPrefix_sequence);
2439
2440
4
  return offset;
2441
4
}
2442
2443
2444
static const per_sequence_t SEQUENCE_OF_SupportedPrefix_sequence_of[1] = {
2445
  { &hf_h225_supportedPrefixes_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedPrefix },
2446
};
2447
2448
static unsigned
2449
4
dissect_h225_SEQUENCE_OF_SupportedPrefix(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2450
4
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2451
4
                                      ett_h225_SEQUENCE_OF_SupportedPrefix, SEQUENCE_OF_SupportedPrefix_sequence_of);
2452
2453
4
  return offset;
2454
4
}
2455
2456
2457
static const per_sequence_t H310Caps_sequence[] = {
2458
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2459
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2460
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2461
  { NULL, 0, 0, NULL }
2462
};
2463
2464
static unsigned
2465
24
dissect_h225_H310Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2466
24
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2467
24
                                   ett_h225_H310Caps, H310Caps_sequence);
2468
2469
24
  return offset;
2470
24
}
2471
2472
2473
static const per_sequence_t H320Caps_sequence[] = {
2474
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2475
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2476
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2477
  { NULL, 0, 0, NULL }
2478
};
2479
2480
static unsigned
2481
6
dissect_h225_H320Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2482
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2483
6
                                   ett_h225_H320Caps, H320Caps_sequence);
2484
2485
6
  return offset;
2486
6
}
2487
2488
2489
static const per_sequence_t H321Caps_sequence[] = {
2490
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2491
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2492
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2493
  { NULL, 0, 0, NULL }
2494
};
2495
2496
static unsigned
2497
13
dissect_h225_H321Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2498
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2499
13
                                   ett_h225_H321Caps, H321Caps_sequence);
2500
2501
13
  return offset;
2502
13
}
2503
2504
2505
static const per_sequence_t H322Caps_sequence[] = {
2506
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2507
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2508
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2509
  { NULL, 0, 0, NULL }
2510
};
2511
2512
static unsigned
2513
1
dissect_h225_H322Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2514
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2515
1
                                   ett_h225_H322Caps, H322Caps_sequence);
2516
2517
1
  return offset;
2518
1
}
2519
2520
2521
static const per_sequence_t H323Caps_sequence[] = {
2522
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2523
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2524
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2525
  { NULL, 0, 0, NULL }
2526
};
2527
2528
static unsigned
2529
7
dissect_h225_H323Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2530
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2531
7
                                   ett_h225_H323Caps, H323Caps_sequence);
2532
2533
7
  return offset;
2534
7
}
2535
2536
2537
static const per_sequence_t H324Caps_sequence[] = {
2538
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2539
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2540
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2541
  { NULL, 0, 0, NULL }
2542
};
2543
2544
static unsigned
2545
16
dissect_h225_H324Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2546
16
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2547
16
                                   ett_h225_H324Caps, H324Caps_sequence);
2548
2549
16
  return offset;
2550
16
}
2551
2552
2553
static const per_sequence_t VoiceCaps_sequence[] = {
2554
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2555
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2556
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2557
  { NULL, 0, 0, NULL }
2558
};
2559
2560
static unsigned
2561
1
dissect_h225_VoiceCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2562
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2563
1
                                   ett_h225_VoiceCaps, VoiceCaps_sequence);
2564
2565
1
  return offset;
2566
1
}
2567
2568
2569
static const per_sequence_t T120OnlyCaps_sequence[] = {
2570
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2571
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2572
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2573
  { NULL, 0, 0, NULL }
2574
};
2575
2576
static unsigned
2577
1
dissect_h225_T120OnlyCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2578
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2579
1
                                   ett_h225_T120OnlyCaps, T120OnlyCaps_sequence);
2580
2581
1
  return offset;
2582
1
}
2583
2584
2585
static const per_sequence_t NonStandardProtocol_sequence[] = {
2586
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2587
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2588
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2589
  { NULL, 0, 0, NULL }
2590
};
2591
2592
static unsigned
2593
1
dissect_h225_NonStandardProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2594
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2595
1
                                   ett_h225_NonStandardProtocol, NonStandardProtocol_sequence);
2596
2597
1
  return offset;
2598
1
}
2599
2600
2601
static const per_sequence_t T38FaxAnnexbOnlyCaps_sequence[] = {
2602
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2603
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2604
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2605
  { &hf_h225_t38FaxProtocol , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
2606
  { &hf_h225_t38FaxProfile  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
2607
  { NULL, 0, 0, NULL }
2608
};
2609
2610
static unsigned
2611
2
dissect_h225_T38FaxAnnexbOnlyCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2612
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2613
2
                                   ett_h225_T38FaxAnnexbOnlyCaps, T38FaxAnnexbOnlyCaps_sequence);
2614
2615
2
  return offset;
2616
2
}
2617
2618
2619
static const per_sequence_t SIPCaps_sequence[] = {
2620
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2621
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2622
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
2623
  { NULL, 0, 0, NULL }
2624
};
2625
2626
static unsigned
2627
1
dissect_h225_SIPCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2628
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2629
1
                                   ett_h225_SIPCaps, SIPCaps_sequence);
2630
2631
1
  return offset;
2632
1
}
2633
2634
2635
const value_string h225_SupportedProtocols_vals[] = {
2636
  {   0, "nonStandardData" },
2637
  {   1, "h310" },
2638
  {   2, "h320" },
2639
  {   3, "h321" },
2640
  {   4, "h322" },
2641
  {   5, "h323" },
2642
  {   6, "h324" },
2643
  {   7, "voice" },
2644
  {   8, "t120-only" },
2645
  {   9, "nonStandardProtocol" },
2646
  {  10, "t38FaxAnnexbOnly" },
2647
  {  11, "sip" },
2648
  { 0, NULL }
2649
};
2650
2651
static const per_choice_t SupportedProtocols_choice[] = {
2652
  {   0, &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
2653
  {   1, &hf_h225_h310           , ASN1_EXTENSION_ROOT    , dissect_h225_H310Caps },
2654
  {   2, &hf_h225_h320           , ASN1_EXTENSION_ROOT    , dissect_h225_H320Caps },
2655
  {   3, &hf_h225_h321           , ASN1_EXTENSION_ROOT    , dissect_h225_H321Caps },
2656
  {   4, &hf_h225_h322           , ASN1_EXTENSION_ROOT    , dissect_h225_H322Caps },
2657
  {   5, &hf_h225_h323           , ASN1_EXTENSION_ROOT    , dissect_h225_H323Caps },
2658
  {   6, &hf_h225_h324           , ASN1_EXTENSION_ROOT    , dissect_h225_H324Caps },
2659
  {   7, &hf_h225_voice          , ASN1_EXTENSION_ROOT    , dissect_h225_VoiceCaps },
2660
  {   8, &hf_h225_t120_only      , ASN1_EXTENSION_ROOT    , dissect_h225_T120OnlyCaps },
2661
  {   9, &hf_h225_nonStandardProtocol, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardProtocol },
2662
  {  10, &hf_h225_t38FaxAnnexbOnly, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T38FaxAnnexbOnlyCaps },
2663
  {  11, &hf_h225_sip            , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SIPCaps },
2664
  { 0, NULL, 0, NULL }
2665
};
2666
2667
unsigned
2668
107
dissect_h225_SupportedProtocols(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2669
107
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2670
107
                                 ett_h225_SupportedProtocols, SupportedProtocols_choice,
2671
107
                                 NULL);
2672
2673
107
  return offset;
2674
107
}
2675
2676
2677
static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
2678
  { &hf_h225_desiredProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
2679
};
2680
2681
static unsigned
2682
22
dissect_h225_SEQUENCE_OF_SupportedProtocols(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2683
22
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2684
22
                                      ett_h225_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
2685
2686
22
  return offset;
2687
22
}
2688
2689
2690
static const per_sequence_t GatewayInfo_sequence[] = {
2691
  { &hf_h225_protocol       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2692
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2693
  { NULL, 0, 0, NULL }
2694
};
2695
2696
static unsigned
2697
35
dissect_h225_GatewayInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2698
35
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2699
35
                                   ett_h225_GatewayInfo, GatewayInfo_sequence);
2700
2701
35
  return offset;
2702
35
}
2703
2704
2705
static const per_sequence_t McuInfo_sequence[] = {
2706
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2707
  { &hf_h225_protocol       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2708
  { NULL, 0, 0, NULL }
2709
};
2710
2711
static unsigned
2712
28
dissect_h225_McuInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2713
28
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2714
28
                                   ett_h225_McuInfo, McuInfo_sequence);
2715
2716
28
  return offset;
2717
28
}
2718
2719
2720
static const per_sequence_t TerminalInfo_sequence[] = {
2721
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2722
  { NULL, 0, 0, NULL }
2723
};
2724
2725
static unsigned
2726
14
dissect_h225_TerminalInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2727
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2728
14
                                   ett_h225_TerminalInfo, TerminalInfo_sequence);
2729
2730
14
  return offset;
2731
14
}
2732
2733
2734
2735
static unsigned
2736
520
dissect_h225_BOOLEAN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2737
520
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2738
2739
520
  return offset;
2740
520
}
2741
2742
2743
2744
static unsigned
2745
1
dissect_h225_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2746
1
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2747
1
                                     32, 32, false, NULL, 0, NULL, NULL);
2748
2749
1
  return offset;
2750
1
}
2751
2752
2753
2754
static unsigned
2755
11
dissect_h225_T_tunnelledProtocolObjectID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2756
11
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &tpOID);
2757
2758
11
  return offset;
2759
11
}
2760
2761
2762
2763
static unsigned
2764
11
dissect_h225_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2765
11
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
2766
11
                                          1, 64, false,
2767
11
                                          NULL);
2768
2769
11
  return offset;
2770
11
}
2771
2772
2773
static const per_sequence_t TunnelledProtocolAlternateIdentifier_sequence[] = {
2774
  { &hf_h225_protocolType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_64 },
2775
  { &hf_h225_protocolVariant, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2776
  { NULL, 0, 0, NULL }
2777
};
2778
2779
static unsigned
2780
2
dissect_h225_TunnelledProtocolAlternateIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2781
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2782
2
                                   ett_h225_TunnelledProtocolAlternateIdentifier, TunnelledProtocolAlternateIdentifier_sequence);
2783
2784
2
  return offset;
2785
2
}
2786
2787
2788
static const value_string h225_TunnelledProtocol_id_vals[] = {
2789
  {   0, "tunnelledProtocolObjectID" },
2790
  {   1, "tunnelledProtocolAlternateID" },
2791
  { 0, NULL }
2792
};
2793
2794
static const per_choice_t TunnelledProtocol_id_choice[] = {
2795
  {   0, &hf_h225_tunnelledProtocolObjectID, ASN1_EXTENSION_ROOT    , dissect_h225_T_tunnelledProtocolObjectID },
2796
  {   1, &hf_h225_tunnelledProtocolAlternateID, ASN1_EXTENSION_ROOT    , dissect_h225_TunnelledProtocolAlternateIdentifier },
2797
  { 0, NULL, 0, NULL }
2798
};
2799
2800
static unsigned
2801
21
dissect_h225_TunnelledProtocol_id(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2802
21
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2803
21
                                 ett_h225_TunnelledProtocol_id, TunnelledProtocol_id_choice,
2804
21
                                 NULL);
2805
2806
21
  return offset;
2807
21
}
2808
2809
2810
static const per_sequence_t TunnelledProtocol_sequence[] = {
2811
  { &hf_h225_tunnelledProtocol_id, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol_id },
2812
  { &hf_h225_subIdentifier  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2813
  { NULL, 0, 0, NULL }
2814
};
2815
2816
unsigned
2817
21
dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2818
21
  tpOID = "";
2819
21
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2820
21
                                   ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
2821
2822
21
  tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
2823
21
  return offset;
2824
21
}
2825
2826
2827
static const per_sequence_t SEQUENCE_OF_TunnelledProtocol_sequence_of[1] = {
2828
  { &hf_h225_supportedTunnelledProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
2829
};
2830
2831
static unsigned
2832
5
dissect_h225_SEQUENCE_OF_TunnelledProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2833
5
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2834
5
                                      ett_h225_SEQUENCE_OF_TunnelledProtocol, SEQUENCE_OF_TunnelledProtocol_sequence_of);
2835
2836
5
  return offset;
2837
5
}
2838
2839
2840
static const per_sequence_t EndpointType_sequence[] = {
2841
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2842
  { &hf_h225_vendor         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_VendorIdentifier },
2843
  { &hf_h225_gatekeeper     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperInfo },
2844
  { &hf_h225_gateway        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatewayInfo },
2845
  { &hf_h225_mcu            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_McuInfo },
2846
  { &hf_h225_terminal       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TerminalInfo },
2847
  { &hf_h225_mc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2848
  { &hf_h225_undefinedNode  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2849
  { &hf_h225_set            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BIT_STRING_SIZE_32 },
2850
  { &hf_h225_supportedTunnelledProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TunnelledProtocol },
2851
  { NULL, 0, 0, NULL }
2852
};
2853
2854
unsigned
2855
164
dissect_h225_EndpointType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2856
164
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2857
164
                                   ett_h225_EndpointType, EndpointType_sequence);
2858
2859
164
  return offset;
2860
164
}
2861
2862
2863
2864
unsigned
2865
266
dissect_h225_CallReferenceValue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2866
266
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2867
266
                                                            0U, 65535U, NULL, false);
2868
2869
266
  return offset;
2870
266
}
2871
2872
2873
static const per_sequence_t SEQUENCE_OF_CallReferenceValue_sequence_of[1] = {
2874
  { &hf_h225_destExtraCRV_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
2875
};
2876
2877
static unsigned
2878
2
dissect_h225_SEQUENCE_OF_CallReferenceValue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2879
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2880
2
                                      ett_h225_SEQUENCE_OF_CallReferenceValue, SEQUENCE_OF_CallReferenceValue_sequence_of);
2881
2882
2
  return offset;
2883
2
}
2884
2885
2886
2887
unsigned
2888
405
dissect_h225_GloballyUniqueID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2889
405
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2890
405
                                       16, 16, false, (tvbuff_t **)actx->value_ptr);
2891
2892
405
  return offset;
2893
405
}
2894
2895
2896
2897
unsigned
2898
161
dissect_h225_ConferenceIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2899
161
  offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2900
2901
161
  return offset;
2902
161
}
2903
2904
2905
static const value_string h225_T_conferenceGoal_vals[] = {
2906
  {   0, "create" },
2907
  {   1, "join" },
2908
  {   2, "invite" },
2909
  {   3, "capability-negotiation" },
2910
  {   4, "callIndependentSupplementaryService" },
2911
  { 0, NULL }
2912
};
2913
2914
static const per_choice_t T_conferenceGoal_choice[] = {
2915
  {   0, &hf_h225_create         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2916
  {   1, &hf_h225_join           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2917
  {   2, &hf_h225_invite         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2918
  {   3, &hf_h225_capability_negotiation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2919
  {   4, &hf_h225_callIndependentSupplementaryService, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2920
  { 0, NULL, 0, NULL }
2921
};
2922
2923
static unsigned
2924
6
dissect_h225_T_conferenceGoal(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2925
6
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2926
6
                                 ett_h225_T_conferenceGoal, T_conferenceGoal_choice,
2927
6
                                 NULL);
2928
2929
6
  return offset;
2930
6
}
2931
2932
2933
static const per_sequence_t Q954Details_sequence[] = {
2934
  { &hf_h225_conferenceCalling, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2935
  { &hf_h225_threePartyService, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2936
  { NULL, 0, 0, NULL }
2937
};
2938
2939
static unsigned
2940
2
dissect_h225_Q954Details(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2941
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2942
2
                                   ett_h225_Q954Details, Q954Details_sequence);
2943
2944
2
  return offset;
2945
2
}
2946
2947
2948
static const per_sequence_t QseriesOptions_sequence[] = {
2949
  { &hf_h225_q932Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2950
  { &hf_h225_q951Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2951
  { &hf_h225_q952Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2952
  { &hf_h225_q953Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2953
  { &hf_h225_q955Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2954
  { &hf_h225_q956Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2955
  { &hf_h225_q957Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2956
  { &hf_h225_q954Info       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_Q954Details },
2957
  { NULL, 0, 0, NULL }
2958
};
2959
2960
static unsigned
2961
2
dissect_h225_QseriesOptions(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2962
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2963
2
                                   ett_h225_QseriesOptions, QseriesOptions_sequence);
2964
2965
2
  return offset;
2966
2
}
2967
2968
2969
static const value_string h225_CallType_vals[] = {
2970
  {   0, "pointToPoint" },
2971
  {   1, "oneToN" },
2972
  {   2, "nToOne" },
2973
  {   3, "nToN" },
2974
  { 0, NULL }
2975
};
2976
2977
static const per_choice_t CallType_choice[] = {
2978
  {   0, &hf_h225_pointToPoint   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2979
  {   1, &hf_h225_oneToN         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2980
  {   2, &hf_h225_nToOne         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2981
  {   3, &hf_h225_nToN           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2982
  { 0, NULL, 0, NULL }
2983
};
2984
2985
static unsigned
2986
127
dissect_h225_CallType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2987
127
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2988
127
                                 ett_h225_CallType, CallType_choice,
2989
127
                                 NULL);
2990
2991
127
  return offset;
2992
127
}
2993
2994
2995
2996
static unsigned
2997
9
dissect_h225_T_guid(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2998
9
  tvbuff_t *guid_tvb = NULL;
2999
3000
9
  actx->value_ptr = &guid_tvb;
3001
9
  offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
3002
3003
9
  if (guid_tvb)
3004
9
    tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(actx->pinfo->pool, e_guid_t));
3005
9
  actx->value_ptr = NULL;
3006
3007
9
  return offset;
3008
9
}
3009
3010
3011
static const per_sequence_t CallIdentifier_sequence[] = {
3012
  { &hf_h225_guid           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_guid },
3013
  { NULL, 0, 0, NULL }
3014
};
3015
3016
unsigned
3017
9
dissect_h225_CallIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3018
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3019
9
                                   ett_h225_CallIdentifier, CallIdentifier_sequence);
3020
3021
9
  return offset;
3022
9
}
3023
3024
3025
static const value_string h225_SecurityServiceMode_vals[] = {
3026
  {   0, "nonStandard" },
3027
  {   1, "none" },
3028
  {   2, "default" },
3029
  { 0, NULL }
3030
};
3031
3032
static const per_choice_t SecurityServiceMode_choice[] = {
3033
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3034
  {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3035
  {   2, &hf_h225_default        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3036
  { 0, NULL, 0, NULL }
3037
};
3038
3039
static unsigned
3040
0
dissect_h225_SecurityServiceMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3041
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3042
0
                                 ett_h225_SecurityServiceMode, SecurityServiceMode_choice,
3043
0
                                 NULL);
3044
3045
0
  return offset;
3046
0
}
3047
3048
3049
static const per_sequence_t SecurityCapabilities_sequence[] = {
3050
  { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
3051
  { &hf_h225_encryption     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3052
  { &hf_h225_authenticaton  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3053
  { &hf_h225_securityCapabilities_integrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3054
  { NULL, 0, 0, NULL }
3055
};
3056
3057
static unsigned
3058
0
dissect_h225_SecurityCapabilities(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3059
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3060
0
                                   ett_h225_SecurityCapabilities, SecurityCapabilities_sequence);
3061
3062
0
  return offset;
3063
0
}
3064
3065
3066
static const value_string h225_H245Security_vals[] = {
3067
  {   0, "nonStandard" },
3068
  {   1, "noSecurity" },
3069
  {   2, "tls" },
3070
  {   3, "ipsec" },
3071
  { 0, NULL }
3072
};
3073
3074
static const per_choice_t H245Security_choice[] = {
3075
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3076
  {   1, &hf_h225_noSecurity     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3077
  {   2, &hf_h225_tls            , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3078
  {   3, &hf_h225_ipsec          , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3079
  { 0, NULL, 0, NULL }
3080
};
3081
3082
static unsigned
3083
0
dissect_h225_H245Security(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3084
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3085
0
                                 ett_h225_H245Security, H245Security_choice,
3086
0
                                 NULL);
3087
3088
0
  return offset;
3089
0
}
3090
3091
3092
static const per_sequence_t SEQUENCE_OF_H245Security_sequence_of[1] = {
3093
  { &hf_h225_h245SecurityCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Security },
3094
};
3095
3096
static unsigned
3097
0
dissect_h225_SEQUENCE_OF_H245Security(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3098
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3099
0
                                      ett_h225_SEQUENCE_OF_H245Security, SEQUENCE_OF_H245Security_sequence_of);
3100
3101
0
  return offset;
3102
0
}
3103
3104
3105
static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
3106
  { &hf_h225_tokens_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
3107
};
3108
3109
static unsigned
3110
11
dissect_h225_SEQUENCE_OF_ClearToken(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3111
11
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3112
11
                                      ett_h225_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
3113
3114
11
  return offset;
3115
11
}
3116
3117
3118
static const per_sequence_t T_cryptoEPPwdHash_sequence[] = {
3119
  { &hf_h225_alias          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
3120
  { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3121
  { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3122
  { NULL, 0, 0, NULL }
3123
};
3124
3125
static unsigned
3126
34
dissect_h225_T_cryptoEPPwdHash(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3127
34
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3128
34
                                   ett_h225_T_cryptoEPPwdHash, T_cryptoEPPwdHash_sequence);
3129
3130
34
  return offset;
3131
34
}
3132
3133
3134
3135
unsigned
3136
24
dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3137
24
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3138
24
                                          1, 128, false);
3139
3140
24
  return offset;
3141
24
}
3142
3143
3144
static const per_sequence_t T_cryptoGKPwdHash_sequence[] = {
3145
  { &hf_h225_gatekeeperId   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperIdentifier },
3146
  { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3147
  { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3148
  { NULL, 0, 0, NULL }
3149
};
3150
3151
static unsigned
3152
7
dissect_h225_T_cryptoGKPwdHash(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3153
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3154
7
                                   ett_h225_T_cryptoGKPwdHash, T_cryptoGKPwdHash_sequence);
3155
3156
7
  return offset;
3157
7
}
3158
3159
3160
const value_string h225_CryptoH323Token_vals[] = {
3161
  {   0, "cryptoEPPwdHash" },
3162
  {   1, "cryptoGKPwdHash" },
3163
  {   2, "cryptoEPPwdEncr" },
3164
  {   3, "cryptoGKPwdEncr" },
3165
  {   4, "cryptoEPCert" },
3166
  {   5, "cryptoGKCert" },
3167
  {   6, "cryptoFastStart" },
3168
  {   7, "nestedcryptoToken" },
3169
  { 0, NULL }
3170
};
3171
3172
static const per_choice_t CryptoH323Token_choice[] = {
3173
  {   0, &hf_h225_cryptoEPPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoEPPwdHash },
3174
  {   1, &hf_h225_cryptoGKPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoGKPwdHash },
3175
  {   2, &hf_h225_cryptoEPPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3176
  {   3, &hf_h225_cryptoGKPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3177
  {   4, &hf_h225_cryptoEPCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3178
  {   5, &hf_h225_cryptoGKCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3179
  {   6, &hf_h225_cryptoFastStart, ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3180
  {   7, &hf_h225_nestedcryptoToken, ASN1_EXTENSION_ROOT    , dissect_h235_CryptoToken },
3181
  { 0, NULL, 0, NULL }
3182
};
3183
3184
unsigned
3185
82
dissect_h225_CryptoH323Token(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3186
82
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3187
82
                                 ett_h225_CryptoH323Token, CryptoH323Token_choice,
3188
82
                                 NULL);
3189
3190
82
  return offset;
3191
82
}
3192
3193
3194
static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
3195
  { &hf_h225_cryptoTokens_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
3196
};
3197
3198
static unsigned
3199
17
dissect_h225_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3200
17
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3201
17
                                      ett_h225_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
3202
3203
17
  return offset;
3204
17
}
3205
3206
3207
3208
static unsigned
3209
0
dissect_h225_FastStart_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3210
0
  tvbuff_t *value_tvb = NULL;
3211
0
  char codec_str[50];
3212
0
  h225_packet_info* h225_pi;
3213
0
  codec_str[0] = '\0';
3214
3215
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3216
0
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
3217
3218
0
  if (value_tvb && tvb_reported_length(value_tvb)) {
3219
0
    dissect_h245_FastStart_OLC(value_tvb, actx->pinfo, tree, codec_str);
3220
0
  }
3221
3222
  /* Add to packet info */
3223
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
3224
0
  if (h225_pi != NULL) {
3225
0
    h225_pi->frame_label = wmem_strdup_printf(actx->pinfo->pool, "%s %s", h225_pi->frame_label, codec_str);
3226
0
    h225_pi->is_faststart = true;
3227
0
  }
3228
0
  contains_faststart = true;
3229
3230
0
  return offset;
3231
0
}
3232
3233
3234
static const per_sequence_t FastStart_sequence_of[1] = {
3235
  { &hf_h225_FastStart_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FastStart_item },
3236
};
3237
3238
static unsigned
3239
0
dissect_h225_FastStart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3240
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3241
0
                                      ett_h225_FastStart, FastStart_sequence_of);
3242
3243
0
  return offset;
3244
0
}
3245
3246
3247
3248
static unsigned
3249
96
dissect_h225_EndpointIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3250
96
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3251
96
                                          1, 128, false);
3252
3253
96
  return offset;
3254
96
}
3255
3256
3257
static const value_string h225_ScnConnectionType_vals[] = {
3258
  {   0, "unknown" },
3259
  {   1, "bChannel" },
3260
  {   2, "hybrid2x64" },
3261
  {   3, "hybrid384" },
3262
  {   4, "hybrid1536" },
3263
  {   5, "hybrid1920" },
3264
  {   6, "multirate" },
3265
  { 0, NULL }
3266
};
3267
3268
static const per_choice_t ScnConnectionType_choice[] = {
3269
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3270
  {   1, &hf_h225_bChannel       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3271
  {   2, &hf_h225_hybrid2x64     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3272
  {   3, &hf_h225_hybrid384      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3273
  {   4, &hf_h225_hybrid1536     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3274
  {   5, &hf_h225_hybrid1920     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3275
  {   6, &hf_h225_multirate      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3276
  { 0, NULL, 0, NULL }
3277
};
3278
3279
static unsigned
3280
0
dissect_h225_ScnConnectionType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3281
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3282
0
                                 ett_h225_ScnConnectionType, ScnConnectionType_choice,
3283
0
                                 NULL);
3284
3285
0
  return offset;
3286
0
}
3287
3288
3289
static const value_string h225_ScnConnectionAggregation_vals[] = {
3290
  {   0, "auto" },
3291
  {   1, "none" },
3292
  {   2, "h221" },
3293
  {   3, "bonded-mode1" },
3294
  {   4, "bonded-mode2" },
3295
  {   5, "bonded-mode3" },
3296
  { 0, NULL }
3297
};
3298
3299
static const per_choice_t ScnConnectionAggregation_choice[] = {
3300
  {   0, &hf_h225_auto           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3301
  {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3302
  {   2, &hf_h225_h221           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3303
  {   3, &hf_h225_bonded_mode1   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3304
  {   4, &hf_h225_bonded_mode2   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3305
  {   5, &hf_h225_bonded_mode3   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3306
  { 0, NULL, 0, NULL }
3307
};
3308
3309
static unsigned
3310
0
dissect_h225_ScnConnectionAggregation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3311
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3312
0
                                 ett_h225_ScnConnectionAggregation, ScnConnectionAggregation_choice,
3313
0
                                 NULL);
3314
3315
0
  return offset;
3316
0
}
3317
3318
3319
static const per_sequence_t T_connectionParameters_sequence[] = {
3320
  { &hf_h225_connectionType , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionType },
3321
  { &hf_h225_numberOfScnConnections, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3322
  { &hf_h225_connectionAggregation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionAggregation },
3323
  { NULL, 0, 0, NULL }
3324
};
3325
3326
static unsigned
3327
0
dissect_h225_T_connectionParameters(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3328
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3329
0
                                   ett_h225_T_connectionParameters, T_connectionParameters_sequence);
3330
3331
0
  return offset;
3332
0
}
3333
3334
3335
3336
static unsigned
3337
14
dissect_h225_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3338
14
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3339
14
                                          1, 32, false,
3340
14
                                          NULL);
3341
3342
14
  return offset;
3343
14
}
3344
3345
3346
static const per_sequence_t Language_sequence_of[1] = {
3347
  { &hf_h225_Language_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 },
3348
};
3349
3350
static unsigned
3351
3
dissect_h225_Language(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3352
3
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3353
3
                                      ett_h225_Language, Language_sequence_of);
3354
3355
3
  return offset;
3356
3
}
3357
3358
3359
const value_string h225_PresentationIndicator_vals[] = {
3360
  {   0, "presentationAllowed" },
3361
  {   1, "presentationRestricted" },
3362
  {   2, "addressNotAvailable" },
3363
  { 0, NULL }
3364
};
3365
3366
static const per_choice_t PresentationIndicator_choice[] = {
3367
  {   0, &hf_h225_presentationAllowed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3368
  {   1, &hf_h225_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3369
  {   2, &hf_h225_addressNotAvailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3370
  { 0, NULL, 0, NULL }
3371
};
3372
3373
unsigned
3374
1
dissect_h225_PresentationIndicator(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3375
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3376
1
                                 ett_h225_PresentationIndicator, PresentationIndicator_choice,
3377
1
                                 NULL);
3378
3379
1
  return offset;
3380
1
}
3381
3382
3383
const value_string h225_ScreeningIndicator_vals[] = {
3384
  {   0, "userProvidedNotScreened" },
3385
  {   1, "userProvidedVerifiedAndPassed" },
3386
  {   2, "userProvidedVerifiedAndFailed" },
3387
  {   3, "networkProvided" },
3388
  { 0, NULL }
3389
};
3390
3391
3392
unsigned
3393
1
dissect_h225_ScreeningIndicator(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3394
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3395
1
                                     4, NULL, true, 0, NULL);
3396
3397
1
  return offset;
3398
1
}
3399
3400
3401
3402
static unsigned
3403
173
dissect_h225_INTEGER_0_255(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3404
173
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3405
173
                                                            0U, 255U, NULL, false);
3406
3407
173
  return offset;
3408
173
}
3409
3410
3411
3412
static unsigned
3413
6
dissect_h225_IA5String_SIZE_0_512(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3414
6
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3415
6
                                          0, 512, false,
3416
6
                                          NULL);
3417
3418
6
  return offset;
3419
6
}
3420
3421
3422
3423
static unsigned
3424
2
dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3425
2
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3426
2
                                       NO_BOUND, NO_BOUND, false, NULL);
3427
3428
2
  return offset;
3429
2
}
3430
3431
3432
3433
static unsigned
3434
0
dissect_h225_BMPString_SIZE_1_512(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3435
0
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3436
0
                                          1, 512, false);
3437
3438
0
  return offset;
3439
0
}
3440
3441
3442
static const value_string h225_T_billingMode_vals[] = {
3443
  {   0, "credit" },
3444
  {   1, "debit" },
3445
  { 0, NULL }
3446
};
3447
3448
static const per_choice_t T_billingMode_choice[] = {
3449
  {   0, &hf_h225_credit         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3450
  {   1, &hf_h225_debit          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3451
  { 0, NULL, 0, NULL }
3452
};
3453
3454
static unsigned
3455
2
dissect_h225_T_billingMode(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3456
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3457
2
                                 ett_h225_T_billingMode, T_billingMode_choice,
3458
2
                                 NULL);
3459
3460
2
  return offset;
3461
2
}
3462
3463
3464
3465
static unsigned
3466
165
dissect_h225_INTEGER_1_4294967295(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3467
165
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3468
165
                                                            1U, 4294967295U, NULL, false);
3469
3470
165
  return offset;
3471
165
}
3472
3473
3474
static const value_string h225_CallCreditServiceControl_callStartingPoint_vals[] = {
3475
  {   0, "alerting" },
3476
  {   1, "connect" },
3477
  { 0, NULL }
3478
};
3479
3480
static const per_choice_t CallCreditServiceControl_callStartingPoint_choice[] = {
3481
  {   0, &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3482
  {   1, &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3483
  { 0, NULL, 0, NULL }
3484
};
3485
3486
static unsigned
3487
0
dissect_h225_CallCreditServiceControl_callStartingPoint(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3488
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3489
0
                                 ett_h225_CallCreditServiceControl_callStartingPoint, CallCreditServiceControl_callStartingPoint_choice,
3490
0
                                 NULL);
3491
3492
0
  return offset;
3493
0
}
3494
3495
3496
static const per_sequence_t CallCreditServiceControl_sequence[] = {
3497
  { &hf_h225_amountString   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BMPString_SIZE_1_512 },
3498
  { &hf_h225_billingMode    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_billingMode },
3499
  { &hf_h225_callDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_4294967295 },
3500
  { &hf_h225_enforceCallDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
3501
  { &hf_h225_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCreditServiceControl_callStartingPoint },
3502
  { NULL, 0, 0, NULL }
3503
};
3504
3505
static unsigned
3506
3
dissect_h225_CallCreditServiceControl(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3507
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3508
3
                                   ett_h225_CallCreditServiceControl, CallCreditServiceControl_sequence);
3509
3510
3
  return offset;
3511
3
}
3512
3513
3514
static const value_string h225_ServiceControlDescriptor_vals[] = {
3515
  {   0, "url" },
3516
  {   1, "signal" },
3517
  {   2, "nonStandard" },
3518
  {   3, "callCreditServiceControl" },
3519
  { 0, NULL }
3520
};
3521
3522
static const per_choice_t ServiceControlDescriptor_choice[] = {
3523
  {   0, &hf_h225_url            , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String_SIZE_0_512 },
3524
  {   1, &hf_h225_signal         , ASN1_EXTENSION_ROOT    , dissect_h225_H248SignalsDescriptor },
3525
  {   2, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3526
  {   3, &hf_h225_callCreditServiceControl, ASN1_EXTENSION_ROOT    , dissect_h225_CallCreditServiceControl },
3527
  { 0, NULL, 0, NULL }
3528
};
3529
3530
static unsigned
3531
12
dissect_h225_ServiceControlDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3532
12
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3533
12
                                 ett_h225_ServiceControlDescriptor, ServiceControlDescriptor_choice,
3534
12
                                 NULL);
3535
3536
12
  return offset;
3537
12
}
3538
3539
3540
static const value_string h225_ServiceControlSession_reason_vals[] = {
3541
  {   0, "open" },
3542
  {   1, "refresh" },
3543
  {   2, "close" },
3544
  { 0, NULL }
3545
};
3546
3547
static const per_choice_t ServiceControlSession_reason_choice[] = {
3548
  {   0, &hf_h225_open           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3549
  {   1, &hf_h225_refresh        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3550
  {   2, &hf_h225_close          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3551
  { 0, NULL, 0, NULL }
3552
};
3553
3554
static unsigned
3555
166
dissect_h225_ServiceControlSession_reason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3556
166
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3557
166
                                 ett_h225_ServiceControlSession_reason, ServiceControlSession_reason_choice,
3558
166
                                 NULL);
3559
3560
166
  return offset;
3561
166
}
3562
3563
3564
static const per_sequence_t ServiceControlSession_sequence[] = {
3565
  { &hf_h225_sessionId_0_255, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
3566
  { &hf_h225_contents       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ServiceControlDescriptor },
3567
  { &hf_h225_reason         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession_reason },
3568
  { NULL, 0, 0, NULL }
3569
};
3570
3571
unsigned
3572
172
dissect_h225_ServiceControlSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3573
172
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3574
172
                                   ett_h225_ServiceControlSession, ServiceControlSession_sequence);
3575
3576
172
  return offset;
3577
172
}
3578
3579
3580
static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
3581
  { &hf_h225_serviceControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
3582
};
3583
3584
static unsigned
3585
11
dissect_h225_SEQUENCE_OF_ServiceControlSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3586
11
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3587
11
                                      ett_h225_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
3588
3589
11
  return offset;
3590
11
}
3591
3592
3593
3594
static unsigned
3595
583
dissect_h225_INTEGER_0_4294967295(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3596
583
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3597
583
                                                            0U, 4294967295U, NULL, false);
3598
3599
583
  return offset;
3600
583
}
3601
3602
3603
3604
static unsigned
3605
33
dissect_h225_IA5String_SIZE_1_128(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3606
33
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3607
33
                                          1, 128, false,
3608
33
                                          NULL);
3609
3610
33
  return offset;
3611
33
}
3612
3613
3614
3615
static unsigned
3616
2
dissect_h225_OCTET_STRING_SIZE_3_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3617
2
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3618
2
                                       3, 4, false, NULL);
3619
3620
2
  return offset;
3621
2
}
3622
3623
3624
static const per_sequence_t CarrierInfo_sequence[] = {
3625
  { &hf_h225_carrierIdentificationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_3_4 },
3626
  { &hf_h225_carrierName    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3627
  { NULL, 0, 0, NULL }
3628
};
3629
3630
static unsigned
3631
2
dissect_h225_CarrierInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3632
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3633
2
                                   ett_h225_CarrierInfo, CarrierInfo_sequence);
3634
3635
2
  return offset;
3636
2
}
3637
3638
3639
static const per_sequence_t CallsAvailable_sequence[] = {
3640
  { &hf_h225_calls          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_4294967295 },
3641
  { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3642
  { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3643
  { NULL, 0, 0, NULL }
3644
};
3645
3646
static unsigned
3647
581
dissect_h225_CallsAvailable(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3648
581
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3649
581
                                   ett_h225_CallsAvailable, CallsAvailable_sequence);
3650
3651
581
  return offset;
3652
581
}
3653
3654
3655
static const per_sequence_t SEQUENCE_OF_CallsAvailable_sequence_of[1] = {
3656
  { &hf_h225_voiceGwCallsAvailable_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallsAvailable },
3657
};
3658
3659
static unsigned
3660
28
dissect_h225_SEQUENCE_OF_CallsAvailable(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3661
28
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3662
28
                                      ett_h225_SEQUENCE_OF_CallsAvailable, SEQUENCE_OF_CallsAvailable_sequence_of);
3663
3664
28
  return offset;
3665
28
}
3666
3667
3668
static const per_sequence_t CallCapacityInfo_sequence[] = {
3669
  { &hf_h225_voiceGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3670
  { &hf_h225_h310GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3671
  { &hf_h225_h320GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3672
  { &hf_h225_h321GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3673
  { &hf_h225_h322GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3674
  { &hf_h225_h323GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3675
  { &hf_h225_h324GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3676
  { &hf_h225_t120OnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3677
  { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3678
  { &hf_h225_terminalCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3679
  { &hf_h225_mcuCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3680
  { &hf_h225_sipGwCallsAvailable, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3681
  { NULL, 0, 0, NULL }
3682
};
3683
3684
static unsigned
3685
11
dissect_h225_CallCapacityInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3686
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3687
11
                                   ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
3688
3689
11
  return offset;
3690
11
}
3691
3692
3693
static const per_sequence_t CallCapacity_sequence[] = {
3694
  { &hf_h225_maximumCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3695
  { &hf_h225_currentCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3696
  { NULL, 0, 0, NULL }
3697
};
3698
3699
static unsigned
3700
11
dissect_h225_CallCapacity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3701
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3702
11
                                   ett_h225_CallCapacity, CallCapacity_sequence);
3703
3704
11
  return offset;
3705
11
}
3706
3707
3708
3709
static unsigned
3710
454
dissect_h225_OCTET_STRING_SIZE_2_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3711
454
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3712
454
                                       2, 4, false, NULL);
3713
3714
454
  return offset;
3715
454
}
3716
3717
3718
static const per_sequence_t T_cic_2_4_sequence_of[1] = {
3719
  { &hf_h225_cic_2_4_item   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_4 },
3720
};
3721
3722
static unsigned
3723
15
dissect_h225_T_cic_2_4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3724
15
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3725
15
                                      ett_h225_T_cic_2_4, T_cic_2_4_sequence_of);
3726
3727
15
  return offset;
3728
15
}
3729
3730
3731
3732
static unsigned
3733
11
dissect_h225_OCTET_STRING_SIZE_2_5(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3734
11
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3735
11
                                       2, 5, false, NULL);
3736
3737
11
  return offset;
3738
11
}
3739
3740
3741
static const per_sequence_t CicInfo_sequence[] = {
3742
  { &hf_h225_cic_2_4        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_cic_2_4 },
3743
  { &hf_h225_pointCode      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_5 },
3744
  { NULL, 0, 0, NULL }
3745
};
3746
3747
static unsigned
3748
15
dissect_h225_CicInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3749
15
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3750
15
                                   ett_h225_CicInfo, CicInfo_sequence);
3751
3752
15
  return offset;
3753
15
}
3754
3755
3756
static const per_sequence_t T_member_sequence_of[1] = {
3757
  { &hf_h225_member_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3758
};
3759
3760
static unsigned
3761
6
dissect_h225_T_member(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3762
6
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3763
6
                                      ett_h225_T_member, T_member_sequence_of);
3764
3765
6
  return offset;
3766
6
}
3767
3768
3769
static const per_sequence_t GroupID_sequence[] = {
3770
  { &hf_h225_member         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_member },
3771
  { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_128 },
3772
  { NULL, 0, 0, NULL }
3773
};
3774
3775
static unsigned
3776
10
dissect_h225_GroupID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3777
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3778
10
                                   ett_h225_GroupID, GroupID_sequence);
3779
3780
10
  return offset;
3781
10
}
3782
3783
3784
static const per_sequence_t CircuitIdentifier_sequence[] = {
3785
  { &hf_h225_cic            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CicInfo },
3786
  { &hf_h225_group          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GroupID },
3787
  { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3788
  { NULL, 0, 0, NULL }
3789
};
3790
3791
unsigned
3792
207
dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3793
207
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3794
207
                                   ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
3795
3796
207
  return offset;
3797
207
}
3798
3799
3800
3801
static unsigned
3802
241
dissect_h225_T_standard(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3803
241
  uint32_t value_int = (uint32_t)-1;
3804
241
  gef_ctx_t *gefx;
3805
3806
241
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3807
241
                                                            0U, 16383U, &value_int, true);
3808
3809
241
  gefx = gef_ctx_get(actx->private_data);
3810
241
  if (gefx) gefx->id = wmem_strdup_printf(actx->pinfo->pool, "%u", value_int);
3811
3812
241
  return offset;
3813
241
}
3814
3815
3816
3817
static unsigned
3818
59
dissect_h225_T_oid(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3819
59
  const char *oid_str = NULL;
3820
59
  gef_ctx_t *gefx;
3821
3822
59
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &oid_str);
3823
3824
59
  gefx = gef_ctx_get(actx->private_data);
3825
59
  if (gefx) gefx->id = oid_str;
3826
3827
59
  return offset;
3828
59
}
3829
3830
3831
const value_string h225_GenericIdentifier_vals[] = {
3832
  {   0, "standard" },
3833
  {   1, "oid" },
3834
  {   2, "nonStandard" },
3835
  { 0, NULL }
3836
};
3837
3838
static const per_choice_t GenericIdentifier_choice[] = {
3839
  {   0, &hf_h225_standard       , ASN1_EXTENSION_ROOT    , dissect_h225_T_standard },
3840
  {   1, &hf_h225_oid            , ASN1_EXTENSION_ROOT    , dissect_h225_T_oid },
3841
  {   2, &hf_h225_genericIdentifier_nonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_GloballyUniqueID },
3842
  { 0, NULL, 0, NULL }
3843
};
3844
3845
unsigned
3846
448
dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3847
448
  gef_ctx_t *gefx;
3848
448
  proto_item* ti;
3849
448
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3850
448
                                 ett_h225_GenericIdentifier, GenericIdentifier_choice,
3851
448
                                 NULL);
3852
3853
448
  gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
3854
448
  gefx = gef_ctx_get(actx->private_data);
3855
448
  if (gefx) {
3856
410
    ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3857
410
  proto_item_set_hidden(ti);
3858
410
    dissector_try_string_with_data(gef_name_dissector_table, gefx->key, tvb_new_subset_length(tvb, offset>>3, 0), actx->pinfo, tree, false, actx);
3859
410
  }
3860
448
  actx->private_data = gefx;  /* subdissector could overwrite it */
3861
448
  return offset;
3862
448
}
3863
3864
3865
3866
static unsigned
3867
10
dissect_h225_T_raw(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868
10
  tvbuff_t *value_tvb;
3869
10
  gef_ctx_t *gefx;
3870
10
  proto_item* ti;
3871
3872
10
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3873
10
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
3874
3875
10
  gefx = gef_ctx_get(actx->private_data);
3876
10
  if (gefx) {
3877
8
    ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3878
8
  proto_item_set_hidden(ti);
3879
8
    dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3880
8
  }
3881
3882
10
  return offset;
3883
10
}
3884
3885
3886
3887
static unsigned
3888
6
dissect_h225_IA5String(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3889
6
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3890
6
                                          NO_BOUND, NO_BOUND, false,
3891
6
                                          NULL);
3892
3893
6
  return offset;
3894
6
}
3895
3896
3897
3898
static unsigned
3899
3
dissect_h225_BMPString(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3900
3
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3901
3
                                          NO_BOUND, NO_BOUND, false);
3902
3903
3
  return offset;
3904
3
}
3905
3906
3907
static const per_sequence_t SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of[1] = {
3908
  { &hf_h225_parameters_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_EnumeratedParameter },
3909
};
3910
3911
static unsigned
3912
54
dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3913
54
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3914
54
                                                  ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter, SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of,
3915
54
                                                  1, 512, false);
3916
3917
54
  return offset;
3918
54
}
3919
3920
3921
static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of[1] = {
3922
  { &hf_h225_nested_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
3923
};
3924
3925
static unsigned
3926
1
dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3927
1
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3928
1
                                                  ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData, SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of,
3929
1
                                                  1, 16, false);
3930
3931
1
  return offset;
3932
1
}
3933
3934
3935
static const value_string h225_Content_vals[] = {
3936
  {   0, "raw" },
3937
  {   1, "text" },
3938
  {   2, "unicode" },
3939
  {   3, "bool" },
3940
  {   4, "number8" },
3941
  {   5, "number16" },
3942
  {   6, "number32" },
3943
  {   7, "id" },
3944
  {   8, "alias" },
3945
  {   9, "transport" },
3946
  {  10, "compound" },
3947
  {  11, "nested" },
3948
  { 0, NULL }
3949
};
3950
3951
static const per_choice_t Content_choice[] = {
3952
  {   0, &hf_h225_raw            , ASN1_EXTENSION_ROOT    , dissect_h225_T_raw },
3953
  {   1, &hf_h225_text           , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String },
3954
  {   2, &hf_h225_unicode        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString },
3955
  {   3, &hf_h225_bool           , ASN1_EXTENSION_ROOT    , dissect_h225_BOOLEAN },
3956
  {   4, &hf_h225_number8        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_255 },
3957
  {   5, &hf_h225_number16       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
3958
  {   6, &hf_h225_number32       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_4294967295 },
3959
  {   7, &hf_h225_id             , ASN1_EXTENSION_ROOT    , dissect_h225_GenericIdentifier },
3960
  {   8, &hf_h225_alias          , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
3961
  {   9, &hf_h225_transport      , ASN1_EXTENSION_ROOT    , dissect_h225_TransportAddress },
3962
  {  10, &hf_h225_compound       , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
3963
  {  11, &hf_h225_nested         , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData },
3964
  { 0, NULL, 0, NULL }
3965
};
3966
3967
static unsigned
3968
45
dissect_h225_Content(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3969
45
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3970
45
                                 ett_h225_Content, Content_choice,
3971
45
                                 NULL);
3972
3973
45
  return offset;
3974
45
}
3975
3976
3977
static const per_sequence_t EnumeratedParameter_sequence[] = {
3978
  { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
3979
  { &hf_h225_content        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_Content },
3980
  { NULL, 0, 0, NULL }
3981
};
3982
3983
static unsigned
3984
126
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3985
  // EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter
3986
126
  increment_dissection_depth_by_n(actx->pinfo, 3);
3987
126
  gef_ctx_t *parent_gefx;
3988
3989
126
  parent_gefx = gef_ctx_get(actx->private_data);
3990
126
  actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL);
3991
126
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3992
126
                                   ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
3993
3994
126
  decrement_dissection_depth_by_n(actx->pinfo, 3);
3995
126
  actx->private_data = parent_gefx;
3996
126
  return offset;
3997
126
}
3998
3999
4000
static const per_sequence_t GenericData_sequence[] = {
4001
  { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
4002
  { &hf_h225_parameters     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
4003
  { NULL, 0, 0, NULL }
4004
};
4005
4006
unsigned
4007
324
dissect_h225_GenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4008
  // GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData
4009
324
  increment_dissection_depth_by_n(actx->pinfo, 5);
4010
324
  void *priv_data = actx->private_data;
4011
324
  gef_ctx_t *gefx;
4012
4013
  /* check if not inherited from FeatureDescriptor */
4014
324
  gefx = gef_ctx_get(actx->private_data);
4015
324
  if (!gefx) {
4016
221
    gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData");
4017
221
    actx->private_data = gefx;
4018
221
  }
4019
324
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4020
324
                                   ett_h225_GenericData, GenericData_sequence);
4021
4022
324
  decrement_dissection_depth_by_n(actx->pinfo, 5);
4023
324
  actx->private_data = priv_data;
4024
324
  return offset;
4025
324
}
4026
4027
4028
static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
4029
  { &hf_h225_genericData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
4030
};
4031
4032
static unsigned
4033
28
dissect_h225_SEQUENCE_OF_GenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4034
28
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4035
28
                                      ett_h225_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
4036
4037
28
  return offset;
4038
28
}
4039
4040
4041
static const per_sequence_t CircuitInfo_sequence[] = {
4042
  { &hf_h225_sourceCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4043
  { &hf_h225_destinationCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4044
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
4045
  { NULL, 0, 0, NULL }
4046
};
4047
4048
unsigned
4049
6
dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4050
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4051
6
                                   ett_h225_CircuitInfo, CircuitInfo_sequence);
4052
4053
6
  return offset;
4054
6
}
4055
4056
4057
4058
static unsigned
4059
98
dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4060
98
  void *priv_data = actx->private_data;
4061
98
  actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor");
4062
98
  offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
4063
4064
98
  actx->private_data = priv_data;
4065
98
  return offset;
4066
98
}
4067
4068
4069
static const per_sequence_t SEQUENCE_OF_FeatureDescriptor_sequence_of[1] = {
4070
  { &hf_h225_neededFeatures_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FeatureDescriptor },
4071
};
4072
4073
static unsigned
4074
22
dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4075
22
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4076
22
                                      ett_h225_SEQUENCE_OF_FeatureDescriptor, SEQUENCE_OF_FeatureDescriptor_sequence_of);
4077
4078
22
  return offset;
4079
22
}
4080
4081
4082
4083
static unsigned
4084
0
dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4085
0
  tvbuff_t *h245_tvb = NULL;
4086
4087
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4088
0
                                       NO_BOUND, NO_BOUND, false, &h245_tvb);
4089
4090
0
  next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4091
4092
0
  return offset;
4093
0
}
4094
4095
4096
static const per_sequence_t ParallelH245Control_sequence_of[1] = {
4097
  { &hf_h225_ParallelH245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ParallelH245Control_item },
4098
};
4099
4100
static unsigned
4101
0
dissect_h225_ParallelH245Control(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4102
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4103
0
                                      ett_h225_ParallelH245Control, ParallelH245Control_sequence_of);
4104
4105
0
  return offset;
4106
0
}
4107
4108
4109
static const per_sequence_t ExtendedAliasAddress_sequence[] = {
4110
  { &hf_h225_extAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
4111
  { &hf_h225_presentationIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4112
  { &hf_h225_screeningIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4113
  { NULL, 0, 0, NULL }
4114
};
4115
4116
static unsigned
4117
0
dissect_h225_ExtendedAliasAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4118
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4119
0
                                   ett_h225_ExtendedAliasAddress, ExtendedAliasAddress_sequence);
4120
4121
0
  return offset;
4122
0
}
4123
4124
4125
static const per_sequence_t SEQUENCE_OF_ExtendedAliasAddress_sequence_of[1] = {
4126
  { &hf_h225_additionalSourceAddresses_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ExtendedAliasAddress },
4127
};
4128
4129
static unsigned
4130
0
dissect_h225_SEQUENCE_OF_ExtendedAliasAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4131
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4132
0
                                      ett_h225_SEQUENCE_OF_ExtendedAliasAddress, SEQUENCE_OF_ExtendedAliasAddress_sequence_of);
4133
4134
0
  return offset;
4135
0
}
4136
4137
4138
4139
static unsigned
4140
0
dissect_h225_INTEGER_1_31(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4141
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4142
0
                                                            1U, 31U, NULL, false);
4143
4144
0
  return offset;
4145
0
}
4146
4147
4148
4149
static unsigned
4150
0
dissect_h225_BMPString_SIZE_1_80(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4151
0
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
4152
0
                                          1, 80, false);
4153
4154
0
  return offset;
4155
0
}
4156
4157
4158
static const per_sequence_t DisplayName_sequence[] = {
4159
  { &hf_h225_displayName_language, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h225_IA5String },
4160
  { &hf_h225_name           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BMPString_SIZE_1_80 },
4161
  { NULL, 0, 0, NULL }
4162
};
4163
4164
static unsigned
4165
0
dissect_h225_DisplayName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4166
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4167
0
                                   ett_h225_DisplayName, DisplayName_sequence);
4168
4169
0
  return offset;
4170
0
}
4171
4172
4173
static const per_sequence_t SEQUENCE_OF_DisplayName_sequence_of[1] = {
4174
  { &hf_h225_displayName_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DisplayName },
4175
};
4176
4177
static unsigned
4178
0
dissect_h225_SEQUENCE_OF_DisplayName(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4179
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4180
0
                                      ett_h225_SEQUENCE_OF_DisplayName, SEQUENCE_OF_DisplayName_sequence_of);
4181
4182
0
  return offset;
4183
0
}
4184
4185
4186
static const per_sequence_t Setup_UUIE_sequence[] = {
4187
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4188
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4189
  { &hf_h225_sourceAddress  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4190
  { &hf_h225_setup_UUIE_sourceInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4191
  { &hf_h225_destinationAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4192
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4193
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4194
  { &hf_h225_destExtraCRV   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallReferenceValue },
4195
  { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4196
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4197
  { &hf_h225_conferenceGoal , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_conferenceGoal },
4198
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
4199
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
4200
  { &hf_h225_sourceCallSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4201
  { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4202
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4203
  { &hf_h225_h245SecurityCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H245Security },
4204
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4205
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4206
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4207
  { &hf_h225_mediaWaitForConnect, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4208
  { &hf_h225_canOverlapSend , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4209
  { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
4210
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4211
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4212
  { &hf_h225_connectionParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_connectionParameters },
4213
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4214
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4215
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4216
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4217
  { &hf_h225_symmetricOperationRequired, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4218
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4219
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4220
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
4221
  { &hf_h225_neededFeatures , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4222
  { &hf_h225_desiredFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4223
  { &hf_h225_supportedFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4224
  { &hf_h225_parallelH245Control, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ParallelH245Control },
4225
  { &hf_h225_additionalSourceAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ExtendedAliasAddress },
4226
  { &hf_h225_hopCount_1_31  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_31 },
4227
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4228
  { NULL, 0, 0, NULL }
4229
};
4230
4231
static unsigned
4232
12
dissect_h225_Setup_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4233
12
  h225_packet_info* h225_pi;
4234
12
  contains_faststart = false;
4235
12
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4236
12
                                   ett_h225_Setup_UUIE, Setup_UUIE_sequence);
4237
4238
  /* Add to packet info */
4239
12
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4240
12
  h225_set_cs_type(actx->pinfo, h225_pi, H225_SETUP, contains_faststart);
4241
12
  return offset;
4242
12
}
4243
4244
4245
static const per_sequence_t FeatureSet_sequence[] = {
4246
  { &hf_h225_replacementFeatureSet, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4247
  { &hf_h225_neededFeatures , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4248
  { &hf_h225_desiredFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4249
  { &hf_h225_supportedFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4250
  { NULL, 0, 0, NULL }
4251
};
4252
4253
unsigned
4254
25
dissect_h225_FeatureSet(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4255
25
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4256
25
                                   ett_h225_FeatureSet, FeatureSet_sequence);
4257
4258
25
  return offset;
4259
25
}
4260
4261
4262
static const per_sequence_t CallProceeding_UUIE_sequence[] = {
4263
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4264
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4265
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4266
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4267
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4268
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4269
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4270
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4271
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4272
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4273
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4274
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4275
  { NULL, 0, 0, NULL }
4276
};
4277
4278
static unsigned
4279
36
dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4280
36
  h225_packet_info* h225_pi;
4281
36
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4282
36
                                   ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
4283
4284
  /* Add to packet info */
4285
36
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4286
36
  h225_set_cs_type(actx->pinfo, h225_pi, H225_CALL_PROCEDING, contains_faststart);
4287
36
  return offset;
4288
36
}
4289
4290
4291
static const per_sequence_t Connect_UUIE_sequence[] = {
4292
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4293
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4294
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4295
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4296
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4297
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4298
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4299
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4300
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4301
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4302
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4303
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4304
  { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4305
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4306
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4307
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4308
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4309
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4310
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4311
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4312
  { NULL, 0, 0, NULL }
4313
};
4314
4315
static unsigned
4316
0
dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4317
0
  h225_packet_info* h225_pi;
4318
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4319
0
                                   ett_h225_Connect_UUIE, Connect_UUIE_sequence);
4320
4321
  /* Add to packet info */
4322
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4323
0
  h225_set_cs_type(actx->pinfo, h225_pi, H225_CONNECT, contains_faststart);
4324
0
  return offset;
4325
0
}
4326
4327
4328
static const per_sequence_t Alerting_UUIE_sequence[] = {
4329
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4330
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4331
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4332
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4333
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4334
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4335
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4336
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4337
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4338
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4339
  { &hf_h225_alertingAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4340
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4341
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4342
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4343
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4344
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4345
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4346
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4347
  { NULL, 0, 0, NULL }
4348
};
4349
4350
static unsigned
4351
1
dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4352
1
  h225_packet_info* h225_pi;
4353
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4354
1
                                   ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
4355
4356
  /* Add to packet info */
4357
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4358
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_ALERTING, contains_faststart);
4359
1
  return offset;
4360
1
}
4361
4362
4363
static const per_sequence_t Information_UUIE_sequence[] = {
4364
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4365
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4366
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4367
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4368
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4369
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4370
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4371
  { NULL, 0, 0, NULL }
4372
};
4373
4374
static unsigned
4375
0
dissect_h225_Information_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4376
0
  h225_packet_info* h225_pi;
4377
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4378
0
                                   ett_h225_Information_UUIE, Information_UUIE_sequence);
4379
4380
  /* Add to packet info */
4381
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4382
0
  h225_set_cs_type(actx->pinfo, h225_pi, H225_INFORMATION, false);
4383
0
  return offset;
4384
0
}
4385
4386
4387
static const value_string h225_SecurityErrors_vals[] = {
4388
  {   0, "securityWrongSyncTime" },
4389
  {   1, "securityReplay" },
4390
  {   2, "securityWrongGeneralID" },
4391
  {   3, "securityWrongSendersID" },
4392
  {   4, "securityIntegrityFailed" },
4393
  {   5, "securityWrongOID" },
4394
  {   6, "securityDHmismatch" },
4395
  {   7, "securityCertificateExpired" },
4396
  {   8, "securityCertificateDateInvalid" },
4397
  {   9, "securityCertificateRevoked" },
4398
  {  10, "securityCertificateNotReadable" },
4399
  {  11, "securityCertificateSignatureInvalid" },
4400
  {  12, "securityCertificateMissing" },
4401
  {  13, "securityCertificateIncomplete" },
4402
  {  14, "securityUnsupportedCertificateAlgOID" },
4403
  {  15, "securityUnknownCA" },
4404
  { 0, NULL }
4405
};
4406
4407
static const per_choice_t SecurityErrors_choice[] = {
4408
  {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4409
  {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4410
  {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4411
  {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4412
  {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4413
  {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4414
  {   6, &hf_h225_securityDHmismatch, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4415
  {   7, &hf_h225_securityCertificateExpired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4416
  {   8, &hf_h225_securityCertificateDateInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4417
  {   9, &hf_h225_securityCertificateRevoked, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4418
  {  10, &hf_h225_securityCertificateNotReadable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4419
  {  11, &hf_h225_securityCertificateSignatureInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4420
  {  12, &hf_h225_securityCertificateMissing, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4421
  {  13, &hf_h225_securityCertificateIncomplete, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4422
  {  14, &hf_h225_securityUnsupportedCertificateAlgOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4423
  {  15, &hf_h225_securityUnknownCA, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4424
  { 0, NULL, 0, NULL }
4425
};
4426
4427
static unsigned
4428
0
dissect_h225_SecurityErrors(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4429
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4430
0
                                 ett_h225_SecurityErrors, SecurityErrors_choice,
4431
0
                                 NULL);
4432
4433
0
  return offset;
4434
0
}
4435
4436
4437
const value_string h225_ReleaseCompleteReason_vals[] = {
4438
  {   0, "noBandwidth" },
4439
  {   1, "gatekeeperResources" },
4440
  {   2, "unreachableDestination" },
4441
  {   3, "destinationRejection" },
4442
  {   4, "invalidRevision" },
4443
  {   5, "noPermission" },
4444
  {   6, "unreachableGatekeeper" },
4445
  {   7, "gatewayResources" },
4446
  {   8, "badFormatAddress" },
4447
  {   9, "adaptiveBusy" },
4448
  {  10, "inConf" },
4449
  {  11, "undefinedReason" },
4450
  {  12, "facilityCallDeflection" },
4451
  {  13, "securityDenied" },
4452
  {  14, "calledPartyNotRegistered" },
4453
  {  15, "callerNotRegistered" },
4454
  {  16, "newConnectionNeeded" },
4455
  {  17, "nonStandardReason" },
4456
  {  18, "replaceWithConferenceInvite" },
4457
  {  19, "genericDataReason" },
4458
  {  20, "neededFeatureNotSupported" },
4459
  {  21, "tunnelledSignallingRejected" },
4460
  {  22, "invalidCID" },
4461
  {  23, "securityError" },
4462
  {  24, "hopCountExceeded" },
4463
  { 0, NULL }
4464
};
4465
4466
static const per_choice_t ReleaseCompleteReason_choice[] = {
4467
  {   0, &hf_h225_noBandwidth    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4468
  {   1, &hf_h225_gatekeeperResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4469
  {   2, &hf_h225_unreachableDestination, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4470
  {   3, &hf_h225_destinationRejection, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4471
  {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4472
  {   5, &hf_h225_noPermission   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4473
  {   6, &hf_h225_unreachableGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4474
  {   7, &hf_h225_gatewayResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4475
  {   8, &hf_h225_badFormatAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4476
  {   9, &hf_h225_adaptiveBusy   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4477
  {  10, &hf_h225_inConf         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4478
  {  11, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4479
  {  12, &hf_h225_facilityCallDeflection, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4480
  {  13, &hf_h225_securityDenied , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4481
  {  14, &hf_h225_calledPartyNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4482
  {  15, &hf_h225_callerNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4483
  {  16, &hf_h225_newConnectionNeeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4484
  {  17, &hf_h225_nonStandardReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardParameter },
4485
  {  18, &hf_h225_replaceWithConferenceInvite, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ConferenceIdentifier },
4486
  {  19, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4487
  {  20, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4488
  {  21, &hf_h225_tunnelledSignallingRejected, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4489
  {  22, &hf_h225_invalidCID     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4490
  {  23, &hf_h225_rLC_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
4491
  {  24, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4492
  { 0, NULL, 0, NULL }
4493
};
4494
4495
unsigned
4496
0
dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4497
0
  int32_t value;
4498
0
  h225_packet_info* h225_pi;
4499
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4500
4501
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4502
0
                                 ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice,
4503
0
                                 &value);
4504
4505
0
  if (h225_pi != NULL) {
4506
0
    h225_pi->reason = value;
4507
0
  }
4508
4509
0
  return offset;
4510
0
}
4511
4512
4513
static const per_sequence_t ReleaseComplete_UUIE_sequence[] = {
4514
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4515
  { &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ReleaseCompleteReason },
4516
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4517
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4518
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4519
  { &hf_h225_busyAddress    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4520
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4521
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4522
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4523
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4524
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4525
  { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4526
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4527
  { NULL, 0, 0, NULL }
4528
};
4529
4530
static unsigned
4531
1
dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4532
1
  h225_packet_info* h225_pi;
4533
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4534
1
                                   ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
4535
4536
  /* Add to packet info */
4537
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4538
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_RELEASE_COMPLET, false);
4539
1
  return offset;
4540
1
}
4541
4542
4543
const value_string FacilityReason_vals[] = {
4544
  {   0, "routeCallToGatekeeper" },
4545
  {   1, "callForwarded" },
4546
  {   2, "routeCallToMC" },
4547
  {   3, "undefinedReason" },
4548
  {   4, "conferenceListChoice" },
4549
  {   5, "startH245" },
4550
  {   6, "noH245" },
4551
  {   7, "newTokens" },
4552
  {   8, "featureSetUpdate" },
4553
  {   9, "forwardedElements" },
4554
  {  10, "transportedInformation" },
4555
  { 0, NULL }
4556
};
4557
4558
static const per_choice_t FacilityReason_choice[] = {
4559
  {   0, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4560
  {   1, &hf_h225_callForwarded  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4561
  {   2, &hf_h225_routeCallToMC  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4562
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4563
  {   4, &hf_h225_conferenceListChoice, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4564
  {   5, &hf_h225_startH245      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4565
  {   6, &hf_h225_noH245         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4566
  {   7, &hf_h225_newTokens      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4567
  {   8, &hf_h225_featureSetUpdate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4568
  {   9, &hf_h225_forwardedElements, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4569
  {  10, &hf_h225_transportedInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4570
  { 0, NULL, 0, NULL }
4571
};
4572
4573
static unsigned
4574
0
dissect_h225_FacilityReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4575
0
  int32_t value;
4576
0
  h225_packet_info* h225_pi;
4577
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4578
4579
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4580
0
                                 ett_h225_FacilityReason, FacilityReason_choice,
4581
0
                                 &value);
4582
4583
0
  if (h225_pi != NULL) {
4584
0
    h225_pi->reason = value;
4585
0
  }
4586
4587
0
  return offset;
4588
0
}
4589
4590
4591
static const per_sequence_t ConferenceList_sequence[] = {
4592
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4593
  { &hf_h225_conferenceAlias, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4594
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
4595
  { NULL, 0, 0, NULL }
4596
};
4597
4598
static unsigned
4599
0
dissect_h225_ConferenceList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4600
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4601
0
                                   ett_h225_ConferenceList, ConferenceList_sequence);
4602
4603
0
  return offset;
4604
0
}
4605
4606
4607
static const per_sequence_t SEQUENCE_OF_ConferenceList_sequence_of[1] = {
4608
  { &hf_h225_conferences_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceList },
4609
};
4610
4611
static unsigned
4612
0
dissect_h225_SEQUENCE_OF_ConferenceList(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4613
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4614
0
                                      ett_h225_SEQUENCE_OF_ConferenceList, SEQUENCE_OF_ConferenceList_sequence_of);
4615
4616
0
  return offset;
4617
0
}
4618
4619
4620
static const per_sequence_t Facility_UUIE_sequence[] = {
4621
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4622
  { &hf_h225_alternativeAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4623
  { &hf_h225_alternativeAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4624
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4625
  { &hf_h225_facilityReason , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_FacilityReason },
4626
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4627
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4628
  { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4629
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4630
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4631
  { &hf_h225_conferences    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ConferenceList },
4632
  { &hf_h225_h245Address    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4633
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4634
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4635
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4636
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4637
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4638
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4639
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4640
  { &hf_h225_uUIE_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4641
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4642
  { NULL, 0, 0, NULL }
4643
};
4644
4645
static unsigned
4646
0
dissect_h225_Facility_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4647
0
  h225_packet_info* h225_pi;
4648
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4649
0
                                   ett_h225_Facility_UUIE, Facility_UUIE_sequence);
4650
4651
  /* Add to packet info */
4652
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4653
0
  h225_set_cs_type(actx->pinfo, h225_pi, H225_FACILITY, false);
4654
0
  return offset;
4655
0
}
4656
4657
4658
static const per_sequence_t Progress_UUIE_sequence[] = {
4659
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4660
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4661
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4662
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4663
  { &hf_h225_h245SecurityMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245Security },
4664
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4665
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4666
  { &hf_h225_fastStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FastStart },
4667
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4668
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4669
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4670
  { NULL, 0, 0, NULL }
4671
};
4672
4673
static unsigned
4674
1
dissect_h225_Progress_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4675
1
  h225_packet_info* h225_pi;
4676
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4677
1
                                   ett_h225_Progress_UUIE, Progress_UUIE_sequence);
4678
4679
  /* Add to packet info */
4680
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4681
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_PROGRESS, contains_faststart);
4682
1
  return offset;
4683
1
}
4684
4685
4686
4687
static unsigned
4688
1
dissect_h225_T_empty_flg(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4689
1
  h225_packet_info* h225_pi;
4690
1
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
4691
4692
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4693
1
  if (h225_pi != NULL) {
4694
1
    h225_pi->cs_type = H225_EMPTY;
4695
1
  }
4696
1
  return offset;
4697
1
}
4698
4699
4700
static const per_sequence_t Status_UUIE_sequence[] = {
4701
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4702
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4703
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4704
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4705
  { NULL, 0, 0, NULL }
4706
};
4707
4708
static unsigned
4709
1
dissect_h225_Status_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4710
1
  h225_packet_info* h225_pi;
4711
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4712
1
                                   ett_h225_Status_UUIE, Status_UUIE_sequence);
4713
4714
  /* Add to packet info */
4715
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4716
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_STATUS, false);
4717
1
  return offset;
4718
1
}
4719
4720
4721
static const per_sequence_t StatusInquiry_UUIE_sequence[] = {
4722
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4723
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4724
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4725
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4726
  { NULL, 0, 0, NULL }
4727
};
4728
4729
static unsigned
4730
0
dissect_h225_StatusInquiry_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4731
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4732
0
                                   ett_h225_StatusInquiry_UUIE, StatusInquiry_UUIE_sequence);
4733
4734
0
  return offset;
4735
0
}
4736
4737
4738
static const per_sequence_t SetupAcknowledge_UUIE_sequence[] = {
4739
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4740
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4741
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4742
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4743
  { NULL, 0, 0, NULL }
4744
};
4745
4746
static unsigned
4747
1
dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4748
1
  h225_packet_info* h225_pi;
4749
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4750
1
                                   ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
4751
4752
  /* Add to packet info */
4753
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4754
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_SETUP_ACK, false);
4755
1
  return offset;
4756
1
}
4757
4758
4759
static const per_sequence_t Notify_UUIE_sequence[] = {
4760
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4761
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4762
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4763
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4764
  { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4765
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4766
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4767
  { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4768
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4769
  { NULL, 0, 0, NULL }
4770
};
4771
4772
static unsigned
4773
1
dissect_h225_Notify_UUIE(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4774
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4775
1
                                   ett_h225_Notify_UUIE, Notify_UUIE_sequence);
4776
4777
1
  return offset;
4778
1
}
4779
4780
4781
const value_string T_h323_message_body_vals[] = {
4782
  {   0, "setup" },
4783
  {   1, "callProceeding" },
4784
  {   2, "connect" },
4785
  {   3, "alerting" },
4786
  {   4, "information" },
4787
  {   5, "releaseComplete" },
4788
  {   6, "facility" },
4789
  {   7, "progress" },
4790
  {   8, "empty" },
4791
  {   9, "status" },
4792
  {  10, "statusInquiry" },
4793
  {  11, "setupAcknowledge" },
4794
  {  12, "notify" },
4795
  { 0, NULL }
4796
};
4797
4798
static const per_choice_t T_h323_message_body_choice[] = {
4799
  {   0, &hf_h225_setup          , ASN1_EXTENSION_ROOT    , dissect_h225_Setup_UUIE },
4800
  {   1, &hf_h225_callProceeding , ASN1_EXTENSION_ROOT    , dissect_h225_CallProceeding_UUIE },
4801
  {   2, &hf_h225_connect        , ASN1_EXTENSION_ROOT    , dissect_h225_Connect_UUIE },
4802
  {   3, &hf_h225_alerting       , ASN1_EXTENSION_ROOT    , dissect_h225_Alerting_UUIE },
4803
  {   4, &hf_h225_information    , ASN1_EXTENSION_ROOT    , dissect_h225_Information_UUIE },
4804
  {   5, &hf_h225_releaseComplete, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseComplete_UUIE },
4805
  {   6, &hf_h225_facility       , ASN1_EXTENSION_ROOT    , dissect_h225_Facility_UUIE },
4806
  {   7, &hf_h225_progress       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Progress_UUIE },
4807
  {   8, &hf_h225_empty_flg      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_empty_flg },
4808
  {   9, &hf_h225_status         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Status_UUIE },
4809
  {  10, &hf_h225_statusInquiry  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_StatusInquiry_UUIE },
4810
  {  11, &hf_h225_setupAcknowledge, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SetupAcknowledge_UUIE },
4811
  {  12, &hf_h225_notify         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Notify_UUIE },
4812
  { 0, NULL, 0, NULL }
4813
};
4814
4815
static unsigned
4816
61
dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4817
61
  int32_t message_body_val;
4818
61
  h225_packet_info* h225_pi;
4819
4820
61
  contains_faststart = false;
4821
61
  call_id_guid = NULL;
4822
61
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4823
61
                                 ett_h225_T_h323_message_body, T_h323_message_body_choice,
4824
61
                                 &message_body_val);
4825
4826
61
  col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %s ",
4827
61
    val_to_str_const(message_body_val, T_h323_message_body_vals, "<unknown>"));
4828
4829
61
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4830
61
  if (h225_pi != NULL) {
4831
45
    if (h225_pi->msg_type == H225_CS) {
4832
      /* Don't override msg_tag value from IRR */
4833
0
      h225_pi->msg_tag = message_body_val;
4834
0
    }
4835
4836
45
    if (call_id_guid) {
4837
2
      h225_pi->guid = *call_id_guid;
4838
2
    }
4839
45
  }
4840
4841
61
  if (contains_faststart == true )
4842
0
  {
4843
0
    col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
4844
0
  }
4845
4846
61
  col_set_fence(actx->pinfo->cinfo,COL_INFO);
4847
4848
4849
61
  return offset;
4850
61
}
4851
4852
4853
4854
static unsigned
4855
22
dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4856
22
  tvbuff_t *h4501_tvb = NULL;
4857
4858
22
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4859
22
                                       NO_BOUND, NO_BOUND, false, &h4501_tvb);
4860
4861
22
  if (h4501_tvb && tvb_reported_length(h4501_tvb)) {
4862
6
    call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree);
4863
6
  }
4864
4865
22
  return offset;
4866
22
}
4867
4868
4869
static const per_sequence_t T_h4501SupplementaryService_sequence_of[1] = {
4870
  { &hf_h225_h4501SupplementaryService_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h4501SupplementaryService_item },
4871
};
4872
4873
static unsigned
4874
5
dissect_h225_T_h4501SupplementaryService(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4875
5
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4876
5
                                      ett_h225_T_h4501SupplementaryService, T_h4501SupplementaryService_sequence_of);
4877
4878
5
  return offset;
4879
5
}
4880
4881
4882
4883
static unsigned
4884
2
dissect_h225_T_h245Tunnelling(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4885
2
  h225_packet_info* h225_pi;
4886
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4887
2
  if (h225_pi != NULL) {
4888
2
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &(h225_pi->is_h245Tunneling));
4889
4890
2
  }
4891
2
  return offset;
4892
2
}
4893
4894
4895
4896
static unsigned
4897
110
dissect_h225_H245Control_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4898
110
  tvbuff_t *h245_tvb = NULL;
4899
4900
110
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4901
110
                                       NO_BOUND, NO_BOUND, false, &h245_tvb);
4902
4903
110
  next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4904
4905
110
  return offset;
4906
110
}
4907
4908
4909
static const per_sequence_t H245Control_sequence_of[1] = {
4910
  { &hf_h225_H245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Control_item },
4911
};
4912
4913
static unsigned
4914
7
dissect_h225_H245Control(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4915
7
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4916
7
                                      ett_h225_H245Control, H245Control_sequence_of);
4917
4918
7
  return offset;
4919
7
}
4920
4921
4922
static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
4923
  { &hf_h225_nonStandardControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
4924
};
4925
4926
static unsigned
4927
2
dissect_h225_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4928
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4929
2
                                      ett_h225_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
4930
4931
2
  return offset;
4932
2
}
4933
4934
4935
static const per_sequence_t CallLinkage_sequence[] = {
4936
  { &hf_h225_globalCallId   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
4937
  { &hf_h225_threadId       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
4938
  { NULL, 0, 0, NULL }
4939
};
4940
4941
static unsigned
4942
2
dissect_h225_CallLinkage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4943
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4944
2
                                   ett_h225_CallLinkage, CallLinkage_sequence);
4945
4946
2
  return offset;
4947
2
}
4948
4949
4950
4951
static unsigned
4952
15
dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4953
15
  tvbuff_t *next_tvb = NULL;
4954
4955
15
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4956
15
                                       NO_BOUND, NO_BOUND, false, &next_tvb);
4957
4958
15
  next_tvb_add_handle(tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
4959
4960
15
  return offset;
4961
15
}
4962
4963
4964
static const per_sequence_t T_messageContent_sequence_of[1] = {
4965
  { &hf_h225_messageContent_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent_item },
4966
};
4967
4968
static unsigned
4969
4
dissect_h225_T_messageContent(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4970
4
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4971
4
                                      ett_h225_T_messageContent, T_messageContent_sequence_of);
4972
4973
4
  return offset;
4974
4
}
4975
4976
4977
static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
4978
  { &hf_h225_tunnelledProtocolID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
4979
  { &hf_h225_messageContent , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent },
4980
  { &hf_h225_tunnellingRequired, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
4981
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
4982
  { NULL, 0, 0, NULL }
4983
};
4984
4985
static unsigned
4986
5
dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4987
5
  tp_handle = NULL;
4988
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4989
5
                                   ett_h225_T_tunnelledSignallingMessage, T_tunnelledSignallingMessage_sequence);
4990
4991
5
  return offset;
4992
5
}
4993
4994
4995
4996
static unsigned
4997
1
dissect_h225_OCTET_STRING(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4998
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4999
1
                                       NO_BOUND, NO_BOUND, false, NULL);
5000
5001
1
  return offset;
5002
1
}
5003
5004
5005
static const per_sequence_t StimulusControl_sequence[] = {
5006
  { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5007
  { &hf_h225_isText         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5008
  { &hf_h225_h248Message    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING },
5009
  { NULL, 0, 0, NULL }
5010
};
5011
5012
static unsigned
5013
0
dissect_h225_StimulusControl(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5014
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5015
0
                                   ett_h225_StimulusControl, StimulusControl_sequence);
5016
5017
0
  return offset;
5018
0
}
5019
5020
5021
static const per_sequence_t H323_UU_PDU_sequence[] = {
5022
  { &hf_h225_h323_message_body, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h323_message_body },
5023
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5024
  { &hf_h225_h4501SupplementaryService, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_h4501SupplementaryService },
5025
  { &hf_h225_h245Tunnelling , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_T_h245Tunnelling },
5026
  { &hf_h225_h245Control    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Control },
5027
  { &hf_h225_nonStandardControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_NonStandardParameter },
5028
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
5029
  { &hf_h225_tunnelledSignallingMessage, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_tunnelledSignallingMessage },
5030
  { &hf_h225_provisionalRespToH245Tunnelling, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5031
  { &hf_h225_stimulusControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_StimulusControl },
5032
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5033
  { NULL, 0, 0, NULL }
5034
};
5035
5036
static unsigned
5037
61
dissect_h225_H323_UU_PDU(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5038
61
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5039
61
                                   ett_h225_H323_UU_PDU, H323_UU_PDU_sequence);
5040
5041
61
  return offset;
5042
61
}
5043
5044
5045
5046
static unsigned
5047
0
dissect_h225_OCTET_STRING_SIZE_1_131(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5048
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5049
0
                                       1, 131, false, NULL);
5050
5051
0
  return offset;
5052
0
}
5053
5054
5055
static const per_sequence_t T_user_data_sequence[] = {
5056
  { &hf_h225_protocol_discriminator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
5057
  { &hf_h225_user_information, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_1_131 },
5058
  { NULL, 0, 0, NULL }
5059
};
5060
5061
static unsigned
5062
0
dissect_h225_T_user_data(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5063
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5064
0
                                   ett_h225_T_user_data, T_user_data_sequence);
5065
5066
0
  return offset;
5067
0
}
5068
5069
5070
static const per_sequence_t H323_UserInformation_sequence[] = {
5071
  { &hf_h225_h323_uu_pdu    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
5072
  { &hf_h225_user_data      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_user_data },
5073
  { NULL, 0, 0, NULL }
5074
};
5075
5076
static unsigned
5077
2
dissect_h225_H323_UserInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5078
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5079
2
                                   ett_h225_H323_UserInformation, H323_UserInformation_sequence);
5080
5081
2
  return offset;
5082
2
}
5083
5084
5085
static const per_sequence_t T_range_sequence[] = {
5086
  { &hf_h225_startOfRange   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5087
  { &hf_h225_endOfRange     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5088
  { NULL, 0, 0, NULL }
5089
};
5090
5091
static unsigned
5092
0
dissect_h225_T_range(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5093
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5094
0
                                   ett_h225_T_range, T_range_sequence);
5095
5096
0
  return offset;
5097
0
}
5098
5099
5100
static const value_string h225_AddressPattern_vals[] = {
5101
  {   0, "wildcard" },
5102
  {   1, "range" },
5103
  { 0, NULL }
5104
};
5105
5106
static const per_choice_t AddressPattern_choice[] = {
5107
  {   0, &hf_h225_wildcard       , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
5108
  {   1, &hf_h225_range          , ASN1_EXTENSION_ROOT    , dissect_h225_T_range },
5109
  { 0, NULL, 0, NULL }
5110
};
5111
5112
static unsigned
5113
0
dissect_h225_AddressPattern(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5114
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5115
0
                                 ett_h225_AddressPattern, AddressPattern_choice,
5116
0
                                 NULL);
5117
5118
0
  return offset;
5119
0
}
5120
5121
5122
static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
5123
  { &hf_h225_callSignalAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5124
};
5125
5126
static unsigned
5127
94
dissect_h225_SEQUENCE_OF_TransportAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5128
94
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5129
94
                                      ett_h225_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
5130
5131
94
  return offset;
5132
94
}
5133
5134
5135
5136
static unsigned
5137
79
dissect_h225_INTEGER_0_127(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5138
79
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5139
79
                                                            0U, 127U, NULL, false);
5140
5141
79
  return offset;
5142
79
}
5143
5144
5145
static const per_sequence_t AlternateTransportAddresses_sequence[] = {
5146
  { &hf_h225_annexE         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5147
  { &hf_h225_sctp           , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5148
  { NULL, 0, 0, NULL }
5149
};
5150
5151
unsigned
5152
0
dissect_h225_AlternateTransportAddresses(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5153
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5154
0
                                   ett_h225_AlternateTransportAddresses, AlternateTransportAddresses_sequence);
5155
5156
0
  return offset;
5157
0
}
5158
5159
5160
static const per_sequence_t Endpoint_sequence[] = {
5161
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5162
  { &hf_h225_aliasAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5163
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5164
  { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5165
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointType },
5166
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5167
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5168
  { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_0_127 },
5169
  { &hf_h225_remoteExtensionAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5170
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5171
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
5172
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
5173
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5174
  { NULL, 0, 0, NULL }
5175
};
5176
5177
static unsigned
5178
44
dissect_h225_Endpoint(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5179
44
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5180
44
                                   ett_h225_Endpoint, Endpoint_sequence);
5181
5182
44
  return offset;
5183
44
}
5184
5185
5186
static const value_string h225_UseSpecifiedTransport_vals[] = {
5187
  {   0, "tcp" },
5188
  {   1, "annexE" },
5189
  {   2, "sctp" },
5190
  { 0, NULL }
5191
};
5192
5193
static const per_choice_t UseSpecifiedTransport_choice[] = {
5194
  {   0, &hf_h225_tcp            , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5195
  {   1, &hf_h225_annexE_flg     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5196
  {   2, &hf_h225_sctp_flg       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5197
  { 0, NULL, 0, NULL }
5198
};
5199
5200
static unsigned
5201
1
dissect_h225_UseSpecifiedTransport(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5202
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5203
1
                                 ett_h225_UseSpecifiedTransport, UseSpecifiedTransport_choice,
5204
1
                                 NULL);
5205
5206
1
  return offset;
5207
1
}
5208
5209
5210
static const per_sequence_t AlternateGK_sequence[] = {
5211
  { &hf_h225_alternateGK_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5212
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5213
  { &hf_h225_needToRegister , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5214
  { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_127 },
5215
  { NULL, 0, 0, NULL }
5216
};
5217
5218
static unsigned
5219
84
dissect_h225_AlternateGK(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5220
84
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5221
84
                                   ett_h225_AlternateGK, AlternateGK_sequence);
5222
5223
84
  return offset;
5224
84
}
5225
5226
5227
static const per_sequence_t SEQUENCE_OF_AlternateGK_sequence_of[1] = {
5228
  { &hf_h225_alternateGatekeeper_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AlternateGK },
5229
};
5230
5231
static unsigned
5232
13
dissect_h225_SEQUENCE_OF_AlternateGK(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5233
13
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5234
13
                                      ett_h225_SEQUENCE_OF_AlternateGK, SEQUENCE_OF_AlternateGK_sequence_of);
5235
5236
13
  return offset;
5237
13
}
5238
5239
5240
static const per_sequence_t AltGKInfo_sequence[] = {
5241
  { &hf_h225_alternateGatekeeper, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AlternateGK },
5242
  { &hf_h225_altGKisPermanent, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5243
  { NULL, 0, 0, NULL }
5244
};
5245
5246
static unsigned
5247
13
dissect_h225_AltGKInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5248
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5249
13
                                   ett_h225_AltGKInfo, AltGKInfo_sequence);
5250
5251
13
  return offset;
5252
13
}
5253
5254
5255
static const value_string h225_SecurityErrors2_vals[] = {
5256
  {   0, "securityWrongSyncTime" },
5257
  {   1, "securityReplay" },
5258
  {   2, "securityWrongGeneralID" },
5259
  {   3, "securityWrongSendersID" },
5260
  {   4, "securityIntegrityFailed" },
5261
  {   5, "securityWrongOID" },
5262
  { 0, NULL }
5263
};
5264
5265
static const per_choice_t SecurityErrors2_choice[] = {
5266
  {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5267
  {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5268
  {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5269
  {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5270
  {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5271
  {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5272
  { 0, NULL, 0, NULL }
5273
};
5274
5275
static unsigned
5276
0
dissect_h225_SecurityErrors2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5277
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5278
0
                                 ett_h225_SecurityErrors2, SecurityErrors2_choice,
5279
0
                                 NULL);
5280
5281
0
  return offset;
5282
0
}
5283
5284
5285
5286
static unsigned
5287
387
dissect_h225_RequestSeqNum(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5288
387
  h225_packet_info* h225_pi;
5289
387
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5290
387
  if (h225_pi != NULL) {
5291
387
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5292
387
                                                            1U, 65535U, &(h225_pi->requestSeqNum), false);
5293
5294
387
  }
5295
387
  return offset;
5296
387
}
5297
5298
5299
5300
unsigned
5301
1
dissect_h225_TimeToLive(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5302
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5303
1
                                                            1U, 4294967295U, NULL, false);
5304
5305
1
  return offset;
5306
1
}
5307
5308
5309
5310
static unsigned
5311
0
dissect_h225_H248PackagesDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5312
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5313
0
                                       NO_BOUND, NO_BOUND, false, NULL);
5314
5315
0
  return offset;
5316
0
}
5317
5318
5319
static const value_string h225_EncryptIntAlg_vals[] = {
5320
  {   0, "nonStandard" },
5321
  {   1, "isoAlgorithm" },
5322
  { 0, NULL }
5323
};
5324
5325
static const per_choice_t EncryptIntAlg_choice[] = {
5326
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5327
  {   1, &hf_h225_isoAlgorithm   , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5328
  { 0, NULL, 0, NULL }
5329
};
5330
5331
static unsigned
5332
8
dissect_h225_EncryptIntAlg(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5333
8
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5334
8
                                 ett_h225_EncryptIntAlg, EncryptIntAlg_choice,
5335
8
                                 NULL);
5336
5337
8
  return offset;
5338
8
}
5339
5340
5341
static const value_string h225_NonIsoIntegrityMechanism_vals[] = {
5342
  {   0, "hMAC-MD5" },
5343
  {   1, "hMAC-iso10118-2-s" },
5344
  {   2, "hMAC-iso10118-2-l" },
5345
  {   3, "hMAC-iso10118-3" },
5346
  { 0, NULL }
5347
};
5348
5349
static const per_choice_t NonIsoIntegrityMechanism_choice[] = {
5350
  {   0, &hf_h225_hMAC_MD5       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5351
  {   1, &hf_h225_hMAC_iso10118_2_s, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5352
  {   2, &hf_h225_hMAC_iso10118_2_l, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5353
  {   3, &hf_h225_hMAC_iso10118_3, ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5354
  { 0, NULL, 0, NULL }
5355
};
5356
5357
static unsigned
5358
17
dissect_h225_NonIsoIntegrityMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5359
17
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5360
17
                                 ett_h225_NonIsoIntegrityMechanism, NonIsoIntegrityMechanism_choice,
5361
17
                                 NULL);
5362
5363
17
  return offset;
5364
17
}
5365
5366
5367
const value_string h225_IntegrityMechanism_vals[] = {
5368
  {   0, "nonStandard" },
5369
  {   1, "digSig" },
5370
  {   2, "iso9797" },
5371
  {   3, "nonIsoIM" },
5372
  { 0, NULL }
5373
};
5374
5375
static const per_choice_t IntegrityMechanism_choice[] = {
5376
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5377
  {   1, &hf_h225_digSig         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5378
  {   2, &hf_h225_iso9797        , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5379
  {   3, &hf_h225_nonIsoIM       , ASN1_EXTENSION_ROOT    , dissect_h225_NonIsoIntegrityMechanism },
5380
  { 0, NULL, 0, NULL }
5381
};
5382
5383
unsigned
5384
64
dissect_h225_IntegrityMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5385
64
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5386
64
                                 ett_h225_IntegrityMechanism, IntegrityMechanism_choice,
5387
64
                                 NULL);
5388
5389
64
  return offset;
5390
64
}
5391
5392
5393
5394
static unsigned
5395
12
dissect_h225_BIT_STRING(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5396
12
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5397
12
                                     NO_BOUND, NO_BOUND, false, NULL, 0, NULL, NULL);
5398
5399
12
  return offset;
5400
12
}
5401
5402
5403
static const per_sequence_t ICV_sequence[] = {
5404
  { &hf_h225_algorithmOID   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5405
  { &hf_h225_icv            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BIT_STRING },
5406
  { NULL, 0, 0, NULL }
5407
};
5408
5409
unsigned
5410
13
dissect_h225_ICV(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5411
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5412
13
                                   ett_h225_ICV, ICV_sequence);
5413
5414
13
  return offset;
5415
13
}
5416
5417
5418
static const per_sequence_t CapacityReportingCapability_sequence[] = {
5419
  { &hf_h225_canReportCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5420
  { NULL, 0, 0, NULL }
5421
};
5422
5423
static unsigned
5424
0
dissect_h225_CapacityReportingCapability(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5425
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5426
0
                                   ett_h225_CapacityReportingCapability, CapacityReportingCapability_sequence);
5427
5428
0
  return offset;
5429
0
}
5430
5431
5432
static const per_sequence_t CapacityReportingSpecification_when_sequence[] = {
5433
  { &hf_h225_callStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5434
  { &hf_h225_callEnd        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5435
  { NULL, 0, 0, NULL }
5436
};
5437
5438
static unsigned
5439
0
dissect_h225_CapacityReportingSpecification_when(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5440
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5441
0
                                   ett_h225_CapacityReportingSpecification_when, CapacityReportingSpecification_when_sequence);
5442
5443
0
  return offset;
5444
0
}
5445
5446
5447
static const per_sequence_t CapacityReportingSpecification_sequence[] = {
5448
  { &hf_h225_capacityReportingSpecification_when, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CapacityReportingSpecification_when },
5449
  { NULL, 0, 0, NULL }
5450
};
5451
5452
static unsigned
5453
0
dissect_h225_CapacityReportingSpecification(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5454
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5455
0
                                   ett_h225_CapacityReportingSpecification, CapacityReportingSpecification_sequence);
5456
5457
0
  return offset;
5458
0
}
5459
5460
5461
static const per_sequence_t RasUsageInfoTypes_sequence[] = {
5462
  { &hf_h225_nonStandardUsageTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5463
  { &hf_h225_startTime      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5464
  { &hf_h225_endTime_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5465
  { &hf_h225_terminationCause_flg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5466
  { NULL, 0, 0, NULL }
5467
};
5468
5469
static unsigned
5470
1
dissect_h225_RasUsageInfoTypes(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5471
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5472
1
                                   ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
5473
5474
1
  return offset;
5475
1
}
5476
5477
5478
static const per_sequence_t RasUsageSpecification_when_sequence[] = {
5479
  { &hf_h225_start          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5480
  { &hf_h225_end            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5481
  { &hf_h225_inIrr          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5482
  { NULL, 0, 0, NULL }
5483
};
5484
5485
static unsigned
5486
0
dissect_h225_RasUsageSpecification_when(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5487
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5488
0
                                   ett_h225_RasUsageSpecification_when, RasUsageSpecification_when_sequence);
5489
5490
0
  return offset;
5491
0
}
5492
5493
5494
static const per_sequence_t RasUsageSpecificationcallStartingPoint_sequence[] = {
5495
  { &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5496
  { &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5497
  { NULL, 0, 0, NULL }
5498
};
5499
5500
static unsigned
5501
0
dissect_h225_RasUsageSpecificationcallStartingPoint(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5502
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5503
0
                                   ett_h225_RasUsageSpecificationcallStartingPoint, RasUsageSpecificationcallStartingPoint_sequence);
5504
5505
0
  return offset;
5506
0
}
5507
5508
5509
static const per_sequence_t RasUsageSpecification_sequence[] = {
5510
  { &hf_h225_when           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification_when },
5511
  { &hf_h225_ras_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_RasUsageSpecificationcallStartingPoint },
5512
  { &hf_h225_required       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageInfoTypes },
5513
  { NULL, 0, 0, NULL }
5514
};
5515
5516
static unsigned
5517
0
dissect_h225_RasUsageSpecification(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5518
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5519
0
                                   ett_h225_RasUsageSpecification, RasUsageSpecification_sequence);
5520
5521
0
  return offset;
5522
0
}
5523
5524
5525
static const per_sequence_t RasUsageInformation_sequence[] = {
5526
  { &hf_h225_nonStandardUsageFields, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5527
  { &hf_h225_alertingTime   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5528
  { &hf_h225_connectTime    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5529
  { &hf_h225_endTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5530
  { NULL, 0, 0, NULL }
5531
};
5532
5533
static unsigned
5534
1
dissect_h225_RasUsageInformation(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5535
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5536
1
                                   ett_h225_RasUsageInformation, RasUsageInformation_sequence);
5537
5538
1
  return offset;
5539
1
}
5540
5541
5542
5543
static unsigned
5544
1
dissect_h225_OCTET_STRING_SIZE_2_32(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5545
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5546
1
                                       2, 32, false, NULL);
5547
5548
1
  return offset;
5549
1
}
5550
5551
5552
static const value_string h225_CallTerminationCause_vals[] = {
5553
  {   0, "releaseCompleteReason" },
5554
  {   1, "releaseCompleteCauseIE" },
5555
  { 0, NULL }
5556
};
5557
5558
static const per_choice_t CallTerminationCause_choice[] = {
5559
  {   0, &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseCompleteReason },
5560
  {   1, &hf_h225_releaseCompleteCauseIE, ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_2_32 },
5561
  { 0, NULL, 0, NULL }
5562
};
5563
5564
static unsigned
5565
1
dissect_h225_CallTerminationCause(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5566
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5567
1
                                 ett_h225_CallTerminationCause, CallTerminationCause_choice,
5568
1
                                 NULL);
5569
5570
1
  return offset;
5571
1
}
5572
5573
5574
static const per_sequence_t TransportChannelInfo_sequence[] = {
5575
  { &hf_h225_sendAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5576
  { &hf_h225_recvAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5577
  { NULL, 0, 0, NULL }
5578
};
5579
5580
unsigned
5581
765
dissect_h225_TransportChannelInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5582
765
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5583
765
                                   ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
5584
5585
765
  return offset;
5586
765
}
5587
5588
5589
static const per_sequence_t BandwidthDetails_sequence[] = {
5590
  { &hf_h225_sender         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5591
  { &hf_h225_multicast      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5592
  { &hf_h225_bandwidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
5593
  { &hf_h225_rtcpAddresses  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5594
  { NULL, 0, 0, NULL }
5595
};
5596
5597
static unsigned
5598
2
dissect_h225_BandwidthDetails(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5599
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5600
2
                                   ett_h225_BandwidthDetails, BandwidthDetails_sequence);
5601
5602
2
  return offset;
5603
2
}
5604
5605
5606
static const per_sequence_t CallCreditCapability_sequence[] = {
5607
  { &hf_h225_canDisplayAmountString, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5608
  { &hf_h225_canEnforceDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5609
  { NULL, 0, 0, NULL }
5610
};
5611
5612
static unsigned
5613
0
dissect_h225_CallCreditCapability(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5614
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5615
0
                                   ett_h225_CallCreditCapability, CallCreditCapability_sequence);
5616
5617
0
  return offset;
5618
0
}
5619
5620
5621
5622
static unsigned
5623
169
dissect_h225_PrintableString(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5624
169
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
5625
169
                                          NO_BOUND, NO_BOUND, false,
5626
169
                                          NULL);
5627
5628
169
  return offset;
5629
169
}
5630
5631
5632
5633
static unsigned
5634
840
dissect_h225_INTEGER_1_255(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5635
840
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5636
840
                                                            1U, 255U, NULL, false);
5637
5638
840
  return offset;
5639
840
}
5640
5641
5642
static const per_sequence_t T_associatedSessionIds_sequence_of[1] = {
5643
  { &hf_h225_associatedSessionIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5644
};
5645
5646
static unsigned
5647
163
dissect_h225_T_associatedSessionIds(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5648
163
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5649
163
                                      ett_h225_T_associatedSessionIds, T_associatedSessionIds_sequence_of);
5650
5651
163
  return offset;
5652
163
}
5653
5654
5655
static const per_sequence_t RTPSession_sequence[] = {
5656
  { &hf_h225_rtpAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5657
  { &hf_h225_rtcpAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5658
  { &hf_h225_cname          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrintableString },
5659
  { &hf_h225_ssrc           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_4294967295 },
5660
  { &hf_h225_sessionId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5661
  { &hf_h225_associatedSessionIds, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_associatedSessionIds },
5662
  { &hf_h225_multicast_flg  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5663
  { &hf_h225_bandwidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
5664
  { NULL, 0, 0, NULL }
5665
};
5666
5667
static unsigned
5668
173
dissect_h225_RTPSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5669
173
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5670
173
                                   ett_h225_RTPSession, RTPSession_sequence);
5671
5672
173
  return offset;
5673
173
}
5674
5675
5676
static const value_string h225_RehomingModel_vals[] = {
5677
  {   0, "gatekeeperBased" },
5678
  {   1, "endpointBased" },
5679
  { 0, NULL }
5680
};
5681
5682
static const per_choice_t RehomingModel_choice[] = {
5683
  {   0, &hf_h225_gatekeeperBased, ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5684
  {   1, &hf_h225_endpointBased  , ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5685
  { 0, NULL, 0, NULL }
5686
};
5687
5688
static unsigned
5689
0
dissect_h225_RehomingModel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5690
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5691
0
                                 ett_h225_RehomingModel, RehomingModel_choice,
5692
0
                                 NULL);
5693
5694
0
  return offset;
5695
0
}
5696
5697
5698
static const per_sequence_t SEQUENCE_OF_Endpoint_sequence_of[1] = {
5699
  { &hf_h225_alternateEndpoints_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_Endpoint },
5700
};
5701
5702
static unsigned
5703
4
dissect_h225_SEQUENCE_OF_Endpoint(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5704
4
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5705
4
                                      ett_h225_SEQUENCE_OF_Endpoint, SEQUENCE_OF_Endpoint_sequence_of);
5706
5707
4
  return offset;
5708
4
}
5709
5710
5711
static const per_sequence_t SEQUENCE_OF_AuthenticationMechanism_sequence_of[1] = {
5712
  { &hf_h225_authenticationCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_AuthenticationMechanism },
5713
};
5714
5715
static unsigned
5716
3
dissect_h225_SEQUENCE_OF_AuthenticationMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5717
3
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5718
3
                                      ett_h225_SEQUENCE_OF_AuthenticationMechanism, SEQUENCE_OF_AuthenticationMechanism_sequence_of);
5719
5720
3
  return offset;
5721
3
}
5722
5723
5724
static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
5725
  { &hf_h225_algorithmOIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5726
};
5727
5728
static unsigned
5729
0
dissect_h225_T_algorithmOIDs(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5730
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5731
0
                                      ett_h225_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
5732
5733
0
  return offset;
5734
0
}
5735
5736
5737
static const per_sequence_t SEQUENCE_OF_IntegrityMechanism_sequence_of[1] = {
5738
  { &hf_h225_integrity_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IntegrityMechanism },
5739
};
5740
5741
static unsigned
5742
1
dissect_h225_SEQUENCE_OF_IntegrityMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5743
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5744
1
                                      ett_h225_SEQUENCE_OF_IntegrityMechanism, SEQUENCE_OF_IntegrityMechanism_sequence_of);
5745
5746
1
  return offset;
5747
1
}
5748
5749
5750
static const per_sequence_t GatekeeperRequest_sequence[] = {
5751
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5752
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5753
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5754
  { &hf_h225_gatekeeperRequest_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5755
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5756
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5757
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
5758
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5759
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
5760
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5761
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5762
  { &hf_h225_authenticationCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AuthenticationMechanism },
5763
  { &hf_h225_algorithmOIDs  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_algorithmOIDs },
5764
  { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5765
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5766
  { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5767
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5768
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5769
  { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5770
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5771
  { NULL, 0, 0, NULL }
5772
};
5773
5774
static unsigned
5775
17
dissect_h225_GatekeeperRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5776
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5777
17
                                   ett_h225_GatekeeperRequest, GatekeeperRequest_sequence);
5778
5779
17
  return offset;
5780
17
}
5781
5782
5783
static const per_sequence_t GatekeeperConfirm_sequence[] = {
5784
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5785
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5786
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5787
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5788
  { &hf_h225_gatekeeperConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5789
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
5790
  { &hf_h225_authenticationMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h235_AuthenticationMechanism },
5791
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5792
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5793
  { &hf_h225_algorithmOID   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
5794
  { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5795
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5796
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5797
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5798
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5799
  { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
5800
  { NULL, 0, 0, NULL }
5801
};
5802
5803
static unsigned
5804
1
dissect_h225_GatekeeperConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5805
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5806
1
                                   ett_h225_GatekeeperConfirm, GatekeeperConfirm_sequence);
5807
5808
1
  return offset;
5809
1
}
5810
5811
5812
const value_string GatekeeperRejectReason_vals[] = {
5813
  {   0, "resourceUnavailable" },
5814
  {   1, "terminalExcluded" },
5815
  {   2, "invalidRevision" },
5816
  {   3, "undefinedReason" },
5817
  {   4, "securityDenial" },
5818
  {   5, "genericDataReason" },
5819
  {   6, "neededFeatureNotSupported" },
5820
  {   7, "securityError" },
5821
  { 0, NULL }
5822
};
5823
5824
static const per_choice_t GatekeeperRejectReason_choice[] = {
5825
  {   0, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5826
  {   1, &hf_h225_terminalExcluded, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5827
  {   2, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5828
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5829
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5830
  {   5, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5831
  {   6, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5832
  {   7, &hf_h225_gkRej_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
5833
  { 0, NULL, 0, NULL }
5834
};
5835
5836
static unsigned
5837
2
dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5838
2
  int32_t value;
5839
2
  h225_packet_info* h225_pi;
5840
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5841
5842
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5843
2
                                 ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice,
5844
2
                                 &value);
5845
5846
2
  if (h225_pi != NULL) {
5847
2
    h225_pi->reason = value;
5848
2
  }
5849
5850
2
  return offset;
5851
2
}
5852
5853
5854
static const per_sequence_t GatekeeperReject_sequence[] = {
5855
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5856
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5857
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5858
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5859
  { &hf_h225_gatekeeperRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperRejectReason },
5860
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
5861
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5862
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5863
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5864
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5865
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5866
  { NULL, 0, 0, NULL }
5867
};
5868
5869
static unsigned
5870
3
dissect_h225_GatekeeperReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5871
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5872
3
                                   ett_h225_GatekeeperReject, GatekeeperReject_sequence);
5873
5874
3
  return offset;
5875
3
}
5876
5877
5878
static const per_sequence_t SEQUENCE_OF_AddressPattern_sequence_of[1] = {
5879
  { &hf_h225_terminalAliasPattern_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AddressPattern },
5880
};
5881
5882
static unsigned
5883
0
dissect_h225_SEQUENCE_OF_AddressPattern(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5884
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5885
0
                                      ett_h225_SEQUENCE_OF_AddressPattern, SEQUENCE_OF_AddressPattern_sequence_of);
5886
5887
0
  return offset;
5888
0
}
5889
5890
5891
static const per_sequence_t SEQUENCE_OF_H248PackagesDescriptor_sequence_of[1] = {
5892
  { &hf_h225_supportedH248Packages_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H248PackagesDescriptor },
5893
};
5894
5895
static unsigned
5896
0
dissect_h225_SEQUENCE_OF_H248PackagesDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5897
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5898
0
                                      ett_h225_SEQUENCE_OF_H248PackagesDescriptor, SEQUENCE_OF_H248PackagesDescriptor_sequence_of);
5899
5900
0
  return offset;
5901
0
}
5902
5903
5904
static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = {
5905
  { &hf_h225_qOSCapabilities_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability },
5906
};
5907
5908
static unsigned
5909
19
dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5910
19
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5911
19
                                                  ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of,
5912
19
                                                  1, 256, false);
5913
5914
19
  return offset;
5915
19
}
5916
5917
5918
const value_string h225_TransportQOS_vals[] = {
5919
  {   0, "endpointControlled" },
5920
  {   1, "gatekeeperControlled" },
5921
  {   2, "noControl" },
5922
  {   3, "qOSCapabilities" },
5923
  { 0, NULL }
5924
};
5925
5926
static const per_choice_t TransportQOS_choice[] = {
5927
  {   0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5928
  {   1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5929
  {   2, &hf_h225_noControl      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5930
  {   3, &hf_h225_qOSCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability },
5931
  { 0, NULL, 0, NULL }
5932
};
5933
5934
unsigned
5935
89
dissect_h225_TransportQOS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5936
89
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5937
89
                                 ett_h225_TransportQOS, TransportQOS_choice,
5938
89
                                 NULL);
5939
5940
89
  return offset;
5941
89
}
5942
5943
5944
static const per_sequence_t RegistrationRequest_sequence[] = {
5945
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5946
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5947
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5948
  { &hf_h225_discoveryComplete, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5949
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5950
  { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5951
  { &hf_h225_terminalType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5952
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5953
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5954
  { &hf_h225_endpointVendor , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_VendorIdentifier },
5955
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
5956
  { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
5957
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5958
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5959
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5960
  { &hf_h225_keepAlive      , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5961
  { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
5962
  { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5963
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5964
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
5965
  { &hf_h225_additiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5966
  { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
5967
  { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5968
  { &hf_h225_usageReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
5969
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5970
  { &hf_h225_supportedH248Packages, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H248PackagesDescriptor },
5971
  { &hf_h225_callCreditCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCreditCapability },
5972
  { &hf_h225_capacityReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingCapability },
5973
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
5974
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5975
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5976
  { &hf_h225_restart        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5977
  { &hf_h225_supportsACFSequences, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5978
  { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5979
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5980
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
5981
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
5982
  { NULL, 0, 0, NULL }
5983
};
5984
5985
static unsigned
5986
10
dissect_h225_RegistrationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5987
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5988
10
                                   ett_h225_RegistrationRequest, RegistrationRequest_sequence);
5989
5990
10
  return offset;
5991
10
}
5992
5993
5994
5995
static unsigned
5996
20
dissect_h225_INTEGER_1_65535(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5997
20
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5998
20
                                                            1U, 65535U, NULL, false);
5999
6000
20
  return offset;
6001
20
}
6002
6003
6004
static const per_sequence_t T_preGrantedARQ_sequence[] = {
6005
  { &hf_h225_makeCall       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6006
  { &hf_h225_useGKCallSignalAddressToMakeCall, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6007
  { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6008
  { &hf_h225_useGKCallSignalAddressToAnswer, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6009
  { &hf_h225_irrFrequencyInCall, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6010
  { &hf_h225_totalBandwidthRestriction, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6011
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6012
  { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6013
  { NULL, 0, 0, NULL }
6014
};
6015
6016
static unsigned
6017
0
dissect_h225_T_preGrantedARQ(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6018
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6019
0
                                   ett_h225_T_preGrantedARQ, T_preGrantedARQ_sequence);
6020
6021
0
  return offset;
6022
0
}
6023
6024
6025
static const per_sequence_t SEQUENCE_OF_RasUsageSpecification_sequence_of[1] = {
6026
  { &hf_h225_usageSpec_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification },
6027
};
6028
6029
static unsigned
6030
0
dissect_h225_SEQUENCE_OF_RasUsageSpecification(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6031
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6032
0
                                      ett_h225_SEQUENCE_OF_RasUsageSpecification, SEQUENCE_OF_RasUsageSpecification_sequence_of);
6033
6034
0
  return offset;
6035
0
}
6036
6037
6038
static const per_sequence_t RegistrationConfirm_sequence[] = {
6039
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6040
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6041
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6042
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6043
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6044
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6045
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6046
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6047
  { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
6048
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6049
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6050
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6051
  { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6052
  { &hf_h225_preGrantedARQ  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_preGrantedARQ },
6053
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6054
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6055
  { &hf_h225_supportsAdditiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6056
  { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6057
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6058
  { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6059
  { &hf_h225_featureServerAlias, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
6060
  { &hf_h225_capacityReportingSpec, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingSpecification },
6061
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6062
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6063
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6064
  { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
6065
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6066
  { NULL, 0, 0, NULL }
6067
};
6068
6069
static unsigned
6070
7
dissect_h225_RegistrationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6071
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6072
7
                                   ett_h225_RegistrationConfirm, RegistrationConfirm_sequence);
6073
6074
7
  return offset;
6075
7
}
6076
6077
6078
static const per_sequence_t T_invalidTerminalAliases_sequence[] = {
6079
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6080
  { &hf_h225_terminalAliasPattern, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6081
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6082
  { NULL, 0, 0, NULL }
6083
};
6084
6085
static unsigned
6086
0
dissect_h225_T_invalidTerminalAliases(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6087
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6088
0
                                   ett_h225_T_invalidTerminalAliases, T_invalidTerminalAliases_sequence);
6089
6090
0
  return offset;
6091
0
}
6092
6093
6094
const value_string RegistrationRejectReason_vals[] = {
6095
  {   0, "discoveryRequired" },
6096
  {   1, "invalidRevision" },
6097
  {   2, "invalidCallSignalAddress" },
6098
  {   3, "invalidRASAddress" },
6099
  {   4, "duplicateAlias" },
6100
  {   5, "invalidTerminalType" },
6101
  {   6, "undefinedReason" },
6102
  {   7, "transportNotSupported" },
6103
  {   8, "transportQOSNotSupported" },
6104
  {   9, "resourceUnavailable" },
6105
  {  10, "invalidAlias" },
6106
  {  11, "securityDenial" },
6107
  {  12, "fullRegistrationRequired" },
6108
  {  13, "additiveRegistrationNotSupported" },
6109
  {  14, "invalidTerminalAliases" },
6110
  {  15, "genericDataReason" },
6111
  {  16, "neededFeatureNotSupported" },
6112
  {  17, "securityError" },
6113
  {  18, "registerWithAssignedGK" },
6114
  { 0, NULL }
6115
};
6116
6117
static const per_choice_t RegistrationRejectReason_choice[] = {
6118
  {   0, &hf_h225_discoveryRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6119
  {   1, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6120
  {   2, &hf_h225_invalidCallSignalAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6121
  {   3, &hf_h225_invalidRASAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6122
  {   4, &hf_h225_duplicateAlias , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_OF_AliasAddress },
6123
  {   5, &hf_h225_invalidTerminalType, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6124
  {   6, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6125
  {   7, &hf_h225_transportNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6126
  {   8, &hf_h225_transportQOSNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6127
  {   9, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6128
  {  10, &hf_h225_invalidAlias   , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6129
  {  11, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6130
  {  12, &hf_h225_fullRegistrationRequired, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6131
  {  13, &hf_h225_additiveRegistrationNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6132
  {  14, &hf_h225_invalidTerminalAliases, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_invalidTerminalAliases },
6133
  {  15, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6134
  {  16, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6135
  {  17, &hf_h225_reg_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
6136
  {  18, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6137
  { 0, NULL, 0, NULL }
6138
};
6139
6140
static unsigned
6141
2
dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6142
2
  int32_t value;
6143
2
  h225_packet_info* h225_pi;
6144
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6145
6146
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6147
2
                                 ett_h225_RegistrationRejectReason, RegistrationRejectReason_choice,
6148
2
                                 &value);
6149
6150
2
  if (h225_pi != NULL) {
6151
2
    h225_pi->reason = value;
6152
2
  }
6153
6154
2
  return offset;
6155
2
}
6156
6157
6158
static const per_sequence_t RegistrationReject_sequence[] = {
6159
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6160
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6161
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6162
  { &hf_h225_registrationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RegistrationRejectReason },
6163
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6164
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6165
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6166
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6167
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6168
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6169
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6170
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6171
  { NULL, 0, 0, NULL }
6172
};
6173
6174
static unsigned
6175
2
dissect_h225_RegistrationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6176
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6177
2
                                   ett_h225_RegistrationReject, RegistrationReject_sequence);
6178
6179
2
  return offset;
6180
2
}
6181
6182
6183
const value_string UnregRequestReason_vals[] = {
6184
  {   0, "reregistrationRequired" },
6185
  {   1, "ttlExpired" },
6186
  {   2, "securityDenial" },
6187
  {   3, "undefinedReason" },
6188
  {   4, "maintenance" },
6189
  {   5, "securityError" },
6190
  {   6, "registerWithAssignedGK" },
6191
  { 0, NULL }
6192
};
6193
6194
static const per_choice_t UnregRequestReason_choice[] = {
6195
  {   0, &hf_h225_reregistrationRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6196
  {   1, &hf_h225_ttlExpired     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6197
  {   2, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6198
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6199
  {   4, &hf_h225_maintenance    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6200
  {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6201
  {   6, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6202
  { 0, NULL, 0, NULL }
6203
};
6204
6205
static unsigned
6206
0
dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6207
0
  int32_t value;
6208
0
  h225_packet_info* h225_pi;
6209
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6210
6211
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6212
0
                                 ett_h225_UnregRequestReason, UnregRequestReason_choice,
6213
0
                                 &value);
6214
6215
0
  if (h225_pi != NULL) {
6216
0
    h225_pi->reason = value;
6217
0
  }
6218
6219
0
  return offset;
6220
0
}
6221
6222
6223
static const per_sequence_t UnregistrationRequest_sequence[] = {
6224
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6225
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6226
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6227
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6228
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6229
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6230
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6231
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6232
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6233
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6234
  { &hf_h225_unregRequestReason, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UnregRequestReason },
6235
  { &hf_h225_endpointAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6236
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6237
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6238
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6239
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6240
  { NULL, 0, 0, NULL }
6241
};
6242
6243
static unsigned
6244
11
dissect_h225_UnregistrationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6245
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6246
11
                                   ett_h225_UnregistrationRequest, UnregistrationRequest_sequence);
6247
6248
11
  return offset;
6249
11
}
6250
6251
6252
static const per_sequence_t UnregistrationConfirm_sequence[] = {
6253
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6254
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6255
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6256
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6257
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6258
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6259
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6260
  { NULL, 0, 0, NULL }
6261
};
6262
6263
static unsigned
6264
1
dissect_h225_UnregistrationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6265
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6266
1
                                   ett_h225_UnregistrationConfirm, UnregistrationConfirm_sequence);
6267
6268
1
  return offset;
6269
1
}
6270
6271
6272
const value_string UnregRejectReason_vals[] = {
6273
  {   0, "notCurrentlyRegistered" },
6274
  {   1, "callInProgress" },
6275
  {   2, "undefinedReason" },
6276
  {   3, "permissionDenied" },
6277
  {   4, "securityDenial" },
6278
  {   5, "securityError" },
6279
  { 0, NULL }
6280
};
6281
6282
static const per_choice_t UnregRejectReason_choice[] = {
6283
  {   0, &hf_h225_notCurrentlyRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6284
  {   1, &hf_h225_callInProgress , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6285
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6286
  {   3, &hf_h225_permissionDenied, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6287
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6288
  {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6289
  { 0, NULL, 0, NULL }
6290
};
6291
6292
static unsigned
6293
7
dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6294
7
  int32_t value;
6295
7
  h225_packet_info* h225_pi;
6296
7
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6297
6298
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6299
7
                                 ett_h225_UnregRejectReason, UnregRejectReason_choice,
6300
7
                                 &value);
6301
6302
7
  if (h225_pi != NULL) {
6303
7
    h225_pi->reason = value;
6304
7
  }
6305
6306
7
  return offset;
6307
7
}
6308
6309
6310
static const per_sequence_t UnregistrationReject_sequence[] = {
6311
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6312
  { &hf_h225_unregRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_UnregRejectReason },
6313
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6314
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6315
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6316
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6317
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6318
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6319
  { NULL, 0, 0, NULL }
6320
};
6321
6322
static unsigned
6323
7
dissect_h225_UnregistrationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6324
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6325
7
                                   ett_h225_UnregistrationReject, UnregistrationReject_sequence);
6326
6327
7
  return offset;
6328
7
}
6329
6330
6331
static const value_string h225_CallModel_vals[] = {
6332
  {   0, "direct" },
6333
  {   1, "gatekeeperRouted" },
6334
  { 0, NULL }
6335
};
6336
6337
static const per_choice_t CallModel_choice[] = {
6338
  {   0, &hf_h225_direct         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6339
  {   1, &hf_h225_gatekeeperRouted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6340
  { 0, NULL, 0, NULL }
6341
};
6342
6343
static unsigned
6344
218
dissect_h225_CallModel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6345
218
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6346
218
                                 ett_h225_CallModel, CallModel_choice,
6347
218
                                 NULL);
6348
6349
218
  return offset;
6350
218
}
6351
6352
6353
6354
static unsigned
6355
341
dissect_h225_DestinationInfo_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6356
341
  h225_packet_info* h225_pi;
6357
6358
341
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6359
341
  if (h225_pi != NULL) {
6360
341
    h225_pi->is_destinationInfo = true;
6361
341
  }
6362
341
  offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
6363
6364
341
  return offset;
6365
341
}
6366
6367
6368
static const per_sequence_t DestinationInfo_sequence_of[1] = {
6369
  { &hf_h225_DestinationInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo_item },
6370
};
6371
6372
static unsigned
6373
28
dissect_h225_DestinationInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6374
28
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6375
28
                                      ett_h225_DestinationInfo, DestinationInfo_sequence_of);
6376
6377
28
  return offset;
6378
28
}
6379
6380
6381
static const per_sequence_t AdmissionRequest_sequence[] = {
6382
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6383
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
6384
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallModel },
6385
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6386
  { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6387
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6388
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6389
  { &hf_h225_srcInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AliasAddress },
6390
  { &hf_h225_srcCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6391
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6392
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6393
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6394
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
6395
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6396
  { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6397
  { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6398
  { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6399
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6400
  { &hf_h225_srcAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6401
  { &hf_h225_destAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6402
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6403
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6404
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6405
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6406
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6407
  { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6408
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6409
  { &hf_h225_gatewayDataRate, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DataRate },
6410
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6411
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6412
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6413
  { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6414
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6415
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6416
  { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6417
  { NULL, 0, 0, NULL }
6418
};
6419
6420
static unsigned
6421
10
dissect_h225_AdmissionRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6422
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6423
10
                                   ett_h225_AdmissionRequest, AdmissionRequest_sequence);
6424
6425
10
  return offset;
6426
10
}
6427
6428
6429
static const per_sequence_t UUIEsRequested_sequence[] = {
6430
  { &hf_h225_setup_bool     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6431
  { &hf_h225_callProceeding_flg, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6432
  { &hf_h225_connect_bool   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6433
  { &hf_h225_alerting_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6434
  { &hf_h225_information_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6435
  { &hf_h225_releaseComplete_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6436
  { &hf_h225_facility_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6437
  { &hf_h225_progress_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6438
  { &hf_h225_empty          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6439
  { &hf_h225_status_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6440
  { &hf_h225_statusInquiry_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6441
  { &hf_h225_setupAcknowledge_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6442
  { &hf_h225_notify_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6443
  { NULL, 0, 0, NULL }
6444
};
6445
6446
static unsigned
6447
1
dissect_h225_UUIEsRequested(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6448
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6449
1
                                   ett_h225_UUIEsRequested, UUIEsRequested_sequence);
6450
6451
1
  return offset;
6452
1
}
6453
6454
6455
static const per_sequence_t AdmissionConfirm_sequence[] = {
6456
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6457
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6458
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
6459
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6460
  { &hf_h225_irrFrequency   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6461
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6462
  { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6463
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6464
  { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6465
  { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6466
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6467
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6468
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6469
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6470
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6471
  { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6472
  { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_UUIEsRequested },
6473
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6474
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6475
  { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6476
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6477
  { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6478
  { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6479
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6480
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6481
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6482
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6483
  { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6484
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6485
  { NULL, 0, 0, NULL }
6486
};
6487
6488
static unsigned
6489
107
dissect_h225_AdmissionConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6490
107
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6491
107
                                   ett_h225_AdmissionConfirm, AdmissionConfirm_sequence);
6492
6493
107
  return offset;
6494
107
}
6495
6496
6497
static const per_sequence_t SEQUENCE_OF_PartyNumber_sequence_of[1] = {
6498
  { &hf_h225_routeCallToSCN_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
6499
};
6500
6501
static unsigned
6502
0
dissect_h225_SEQUENCE_OF_PartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6503
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6504
0
                                      ett_h225_SEQUENCE_OF_PartyNumber, SEQUENCE_OF_PartyNumber_sequence_of);
6505
6506
0
  return offset;
6507
0
}
6508
6509
6510
const value_string AdmissionRejectReason_vals[] = {
6511
  {   0, "calledPartyNotRegistered" },
6512
  {   1, "invalidPermission" },
6513
  {   2, "requestDenied" },
6514
  {   3, "undefinedReason" },
6515
  {   4, "callerNotRegistered" },
6516
  {   5, "routeCallToGatekeeper" },
6517
  {   6, "invalidEndpointIdentifier" },
6518
  {   7, "resourceUnavailable" },
6519
  {   8, "securityDenial" },
6520
  {   9, "qosControlNotSupported" },
6521
  {  10, "incompleteAddress" },
6522
  {  11, "aliasesInconsistent" },
6523
  {  12, "routeCallToSCN" },
6524
  {  13, "exceedsCallCapacity" },
6525
  {  14, "collectDestination" },
6526
  {  15, "collectPIN" },
6527
  {  16, "genericDataReason" },
6528
  {  17, "neededFeatureNotSupported" },
6529
  {  18, "securityError" },
6530
  {  19, "securityDHmismatch" },
6531
  {  20, "noRouteToDestination" },
6532
  {  21, "unallocatedNumber" },
6533
  {  22, "registerWithAssignedGK" },
6534
  { 0, NULL }
6535
};
6536
6537
static const per_choice_t AdmissionRejectReason_choice[] = {
6538
  {   0, &hf_h225_calledPartyNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6539
  {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6540
  {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6541
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6542
  {   4, &hf_h225_callerNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6543
  {   5, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6544
  {   6, &hf_h225_invalidEndpointIdentifier, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6545
  {   7, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6546
  {   8, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6547
  {   9, &hf_h225_qosControlNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6548
  {  10, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6549
  {  11, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6550
  {  12, &hf_h225_routeCallToSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6551
  {  13, &hf_h225_exceedsCallCapacity, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6552
  {  14, &hf_h225_collectDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6553
  {  15, &hf_h225_collectPIN     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6554
  {  16, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6555
  {  17, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6556
  {  18, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6557
  {  19, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6558
  {  20, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6559
  {  21, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6560
  {  22, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6561
  { 0, NULL, 0, NULL }
6562
};
6563
6564
static unsigned
6565
4
dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6566
4
  int32_t value;
6567
4
  h225_packet_info* h225_pi;
6568
4
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6569
6570
4
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6571
4
                                 ett_h225_AdmissionRejectReason, AdmissionRejectReason_choice,
6572
4
                                 &value);
6573
6574
4
  if (h225_pi != NULL) {
6575
4
    h225_pi->reason = value;
6576
4
  }
6577
6578
4
  return offset;
6579
4
}
6580
6581
6582
static const per_sequence_t AdmissionReject_sequence[] = {
6583
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6584
  { &hf_h225_rejectReason   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionRejectReason },
6585
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6586
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6587
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6588
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6589
  { &hf_h225_callSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
6590
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6591
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6592
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6593
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6594
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6595
  { NULL, 0, 0, NULL }
6596
};
6597
6598
static unsigned
6599
4
dissect_h225_AdmissionReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6600
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6601
4
                                   ett_h225_AdmissionReject, AdmissionReject_sequence);
6602
6603
4
  return offset;
6604
4
}
6605
6606
6607
static const per_sequence_t SEQUENCE_OF_BandwidthDetails_sequence_of[1] = {
6608
  { &hf_h225_bandwidthDetails_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BandwidthDetails },
6609
};
6610
6611
static unsigned
6612
2
dissect_h225_SEQUENCE_OF_BandwidthDetails(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6613
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6614
2
                                      ett_h225_SEQUENCE_OF_BandwidthDetails, SEQUENCE_OF_BandwidthDetails_sequence_of);
6615
6616
2
  return offset;
6617
2
}
6618
6619
6620
static const per_sequence_t BandwidthRequest_sequence[] = {
6621
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6622
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6623
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6624
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6625
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallType },
6626
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6627
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6628
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6629
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6630
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6631
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6632
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6633
  { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6634
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6635
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6636
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6637
  { &hf_h225_bandwidthDetails, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_BandwidthDetails },
6638
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6639
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6640
  { NULL, 0, 0, NULL }
6641
};
6642
6643
static unsigned
6644
7
dissect_h225_BandwidthRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6645
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6646
7
                                   ett_h225_BandwidthRequest, BandwidthRequest_sequence);
6647
6648
7
  return offset;
6649
7
}
6650
6651
6652
static const per_sequence_t BandwidthConfirm_sequence[] = {
6653
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6654
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6655
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6656
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6657
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6658
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6659
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6660
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6661
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6662
  { NULL, 0, 0, NULL }
6663
};
6664
6665
static unsigned
6666
27
dissect_h225_BandwidthConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6667
27
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6668
27
                                   ett_h225_BandwidthConfirm, BandwidthConfirm_sequence);
6669
6670
27
  return offset;
6671
27
}
6672
6673
6674
const value_string BandRejectReason_vals[] = {
6675
  {   0, "notBound" },
6676
  {   1, "invalidConferenceID" },
6677
  {   2, "invalidPermission" },
6678
  {   3, "insufficientResources" },
6679
  {   4, "invalidRevision" },
6680
  {   5, "undefinedReason" },
6681
  {   6, "securityDenial" },
6682
  {   7, "securityError" },
6683
  { 0, NULL }
6684
};
6685
6686
static const per_choice_t BandRejectReason_choice[] = {
6687
  {   0, &hf_h225_notBound       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6688
  {   1, &hf_h225_invalidConferenceID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6689
  {   2, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6690
  {   3, &hf_h225_insufficientResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6691
  {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6692
  {   5, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6693
  {   6, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6694
  {   7, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6695
  { 0, NULL, 0, NULL }
6696
};
6697
6698
static unsigned
6699
8
dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6700
8
  int32_t value;
6701
8
  h225_packet_info* h225_pi;
6702
8
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6703
6704
8
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6705
8
                                 ett_h225_BandRejectReason, BandRejectReason_choice,
6706
8
                                 &value);
6707
6708
8
  if (h225_pi != NULL) {
6709
7
    h225_pi->reason = value;
6710
7
  }
6711
6712
8
  return offset;
6713
8
}
6714
6715
6716
static const per_sequence_t BandwidthReject_sequence[] = {
6717
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6718
  { &hf_h225_bandRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandRejectReason },
6719
  { &hf_h225_allowedBandWidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6720
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6721
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6722
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6723
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6724
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6725
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6726
  { NULL, 0, 0, NULL }
6727
};
6728
6729
static unsigned
6730
8
dissect_h225_BandwidthReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6731
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6732
8
                                   ett_h225_BandwidthReject, BandwidthReject_sequence);
6733
6734
8
  return offset;
6735
8
}
6736
6737
6738
const value_string DisengageReason_vals[] = {
6739
  {   0, "forcedDrop" },
6740
  {   1, "normalDrop" },
6741
  {   2, "undefinedReason" },
6742
  { 0, NULL }
6743
};
6744
6745
static const per_choice_t DisengageReason_choice[] = {
6746
  {   0, &hf_h225_forcedDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6747
  {   1, &hf_h225_normalDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6748
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6749
  { 0, NULL, 0, NULL }
6750
};
6751
6752
static unsigned
6753
2
dissect_h225_DisengageReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6754
2
  int32_t value;
6755
2
  h225_packet_info* h225_pi;
6756
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6757
6758
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6759
2
                                 ett_h225_DisengageReason, DisengageReason_choice,
6760
2
                                 &value);
6761
6762
2
  if (h225_pi != NULL) {
6763
2
    h225_pi->reason = value;
6764
2
  }
6765
6766
2
  return offset;
6767
2
}
6768
6769
6770
static const per_sequence_t DisengageRequest_sequence[] = {
6771
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6772
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6773
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6774
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6775
  { &hf_h225_disengageReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageReason },
6776
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6777
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6778
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6779
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6780
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6781
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6782
  { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6783
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6784
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6785
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6786
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6787
  { &hf_h225_terminationCause, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallTerminationCause },
6788
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6789
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6790
  { NULL, 0, 0, NULL }
6791
};
6792
6793
static unsigned
6794
2
dissect_h225_DisengageRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6795
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6796
2
                                   ett_h225_DisengageRequest, DisengageRequest_sequence);
6797
6798
2
  return offset;
6799
2
}
6800
6801
6802
static const per_sequence_t DisengageConfirm_sequence[] = {
6803
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6804
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6805
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6806
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6807
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6808
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6809
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6810
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6811
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6812
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6813
  { NULL, 0, 0, NULL }
6814
};
6815
6816
static unsigned
6817
10
dissect_h225_DisengageConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6818
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6819
10
                                   ett_h225_DisengageConfirm, DisengageConfirm_sequence);
6820
6821
10
  return offset;
6822
10
}
6823
6824
6825
const value_string DisengageRejectReason_vals[] = {
6826
  {   0, "notRegistered" },
6827
  {   1, "requestToDropOther" },
6828
  {   2, "securityDenial" },
6829
  {   3, "securityError" },
6830
  { 0, NULL }
6831
};
6832
6833
static const per_choice_t DisengageRejectReason_choice[] = {
6834
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6835
  {   1, &hf_h225_requestToDropOther, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6836
  {   2, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6837
  {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6838
  { 0, NULL, 0, NULL }
6839
};
6840
6841
static unsigned
6842
4
dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6843
4
  int32_t value;
6844
4
  h225_packet_info* h225_pi;
6845
4
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6846
6847
4
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6848
4
                                 ett_h225_DisengageRejectReason, DisengageRejectReason_choice,
6849
4
                                 &value);
6850
6851
4
  if (h225_pi != NULL) {
6852
4
    h225_pi->reason = value;
6853
4
  }
6854
6855
4
  return offset;
6856
4
}
6857
6858
6859
static const per_sequence_t DisengageReject_sequence[] = {
6860
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6861
  { &hf_h225_disengageRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageRejectReason },
6862
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6863
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6864
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6865
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6866
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6867
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6868
  { NULL, 0, 0, NULL }
6869
};
6870
6871
static unsigned
6872
4
dissect_h225_DisengageReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6873
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6874
4
                                   ett_h225_DisengageReject, DisengageReject_sequence);
6875
6876
4
  return offset;
6877
4
}
6878
6879
6880
static const per_sequence_t LocationRequest_sequence[] = {
6881
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6882
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6883
  { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo },
6884
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6885
  { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6886
  { &hf_h225_sourceInfo     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6887
  { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6888
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6889
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6890
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6891
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6892
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6893
  { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6894
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6895
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6896
  { &hf_h225_hopCount       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_255 },
6897
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6898
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
6899
  { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6900
  { &hf_h225_sourceEndpointInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6901
  { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6902
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6903
  { NULL, 0, 0, NULL }
6904
};
6905
6906
static unsigned
6907
19
dissect_h225_LocationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6908
19
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6909
19
                                   ett_h225_LocationRequest, LocationRequest_sequence);
6910
6911
19
  return offset;
6912
19
}
6913
6914
6915
static const per_sequence_t LocationConfirm_sequence[] = {
6916
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6917
  { &hf_h225_locationConfirm_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6918
  { &hf_h225_locationConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6919
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6920
  { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6921
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6922
  { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6923
  { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6924
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6925
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6926
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6927
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6928
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6929
  { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6930
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6931
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6932
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6933
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6934
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6935
  { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6936
  { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6937
  { NULL, 0, 0, NULL }
6938
};
6939
6940
static unsigned
6941
1
dissect_h225_LocationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6942
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6943
1
                                   ett_h225_LocationConfirm, LocationConfirm_sequence);
6944
6945
1
  return offset;
6946
1
}
6947
6948
6949
const value_string LocationRejectReason_vals[] = {
6950
  {   0, "notRegistered" },
6951
  {   1, "invalidPermission" },
6952
  {   2, "requestDenied" },
6953
  {   3, "undefinedReason" },
6954
  {   4, "securityDenial" },
6955
  {   5, "aliasesInconsistent" },
6956
  {   6, "routeCalltoSCN" },
6957
  {   7, "resourceUnavailable" },
6958
  {   8, "genericDataReason" },
6959
  {   9, "neededFeatureNotSupported" },
6960
  {  10, "hopCountExceeded" },
6961
  {  11, "incompleteAddress" },
6962
  {  12, "securityError" },
6963
  {  13, "securityDHmismatch" },
6964
  {  14, "noRouteToDestination" },
6965
  {  15, "unallocatedNumber" },
6966
  { 0, NULL }
6967
};
6968
6969
static const per_choice_t LocationRejectReason_choice[] = {
6970
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6971
  {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6972
  {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6973
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6974
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6975
  {   5, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6976
  {   6, &hf_h225_routeCalltoSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6977
  {   7, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6978
  {   8, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6979
  {   9, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6980
  {  10, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6981
  {  11, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6982
  {  12, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6983
  {  13, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6984
  {  14, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6985
  {  15, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6986
  { 0, NULL, 0, NULL }
6987
};
6988
6989
static unsigned
6990
4
dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6991
4
  int32_t value;
6992
4
  h225_packet_info* h225_pi;
6993
4
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6994
6995
4
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6996
4
                                 ett_h225_LocationRejectReason, LocationRejectReason_choice,
6997
4
                                 &value);
6998
6999
4
  if (h225_pi != NULL) {
7000
4
    h225_pi->reason = value;
7001
4
  }
7002
7003
4
  return offset;
7004
4
}
7005
7006
7007
static const per_sequence_t LocationReject_sequence[] = {
7008
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7009
  { &hf_h225_locationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_LocationRejectReason },
7010
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7011
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7012
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7013
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7014
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7015
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7016
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7017
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
7018
  { NULL, 0, 0, NULL }
7019
};
7020
7021
static unsigned
7022
4
dissect_h225_LocationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7023
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7024
4
                                   ett_h225_LocationReject, LocationReject_sequence);
7025
7026
4
  return offset;
7027
4
}
7028
7029
7030
static const per_sequence_t InfoRequest_sequence[] = {
7031
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7032
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7033
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7034
  { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
7035
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7036
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7037
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7038
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7039
  { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UUIEsRequested },
7040
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7041
  { &hf_h225_usageInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
7042
  { &hf_h225_segmentedResponseSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7043
  { &hf_h225_nextSegmentRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_0_65535 },
7044
  { &hf_h225_capacityInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7045
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7046
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
7047
  { NULL, 0, 0, NULL }
7048
};
7049
7050
static unsigned
7051
2
dissect_h225_InfoRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7052
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7053
2
                                   ett_h225_InfoRequest, InfoRequest_sequence);
7054
7055
2
  return offset;
7056
2
}
7057
7058
7059
static const per_sequence_t SEQUENCE_OF_RTPSession_sequence_of[1] = {
7060
  { &hf_h225_audio_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RTPSession },
7061
};
7062
7063
static unsigned
7064
75
dissect_h225_SEQUENCE_OF_RTPSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7065
75
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7066
75
                                      ett_h225_SEQUENCE_OF_RTPSession, SEQUENCE_OF_RTPSession_sequence_of);
7067
7068
75
  return offset;
7069
75
}
7070
7071
7072
static const per_sequence_t SEQUENCE_OF_TransportChannelInfo_sequence_of[1] = {
7073
  { &hf_h225_data_item      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7074
};
7075
7076
static unsigned
7077
62
dissect_h225_SEQUENCE_OF_TransportChannelInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7078
62
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7079
62
                                      ett_h225_SEQUENCE_OF_TransportChannelInfo, SEQUENCE_OF_TransportChannelInfo_sequence_of);
7080
7081
62
  return offset;
7082
62
}
7083
7084
7085
static const per_sequence_t SEQUENCE_OF_ConferenceIdentifier_sequence_of[1] = {
7086
  { &hf_h225_substituteConfIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7087
};
7088
7089
static unsigned
7090
1
dissect_h225_SEQUENCE_OF_ConferenceIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7091
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7092
1
                                      ett_h225_SEQUENCE_OF_ConferenceIdentifier, SEQUENCE_OF_ConferenceIdentifier_sequence_of);
7093
7094
1
  return offset;
7095
1
}
7096
7097
7098
static const per_sequence_t T_pdu_item_sequence[] = {
7099
  { &hf_h225_h323pdu        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
7100
  { &hf_h225_sent           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7101
  { NULL, 0, 0, NULL }
7102
};
7103
7104
static unsigned
7105
59
dissect_h225_T_pdu_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7106
59
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7107
59
                                   ett_h225_T_pdu_item, T_pdu_item_sequence);
7108
7109
59
  return offset;
7110
59
}
7111
7112
7113
static const per_sequence_t T_pdu_sequence_of[1] = {
7114
  { &hf_h225_pdu_item       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_pdu_item },
7115
};
7116
7117
static unsigned
7118
34
dissect_h225_T_pdu(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7119
34
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7120
34
                                      ett_h225_T_pdu, T_pdu_sequence_of);
7121
7122
34
  return offset;
7123
34
}
7124
7125
7126
static const per_sequence_t T_perCallInfo_item_sequence[] = {
7127
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7128
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7129
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7130
  { &hf_h225_originator     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
7131
  { &hf_h225_audio          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7132
  { &hf_h225_video          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7133
  { &hf_h225_data           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportChannelInfo },
7134
  { &hf_h225_h245           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7135
  { &hf_h225_callSignalling , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7136
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
7137
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
7138
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
7139
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7140
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7141
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7142
  { &hf_h225_substituteConfIDs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ConferenceIdentifier },
7143
  { &hf_h225_pdu            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_pdu },
7144
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7145
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
7146
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
7147
  { NULL, 0, 0, NULL }
7148
};
7149
7150
static unsigned
7151
133
dissect_h225_T_perCallInfo_item(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7152
133
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7153
133
                                   ett_h225_T_perCallInfo_item, T_perCallInfo_item_sequence);
7154
7155
133
  return offset;
7156
133
}
7157
7158
7159
static const per_sequence_t T_perCallInfo_sequence_of[1] = {
7160
  { &hf_h225_perCallInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_perCallInfo_item },
7161
};
7162
7163
static unsigned
7164
61
dissect_h225_T_perCallInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7165
61
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7166
61
                                      ett_h225_T_perCallInfo, T_perCallInfo_sequence_of);
7167
7168
61
  return offset;
7169
61
}
7170
7171
7172
static const value_string h225_InfoRequestResponseStatus_vals[] = {
7173
  {   0, "complete" },
7174
  {   1, "incomplete" },
7175
  {   2, "segment" },
7176
  {   3, "invalidCall" },
7177
  { 0, NULL }
7178
};
7179
7180
static const per_choice_t InfoRequestResponseStatus_choice[] = {
7181
  {   0, &hf_h225_complete       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7182
  {   1, &hf_h225_incomplete     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7183
  {   2, &hf_h225_segment        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
7184
  {   3, &hf_h225_invalidCall    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7185
  { 0, NULL, 0, NULL }
7186
};
7187
7188
static unsigned
7189
0
dissect_h225_InfoRequestResponseStatus(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7190
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7191
0
                                 ett_h225_InfoRequestResponseStatus, InfoRequestResponseStatus_choice,
7192
0
                                 NULL);
7193
7194
0
  return offset;
7195
0
}
7196
7197
7198
static const per_sequence_t InfoRequestResponse_sequence[] = {
7199
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7200
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7201
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
7202
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7203
  { &hf_h225_infoRequestResponse_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
7204
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
7205
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
7206
  { &hf_h225_perCallInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_perCallInfo },
7207
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7208
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7209
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7210
  { &hf_h225_needResponse   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7211
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7212
  { &hf_h225_irrStatus      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_InfoRequestResponseStatus },
7213
  { &hf_h225_unsolicited    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7214
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7215
  { NULL, 0, 0, NULL }
7216
};
7217
7218
static unsigned
7219
86
dissect_h225_InfoRequestResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7220
86
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7221
86
                                   ett_h225_InfoRequestResponse, InfoRequestResponse_sequence);
7222
7223
86
  return offset;
7224
86
}
7225
7226
7227
static const per_sequence_t NonStandardMessage_sequence[] = {
7228
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7229
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
7230
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7231
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7232
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7233
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7234
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7235
  { NULL, 0, 0, NULL }
7236
};
7237
7238
static unsigned
7239
1
dissect_h225_NonStandardMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7240
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7241
1
                                   ett_h225_NonStandardMessage, NonStandardMessage_sequence);
7242
7243
1
  return offset;
7244
1
}
7245
7246
7247
static const per_sequence_t UnknownMessageResponse_sequence[] = {
7248
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7249
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7250
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7251
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7252
  { &hf_h225_messageNotUnderstood, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING },
7253
  { NULL, 0, 0, NULL }
7254
};
7255
7256
static unsigned
7257
4
dissect_h225_UnknownMessageResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7258
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7259
4
                                   ett_h225_UnknownMessageResponse, UnknownMessageResponse_sequence);
7260
7261
4
  return offset;
7262
4
}
7263
7264
7265
static const per_sequence_t RequestInProgress_sequence[] = {
7266
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7267
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7268
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7269
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7270
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7271
  { &hf_h225_delay          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_65535 },
7272
  { NULL, 0, 0, NULL }
7273
};
7274
7275
static unsigned
7276
11
dissect_h225_RequestInProgress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7277
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7278
11
                                   ett_h225_RequestInProgress, RequestInProgress_sequence);
7279
7280
11
  return offset;
7281
11
}
7282
7283
7284
static const per_sequence_t ResourcesAvailableIndicate_sequence[] = {
7285
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7286
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7287
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7288
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7289
  { &hf_h225_protocols      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedProtocols },
7290
  { &hf_h225_almostOutOfResources, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7291
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7292
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7293
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7294
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7295
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7296
  { NULL, 0, 0, NULL }
7297
};
7298
7299
static unsigned
7300
4
dissect_h225_ResourcesAvailableIndicate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7301
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7302
4
                                   ett_h225_ResourcesAvailableIndicate, ResourcesAvailableIndicate_sequence);
7303
7304
4
  return offset;
7305
4
}
7306
7307
7308
static const per_sequence_t ResourcesAvailableConfirm_sequence[] = {
7309
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7310
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7311
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7312
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7313
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7314
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7315
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7316
  { NULL, 0, 0, NULL }
7317
};
7318
7319
static unsigned
7320
1
dissect_h225_ResourcesAvailableConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7321
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7322
1
                                   ett_h225_ResourcesAvailableConfirm, ResourcesAvailableConfirm_sequence);
7323
7324
1
  return offset;
7325
1
}
7326
7327
7328
static const per_sequence_t InfoRequestAck_sequence[] = {
7329
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7330
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7331
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7332
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7333
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7334
  { NULL, 0, 0, NULL }
7335
};
7336
7337
static unsigned
7338
1
dissect_h225_InfoRequestAck(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7339
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7340
1
                                   ett_h225_InfoRequestAck, InfoRequestAck_sequence);
7341
7342
1
  return offset;
7343
1
}
7344
7345
7346
const value_string InfoRequestNakReason_vals[] = {
7347
  {   0, "notRegistered" },
7348
  {   1, "securityDenial" },
7349
  {   2, "undefinedReason" },
7350
  {   3, "securityError" },
7351
  { 0, NULL }
7352
};
7353
7354
static const per_choice_t InfoRequestNakReason_choice[] = {
7355
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7356
  {   1, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7357
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7358
  {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
7359
  { 0, NULL, 0, NULL }
7360
};
7361
7362
static unsigned
7363
1
dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7364
1
  int32_t value;
7365
1
  h225_packet_info* h225_pi;
7366
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7367
7368
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7369
1
                                 ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice,
7370
1
                                 &value);
7371
7372
1
  if (h225_pi != NULL) {
7373
1
    h225_pi->reason = value;
7374
1
  }
7375
7376
1
  return offset;
7377
1
}
7378
7379
7380
static const per_sequence_t InfoRequestNak_sequence[] = {
7381
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7382
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7383
  { &hf_h225_nakReason      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_InfoRequestNakReason },
7384
  { &hf_h225_altGKInfo      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7385
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7386
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7387
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7388
  { NULL, 0, 0, NULL }
7389
};
7390
7391
static unsigned
7392
1
dissect_h225_InfoRequestNak(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7393
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7394
1
                                   ett_h225_InfoRequestNak, InfoRequestNak_sequence);
7395
7396
1
  return offset;
7397
1
}
7398
7399
7400
static const per_sequence_t T_callSpecific_sequence[] = {
7401
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7402
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7403
  { &hf_h225_answeredCall   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7404
  { NULL, 0, 0, NULL }
7405
};
7406
7407
static unsigned
7408
1
dissect_h225_T_callSpecific(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7409
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7410
1
                                   ett_h225_T_callSpecific, T_callSpecific_sequence);
7411
7412
1
  return offset;
7413
1
}
7414
7415
7416
static const per_sequence_t ServiceControlIndication_sequence[] = {
7417
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7418
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7419
  { &hf_h225_serviceControl , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ServiceControlSession },
7420
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
7421
  { &hf_h225_callSpecific   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_callSpecific },
7422
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7423
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7424
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7425
  { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7426
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7427
  { NULL, 0, 0, NULL }
7428
};
7429
7430
static unsigned
7431
10
dissect_h225_ServiceControlIndication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7432
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7433
10
                                   ett_h225_ServiceControlIndication, ServiceControlIndication_sequence);
7434
7435
10
  return offset;
7436
10
}
7437
7438
7439
static const value_string h225_T_result_vals[] = {
7440
  {   0, "started" },
7441
  {   1, "failed" },
7442
  {   2, "stopped" },
7443
  {   3, "notAvailable" },
7444
  {   4, "neededFeatureNotSupported" },
7445
  { 0, NULL }
7446
};
7447
7448
static const per_choice_t T_result_choice[] = {
7449
  {   0, &hf_h225_started        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7450
  {   1, &hf_h225_failed         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7451
  {   2, &hf_h225_stopped        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7452
  {   3, &hf_h225_notAvailable   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7453
  {   4, &hf_h225_neededFeatureNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7454
  { 0, NULL, 0, NULL }
7455
};
7456
7457
static unsigned
7458
1
dissect_h225_T_result(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7459
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7460
1
                                 ett_h225_T_result, T_result_choice,
7461
1
                                 NULL);
7462
7463
1
  return offset;
7464
1
}
7465
7466
7467
static const per_sequence_t ServiceControlResponse_sequence[] = {
7468
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7469
  { &hf_h225_result         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_result },
7470
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7471
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7472
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7473
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7474
  { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7475
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7476
  { NULL, 0, 0, NULL }
7477
};
7478
7479
static unsigned
7480
7
dissect_h225_ServiceControlResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7481
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7482
7
                                   ett_h225_ServiceControlResponse, ServiceControlResponse_sequence);
7483
7484
7
  return offset;
7485
7
}
7486
7487
7488
static const per_sequence_t SEQUENCE_OF_AdmissionConfirm_sequence_of[1] = {
7489
  { &hf_h225_admissionConfirmSequence_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionConfirm },
7490
};
7491
7492
static unsigned
7493
13
dissect_h225_SEQUENCE_OF_AdmissionConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7494
13
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7495
13
                                      ett_h225_SEQUENCE_OF_AdmissionConfirm, SEQUENCE_OF_AdmissionConfirm_sequence_of);
7496
7497
13
  return offset;
7498
13
}
7499
7500
7501
const value_string h225_RasMessage_vals[] = {
7502
  {   0, "gatekeeperRequest" },
7503
  {   1, "gatekeeperConfirm" },
7504
  {   2, "gatekeeperReject" },
7505
  {   3, "registrationRequest" },
7506
  {   4, "registrationConfirm" },
7507
  {   5, "registrationReject" },
7508
  {   6, "unregistrationRequest" },
7509
  {   7, "unregistrationConfirm" },
7510
  {   8, "unregistrationReject" },
7511
  {   9, "admissionRequest" },
7512
  {  10, "admissionConfirm" },
7513
  {  11, "admissionReject" },
7514
  {  12, "bandwidthRequest" },
7515
  {  13, "bandwidthConfirm" },
7516
  {  14, "bandwidthReject" },
7517
  {  15, "disengageRequest" },
7518
  {  16, "disengageConfirm" },
7519
  {  17, "disengageReject" },
7520
  {  18, "locationRequest" },
7521
  {  19, "locationConfirm" },
7522
  {  20, "locationReject" },
7523
  {  21, "infoRequest" },
7524
  {  22, "infoRequestResponse" },
7525
  {  23, "nonStandardMessage" },
7526
  {  24, "unknownMessageResponse" },
7527
  {  25, "requestInProgress" },
7528
  {  26, "resourcesAvailableIndicate" },
7529
  {  27, "resourcesAvailableConfirm" },
7530
  {  28, "infoRequestAck" },
7531
  {  29, "infoRequestNak" },
7532
  {  30, "serviceControlIndication" },
7533
  {  31, "serviceControlResponse" },
7534
  {  32, "admissionConfirmSequence" },
7535
  { 0, NULL }
7536
};
7537
7538
static const per_choice_t RasMessage_choice[] = {
7539
  {   0, &hf_h225_gatekeeperRequest, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperRequest },
7540
  {   1, &hf_h225_gatekeeperConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperConfirm },
7541
  {   2, &hf_h225_gatekeeperReject, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperReject },
7542
  {   3, &hf_h225_registrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationRequest },
7543
  {   4, &hf_h225_registrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationConfirm },
7544
  {   5, &hf_h225_registrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationReject },
7545
  {   6, &hf_h225_unregistrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationRequest },
7546
  {   7, &hf_h225_unregistrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationConfirm },
7547
  {   8, &hf_h225_unregistrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationReject },
7548
  {   9, &hf_h225_admissionRequest, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionRequest },
7549
  {  10, &hf_h225_admissionConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionConfirm },
7550
  {  11, &hf_h225_admissionReject, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionReject },
7551
  {  12, &hf_h225_bandwidthRequest, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthRequest },
7552
  {  13, &hf_h225_bandwidthConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthConfirm },
7553
  {  14, &hf_h225_bandwidthReject, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthReject },
7554
  {  15, &hf_h225_disengageRequest, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageRequest },
7555
  {  16, &hf_h225_disengageConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageConfirm },
7556
  {  17, &hf_h225_disengageReject, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageReject },
7557
  {  18, &hf_h225_locationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_LocationRequest },
7558
  {  19, &hf_h225_locationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_LocationConfirm },
7559
  {  20, &hf_h225_locationReject , ASN1_EXTENSION_ROOT    , dissect_h225_LocationReject },
7560
  {  21, &hf_h225_infoRequest    , ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequest },
7561
  {  22, &hf_h225_infoRequestResponse, ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequestResponse },
7562
  {  23, &hf_h225_nonStandardMessage, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardMessage },
7563
  {  24, &hf_h225_unknownMessageResponse, ASN1_EXTENSION_ROOT    , dissect_h225_UnknownMessageResponse },
7564
  {  25, &hf_h225_requestInProgress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_RequestInProgress },
7565
  {  26, &hf_h225_resourcesAvailableIndicate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableIndicate },
7566
  {  27, &hf_h225_resourcesAvailableConfirm, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableConfirm },
7567
  {  28, &hf_h225_infoRequestAck , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestAck },
7568
  {  29, &hf_h225_infoRequestNak , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestNak },
7569
  {  30, &hf_h225_serviceControlIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlIndication },
7570
  {  31, &hf_h225_serviceControlResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlResponse },
7571
  {  32, &hf_h225_admissionConfirmSequence, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_AdmissionConfirm },
7572
  { 0, NULL, 0, NULL }
7573
};
7574
7575
unsigned
7576
308
dissect_h225_RasMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7577
308
    int32_t rasmessage_value;
7578
308
    h225_packet_info* h225_pi;
7579
7580
308
  call_id_guid = NULL;
7581
308
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7582
308
                                 ett_h225_RasMessage, RasMessage_choice,
7583
308
                                 &rasmessage_value);
7584
7585
308
  col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %s ",
7586
308
    val_to_str_const(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
7587
7588
308
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7589
308
  if (h225_pi != NULL) {
7590
18
    h225_pi->msg_tag = rasmessage_value;
7591
18
    if (call_id_guid) {
7592
0
      h225_pi->guid = *call_id_guid;
7593
0
    }
7594
18
  }
7595
7596
308
  return offset;
7597
308
}
7598
7599
/*--- PDUs ---*/
7600
7601
2
static int dissect_H323_UserInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7602
2
  unsigned offset = 0;
7603
2
  asn1_ctx_t asn1_ctx;
7604
2
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7605
2
  offset = dissect_h225_H323_UserInformation(tvb, offset, &asn1_ctx, tree, hf_h225_H323_UserInformation_PDU);
7606
2
  offset += 7; offset >>= 3;
7607
2
  return offset;
7608
2
}
7609
0
int dissect_h225_ExtendedAliasAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7610
0
  unsigned offset = 0;
7611
0
  asn1_ctx_t asn1_ctx;
7612
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7613
0
  offset = dissect_h225_ExtendedAliasAddress(tvb, offset, &asn1_ctx, tree, hf_h225_h225_ExtendedAliasAddress_PDU);
7614
0
  offset += 7; offset >>= 3;
7615
0
  return offset;
7616
0
}
7617
308
static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7618
308
  unsigned offset = 0;
7619
308
  asn1_ctx_t asn1_ctx;
7620
308
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7621
308
  offset = dissect_h225_RasMessage(tvb, offset, &asn1_ctx, tree, hf_h225_RasMessage_PDU);
7622
308
  offset += 7; offset >>= 3;
7623
308
  return offset;
7624
308
}
7625
7626
7627
/* Forward declaration we need below */
7628
void proto_reg_handoff_h225(void);
7629
7630
/*
7631
 * Functions needed for Ras-Hash-Table
7632
 */
7633
7634
/* compare 2 keys */
7635
static int h225ras_call_equal(const void *k1, const void *k2)
7636
3
{
7637
3
  const h225ras_call_info_key* key1 = (const h225ras_call_info_key*) k1;
7638
3
  const h225ras_call_info_key* key2 = (const h225ras_call_info_key*) k2;
7639
7640
3
  return (key1->reqSeqNum == key2->reqSeqNum &&
7641
3
          key1->conversation == key2->conversation);
7642
3
}
7643
7644
/* calculate a hash key */
7645
static unsigned h225ras_call_hash(const void *k)
7646
12
{
7647
12
  const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
7648
7649
12
  return key->reqSeqNum + GPOINTER_TO_UINT(key->conversation);
7650
12
}
7651
7652
7653
h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category)
7654
14
{
7655
14
  h225ras_call_t *h225ras_call = (h225ras_call_t *)wmem_map_lookup(ras_calls[category], h225ras_call_key);
7656
7657
14
  return h225ras_call;
7658
14
}
7659
7660
h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category)
7661
7
{
7662
7
  h225ras_call_info_key *new_h225ras_call_key;
7663
7
  h225ras_call_t *h225ras_call = NULL;
7664
7665
7666
  /* Prepare the value data.
7667
     "req_num" and "rsp_num" are frame numbers;
7668
     frame numbers are 1-origin, so we use 0
7669
     to mean "we don't yet know in which frame
7670
     the reply for this call appears". */
7671
7
  new_h225ras_call_key = wmem_new(wmem_file_scope(), h225ras_call_info_key);
7672
7
  new_h225ras_call_key->reqSeqNum = h225ras_call_key->reqSeqNum;
7673
7
  new_h225ras_call_key->conversation = h225ras_call_key->conversation;
7674
7
  h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7675
7
  h225ras_call->req_num = pinfo->num;
7676
7
  h225ras_call->rsp_num = 0;
7677
7
  h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
7678
7
  h225ras_call->responded = false;
7679
7
  h225ras_call->next_call = NULL;
7680
7
  h225ras_call->req_time=pinfo->abs_ts;
7681
7
  h225ras_call->guid=*guid;
7682
  /* store it */
7683
7
  wmem_map_insert(ras_calls[category], new_h225ras_call_key, h225ras_call);
7684
7685
7
  return h225ras_call;
7686
7
}
7687
7688
h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category _U_)
7689
0
{
7690
0
  h225ras_call_t *h225ras_call = NULL;
7691
7692
  /* Prepare the value data.
7693
     "req_num" and "rsp_num" are frame numbers;
7694
     frame numbers are 1-origin, so we use 0
7695
     to mean "we don't yet know in which frame
7696
     the reply for this call appears". */
7697
0
  h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7698
0
  h225ras_call->req_num = pinfo->num;
7699
0
  h225ras_call->rsp_num = 0;
7700
0
  h225ras_call->requestSeqNum = prev_call->requestSeqNum;
7701
0
  h225ras_call->responded = false;
7702
0
  h225ras_call->next_call = NULL;
7703
0
  h225ras_call->req_time=pinfo->abs_ts;
7704
0
  h225ras_call->guid=*guid;
7705
7706
0
  prev_call->next_call = h225ras_call;
7707
0
  return h225ras_call;
7708
0
}
7709
7710
static void
7711
h225_frame_end(void)
7712
310
{
7713
  /* next_tvb pointers are allocated in packet scope, clear it. */
7714
310
  h245_list = NULL;
7715
310
  tp_list = NULL;
7716
310
}
7717
7718
static int
7719
dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7720
2
{
7721
2
  proto_item *it;
7722
2
  proto_tree *tr;
7723
2
  int offset = 0;
7724
2
  h225_packet_info* h225_pi;
7725
7726
  /* Init struct for collecting h225_packet_info */
7727
2
  h225_pi = create_h225_packet_info(pinfo);
7728
2
  h225_pi->msg_type = H225_CS;
7729
2
  p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7730
7731
2
  register_frame_end_routine(pinfo, h225_frame_end);
7732
2
  h245_list = next_tvb_list_new(pinfo->pool);
7733
2
  tp_list = next_tvb_list_new(pinfo->pool);
7734
7735
2
  col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
7736
2
  col_clear(pinfo->cinfo, COL_INFO);
7737
7738
2
  it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, -1, "H.225.0 CS");
7739
2
  tr=proto_item_add_subtree(it, ett_h225);
7740
7741
2
  offset = dissect_H323_UserInformation_PDU(tvb, pinfo, tr, NULL);
7742
7743
2
  if (h245_list->count){
7744
0
    col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
7745
0
    col_set_fence(pinfo->cinfo, COL_PROTOCOL);
7746
0
  }
7747
7748
2
  next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7749
2
  next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7750
7751
2
  tap_queue_packet(h225_tap, pinfo, h225_pi);
7752
7753
2
  return offset;
7754
2
}
7755
static int
7756
308
dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_){
7757
308
  proto_item *it;
7758
308
  proto_tree *tr;
7759
308
  uint32_t offset=0;
7760
308
  h225_packet_info* h225_pi;
7761
7762
  /* Init struct for collecting h225_packet_info */
7763
308
  h225_pi = create_h225_packet_info(pinfo);
7764
308
  h225_pi->msg_type = H225_RAS;
7765
308
  p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7766
7767
308
  register_frame_end_routine(pinfo, h225_frame_end);
7768
308
  h245_list = next_tvb_list_new(pinfo->pool);
7769
308
  tp_list = next_tvb_list_new(pinfo->pool);
7770
7771
308
  col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
7772
7773
308
  it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, "H.225.0 RAS");
7774
308
  tr=proto_item_add_subtree(it, ett_h225);
7775
7776
308
  offset = dissect_RasMessage_PDU(tvb, pinfo, tr, NULL);
7777
7778
308
  ras_call_matching(tvb, pinfo, tr, h225_pi);
7779
7780
308
  next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7781
308
  next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7782
7783
308
  tap_queue_packet(h225_tap, pinfo, h225_pi);
7784
7785
308
  return offset;
7786
308
}
7787
7788
7789
/* The following values represent the size of their valuestring arrays */
7790
7791
#define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
7792
#define CS_MSG_TYPES array_length(T_h323_message_body_vals)
7793
7794
#define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
7795
#define RRJ_REASONS array_length(RegistrationRejectReason_vals)
7796
#define URQ_REASONS array_length(UnregRequestReason_vals)
7797
#define URJ_REASONS array_length(UnregRejectReason_vals)
7798
#define ARJ_REASONS array_length(AdmissionRejectReason_vals)
7799
#define BRJ_REASONS array_length(BandRejectReason_vals)
7800
#define DRQ_REASONS array_length(DisengageReason_vals)
7801
#define DRJ_REASONS array_length(DisengageRejectReason_vals)
7802
#define LRJ_REASONS array_length(LocationRejectReason_vals)
7803
#define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
7804
#define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
7805
#define FACILITY_REASONS array_length(FacilityReason_vals)
7806
7807
/* TAP STAT INFO */
7808
typedef enum
7809
{
7810
  MESSAGE_TYPE_COLUMN = 0,
7811
  COUNT_COLUMN
7812
} h225_stat_columns;
7813
7814
typedef struct _h225_table_item {
7815
  unsigned count;     /* Message count */
7816
  unsigned table_idx; /* stat_table index */
7817
} h225_table_item_t;
7818
7819
static stat_tap_table_item h225_stat_fields[] = {{TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Message Type or Reason", "%-25s"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", "%d"}};
7820
7821
static unsigned ras_msg_idx[RAS_MSG_TYPES];
7822
static unsigned cs_msg_idx[CS_MSG_TYPES];
7823
7824
static unsigned grj_reason_idx[GRJ_REASONS];
7825
static unsigned rrj_reason_idx[RRJ_REASONS];
7826
static unsigned urq_reason_idx[URQ_REASONS];
7827
static unsigned urj_reason_idx[URJ_REASONS];
7828
static unsigned arj_reason_idx[ARJ_REASONS];
7829
static unsigned brj_reason_idx[BRJ_REASONS];
7830
static unsigned drq_reason_idx[DRQ_REASONS];
7831
static unsigned drj_reason_idx[DRJ_REASONS];
7832
static unsigned lrj_reason_idx[LRJ_REASONS];
7833
static unsigned irqnak_reason_idx[IRQNAK_REASONS];
7834
static unsigned rel_cmp_reason_idx[REL_CMP_REASONS];
7835
static unsigned facility_reason_idx[FACILITY_REASONS];
7836
7837
static unsigned other_idx;
7838
7839
static void h225_stat_init(stat_tap_table_ui* new_stat)
7840
0
{
7841
0
  const char *table_name = "H.225 Messages and Message Reasons";
7842
0
  int num_fields = array_length(h225_stat_fields);
7843
0
  stat_tap_table *table;
7844
0
  int row_idx = 0, msg_idx;
7845
0
  stat_tap_table_item_type items[array_length(h225_stat_fields)];
7846
7847
0
  table = stat_tap_find_table(new_stat, table_name);
7848
0
  if (table) {
7849
0
    if (new_stat->stat_tap_reset_table_cb) {
7850
0
      new_stat->stat_tap_reset_table_cb(table);
7851
0
    }
7852
0
    return;
7853
0
  }
7854
7855
0
  memset(items, 0x0, sizeof(items));
7856
0
  table = stat_tap_init_table(table_name, num_fields, 0, NULL);
7857
0
  stat_tap_add_table(new_stat, table);
7858
7859
0
  items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
7860
0
  items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
7861
0
  items[COUNT_COLUMN].value.uint_value = 0;
7862
7863
  /* Add a row for each value type */
7864
7865
0
  msg_idx = 0;
7866
0
  do
7867
0
  {
7868
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7869
0
      h225_RasMessage_vals[msg_idx].strptr
7870
0
      ? h225_RasMessage_vals[msg_idx].strptr
7871
0
      : "Unknown RAS message";
7872
0
    ras_msg_idx[msg_idx] = row_idx;
7873
7874
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7875
0
    row_idx++;
7876
0
    msg_idx++;
7877
0
  } while (h225_RasMessage_vals[msg_idx].strptr);
7878
7879
0
  msg_idx = 0;
7880
0
  do
7881
0
  {
7882
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7883
0
      T_h323_message_body_vals[msg_idx].strptr
7884
0
      ? T_h323_message_body_vals[msg_idx].strptr
7885
0
      : "Unknown CS message";
7886
0
    cs_msg_idx[msg_idx] = row_idx;
7887
7888
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7889
0
    row_idx++;
7890
0
    msg_idx++;
7891
0
  } while (T_h323_message_body_vals[msg_idx].strptr);
7892
7893
0
  msg_idx = 0;
7894
0
  do
7895
0
  {
7896
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7897
0
      GatekeeperRejectReason_vals[msg_idx].strptr
7898
0
      ? GatekeeperRejectReason_vals[msg_idx].strptr
7899
0
      : "Unknown gatekeeper reject reason";
7900
0
    grj_reason_idx[msg_idx] = row_idx;
7901
7902
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7903
0
    row_idx++;
7904
0
    msg_idx++;
7905
0
  } while (GatekeeperRejectReason_vals[msg_idx].strptr);
7906
7907
0
  msg_idx = 0;
7908
0
  do
7909
0
  {
7910
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7911
0
      RegistrationRejectReason_vals[msg_idx].strptr
7912
0
      ? RegistrationRejectReason_vals[msg_idx].strptr
7913
0
      : "Unknown registration reject reason";
7914
0
    rrj_reason_idx[msg_idx] = row_idx;
7915
7916
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7917
0
    row_idx++;
7918
0
    msg_idx++;
7919
0
  } while (RegistrationRejectReason_vals[msg_idx].strptr);
7920
7921
0
  msg_idx = 0;
7922
0
  do
7923
0
  {
7924
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7925
0
      UnregRequestReason_vals[msg_idx].strptr
7926
0
      ? UnregRequestReason_vals[msg_idx].strptr
7927
0
      : "Unknown unregistration request reason";
7928
0
    urq_reason_idx[msg_idx] = row_idx;
7929
7930
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7931
0
    row_idx++;
7932
0
    msg_idx++;
7933
0
  } while (UnregRequestReason_vals[msg_idx].strptr);
7934
7935
0
  msg_idx = 0;
7936
0
  do
7937
0
  {
7938
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7939
0
      UnregRejectReason_vals[msg_idx].strptr
7940
0
      ? UnregRejectReason_vals[msg_idx].strptr
7941
0
      : "Unknown unregistration reject reason";
7942
0
    urj_reason_idx[msg_idx] = row_idx;
7943
7944
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7945
0
    row_idx++;
7946
0
    msg_idx++;
7947
0
  } while (UnregRejectReason_vals[msg_idx].strptr);
7948
7949
0
  msg_idx = 0;
7950
0
  do
7951
0
  {
7952
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7953
0
      AdmissionRejectReason_vals[msg_idx].strptr
7954
0
      ? AdmissionRejectReason_vals[msg_idx].strptr
7955
0
      : "Unknown admission reject reason";
7956
0
    arj_reason_idx[msg_idx] = row_idx;
7957
7958
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7959
0
    row_idx++;
7960
0
    msg_idx++;
7961
0
  } while (AdmissionRejectReason_vals[msg_idx].strptr);
7962
7963
0
  msg_idx = 0;
7964
0
  do
7965
0
  {
7966
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7967
0
      BandRejectReason_vals[msg_idx].strptr
7968
0
      ? BandRejectReason_vals[msg_idx].strptr
7969
0
      : "Unknown band reject reason";
7970
0
    brj_reason_idx[msg_idx] = row_idx;
7971
7972
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7973
0
    row_idx++;
7974
0
    msg_idx++;
7975
0
  } while (BandRejectReason_vals[msg_idx].strptr);
7976
7977
0
  msg_idx = 0;
7978
0
  do
7979
0
  {
7980
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7981
0
      DisengageReason_vals[msg_idx].strptr
7982
0
      ? DisengageReason_vals[msg_idx].strptr
7983
0
      : "Unknown disengage reason";
7984
0
    drq_reason_idx[msg_idx] = row_idx;
7985
7986
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7987
0
    row_idx++;
7988
0
    msg_idx++;
7989
0
  } while (DisengageReason_vals[msg_idx].strptr);
7990
7991
0
  msg_idx = 0;
7992
0
  do
7993
0
  {
7994
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7995
0
      DisengageRejectReason_vals[msg_idx].strptr
7996
0
      ? DisengageRejectReason_vals[msg_idx].strptr
7997
0
      : "Unknown disengage reject reason";
7998
0
    drj_reason_idx[msg_idx] = row_idx;
7999
8000
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8001
0
    row_idx++;
8002
0
    msg_idx++;
8003
0
  } while (DisengageRejectReason_vals[msg_idx].strptr);
8004
8005
0
  msg_idx = 0;
8006
0
  do
8007
0
  {
8008
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8009
0
      LocationRejectReason_vals[msg_idx].strptr
8010
0
      ? LocationRejectReason_vals[msg_idx].strptr
8011
0
      : "Unknown location reject reason";
8012
0
    lrj_reason_idx[msg_idx] = row_idx;
8013
8014
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8015
0
    row_idx++;
8016
0
    msg_idx++;
8017
0
  } while (LocationRejectReason_vals[msg_idx].strptr);
8018
8019
0
  msg_idx = 0;
8020
0
  do
8021
0
  {
8022
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8023
0
      InfoRequestNakReason_vals[msg_idx].strptr
8024
0
      ? InfoRequestNakReason_vals[msg_idx].strptr
8025
0
      : "Unknown info request nak reason";
8026
0
    irqnak_reason_idx[msg_idx] = row_idx;
8027
8028
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8029
0
    row_idx++;
8030
0
    msg_idx++;
8031
0
  } while (InfoRequestNakReason_vals[msg_idx].strptr);
8032
8033
0
  msg_idx = 0;
8034
0
  do
8035
0
  {
8036
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8037
0
      h225_ReleaseCompleteReason_vals[msg_idx].strptr
8038
0
      ? h225_ReleaseCompleteReason_vals[msg_idx].strptr
8039
0
      : "Unknown release complete reason";
8040
0
    rel_cmp_reason_idx[msg_idx] = row_idx;
8041
8042
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8043
0
    row_idx++;
8044
0
    msg_idx++;
8045
0
  } while (h225_ReleaseCompleteReason_vals[msg_idx].strptr);
8046
8047
0
  msg_idx = 0;
8048
0
  do
8049
0
  {
8050
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8051
0
      FacilityReason_vals[msg_idx].strptr
8052
0
      ? FacilityReason_vals[msg_idx].strptr
8053
0
      : "Unknown facility reason";
8054
0
    facility_reason_idx[msg_idx] = row_idx;
8055
8056
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8057
0
    row_idx++;
8058
0
    msg_idx++;
8059
0
  } while (FacilityReason_vals[msg_idx].strptr);
8060
8061
8062
0
  items[MESSAGE_TYPE_COLUMN].value.string_value = "Unknown H.225 message";
8063
0
  stat_tap_init_table_row(table, row_idx, num_fields, items);
8064
0
  other_idx = row_idx;
8065
0
}
8066
8067
static tap_packet_status
8068
h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *hpi_ptr, tap_flags_t flags _U_)
8069
0
{
8070
0
  stat_data_t* stat_data = (stat_data_t*)tapdata;
8071
0
  const h225_packet_info *hpi = (const h225_packet_info *)hpi_ptr;
8072
0
  int tag_idx = -1;
8073
0
  int reason_idx = -1;
8074
8075
0
  if(hpi->msg_tag < 0) { /* uninitialized */
8076
0
    return TAP_PACKET_DONT_REDRAW;
8077
0
  }
8078
8079
0
  switch (hpi->msg_type) {
8080
8081
0
  case H225_RAS:
8082
0
    tag_idx = ras_msg_idx[MIN(hpi->msg_tag, (int)RAS_MSG_TYPES-1)];
8083
8084
    /* Look for reason tag */
8085
0
    if(hpi->reason < 0) { /* uninitialized */
8086
0
      break;
8087
0
    }
8088
8089
0
    switch(hpi->msg_tag) {
8090
8091
0
    case 2: /* GRJ */
8092
0
      reason_idx = grj_reason_idx[MIN(hpi->reason, (int)GRJ_REASONS-1)];
8093
0
      break;
8094
0
    case 5: /* RRJ */
8095
0
      reason_idx = rrj_reason_idx[MIN(hpi->reason, (int)RRJ_REASONS-1)];
8096
0
      break;
8097
0
    case 6: /* URQ */
8098
0
      reason_idx = urq_reason_idx[MIN(hpi->reason, (int)URQ_REASONS-1)];
8099
0
      break;
8100
0
    case 8: /* URJ */
8101
0
      reason_idx = urj_reason_idx[MIN(hpi->reason, (int)URJ_REASONS-1)];
8102
0
      break;
8103
0
    case 11: /* ARJ */
8104
0
      reason_idx = arj_reason_idx[MIN(hpi->reason, (int)ARJ_REASONS-1)];
8105
0
      break;
8106
0
    case 14: /* BRJ */
8107
0
      reason_idx = brj_reason_idx[MIN(hpi->reason, (int)BRJ_REASONS-1)];
8108
0
      break;
8109
0
    case 15: /* DRQ */
8110
0
      reason_idx = drq_reason_idx[MIN(hpi->reason, (int)DRQ_REASONS-1)];
8111
0
      break;
8112
0
    case 17: /* DRJ */
8113
0
      reason_idx = drj_reason_idx[MIN(hpi->reason, (int)DRJ_REASONS-1)];
8114
0
      break;
8115
0
    case 20: /* LRJ */
8116
0
      reason_idx = lrj_reason_idx[MIN(hpi->reason, (int)LRJ_REASONS-1)];
8117
0
      break;
8118
0
    case 29: /* IRQ Nak */
8119
0
      reason_idx = irqnak_reason_idx[MIN(hpi->reason, (int)IRQNAK_REASONS-1)];
8120
0
      break;
8121
0
    default:
8122
      /* do nothing */
8123
0
      break;
8124
0
    }
8125
8126
0
    break;
8127
8128
0
  case H225_CS:
8129
0
    tag_idx = cs_msg_idx[MIN(hpi->msg_tag, (int)CS_MSG_TYPES-1)];
8130
8131
    /* Look for reason tag */
8132
0
    if(hpi->reason < 0) { /* uninitialized */
8133
0
      break;
8134
0
    }
8135
8136
0
    switch(hpi->msg_tag) {
8137
8138
0
    case 5: /* ReleaseComplete */
8139
0
      reason_idx = rel_cmp_reason_idx[MIN(hpi->reason, (int)REL_CMP_REASONS-1)];
8140
0
      break;
8141
0
    case 6: /* Facility */
8142
0
      reason_idx = facility_reason_idx[MIN(hpi->reason, (int)FACILITY_REASONS-1)];
8143
0
      break;
8144
0
    default:
8145
      /* do nothing */
8146
0
      break;
8147
0
    }
8148
8149
0
    break;
8150
8151
0
  case H225_OTHERS:
8152
0
  default:
8153
0
    tag_idx = other_idx;
8154
0
  }
8155
8156
0
  if (tag_idx >= 0) {
8157
0
    stat_tap_table*table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
8158
0
    stat_tap_table_item_type* msg_data = stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);
8159
0
    msg_data->value.uint_value++;
8160
0
    stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
8161
8162
0
    if (reason_idx >= 0) {
8163
0
      msg_data = stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);
8164
0
      msg_data->value.uint_value++;
8165
0
      stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
8166
0
    }
8167
8168
0
    return TAP_PACKET_REDRAW;
8169
0
  }
8170
0
  return TAP_PACKET_DONT_REDRAW;
8171
0
}
8172
8173
static void
8174
h225_stat_reset(stat_tap_table* table)
8175
0
{
8176
0
  unsigned element;
8177
0
  stat_tap_table_item_type* item_data;
8178
8179
0
  for (element = 0; element < table->num_elements; element++)
8180
0
  {
8181
0
    item_data = stat_tap_get_field_data(table, element, COUNT_COLUMN);
8182
0
    item_data->value.uint_value = 0;
8183
0
    stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
8184
0
  }
8185
0
}
8186
8187
/*--- proto_register_h225 -------------------------------------------*/
8188
14
void proto_register_h225(void) {
8189
8190
  /* List of fields */
8191
14
  static hf_register_info hf[] = {
8192
14
  { &hf_h221Manufacturer,
8193
14
    { "H.225 Manufacturer", "h225.Manufacturer", FT_UINT32, BASE_HEX,
8194
14
    VALS(H221ManufacturerCode_vals), 0, "h225.H.221 Manufacturer", HFILL }},
8195
8196
14
  { &hf_h225_ras_req_frame,
8197
14
    { "RAS Request Frame", "h225.ras.reqframe", FT_FRAMENUM, BASE_NONE,
8198
14
    FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0, NULL, HFILL }},
8199
8200
14
  { &hf_h225_ras_rsp_frame,
8201
14
    { "RAS Response Frame", "h225.ras.rspframe", FT_FRAMENUM, BASE_NONE,
8202
14
    FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0, NULL, HFILL }},
8203
8204
14
  { &hf_h225_ras_dup,
8205
14
    { "Duplicate RAS Message", "h225.ras.dup", FT_UINT32, BASE_DEC,
8206
14
    NULL, 0, NULL, HFILL }},
8207
8208
14
  { &hf_h225_ras_deltatime,
8209
14
    { "RAS Service Response Time", "h225.ras.timedelta", FT_RELATIVE_TIME, BASE_NONE,
8210
14
    NULL, 0, "Timedelta between RAS-Request and RAS-Response", HFILL }},
8211
8212
14
  { &hf_h225_debug_dissector_try_string,
8213
14
    { "*** DEBUG dissector_try_string", "h225.debug.dissector_try_string", FT_STRING, BASE_NONE,
8214
14
    NULL, 0, NULL, HFILL }},
8215
8216
14
    { &hf_h225_H323_UserInformation_PDU,
8217
14
      { "H323-UserInformation", "h225.H323_UserInformation_element",
8218
14
        FT_NONE, BASE_NONE, NULL, 0,
8219
14
        NULL, HFILL }},
8220
14
    { &hf_h225_h225_ExtendedAliasAddress_PDU,
8221
14
      { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8222
14
        FT_NONE, BASE_NONE, NULL, 0,
8223
14
        NULL, HFILL }},
8224
14
    { &hf_h225_RasMessage_PDU,
8225
14
      { "RasMessage", "h225.RasMessage",
8226
14
        FT_UINT32, BASE_DEC, VALS(h225_RasMessage_vals), 0,
8227
14
        NULL, HFILL }},
8228
14
    { &hf_h225_h323_uu_pdu,
8229
14
      { "h323-uu-pdu", "h225.h323_uu_pdu_element",
8230
14
        FT_NONE, BASE_NONE, NULL, 0,
8231
14
        NULL, HFILL }},
8232
14
    { &hf_h225_user_data,
8233
14
      { "user-data", "h225.user_data_element",
8234
14
        FT_NONE, BASE_NONE, NULL, 0,
8235
14
        NULL, HFILL }},
8236
14
    { &hf_h225_protocol_discriminator,
8237
14
      { "protocol-discriminator", "h225.protocol_discriminator",
8238
14
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &q931_protocol_discriminator_vals_ext, 0,
8239
14
        "INTEGER_0_255", HFILL }},
8240
14
    { &hf_h225_user_information,
8241
14
      { "user-information", "h225.user_information",
8242
14
        FT_BYTES, BASE_NONE, NULL, 0,
8243
14
        "OCTET_STRING_SIZE_1_131", HFILL }},
8244
14
    { &hf_h225_h323_message_body,
8245
14
      { "h323-message-body", "h225.h323_message_body",
8246
14
        FT_UINT32, BASE_DEC, VALS(T_h323_message_body_vals), 0,
8247
14
        NULL, HFILL }},
8248
14
    { &hf_h225_setup,
8249
14
      { "setup", "h225.setup_element",
8250
14
        FT_NONE, BASE_NONE, NULL, 0,
8251
14
        "Setup_UUIE", HFILL }},
8252
14
    { &hf_h225_callProceeding,
8253
14
      { "callProceeding", "h225.callProceeding_element",
8254
14
        FT_NONE, BASE_NONE, NULL, 0,
8255
14
        "CallProceeding_UUIE", HFILL }},
8256
14
    { &hf_h225_connect,
8257
14
      { "connect", "h225.connect_element",
8258
14
        FT_NONE, BASE_NONE, NULL, 0,
8259
14
        "Connect_UUIE", HFILL }},
8260
14
    { &hf_h225_alerting,
8261
14
      { "alerting", "h225.alerting_element",
8262
14
        FT_NONE, BASE_NONE, NULL, 0,
8263
14
        "Alerting_UUIE", HFILL }},
8264
14
    { &hf_h225_information,
8265
14
      { "information", "h225.information_element",
8266
14
        FT_NONE, BASE_NONE, NULL, 0,
8267
14
        "Information_UUIE", HFILL }},
8268
14
    { &hf_h225_releaseComplete,
8269
14
      { "releaseComplete", "h225.releaseComplete_element",
8270
14
        FT_NONE, BASE_NONE, NULL, 0,
8271
14
        "ReleaseComplete_UUIE", HFILL }},
8272
14
    { &hf_h225_facility,
8273
14
      { "facility", "h225.facility_element",
8274
14
        FT_NONE, BASE_NONE, NULL, 0,
8275
14
        "Facility_UUIE", HFILL }},
8276
14
    { &hf_h225_progress,
8277
14
      { "progress", "h225.progress_element",
8278
14
        FT_NONE, BASE_NONE, NULL, 0,
8279
14
        "Progress_UUIE", HFILL }},
8280
14
    { &hf_h225_empty_flg,
8281
14
      { "empty", "h225.empty_flg_element",
8282
14
        FT_NONE, BASE_NONE, NULL, 0,
8283
14
        "T_empty_flg", HFILL }},
8284
14
    { &hf_h225_status,
8285
14
      { "status", "h225.status_element",
8286
14
        FT_NONE, BASE_NONE, NULL, 0,
8287
14
        "Status_UUIE", HFILL }},
8288
14
    { &hf_h225_statusInquiry,
8289
14
      { "statusInquiry", "h225.statusInquiry_element",
8290
14
        FT_NONE, BASE_NONE, NULL, 0,
8291
14
        "StatusInquiry_UUIE", HFILL }},
8292
14
    { &hf_h225_setupAcknowledge,
8293
14
      { "setupAcknowledge", "h225.setupAcknowledge_element",
8294
14
        FT_NONE, BASE_NONE, NULL, 0,
8295
14
        "SetupAcknowledge_UUIE", HFILL }},
8296
14
    { &hf_h225_notify,
8297
14
      { "notify", "h225.notify_element",
8298
14
        FT_NONE, BASE_NONE, NULL, 0,
8299
14
        "Notify_UUIE", HFILL }},
8300
14
    { &hf_h225_nonStandardData,
8301
14
      { "nonStandardData", "h225.nonStandardData_element",
8302
14
        FT_NONE, BASE_NONE, NULL, 0,
8303
14
        "NonStandardParameter", HFILL }},
8304
14
    { &hf_h225_h4501SupplementaryService,
8305
14
      { "h4501SupplementaryService", "h225.h4501SupplementaryService",
8306
14
        FT_UINT32, BASE_DEC, NULL, 0,
8307
14
        NULL, HFILL }},
8308
14
    { &hf_h225_h4501SupplementaryService_item,
8309
14
      { "h4501SupplementaryService item", "h225.h4501SupplementaryService_item",
8310
14
        FT_UINT32, BASE_DEC, NULL, 0,
8311
14
        NULL, HFILL }},
8312
14
    { &hf_h225_h245Tunnelling,
8313
14
      { "h245Tunnelling", "h225.h245Tunnelling",
8314
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8315
14
        NULL, HFILL }},
8316
14
    { &hf_h225_H245Control_item,
8317
14
      { "H245Control item", "h225.H245Control_item",
8318
14
        FT_UINT32, BASE_DEC, NULL, 0,
8319
14
        NULL, HFILL }},
8320
14
    { &hf_h225_h245Control,
8321
14
      { "h245Control", "h225.h245Control",
8322
14
        FT_UINT32, BASE_DEC, NULL, 0,
8323
14
        NULL, HFILL }},
8324
14
    { &hf_h225_nonStandardControl,
8325
14
      { "nonStandardControl", "h225.nonStandardControl",
8326
14
        FT_UINT32, BASE_DEC, NULL, 0,
8327
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
8328
14
    { &hf_h225_nonStandardControl_item,
8329
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
8330
14
        FT_NONE, BASE_NONE, NULL, 0,
8331
14
        NULL, HFILL }},
8332
14
    { &hf_h225_callLinkage,
8333
14
      { "callLinkage", "h225.callLinkage_element",
8334
14
        FT_NONE, BASE_NONE, NULL, 0,
8335
14
        NULL, HFILL }},
8336
14
    { &hf_h225_tunnelledSignallingMessage,
8337
14
      { "tunnelledSignallingMessage", "h225.tunnelledSignallingMessage_element",
8338
14
        FT_NONE, BASE_NONE, NULL, 0,
8339
14
        NULL, HFILL }},
8340
14
    { &hf_h225_tunnelledProtocolID,
8341
14
      { "tunnelledProtocolID", "h225.tunnelledProtocolID_element",
8342
14
        FT_NONE, BASE_NONE, NULL, 0,
8343
14
        "TunnelledProtocol", HFILL }},
8344
14
    { &hf_h225_messageContent,
8345
14
      { "messageContent", "h225.messageContent",
8346
14
        FT_UINT32, BASE_DEC, NULL, 0,
8347
14
        NULL, HFILL }},
8348
14
    { &hf_h225_messageContent_item,
8349
14
      { "messageContent item", "h225.messageContent_item",
8350
14
        FT_UINT32, BASE_DEC, NULL, 0,
8351
14
        "T_messageContent_item", HFILL }},
8352
14
    { &hf_h225_tunnellingRequired,
8353
14
      { "tunnellingRequired", "h225.tunnellingRequired_element",
8354
14
        FT_NONE, BASE_NONE, NULL, 0,
8355
14
        NULL, HFILL }},
8356
14
    { &hf_h225_provisionalRespToH245Tunnelling,
8357
14
      { "provisionalRespToH245Tunnelling", "h225.provisionalRespToH245Tunnelling_element",
8358
14
        FT_NONE, BASE_NONE, NULL, 0,
8359
14
        NULL, HFILL }},
8360
14
    { &hf_h225_stimulusControl,
8361
14
      { "stimulusControl", "h225.stimulusControl_element",
8362
14
        FT_NONE, BASE_NONE, NULL, 0,
8363
14
        NULL, HFILL }},
8364
14
    { &hf_h225_genericData,
8365
14
      { "genericData", "h225.genericData",
8366
14
        FT_UINT32, BASE_DEC, NULL, 0,
8367
14
        "SEQUENCE_OF_GenericData", HFILL }},
8368
14
    { &hf_h225_genericData_item,
8369
14
      { "GenericData", "h225.GenericData_element",
8370
14
        FT_NONE, BASE_NONE, NULL, 0,
8371
14
        NULL, HFILL }},
8372
14
    { &hf_h225_nonStandard,
8373
14
      { "nonStandard", "h225.nonStandard_element",
8374
14
        FT_NONE, BASE_NONE, NULL, 0,
8375
14
        "NonStandardParameter", HFILL }},
8376
14
    { &hf_h225_isText,
8377
14
      { "isText", "h225.isText_element",
8378
14
        FT_NONE, BASE_NONE, NULL, 0,
8379
14
        NULL, HFILL }},
8380
14
    { &hf_h225_h248Message,
8381
14
      { "h248Message", "h225.h248Message",
8382
14
        FT_BYTES, BASE_NONE, NULL, 0,
8383
14
        "OCTET_STRING", HFILL }},
8384
14
    { &hf_h225_protocolIdentifier,
8385
14
      { "protocolIdentifier", "h225.protocolIdentifier",
8386
14
        FT_OID, BASE_NONE, NULL, 0,
8387
14
        NULL, HFILL }},
8388
14
    { &hf_h225_uUIE_destinationInfo,
8389
14
      { "destinationInfo", "h225.uUIE_destinationInfo_element",
8390
14
        FT_NONE, BASE_NONE, NULL, 0,
8391
14
        "EndpointType", HFILL }},
8392
14
    { &hf_h225_h245Address,
8393
14
      { "h245Address", "h225.h245Address",
8394
14
        FT_UINT32, BASE_DEC, VALS(h225_H245TransportAddress_vals), 0,
8395
14
        "H245TransportAddress", HFILL }},
8396
14
    { &hf_h225_callIdentifier,
8397
14
      { "callIdentifier", "h225.callIdentifier_element",
8398
14
        FT_NONE, BASE_NONE, NULL, 0,
8399
14
        NULL, HFILL }},
8400
14
    { &hf_h225_h245SecurityMode,
8401
14
      { "h245SecurityMode", "h225.h245SecurityMode",
8402
14
        FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8403
14
        "H245Security", HFILL }},
8404
14
    { &hf_h225_tokens,
8405
14
      { "tokens", "h225.tokens",
8406
14
        FT_UINT32, BASE_DEC, NULL, 0,
8407
14
        "SEQUENCE_OF_ClearToken", HFILL }},
8408
14
    { &hf_h225_tokens_item,
8409
14
      { "ClearToken", "h225.ClearToken_element",
8410
14
        FT_NONE, BASE_NONE, NULL, 0,
8411
14
        NULL, HFILL }},
8412
14
    { &hf_h225_cryptoTokens,
8413
14
      { "cryptoTokens", "h225.cryptoTokens",
8414
14
        FT_UINT32, BASE_DEC, NULL, 0,
8415
14
        "SEQUENCE_OF_CryptoH323Token", HFILL }},
8416
14
    { &hf_h225_cryptoTokens_item,
8417
14
      { "CryptoH323Token", "h225.CryptoH323Token",
8418
14
        FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
8419
14
        NULL, HFILL }},
8420
14
    { &hf_h225_fastStart,
8421
14
      { "fastStart", "h225.fastStart",
8422
14
        FT_UINT32, BASE_DEC, NULL, 0,
8423
14
        NULL, HFILL }},
8424
14
    { &hf_h225_multipleCalls,
8425
14
      { "multipleCalls", "h225.multipleCalls",
8426
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8427
14
        "BOOLEAN", HFILL }},
8428
14
    { &hf_h225_maintainConnection,
8429
14
      { "maintainConnection", "h225.maintainConnection",
8430
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8431
14
        "BOOLEAN", HFILL }},
8432
14
    { &hf_h225_alertingAddress,
8433
14
      { "alertingAddress", "h225.alertingAddress",
8434
14
        FT_UINT32, BASE_DEC, NULL, 0,
8435
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8436
14
    { &hf_h225_alertingAddress_item,
8437
14
      { "AliasAddress", "h225.AliasAddress",
8438
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8439
14
        NULL, HFILL }},
8440
14
    { &hf_h225_presentationIndicator,
8441
14
      { "presentationIndicator", "h225.presentationIndicator",
8442
14
        FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
8443
14
        NULL, HFILL }},
8444
14
    { &hf_h225_screeningIndicator,
8445
14
      { "screeningIndicator", "h225.screeningIndicator",
8446
14
        FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
8447
14
        NULL, HFILL }},
8448
14
    { &hf_h225_fastConnectRefused,
8449
14
      { "fastConnectRefused", "h225.fastConnectRefused_element",
8450
14
        FT_NONE, BASE_NONE, NULL, 0,
8451
14
        NULL, HFILL }},
8452
14
    { &hf_h225_serviceControl,
8453
14
      { "serviceControl", "h225.serviceControl",
8454
14
        FT_UINT32, BASE_DEC, NULL, 0,
8455
14
        "SEQUENCE_OF_ServiceControlSession", HFILL }},
8456
14
    { &hf_h225_serviceControl_item,
8457
14
      { "ServiceControlSession", "h225.ServiceControlSession_element",
8458
14
        FT_NONE, BASE_NONE, NULL, 0,
8459
14
        NULL, HFILL }},
8460
14
    { &hf_h225_capacity,
8461
14
      { "capacity", "h225.capacity_element",
8462
14
        FT_NONE, BASE_NONE, NULL, 0,
8463
14
        "CallCapacity", HFILL }},
8464
14
    { &hf_h225_featureSet,
8465
14
      { "featureSet", "h225.featureSet_element",
8466
14
        FT_NONE, BASE_NONE, NULL, 0,
8467
14
        NULL, HFILL }},
8468
14
    { &hf_h225_displayName,
8469
14
      { "displayName", "h225.displayName",
8470
14
        FT_UINT32, BASE_DEC, NULL, 0,
8471
14
        "SEQUENCE_OF_DisplayName", HFILL }},
8472
14
    { &hf_h225_displayName_item,
8473
14
      { "DisplayName", "h225.DisplayName_element",
8474
14
        FT_NONE, BASE_NONE, NULL, 0,
8475
14
        NULL, HFILL }},
8476
14
    { &hf_h225_conferenceID,
8477
14
      { "conferenceID", "h225.conferenceID",
8478
14
        FT_GUID, BASE_NONE, NULL, 0,
8479
14
        "ConferenceIdentifier", HFILL }},
8480
14
    { &hf_h225_language,
8481
14
      { "language", "h225.language",
8482
14
        FT_UINT32, BASE_DEC, NULL, 0,
8483
14
        NULL, HFILL }},
8484
14
    { &hf_h225_connectedAddress,
8485
14
      { "connectedAddress", "h225.connectedAddress",
8486
14
        FT_UINT32, BASE_DEC, NULL, 0,
8487
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8488
14
    { &hf_h225_connectedAddress_item,
8489
14
      { "AliasAddress", "h225.AliasAddress",
8490
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8491
14
        NULL, HFILL }},
8492
14
    { &hf_h225_circuitInfo,
8493
14
      { "circuitInfo", "h225.circuitInfo_element",
8494
14
        FT_NONE, BASE_NONE, NULL, 0,
8495
14
        NULL, HFILL }},
8496
14
    { &hf_h225_releaseCompleteReason,
8497
14
      { "reason", "h225.releaseCompleteReason",
8498
14
        FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
8499
14
        "ReleaseCompleteReason", HFILL }},
8500
14
    { &hf_h225_busyAddress,
8501
14
      { "busyAddress", "h225.busyAddress",
8502
14
        FT_UINT32, BASE_DEC, NULL, 0,
8503
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8504
14
    { &hf_h225_busyAddress_item,
8505
14
      { "AliasAddress", "h225.AliasAddress",
8506
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8507
14
        NULL, HFILL }},
8508
14
    { &hf_h225_destinationInfo,
8509
14
      { "destinationInfo", "h225.destinationInfo_element",
8510
14
        FT_NONE, BASE_NONE, NULL, 0,
8511
14
        "EndpointType", HFILL }},
8512
14
    { &hf_h225_noBandwidth,
8513
14
      { "noBandwidth", "h225.noBandwidth_element",
8514
14
        FT_NONE, BASE_NONE, NULL, 0,
8515
14
        NULL, HFILL }},
8516
14
    { &hf_h225_gatekeeperResources,
8517
14
      { "gatekeeperResources", "h225.gatekeeperResources_element",
8518
14
        FT_NONE, BASE_NONE, NULL, 0,
8519
14
        NULL, HFILL }},
8520
14
    { &hf_h225_unreachableDestination,
8521
14
      { "unreachableDestination", "h225.unreachableDestination_element",
8522
14
        FT_NONE, BASE_NONE, NULL, 0,
8523
14
        NULL, HFILL }},
8524
14
    { &hf_h225_destinationRejection,
8525
14
      { "destinationRejection", "h225.destinationRejection_element",
8526
14
        FT_NONE, BASE_NONE, NULL, 0,
8527
14
        NULL, HFILL }},
8528
14
    { &hf_h225_invalidRevision,
8529
14
      { "invalidRevision", "h225.invalidRevision_element",
8530
14
        FT_NONE, BASE_NONE, NULL, 0,
8531
14
        NULL, HFILL }},
8532
14
    { &hf_h225_noPermission,
8533
14
      { "noPermission", "h225.noPermission_element",
8534
14
        FT_NONE, BASE_NONE, NULL, 0,
8535
14
        NULL, HFILL }},
8536
14
    { &hf_h225_unreachableGatekeeper,
8537
14
      { "unreachableGatekeeper", "h225.unreachableGatekeeper_element",
8538
14
        FT_NONE, BASE_NONE, NULL, 0,
8539
14
        NULL, HFILL }},
8540
14
    { &hf_h225_gatewayResources,
8541
14
      { "gatewayResources", "h225.gatewayResources_element",
8542
14
        FT_NONE, BASE_NONE, NULL, 0,
8543
14
        NULL, HFILL }},
8544
14
    { &hf_h225_badFormatAddress,
8545
14
      { "badFormatAddress", "h225.badFormatAddress_element",
8546
14
        FT_NONE, BASE_NONE, NULL, 0,
8547
14
        NULL, HFILL }},
8548
14
    { &hf_h225_adaptiveBusy,
8549
14
      { "adaptiveBusy", "h225.adaptiveBusy_element",
8550
14
        FT_NONE, BASE_NONE, NULL, 0,
8551
14
        NULL, HFILL }},
8552
14
    { &hf_h225_inConf,
8553
14
      { "inConf", "h225.inConf_element",
8554
14
        FT_NONE, BASE_NONE, NULL, 0,
8555
14
        NULL, HFILL }},
8556
14
    { &hf_h225_undefinedReason,
8557
14
      { "undefinedReason", "h225.undefinedReason_element",
8558
14
        FT_NONE, BASE_NONE, NULL, 0,
8559
14
        NULL, HFILL }},
8560
14
    { &hf_h225_facilityCallDeflection,
8561
14
      { "facilityCallDeflection", "h225.facilityCallDeflection_element",
8562
14
        FT_NONE, BASE_NONE, NULL, 0,
8563
14
        NULL, HFILL }},
8564
14
    { &hf_h225_securityDenied,
8565
14
      { "securityDenied", "h225.securityDenied_element",
8566
14
        FT_NONE, BASE_NONE, NULL, 0,
8567
14
        NULL, HFILL }},
8568
14
    { &hf_h225_calledPartyNotRegistered,
8569
14
      { "calledPartyNotRegistered", "h225.calledPartyNotRegistered_element",
8570
14
        FT_NONE, BASE_NONE, NULL, 0,
8571
14
        NULL, HFILL }},
8572
14
    { &hf_h225_callerNotRegistered,
8573
14
      { "callerNotRegistered", "h225.callerNotRegistered_element",
8574
14
        FT_NONE, BASE_NONE, NULL, 0,
8575
14
        NULL, HFILL }},
8576
14
    { &hf_h225_newConnectionNeeded,
8577
14
      { "newConnectionNeeded", "h225.newConnectionNeeded_element",
8578
14
        FT_NONE, BASE_NONE, NULL, 0,
8579
14
        NULL, HFILL }},
8580
14
    { &hf_h225_nonStandardReason,
8581
14
      { "nonStandardReason", "h225.nonStandardReason_element",
8582
14
        FT_NONE, BASE_NONE, NULL, 0,
8583
14
        "NonStandardParameter", HFILL }},
8584
14
    { &hf_h225_replaceWithConferenceInvite,
8585
14
      { "replaceWithConferenceInvite", "h225.replaceWithConferenceInvite",
8586
14
        FT_GUID, BASE_NONE, NULL, 0,
8587
14
        "ConferenceIdentifier", HFILL }},
8588
14
    { &hf_h225_genericDataReason,
8589
14
      { "genericDataReason", "h225.genericDataReason_element",
8590
14
        FT_NONE, BASE_NONE, NULL, 0,
8591
14
        NULL, HFILL }},
8592
14
    { &hf_h225_neededFeatureNotSupported,
8593
14
      { "neededFeatureNotSupported", "h225.neededFeatureNotSupported_element",
8594
14
        FT_NONE, BASE_NONE, NULL, 0,
8595
14
        NULL, HFILL }},
8596
14
    { &hf_h225_tunnelledSignallingRejected,
8597
14
      { "tunnelledSignallingRejected", "h225.tunnelledSignallingRejected_element",
8598
14
        FT_NONE, BASE_NONE, NULL, 0,
8599
14
        NULL, HFILL }},
8600
14
    { &hf_h225_invalidCID,
8601
14
      { "invalidCID", "h225.invalidCID_element",
8602
14
        FT_NONE, BASE_NONE, NULL, 0,
8603
14
        NULL, HFILL }},
8604
14
    { &hf_h225_rLC_securityError,
8605
14
      { "securityError", "h225.rLC_securityError",
8606
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
8607
14
        "SecurityErrors", HFILL }},
8608
14
    { &hf_h225_hopCountExceeded,
8609
14
      { "hopCountExceeded", "h225.hopCountExceeded_element",
8610
14
        FT_NONE, BASE_NONE, NULL, 0,
8611
14
        NULL, HFILL }},
8612
14
    { &hf_h225_sourceAddress,
8613
14
      { "sourceAddress", "h225.sourceAddress",
8614
14
        FT_UINT32, BASE_DEC, NULL, 0,
8615
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8616
14
    { &hf_h225_sourceAddress_item,
8617
14
      { "AliasAddress", "h225.AliasAddress",
8618
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8619
14
        NULL, HFILL }},
8620
14
    { &hf_h225_setup_UUIE_sourceInfo,
8621
14
      { "sourceInfo", "h225.setup_UUIE_sourceInfo_element",
8622
14
        FT_NONE, BASE_NONE, NULL, 0,
8623
14
        "EndpointType", HFILL }},
8624
14
    { &hf_h225_destinationAddress,
8625
14
      { "destinationAddress", "h225.destinationAddress",
8626
14
        FT_UINT32, BASE_DEC, NULL, 0,
8627
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8628
14
    { &hf_h225_destinationAddress_item,
8629
14
      { "AliasAddress", "h225.AliasAddress",
8630
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8631
14
        NULL, HFILL }},
8632
14
    { &hf_h225_destCallSignalAddress,
8633
14
      { "destCallSignalAddress", "h225.destCallSignalAddress",
8634
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8635
14
        "TransportAddress", HFILL }},
8636
14
    { &hf_h225_destExtraCallInfo,
8637
14
      { "destExtraCallInfo", "h225.destExtraCallInfo",
8638
14
        FT_UINT32, BASE_DEC, NULL, 0,
8639
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8640
14
    { &hf_h225_destExtraCallInfo_item,
8641
14
      { "AliasAddress", "h225.AliasAddress",
8642
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8643
14
        NULL, HFILL }},
8644
14
    { &hf_h225_destExtraCRV,
8645
14
      { "destExtraCRV", "h225.destExtraCRV",
8646
14
        FT_UINT32, BASE_DEC, NULL, 0,
8647
14
        "SEQUENCE_OF_CallReferenceValue", HFILL }},
8648
14
    { &hf_h225_destExtraCRV_item,
8649
14
      { "CallReferenceValue", "h225.CallReferenceValue",
8650
14
        FT_UINT32, BASE_DEC, NULL, 0,
8651
14
        NULL, HFILL }},
8652
14
    { &hf_h225_activeMC,
8653
14
      { "activeMC", "h225.activeMC",
8654
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8655
14
        "BOOLEAN", HFILL }},
8656
14
    { &hf_h225_conferenceGoal,
8657
14
      { "conferenceGoal", "h225.conferenceGoal",
8658
14
        FT_UINT32, BASE_DEC, VALS(h225_T_conferenceGoal_vals), 0,
8659
14
        NULL, HFILL }},
8660
14
    { &hf_h225_create,
8661
14
      { "create", "h225.create_element",
8662
14
        FT_NONE, BASE_NONE, NULL, 0,
8663
14
        NULL, HFILL }},
8664
14
    { &hf_h225_join,
8665
14
      { "join", "h225.join_element",
8666
14
        FT_NONE, BASE_NONE, NULL, 0,
8667
14
        NULL, HFILL }},
8668
14
    { &hf_h225_invite,
8669
14
      { "invite", "h225.invite_element",
8670
14
        FT_NONE, BASE_NONE, NULL, 0,
8671
14
        NULL, HFILL }},
8672
14
    { &hf_h225_capability_negotiation,
8673
14
      { "capability-negotiation", "h225.capability_negotiation_element",
8674
14
        FT_NONE, BASE_NONE, NULL, 0,
8675
14
        NULL, HFILL }},
8676
14
    { &hf_h225_callIndependentSupplementaryService,
8677
14
      { "callIndependentSupplementaryService", "h225.callIndependentSupplementaryService_element",
8678
14
        FT_NONE, BASE_NONE, NULL, 0,
8679
14
        NULL, HFILL }},
8680
14
    { &hf_h225_callServices,
8681
14
      { "callServices", "h225.callServices_element",
8682
14
        FT_NONE, BASE_NONE, NULL, 0,
8683
14
        "QseriesOptions", HFILL }},
8684
14
    { &hf_h225_callType,
8685
14
      { "callType", "h225.callType",
8686
14
        FT_UINT32, BASE_DEC, VALS(h225_CallType_vals), 0,
8687
14
        NULL, HFILL }},
8688
14
    { &hf_h225_sourceCallSignalAddress,
8689
14
      { "sourceCallSignalAddress", "h225.sourceCallSignalAddress",
8690
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8691
14
        "TransportAddress", HFILL }},
8692
14
    { &hf_h225_uUIE_remoteExtensionAddress,
8693
14
      { "remoteExtensionAddress", "h225.uUIE_remoteExtensionAddress",
8694
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8695
14
        "AliasAddress", HFILL }},
8696
14
    { &hf_h225_h245SecurityCapability,
8697
14
      { "h245SecurityCapability", "h225.h245SecurityCapability",
8698
14
        FT_UINT32, BASE_DEC, NULL, 0,
8699
14
        "SEQUENCE_OF_H245Security", HFILL }},
8700
14
    { &hf_h225_h245SecurityCapability_item,
8701
14
      { "H245Security", "h225.H245Security",
8702
14
        FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8703
14
        NULL, HFILL }},
8704
14
    { &hf_h225_FastStart_item,
8705
14
      { "FastStart item", "h225.FastStart_item",
8706
14
        FT_UINT32, BASE_DEC, NULL, 0,
8707
14
        NULL, HFILL }},
8708
14
    { &hf_h225_mediaWaitForConnect,
8709
14
      { "mediaWaitForConnect", "h225.mediaWaitForConnect",
8710
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8711
14
        "BOOLEAN", HFILL }},
8712
14
    { &hf_h225_canOverlapSend,
8713
14
      { "canOverlapSend", "h225.canOverlapSend",
8714
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8715
14
        "BOOLEAN", HFILL }},
8716
14
    { &hf_h225_endpointIdentifier,
8717
14
      { "endpointIdentifier", "h225.endpointIdentifier",
8718
14
        FT_STRING, BASE_NONE, NULL, 0,
8719
14
        NULL, HFILL }},
8720
14
    { &hf_h225_connectionParameters,
8721
14
      { "connectionParameters", "h225.connectionParameters_element",
8722
14
        FT_NONE, BASE_NONE, NULL, 0,
8723
14
        NULL, HFILL }},
8724
14
    { &hf_h225_connectionType,
8725
14
      { "connectionType", "h225.connectionType",
8726
14
        FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionType_vals), 0,
8727
14
        "ScnConnectionType", HFILL }},
8728
14
    { &hf_h225_numberOfScnConnections,
8729
14
      { "numberOfScnConnections", "h225.numberOfScnConnections",
8730
14
        FT_UINT32, BASE_DEC, NULL, 0,
8731
14
        "INTEGER_0_65535", HFILL }},
8732
14
    { &hf_h225_connectionAggregation,
8733
14
      { "connectionAggregation", "h225.connectionAggregation",
8734
14
        FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0,
8735
14
        "ScnConnectionAggregation", HFILL }},
8736
14
    { &hf_h225_Language_item,
8737
14
      { "Language item", "h225.Language_item",
8738
14
        FT_STRING, BASE_NONE, NULL, 0,
8739
14
        "IA5String_SIZE_1_32", HFILL }},
8740
14
    { &hf_h225_symmetricOperationRequired,
8741
14
      { "symmetricOperationRequired", "h225.symmetricOperationRequired_element",
8742
14
        FT_NONE, BASE_NONE, NULL, 0,
8743
14
        NULL, HFILL }},
8744
14
    { &hf_h225_desiredProtocols,
8745
14
      { "desiredProtocols", "h225.desiredProtocols",
8746
14
        FT_UINT32, BASE_DEC, NULL, 0,
8747
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
8748
14
    { &hf_h225_desiredProtocols_item,
8749
14
      { "SupportedProtocols", "h225.SupportedProtocols",
8750
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
8751
14
        NULL, HFILL }},
8752
14
    { &hf_h225_neededFeatures,
8753
14
      { "neededFeatures", "h225.neededFeatures",
8754
14
        FT_UINT32, BASE_DEC, NULL, 0,
8755
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8756
14
    { &hf_h225_neededFeatures_item,
8757
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8758
14
        FT_NONE, BASE_NONE, NULL, 0,
8759
14
        NULL, HFILL }},
8760
14
    { &hf_h225_desiredFeatures,
8761
14
      { "desiredFeatures", "h225.desiredFeatures",
8762
14
        FT_UINT32, BASE_DEC, NULL, 0,
8763
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8764
14
    { &hf_h225_desiredFeatures_item,
8765
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8766
14
        FT_NONE, BASE_NONE, NULL, 0,
8767
14
        NULL, HFILL }},
8768
14
    { &hf_h225_supportedFeatures,
8769
14
      { "supportedFeatures", "h225.supportedFeatures",
8770
14
        FT_UINT32, BASE_DEC, NULL, 0,
8771
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8772
14
    { &hf_h225_supportedFeatures_item,
8773
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8774
14
        FT_NONE, BASE_NONE, NULL, 0,
8775
14
        NULL, HFILL }},
8776
14
    { &hf_h225_ParallelH245Control_item,
8777
14
      { "ParallelH245Control item", "h225.ParallelH245Control_item",
8778
14
        FT_UINT32, BASE_DEC, NULL, 0,
8779
14
        NULL, HFILL }},
8780
14
    { &hf_h225_parallelH245Control,
8781
14
      { "parallelH245Control", "h225.parallelH245Control",
8782
14
        FT_UINT32, BASE_DEC, NULL, 0,
8783
14
        NULL, HFILL }},
8784
14
    { &hf_h225_additionalSourceAddresses,
8785
14
      { "additionalSourceAddresses", "h225.additionalSourceAddresses",
8786
14
        FT_UINT32, BASE_DEC, NULL, 0,
8787
14
        "SEQUENCE_OF_ExtendedAliasAddress", HFILL }},
8788
14
    { &hf_h225_additionalSourceAddresses_item,
8789
14
      { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8790
14
        FT_NONE, BASE_NONE, NULL, 0,
8791
14
        NULL, HFILL }},
8792
14
    { &hf_h225_hopCount_1_31,
8793
14
      { "hopCount", "h225.hopCount_1_31",
8794
14
        FT_UINT32, BASE_DEC, NULL, 0,
8795
14
        "INTEGER_1_31", HFILL }},
8796
14
    { &hf_h225_unknown,
8797
14
      { "unknown", "h225.unknown_element",
8798
14
        FT_NONE, BASE_NONE, NULL, 0,
8799
14
        NULL, HFILL }},
8800
14
    { &hf_h225_bChannel,
8801
14
      { "bChannel", "h225.bChannel_element",
8802
14
        FT_NONE, BASE_NONE, NULL, 0,
8803
14
        NULL, HFILL }},
8804
14
    { &hf_h225_hybrid2x64,
8805
14
      { "hybrid2x64", "h225.hybrid2x64_element",
8806
14
        FT_NONE, BASE_NONE, NULL, 0,
8807
14
        NULL, HFILL }},
8808
14
    { &hf_h225_hybrid384,
8809
14
      { "hybrid384", "h225.hybrid384_element",
8810
14
        FT_NONE, BASE_NONE, NULL, 0,
8811
14
        NULL, HFILL }},
8812
14
    { &hf_h225_hybrid1536,
8813
14
      { "hybrid1536", "h225.hybrid1536_element",
8814
14
        FT_NONE, BASE_NONE, NULL, 0,
8815
14
        NULL, HFILL }},
8816
14
    { &hf_h225_hybrid1920,
8817
14
      { "hybrid1920", "h225.hybrid1920_element",
8818
14
        FT_NONE, BASE_NONE, NULL, 0,
8819
14
        NULL, HFILL }},
8820
14
    { &hf_h225_multirate,
8821
14
      { "multirate", "h225.multirate_element",
8822
14
        FT_NONE, BASE_NONE, NULL, 0,
8823
14
        NULL, HFILL }},
8824
14
    { &hf_h225_auto,
8825
14
      { "auto", "h225.auto_element",
8826
14
        FT_NONE, BASE_NONE, NULL, 0,
8827
14
        NULL, HFILL }},
8828
14
    { &hf_h225_none,
8829
14
      { "none", "h225.none_element",
8830
14
        FT_NONE, BASE_NONE, NULL, 0,
8831
14
        NULL, HFILL }},
8832
14
    { &hf_h225_h221,
8833
14
      { "h221", "h225.h221_element",
8834
14
        FT_NONE, BASE_NONE, NULL, 0,
8835
14
        NULL, HFILL }},
8836
14
    { &hf_h225_bonded_mode1,
8837
14
      { "bonded-mode1", "h225.bonded_mode1_element",
8838
14
        FT_NONE, BASE_NONE, NULL, 0,
8839
14
        NULL, HFILL }},
8840
14
    { &hf_h225_bonded_mode2,
8841
14
      { "bonded-mode2", "h225.bonded_mode2_element",
8842
14
        FT_NONE, BASE_NONE, NULL, 0,
8843
14
        NULL, HFILL }},
8844
14
    { &hf_h225_bonded_mode3,
8845
14
      { "bonded-mode3", "h225.bonded_mode3_element",
8846
14
        FT_NONE, BASE_NONE, NULL, 0,
8847
14
        NULL, HFILL }},
8848
14
    { &hf_h225_presentationAllowed,
8849
14
      { "presentationAllowed", "h225.presentationAllowed_element",
8850
14
        FT_NONE, BASE_NONE, NULL, 0,
8851
14
        NULL, HFILL }},
8852
14
    { &hf_h225_presentationRestricted,
8853
14
      { "presentationRestricted", "h225.presentationRestricted_element",
8854
14
        FT_NONE, BASE_NONE, NULL, 0,
8855
14
        NULL, HFILL }},
8856
14
    { &hf_h225_addressNotAvailable,
8857
14
      { "addressNotAvailable", "h225.addressNotAvailable_element",
8858
14
        FT_NONE, BASE_NONE, NULL, 0,
8859
14
        NULL, HFILL }},
8860
14
    { &hf_h225_alternativeAddress,
8861
14
      { "alternativeAddress", "h225.alternativeAddress",
8862
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8863
14
        "TransportAddress", HFILL }},
8864
14
    { &hf_h225_alternativeAliasAddress,
8865
14
      { "alternativeAliasAddress", "h225.alternativeAliasAddress",
8866
14
        FT_UINT32, BASE_DEC, NULL, 0,
8867
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8868
14
    { &hf_h225_alternativeAliasAddress_item,
8869
14
      { "AliasAddress", "h225.AliasAddress",
8870
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8871
14
        NULL, HFILL }},
8872
14
    { &hf_h225_facilityReason,
8873
14
      { "reason", "h225.facilityReason",
8874
14
        FT_UINT32, BASE_DEC, VALS(FacilityReason_vals), 0,
8875
14
        "FacilityReason", HFILL }},
8876
14
    { &hf_h225_conferences,
8877
14
      { "conferences", "h225.conferences",
8878
14
        FT_UINT32, BASE_DEC, NULL, 0,
8879
14
        "SEQUENCE_OF_ConferenceList", HFILL }},
8880
14
    { &hf_h225_conferences_item,
8881
14
      { "ConferenceList", "h225.ConferenceList_element",
8882
14
        FT_NONE, BASE_NONE, NULL, 0,
8883
14
        NULL, HFILL }},
8884
14
    { &hf_h225_conferenceAlias,
8885
14
      { "conferenceAlias", "h225.conferenceAlias",
8886
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8887
14
        "AliasAddress", HFILL }},
8888
14
    { &hf_h225_routeCallToGatekeeper,
8889
14
      { "routeCallToGatekeeper", "h225.routeCallToGatekeeper_element",
8890
14
        FT_NONE, BASE_NONE, NULL, 0,
8891
14
        NULL, HFILL }},
8892
14
    { &hf_h225_callForwarded,
8893
14
      { "callForwarded", "h225.callForwarded_element",
8894
14
        FT_NONE, BASE_NONE, NULL, 0,
8895
14
        NULL, HFILL }},
8896
14
    { &hf_h225_routeCallToMC,
8897
14
      { "routeCallToMC", "h225.routeCallToMC_element",
8898
14
        FT_NONE, BASE_NONE, NULL, 0,
8899
14
        NULL, HFILL }},
8900
14
    { &hf_h225_conferenceListChoice,
8901
14
      { "conferenceListChoice", "h225.conferenceListChoice_element",
8902
14
        FT_NONE, BASE_NONE, NULL, 0,
8903
14
        NULL, HFILL }},
8904
14
    { &hf_h225_startH245,
8905
14
      { "startH245", "h225.startH245_element",
8906
14
        FT_NONE, BASE_NONE, NULL, 0,
8907
14
        NULL, HFILL }},
8908
14
    { &hf_h225_noH245,
8909
14
      { "noH245", "h225.noH245_element",
8910
14
        FT_NONE, BASE_NONE, NULL, 0,
8911
14
        NULL, HFILL }},
8912
14
    { &hf_h225_newTokens,
8913
14
      { "newTokens", "h225.newTokens_element",
8914
14
        FT_NONE, BASE_NONE, NULL, 0,
8915
14
        NULL, HFILL }},
8916
14
    { &hf_h225_featureSetUpdate,
8917
14
      { "featureSetUpdate", "h225.featureSetUpdate_element",
8918
14
        FT_NONE, BASE_NONE, NULL, 0,
8919
14
        NULL, HFILL }},
8920
14
    { &hf_h225_forwardedElements,
8921
14
      { "forwardedElements", "h225.forwardedElements_element",
8922
14
        FT_NONE, BASE_NONE, NULL, 0,
8923
14
        NULL, HFILL }},
8924
14
    { &hf_h225_transportedInformation,
8925
14
      { "transportedInformation", "h225.transportedInformation_element",
8926
14
        FT_NONE, BASE_NONE, NULL, 0,
8927
14
        NULL, HFILL }},
8928
14
    { &hf_h225_h245IpAddress,
8929
14
      { "ipAddress", "h225.h245IpAddress_element",
8930
14
        FT_NONE, BASE_NONE, NULL, 0,
8931
14
        "T_h245IpAddress", HFILL }},
8932
14
    { &hf_h225_h245Ip,
8933
14
      { "ip", "h225.h245Ip",
8934
14
        FT_IPv4, BASE_NONE, NULL, 0,
8935
14
        "T_h245Ip", HFILL }},
8936
14
    { &hf_h225_h245IpPort,
8937
14
      { "port", "h225.h245IpPort",
8938
14
        FT_UINT32, BASE_DEC, NULL, 0,
8939
14
        "T_h245IpPort", HFILL }},
8940
14
    { &hf_h225_h245IpSourceRoute,
8941
14
      { "ipSourceRoute", "h225.h245IpSourceRoute_element",
8942
14
        FT_NONE, BASE_NONE, NULL, 0,
8943
14
        "T_h245IpSourceRoute", HFILL }},
8944
14
    { &hf_h225_ip,
8945
14
      { "ip", "h225.ip",
8946
14
        FT_BYTES, BASE_NONE, NULL, 0,
8947
14
        "OCTET_STRING_SIZE_4", HFILL }},
8948
14
    { &hf_h225_port,
8949
14
      { "port", "h225.port",
8950
14
        FT_UINT32, BASE_DEC, NULL, 0,
8951
14
        "INTEGER_0_65535", HFILL }},
8952
14
    { &hf_h225_h245Route,
8953
14
      { "route", "h225.h245Route",
8954
14
        FT_UINT32, BASE_DEC, NULL, 0,
8955
14
        "T_h245Route", HFILL }},
8956
14
    { &hf_h225_h245Route_item,
8957
14
      { "route item", "h225.h245Route_item",
8958
14
        FT_BYTES, BASE_NONE, NULL, 0,
8959
14
        "OCTET_STRING_SIZE_4", HFILL }},
8960
14
    { &hf_h225_h245Routing,
8961
14
      { "routing", "h225.h245Routing",
8962
14
        FT_UINT32, BASE_DEC, VALS(h225_T_h245Routing_vals), 0,
8963
14
        "T_h245Routing", HFILL }},
8964
14
    { &hf_h225_strict,
8965
14
      { "strict", "h225.strict_element",
8966
14
        FT_NONE, BASE_NONE, NULL, 0,
8967
14
        NULL, HFILL }},
8968
14
    { &hf_h225_loose,
8969
14
      { "loose", "h225.loose_element",
8970
14
        FT_NONE, BASE_NONE, NULL, 0,
8971
14
        NULL, HFILL }},
8972
14
    { &hf_h225_h245IpxAddress,
8973
14
      { "ipxAddress", "h225.h245IpxAddress_element",
8974
14
        FT_NONE, BASE_NONE, NULL, 0,
8975
14
        "T_h245IpxAddress", HFILL }},
8976
14
    { &hf_h225_node,
8977
14
      { "node", "h225.node",
8978
14
        FT_BYTES, BASE_NONE, NULL, 0,
8979
14
        "OCTET_STRING_SIZE_6", HFILL }},
8980
14
    { &hf_h225_netnum,
8981
14
      { "netnum", "h225.netnum",
8982
14
        FT_BYTES, BASE_NONE, NULL, 0,
8983
14
        "OCTET_STRING_SIZE_4", HFILL }},
8984
14
    { &hf_h225_h245IpxPort,
8985
14
      { "port", "h225.h245IpxPort",
8986
14
        FT_BYTES, BASE_NONE, NULL, 0,
8987
14
        "OCTET_STRING_SIZE_2", HFILL }},
8988
14
    { &hf_h225_h245Ip6Address,
8989
14
      { "ip6Address", "h225.h245Ip6Address_element",
8990
14
        FT_NONE, BASE_NONE, NULL, 0,
8991
14
        "T_h245Ip6Address", HFILL }},
8992
14
    { &hf_h225_h245Ip6,
8993
14
      { "ip", "h225.h245Ip6",
8994
14
        FT_IPv6, BASE_NONE, NULL, 0,
8995
14
        "T_h245Ip6", HFILL }},
8996
14
    { &hf_h225_h245Ip6port,
8997
14
      { "port", "h225.h245Ip6port",
8998
14
        FT_UINT32, BASE_DEC, NULL, 0,
8999
14
        "T_h245Ip6port", HFILL }},
9000
14
    { &hf_h225_netBios,
9001
14
      { "netBios", "h225.netBios",
9002
14
        FT_BYTES, BASE_NONE, NULL, 0,
9003
14
        "OCTET_STRING_SIZE_16", HFILL }},
9004
14
    { &hf_h225_nsap,
9005
14
      { "nsap", "h225.nsap",
9006
14
        FT_BYTES, BASE_NONE, NULL, 0,
9007
14
        "OCTET_STRING_SIZE_1_20", HFILL }},
9008
14
    { &hf_h225_nonStandardAddress,
9009
14
      { "nonStandardAddress", "h225.nonStandardAddress_element",
9010
14
        FT_NONE, BASE_NONE, NULL, 0,
9011
14
        "NonStandardParameter", HFILL }},
9012
14
    { &hf_h225_ipAddress,
9013
14
      { "ipAddress", "h225.ipAddress_element",
9014
14
        FT_NONE, BASE_NONE, NULL, 0,
9015
14
        NULL, HFILL }},
9016
14
    { &hf_h225_ipV4,
9017
14
      { "ip", "h225.ipV4",
9018
14
        FT_IPv4, BASE_NONE, NULL, 0,
9019
14
        "IpV4", HFILL }},
9020
14
    { &hf_h225_ipV4_port,
9021
14
      { "port", "h225.ipV4_port",
9022
14
        FT_UINT32, BASE_DEC, NULL, 0,
9023
14
        "INTEGER_0_65535", HFILL }},
9024
14
    { &hf_h225_ipSourceRoute,
9025
14
      { "ipSourceRoute", "h225.ipSourceRoute_element",
9026
14
        FT_NONE, BASE_NONE, NULL, 0,
9027
14
        NULL, HFILL }},
9028
14
    { &hf_h225_src_route_ipV4,
9029
14
      { "ip", "h225.src_route_ipV4",
9030
14
        FT_BYTES, BASE_NONE, NULL, 0,
9031
14
        "OCTET_STRING_SIZE_4", HFILL }},
9032
14
    { &hf_h225_ipV4_src_port,
9033
14
      { "port", "h225.ipV4_src_port",
9034
14
        FT_UINT32, BASE_DEC, NULL, 0,
9035
14
        "INTEGER_0_65535", HFILL }},
9036
14
    { &hf_h225_route,
9037
14
      { "route", "h225.route",
9038
14
        FT_UINT32, BASE_DEC, NULL, 0,
9039
14
        NULL, HFILL }},
9040
14
    { &hf_h225_route_item,
9041
14
      { "route item", "h225.route_item",
9042
14
        FT_BYTES, BASE_NONE, NULL, 0,
9043
14
        "OCTET_STRING_SIZE_4", HFILL }},
9044
14
    { &hf_h225_routing,
9045
14
      { "routing", "h225.routing",
9046
14
        FT_UINT32, BASE_DEC, VALS(h225_T_routing_vals), 0,
9047
14
        NULL, HFILL }},
9048
14
    { &hf_h225_ipxAddress,
9049
14
      { "ipxAddress", "h225.ipxAddress_element",
9050
14
        FT_NONE, BASE_NONE, NULL, 0,
9051
14
        NULL, HFILL }},
9052
14
    { &hf_h225_ipx_port,
9053
14
      { "port", "h225.ipx_port",
9054
14
        FT_BYTES, BASE_NONE, NULL, 0,
9055
14
        "OCTET_STRING_SIZE_2", HFILL }},
9056
14
    { &hf_h225_ip6Address,
9057
14
      { "ip6Address", "h225.ip6Address_element",
9058
14
        FT_NONE, BASE_NONE, NULL, 0,
9059
14
        NULL, HFILL }},
9060
14
    { &hf_h225_ipV6,
9061
14
      { "ip", "h225.ipV6",
9062
14
        FT_IPv6, BASE_NONE, NULL, 0,
9063
14
        "OCTET_STRING_SIZE_16", HFILL }},
9064
14
    { &hf_h225_ipV6_port,
9065
14
      { "port", "h225.ipV6_port",
9066
14
        FT_UINT32, BASE_DEC, NULL, 0,
9067
14
        "INTEGER_0_65535", HFILL }},
9068
14
    { &hf_h225_vendor,
9069
14
      { "vendor", "h225.vendor_element",
9070
14
        FT_NONE, BASE_NONE, NULL, 0,
9071
14
        "VendorIdentifier", HFILL }},
9072
14
    { &hf_h225_gatekeeper,
9073
14
      { "gatekeeper", "h225.gatekeeper_element",
9074
14
        FT_NONE, BASE_NONE, NULL, 0,
9075
14
        "GatekeeperInfo", HFILL }},
9076
14
    { &hf_h225_gateway,
9077
14
      { "gateway", "h225.gateway_element",
9078
14
        FT_NONE, BASE_NONE, NULL, 0,
9079
14
        "GatewayInfo", HFILL }},
9080
14
    { &hf_h225_mcu,
9081
14
      { "mcu", "h225.mcu_element",
9082
14
        FT_NONE, BASE_NONE, NULL, 0,
9083
14
        "McuInfo", HFILL }},
9084
14
    { &hf_h225_terminal,
9085
14
      { "terminal", "h225.terminal_element",
9086
14
        FT_NONE, BASE_NONE, NULL, 0,
9087
14
        "TerminalInfo", HFILL }},
9088
14
    { &hf_h225_mc,
9089
14
      { "mc", "h225.mc",
9090
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9091
14
        "BOOLEAN", HFILL }},
9092
14
    { &hf_h225_undefinedNode,
9093
14
      { "undefinedNode", "h225.undefinedNode",
9094
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9095
14
        "BOOLEAN", HFILL }},
9096
14
    { &hf_h225_set,
9097
14
      { "set", "h225.set",
9098
14
        FT_BYTES, BASE_NONE, NULL, 0,
9099
14
        "BIT_STRING_SIZE_32", HFILL }},
9100
14
    { &hf_h225_supportedTunnelledProtocols,
9101
14
      { "supportedTunnelledProtocols", "h225.supportedTunnelledProtocols",
9102
14
        FT_UINT32, BASE_DEC, NULL, 0,
9103
14
        "SEQUENCE_OF_TunnelledProtocol", HFILL }},
9104
14
    { &hf_h225_supportedTunnelledProtocols_item,
9105
14
      { "TunnelledProtocol", "h225.TunnelledProtocol_element",
9106
14
        FT_NONE, BASE_NONE, NULL, 0,
9107
14
        NULL, HFILL }},
9108
14
    { &hf_h225_protocol,
9109
14
      { "protocol", "h225.protocol",
9110
14
        FT_UINT32, BASE_DEC, NULL, 0,
9111
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
9112
14
    { &hf_h225_protocol_item,
9113
14
      { "SupportedProtocols", "h225.SupportedProtocols",
9114
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
9115
14
        NULL, HFILL }},
9116
14
    { &hf_h225_h310,
9117
14
      { "h310", "h225.h310_element",
9118
14
        FT_NONE, BASE_NONE, NULL, 0,
9119
14
        "H310Caps", HFILL }},
9120
14
    { &hf_h225_h320,
9121
14
      { "h320", "h225.h320_element",
9122
14
        FT_NONE, BASE_NONE, NULL, 0,
9123
14
        "H320Caps", HFILL }},
9124
14
    { &hf_h225_h321,
9125
14
      { "h321", "h225.h321_element",
9126
14
        FT_NONE, BASE_NONE, NULL, 0,
9127
14
        "H321Caps", HFILL }},
9128
14
    { &hf_h225_h322,
9129
14
      { "h322", "h225.h322_element",
9130
14
        FT_NONE, BASE_NONE, NULL, 0,
9131
14
        "H322Caps", HFILL }},
9132
14
    { &hf_h225_h323,
9133
14
      { "h323", "h225.h323_element",
9134
14
        FT_NONE, BASE_NONE, NULL, 0,
9135
14
        "H323Caps", HFILL }},
9136
14
    { &hf_h225_h324,
9137
14
      { "h324", "h225.h324_element",
9138
14
        FT_NONE, BASE_NONE, NULL, 0,
9139
14
        "H324Caps", HFILL }},
9140
14
    { &hf_h225_voice,
9141
14
      { "voice", "h225.voice_element",
9142
14
        FT_NONE, BASE_NONE, NULL, 0,
9143
14
        "VoiceCaps", HFILL }},
9144
14
    { &hf_h225_t120_only,
9145
14
      { "t120-only", "h225.t120_only_element",
9146
14
        FT_NONE, BASE_NONE, NULL, 0,
9147
14
        "T120OnlyCaps", HFILL }},
9148
14
    { &hf_h225_nonStandardProtocol,
9149
14
      { "nonStandardProtocol", "h225.nonStandardProtocol_element",
9150
14
        FT_NONE, BASE_NONE, NULL, 0,
9151
14
        NULL, HFILL }},
9152
14
    { &hf_h225_t38FaxAnnexbOnly,
9153
14
      { "t38FaxAnnexbOnly", "h225.t38FaxAnnexbOnly_element",
9154
14
        FT_NONE, BASE_NONE, NULL, 0,
9155
14
        "T38FaxAnnexbOnlyCaps", HFILL }},
9156
14
    { &hf_h225_sip,
9157
14
      { "sip", "h225.sip_element",
9158
14
        FT_NONE, BASE_NONE, NULL, 0,
9159
14
        "SIPCaps", HFILL }},
9160
14
    { &hf_h225_dataRatesSupported,
9161
14
      { "dataRatesSupported", "h225.dataRatesSupported",
9162
14
        FT_UINT32, BASE_DEC, NULL, 0,
9163
14
        "SEQUENCE_OF_DataRate", HFILL }},
9164
14
    { &hf_h225_dataRatesSupported_item,
9165
14
      { "DataRate", "h225.DataRate_element",
9166
14
        FT_NONE, BASE_NONE, NULL, 0,
9167
14
        NULL, HFILL }},
9168
14
    { &hf_h225_supportedPrefixes,
9169
14
      { "supportedPrefixes", "h225.supportedPrefixes",
9170
14
        FT_UINT32, BASE_DEC, NULL, 0,
9171
14
        "SEQUENCE_OF_SupportedPrefix", HFILL }},
9172
14
    { &hf_h225_supportedPrefixes_item,
9173
14
      { "SupportedPrefix", "h225.SupportedPrefix_element",
9174
14
        FT_NONE, BASE_NONE, NULL, 0,
9175
14
        NULL, HFILL }},
9176
14
    { &hf_h225_t38FaxProtocol,
9177
14
      { "t38FaxProtocol", "h225.t38FaxProtocol",
9178
14
        FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
9179
14
        "DataProtocolCapability", HFILL }},
9180
14
    { &hf_h225_t38FaxProfile,
9181
14
      { "t38FaxProfile", "h225.t38FaxProfile_element",
9182
14
        FT_NONE, BASE_NONE, NULL, 0,
9183
14
        NULL, HFILL }},
9184
14
    { &hf_h225_vendorIdentifier_vendor,
9185
14
      { "vendor", "h225.vendorIdentifier_vendor_element",
9186
14
        FT_NONE, BASE_NONE, NULL, 0,
9187
14
        "H221NonStandard", HFILL }},
9188
14
    { &hf_h225_productId,
9189
14
      { "productId", "h225.productId",
9190
14
        FT_STRING, BASE_NONE, NULL, 0,
9191
14
        "OCTET_STRING_SIZE_1_256", HFILL }},
9192
14
    { &hf_h225_versionId,
9193
14
      { "versionId", "h225.versionId",
9194
14
        FT_STRING, BASE_NONE, NULL, 0,
9195
14
        "OCTET_STRING_SIZE_1_256", HFILL }},
9196
14
    { &hf_h225_enterpriseNumber,
9197
14
      { "enterpriseNumber", "h225.enterpriseNumber",
9198
14
        FT_OID, BASE_NONE, NULL, 0,
9199
14
        "OBJECT_IDENTIFIER", HFILL }},
9200
14
    { &hf_h225_t35CountryCode,
9201
14
      { "t35CountryCode", "h225.t35CountryCode",
9202
14
        FT_UINT32, BASE_DEC, VALS(T35CountryCode_vals), 0,
9203
14
        NULL, HFILL }},
9204
14
    { &hf_h225_t35Extension,
9205
14
      { "t35Extension", "h225.t35Extension",
9206
14
        FT_UINT32, BASE_DEC, NULL, 0,
9207
14
        NULL, HFILL }},
9208
14
    { &hf_h225_manufacturerCode,
9209
14
      { "manufacturerCode", "h225.manufacturerCode",
9210
14
        FT_UINT32, BASE_DEC, NULL, 0,
9211
14
        NULL, HFILL }},
9212
14
    { &hf_h225_tunnelledProtocol_id,
9213
14
      { "id", "h225.tunnelledProtocol_id",
9214
14
        FT_UINT32, BASE_DEC, VALS(h225_TunnelledProtocol_id_vals), 0,
9215
14
        "TunnelledProtocol_id", HFILL }},
9216
14
    { &hf_h225_tunnelledProtocolObjectID,
9217
14
      { "tunnelledProtocolObjectID", "h225.tunnelledProtocolObjectID",
9218
14
        FT_OID, BASE_NONE, NULL, 0,
9219
14
        NULL, HFILL }},
9220
14
    { &hf_h225_tunnelledProtocolAlternateID,
9221
14
      { "tunnelledProtocolAlternateID", "h225.tunnelledProtocolAlternateID_element",
9222
14
        FT_NONE, BASE_NONE, NULL, 0,
9223
14
        "TunnelledProtocolAlternateIdentifier", HFILL }},
9224
14
    { &hf_h225_subIdentifier,
9225
14
      { "subIdentifier", "h225.subIdentifier",
9226
14
        FT_STRING, BASE_NONE, NULL, 0,
9227
14
        "IA5String_SIZE_1_64", HFILL }},
9228
14
    { &hf_h225_protocolType,
9229
14
      { "protocolType", "h225.protocolType",
9230
14
        FT_STRING, BASE_NONE, NULL, 0,
9231
14
        "IA5String_SIZE_1_64", HFILL }},
9232
14
    { &hf_h225_protocolVariant,
9233
14
      { "protocolVariant", "h225.protocolVariant",
9234
14
        FT_STRING, BASE_NONE, NULL, 0,
9235
14
        "IA5String_SIZE_1_64", HFILL }},
9236
14
    { &hf_h225_nonStandardIdentifier,
9237
14
      { "nonStandardIdentifier", "h225.nonStandardIdentifier",
9238
14
        FT_UINT32, BASE_DEC, VALS(h225_NonStandardIdentifier_vals), 0,
9239
14
        NULL, HFILL }},
9240
14
    { &hf_h225_nsp_data,
9241
14
      { "data", "h225.nsp_data",
9242
14
        FT_UINT32, BASE_DEC, NULL, 0,
9243
14
        "T_nsp_data", HFILL }},
9244
14
    { &hf_h225_nsiOID,
9245
14
      { "object", "h225.nsiOID",
9246
14
        FT_OID, BASE_NONE, NULL, 0,
9247
14
        "T_nsiOID", HFILL }},
9248
14
    { &hf_h225_h221NonStandard,
9249
14
      { "h221NonStandard", "h225.h221NonStandard_element",
9250
14
        FT_NONE, BASE_NONE, NULL, 0,
9251
14
        NULL, HFILL }},
9252
14
    { &hf_h225_dialledDigits,
9253
14
      { "dialledDigits", "h225.dialledDigits",
9254
14
        FT_STRING, BASE_NONE, NULL, 0,
9255
14
        "DialedDigits", HFILL }},
9256
14
    { &hf_h225_h323_ID,
9257
14
      { "h323-ID", "h225.h323_ID",
9258
14
        FT_STRING, BASE_NONE, NULL, 0,
9259
14
        "BMPString_SIZE_1_256", HFILL }},
9260
14
    { &hf_h225_url_ID,
9261
14
      { "url-ID", "h225.url_ID",
9262
14
        FT_STRING, BASE_NONE, NULL, 0,
9263
14
        "IA5String_SIZE_1_512", HFILL }},
9264
14
    { &hf_h225_transportID,
9265
14
      { "transportID", "h225.transportID",
9266
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9267
14
        "TransportAddress", HFILL }},
9268
14
    { &hf_h225_email_ID,
9269
14
      { "email-ID", "h225.email_ID",
9270
14
        FT_STRING, BASE_NONE, NULL, 0,
9271
14
        "IA5String_SIZE_1_512", HFILL }},
9272
14
    { &hf_h225_partyNumber,
9273
14
      { "partyNumber", "h225.partyNumber",
9274
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9275
14
        NULL, HFILL }},
9276
14
    { &hf_h225_mobileUIM,
9277
14
      { "mobileUIM", "h225.mobileUIM",
9278
14
        FT_UINT32, BASE_DEC, VALS(h225_MobileUIM_vals), 0,
9279
14
        NULL, HFILL }},
9280
14
    { &hf_h225_isupNumber,
9281
14
      { "isupNumber", "h225.isupNumber",
9282
14
        FT_UINT32, BASE_DEC, VALS(h225_IsupNumber_vals), 0,
9283
14
        NULL, HFILL }},
9284
14
    { &hf_h225_wildcard,
9285
14
      { "wildcard", "h225.wildcard",
9286
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9287
14
        "AliasAddress", HFILL }},
9288
14
    { &hf_h225_range,
9289
14
      { "range", "h225.range_element",
9290
14
        FT_NONE, BASE_NONE, NULL, 0,
9291
14
        NULL, HFILL }},
9292
14
    { &hf_h225_startOfRange,
9293
14
      { "startOfRange", "h225.startOfRange",
9294
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9295
14
        "PartyNumber", HFILL }},
9296
14
    { &hf_h225_endOfRange,
9297
14
      { "endOfRange", "h225.endOfRange",
9298
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9299
14
        "PartyNumber", HFILL }},
9300
14
    { &hf_h225_e164Number,
9301
14
      { "e164Number", "h225.e164Number_element",
9302
14
        FT_NONE, BASE_NONE, NULL, 0,
9303
14
        "PublicPartyNumber", HFILL }},
9304
14
    { &hf_h225_dataPartyNumber,
9305
14
      { "dataPartyNumber", "h225.dataPartyNumber",
9306
14
        FT_STRING, BASE_NONE, NULL, 0,
9307
14
        "NumberDigits", HFILL }},
9308
14
    { &hf_h225_telexPartyNumber,
9309
14
      { "telexPartyNumber", "h225.telexPartyNumber",
9310
14
        FT_STRING, BASE_NONE, NULL, 0,
9311
14
        "NumberDigits", HFILL }},
9312
14
    { &hf_h225_privateNumber,
9313
14
      { "privateNumber", "h225.privateNumber_element",
9314
14
        FT_NONE, BASE_NONE, NULL, 0,
9315
14
        "PrivatePartyNumber", HFILL }},
9316
14
    { &hf_h225_nationalStandardPartyNumber,
9317
14
      { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9318
14
        FT_STRING, BASE_NONE, NULL, 0,
9319
14
        "NumberDigits", HFILL }},
9320
14
    { &hf_h225_publicTypeOfNumber,
9321
14
      { "publicTypeOfNumber", "h225.publicTypeOfNumber",
9322
14
        FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
9323
14
        NULL, HFILL }},
9324
14
    { &hf_h225_publicNumberDigits,
9325
14
      { "publicNumberDigits", "h225.publicNumberDigits",
9326
14
        FT_STRING, BASE_NONE, NULL, 0,
9327
14
        "NumberDigits", HFILL }},
9328
14
    { &hf_h225_privateTypeOfNumber,
9329
14
      { "privateTypeOfNumber", "h225.privateTypeOfNumber",
9330
14
        FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
9331
14
        NULL, HFILL }},
9332
14
    { &hf_h225_privateNumberDigits,
9333
14
      { "privateNumberDigits", "h225.privateNumberDigits",
9334
14
        FT_STRING, BASE_NONE, NULL, 0,
9335
14
        "NumberDigits", HFILL }},
9336
14
    { &hf_h225_displayName_language,
9337
14
      { "language", "h225.displayName_language",
9338
14
        FT_STRING, BASE_NONE, NULL, 0,
9339
14
        "IA5String", HFILL }},
9340
14
    { &hf_h225_name,
9341
14
      { "name", "h225.name",
9342
14
        FT_STRING, BASE_NONE, NULL, 0,
9343
14
        "BMPString_SIZE_1_80", HFILL }},
9344
14
    { &hf_h225_internationalNumber,
9345
14
      { "internationalNumber", "h225.internationalNumber_element",
9346
14
        FT_NONE, BASE_NONE, NULL, 0,
9347
14
        NULL, HFILL }},
9348
14
    { &hf_h225_nationalNumber,
9349
14
      { "nationalNumber", "h225.nationalNumber_element",
9350
14
        FT_NONE, BASE_NONE, NULL, 0,
9351
14
        NULL, HFILL }},
9352
14
    { &hf_h225_networkSpecificNumber,
9353
14
      { "networkSpecificNumber", "h225.networkSpecificNumber_element",
9354
14
        FT_NONE, BASE_NONE, NULL, 0,
9355
14
        NULL, HFILL }},
9356
14
    { &hf_h225_subscriberNumber,
9357
14
      { "subscriberNumber", "h225.subscriberNumber_element",
9358
14
        FT_NONE, BASE_NONE, NULL, 0,
9359
14
        NULL, HFILL }},
9360
14
    { &hf_h225_abbreviatedNumber,
9361
14
      { "abbreviatedNumber", "h225.abbreviatedNumber_element",
9362
14
        FT_NONE, BASE_NONE, NULL, 0,
9363
14
        NULL, HFILL }},
9364
14
    { &hf_h225_level2RegionalNumber,
9365
14
      { "level2RegionalNumber", "h225.level2RegionalNumber_element",
9366
14
        FT_NONE, BASE_NONE, NULL, 0,
9367
14
        NULL, HFILL }},
9368
14
    { &hf_h225_level1RegionalNumber,
9369
14
      { "level1RegionalNumber", "h225.level1RegionalNumber_element",
9370
14
        FT_NONE, BASE_NONE, NULL, 0,
9371
14
        NULL, HFILL }},
9372
14
    { &hf_h225_pISNSpecificNumber,
9373
14
      { "pISNSpecificNumber", "h225.pISNSpecificNumber_element",
9374
14
        FT_NONE, BASE_NONE, NULL, 0,
9375
14
        NULL, HFILL }},
9376
14
    { &hf_h225_localNumber,
9377
14
      { "localNumber", "h225.localNumber_element",
9378
14
        FT_NONE, BASE_NONE, NULL, 0,
9379
14
        NULL, HFILL }},
9380
14
    { &hf_h225_ansi_41_uim,
9381
14
      { "ansi-41-uim", "h225.ansi_41_uim_element",
9382
14
        FT_NONE, BASE_NONE, NULL, 0,
9383
14
        NULL, HFILL }},
9384
14
    { &hf_h225_gsm_uim,
9385
14
      { "gsm-uim", "h225.gsm_uim_element",
9386
14
        FT_NONE, BASE_NONE, NULL, 0,
9387
14
        NULL, HFILL }},
9388
14
    { &hf_h225_imsi,
9389
14
      { "imsi", "h225.imsi",
9390
14
        FT_STRING, BASE_NONE, NULL, 0,
9391
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9392
14
    { &hf_h225_min,
9393
14
      { "min", "h225.min",
9394
14
        FT_STRING, BASE_NONE, NULL, 0,
9395
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9396
14
    { &hf_h225_mdn,
9397
14
      { "mdn", "h225.mdn",
9398
14
        FT_STRING, BASE_NONE, NULL, 0,
9399
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9400
14
    { &hf_h225_msisdn,
9401
14
      { "msisdn", "h225.msisdn",
9402
14
        FT_STRING, BASE_NONE, NULL, 0,
9403
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9404
14
    { &hf_h225_esn,
9405
14
      { "esn", "h225.esn",
9406
14
        FT_STRING, BASE_NONE, NULL, 0,
9407
14
        "TBCD_STRING_SIZE_16", HFILL }},
9408
14
    { &hf_h225_mscid,
9409
14
      { "mscid", "h225.mscid",
9410
14
        FT_STRING, BASE_NONE, NULL, 0,
9411
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9412
14
    { &hf_h225_system_id,
9413
14
      { "system-id", "h225.system_id",
9414
14
        FT_UINT32, BASE_DEC, VALS(h225_T_system_id_vals), 0,
9415
14
        NULL, HFILL }},
9416
14
    { &hf_h225_sid,
9417
14
      { "sid", "h225.sid",
9418
14
        FT_STRING, BASE_NONE, NULL, 0,
9419
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9420
14
    { &hf_h225_mid,
9421
14
      { "mid", "h225.mid",
9422
14
        FT_STRING, BASE_NONE, NULL, 0,
9423
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9424
14
    { &hf_h225_systemMyTypeCode,
9425
14
      { "systemMyTypeCode", "h225.systemMyTypeCode",
9426
14
        FT_BYTES, BASE_NONE, NULL, 0,
9427
14
        "OCTET_STRING_SIZE_1", HFILL }},
9428
14
    { &hf_h225_systemAccessType,
9429
14
      { "systemAccessType", "h225.systemAccessType",
9430
14
        FT_BYTES, BASE_NONE, NULL, 0,
9431
14
        "OCTET_STRING_SIZE_1", HFILL }},
9432
14
    { &hf_h225_qualificationInformationCode,
9433
14
      { "qualificationInformationCode", "h225.qualificationInformationCode",
9434
14
        FT_BYTES, BASE_NONE, NULL, 0,
9435
14
        "OCTET_STRING_SIZE_1", HFILL }},
9436
14
    { &hf_h225_sesn,
9437
14
      { "sesn", "h225.sesn",
9438
14
        FT_STRING, BASE_NONE, NULL, 0,
9439
14
        "TBCD_STRING_SIZE_16", HFILL }},
9440
14
    { &hf_h225_soc,
9441
14
      { "soc", "h225.soc",
9442
14
        FT_STRING, BASE_NONE, NULL, 0,
9443
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9444
14
    { &hf_h225_tmsi,
9445
14
      { "tmsi", "h225.tmsi",
9446
14
        FT_BYTES, BASE_NONE, NULL, 0,
9447
14
        "OCTET_STRING_SIZE_1_4", HFILL }},
9448
14
    { &hf_h225_imei,
9449
14
      { "imei", "h225.imei",
9450
14
        FT_STRING, BASE_NONE, NULL, 0,
9451
14
        "TBCD_STRING_SIZE_15_16", HFILL }},
9452
14
    { &hf_h225_hplmn,
9453
14
      { "hplmn", "h225.hplmn",
9454
14
        FT_STRING, BASE_NONE, NULL, 0,
9455
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9456
14
    { &hf_h225_vplmn,
9457
14
      { "vplmn", "h225.vplmn",
9458
14
        FT_STRING, BASE_NONE, NULL, 0,
9459
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9460
14
    { &hf_h225_isupE164Number,
9461
14
      { "e164Number", "h225.isupE164Number_element",
9462
14
        FT_NONE, BASE_NONE, NULL, 0,
9463
14
        "IsupPublicPartyNumber", HFILL }},
9464
14
    { &hf_h225_isupDataPartyNumber,
9465
14
      { "dataPartyNumber", "h225.isupDataPartyNumber",
9466
14
        FT_STRING, BASE_NONE, NULL, 0,
9467
14
        "IsupDigits", HFILL }},
9468
14
    { &hf_h225_isupTelexPartyNumber,
9469
14
      { "telexPartyNumber", "h225.isupTelexPartyNumber",
9470
14
        FT_STRING, BASE_NONE, NULL, 0,
9471
14
        "IsupDigits", HFILL }},
9472
14
    { &hf_h225_isupPrivateNumber,
9473
14
      { "privateNumber", "h225.isupPrivateNumber_element",
9474
14
        FT_NONE, BASE_NONE, NULL, 0,
9475
14
        "IsupPrivatePartyNumber", HFILL }},
9476
14
    { &hf_h225_isupNationalStandardPartyNumber,
9477
14
      { "nationalStandardPartyNumber", "h225.isupNationalStandardPartyNumber",
9478
14
        FT_STRING, BASE_NONE, NULL, 0,
9479
14
        "IsupDigits", HFILL }},
9480
14
    { &hf_h225_natureOfAddress,
9481
14
      { "natureOfAddress", "h225.natureOfAddress",
9482
14
        FT_UINT32, BASE_DEC, VALS(h225_NatureOfAddress_vals), 0,
9483
14
        NULL, HFILL }},
9484
14
    { &hf_h225_address,
9485
14
      { "address", "h225.address",
9486
14
        FT_STRING, BASE_NONE, NULL, 0,
9487
14
        "IsupDigits", HFILL }},
9488
14
    { &hf_h225_routingNumberNationalFormat,
9489
14
      { "routingNumberNationalFormat", "h225.routingNumberNationalFormat_element",
9490
14
        FT_NONE, BASE_NONE, NULL, 0,
9491
14
        NULL, HFILL }},
9492
14
    { &hf_h225_routingNumberNetworkSpecificFormat,
9493
14
      { "routingNumberNetworkSpecificFormat", "h225.routingNumberNetworkSpecificFormat_element",
9494
14
        FT_NONE, BASE_NONE, NULL, 0,
9495
14
        NULL, HFILL }},
9496
14
    { &hf_h225_routingNumberWithCalledDirectoryNumber,
9497
14
      { "routingNumberWithCalledDirectoryNumber", "h225.routingNumberWithCalledDirectoryNumber_element",
9498
14
        FT_NONE, BASE_NONE, NULL, 0,
9499
14
        NULL, HFILL }},
9500
14
    { &hf_h225_extAliasAddress,
9501
14
      { "address", "h225.extAliasAddress",
9502
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9503
14
        "AliasAddress", HFILL }},
9504
14
    { &hf_h225_aliasAddress,
9505
14
      { "aliasAddress", "h225.aliasAddress",
9506
14
        FT_UINT32, BASE_DEC, NULL, 0,
9507
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
9508
14
    { &hf_h225_aliasAddress_item,
9509
14
      { "AliasAddress", "h225.AliasAddress",
9510
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9511
14
        NULL, HFILL }},
9512
14
    { &hf_h225_callSignalAddress,
9513
14
      { "callSignalAddress", "h225.callSignalAddress",
9514
14
        FT_UINT32, BASE_DEC, NULL, 0,
9515
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9516
14
    { &hf_h225_callSignalAddress_item,
9517
14
      { "TransportAddress", "h225.TransportAddress",
9518
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9519
14
        NULL, HFILL }},
9520
14
    { &hf_h225_rasAddress,
9521
14
      { "rasAddress", "h225.rasAddress",
9522
14
        FT_UINT32, BASE_DEC, NULL, 0,
9523
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9524
14
    { &hf_h225_rasAddress_item,
9525
14
      { "TransportAddress", "h225.TransportAddress",
9526
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9527
14
        NULL, HFILL }},
9528
14
    { &hf_h225_endpointType,
9529
14
      { "endpointType", "h225.endpointType_element",
9530
14
        FT_NONE, BASE_NONE, NULL, 0,
9531
14
        NULL, HFILL }},
9532
14
    { &hf_h225_priority,
9533
14
      { "priority", "h225.priority",
9534
14
        FT_UINT32, BASE_DEC, NULL, 0,
9535
14
        "INTEGER_0_127", HFILL }},
9536
14
    { &hf_h225_remoteExtensionAddress,
9537
14
      { "remoteExtensionAddress", "h225.remoteExtensionAddress",
9538
14
        FT_UINT32, BASE_DEC, NULL, 0,
9539
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
9540
14
    { &hf_h225_ep_remoteExtensionAddress_item,
9541
14
      { "AliasAddress", "h225.remoteExtensionAddress.item",
9542
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9543
14
        NULL, HFILL }},
9544
14
    { &hf_h225_alternateTransportAddresses,
9545
14
      { "alternateTransportAddresses", "h225.alternateTransportAddresses_element",
9546
14
        FT_NONE, BASE_NONE, NULL, 0,
9547
14
        NULL, HFILL }},
9548
14
    { &hf_h225_annexE,
9549
14
      { "annexE", "h225.annexE",
9550
14
        FT_UINT32, BASE_DEC, NULL, 0,
9551
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9552
14
    { &hf_h225_annexE_item,
9553
14
      { "TransportAddress", "h225.TransportAddress",
9554
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9555
14
        NULL, HFILL }},
9556
14
    { &hf_h225_sctp,
9557
14
      { "sctp", "h225.sctp",
9558
14
        FT_UINT32, BASE_DEC, NULL, 0,
9559
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9560
14
    { &hf_h225_sctp_item,
9561
14
      { "TransportAddress", "h225.TransportAddress",
9562
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9563
14
        NULL, HFILL }},
9564
14
    { &hf_h225_tcp,
9565
14
      { "tcp", "h225.tcp_element",
9566
14
        FT_NONE, BASE_NONE, NULL, 0,
9567
14
        NULL, HFILL }},
9568
14
    { &hf_h225_annexE_flg,
9569
14
      { "annexE", "h225.annexE_flg_element",
9570
14
        FT_NONE, BASE_NONE, NULL, 0,
9571
14
        NULL, HFILL }},
9572
14
    { &hf_h225_sctp_flg,
9573
14
      { "sctp", "h225.sctp_flg_element",
9574
14
        FT_NONE, BASE_NONE, NULL, 0,
9575
14
        NULL, HFILL }},
9576
14
    { &hf_h225_alternateGK_rasAddress,
9577
14
      { "rasAddress", "h225.alternateGK_rasAddress",
9578
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9579
14
        "TransportAddress", HFILL }},
9580
14
    { &hf_h225_gatekeeperIdentifier,
9581
14
      { "gatekeeperIdentifier", "h225.gatekeeperIdentifier",
9582
14
        FT_STRING, BASE_NONE, NULL, 0,
9583
14
        NULL, HFILL }},
9584
14
    { &hf_h225_needToRegister,
9585
14
      { "needToRegister", "h225.needToRegister",
9586
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9587
14
        "BOOLEAN", HFILL }},
9588
14
    { &hf_h225_alternateGatekeeper,
9589
14
      { "alternateGatekeeper", "h225.alternateGatekeeper",
9590
14
        FT_UINT32, BASE_DEC, NULL, 0,
9591
14
        "SEQUENCE_OF_AlternateGK", HFILL }},
9592
14
    { &hf_h225_alternateGatekeeper_item,
9593
14
      { "AlternateGK", "h225.AlternateGK_element",
9594
14
        FT_NONE, BASE_NONE, NULL, 0,
9595
14
        NULL, HFILL }},
9596
14
    { &hf_h225_altGKisPermanent,
9597
14
      { "altGKisPermanent", "h225.altGKisPermanent",
9598
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9599
14
        "BOOLEAN", HFILL }},
9600
14
    { &hf_h225_default,
9601
14
      { "default", "h225.default_element",
9602
14
        FT_NONE, BASE_NONE, NULL, 0,
9603
14
        NULL, HFILL }},
9604
14
    { &hf_h225_encryption,
9605
14
      { "encryption", "h225.encryption",
9606
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9607
14
        "SecurityServiceMode", HFILL }},
9608
14
    { &hf_h225_authenticaton,
9609
14
      { "authenticaton", "h225.authenticaton",
9610
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9611
14
        "SecurityServiceMode", HFILL }},
9612
14
    { &hf_h225_securityCapabilities_integrity,
9613
14
      { "integrity", "h225.securityCapabilities_integrity",
9614
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9615
14
        "SecurityServiceMode", HFILL }},
9616
14
    { &hf_h225_securityWrongSyncTime,
9617
14
      { "securityWrongSyncTime", "h225.securityWrongSyncTime_element",
9618
14
        FT_NONE, BASE_NONE, NULL, 0,
9619
14
        NULL, HFILL }},
9620
14
    { &hf_h225_securityReplay,
9621
14
      { "securityReplay", "h225.securityReplay_element",
9622
14
        FT_NONE, BASE_NONE, NULL, 0,
9623
14
        NULL, HFILL }},
9624
14
    { &hf_h225_securityWrongGeneralID,
9625
14
      { "securityWrongGeneralID", "h225.securityWrongGeneralID_element",
9626
14
        FT_NONE, BASE_NONE, NULL, 0,
9627
14
        NULL, HFILL }},
9628
14
    { &hf_h225_securityWrongSendersID,
9629
14
      { "securityWrongSendersID", "h225.securityWrongSendersID_element",
9630
14
        FT_NONE, BASE_NONE, NULL, 0,
9631
14
        NULL, HFILL }},
9632
14
    { &hf_h225_securityIntegrityFailed,
9633
14
      { "securityIntegrityFailed", "h225.securityIntegrityFailed_element",
9634
14
        FT_NONE, BASE_NONE, NULL, 0,
9635
14
        NULL, HFILL }},
9636
14
    { &hf_h225_securityWrongOID,
9637
14
      { "securityWrongOID", "h225.securityWrongOID_element",
9638
14
        FT_NONE, BASE_NONE, NULL, 0,
9639
14
        NULL, HFILL }},
9640
14
    { &hf_h225_securityDHmismatch,
9641
14
      { "securityDHmismatch", "h225.securityDHmismatch_element",
9642
14
        FT_NONE, BASE_NONE, NULL, 0,
9643
14
        NULL, HFILL }},
9644
14
    { &hf_h225_securityCertificateExpired,
9645
14
      { "securityCertificateExpired", "h225.securityCertificateExpired_element",
9646
14
        FT_NONE, BASE_NONE, NULL, 0,
9647
14
        NULL, HFILL }},
9648
14
    { &hf_h225_securityCertificateDateInvalid,
9649
14
      { "securityCertificateDateInvalid", "h225.securityCertificateDateInvalid_element",
9650
14
        FT_NONE, BASE_NONE, NULL, 0,
9651
14
        NULL, HFILL }},
9652
14
    { &hf_h225_securityCertificateRevoked,
9653
14
      { "securityCertificateRevoked", "h225.securityCertificateRevoked_element",
9654
14
        FT_NONE, BASE_NONE, NULL, 0,
9655
14
        NULL, HFILL }},
9656
14
    { &hf_h225_securityCertificateNotReadable,
9657
14
      { "securityCertificateNotReadable", "h225.securityCertificateNotReadable_element",
9658
14
        FT_NONE, BASE_NONE, NULL, 0,
9659
14
        NULL, HFILL }},
9660
14
    { &hf_h225_securityCertificateSignatureInvalid,
9661
14
      { "securityCertificateSignatureInvalid", "h225.securityCertificateSignatureInvalid_element",
9662
14
        FT_NONE, BASE_NONE, NULL, 0,
9663
14
        NULL, HFILL }},
9664
14
    { &hf_h225_securityCertificateMissing,
9665
14
      { "securityCertificateMissing", "h225.securityCertificateMissing_element",
9666
14
        FT_NONE, BASE_NONE, NULL, 0,
9667
14
        NULL, HFILL }},
9668
14
    { &hf_h225_securityCertificateIncomplete,
9669
14
      { "securityCertificateIncomplete", "h225.securityCertificateIncomplete_element",
9670
14
        FT_NONE, BASE_NONE, NULL, 0,
9671
14
        NULL, HFILL }},
9672
14
    { &hf_h225_securityUnsupportedCertificateAlgOID,
9673
14
      { "securityUnsupportedCertificateAlgOID", "h225.securityUnsupportedCertificateAlgOID_element",
9674
14
        FT_NONE, BASE_NONE, NULL, 0,
9675
14
        NULL, HFILL }},
9676
14
    { &hf_h225_securityUnknownCA,
9677
14
      { "securityUnknownCA", "h225.securityUnknownCA_element",
9678
14
        FT_NONE, BASE_NONE, NULL, 0,
9679
14
        NULL, HFILL }},
9680
14
    { &hf_h225_noSecurity,
9681
14
      { "noSecurity", "h225.noSecurity_element",
9682
14
        FT_NONE, BASE_NONE, NULL, 0,
9683
14
        NULL, HFILL }},
9684
14
    { &hf_h225_tls,
9685
14
      { "tls", "h225.tls_element",
9686
14
        FT_NONE, BASE_NONE, NULL, 0,
9687
14
        "SecurityCapabilities", HFILL }},
9688
14
    { &hf_h225_ipsec,
9689
14
      { "ipsec", "h225.ipsec_element",
9690
14
        FT_NONE, BASE_NONE, NULL, 0,
9691
14
        "SecurityCapabilities", HFILL }},
9692
14
    { &hf_h225_q932Full,
9693
14
      { "q932Full", "h225.q932Full",
9694
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9695
14
        "BOOLEAN", HFILL }},
9696
14
    { &hf_h225_q951Full,
9697
14
      { "q951Full", "h225.q951Full",
9698
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9699
14
        "BOOLEAN", HFILL }},
9700
14
    { &hf_h225_q952Full,
9701
14
      { "q952Full", "h225.q952Full",
9702
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9703
14
        "BOOLEAN", HFILL }},
9704
14
    { &hf_h225_q953Full,
9705
14
      { "q953Full", "h225.q953Full",
9706
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9707
14
        "BOOLEAN", HFILL }},
9708
14
    { &hf_h225_q955Full,
9709
14
      { "q955Full", "h225.q955Full",
9710
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9711
14
        "BOOLEAN", HFILL }},
9712
14
    { &hf_h225_q956Full,
9713
14
      { "q956Full", "h225.q956Full",
9714
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9715
14
        "BOOLEAN", HFILL }},
9716
14
    { &hf_h225_q957Full,
9717
14
      { "q957Full", "h225.q957Full",
9718
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9719
14
        "BOOLEAN", HFILL }},
9720
14
    { &hf_h225_q954Info,
9721
14
      { "q954Info", "h225.q954Info_element",
9722
14
        FT_NONE, BASE_NONE, NULL, 0,
9723
14
        "Q954Details", HFILL }},
9724
14
    { &hf_h225_conferenceCalling,
9725
14
      { "conferenceCalling", "h225.conferenceCalling",
9726
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9727
14
        "BOOLEAN", HFILL }},
9728
14
    { &hf_h225_threePartyService,
9729
14
      { "threePartyService", "h225.threePartyService",
9730
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9731
14
        "BOOLEAN", HFILL }},
9732
14
    { &hf_h225_guid,
9733
14
      { "guid", "h225.guid",
9734
14
        FT_GUID, BASE_NONE, NULL, 0,
9735
14
        NULL, HFILL }},
9736
14
    { &hf_h225_isoAlgorithm,
9737
14
      { "isoAlgorithm", "h225.isoAlgorithm",
9738
14
        FT_OID, BASE_NONE, NULL, 0,
9739
14
        "OBJECT_IDENTIFIER", HFILL }},
9740
14
    { &hf_h225_hMAC_MD5,
9741
14
      { "hMAC-MD5", "h225.hMAC_MD5_element",
9742
14
        FT_NONE, BASE_NONE, NULL, 0,
9743
14
        NULL, HFILL }},
9744
14
    { &hf_h225_hMAC_iso10118_2_s,
9745
14
      { "hMAC-iso10118-2-s", "h225.hMAC_iso10118_2_s",
9746
14
        FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9747
14
        "EncryptIntAlg", HFILL }},
9748
14
    { &hf_h225_hMAC_iso10118_2_l,
9749
14
      { "hMAC-iso10118-2-l", "h225.hMAC_iso10118_2_l",
9750
14
        FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9751
14
        "EncryptIntAlg", HFILL }},
9752
14
    { &hf_h225_hMAC_iso10118_3,
9753
14
      { "hMAC-iso10118-3", "h225.hMAC_iso10118_3",
9754
14
        FT_OID, BASE_NONE, NULL, 0,
9755
14
        "OBJECT_IDENTIFIER", HFILL }},
9756
14
    { &hf_h225_digSig,
9757
14
      { "digSig", "h225.digSig_element",
9758
14
        FT_NONE, BASE_NONE, NULL, 0,
9759
14
        NULL, HFILL }},
9760
14
    { &hf_h225_iso9797,
9761
14
      { "iso9797", "h225.iso9797",
9762
14
        FT_OID, BASE_NONE, NULL, 0,
9763
14
        "OBJECT_IDENTIFIER", HFILL }},
9764
14
    { &hf_h225_nonIsoIM,
9765
14
      { "nonIsoIM", "h225.nonIsoIM",
9766
14
        FT_UINT32, BASE_DEC, VALS(h225_NonIsoIntegrityMechanism_vals), 0,
9767
14
        "NonIsoIntegrityMechanism", HFILL }},
9768
14
    { &hf_h225_algorithmOID,
9769
14
      { "algorithmOID", "h225.algorithmOID",
9770
14
        FT_OID, BASE_NONE, NULL, 0,
9771
14
        "OBJECT_IDENTIFIER", HFILL }},
9772
14
    { &hf_h225_icv,
9773
14
      { "icv", "h225.icv",
9774
14
        FT_BYTES, BASE_NONE, NULL, 0,
9775
14
        "BIT_STRING", HFILL }},
9776
14
    { &hf_h225_cryptoEPPwdHash,
9777
14
      { "cryptoEPPwdHash", "h225.cryptoEPPwdHash_element",
9778
14
        FT_NONE, BASE_NONE, NULL, 0,
9779
14
        NULL, HFILL }},
9780
14
    { &hf_h225_alias,
9781
14
      { "alias", "h225.alias",
9782
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9783
14
        "AliasAddress", HFILL }},
9784
14
    { &hf_h225_timeStamp,
9785
14
      { "timeStamp", "h225.timeStamp",
9786
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
9787
14
        NULL, HFILL }},
9788
14
    { &hf_h225_token,
9789
14
      { "token", "h225.token_element",
9790
14
        FT_NONE, BASE_NONE, NULL, 0,
9791
14
        "HASHED", HFILL }},
9792
14
    { &hf_h225_cryptoGKPwdHash,
9793
14
      { "cryptoGKPwdHash", "h225.cryptoGKPwdHash_element",
9794
14
        FT_NONE, BASE_NONE, NULL, 0,
9795
14
        NULL, HFILL }},
9796
14
    { &hf_h225_gatekeeperId,
9797
14
      { "gatekeeperId", "h225.gatekeeperId",
9798
14
        FT_STRING, BASE_NONE, NULL, 0,
9799
14
        "GatekeeperIdentifier", HFILL }},
9800
14
    { &hf_h225_cryptoEPPwdEncr,
9801
14
      { "cryptoEPPwdEncr", "h225.cryptoEPPwdEncr_element",
9802
14
        FT_NONE, BASE_NONE, NULL, 0,
9803
14
        "ENCRYPTED", HFILL }},
9804
14
    { &hf_h225_cryptoGKPwdEncr,
9805
14
      { "cryptoGKPwdEncr", "h225.cryptoGKPwdEncr_element",
9806
14
        FT_NONE, BASE_NONE, NULL, 0,
9807
14
        "ENCRYPTED", HFILL }},
9808
14
    { &hf_h225_cryptoEPCert,
9809
14
      { "cryptoEPCert", "h225.cryptoEPCert_element",
9810
14
        FT_NONE, BASE_NONE, NULL, 0,
9811
14
        "SIGNED", HFILL }},
9812
14
    { &hf_h225_cryptoGKCert,
9813
14
      { "cryptoGKCert", "h225.cryptoGKCert_element",
9814
14
        FT_NONE, BASE_NONE, NULL, 0,
9815
14
        "SIGNED", HFILL }},
9816
14
    { &hf_h225_cryptoFastStart,
9817
14
      { "cryptoFastStart", "h225.cryptoFastStart_element",
9818
14
        FT_NONE, BASE_NONE, NULL, 0,
9819
14
        "SIGNED", HFILL }},
9820
14
    { &hf_h225_nestedcryptoToken,
9821
14
      { "nestedcryptoToken", "h225.nestedcryptoToken",
9822
14
        FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
9823
14
        "CryptoToken", HFILL }},
9824
14
    { &hf_h225_channelRate,
9825
14
      { "channelRate", "h225.channelRate",
9826
14
        FT_UINT32, BASE_DEC, NULL, 0,
9827
14
        "BandWidth", HFILL }},
9828
14
    { &hf_h225_channelMultiplier,
9829
14
      { "channelMultiplier", "h225.channelMultiplier",
9830
14
        FT_UINT32, BASE_DEC, NULL, 0,
9831
14
        "INTEGER_1_256", HFILL }},
9832
14
    { &hf_h225_globalCallId,
9833
14
      { "globalCallId", "h225.globalCallId",
9834
14
        FT_GUID, BASE_NONE, NULL, 0,
9835
14
        "GloballyUniqueID", HFILL }},
9836
14
    { &hf_h225_threadId,
9837
14
      { "threadId", "h225.threadId",
9838
14
        FT_GUID, BASE_NONE, NULL, 0,
9839
14
        "GloballyUniqueID", HFILL }},
9840
14
    { &hf_h225_prefix,
9841
14
      { "prefix", "h225.prefix",
9842
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9843
14
        "AliasAddress", HFILL }},
9844
14
    { &hf_h225_canReportCallCapacity,
9845
14
      { "canReportCallCapacity", "h225.canReportCallCapacity",
9846
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9847
14
        "BOOLEAN", HFILL }},
9848
14
    { &hf_h225_capacityReportingSpecification_when,
9849
14
      { "when", "h225.capacityReportingSpecification_when_element",
9850
14
        FT_NONE, BASE_NONE, NULL, 0,
9851
14
        "CapacityReportingSpecification_when", HFILL }},
9852
14
    { &hf_h225_callStart,
9853
14
      { "callStart", "h225.callStart_element",
9854
14
        FT_NONE, BASE_NONE, NULL, 0,
9855
14
        NULL, HFILL }},
9856
14
    { &hf_h225_callEnd,
9857
14
      { "callEnd", "h225.callEnd_element",
9858
14
        FT_NONE, BASE_NONE, NULL, 0,
9859
14
        NULL, HFILL }},
9860
14
    { &hf_h225_maximumCallCapacity,
9861
14
      { "maximumCallCapacity", "h225.maximumCallCapacity_element",
9862
14
        FT_NONE, BASE_NONE, NULL, 0,
9863
14
        "CallCapacityInfo", HFILL }},
9864
14
    { &hf_h225_currentCallCapacity,
9865
14
      { "currentCallCapacity", "h225.currentCallCapacity_element",
9866
14
        FT_NONE, BASE_NONE, NULL, 0,
9867
14
        "CallCapacityInfo", HFILL }},
9868
14
    { &hf_h225_voiceGwCallsAvailable,
9869
14
      { "voiceGwCallsAvailable", "h225.voiceGwCallsAvailable",
9870
14
        FT_UINT32, BASE_DEC, NULL, 0,
9871
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9872
14
    { &hf_h225_voiceGwCallsAvailable_item,
9873
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9874
14
        FT_NONE, BASE_NONE, NULL, 0,
9875
14
        NULL, HFILL }},
9876
14
    { &hf_h225_h310GwCallsAvailable,
9877
14
      { "h310GwCallsAvailable", "h225.h310GwCallsAvailable",
9878
14
        FT_UINT32, BASE_DEC, NULL, 0,
9879
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9880
14
    { &hf_h225_h310GwCallsAvailable_item,
9881
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9882
14
        FT_NONE, BASE_NONE, NULL, 0,
9883
14
        NULL, HFILL }},
9884
14
    { &hf_h225_h320GwCallsAvailable,
9885
14
      { "h320GwCallsAvailable", "h225.h320GwCallsAvailable",
9886
14
        FT_UINT32, BASE_DEC, NULL, 0,
9887
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9888
14
    { &hf_h225_h320GwCallsAvailable_item,
9889
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9890
14
        FT_NONE, BASE_NONE, NULL, 0,
9891
14
        NULL, HFILL }},
9892
14
    { &hf_h225_h321GwCallsAvailable,
9893
14
      { "h321GwCallsAvailable", "h225.h321GwCallsAvailable",
9894
14
        FT_UINT32, BASE_DEC, NULL, 0,
9895
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9896
14
    { &hf_h225_h321GwCallsAvailable_item,
9897
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9898
14
        FT_NONE, BASE_NONE, NULL, 0,
9899
14
        NULL, HFILL }},
9900
14
    { &hf_h225_h322GwCallsAvailable,
9901
14
      { "h322GwCallsAvailable", "h225.h322GwCallsAvailable",
9902
14
        FT_UINT32, BASE_DEC, NULL, 0,
9903
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9904
14
    { &hf_h225_h322GwCallsAvailable_item,
9905
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9906
14
        FT_NONE, BASE_NONE, NULL, 0,
9907
14
        NULL, HFILL }},
9908
14
    { &hf_h225_h323GwCallsAvailable,
9909
14
      { "h323GwCallsAvailable", "h225.h323GwCallsAvailable",
9910
14
        FT_UINT32, BASE_DEC, NULL, 0,
9911
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9912
14
    { &hf_h225_h323GwCallsAvailable_item,
9913
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9914
14
        FT_NONE, BASE_NONE, NULL, 0,
9915
14
        NULL, HFILL }},
9916
14
    { &hf_h225_h324GwCallsAvailable,
9917
14
      { "h324GwCallsAvailable", "h225.h324GwCallsAvailable",
9918
14
        FT_UINT32, BASE_DEC, NULL, 0,
9919
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9920
14
    { &hf_h225_h324GwCallsAvailable_item,
9921
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9922
14
        FT_NONE, BASE_NONE, NULL, 0,
9923
14
        NULL, HFILL }},
9924
14
    { &hf_h225_t120OnlyGwCallsAvailable,
9925
14
      { "t120OnlyGwCallsAvailable", "h225.t120OnlyGwCallsAvailable",
9926
14
        FT_UINT32, BASE_DEC, NULL, 0,
9927
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9928
14
    { &hf_h225_t120OnlyGwCallsAvailable_item,
9929
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9930
14
        FT_NONE, BASE_NONE, NULL, 0,
9931
14
        NULL, HFILL }},
9932
14
    { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable,
9933
14
      { "t38FaxAnnexbOnlyGwCallsAvailable", "h225.t38FaxAnnexbOnlyGwCallsAvailable",
9934
14
        FT_UINT32, BASE_DEC, NULL, 0,
9935
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9936
14
    { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item,
9937
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9938
14
        FT_NONE, BASE_NONE, NULL, 0,
9939
14
        NULL, HFILL }},
9940
14
    { &hf_h225_terminalCallsAvailable,
9941
14
      { "terminalCallsAvailable", "h225.terminalCallsAvailable",
9942
14
        FT_UINT32, BASE_DEC, NULL, 0,
9943
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9944
14
    { &hf_h225_terminalCallsAvailable_item,
9945
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9946
14
        FT_NONE, BASE_NONE, NULL, 0,
9947
14
        NULL, HFILL }},
9948
14
    { &hf_h225_mcuCallsAvailable,
9949
14
      { "mcuCallsAvailable", "h225.mcuCallsAvailable",
9950
14
        FT_UINT32, BASE_DEC, NULL, 0,
9951
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9952
14
    { &hf_h225_mcuCallsAvailable_item,
9953
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9954
14
        FT_NONE, BASE_NONE, NULL, 0,
9955
14
        NULL, HFILL }},
9956
14
    { &hf_h225_sipGwCallsAvailable,
9957
14
      { "sipGwCallsAvailable", "h225.sipGwCallsAvailable",
9958
14
        FT_UINT32, BASE_DEC, NULL, 0,
9959
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9960
14
    { &hf_h225_sipGwCallsAvailable_item,
9961
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9962
14
        FT_NONE, BASE_NONE, NULL, 0,
9963
14
        NULL, HFILL }},
9964
14
    { &hf_h225_calls,
9965
14
      { "calls", "h225.calls",
9966
14
        FT_UINT32, BASE_DEC, NULL, 0,
9967
14
        "INTEGER_0_4294967295", HFILL }},
9968
14
    { &hf_h225_group_IA5String,
9969
14
      { "group", "h225.group_IA5String",
9970
14
        FT_STRING, BASE_NONE, NULL, 0,
9971
14
        "IA5String_SIZE_1_128", HFILL }},
9972
14
    { &hf_h225_carrier,
9973
14
      { "carrier", "h225.carrier_element",
9974
14
        FT_NONE, BASE_NONE, NULL, 0,
9975
14
        "CarrierInfo", HFILL }},
9976
14
    { &hf_h225_sourceCircuitID,
9977
14
      { "sourceCircuitID", "h225.sourceCircuitID_element",
9978
14
        FT_NONE, BASE_NONE, NULL, 0,
9979
14
        "CircuitIdentifier", HFILL }},
9980
14
    { &hf_h225_destinationCircuitID,
9981
14
      { "destinationCircuitID", "h225.destinationCircuitID_element",
9982
14
        FT_NONE, BASE_NONE, NULL, 0,
9983
14
        "CircuitIdentifier", HFILL }},
9984
14
    { &hf_h225_cic,
9985
14
      { "cic", "h225.cic_element",
9986
14
        FT_NONE, BASE_NONE, NULL, 0,
9987
14
        "CicInfo", HFILL }},
9988
14
    { &hf_h225_group,
9989
14
      { "group", "h225.group_element",
9990
14
        FT_NONE, BASE_NONE, NULL, 0,
9991
14
        "GroupID", HFILL }},
9992
14
    { &hf_h225_cic_2_4,
9993
14
      { "cic", "h225.cic_2_4",
9994
14
        FT_UINT32, BASE_DEC, NULL, 0,
9995
14
        "T_cic_2_4", HFILL }},
9996
14
    { &hf_h225_cic_2_4_item,
9997
14
      { "cic item", "h225.cic_2_4_item",
9998
14
        FT_BYTES, BASE_NONE, NULL, 0,
9999
14
        "OCTET_STRING_SIZE_2_4", HFILL }},
10000
14
    { &hf_h225_pointCode,
10001
14
      { "pointCode", "h225.pointCode",
10002
14
        FT_BYTES, BASE_NONE, NULL, 0,
10003
14
        "OCTET_STRING_SIZE_2_5", HFILL }},
10004
14
    { &hf_h225_member,
10005
14
      { "member", "h225.member",
10006
14
        FT_UINT32, BASE_DEC, NULL, 0,
10007
14
        NULL, HFILL }},
10008
14
    { &hf_h225_member_item,
10009
14
      { "member item", "h225.member_item",
10010
14
        FT_UINT32, BASE_DEC, NULL, 0,
10011
14
        "INTEGER_0_65535", HFILL }},
10012
14
    { &hf_h225_carrierIdentificationCode,
10013
14
      { "carrierIdentificationCode", "h225.carrierIdentificationCode",
10014
14
        FT_BYTES, BASE_NONE, NULL, 0,
10015
14
        "OCTET_STRING_SIZE_3_4", HFILL }},
10016
14
    { &hf_h225_carrierName,
10017
14
      { "carrierName", "h225.carrierName",
10018
14
        FT_STRING, BASE_NONE, NULL, 0,
10019
14
        "IA5String_SIZE_1_128", HFILL }},
10020
14
    { &hf_h225_url,
10021
14
      { "url", "h225.url",
10022
14
        FT_STRING, BASE_NONE, NULL, 0,
10023
14
        "IA5String_SIZE_0_512", HFILL }},
10024
14
    { &hf_h225_signal,
10025
14
      { "signal", "h225.signal",
10026
14
        FT_BYTES, BASE_NONE, NULL, 0,
10027
14
        "H248SignalsDescriptor", HFILL }},
10028
14
    { &hf_h225_callCreditServiceControl,
10029
14
      { "callCreditServiceControl", "h225.callCreditServiceControl_element",
10030
14
        FT_NONE, BASE_NONE, NULL, 0,
10031
14
        NULL, HFILL }},
10032
14
    { &hf_h225_sessionId_0_255,
10033
14
      { "sessionId", "h225.sessionId_0_255",
10034
14
        FT_UINT32, BASE_DEC, NULL, 0,
10035
14
        "INTEGER_0_255", HFILL }},
10036
14
    { &hf_h225_contents,
10037
14
      { "contents", "h225.contents",
10038
14
        FT_UINT32, BASE_DEC, VALS(h225_ServiceControlDescriptor_vals), 0,
10039
14
        "ServiceControlDescriptor", HFILL }},
10040
14
    { &hf_h225_reason,
10041
14
      { "reason", "h225.reason",
10042
14
        FT_UINT32, BASE_DEC, VALS(h225_ServiceControlSession_reason_vals), 0,
10043
14
        "ServiceControlSession_reason", HFILL }},
10044
14
    { &hf_h225_open,
10045
14
      { "open", "h225.open_element",
10046
14
        FT_NONE, BASE_NONE, NULL, 0,
10047
14
        NULL, HFILL }},
10048
14
    { &hf_h225_refresh,
10049
14
      { "refresh", "h225.refresh_element",
10050
14
        FT_NONE, BASE_NONE, NULL, 0,
10051
14
        NULL, HFILL }},
10052
14
    { &hf_h225_close,
10053
14
      { "close", "h225.close_element",
10054
14
        FT_NONE, BASE_NONE, NULL, 0,
10055
14
        NULL, HFILL }},
10056
14
    { &hf_h225_nonStandardUsageTypes,
10057
14
      { "nonStandardUsageTypes", "h225.nonStandardUsageTypes",
10058
14
        FT_UINT32, BASE_DEC, NULL, 0,
10059
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
10060
14
    { &hf_h225_nonStandardUsageTypes_item,
10061
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
10062
14
        FT_NONE, BASE_NONE, NULL, 0,
10063
14
        NULL, HFILL }},
10064
14
    { &hf_h225_startTime,
10065
14
      { "startTime", "h225.startTime_element",
10066
14
        FT_NONE, BASE_NONE, NULL, 0,
10067
14
        NULL, HFILL }},
10068
14
    { &hf_h225_endTime_flg,
10069
14
      { "endTime", "h225.endTime_flg_element",
10070
14
        FT_NONE, BASE_NONE, NULL, 0,
10071
14
        NULL, HFILL }},
10072
14
    { &hf_h225_terminationCause_flg,
10073
14
      { "terminationCause", "h225.terminationCause_flg_element",
10074
14
        FT_NONE, BASE_NONE, NULL, 0,
10075
14
        NULL, HFILL }},
10076
14
    { &hf_h225_when,
10077
14
      { "when", "h225.when_element",
10078
14
        FT_NONE, BASE_NONE, NULL, 0,
10079
14
        "RasUsageSpecification_when", HFILL }},
10080
14
    { &hf_h225_start,
10081
14
      { "start", "h225.start_element",
10082
14
        FT_NONE, BASE_NONE, NULL, 0,
10083
14
        NULL, HFILL }},
10084
14
    { &hf_h225_end,
10085
14
      { "end", "h225.end_element",
10086
14
        FT_NONE, BASE_NONE, NULL, 0,
10087
14
        NULL, HFILL }},
10088
14
    { &hf_h225_inIrr,
10089
14
      { "inIrr", "h225.inIrr_element",
10090
14
        FT_NONE, BASE_NONE, NULL, 0,
10091
14
        NULL, HFILL }},
10092
14
    { &hf_h225_ras_callStartingPoint,
10093
14
      { "callStartingPoint", "h225.ras_callStartingPoint_element",
10094
14
        FT_NONE, BASE_NONE, NULL, 0,
10095
14
        "RasUsageSpecificationcallStartingPoint", HFILL }},
10096
14
    { &hf_h225_alerting_flg,
10097
14
      { "alerting", "h225.alerting_flg_element",
10098
14
        FT_NONE, BASE_NONE, NULL, 0,
10099
14
        NULL, HFILL }},
10100
14
    { &hf_h225_connect_flg,
10101
14
      { "connect", "h225.connect_flg_element",
10102
14
        FT_NONE, BASE_NONE, NULL, 0,
10103
14
        NULL, HFILL }},
10104
14
    { &hf_h225_required,
10105
14
      { "required", "h225.required_element",
10106
14
        FT_NONE, BASE_NONE, NULL, 0,
10107
14
        "RasUsageInfoTypes", HFILL }},
10108
14
    { &hf_h225_nonStandardUsageFields,
10109
14
      { "nonStandardUsageFields", "h225.nonStandardUsageFields",
10110
14
        FT_UINT32, BASE_DEC, NULL, 0,
10111
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
10112
14
    { &hf_h225_nonStandardUsageFields_item,
10113
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
10114
14
        FT_NONE, BASE_NONE, NULL, 0,
10115
14
        NULL, HFILL }},
10116
14
    { &hf_h225_alertingTime,
10117
14
      { "alertingTime", "h225.alertingTime",
10118
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10119
14
        "TimeStamp", HFILL }},
10120
14
    { &hf_h225_connectTime,
10121
14
      { "connectTime", "h225.connectTime",
10122
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10123
14
        "TimeStamp", HFILL }},
10124
14
    { &hf_h225_endTime,
10125
14
      { "endTime", "h225.endTime",
10126
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10127
14
        "TimeStamp", HFILL }},
10128
14
    { &hf_h225_releaseCompleteCauseIE,
10129
14
      { "releaseCompleteCauseIE", "h225.releaseCompleteCauseIE",
10130
14
        FT_BYTES, BASE_NONE, NULL, 0,
10131
14
        "OCTET_STRING_SIZE_2_32", HFILL }},
10132
14
    { &hf_h225_sender,
10133
14
      { "sender", "h225.sender",
10134
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10135
14
        "BOOLEAN", HFILL }},
10136
14
    { &hf_h225_multicast,
10137
14
      { "multicast", "h225.multicast",
10138
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10139
14
        "BOOLEAN", HFILL }},
10140
14
    { &hf_h225_bandwidth,
10141
14
      { "bandwidth", "h225.bandwidth",
10142
14
        FT_UINT32, BASE_DEC, NULL, 0,
10143
14
        NULL, HFILL }},
10144
14
    { &hf_h225_rtcpAddresses,
10145
14
      { "rtcpAddresses", "h225.rtcpAddresses_element",
10146
14
        FT_NONE, BASE_NONE, NULL, 0,
10147
14
        "TransportChannelInfo", HFILL }},
10148
14
    { &hf_h225_canDisplayAmountString,
10149
14
      { "canDisplayAmountString", "h225.canDisplayAmountString",
10150
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10151
14
        "BOOLEAN", HFILL }},
10152
14
    { &hf_h225_canEnforceDurationLimit,
10153
14
      { "canEnforceDurationLimit", "h225.canEnforceDurationLimit",
10154
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10155
14
        "BOOLEAN", HFILL }},
10156
14
    { &hf_h225_amountString,
10157
14
      { "amountString", "h225.amountString",
10158
14
        FT_STRING, BASE_NONE, NULL, 0,
10159
14
        "BMPString_SIZE_1_512", HFILL }},
10160
14
    { &hf_h225_billingMode,
10161
14
      { "billingMode", "h225.billingMode",
10162
14
        FT_UINT32, BASE_DEC, VALS(h225_T_billingMode_vals), 0,
10163
14
        NULL, HFILL }},
10164
14
    { &hf_h225_credit,
10165
14
      { "credit", "h225.credit_element",
10166
14
        FT_NONE, BASE_NONE, NULL, 0,
10167
14
        NULL, HFILL }},
10168
14
    { &hf_h225_debit,
10169
14
      { "debit", "h225.debit_element",
10170
14
        FT_NONE, BASE_NONE, NULL, 0,
10171
14
        NULL, HFILL }},
10172
14
    { &hf_h225_callDurationLimit,
10173
14
      { "callDurationLimit", "h225.callDurationLimit",
10174
14
        FT_UINT32, BASE_DEC, NULL, 0,
10175
14
        "INTEGER_1_4294967295", HFILL }},
10176
14
    { &hf_h225_enforceCallDurationLimit,
10177
14
      { "enforceCallDurationLimit", "h225.enforceCallDurationLimit",
10178
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10179
14
        "BOOLEAN", HFILL }},
10180
14
    { &hf_h225_callStartingPoint,
10181
14
      { "callStartingPoint", "h225.callStartingPoint",
10182
14
        FT_UINT32, BASE_DEC, VALS(h225_CallCreditServiceControl_callStartingPoint_vals), 0,
10183
14
        "CallCreditServiceControl_callStartingPoint", HFILL }},
10184
14
    { &hf_h225_id,
10185
14
      { "id", "h225.id",
10186
14
        FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
10187
14
        "GenericIdentifier", HFILL }},
10188
14
    { &hf_h225_parameters,
10189
14
      { "parameters", "h225.parameters",
10190
14
        FT_UINT32, BASE_DEC, NULL, 0,
10191
14
        "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10192
14
    { &hf_h225_parameters_item,
10193
14
      { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10194
14
        FT_NONE, BASE_NONE, NULL, 0,
10195
14
        NULL, HFILL }},
10196
14
    { &hf_h225_standard,
10197
14
      { "standard", "h225.standard",
10198
14
        FT_UINT32, BASE_DEC, NULL, 0,
10199
14
        NULL, HFILL }},
10200
14
    { &hf_h225_oid,
10201
14
      { "oid", "h225.oid",
10202
14
        FT_OID, BASE_NONE, NULL, 0,
10203
14
        NULL, HFILL }},
10204
14
    { &hf_h225_genericIdentifier_nonStandard,
10205
14
      { "nonStandard", "h225.genericIdentifier_nonStandard",
10206
14
        FT_GUID, BASE_NONE, NULL, 0,
10207
14
        "GloballyUniqueID", HFILL }},
10208
14
    { &hf_h225_content,
10209
14
      { "content", "h225.content",
10210
14
        FT_UINT32, BASE_DEC, VALS(h225_Content_vals), 0,
10211
14
        NULL, HFILL }},
10212
14
    { &hf_h225_raw,
10213
14
      { "raw", "h225.raw",
10214
14
        FT_BYTES, BASE_NONE, NULL, 0,
10215
14
        NULL, HFILL }},
10216
14
    { &hf_h225_text,
10217
14
      { "text", "h225.text",
10218
14
        FT_STRING, BASE_NONE, NULL, 0,
10219
14
        "IA5String", HFILL }},
10220
14
    { &hf_h225_unicode,
10221
14
      { "unicode", "h225.unicode",
10222
14
        FT_STRING, BASE_NONE, NULL, 0,
10223
14
        "BMPString", HFILL }},
10224
14
    { &hf_h225_bool,
10225
14
      { "bool", "h225.bool",
10226
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10227
14
        "BOOLEAN", HFILL }},
10228
14
    { &hf_h225_number8,
10229
14
      { "number8", "h225.number8",
10230
14
        FT_UINT32, BASE_DEC, NULL, 0,
10231
14
        "INTEGER_0_255", HFILL }},
10232
14
    { &hf_h225_number16,
10233
14
      { "number16", "h225.number16",
10234
14
        FT_UINT32, BASE_DEC, NULL, 0,
10235
14
        "INTEGER_0_65535", HFILL }},
10236
14
    { &hf_h225_number32,
10237
14
      { "number32", "h225.number32",
10238
14
        FT_UINT32, BASE_DEC, NULL, 0,
10239
14
        "INTEGER_0_4294967295", HFILL }},
10240
14
    { &hf_h225_transport,
10241
14
      { "transport", "h225.transport",
10242
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10243
14
        "TransportAddress", HFILL }},
10244
14
    { &hf_h225_compound,
10245
14
      { "compound", "h225.compound",
10246
14
        FT_UINT32, BASE_DEC, NULL, 0,
10247
14
        "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10248
14
    { &hf_h225_compound_item,
10249
14
      { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10250
14
        FT_NONE, BASE_NONE, NULL, 0,
10251
14
        NULL, HFILL }},
10252
14
    { &hf_h225_nested,
10253
14
      { "nested", "h225.nested",
10254
14
        FT_UINT32, BASE_DEC, NULL, 0,
10255
14
        "SEQUENCE_SIZE_1_16_OF_GenericData", HFILL }},
10256
14
    { &hf_h225_nested_item,
10257
14
      { "GenericData", "h225.GenericData_element",
10258
14
        FT_NONE, BASE_NONE, NULL, 0,
10259
14
        NULL, HFILL }},
10260
14
    { &hf_h225_replacementFeatureSet,
10261
14
      { "replacementFeatureSet", "h225.replacementFeatureSet",
10262
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10263
14
        "BOOLEAN", HFILL }},
10264
14
    { &hf_h225_sendAddress,
10265
14
      { "sendAddress", "h225.sendAddress",
10266
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10267
14
        "TransportAddress", HFILL }},
10268
14
    { &hf_h225_recvAddress,
10269
14
      { "recvAddress", "h225.recvAddress",
10270
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10271
14
        "TransportAddress", HFILL }},
10272
14
    { &hf_h225_rtpAddress,
10273
14
      { "rtpAddress", "h225.rtpAddress_element",
10274
14
        FT_NONE, BASE_NONE, NULL, 0,
10275
14
        "TransportChannelInfo", HFILL }},
10276
14
    { &hf_h225_rtcpAddress,
10277
14
      { "rtcpAddress", "h225.rtcpAddress_element",
10278
14
        FT_NONE, BASE_NONE, NULL, 0,
10279
14
        "TransportChannelInfo", HFILL }},
10280
14
    { &hf_h225_cname,
10281
14
      { "cname", "h225.cname",
10282
14
        FT_STRING, BASE_NONE, NULL, 0,
10283
14
        "PrintableString", HFILL }},
10284
14
    { &hf_h225_ssrc,
10285
14
      { "ssrc", "h225.ssrc",
10286
14
        FT_UINT32, BASE_DEC, NULL, 0,
10287
14
        "INTEGER_1_4294967295", HFILL }},
10288
14
    { &hf_h225_sessionId,
10289
14
      { "sessionId", "h225.sessionId",
10290
14
        FT_UINT32, BASE_DEC, NULL, 0,
10291
14
        "INTEGER_1_255", HFILL }},
10292
14
    { &hf_h225_associatedSessionIds,
10293
14
      { "associatedSessionIds", "h225.associatedSessionIds",
10294
14
        FT_UINT32, BASE_DEC, NULL, 0,
10295
14
        NULL, HFILL }},
10296
14
    { &hf_h225_associatedSessionIds_item,
10297
14
      { "associatedSessionIds item", "h225.associatedSessionIds_item",
10298
14
        FT_UINT32, BASE_DEC, NULL, 0,
10299
14
        "INTEGER_1_255", HFILL }},
10300
14
    { &hf_h225_multicast_flg,
10301
14
      { "multicast", "h225.multicast_flg_element",
10302
14
        FT_NONE, BASE_NONE, NULL, 0,
10303
14
        NULL, HFILL }},
10304
14
    { &hf_h225_gatekeeperBased,
10305
14
      { "gatekeeperBased", "h225.gatekeeperBased_element",
10306
14
        FT_NONE, BASE_NONE, NULL, 0,
10307
14
        NULL, HFILL }},
10308
14
    { &hf_h225_endpointBased,
10309
14
      { "endpointBased", "h225.endpointBased_element",
10310
14
        FT_NONE, BASE_NONE, NULL, 0,
10311
14
        NULL, HFILL }},
10312
14
    { &hf_h225_gatekeeperRequest,
10313
14
      { "gatekeeperRequest", "h225.gatekeeperRequest_element",
10314
14
        FT_NONE, BASE_NONE, NULL, 0,
10315
14
        NULL, HFILL }},
10316
14
    { &hf_h225_gatekeeperConfirm,
10317
14
      { "gatekeeperConfirm", "h225.gatekeeperConfirm_element",
10318
14
        FT_NONE, BASE_NONE, NULL, 0,
10319
14
        NULL, HFILL }},
10320
14
    { &hf_h225_gatekeeperReject,
10321
14
      { "gatekeeperReject", "h225.gatekeeperReject_element",
10322
14
        FT_NONE, BASE_NONE, NULL, 0,
10323
14
        NULL, HFILL }},
10324
14
    { &hf_h225_registrationRequest,
10325
14
      { "registrationRequest", "h225.registrationRequest_element",
10326
14
        FT_NONE, BASE_NONE, NULL, 0,
10327
14
        NULL, HFILL }},
10328
14
    { &hf_h225_registrationConfirm,
10329
14
      { "registrationConfirm", "h225.registrationConfirm_element",
10330
14
        FT_NONE, BASE_NONE, NULL, 0,
10331
14
        NULL, HFILL }},
10332
14
    { &hf_h225_registrationReject,
10333
14
      { "registrationReject", "h225.registrationReject_element",
10334
14
        FT_NONE, BASE_NONE, NULL, 0,
10335
14
        NULL, HFILL }},
10336
14
    { &hf_h225_unregistrationRequest,
10337
14
      { "unregistrationRequest", "h225.unregistrationRequest_element",
10338
14
        FT_NONE, BASE_NONE, NULL, 0,
10339
14
        NULL, HFILL }},
10340
14
    { &hf_h225_unregistrationConfirm,
10341
14
      { "unregistrationConfirm", "h225.unregistrationConfirm_element",
10342
14
        FT_NONE, BASE_NONE, NULL, 0,
10343
14
        NULL, HFILL }},
10344
14
    { &hf_h225_unregistrationReject,
10345
14
      { "unregistrationReject", "h225.unregistrationReject_element",
10346
14
        FT_NONE, BASE_NONE, NULL, 0,
10347
14
        NULL, HFILL }},
10348
14
    { &hf_h225_admissionRequest,
10349
14
      { "admissionRequest", "h225.admissionRequest_element",
10350
14
        FT_NONE, BASE_NONE, NULL, 0,
10351
14
        NULL, HFILL }},
10352
14
    { &hf_h225_admissionConfirm,
10353
14
      { "admissionConfirm", "h225.admissionConfirm_element",
10354
14
        FT_NONE, BASE_NONE, NULL, 0,
10355
14
        NULL, HFILL }},
10356
14
    { &hf_h225_admissionReject,
10357
14
      { "admissionReject", "h225.admissionReject_element",
10358
14
        FT_NONE, BASE_NONE, NULL, 0,
10359
14
        NULL, HFILL }},
10360
14
    { &hf_h225_bandwidthRequest,
10361
14
      { "bandwidthRequest", "h225.bandwidthRequest_element",
10362
14
        FT_NONE, BASE_NONE, NULL, 0,
10363
14
        NULL, HFILL }},
10364
14
    { &hf_h225_bandwidthConfirm,
10365
14
      { "bandwidthConfirm", "h225.bandwidthConfirm_element",
10366
14
        FT_NONE, BASE_NONE, NULL, 0,
10367
14
        NULL, HFILL }},
10368
14
    { &hf_h225_bandwidthReject,
10369
14
      { "bandwidthReject", "h225.bandwidthReject_element",
10370
14
        FT_NONE, BASE_NONE, NULL, 0,
10371
14
        NULL, HFILL }},
10372
14
    { &hf_h225_disengageRequest,
10373
14
      { "disengageRequest", "h225.disengageRequest_element",
10374
14
        FT_NONE, BASE_NONE, NULL, 0,
10375
14
        NULL, HFILL }},
10376
14
    { &hf_h225_disengageConfirm,
10377
14
      { "disengageConfirm", "h225.disengageConfirm_element",
10378
14
        FT_NONE, BASE_NONE, NULL, 0,
10379
14
        NULL, HFILL }},
10380
14
    { &hf_h225_disengageReject,
10381
14
      { "disengageReject", "h225.disengageReject_element",
10382
14
        FT_NONE, BASE_NONE, NULL, 0,
10383
14
        NULL, HFILL }},
10384
14
    { &hf_h225_locationRequest,
10385
14
      { "locationRequest", "h225.locationRequest_element",
10386
14
        FT_NONE, BASE_NONE, NULL, 0,
10387
14
        NULL, HFILL }},
10388
14
    { &hf_h225_locationConfirm,
10389
14
      { "locationConfirm", "h225.locationConfirm_element",
10390
14
        FT_NONE, BASE_NONE, NULL, 0,
10391
14
        NULL, HFILL }},
10392
14
    { &hf_h225_locationReject,
10393
14
      { "locationReject", "h225.locationReject_element",
10394
14
        FT_NONE, BASE_NONE, NULL, 0,
10395
14
        NULL, HFILL }},
10396
14
    { &hf_h225_infoRequest,
10397
14
      { "infoRequest", "h225.infoRequest_element",
10398
14
        FT_NONE, BASE_NONE, NULL, 0,
10399
14
        NULL, HFILL }},
10400
14
    { &hf_h225_infoRequestResponse,
10401
14
      { "infoRequestResponse", "h225.infoRequestResponse_element",
10402
14
        FT_NONE, BASE_NONE, NULL, 0,
10403
14
        NULL, HFILL }},
10404
14
    { &hf_h225_nonStandardMessage,
10405
14
      { "nonStandardMessage", "h225.nonStandardMessage_element",
10406
14
        FT_NONE, BASE_NONE, NULL, 0,
10407
14
        NULL, HFILL }},
10408
14
    { &hf_h225_unknownMessageResponse,
10409
14
      { "unknownMessageResponse", "h225.unknownMessageResponse_element",
10410
14
        FT_NONE, BASE_NONE, NULL, 0,
10411
14
        NULL, HFILL }},
10412
14
    { &hf_h225_requestInProgress,
10413
14
      { "requestInProgress", "h225.requestInProgress_element",
10414
14
        FT_NONE, BASE_NONE, NULL, 0,
10415
14
        NULL, HFILL }},
10416
14
    { &hf_h225_resourcesAvailableIndicate,
10417
14
      { "resourcesAvailableIndicate", "h225.resourcesAvailableIndicate_element",
10418
14
        FT_NONE, BASE_NONE, NULL, 0,
10419
14
        NULL, HFILL }},
10420
14
    { &hf_h225_resourcesAvailableConfirm,
10421
14
      { "resourcesAvailableConfirm", "h225.resourcesAvailableConfirm_element",
10422
14
        FT_NONE, BASE_NONE, NULL, 0,
10423
14
        NULL, HFILL }},
10424
14
    { &hf_h225_infoRequestAck,
10425
14
      { "infoRequestAck", "h225.infoRequestAck_element",
10426
14
        FT_NONE, BASE_NONE, NULL, 0,
10427
14
        NULL, HFILL }},
10428
14
    { &hf_h225_infoRequestNak,
10429
14
      { "infoRequestNak", "h225.infoRequestNak_element",
10430
14
        FT_NONE, BASE_NONE, NULL, 0,
10431
14
        NULL, HFILL }},
10432
14
    { &hf_h225_serviceControlIndication,
10433
14
      { "serviceControlIndication", "h225.serviceControlIndication_element",
10434
14
        FT_NONE, BASE_NONE, NULL, 0,
10435
14
        NULL, HFILL }},
10436
14
    { &hf_h225_serviceControlResponse,
10437
14
      { "serviceControlResponse", "h225.serviceControlResponse_element",
10438
14
        FT_NONE, BASE_NONE, NULL, 0,
10439
14
        NULL, HFILL }},
10440
14
    { &hf_h225_admissionConfirmSequence,
10441
14
      { "admissionConfirmSequence", "h225.admissionConfirmSequence",
10442
14
        FT_UINT32, BASE_DEC, NULL, 0,
10443
14
        "SEQUENCE_OF_AdmissionConfirm", HFILL }},
10444
14
    { &hf_h225_admissionConfirmSequence_item,
10445
14
      { "AdmissionConfirm", "h225.AdmissionConfirm_element",
10446
14
        FT_NONE, BASE_NONE, NULL, 0,
10447
14
        NULL, HFILL }},
10448
14
    { &hf_h225_requestSeqNum,
10449
14
      { "requestSeqNum", "h225.requestSeqNum",
10450
14
        FT_UINT32, BASE_DEC, NULL, 0,
10451
14
        NULL, HFILL }},
10452
14
    { &hf_h225_gatekeeperRequest_rasAddress,
10453
14
      { "rasAddress", "h225.gatekeeperRequest_rasAddress",
10454
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10455
14
        "TransportAddress", HFILL }},
10456
14
    { &hf_h225_endpointAlias,
10457
14
      { "endpointAlias", "h225.endpointAlias",
10458
14
        FT_UINT32, BASE_DEC, NULL, 0,
10459
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10460
14
    { &hf_h225_endpointAlias_item,
10461
14
      { "AliasAddress", "h225.AliasAddress",
10462
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10463
14
        NULL, HFILL }},
10464
14
    { &hf_h225_alternateEndpoints,
10465
14
      { "alternateEndpoints", "h225.alternateEndpoints",
10466
14
        FT_UINT32, BASE_DEC, NULL, 0,
10467
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10468
14
    { &hf_h225_alternateEndpoints_item,
10469
14
      { "Endpoint", "h225.Endpoint_element",
10470
14
        FT_NONE, BASE_NONE, NULL, 0,
10471
14
        NULL, HFILL }},
10472
14
    { &hf_h225_authenticationCapability,
10473
14
      { "authenticationCapability", "h225.authenticationCapability",
10474
14
        FT_UINT32, BASE_DEC, NULL, 0,
10475
14
        "SEQUENCE_OF_AuthenticationMechanism", HFILL }},
10476
14
    { &hf_h225_authenticationCapability_item,
10477
14
      { "AuthenticationMechanism", "h225.AuthenticationMechanism",
10478
14
        FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10479
14
        NULL, HFILL }},
10480
14
    { &hf_h225_algorithmOIDs,
10481
14
      { "algorithmOIDs", "h225.algorithmOIDs",
10482
14
        FT_UINT32, BASE_DEC, NULL, 0,
10483
14
        NULL, HFILL }},
10484
14
    { &hf_h225_algorithmOIDs_item,
10485
14
      { "algorithmOIDs item", "h225.algorithmOIDs_item",
10486
14
        FT_OID, BASE_NONE, NULL, 0,
10487
14
        "OBJECT_IDENTIFIER", HFILL }},
10488
14
    { &hf_h225_integrity,
10489
14
      { "integrity", "h225.integrity",
10490
14
        FT_UINT32, BASE_DEC, NULL, 0,
10491
14
        "SEQUENCE_OF_IntegrityMechanism", HFILL }},
10492
14
    { &hf_h225_integrity_item,
10493
14
      { "IntegrityMechanism", "h225.IntegrityMechanism",
10494
14
        FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
10495
14
        NULL, HFILL }},
10496
14
    { &hf_h225_integrityCheckValue,
10497
14
      { "integrityCheckValue", "h225.integrityCheckValue_element",
10498
14
        FT_NONE, BASE_NONE, NULL, 0,
10499
14
        "ICV", HFILL }},
10500
14
    { &hf_h225_supportsAltGK,
10501
14
      { "supportsAltGK", "h225.supportsAltGK_element",
10502
14
        FT_NONE, BASE_NONE, NULL, 0,
10503
14
        NULL, HFILL }},
10504
14
    { &hf_h225_supportsAssignedGK,
10505
14
      { "supportsAssignedGK", "h225.supportsAssignedGK",
10506
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10507
14
        "BOOLEAN", HFILL }},
10508
14
    { &hf_h225_assignedGatekeeper,
10509
14
      { "assignedGatekeeper", "h225.assignedGatekeeper_element",
10510
14
        FT_NONE, BASE_NONE, NULL, 0,
10511
14
        "AlternateGK", HFILL }},
10512
14
    { &hf_h225_gatekeeperConfirm_rasAddress,
10513
14
      { "rasAddress", "h225.gatekeeperConfirm_rasAddress",
10514
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10515
14
        "TransportAddress", HFILL }},
10516
14
    { &hf_h225_authenticationMode,
10517
14
      { "authenticationMode", "h225.authenticationMode",
10518
14
        FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10519
14
        "AuthenticationMechanism", HFILL }},
10520
14
    { &hf_h225_rehomingModel,
10521
14
      { "rehomingModel", "h225.rehomingModel",
10522
14
        FT_UINT32, BASE_DEC, VALS(h225_RehomingModel_vals), 0,
10523
14
        NULL, HFILL }},
10524
14
    { &hf_h225_gatekeeperRejectReason,
10525
14
      { "rejectReason", "h225.gatekeeperRejectReason",
10526
14
        FT_UINT32, BASE_DEC, VALS(GatekeeperRejectReason_vals), 0,
10527
14
        "GatekeeperRejectReason", HFILL }},
10528
14
    { &hf_h225_altGKInfo,
10529
14
      { "altGKInfo", "h225.altGKInfo_element",
10530
14
        FT_NONE, BASE_NONE, NULL, 0,
10531
14
        NULL, HFILL }},
10532
14
    { &hf_h225_resourceUnavailable,
10533
14
      { "resourceUnavailable", "h225.resourceUnavailable_element",
10534
14
        FT_NONE, BASE_NONE, NULL, 0,
10535
14
        NULL, HFILL }},
10536
14
    { &hf_h225_terminalExcluded,
10537
14
      { "terminalExcluded", "h225.terminalExcluded_element",
10538
14
        FT_NONE, BASE_NONE, NULL, 0,
10539
14
        NULL, HFILL }},
10540
14
    { &hf_h225_securityDenial,
10541
14
      { "securityDenial", "h225.securityDenial_element",
10542
14
        FT_NONE, BASE_NONE, NULL, 0,
10543
14
        NULL, HFILL }},
10544
14
    { &hf_h225_gkRej_securityError,
10545
14
      { "securityError", "h225.gkRej_securityError",
10546
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10547
14
        "SecurityErrors", HFILL }},
10548
14
    { &hf_h225_discoveryComplete,
10549
14
      { "discoveryComplete", "h225.discoveryComplete",
10550
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10551
14
        "BOOLEAN", HFILL }},
10552
14
    { &hf_h225_terminalType,
10553
14
      { "terminalType", "h225.terminalType_element",
10554
14
        FT_NONE, BASE_NONE, NULL, 0,
10555
14
        "EndpointType", HFILL }},
10556
14
    { &hf_h225_terminalAlias,
10557
14
      { "terminalAlias", "h225.terminalAlias",
10558
14
        FT_UINT32, BASE_DEC, NULL, 0,
10559
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10560
14
    { &hf_h225_terminalAlias_item,
10561
14
      { "AliasAddress", "h225.AliasAddress",
10562
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10563
14
        NULL, HFILL }},
10564
14
    { &hf_h225_endpointVendor,
10565
14
      { "endpointVendor", "h225.endpointVendor_element",
10566
14
        FT_NONE, BASE_NONE, NULL, 0,
10567
14
        "VendorIdentifier", HFILL }},
10568
14
    { &hf_h225_timeToLive,
10569
14
      { "timeToLive", "h225.timeToLive",
10570
14
        FT_UINT32, BASE_DEC, NULL, 0,
10571
14
        NULL, HFILL }},
10572
14
    { &hf_h225_keepAlive,
10573
14
      { "keepAlive", "h225.keepAlive",
10574
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10575
14
        "BOOLEAN", HFILL }},
10576
14
    { &hf_h225_willSupplyUUIEs,
10577
14
      { "willSupplyUUIEs", "h225.willSupplyUUIEs",
10578
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10579
14
        "BOOLEAN", HFILL }},
10580
14
    { &hf_h225_additiveRegistration,
10581
14
      { "additiveRegistration", "h225.additiveRegistration_element",
10582
14
        FT_NONE, BASE_NONE, NULL, 0,
10583
14
        NULL, HFILL }},
10584
14
    { &hf_h225_terminalAliasPattern,
10585
14
      { "terminalAliasPattern", "h225.terminalAliasPattern",
10586
14
        FT_UINT32, BASE_DEC, NULL, 0,
10587
14
        "SEQUENCE_OF_AddressPattern", HFILL }},
10588
14
    { &hf_h225_terminalAliasPattern_item,
10589
14
      { "AddressPattern", "h225.AddressPattern",
10590
14
        FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10591
14
        NULL, HFILL }},
10592
14
    { &hf_h225_usageReportingCapability,
10593
14
      { "usageReportingCapability", "h225.usageReportingCapability_element",
10594
14
        FT_NONE, BASE_NONE, NULL, 0,
10595
14
        "RasUsageInfoTypes", HFILL }},
10596
14
    { &hf_h225_supportedH248Packages,
10597
14
      { "supportedH248Packages", "h225.supportedH248Packages",
10598
14
        FT_UINT32, BASE_DEC, NULL, 0,
10599
14
        "SEQUENCE_OF_H248PackagesDescriptor", HFILL }},
10600
14
    { &hf_h225_supportedH248Packages_item,
10601
14
      { "H248PackagesDescriptor", "h225.H248PackagesDescriptor",
10602
14
        FT_BYTES, BASE_NONE, NULL, 0,
10603
14
        NULL, HFILL }},
10604
14
    { &hf_h225_callCreditCapability,
10605
14
      { "callCreditCapability", "h225.callCreditCapability_element",
10606
14
        FT_NONE, BASE_NONE, NULL, 0,
10607
14
        NULL, HFILL }},
10608
14
    { &hf_h225_capacityReportingCapability,
10609
14
      { "capacityReportingCapability", "h225.capacityReportingCapability_element",
10610
14
        FT_NONE, BASE_NONE, NULL, 0,
10611
14
        NULL, HFILL }},
10612
14
    { &hf_h225_restart,
10613
14
      { "restart", "h225.restart_element",
10614
14
        FT_NONE, BASE_NONE, NULL, 0,
10615
14
        NULL, HFILL }},
10616
14
    { &hf_h225_supportsACFSequences,
10617
14
      { "supportsACFSequences", "h225.supportsACFSequences_element",
10618
14
        FT_NONE, BASE_NONE, NULL, 0,
10619
14
        NULL, HFILL }},
10620
14
    { &hf_h225_transportQOS,
10621
14
      { "transportQOS", "h225.transportQOS",
10622
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
10623
14
        NULL, HFILL }},
10624
14
    { &hf_h225_willRespondToIRR,
10625
14
      { "willRespondToIRR", "h225.willRespondToIRR",
10626
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10627
14
        "BOOLEAN", HFILL }},
10628
14
    { &hf_h225_preGrantedARQ,
10629
14
      { "preGrantedARQ", "h225.preGrantedARQ_element",
10630
14
        FT_NONE, BASE_NONE, NULL, 0,
10631
14
        NULL, HFILL }},
10632
14
    { &hf_h225_makeCall,
10633
14
      { "makeCall", "h225.makeCall",
10634
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10635
14
        "BOOLEAN", HFILL }},
10636
14
    { &hf_h225_useGKCallSignalAddressToMakeCall,
10637
14
      { "useGKCallSignalAddressToMakeCall", "h225.useGKCallSignalAddressToMakeCall",
10638
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10639
14
        "BOOLEAN", HFILL }},
10640
14
    { &hf_h225_answerCall,
10641
14
      { "answerCall", "h225.answerCall",
10642
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10643
14
        "BOOLEAN", HFILL }},
10644
14
    { &hf_h225_useGKCallSignalAddressToAnswer,
10645
14
      { "useGKCallSignalAddressToAnswer", "h225.useGKCallSignalAddressToAnswer",
10646
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10647
14
        "BOOLEAN", HFILL }},
10648
14
    { &hf_h225_irrFrequencyInCall,
10649
14
      { "irrFrequencyInCall", "h225.irrFrequencyInCall",
10650
14
        FT_UINT32, BASE_DEC, NULL, 0,
10651
14
        "INTEGER_1_65535", HFILL }},
10652
14
    { &hf_h225_totalBandwidthRestriction,
10653
14
      { "totalBandwidthRestriction", "h225.totalBandwidthRestriction",
10654
14
        FT_UINT32, BASE_DEC, NULL, 0,
10655
14
        "BandWidth", HFILL }},
10656
14
    { &hf_h225_useSpecifiedTransport,
10657
14
      { "useSpecifiedTransport", "h225.useSpecifiedTransport",
10658
14
        FT_UINT32, BASE_DEC, VALS(h225_UseSpecifiedTransport_vals), 0,
10659
14
        NULL, HFILL }},
10660
14
    { &hf_h225_supportsAdditiveRegistration,
10661
14
      { "supportsAdditiveRegistration", "h225.supportsAdditiveRegistration_element",
10662
14
        FT_NONE, BASE_NONE, NULL, 0,
10663
14
        NULL, HFILL }},
10664
14
    { &hf_h225_usageSpec,
10665
14
      { "usageSpec", "h225.usageSpec",
10666
14
        FT_UINT32, BASE_DEC, NULL, 0,
10667
14
        "SEQUENCE_OF_RasUsageSpecification", HFILL }},
10668
14
    { &hf_h225_usageSpec_item,
10669
14
      { "RasUsageSpecification", "h225.RasUsageSpecification_element",
10670
14
        FT_NONE, BASE_NONE, NULL, 0,
10671
14
        NULL, HFILL }},
10672
14
    { &hf_h225_featureServerAlias,
10673
14
      { "featureServerAlias", "h225.featureServerAlias",
10674
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10675
14
        "AliasAddress", HFILL }},
10676
14
    { &hf_h225_capacityReportingSpec,
10677
14
      { "capacityReportingSpec", "h225.capacityReportingSpec_element",
10678
14
        FT_NONE, BASE_NONE, NULL, 0,
10679
14
        "CapacityReportingSpecification", HFILL }},
10680
14
    { &hf_h225_registrationRejectReason,
10681
14
      { "rejectReason", "h225.registrationRejectReason",
10682
14
        FT_UINT32, BASE_DEC, VALS(RegistrationRejectReason_vals), 0,
10683
14
        "RegistrationRejectReason", HFILL }},
10684
14
    { &hf_h225_discoveryRequired,
10685
14
      { "discoveryRequired", "h225.discoveryRequired_element",
10686
14
        FT_NONE, BASE_NONE, NULL, 0,
10687
14
        NULL, HFILL }},
10688
14
    { &hf_h225_invalidCallSignalAddress,
10689
14
      { "invalidCallSignalAddress", "h225.invalidCallSignalAddress_element",
10690
14
        FT_NONE, BASE_NONE, NULL, 0,
10691
14
        NULL, HFILL }},
10692
14
    { &hf_h225_invalidRASAddress,
10693
14
      { "invalidRASAddress", "h225.invalidRASAddress_element",
10694
14
        FT_NONE, BASE_NONE, NULL, 0,
10695
14
        NULL, HFILL }},
10696
14
    { &hf_h225_duplicateAlias,
10697
14
      { "duplicateAlias", "h225.duplicateAlias",
10698
14
        FT_UINT32, BASE_DEC, NULL, 0,
10699
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10700
14
    { &hf_h225_duplicateAlias_item,
10701
14
      { "AliasAddress", "h225.AliasAddress",
10702
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10703
14
        NULL, HFILL }},
10704
14
    { &hf_h225_invalidTerminalType,
10705
14
      { "invalidTerminalType", "h225.invalidTerminalType_element",
10706
14
        FT_NONE, BASE_NONE, NULL, 0,
10707
14
        NULL, HFILL }},
10708
14
    { &hf_h225_transportNotSupported,
10709
14
      { "transportNotSupported", "h225.transportNotSupported_element",
10710
14
        FT_NONE, BASE_NONE, NULL, 0,
10711
14
        NULL, HFILL }},
10712
14
    { &hf_h225_transportQOSNotSupported,
10713
14
      { "transportQOSNotSupported", "h225.transportQOSNotSupported_element",
10714
14
        FT_NONE, BASE_NONE, NULL, 0,
10715
14
        NULL, HFILL }},
10716
14
    { &hf_h225_invalidAlias,
10717
14
      { "invalidAlias", "h225.invalidAlias_element",
10718
14
        FT_NONE, BASE_NONE, NULL, 0,
10719
14
        NULL, HFILL }},
10720
14
    { &hf_h225_fullRegistrationRequired,
10721
14
      { "fullRegistrationRequired", "h225.fullRegistrationRequired_element",
10722
14
        FT_NONE, BASE_NONE, NULL, 0,
10723
14
        NULL, HFILL }},
10724
14
    { &hf_h225_additiveRegistrationNotSupported,
10725
14
      { "additiveRegistrationNotSupported", "h225.additiveRegistrationNotSupported_element",
10726
14
        FT_NONE, BASE_NONE, NULL, 0,
10727
14
        NULL, HFILL }},
10728
14
    { &hf_h225_invalidTerminalAliases,
10729
14
      { "invalidTerminalAliases", "h225.invalidTerminalAliases_element",
10730
14
        FT_NONE, BASE_NONE, NULL, 0,
10731
14
        NULL, HFILL }},
10732
14
    { &hf_h225_reg_securityError,
10733
14
      { "securityError", "h225.reg_securityError",
10734
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10735
14
        "SecurityErrors", HFILL }},
10736
14
    { &hf_h225_registerWithAssignedGK,
10737
14
      { "registerWithAssignedGK", "h225.registerWithAssignedGK_element",
10738
14
        FT_NONE, BASE_NONE, NULL, 0,
10739
14
        NULL, HFILL }},
10740
14
    { &hf_h225_unregRequestReason,
10741
14
      { "reason", "h225.unregRequestReason",
10742
14
        FT_UINT32, BASE_DEC, VALS(UnregRequestReason_vals), 0,
10743
14
        "UnregRequestReason", HFILL }},
10744
14
    { &hf_h225_endpointAliasPattern,
10745
14
      { "endpointAliasPattern", "h225.endpointAliasPattern",
10746
14
        FT_UINT32, BASE_DEC, NULL, 0,
10747
14
        "SEQUENCE_OF_AddressPattern", HFILL }},
10748
14
    { &hf_h225_endpointAliasPattern_item,
10749
14
      { "AddressPattern", "h225.AddressPattern",
10750
14
        FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10751
14
        NULL, HFILL }},
10752
14
    { &hf_h225_reregistrationRequired,
10753
14
      { "reregistrationRequired", "h225.reregistrationRequired_element",
10754
14
        FT_NONE, BASE_NONE, NULL, 0,
10755
14
        NULL, HFILL }},
10756
14
    { &hf_h225_ttlExpired,
10757
14
      { "ttlExpired", "h225.ttlExpired_element",
10758
14
        FT_NONE, BASE_NONE, NULL, 0,
10759
14
        NULL, HFILL }},
10760
14
    { &hf_h225_maintenance,
10761
14
      { "maintenance", "h225.maintenance_element",
10762
14
        FT_NONE, BASE_NONE, NULL, 0,
10763
14
        NULL, HFILL }},
10764
14
    { &hf_h225_securityError,
10765
14
      { "securityError", "h225.securityError",
10766
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors2_vals), 0,
10767
14
        "SecurityErrors2", HFILL }},
10768
14
    { &hf_h225_unregRejectReason,
10769
14
      { "rejectReason", "h225.unregRejectReason",
10770
14
        FT_UINT32, BASE_DEC, VALS(UnregRejectReason_vals), 0,
10771
14
        "UnregRejectReason", HFILL }},
10772
14
    { &hf_h225_notCurrentlyRegistered,
10773
14
      { "notCurrentlyRegistered", "h225.notCurrentlyRegistered_element",
10774
14
        FT_NONE, BASE_NONE, NULL, 0,
10775
14
        NULL, HFILL }},
10776
14
    { &hf_h225_callInProgress,
10777
14
      { "callInProgress", "h225.callInProgress_element",
10778
14
        FT_NONE, BASE_NONE, NULL, 0,
10779
14
        NULL, HFILL }},
10780
14
    { &hf_h225_permissionDenied,
10781
14
      { "permissionDenied", "h225.permissionDenied_element",
10782
14
        FT_NONE, BASE_NONE, NULL, 0,
10783
14
        NULL, HFILL }},
10784
14
    { &hf_h225_callModel,
10785
14
      { "callModel", "h225.callModel",
10786
14
        FT_UINT32, BASE_DEC, VALS(h225_CallModel_vals), 0,
10787
14
        NULL, HFILL }},
10788
14
    { &hf_h225_DestinationInfo_item,
10789
14
      { "DestinationInfo item", "h225.DestinationInfo_item",
10790
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10791
14
        NULL, HFILL }},
10792
14
    { &hf_h225_destinationInfo_01,
10793
14
      { "destinationInfo", "h225.destinationInfo",
10794
14
        FT_UINT32, BASE_DEC, NULL, 0,
10795
14
        NULL, HFILL }},
10796
14
    { &hf_h225_srcInfo,
10797
14
      { "srcInfo", "h225.srcInfo",
10798
14
        FT_UINT32, BASE_DEC, NULL, 0,
10799
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10800
14
    { &hf_h225_srcInfo_item,
10801
14
      { "AliasAddress", "h225.AliasAddress",
10802
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10803
14
        NULL, HFILL }},
10804
14
    { &hf_h225_srcCallSignalAddress,
10805
14
      { "srcCallSignalAddress", "h225.srcCallSignalAddress",
10806
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10807
14
        "TransportAddress", HFILL }},
10808
14
    { &hf_h225_bandWidth,
10809
14
      { "bandWidth", "h225.bandWidth",
10810
14
        FT_UINT32, BASE_DEC, NULL, 0,
10811
14
        NULL, HFILL }},
10812
14
    { &hf_h225_callReferenceValue,
10813
14
      { "callReferenceValue", "h225.callReferenceValue",
10814
14
        FT_UINT32, BASE_DEC, NULL, 0,
10815
14
        NULL, HFILL }},
10816
14
    { &hf_h225_canMapAlias,
10817
14
      { "canMapAlias", "h225.canMapAlias",
10818
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10819
14
        "BOOLEAN", HFILL }},
10820
14
    { &hf_h225_srcAlternatives,
10821
14
      { "srcAlternatives", "h225.srcAlternatives",
10822
14
        FT_UINT32, BASE_DEC, NULL, 0,
10823
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10824
14
    { &hf_h225_srcAlternatives_item,
10825
14
      { "Endpoint", "h225.Endpoint_element",
10826
14
        FT_NONE, BASE_NONE, NULL, 0,
10827
14
        NULL, HFILL }},
10828
14
    { &hf_h225_destAlternatives,
10829
14
      { "destAlternatives", "h225.destAlternatives",
10830
14
        FT_UINT32, BASE_DEC, NULL, 0,
10831
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10832
14
    { &hf_h225_destAlternatives_item,
10833
14
      { "Endpoint", "h225.Endpoint_element",
10834
14
        FT_NONE, BASE_NONE, NULL, 0,
10835
14
        NULL, HFILL }},
10836
14
    { &hf_h225_gatewayDataRate,
10837
14
      { "gatewayDataRate", "h225.gatewayDataRate_element",
10838
14
        FT_NONE, BASE_NONE, NULL, 0,
10839
14
        "DataRate", HFILL }},
10840
14
    { &hf_h225_desiredTunnelledProtocol,
10841
14
      { "desiredTunnelledProtocol", "h225.desiredTunnelledProtocol_element",
10842
14
        FT_NONE, BASE_NONE, NULL, 0,
10843
14
        "TunnelledProtocol", HFILL }},
10844
14
    { &hf_h225_canMapSrcAlias,
10845
14
      { "canMapSrcAlias", "h225.canMapSrcAlias",
10846
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10847
14
        "BOOLEAN", HFILL }},
10848
14
    { &hf_h225_pointToPoint,
10849
14
      { "pointToPoint", "h225.pointToPoint_element",
10850
14
        FT_NONE, BASE_NONE, NULL, 0,
10851
14
        NULL, HFILL }},
10852
14
    { &hf_h225_oneToN,
10853
14
      { "oneToN", "h225.oneToN_element",
10854
14
        FT_NONE, BASE_NONE, NULL, 0,
10855
14
        NULL, HFILL }},
10856
14
    { &hf_h225_nToOne,
10857
14
      { "nToOne", "h225.nToOne_element",
10858
14
        FT_NONE, BASE_NONE, NULL, 0,
10859
14
        NULL, HFILL }},
10860
14
    { &hf_h225_nToN,
10861
14
      { "nToN", "h225.nToN_element",
10862
14
        FT_NONE, BASE_NONE, NULL, 0,
10863
14
        NULL, HFILL }},
10864
14
    { &hf_h225_direct,
10865
14
      { "direct", "h225.direct_element",
10866
14
        FT_NONE, BASE_NONE, NULL, 0,
10867
14
        NULL, HFILL }},
10868
14
    { &hf_h225_gatekeeperRouted,
10869
14
      { "gatekeeperRouted", "h225.gatekeeperRouted_element",
10870
14
        FT_NONE, BASE_NONE, NULL, 0,
10871
14
        NULL, HFILL }},
10872
14
    { &hf_h225_endpointControlled,
10873
14
      { "endpointControlled", "h225.endpointControlled_element",
10874
14
        FT_NONE, BASE_NONE, NULL, 0,
10875
14
        NULL, HFILL }},
10876
14
    { &hf_h225_gatekeeperControlled,
10877
14
      { "gatekeeperControlled", "h225.gatekeeperControlled_element",
10878
14
        FT_NONE, BASE_NONE, NULL, 0,
10879
14
        NULL, HFILL }},
10880
14
    { &hf_h225_noControl,
10881
14
      { "noControl", "h225.noControl_element",
10882
14
        FT_NONE, BASE_NONE, NULL, 0,
10883
14
        NULL, HFILL }},
10884
14
    { &hf_h225_qOSCapabilities,
10885
14
      { "qOSCapabilities", "h225.qOSCapabilities",
10886
14
        FT_UINT32, BASE_DEC, NULL, 0,
10887
14
        "SEQUENCE_SIZE_1_256_OF_QOSCapability", HFILL }},
10888
14
    { &hf_h225_qOSCapabilities_item,
10889
14
      { "QOSCapability", "h225.QOSCapability_element",
10890
14
        FT_NONE, BASE_NONE, NULL, 0,
10891
14
        NULL, HFILL }},
10892
14
    { &hf_h225_irrFrequency,
10893
14
      { "irrFrequency", "h225.irrFrequency",
10894
14
        FT_UINT32, BASE_DEC, NULL, 0,
10895
14
        "INTEGER_1_65535", HFILL }},
10896
14
    { &hf_h225_destinationType,
10897
14
      { "destinationType", "h225.destinationType_element",
10898
14
        FT_NONE, BASE_NONE, NULL, 0,
10899
14
        "EndpointType", HFILL }},
10900
14
    { &hf_h225_ac_remoteExtensionAddress_item,
10901
14
      { "AliasAddress", "h225.ac_remoteExtensionAddress_item",
10902
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10903
14
        NULL, HFILL }},
10904
14
    { &hf_h225_uuiesRequested,
10905
14
      { "uuiesRequested", "h225.uuiesRequested_element",
10906
14
        FT_NONE, BASE_NONE, NULL, 0,
10907
14
        NULL, HFILL }},
10908
14
    { &hf_h225_supportedProtocols,
10909
14
      { "supportedProtocols", "h225.supportedProtocols",
10910
14
        FT_UINT32, BASE_DEC, NULL, 0,
10911
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
10912
14
    { &hf_h225_supportedProtocols_item,
10913
14
      { "SupportedProtocols", "h225.SupportedProtocols",
10914
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
10915
14
        NULL, HFILL }},
10916
14
    { &hf_h225_modifiedSrcInfo,
10917
14
      { "modifiedSrcInfo", "h225.modifiedSrcInfo",
10918
14
        FT_UINT32, BASE_DEC, NULL, 0,
10919
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10920
14
    { &hf_h225_modifiedSrcInfo_item,
10921
14
      { "AliasAddress", "h225.AliasAddress",
10922
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10923
14
        NULL, HFILL }},
10924
14
    { &hf_h225_setup_bool,
10925
14
      { "setup", "h225.setup_bool",
10926
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10927
14
        "BOOLEAN", HFILL }},
10928
14
    { &hf_h225_callProceeding_flg,
10929
14
      { "callProceeding", "h225.callProceeding_flg",
10930
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10931
14
        "BOOLEAN", HFILL }},
10932
14
    { &hf_h225_connect_bool,
10933
14
      { "connect", "h225.connect_bool",
10934
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10935
14
        "BOOLEAN", HFILL }},
10936
14
    { &hf_h225_alerting_bool,
10937
14
      { "alerting", "h225.alerting_bool",
10938
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10939
14
        "BOOLEAN", HFILL }},
10940
14
    { &hf_h225_information_bool,
10941
14
      { "information", "h225.information_bool",
10942
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10943
14
        "BOOLEAN", HFILL }},
10944
14
    { &hf_h225_releaseComplete_bool,
10945
14
      { "releaseComplete", "h225.releaseComplete_bool",
10946
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10947
14
        "BOOLEAN", HFILL }},
10948
14
    { &hf_h225_facility_bool,
10949
14
      { "facility", "h225.facility_bool",
10950
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10951
14
        "BOOLEAN", HFILL }},
10952
14
    { &hf_h225_progress_bool,
10953
14
      { "progress", "h225.progress_bool",
10954
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10955
14
        "BOOLEAN", HFILL }},
10956
14
    { &hf_h225_empty,
10957
14
      { "empty", "h225.empty",
10958
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10959
14
        "BOOLEAN", HFILL }},
10960
14
    { &hf_h225_status_bool,
10961
14
      { "status", "h225.status_bool",
10962
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10963
14
        "BOOLEAN", HFILL }},
10964
14
    { &hf_h225_statusInquiry_bool,
10965
14
      { "statusInquiry", "h225.statusInquiry_bool",
10966
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10967
14
        "BOOLEAN", HFILL }},
10968
14
    { &hf_h225_setupAcknowledge_bool,
10969
14
      { "setupAcknowledge", "h225.setupAcknowledge_bool",
10970
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10971
14
        "BOOLEAN", HFILL }},
10972
14
    { &hf_h225_notify_bool,
10973
14
      { "notify", "h225.notify_bool",
10974
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10975
14
        "BOOLEAN", HFILL }},
10976
14
    { &hf_h225_rejectReason,
10977
14
      { "rejectReason", "h225.rejectReason",
10978
14
        FT_UINT32, BASE_DEC, VALS(AdmissionRejectReason_vals), 0,
10979
14
        "AdmissionRejectReason", HFILL }},
10980
14
    { &hf_h225_invalidPermission,
10981
14
      { "invalidPermission", "h225.invalidPermission_element",
10982
14
        FT_NONE, BASE_NONE, NULL, 0,
10983
14
        NULL, HFILL }},
10984
14
    { &hf_h225_requestDenied,
10985
14
      { "requestDenied", "h225.requestDenied_element",
10986
14
        FT_NONE, BASE_NONE, NULL, 0,
10987
14
        NULL, HFILL }},
10988
14
    { &hf_h225_invalidEndpointIdentifier,
10989
14
      { "invalidEndpointIdentifier", "h225.invalidEndpointIdentifier_element",
10990
14
        FT_NONE, BASE_NONE, NULL, 0,
10991
14
        NULL, HFILL }},
10992
14
    { &hf_h225_qosControlNotSupported,
10993
14
      { "qosControlNotSupported", "h225.qosControlNotSupported_element",
10994
14
        FT_NONE, BASE_NONE, NULL, 0,
10995
14
        NULL, HFILL }},
10996
14
    { &hf_h225_incompleteAddress,
10997
14
      { "incompleteAddress", "h225.incompleteAddress_element",
10998
14
        FT_NONE, BASE_NONE, NULL, 0,
10999
14
        NULL, HFILL }},
11000
14
    { &hf_h225_aliasesInconsistent,
11001
14
      { "aliasesInconsistent", "h225.aliasesInconsistent_element",
11002
14
        FT_NONE, BASE_NONE, NULL, 0,
11003
14
        NULL, HFILL }},
11004
14
    { &hf_h225_routeCallToSCN,
11005
14
      { "routeCallToSCN", "h225.routeCallToSCN",
11006
14
        FT_UINT32, BASE_DEC, NULL, 0,
11007
14
        "SEQUENCE_OF_PartyNumber", HFILL }},
11008
14
    { &hf_h225_routeCallToSCN_item,
11009
14
      { "PartyNumber", "h225.PartyNumber",
11010
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11011
14
        NULL, HFILL }},
11012
14
    { &hf_h225_exceedsCallCapacity,
11013
14
      { "exceedsCallCapacity", "h225.exceedsCallCapacity_element",
11014
14
        FT_NONE, BASE_NONE, NULL, 0,
11015
14
        NULL, HFILL }},
11016
14
    { &hf_h225_collectDestination,
11017
14
      { "collectDestination", "h225.collectDestination_element",
11018
14
        FT_NONE, BASE_NONE, NULL, 0,
11019
14
        NULL, HFILL }},
11020
14
    { &hf_h225_collectPIN,
11021
14
      { "collectPIN", "h225.collectPIN_element",
11022
14
        FT_NONE, BASE_NONE, NULL, 0,
11023
14
        NULL, HFILL }},
11024
14
    { &hf_h225_noRouteToDestination,
11025
14
      { "noRouteToDestination", "h225.noRouteToDestination_element",
11026
14
        FT_NONE, BASE_NONE, NULL, 0,
11027
14
        NULL, HFILL }},
11028
14
    { &hf_h225_unallocatedNumber,
11029
14
      { "unallocatedNumber", "h225.unallocatedNumber_element",
11030
14
        FT_NONE, BASE_NONE, NULL, 0,
11031
14
        NULL, HFILL }},
11032
14
    { &hf_h225_answeredCall,
11033
14
      { "answeredCall", "h225.answeredCall",
11034
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11035
14
        "BOOLEAN", HFILL }},
11036
14
    { &hf_h225_usageInformation,
11037
14
      { "usageInformation", "h225.usageInformation_element",
11038
14
        FT_NONE, BASE_NONE, NULL, 0,
11039
14
        "RasUsageInformation", HFILL }},
11040
14
    { &hf_h225_bandwidthDetails,
11041
14
      { "bandwidthDetails", "h225.bandwidthDetails",
11042
14
        FT_UINT32, BASE_DEC, NULL, 0,
11043
14
        "SEQUENCE_OF_BandwidthDetails", HFILL }},
11044
14
    { &hf_h225_bandwidthDetails_item,
11045
14
      { "BandwidthDetails", "h225.BandwidthDetails_element",
11046
14
        FT_NONE, BASE_NONE, NULL, 0,
11047
14
        NULL, HFILL }},
11048
14
    { &hf_h225_bandRejectReason,
11049
14
      { "rejectReason", "h225.bandRejectReason",
11050
14
        FT_UINT32, BASE_DEC, VALS(BandRejectReason_vals), 0,
11051
14
        "BandRejectReason", HFILL }},
11052
14
    { &hf_h225_allowedBandWidth,
11053
14
      { "allowedBandWidth", "h225.allowedBandWidth",
11054
14
        FT_UINT32, BASE_DEC, NULL, 0,
11055
14
        "BandWidth", HFILL }},
11056
14
    { &hf_h225_notBound,
11057
14
      { "notBound", "h225.notBound_element",
11058
14
        FT_NONE, BASE_NONE, NULL, 0,
11059
14
        NULL, HFILL }},
11060
14
    { &hf_h225_invalidConferenceID,
11061
14
      { "invalidConferenceID", "h225.invalidConferenceID_element",
11062
14
        FT_NONE, BASE_NONE, NULL, 0,
11063
14
        NULL, HFILL }},
11064
14
    { &hf_h225_insufficientResources,
11065
14
      { "insufficientResources", "h225.insufficientResources_element",
11066
14
        FT_NONE, BASE_NONE, NULL, 0,
11067
14
        NULL, HFILL }},
11068
14
    { &hf_h225_replyAddress,
11069
14
      { "replyAddress", "h225.replyAddress",
11070
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11071
14
        "TransportAddress", HFILL }},
11072
14
    { &hf_h225_sourceInfo,
11073
14
      { "sourceInfo", "h225.sourceInfo",
11074
14
        FT_UINT32, BASE_DEC, NULL, 0,
11075
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
11076
14
    { &hf_h225_sourceInfo_item,
11077
14
      { "AliasAddress", "h225.AliasAddress",
11078
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11079
14
        NULL, HFILL }},
11080
14
    { &hf_h225_hopCount,
11081
14
      { "hopCount", "h225.hopCount",
11082
14
        FT_UINT32, BASE_DEC, NULL, 0,
11083
14
        "INTEGER_1_255", HFILL }},
11084
14
    { &hf_h225_sourceEndpointInfo,
11085
14
      { "sourceEndpointInfo", "h225.sourceEndpointInfo",
11086
14
        FT_UINT32, BASE_DEC, NULL, 0,
11087
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
11088
14
    { &hf_h225_sourceEndpointInfo_item,
11089
14
      { "AliasAddress", "h225.AliasAddress",
11090
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11091
14
        NULL, HFILL }},
11092
14
    { &hf_h225_locationConfirm_callSignalAddress,
11093
14
      { "callSignalAddress", "h225.locationConfirm_callSignalAddress",
11094
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11095
14
        "TransportAddress", HFILL }},
11096
14
    { &hf_h225_locationConfirm_rasAddress,
11097
14
      { "rasAddress", "h225.locationConfirm_rasAddress",
11098
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11099
14
        "TransportAddress", HFILL }},
11100
14
    { &hf_h225_remoteExtensionAddress_item,
11101
14
      { "AliasAddress", "h225.AliasAddress",
11102
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11103
14
        NULL, HFILL }},
11104
14
    { &hf_h225_locationRejectReason,
11105
14
      { "rejectReason", "h225.locationRejectReason",
11106
14
        FT_UINT32, BASE_DEC, VALS(LocationRejectReason_vals), 0,
11107
14
        "LocationRejectReason", HFILL }},
11108
14
    { &hf_h225_notRegistered,
11109
14
      { "notRegistered", "h225.notRegistered_element",
11110
14
        FT_NONE, BASE_NONE, NULL, 0,
11111
14
        NULL, HFILL }},
11112
14
    { &hf_h225_routeCalltoSCN,
11113
14
      { "routeCalltoSCN", "h225.routeCalltoSCN",
11114
14
        FT_UINT32, BASE_DEC, NULL, 0,
11115
14
        "SEQUENCE_OF_PartyNumber", HFILL }},
11116
14
    { &hf_h225_routeCalltoSCN_item,
11117
14
      { "PartyNumber", "h225.PartyNumber",
11118
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11119
14
        NULL, HFILL }},
11120
14
    { &hf_h225_disengageReason,
11121
14
      { "disengageReason", "h225.disengageReason",
11122
14
        FT_UINT32, BASE_DEC, VALS(DisengageReason_vals), 0,
11123
14
        NULL, HFILL }},
11124
14
    { &hf_h225_terminationCause,
11125
14
      { "terminationCause", "h225.terminationCause",
11126
14
        FT_UINT32, BASE_DEC, VALS(h225_CallTerminationCause_vals), 0,
11127
14
        "CallTerminationCause", HFILL }},
11128
14
    { &hf_h225_forcedDrop,
11129
14
      { "forcedDrop", "h225.forcedDrop_element",
11130
14
        FT_NONE, BASE_NONE, NULL, 0,
11131
14
        NULL, HFILL }},
11132
14
    { &hf_h225_normalDrop,
11133
14
      { "normalDrop", "h225.normalDrop_element",
11134
14
        FT_NONE, BASE_NONE, NULL, 0,
11135
14
        NULL, HFILL }},
11136
14
    { &hf_h225_disengageRejectReason,
11137
14
      { "rejectReason", "h225.disengageRejectReason",
11138
14
        FT_UINT32, BASE_DEC, VALS(DisengageRejectReason_vals), 0,
11139
14
        "DisengageRejectReason", HFILL }},
11140
14
    { &hf_h225_requestToDropOther,
11141
14
      { "requestToDropOther", "h225.requestToDropOther_element",
11142
14
        FT_NONE, BASE_NONE, NULL, 0,
11143
14
        NULL, HFILL }},
11144
14
    { &hf_h225_usageInfoRequested,
11145
14
      { "usageInfoRequested", "h225.usageInfoRequested_element",
11146
14
        FT_NONE, BASE_NONE, NULL, 0,
11147
14
        "RasUsageInfoTypes", HFILL }},
11148
14
    { &hf_h225_segmentedResponseSupported,
11149
14
      { "segmentedResponseSupported", "h225.segmentedResponseSupported_element",
11150
14
        FT_NONE, BASE_NONE, NULL, 0,
11151
14
        NULL, HFILL }},
11152
14
    { &hf_h225_nextSegmentRequested,
11153
14
      { "nextSegmentRequested", "h225.nextSegmentRequested",
11154
14
        FT_UINT32, BASE_DEC, NULL, 0,
11155
14
        "INTEGER_0_65535", HFILL }},
11156
14
    { &hf_h225_capacityInfoRequested,
11157
14
      { "capacityInfoRequested", "h225.capacityInfoRequested_element",
11158
14
        FT_NONE, BASE_NONE, NULL, 0,
11159
14
        NULL, HFILL }},
11160
14
    { &hf_h225_infoRequestResponse_rasAddress,
11161
14
      { "rasAddress", "h225.infoRequestResponse_rasAddress",
11162
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11163
14
        "TransportAddress", HFILL }},
11164
14
    { &hf_h225_perCallInfo,
11165
14
      { "perCallInfo", "h225.perCallInfo",
11166
14
        FT_UINT32, BASE_DEC, NULL, 0,
11167
14
        NULL, HFILL }},
11168
14
    { &hf_h225_perCallInfo_item,
11169
14
      { "perCallInfo item", "h225.perCallInfo_item_element",
11170
14
        FT_NONE, BASE_NONE, NULL, 0,
11171
14
        NULL, HFILL }},
11172
14
    { &hf_h225_originator,
11173
14
      { "originator", "h225.originator",
11174
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11175
14
        "BOOLEAN", HFILL }},
11176
14
    { &hf_h225_audio,
11177
14
      { "audio", "h225.audio",
11178
14
        FT_UINT32, BASE_DEC, NULL, 0,
11179
14
        "SEQUENCE_OF_RTPSession", HFILL }},
11180
14
    { &hf_h225_audio_item,
11181
14
      { "RTPSession", "h225.RTPSession_element",
11182
14
        FT_NONE, BASE_NONE, NULL, 0,
11183
14
        NULL, HFILL }},
11184
14
    { &hf_h225_video,
11185
14
      { "video", "h225.video",
11186
14
        FT_UINT32, BASE_DEC, NULL, 0,
11187
14
        "SEQUENCE_OF_RTPSession", HFILL }},
11188
14
    { &hf_h225_video_item,
11189
14
      { "RTPSession", "h225.RTPSession_element",
11190
14
        FT_NONE, BASE_NONE, NULL, 0,
11191
14
        NULL, HFILL }},
11192
14
    { &hf_h225_data,
11193
14
      { "data", "h225.data",
11194
14
        FT_UINT32, BASE_DEC, NULL, 0,
11195
14
        "SEQUENCE_OF_TransportChannelInfo", HFILL }},
11196
14
    { &hf_h225_data_item,
11197
14
      { "TransportChannelInfo", "h225.TransportChannelInfo_element",
11198
14
        FT_NONE, BASE_NONE, NULL, 0,
11199
14
        NULL, HFILL }},
11200
14
    { &hf_h225_h245,
11201
14
      { "h245", "h225.h245_element",
11202
14
        FT_NONE, BASE_NONE, NULL, 0,
11203
14
        "TransportChannelInfo", HFILL }},
11204
14
    { &hf_h225_callSignalling,
11205
14
      { "callSignalling", "h225.callSignalling_element",
11206
14
        FT_NONE, BASE_NONE, NULL, 0,
11207
14
        "TransportChannelInfo", HFILL }},
11208
14
    { &hf_h225_substituteConfIDs,
11209
14
      { "substituteConfIDs", "h225.substituteConfIDs",
11210
14
        FT_UINT32, BASE_DEC, NULL, 0,
11211
14
        "SEQUENCE_OF_ConferenceIdentifier", HFILL }},
11212
14
    { &hf_h225_substituteConfIDs_item,
11213
14
      { "ConferenceIdentifier", "h225.ConferenceIdentifier",
11214
14
        FT_GUID, BASE_NONE, NULL, 0,
11215
14
        NULL, HFILL }},
11216
14
    { &hf_h225_pdu,
11217
14
      { "pdu", "h225.pdu",
11218
14
        FT_UINT32, BASE_DEC, NULL, 0,
11219
14
        NULL, HFILL }},
11220
14
    { &hf_h225_pdu_item,
11221
14
      { "pdu item", "h225.pdu_item_element",
11222
14
        FT_NONE, BASE_NONE, NULL, 0,
11223
14
        NULL, HFILL }},
11224
14
    { &hf_h225_h323pdu,
11225
14
      { "h323pdu", "h225.h323pdu_element",
11226
14
        FT_NONE, BASE_NONE, NULL, 0,
11227
14
        "H323_UU_PDU", HFILL }},
11228
14
    { &hf_h225_sent,
11229
14
      { "sent", "h225.sent",
11230
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11231
14
        "BOOLEAN", HFILL }},
11232
14
    { &hf_h225_needResponse,
11233
14
      { "needResponse", "h225.needResponse",
11234
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11235
14
        "BOOLEAN", HFILL }},
11236
14
    { &hf_h225_irrStatus,
11237
14
      { "irrStatus", "h225.irrStatus",
11238
14
        FT_UINT32, BASE_DEC, VALS(h225_InfoRequestResponseStatus_vals), 0,
11239
14
        "InfoRequestResponseStatus", HFILL }},
11240
14
    { &hf_h225_unsolicited,
11241
14
      { "unsolicited", "h225.unsolicited",
11242
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11243
14
        "BOOLEAN", HFILL }},
11244
14
    { &hf_h225_complete,
11245
14
      { "complete", "h225.complete_element",
11246
14
        FT_NONE, BASE_NONE, NULL, 0,
11247
14
        NULL, HFILL }},
11248
14
    { &hf_h225_incomplete,
11249
14
      { "incomplete", "h225.incomplete_element",
11250
14
        FT_NONE, BASE_NONE, NULL, 0,
11251
14
        NULL, HFILL }},
11252
14
    { &hf_h225_segment,
11253
14
      { "segment", "h225.segment",
11254
14
        FT_UINT32, BASE_DEC, NULL, 0,
11255
14
        "INTEGER_0_65535", HFILL }},
11256
14
    { &hf_h225_invalidCall,
11257
14
      { "invalidCall", "h225.invalidCall_element",
11258
14
        FT_NONE, BASE_NONE, NULL, 0,
11259
14
        NULL, HFILL }},
11260
14
    { &hf_h225_nakReason,
11261
14
      { "nakReason", "h225.nakReason",
11262
14
        FT_UINT32, BASE_DEC, VALS(InfoRequestNakReason_vals), 0,
11263
14
        "InfoRequestNakReason", HFILL }},
11264
14
    { &hf_h225_messageNotUnderstood,
11265
14
      { "messageNotUnderstood", "h225.messageNotUnderstood",
11266
14
        FT_BYTES, BASE_NONE, NULL, 0,
11267
14
        "OCTET_STRING", HFILL }},
11268
14
    { &hf_h225_delay,
11269
14
      { "delay", "h225.delay",
11270
14
        FT_UINT32, BASE_DEC, NULL, 0,
11271
14
        "INTEGER_1_65535", HFILL }},
11272
14
    { &hf_h225_protocols,
11273
14
      { "protocols", "h225.protocols",
11274
14
        FT_UINT32, BASE_DEC, NULL, 0,
11275
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
11276
14
    { &hf_h225_protocols_item,
11277
14
      { "SupportedProtocols", "h225.SupportedProtocols",
11278
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
11279
14
        NULL, HFILL }},
11280
14
    { &hf_h225_almostOutOfResources,
11281
14
      { "almostOutOfResources", "h225.almostOutOfResources",
11282
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11283
14
        "BOOLEAN", HFILL }},
11284
14
    { &hf_h225_callSpecific,
11285
14
      { "callSpecific", "h225.callSpecific_element",
11286
14
        FT_NONE, BASE_NONE, NULL, 0,
11287
14
        NULL, HFILL }},
11288
14
    { &hf_h225_result,
11289
14
      { "result", "h225.result",
11290
14
        FT_UINT32, BASE_DEC, VALS(h225_T_result_vals), 0,
11291
14
        NULL, HFILL }},
11292
14
    { &hf_h225_started,
11293
14
      { "started", "h225.started_element",
11294
14
        FT_NONE, BASE_NONE, NULL, 0,
11295
14
        NULL, HFILL }},
11296
14
    { &hf_h225_failed,
11297
14
      { "failed", "h225.failed_element",
11298
14
        FT_NONE, BASE_NONE, NULL, 0,
11299
14
        NULL, HFILL }},
11300
14
    { &hf_h225_stopped,
11301
14
      { "stopped", "h225.stopped_element",
11302
14
        FT_NONE, BASE_NONE, NULL, 0,
11303
14
        NULL, HFILL }},
11304
14
    { &hf_h225_notAvailable,
11305
14
      { "notAvailable", "h225.notAvailable_element",
11306
14
        FT_NONE, BASE_NONE, NULL, 0,
11307
14
        NULL, HFILL }},
11308
14
  };
11309
11310
  /* List of subtrees */
11311
14
  static int *ett[] = {
11312
14
    &ett_h225,
11313
14
    &ett_h225_H323_UserInformation,
11314
14
    &ett_h225_T_user_data,
11315
14
    &ett_h225_H323_UU_PDU,
11316
14
    &ett_h225_T_h323_message_body,
11317
14
    &ett_h225_T_h4501SupplementaryService,
11318
14
    &ett_h225_H245Control,
11319
14
    &ett_h225_SEQUENCE_OF_NonStandardParameter,
11320
14
    &ett_h225_T_tunnelledSignallingMessage,
11321
14
    &ett_h225_T_messageContent,
11322
14
    &ett_h225_SEQUENCE_OF_GenericData,
11323
14
    &ett_h225_StimulusControl,
11324
14
    &ett_h225_Alerting_UUIE,
11325
14
    &ett_h225_SEQUENCE_OF_ClearToken,
11326
14
    &ett_h225_SEQUENCE_OF_CryptoH323Token,
11327
14
    &ett_h225_SEQUENCE_OF_AliasAddress,
11328
14
    &ett_h225_SEQUENCE_OF_ServiceControlSession,
11329
14
    &ett_h225_SEQUENCE_OF_DisplayName,
11330
14
    &ett_h225_CallProceeding_UUIE,
11331
14
    &ett_h225_Connect_UUIE,
11332
14
    &ett_h225_Information_UUIE,
11333
14
    &ett_h225_ReleaseComplete_UUIE,
11334
14
    &ett_h225_ReleaseCompleteReason,
11335
14
    &ett_h225_Setup_UUIE,
11336
14
    &ett_h225_SEQUENCE_OF_CallReferenceValue,
11337
14
    &ett_h225_T_conferenceGoal,
11338
14
    &ett_h225_SEQUENCE_OF_H245Security,
11339
14
    &ett_h225_FastStart,
11340
14
    &ett_h225_T_connectionParameters,
11341
14
    &ett_h225_Language,
11342
14
    &ett_h225_SEQUENCE_OF_SupportedProtocols,
11343
14
    &ett_h225_SEQUENCE_OF_FeatureDescriptor,
11344
14
    &ett_h225_ParallelH245Control,
11345
14
    &ett_h225_SEQUENCE_OF_ExtendedAliasAddress,
11346
14
    &ett_h225_ScnConnectionType,
11347
14
    &ett_h225_ScnConnectionAggregation,
11348
14
    &ett_h225_PresentationIndicator,
11349
14
    &ett_h225_Facility_UUIE,
11350
14
    &ett_h225_SEQUENCE_OF_ConferenceList,
11351
14
    &ett_h225_ConferenceList,
11352
14
    &ett_h225_FacilityReason,
11353
14
    &ett_h225_Progress_UUIE,
11354
14
    &ett_h225_TransportAddress,
11355
14
    &ett_h225_H245TransportAddress,
11356
14
    &ett_h225_T_h245IpAddress,
11357
14
    &ett_h225_T_h245IpSourceRoute,
11358
14
    &ett_h225_T_h245Route,
11359
14
    &ett_h225_T_h245Routing,
11360
14
    &ett_h225_T_h245IpxAddress,
11361
14
    &ett_h225_T_h245Ip6Address,
11362
14
    &ett_h225_T_ipAddress,
11363
14
    &ett_h225_T_ipSourceRoute,
11364
14
    &ett_h225_T_route,
11365
14
    &ett_h225_T_routing,
11366
14
    &ett_h225_T_ipxAddress,
11367
14
    &ett_h225_T_ip6Address,
11368
14
    &ett_h225_Status_UUIE,
11369
14
    &ett_h225_StatusInquiry_UUIE,
11370
14
    &ett_h225_SetupAcknowledge_UUIE,
11371
14
    &ett_h225_Notify_UUIE,
11372
14
    &ett_h225_EndpointType,
11373
14
    &ett_h225_SEQUENCE_OF_TunnelledProtocol,
11374
14
    &ett_h225_GatewayInfo,
11375
14
    &ett_h225_SupportedProtocols,
11376
14
    &ett_h225_H310Caps,
11377
14
    &ett_h225_SEQUENCE_OF_DataRate,
11378
14
    &ett_h225_SEQUENCE_OF_SupportedPrefix,
11379
14
    &ett_h225_H320Caps,
11380
14
    &ett_h225_H321Caps,
11381
14
    &ett_h225_H322Caps,
11382
14
    &ett_h225_H323Caps,
11383
14
    &ett_h225_H324Caps,
11384
14
    &ett_h225_VoiceCaps,
11385
14
    &ett_h225_T120OnlyCaps,
11386
14
    &ett_h225_NonStandardProtocol,
11387
14
    &ett_h225_T38FaxAnnexbOnlyCaps,
11388
14
    &ett_h225_SIPCaps,
11389
14
    &ett_h225_McuInfo,
11390
14
    &ett_h225_TerminalInfo,
11391
14
    &ett_h225_GatekeeperInfo,
11392
14
    &ett_h225_VendorIdentifier,
11393
14
    &ett_h225_H221NonStandard,
11394
14
    &ett_h225_TunnelledProtocol,
11395
14
    &ett_h225_TunnelledProtocol_id,
11396
14
    &ett_h225_TunnelledProtocolAlternateIdentifier,
11397
14
    &ett_h225_NonStandardParameter,
11398
14
    &ett_h225_NonStandardIdentifier,
11399
14
    &ett_h225_AliasAddress,
11400
14
    &ett_h225_AddressPattern,
11401
14
    &ett_h225_T_range,
11402
14
    &ett_h225_PartyNumber,
11403
14
    &ett_h225_PublicPartyNumber,
11404
14
    &ett_h225_PrivatePartyNumber,
11405
14
    &ett_h225_DisplayName,
11406
14
    &ett_h225_PublicTypeOfNumber,
11407
14
    &ett_h225_PrivateTypeOfNumber,
11408
14
    &ett_h225_MobileUIM,
11409
14
    &ett_h225_ANSI_41_UIM,
11410
14
    &ett_h225_T_system_id,
11411
14
    &ett_h225_GSM_UIM,
11412
14
    &ett_h225_IsupNumber,
11413
14
    &ett_h225_IsupPublicPartyNumber,
11414
14
    &ett_h225_IsupPrivatePartyNumber,
11415
14
    &ett_h225_NatureOfAddress,
11416
14
    &ett_h225_ExtendedAliasAddress,
11417
14
    &ett_h225_Endpoint,
11418
14
    &ett_h225_SEQUENCE_OF_TransportAddress,
11419
14
    &ett_h225_AlternateTransportAddresses,
11420
14
    &ett_h225_UseSpecifiedTransport,
11421
14
    &ett_h225_AlternateGK,
11422
14
    &ett_h225_AltGKInfo,
11423
14
    &ett_h225_SEQUENCE_OF_AlternateGK,
11424
14
    &ett_h225_SecurityServiceMode,
11425
14
    &ett_h225_SecurityCapabilities,
11426
14
    &ett_h225_SecurityErrors,
11427
14
    &ett_h225_SecurityErrors2,
11428
14
    &ett_h225_H245Security,
11429
14
    &ett_h225_QseriesOptions,
11430
14
    &ett_h225_Q954Details,
11431
14
    &ett_h225_CallIdentifier,
11432
14
    &ett_h225_EncryptIntAlg,
11433
14
    &ett_h225_NonIsoIntegrityMechanism,
11434
14
    &ett_h225_IntegrityMechanism,
11435
14
    &ett_h225_ICV,
11436
14
    &ett_h225_CryptoH323Token,
11437
14
    &ett_h225_T_cryptoEPPwdHash,
11438
14
    &ett_h225_T_cryptoGKPwdHash,
11439
14
    &ett_h225_DataRate,
11440
14
    &ett_h225_CallLinkage,
11441
14
    &ett_h225_SupportedPrefix,
11442
14
    &ett_h225_CapacityReportingCapability,
11443
14
    &ett_h225_CapacityReportingSpecification,
11444
14
    &ett_h225_CapacityReportingSpecification_when,
11445
14
    &ett_h225_CallCapacity,
11446
14
    &ett_h225_CallCapacityInfo,
11447
14
    &ett_h225_SEQUENCE_OF_CallsAvailable,
11448
14
    &ett_h225_CallsAvailable,
11449
14
    &ett_h225_CircuitInfo,
11450
14
    &ett_h225_CircuitIdentifier,
11451
14
    &ett_h225_CicInfo,
11452
14
    &ett_h225_T_cic_2_4,
11453
14
    &ett_h225_GroupID,
11454
14
    &ett_h225_T_member,
11455
14
    &ett_h225_CarrierInfo,
11456
14
    &ett_h225_ServiceControlDescriptor,
11457
14
    &ett_h225_ServiceControlSession,
11458
14
    &ett_h225_ServiceControlSession_reason,
11459
14
    &ett_h225_RasUsageInfoTypes,
11460
14
    &ett_h225_RasUsageSpecification,
11461
14
    &ett_h225_RasUsageSpecification_when,
11462
14
    &ett_h225_RasUsageSpecificationcallStartingPoint,
11463
14
    &ett_h225_RasUsageInformation,
11464
14
    &ett_h225_CallTerminationCause,
11465
14
    &ett_h225_BandwidthDetails,
11466
14
    &ett_h225_CallCreditCapability,
11467
14
    &ett_h225_CallCreditServiceControl,
11468
14
    &ett_h225_T_billingMode,
11469
14
    &ett_h225_CallCreditServiceControl_callStartingPoint,
11470
14
    &ett_h225_GenericData,
11471
14
    &ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter,
11472
14
    &ett_h225_GenericIdentifier,
11473
14
    &ett_h225_EnumeratedParameter,
11474
14
    &ett_h225_Content,
11475
14
    &ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData,
11476
14
    &ett_h225_FeatureSet,
11477
14
    &ett_h225_TransportChannelInfo,
11478
14
    &ett_h225_RTPSession,
11479
14
    &ett_h225_T_associatedSessionIds,
11480
14
    &ett_h225_RehomingModel,
11481
14
    &ett_h225_RasMessage,
11482
14
    &ett_h225_SEQUENCE_OF_AdmissionConfirm,
11483
14
    &ett_h225_GatekeeperRequest,
11484
14
    &ett_h225_SEQUENCE_OF_Endpoint,
11485
14
    &ett_h225_SEQUENCE_OF_AuthenticationMechanism,
11486
14
    &ett_h225_T_algorithmOIDs,
11487
14
    &ett_h225_SEQUENCE_OF_IntegrityMechanism,
11488
14
    &ett_h225_GatekeeperConfirm,
11489
14
    &ett_h225_GatekeeperReject,
11490
14
    &ett_h225_GatekeeperRejectReason,
11491
14
    &ett_h225_RegistrationRequest,
11492
14
    &ett_h225_SEQUENCE_OF_AddressPattern,
11493
14
    &ett_h225_SEQUENCE_OF_H248PackagesDescriptor,
11494
14
    &ett_h225_RegistrationConfirm,
11495
14
    &ett_h225_T_preGrantedARQ,
11496
14
    &ett_h225_SEQUENCE_OF_RasUsageSpecification,
11497
14
    &ett_h225_RegistrationReject,
11498
14
    &ett_h225_RegistrationRejectReason,
11499
14
    &ett_h225_T_invalidTerminalAliases,
11500
14
    &ett_h225_UnregistrationRequest,
11501
14
    &ett_h225_UnregRequestReason,
11502
14
    &ett_h225_UnregistrationConfirm,
11503
14
    &ett_h225_UnregistrationReject,
11504
14
    &ett_h225_UnregRejectReason,
11505
14
    &ett_h225_AdmissionRequest,
11506
14
    &ett_h225_DestinationInfo,
11507
14
    &ett_h225_CallType,
11508
14
    &ett_h225_CallModel,
11509
14
    &ett_h225_TransportQOS,
11510
14
    &ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability,
11511
14
    &ett_h225_AdmissionConfirm,
11512
14
    &ett_h225_UUIEsRequested,
11513
14
    &ett_h225_AdmissionReject,
11514
14
    &ett_h225_AdmissionRejectReason,
11515
14
    &ett_h225_SEQUENCE_OF_PartyNumber,
11516
14
    &ett_h225_BandwidthRequest,
11517
14
    &ett_h225_SEQUENCE_OF_BandwidthDetails,
11518
14
    &ett_h225_BandwidthConfirm,
11519
14
    &ett_h225_BandwidthReject,
11520
14
    &ett_h225_BandRejectReason,
11521
14
    &ett_h225_LocationRequest,
11522
14
    &ett_h225_LocationConfirm,
11523
14
    &ett_h225_LocationReject,
11524
14
    &ett_h225_LocationRejectReason,
11525
14
    &ett_h225_DisengageRequest,
11526
14
    &ett_h225_DisengageReason,
11527
14
    &ett_h225_DisengageConfirm,
11528
14
    &ett_h225_DisengageReject,
11529
14
    &ett_h225_DisengageRejectReason,
11530
14
    &ett_h225_InfoRequest,
11531
14
    &ett_h225_InfoRequestResponse,
11532
14
    &ett_h225_T_perCallInfo,
11533
14
    &ett_h225_T_perCallInfo_item,
11534
14
    &ett_h225_SEQUENCE_OF_RTPSession,
11535
14
    &ett_h225_SEQUENCE_OF_TransportChannelInfo,
11536
14
    &ett_h225_SEQUENCE_OF_ConferenceIdentifier,
11537
14
    &ett_h225_T_pdu,
11538
14
    &ett_h225_T_pdu_item,
11539
14
    &ett_h225_InfoRequestResponseStatus,
11540
14
    &ett_h225_InfoRequestAck,
11541
14
    &ett_h225_InfoRequestNak,
11542
14
    &ett_h225_InfoRequestNakReason,
11543
14
    &ett_h225_NonStandardMessage,
11544
14
    &ett_h225_UnknownMessageResponse,
11545
14
    &ett_h225_RequestInProgress,
11546
14
    &ett_h225_ResourcesAvailableIndicate,
11547
14
    &ett_h225_ResourcesAvailableConfirm,
11548
14
    &ett_h225_ServiceControlIndication,
11549
14
    &ett_h225_T_callSpecific,
11550
14
    &ett_h225_ServiceControlResponse,
11551
14
    &ett_h225_T_result,
11552
14
  };
11553
11554
14
  static tap_param h225_stat_params[] = {
11555
14
    { PARAM_FILTER, "filter", "Filter", NULL, true }
11556
14
  };
11557
11558
14
  static stat_tap_table_ui h225_stat_table = {
11559
14
    REGISTER_TELEPHONY_GROUP_UNSORTED,
11560
14
    "H.225",
11561
14
    "h225",
11562
14
    "h225,counter",
11563
14
    h225_stat_init,
11564
14
    h225_stat_packet,
11565
14
    h225_stat_reset,
11566
14
    NULL,
11567
14
    NULL,
11568
14
    array_length(h225_stat_fields), h225_stat_fields,
11569
14
    array_length(h225_stat_params), h225_stat_params,
11570
14
    NULL,
11571
14
    0
11572
14
  };
11573
11574
14
  module_t *h225_module;
11575
14
  int i, proto_h225_ras;
11576
11577
  /* Register protocol */
11578
14
  proto_h225 = proto_register_protocol("H323-MESSAGES", "H.225.0", "h225");
11579
11580
  /* Create a "fake" protocol to get proper display strings for SRT dialogs */
11581
14
  proto_h225_ras = proto_register_protocol("H.225 RAS", "H.225 RAS", "h225_ras");
11582
11583
  /* Register fields and subtrees */
11584
14
  proto_register_field_array(proto_h225, hf, array_length(hf));
11585
14
  proto_register_subtree_array(ett, array_length(ett));
11586
11587
14
  h225_module = prefs_register_protocol(proto_h225, proto_reg_handoff_h225);
11588
14
  prefs_register_uint_preference(h225_module, "tls.port",
11589
14
    "H.225 TLS Port",
11590
14
    "H.225 Server TLS Port",
11591
14
    10, &h225_tls_port);
11592
14
  prefs_register_bool_preference(h225_module, "reassembly",
11593
14
    "Reassemble H.225 messages spanning multiple TCP segments",
11594
14
    "Whether the H.225 dissector should reassemble messages spanning multiple TCP segments."
11595
14
    " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
11596
14
    &h225_reassembly);
11597
14
  prefs_register_bool_preference(h225_module, "h245_in_tree",
11598
14
    "Display tunnelled H.245 inside H.225.0 tree",
11599
14
    "ON - display tunnelled H.245 inside H.225.0 tree, OFF - display tunnelled H.245 in root tree after H.225.0",
11600
14
    &h225_h245_in_tree);
11601
14
  prefs_register_bool_preference(h225_module, "tp_in_tree",
11602
14
    "Display tunnelled protocols inside H.225.0 tree",
11603
14
    "ON - display tunnelled protocols inside H.225.0 tree, OFF - display tunnelled protocols in root tree after H.225.0",
11604
14
    &h225_tp_in_tree);
11605
11606
14
  register_dissector("h225", dissect_h225_H323UserInformation, proto_h225);
11607
14
  register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
11608
14
  h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
11609
11610
14
  nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11611
14
  nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter h221", proto_h225, FT_UINT32, BASE_HEX);
11612
14
  tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11613
14
  gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11614
14
  gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11615
11616
112
  for(i=0;i<7;i++) {
11617
98
    ras_calls[i] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), h225ras_call_hash, h225ras_call_equal);
11618
98
  }
11619
11620
14
  h225_tap = register_tap("h225");
11621
11622
14
  register_rtd_table(proto_h225_ras, "h225", NUM_RAS_STATS, 1, ras_message_category, h225rassrt_packet, NULL);
11623
11624
14
  register_stat_tap_table_ui(&h225_stat_table);
11625
11626
14
  oid_add_from_string("Version 1","0.0.8.2250.0.1");
11627
14
  oid_add_from_string("Version 2","0.0.8.2250.0.2");
11628
14
  oid_add_from_string("Version 3","0.0.8.2250.0.3");
11629
14
  oid_add_from_string("Version 4","0.0.8.2250.0.4");
11630
14
  oid_add_from_string("Version 5","0.0.8.2250.0.5");
11631
14
  oid_add_from_string("Version 6","0.0.8.2250.0.6");
11632
11633
14
  register_external_value_string("T_h323_message_body_vals", T_h323_message_body_vals);
11634
14
  register_external_value_string("h225_ReleaseCompleteReason_vals", h225_ReleaseCompleteReason_vals);
11635
14
  register_external_value_string("FacilityReason_vals", FacilityReason_vals);
11636
14
  register_external_value_string("h225_RasMessage_vals", h225_RasMessage_vals);
11637
14
  register_external_value_string("GatekeeperRejectReason_vals", GatekeeperRejectReason_vals);
11638
14
  register_external_value_string("RegistrationRejectReason_vals", RegistrationRejectReason_vals);
11639
14
  register_external_value_string("UnregRequestReason_vals", UnregRequestReason_vals);
11640
14
  register_external_value_string("UnregRejectReason_vals", UnregRejectReason_vals);
11641
14
  register_external_value_string("AdmissionRejectReason_vals", AdmissionRejectReason_vals);
11642
14
  register_external_value_string("BandRejectReason_vals", BandRejectReason_vals);
11643
14
  register_external_value_string("LocationRejectReason_vals", LocationRejectReason_vals);
11644
14
  register_external_value_string("DisengageReason_vals", DisengageReason_vals);
11645
14
  register_external_value_string("DisengageRejectReason_vals", DisengageRejectReason_vals);
11646
14
  register_external_value_string("InfoRequestNakReason_vals", InfoRequestNakReason_vals);
11647
14
}
11648
11649
11650
/*--- proto_reg_handoff_h225 ---------------------------------------*/
11651
void
11652
proto_reg_handoff_h225(void)
11653
14
{
11654
14
  static bool h225_prefs_initialized = false;
11655
14
  static dissector_handle_t q931_tpkt_handle;
11656
14
  static unsigned saved_h225_tls_port;
11657
11658
14
  if (!h225_prefs_initialized) {
11659
14
    dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
11660
11661
14
    h245_handle = find_dissector("h245");
11662
14
    h245dg_handle = find_dissector("h245dg");
11663
14
    h4501_handle = find_dissector_add_dependency("h4501", proto_h225);
11664
14
    data_handle = find_dissector("data");
11665
14
    h225_prefs_initialized = true;
11666
14
    q931_tpkt_handle = find_dissector("q931.tpkt");
11667
14
  } else {
11668
0
    ssl_dissector_delete(saved_h225_tls_port, q931_tpkt_handle);
11669
0
  }
11670
11671
14
  saved_h225_tls_port = h225_tls_port;
11672
14
  ssl_dissector_add(saved_h225_tls_port, q931_tpkt_handle);
11673
14
}
11674
11675
static h225_packet_info* create_h225_packet_info(packet_info *pinfo)
11676
310
{
11677
310
  h225_packet_info* pi = wmem_new0(pinfo->pool, h225_packet_info);
11678
11679
310
  pi->msg_type = H225_OTHERS;
11680
310
  pi->cs_type = H225_OTHER;
11681
310
  pi->msg_tag = -1;
11682
310
  pi->reason = -1;
11683
310
  pi->frame_label = wmem_strdup(pinfo->pool, "");
11684
11685
310
  return pi;
11686
310
}
11687
11688
/*
11689
  The following function contains the routines for RAS request/response matching.
11690
  A RAS response matches with a request, if both messages have the same
11691
  RequestSequenceNumber, belong to the same IP conversation and belong to the same
11692
  RAS "category" (e.g. Admission, Registration).
11693
11694
  We use hashtables to access the lists of RAS calls (request/response pairs).
11695
  We have one hashtable for each RAS category. The hashkeys consist of the
11696
  non-unique 16-bit RequestSequenceNumber and values representing the conversation.
11697
11698
  In big capture files, we might get different requests with identical keys.
11699
  These requests aren't necessarily duplicates. They might be valid new requests.
11700
  At the moment we just use the timedelta between the last valid and the new request
11701
  to decide if the new request is a duplicate or not. There might be better ways.
11702
  Two thresholds are defined below.
11703
11704
  However the decision is made, another problem arises. We can't just add those
11705
  requests to our hashtables. Instead we create lists of RAS calls with identical keys.
11706
  The hashtables for RAS calls contain now pointers to the first RAS call in a list of
11707
  RAS calls with identical keys.
11708
  These lists aren't expected to contain more than 3 items and are usually single item
11709
  lists. So we don't need an expensive but intelligent way to access these lists
11710
  (e.g. hashtables). Just walk through such a list.
11711
*/
11712
11713
0
#define THRESHOLD_REPEATED_RESPONDED_CALL 300
11714
3
#define THRESHOLD_REPEATED_NOT_RESPONDED_CALL 1800
11715
11716
static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi)
11717
18
{
11718
18
  proto_item *hidden_item;
11719
18
  conversation_t* conversation = NULL;
11720
18
  h225ras_call_info_key h225ras_call_key;
11721
18
  h225ras_call_t *h225ras_call = NULL;
11722
18
  nstime_t delta;
11723
18
  unsigned msg_category;
11724
11725
18
  if(pi->msg_type == H225_RAS && pi->msg_tag < 21) {
11726
    /* make RAS request/response matching only for tags from 0 to 20 for now */
11727
11728
14
    msg_category = pi->msg_tag / 3;
11729
14
    if(pi->msg_tag % 3 == 0) {    /* Request Message */
11730
10
      conversation = find_or_create_conversation(pinfo);
11731
11732
      /* prepare the key data */
11733
10
      h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11734
10
      h225ras_call_key.conversation = conversation;
11735
11736
      /* look up the request */
11737
10
      h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11738
11739
10
      if (h225ras_call != NULL) {
11740
        /* We've seen requests with this reqSeqNum, with the same
11741
           source and destination, before - do we have
11742
           *this* request already? */
11743
        /* Walk through list of ras requests with identical keys */
11744
3
        do {
11745
3
          if (pinfo->num == h225ras_call->req_num) {
11746
            /* We have seen this request before -> do nothing */
11747
0
            break;
11748
0
          }
11749
11750
          /* if end of list is reached, exit loop and decide if request is duplicate or not. */
11751
3
          if (h225ras_call->next_call == NULL) {
11752
3
            if ( (pinfo->num > h225ras_call->rsp_num && h225ras_call->rsp_num != 0
11753
0
               && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_RESPONDED_CALL) )
11754
3
               ||(pinfo->num > h225ras_call->req_num && h225ras_call->rsp_num == 0
11755
3
               && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_NOT_RESPONDED_CALL) ) )
11756
0
            {
11757
              /* if last request has been responded
11758
                 and this request appears after last response (has bigger frame number)
11759
                 and last request occurred more than 300 seconds ago,
11760
                 or if last request hasn't been responded
11761
                 and this request appears after last request (has bigger frame number)
11762
                 and last request occurred more than 1800 seconds ago,
11763
                 we decide that we have a new request */
11764
              /* Append new ras call to list */
11765
0
              h225ras_call = append_h225ras_call(h225ras_call, pinfo, &pi->guid, msg_category);
11766
3
            } else {
11767
              /* No, so it's a duplicate request.
11768
                 Mark it as such. */
11769
3
              pi->is_duplicate = true;
11770
3
              hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11771
3
              proto_item_set_hidden(hidden_item);
11772
3
            }
11773
3
            break;
11774
3
          }
11775
0
          h225ras_call = h225ras_call->next_call;
11776
0
        } while (h225ras_call != NULL );
11777
3
      }
11778
7
      else {
11779
7
        h225ras_call = new_h225ras_call(&h225ras_call_key, pinfo, &pi->guid, msg_category);
11780
7
      }
11781
11782
      /* add link to response frame, if available */
11783
10
      if(h225ras_call && h225ras_call->rsp_num != 0){
11784
0
        proto_item *ti =
11785
0
        proto_tree_add_uint_format(tree, hf_h225_ras_rsp_frame, tvb, 0, 0, h225ras_call->rsp_num,
11786
0
                                     "The response to this request is in frame %u",
11787
0
                                     h225ras_call->rsp_num);
11788
0
        proto_item_set_generated(ti);
11789
0
      }
11790
11791
    /* end of request message handling*/
11792
10
    }
11793
4
    else {          /* Confirm or Reject Message */
11794
4
      conversation = find_conversation_pinfo(pinfo, 0);
11795
4
      if (conversation != NULL) {
11796
        /* look only for matching request, if
11797
           matching conversation is available. */
11798
4
        h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11799
4
        h225ras_call_key.conversation = conversation;
11800
4
        h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11801
4
        if(h225ras_call) {
11802
          /* find matching ras_call in list of ras calls with identical keys */
11803
0
          do {
11804
0
            if (pinfo->num == h225ras_call->rsp_num) {
11805
              /* We have seen this response before -> stop now with matching ras call */
11806
0
              break;
11807
0
            }
11808
11809
            /* Break when list end is reached */
11810
0
            if(h225ras_call->next_call == NULL) {
11811
0
              break;
11812
0
            }
11813
0
            h225ras_call = h225ras_call->next_call;
11814
0
          } while (h225ras_call != NULL) ;
11815
11816
0
          if (!h225ras_call) {
11817
0
            return;
11818
0
          }
11819
11820
          /* if this is an ACF, ARJ or DCF, DRJ, give guid to tap and make it filterable */
11821
0
          if (msg_category == 3 || msg_category == 5) {
11822
0
            pi->guid = h225ras_call->guid;
11823
0
            hidden_item = proto_tree_add_guid(tree, hf_h225_guid, tvb, 0, GUID_LEN, &pi->guid);
11824
0
            proto_item_set_hidden(hidden_item);
11825
0
          }
11826
11827
0
          if (h225ras_call->rsp_num == 0) {
11828
            /* We have not yet seen a response to that call, so
11829
               this must be the first response; remember its
11830
               frame number. */
11831
0
            h225ras_call->rsp_num = pinfo->num;
11832
0
          }
11833
0
          else {
11834
            /* We have seen a response to this call - but was it
11835
               *this* response? */
11836
0
            if (h225ras_call->rsp_num != pinfo->num) {
11837
              /* No, so it's a duplicate response.
11838
                 Mark it as such. */
11839
0
              pi->is_duplicate = true;
11840
0
              hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11841
0
              proto_item_set_hidden(hidden_item);
11842
0
            }
11843
0
          }
11844
11845
0
          if(h225ras_call->req_num != 0){
11846
0
            proto_item *ti;
11847
0
            h225ras_call->responded = true;
11848
0
            pi->request_available = true;
11849
11850
            /* Indicate the frame to which this is a reply. */
11851
0
            ti = proto_tree_add_uint_format(tree, hf_h225_ras_req_frame, tvb, 0, 0, h225ras_call->req_num,
11852
0
              "This is a response to a request in frame %u", h225ras_call->req_num);
11853
0
            proto_item_set_generated(ti);
11854
11855
            /* Calculate RAS Service Response Time */
11856
0
            nstime_delta(&delta, &pinfo->abs_ts, &h225ras_call->req_time);
11857
0
            pi->delta_time = delta; /* give it to tap */
11858
11859
            /* display Ras Service Response Time and make it filterable */
11860
0
            ti = proto_tree_add_time(tree, hf_h225_ras_deltatime, tvb, 0, 0, &(pi->delta_time));
11861
0
            proto_item_set_generated(ti);
11862
0
          }
11863
0
        }
11864
4
      }
11865
4
    }
11866
14
  }
11867
18
}
11868
11869
/*
11870
 * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
11871
 *
11872
 * Local Variables:
11873
 * c-basic-offset: 2
11874
 * tab-width: 8
11875
 * indent-tabs-mode: nil
11876
 * End:
11877
 *
11878
 * vi: set shiftwidth=2 tabstop=8 expandtab:
11879
 * :indentSize=2:tabSize=8:noTabs=true:
11880
 */