Coverage Report

Created: 2026-01-02 06:13

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 PNAME  "H323-MESSAGES"
54
976
#define PSNAME "H.225.0"
55
70
#define PFNAME "h225"
56
57
14
#define UDP_PORT_RAS_RANGE "1718-1719"
58
#define TCP_PORT_CS   1720
59
#define TLS_PORT_CS   1300
60
61
void proto_register_h225(void);
62
static h225_packet_info* create_h225_packet_info(packet_info *pinfo);
63
static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi);
64
65
/* Item of ras request list*/
66
typedef struct _h225ras_call_t {
67
  uint32_t requestSeqNum;
68
  e_guid_t guid;
69
  uint32_t req_num;  /* frame number request seen */
70
  uint32_t rsp_num;  /* frame number response seen */
71
  nstime_t req_time;  /* arrival time of request */
72
  bool responded; /* true, if request has been responded */
73
  struct _h225ras_call_t *next_call; /* pointer to next ras request with same SequenceNumber and conversation handle */
74
} h225ras_call_t;
75
76
77
/* Item of ras-request key list*/
78
typedef struct _h225ras_call_info_key {
79
  unsigned reqSeqNum;
80
  conversation_t *conversation;
81
} h225ras_call_info_key;
82
83
/* Global Memory Chunks for lists and Global hash tables*/
84
85
static wmem_map_t *ras_calls[7];
86
87
/* functions, needed using ras-request and halfcall matching*/
88
static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
89
static h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category);
90
static h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category);
91
92
93
static dissector_handle_t h225ras_handle;
94
static dissector_handle_t data_handle;
95
/* Subdissector tables */
96
static dissector_table_t nsp_object_dissector_table;
97
static dissector_table_t nsp_h221_dissector_table;
98
static dissector_table_t tp_dissector_table;
99
static dissector_table_t gef_name_dissector_table;
100
static dissector_table_t gef_content_dissector_table;
101
102
103
static dissector_handle_t h245_handle;
104
static dissector_handle_t h245dg_handle;
105
static dissector_handle_t h4501_handle;
106
107
static dissector_handle_t nsp_handle;
108
static dissector_handle_t tp_handle;
109
110
static next_tvb_list_t *h245_list;
111
static next_tvb_list_t *tp_list;
112
113
/* Initialize the protocol and registered fields */
114
static int h225_tap;
115
static int proto_h225;
116
117
static int hf_h221Manufacturer;
118
static int hf_h225_ras_req_frame;
119
static int hf_h225_ras_rsp_frame;
120
static int hf_h225_ras_dup;
121
static int hf_h225_ras_deltatime;
122
static int hf_h225_debug_dissector_try_string;
123
124
static int hf_h225_H323_UserInformation_PDU;      /* H323_UserInformation */
125
static int hf_h225_h225_ExtendedAliasAddress_PDU;  /* ExtendedAliasAddress */
126
static int hf_h225_RasMessage_PDU;                /* RasMessage */
127
static int hf_h225_h323_uu_pdu;                   /* H323_UU_PDU */
128
static int hf_h225_user_data;                     /* T_user_data */
129
static int hf_h225_protocol_discriminator;        /* INTEGER_0_255 */
130
static int hf_h225_user_information;              /* OCTET_STRING_SIZE_1_131 */
131
static int hf_h225_h323_message_body;             /* T_h323_message_body */
132
static int hf_h225_setup;                         /* Setup_UUIE */
133
static int hf_h225_callProceeding;                /* CallProceeding_UUIE */
134
static int hf_h225_connect;                       /* Connect_UUIE */
135
static int hf_h225_alerting;                      /* Alerting_UUIE */
136
static int hf_h225_information;                   /* Information_UUIE */
137
static int hf_h225_releaseComplete;               /* ReleaseComplete_UUIE */
138
static int hf_h225_facility;                      /* Facility_UUIE */
139
static int hf_h225_progress;                      /* Progress_UUIE */
140
static int hf_h225_empty_flg;                     /* T_empty_flg */
141
static int hf_h225_status;                        /* Status_UUIE */
142
static int hf_h225_statusInquiry;                 /* StatusInquiry_UUIE */
143
static int hf_h225_setupAcknowledge;              /* SetupAcknowledge_UUIE */
144
static int hf_h225_notify;                        /* Notify_UUIE */
145
static int hf_h225_nonStandardData;               /* NonStandardParameter */
146
static int hf_h225_h4501SupplementaryService;     /* T_h4501SupplementaryService */
147
static int hf_h225_h4501SupplementaryService_item;  /* T_h4501SupplementaryService_item */
148
static int hf_h225_h245Tunnelling;                /* T_h245Tunnelling */
149
static int hf_h225_H245Control_item;              /* H245Control_item */
150
static int hf_h225_h245Control;                   /* H245Control */
151
static int hf_h225_nonStandardControl;            /* SEQUENCE_OF_NonStandardParameter */
152
static int hf_h225_nonStandardControl_item;       /* NonStandardParameter */
153
static int hf_h225_callLinkage;                   /* CallLinkage */
154
static int hf_h225_tunnelledSignallingMessage;    /* T_tunnelledSignallingMessage */
155
static int hf_h225_tunnelledProtocolID;           /* TunnelledProtocol */
156
static int hf_h225_messageContent;                /* T_messageContent */
157
static int hf_h225_messageContent_item;           /* T_messageContent_item */
158
static int hf_h225_tunnellingRequired;            /* NULL */
159
static int hf_h225_provisionalRespToH245Tunnelling;  /* NULL */
160
static int hf_h225_stimulusControl;               /* StimulusControl */
161
static int hf_h225_genericData;                   /* SEQUENCE_OF_GenericData */
162
static int hf_h225_genericData_item;              /* GenericData */
163
static int hf_h225_nonStandard;                   /* NonStandardParameter */
164
static int hf_h225_isText;                        /* NULL */
165
static int hf_h225_h248Message;                   /* OCTET_STRING */
166
static int hf_h225_protocolIdentifier;            /* ProtocolIdentifier */
167
static int hf_h225_uUIE_destinationInfo;          /* EndpointType */
168
static int hf_h225_h245Address;                   /* H245TransportAddress */
169
static int hf_h225_callIdentifier;                /* CallIdentifier */
170
static int hf_h225_h245SecurityMode;              /* H245Security */
171
static int hf_h225_tokens;                        /* SEQUENCE_OF_ClearToken */
172
static int hf_h225_tokens_item;                   /* ClearToken */
173
static int hf_h225_cryptoTokens;                  /* SEQUENCE_OF_CryptoH323Token */
174
static int hf_h225_cryptoTokens_item;             /* CryptoH323Token */
175
static int hf_h225_fastStart;                     /* FastStart */
176
static int hf_h225_multipleCalls;                 /* BOOLEAN */
177
static int hf_h225_maintainConnection;            /* BOOLEAN */
178
static int hf_h225_alertingAddress;               /* SEQUENCE_OF_AliasAddress */
179
static int hf_h225_alertingAddress_item;          /* AliasAddress */
180
static int hf_h225_presentationIndicator;         /* PresentationIndicator */
181
static int hf_h225_screeningIndicator;            /* ScreeningIndicator */
182
static int hf_h225_fastConnectRefused;            /* NULL */
183
static int hf_h225_serviceControl;                /* SEQUENCE_OF_ServiceControlSession */
184
static int hf_h225_serviceControl_item;           /* ServiceControlSession */
185
static int hf_h225_capacity;                      /* CallCapacity */
186
static int hf_h225_featureSet;                    /* FeatureSet */
187
static int hf_h225_displayName;                   /* SEQUENCE_OF_DisplayName */
188
static int hf_h225_displayName_item;              /* DisplayName */
189
static int hf_h225_conferenceID;                  /* ConferenceIdentifier */
190
static int hf_h225_language;                      /* Language */
191
static int hf_h225_connectedAddress;              /* SEQUENCE_OF_AliasAddress */
192
static int hf_h225_connectedAddress_item;         /* AliasAddress */
193
static int hf_h225_circuitInfo;                   /* CircuitInfo */
194
static int hf_h225_releaseCompleteReason;         /* ReleaseCompleteReason */
195
static int hf_h225_busyAddress;                   /* SEQUENCE_OF_AliasAddress */
196
static int hf_h225_busyAddress_item;              /* AliasAddress */
197
static int hf_h225_destinationInfo;               /* EndpointType */
198
static int hf_h225_noBandwidth;                   /* NULL */
199
static int hf_h225_gatekeeperResources;           /* NULL */
200
static int hf_h225_unreachableDestination;        /* NULL */
201
static int hf_h225_destinationRejection;          /* NULL */
202
static int hf_h225_invalidRevision;               /* NULL */
203
static int hf_h225_noPermission;                  /* NULL */
204
static int hf_h225_unreachableGatekeeper;         /* NULL */
205
static int hf_h225_gatewayResources;              /* NULL */
206
static int hf_h225_badFormatAddress;              /* NULL */
207
static int hf_h225_adaptiveBusy;                  /* NULL */
208
static int hf_h225_inConf;                        /* NULL */
209
static int hf_h225_undefinedReason;               /* NULL */
210
static int hf_h225_facilityCallDeflection;        /* NULL */
211
static int hf_h225_securityDenied;                /* NULL */
212
static int hf_h225_calledPartyNotRegistered;      /* NULL */
213
static int hf_h225_callerNotRegistered;           /* NULL */
214
static int hf_h225_newConnectionNeeded;           /* NULL */
215
static int hf_h225_nonStandardReason;             /* NonStandardParameter */
216
static int hf_h225_replaceWithConferenceInvite;   /* ConferenceIdentifier */
217
static int hf_h225_genericDataReason;             /* NULL */
218
static int hf_h225_neededFeatureNotSupported;     /* NULL */
219
static int hf_h225_tunnelledSignallingRejected;   /* NULL */
220
static int hf_h225_invalidCID;                    /* NULL */
221
static int hf_h225_rLC_securityError;             /* SecurityErrors */
222
static int hf_h225_hopCountExceeded;              /* NULL */
223
static int hf_h225_sourceAddress;                 /* SEQUENCE_OF_AliasAddress */
224
static int hf_h225_sourceAddress_item;            /* AliasAddress */
225
static int hf_h225_setup_UUIE_sourceInfo;         /* EndpointType */
226
static int hf_h225_destinationAddress;            /* SEQUENCE_OF_AliasAddress */
227
static int hf_h225_destinationAddress_item;       /* AliasAddress */
228
static int hf_h225_destCallSignalAddress;         /* TransportAddress */
229
static int hf_h225_destExtraCallInfo;             /* SEQUENCE_OF_AliasAddress */
230
static int hf_h225_destExtraCallInfo_item;        /* AliasAddress */
231
static int hf_h225_destExtraCRV;                  /* SEQUENCE_OF_CallReferenceValue */
232
static int hf_h225_destExtraCRV_item;             /* CallReferenceValue */
233
static int hf_h225_activeMC;                      /* BOOLEAN */
234
static int hf_h225_conferenceGoal;                /* T_conferenceGoal */
235
static int hf_h225_create;                        /* NULL */
236
static int hf_h225_join;                          /* NULL */
237
static int hf_h225_invite;                        /* NULL */
238
static int hf_h225_capability_negotiation;        /* NULL */
239
static int hf_h225_callIndependentSupplementaryService;  /* NULL */
240
static int hf_h225_callServices;                  /* QseriesOptions */
241
static int hf_h225_callType;                      /* CallType */
242
static int hf_h225_sourceCallSignalAddress;       /* TransportAddress */
243
static int hf_h225_uUIE_remoteExtensionAddress;   /* AliasAddress */
244
static int hf_h225_h245SecurityCapability;        /* SEQUENCE_OF_H245Security */
245
static int hf_h225_h245SecurityCapability_item;   /* H245Security */
246
static int hf_h225_FastStart_item;                /* FastStart_item */
247
static int hf_h225_mediaWaitForConnect;           /* BOOLEAN */
248
static int hf_h225_canOverlapSend;                /* BOOLEAN */
249
static int hf_h225_endpointIdentifier;            /* EndpointIdentifier */
250
static int hf_h225_connectionParameters;          /* T_connectionParameters */
251
static int hf_h225_connectionType;                /* ScnConnectionType */
252
static int hf_h225_numberOfScnConnections;        /* INTEGER_0_65535 */
253
static int hf_h225_connectionAggregation;         /* ScnConnectionAggregation */
254
static int hf_h225_Language_item;                 /* IA5String_SIZE_1_32 */
255
static int hf_h225_symmetricOperationRequired;    /* NULL */
256
static int hf_h225_desiredProtocols;              /* SEQUENCE_OF_SupportedProtocols */
257
static int hf_h225_desiredProtocols_item;         /* SupportedProtocols */
258
static int hf_h225_neededFeatures;                /* SEQUENCE_OF_FeatureDescriptor */
259
static int hf_h225_neededFeatures_item;           /* FeatureDescriptor */
260
static int hf_h225_desiredFeatures;               /* SEQUENCE_OF_FeatureDescriptor */
261
static int hf_h225_desiredFeatures_item;          /* FeatureDescriptor */
262
static int hf_h225_supportedFeatures;             /* SEQUENCE_OF_FeatureDescriptor */
263
static int hf_h225_supportedFeatures_item;        /* FeatureDescriptor */
264
static int hf_h225_ParallelH245Control_item;      /* ParallelH245Control_item */
265
static int hf_h225_parallelH245Control;           /* ParallelH245Control */
266
static int hf_h225_additionalSourceAddresses;     /* SEQUENCE_OF_ExtendedAliasAddress */
267
static int hf_h225_additionalSourceAddresses_item;  /* ExtendedAliasAddress */
268
static int hf_h225_hopCount_1_31;                 /* INTEGER_1_31 */
269
static int hf_h225_unknown;                       /* NULL */
270
static int hf_h225_bChannel;                      /* NULL */
271
static int hf_h225_hybrid2x64;                    /* NULL */
272
static int hf_h225_hybrid384;                     /* NULL */
273
static int hf_h225_hybrid1536;                    /* NULL */
274
static int hf_h225_hybrid1920;                    /* NULL */
275
static int hf_h225_multirate;                     /* NULL */
276
static int hf_h225_auto;                          /* NULL */
277
static int hf_h225_none;                          /* NULL */
278
static int hf_h225_h221;                          /* NULL */
279
static int hf_h225_bonded_mode1;                  /* NULL */
280
static int hf_h225_bonded_mode2;                  /* NULL */
281
static int hf_h225_bonded_mode3;                  /* NULL */
282
static int hf_h225_presentationAllowed;           /* NULL */
283
static int hf_h225_presentationRestricted;        /* NULL */
284
static int hf_h225_addressNotAvailable;           /* NULL */
285
static int hf_h225_alternativeAddress;            /* TransportAddress */
286
static int hf_h225_alternativeAliasAddress;       /* SEQUENCE_OF_AliasAddress */
287
static int hf_h225_alternativeAliasAddress_item;  /* AliasAddress */
288
static int hf_h225_facilityReason;                /* FacilityReason */
289
static int hf_h225_conferences;                   /* SEQUENCE_OF_ConferenceList */
290
static int hf_h225_conferences_item;              /* ConferenceList */
291
static int hf_h225_conferenceAlias;               /* AliasAddress */
292
static int hf_h225_routeCallToGatekeeper;         /* NULL */
293
static int hf_h225_callForwarded;                 /* NULL */
294
static int hf_h225_routeCallToMC;                 /* NULL */
295
static int hf_h225_conferenceListChoice;          /* NULL */
296
static int hf_h225_startH245;                     /* NULL */
297
static int hf_h225_noH245;                        /* NULL */
298
static int hf_h225_newTokens;                     /* NULL */
299
static int hf_h225_featureSetUpdate;              /* NULL */
300
static int hf_h225_forwardedElements;             /* NULL */
301
static int hf_h225_transportedInformation;        /* NULL */
302
static int hf_h225_h245IpAddress;                 /* T_h245IpAddress */
303
static int hf_h225_h245Ip;                        /* T_h245Ip */
304
static int hf_h225_h245IpPort;                    /* T_h245IpPort */
305
static int hf_h225_h245IpSourceRoute;             /* T_h245IpSourceRoute */
306
static int hf_h225_ip;                            /* OCTET_STRING_SIZE_4 */
307
static int hf_h225_port;                          /* INTEGER_0_65535 */
308
static int hf_h225_h245Route;                     /* T_h245Route */
309
static int hf_h225_h245Route_item;                /* OCTET_STRING_SIZE_4 */
310
static int hf_h225_h245Routing;                   /* T_h245Routing */
311
static int hf_h225_strict;                        /* NULL */
312
static int hf_h225_loose;                         /* NULL */
313
static int hf_h225_h245IpxAddress;                /* T_h245IpxAddress */
314
static int hf_h225_node;                          /* OCTET_STRING_SIZE_6 */
315
static int hf_h225_netnum;                        /* OCTET_STRING_SIZE_4 */
316
static int hf_h225_h245IpxPort;                   /* OCTET_STRING_SIZE_2 */
317
static int hf_h225_h245Ip6Address;                /* T_h245Ip6Address */
318
static int hf_h225_h245Ip6;                       /* T_h245Ip6 */
319
static int hf_h225_h245Ip6port;                   /* T_h245Ip6port */
320
static int hf_h225_netBios;                       /* OCTET_STRING_SIZE_16 */
321
static int hf_h225_nsap;                          /* OCTET_STRING_SIZE_1_20 */
322
static int hf_h225_nonStandardAddress;            /* NonStandardParameter */
323
static int hf_h225_ipAddress;                     /* T_ipAddress */
324
static int hf_h225_ipV4;                          /* IpV4 */
325
static int hf_h225_ipV4_port;                     /* INTEGER_0_65535 */
326
static int hf_h225_ipSourceRoute;                 /* T_ipSourceRoute */
327
static int hf_h225_src_route_ipV4;                /* OCTET_STRING_SIZE_4 */
328
static int hf_h225_ipV4_src_port;                 /* INTEGER_0_65535 */
329
static int hf_h225_route;                         /* T_route */
330
static int hf_h225_route_item;                    /* OCTET_STRING_SIZE_4 */
331
static int hf_h225_routing;                       /* T_routing */
332
static int hf_h225_ipxAddress;                    /* T_ipxAddress */
333
static int hf_h225_ipx_port;                      /* OCTET_STRING_SIZE_2 */
334
static int hf_h225_ip6Address;                    /* T_ip6Address */
335
static int hf_h225_ipV6;                          /* OCTET_STRING_SIZE_16 */
336
static int hf_h225_ipV6_port;                     /* INTEGER_0_65535 */
337
static int hf_h225_vendor;                        /* VendorIdentifier */
338
static int hf_h225_gatekeeper;                    /* GatekeeperInfo */
339
static int hf_h225_gateway;                       /* GatewayInfo */
340
static int hf_h225_mcu;                           /* McuInfo */
341
static int hf_h225_terminal;                      /* TerminalInfo */
342
static int hf_h225_mc;                            /* BOOLEAN */
343
static int hf_h225_undefinedNode;                 /* BOOLEAN */
344
static int hf_h225_set;                           /* BIT_STRING_SIZE_32 */
345
static int hf_h225_supportedTunnelledProtocols;   /* SEQUENCE_OF_TunnelledProtocol */
346
static int hf_h225_supportedTunnelledProtocols_item;  /* TunnelledProtocol */
347
static int hf_h225_protocol;                      /* SEQUENCE_OF_SupportedProtocols */
348
static int hf_h225_protocol_item;                 /* SupportedProtocols */
349
static int hf_h225_h310;                          /* H310Caps */
350
static int hf_h225_h320;                          /* H320Caps */
351
static int hf_h225_h321;                          /* H321Caps */
352
static int hf_h225_h322;                          /* H322Caps */
353
static int hf_h225_h323;                          /* H323Caps */
354
static int hf_h225_h324;                          /* H324Caps */
355
static int hf_h225_voice;                         /* VoiceCaps */
356
static int hf_h225_t120_only;                     /* T120OnlyCaps */
357
static int hf_h225_nonStandardProtocol;           /* NonStandardProtocol */
358
static int hf_h225_t38FaxAnnexbOnly;              /* T38FaxAnnexbOnlyCaps */
359
static int hf_h225_sip;                           /* SIPCaps */
360
static int hf_h225_dataRatesSupported;            /* SEQUENCE_OF_DataRate */
361
static int hf_h225_dataRatesSupported_item;       /* DataRate */
362
static int hf_h225_supportedPrefixes;             /* SEQUENCE_OF_SupportedPrefix */
363
static int hf_h225_supportedPrefixes_item;        /* SupportedPrefix */
364
static int hf_h225_t38FaxProtocol;                /* DataProtocolCapability */
365
static int hf_h225_t38FaxProfile;                 /* T38FaxProfile */
366
static int hf_h225_vendorIdentifier_vendor;       /* H221NonStandard */
367
static int hf_h225_productId;                     /* OCTET_STRING_SIZE_1_256 */
368
static int hf_h225_versionId;                     /* OCTET_STRING_SIZE_1_256 */
369
static int hf_h225_enterpriseNumber;              /* OBJECT_IDENTIFIER */
370
static int hf_h225_t35CountryCode;                /* T_t35CountryCode */
371
static int hf_h225_t35Extension;                  /* T_t35Extension */
372
static int hf_h225_manufacturerCode;              /* T_manufacturerCode */
373
static int hf_h225_tunnelledProtocol_id;          /* TunnelledProtocol_id */
374
static int hf_h225_tunnelledProtocolObjectID;     /* T_tunnelledProtocolObjectID */
375
static int hf_h225_tunnelledProtocolAlternateID;  /* TunnelledProtocolAlternateIdentifier */
376
static int hf_h225_subIdentifier;                 /* IA5String_SIZE_1_64 */
377
static int hf_h225_protocolType;                  /* IA5String_SIZE_1_64 */
378
static int hf_h225_protocolVariant;               /* IA5String_SIZE_1_64 */
379
static int hf_h225_nonStandardIdentifier;         /* NonStandardIdentifier */
380
static int hf_h225_nsp_data;                      /* T_nsp_data */
381
static int hf_h225_nsiOID;                        /* T_nsiOID */
382
static int hf_h225_h221NonStandard;               /* H221NonStandard */
383
static int hf_h225_dialledDigits;                 /* DialedDigits */
384
static int hf_h225_h323_ID;                       /* BMPString_SIZE_1_256 */
385
static int hf_h225_url_ID;                        /* IA5String_SIZE_1_512 */
386
static int hf_h225_transportID;                   /* TransportAddress */
387
static int hf_h225_email_ID;                      /* IA5String_SIZE_1_512 */
388
static int hf_h225_partyNumber;                   /* PartyNumber */
389
static int hf_h225_mobileUIM;                     /* MobileUIM */
390
static int hf_h225_isupNumber;                    /* IsupNumber */
391
static int hf_h225_wildcard;                      /* AliasAddress */
392
static int hf_h225_range;                         /* T_range */
393
static int hf_h225_startOfRange;                  /* PartyNumber */
394
static int hf_h225_endOfRange;                    /* PartyNumber */
395
static int hf_h225_e164Number;                    /* PublicPartyNumber */
396
static int hf_h225_dataPartyNumber;               /* NumberDigits */
397
static int hf_h225_telexPartyNumber;              /* NumberDigits */
398
static int hf_h225_privateNumber;                 /* PrivatePartyNumber */
399
static int hf_h225_nationalStandardPartyNumber;   /* NumberDigits */
400
static int hf_h225_publicTypeOfNumber;            /* PublicTypeOfNumber */
401
static int hf_h225_publicNumberDigits;            /* NumberDigits */
402
static int hf_h225_privateTypeOfNumber;           /* PrivateTypeOfNumber */
403
static int hf_h225_privateNumberDigits;           /* NumberDigits */
404
static int hf_h225_displayName_language;          /* IA5String */
405
static int hf_h225_name;                          /* BMPString_SIZE_1_80 */
406
static int hf_h225_internationalNumber;           /* NULL */
407
static int hf_h225_nationalNumber;                /* NULL */
408
static int hf_h225_networkSpecificNumber;         /* NULL */
409
static int hf_h225_subscriberNumber;              /* NULL */
410
static int hf_h225_abbreviatedNumber;             /* NULL */
411
static int hf_h225_level2RegionalNumber;          /* NULL */
412
static int hf_h225_level1RegionalNumber;          /* NULL */
413
static int hf_h225_pISNSpecificNumber;            /* NULL */
414
static int hf_h225_localNumber;                   /* NULL */
415
static int hf_h225_ansi_41_uim;                   /* ANSI_41_UIM */
416
static int hf_h225_gsm_uim;                       /* GSM_UIM */
417
static int hf_h225_imsi;                          /* TBCD_STRING_SIZE_3_16 */
418
static int hf_h225_min;                           /* TBCD_STRING_SIZE_3_16 */
419
static int hf_h225_mdn;                           /* TBCD_STRING_SIZE_3_16 */
420
static int hf_h225_msisdn;                        /* TBCD_STRING_SIZE_3_16 */
421
static int hf_h225_esn;                           /* TBCD_STRING_SIZE_16 */
422
static int hf_h225_mscid;                         /* TBCD_STRING_SIZE_3_16 */
423
static int hf_h225_system_id;                     /* T_system_id */
424
static int hf_h225_sid;                           /* TBCD_STRING_SIZE_1_4 */
425
static int hf_h225_mid;                           /* TBCD_STRING_SIZE_1_4 */
426
static int hf_h225_systemMyTypeCode;              /* OCTET_STRING_SIZE_1 */
427
static int hf_h225_systemAccessType;              /* OCTET_STRING_SIZE_1 */
428
static int hf_h225_qualificationInformationCode;  /* OCTET_STRING_SIZE_1 */
429
static int hf_h225_sesn;                          /* TBCD_STRING_SIZE_16 */
430
static int hf_h225_soc;                           /* TBCD_STRING_SIZE_3_16 */
431
static int hf_h225_tmsi;                          /* OCTET_STRING_SIZE_1_4 */
432
static int hf_h225_imei;                          /* TBCD_STRING_SIZE_15_16 */
433
static int hf_h225_hplmn;                         /* TBCD_STRING_SIZE_1_4 */
434
static int hf_h225_vplmn;                         /* TBCD_STRING_SIZE_1_4 */
435
static int hf_h225_isupE164Number;                /* IsupPublicPartyNumber */
436
static int hf_h225_isupDataPartyNumber;           /* IsupDigits */
437
static int hf_h225_isupTelexPartyNumber;          /* IsupDigits */
438
static int hf_h225_isupPrivateNumber;             /* IsupPrivatePartyNumber */
439
static int hf_h225_isupNationalStandardPartyNumber;  /* IsupDigits */
440
static int hf_h225_natureOfAddress;               /* NatureOfAddress */
441
static int hf_h225_address;                       /* IsupDigits */
442
static int hf_h225_routingNumberNationalFormat;   /* NULL */
443
static int hf_h225_routingNumberNetworkSpecificFormat;  /* NULL */
444
static int hf_h225_routingNumberWithCalledDirectoryNumber;  /* NULL */
445
static int hf_h225_extAliasAddress;               /* AliasAddress */
446
static int hf_h225_aliasAddress;                  /* SEQUENCE_OF_AliasAddress */
447
static int hf_h225_aliasAddress_item;             /* AliasAddress */
448
static int hf_h225_callSignalAddress;             /* SEQUENCE_OF_TransportAddress */
449
static int hf_h225_callSignalAddress_item;        /* TransportAddress */
450
static int hf_h225_rasAddress;                    /* SEQUENCE_OF_TransportAddress */
451
static int hf_h225_rasAddress_item;               /* TransportAddress */
452
static int hf_h225_endpointType;                  /* EndpointType */
453
static int hf_h225_priority;                      /* INTEGER_0_127 */
454
static int hf_h225_remoteExtensionAddress;        /* SEQUENCE_OF_AliasAddress */
455
static int hf_h225_ep_remoteExtensionAddress_item;  /* AliasAddress */
456
static int hf_h225_alternateTransportAddresses;   /* AlternateTransportAddresses */
457
static int hf_h225_annexE;                        /* SEQUENCE_OF_TransportAddress */
458
static int hf_h225_annexE_item;                   /* TransportAddress */
459
static int hf_h225_sctp;                          /* SEQUENCE_OF_TransportAddress */
460
static int hf_h225_sctp_item;                     /* TransportAddress */
461
static int hf_h225_tcp;                           /* NULL */
462
static int hf_h225_annexE_flg;                    /* NULL */
463
static int hf_h225_sctp_flg;                      /* NULL */
464
static int hf_h225_alternateGK_rasAddress;        /* TransportAddress */
465
static int hf_h225_gatekeeperIdentifier;          /* GatekeeperIdentifier */
466
static int hf_h225_needToRegister;                /* BOOLEAN */
467
static int hf_h225_alternateGatekeeper;           /* SEQUENCE_OF_AlternateGK */
468
static int hf_h225_alternateGatekeeper_item;      /* AlternateGK */
469
static int hf_h225_altGKisPermanent;              /* BOOLEAN */
470
static int hf_h225_default;                       /* NULL */
471
static int hf_h225_encryption;                    /* SecurityServiceMode */
472
static int hf_h225_authenticaton;                 /* SecurityServiceMode */
473
static int hf_h225_securityCapabilities_integrity;  /* SecurityServiceMode */
474
static int hf_h225_securityWrongSyncTime;         /* NULL */
475
static int hf_h225_securityReplay;                /* NULL */
476
static int hf_h225_securityWrongGeneralID;        /* NULL */
477
static int hf_h225_securityWrongSendersID;        /* NULL */
478
static int hf_h225_securityIntegrityFailed;       /* NULL */
479
static int hf_h225_securityWrongOID;              /* NULL */
480
static int hf_h225_securityDHmismatch;            /* NULL */
481
static int hf_h225_securityCertificateExpired;    /* NULL */
482
static int hf_h225_securityCertificateDateInvalid;  /* NULL */
483
static int hf_h225_securityCertificateRevoked;    /* NULL */
484
static int hf_h225_securityCertificateNotReadable;  /* NULL */
485
static int hf_h225_securityCertificateSignatureInvalid;  /* NULL */
486
static int hf_h225_securityCertificateMissing;    /* NULL */
487
static int hf_h225_securityCertificateIncomplete;  /* NULL */
488
static int hf_h225_securityUnsupportedCertificateAlgOID;  /* NULL */
489
static int hf_h225_securityUnknownCA;             /* NULL */
490
static int hf_h225_noSecurity;                    /* NULL */
491
static int hf_h225_tls;                           /* SecurityCapabilities */
492
static int hf_h225_ipsec;                         /* SecurityCapabilities */
493
static int hf_h225_q932Full;                      /* BOOLEAN */
494
static int hf_h225_q951Full;                      /* BOOLEAN */
495
static int hf_h225_q952Full;                      /* BOOLEAN */
496
static int hf_h225_q953Full;                      /* BOOLEAN */
497
static int hf_h225_q955Full;                      /* BOOLEAN */
498
static int hf_h225_q956Full;                      /* BOOLEAN */
499
static int hf_h225_q957Full;                      /* BOOLEAN */
500
static int hf_h225_q954Info;                      /* Q954Details */
501
static int hf_h225_conferenceCalling;             /* BOOLEAN */
502
static int hf_h225_threePartyService;             /* BOOLEAN */
503
static int hf_h225_guid;                          /* T_guid */
504
static int hf_h225_isoAlgorithm;                  /* OBJECT_IDENTIFIER */
505
static int hf_h225_hMAC_MD5;                      /* NULL */
506
static int hf_h225_hMAC_iso10118_2_s;             /* EncryptIntAlg */
507
static int hf_h225_hMAC_iso10118_2_l;             /* EncryptIntAlg */
508
static int hf_h225_hMAC_iso10118_3;               /* OBJECT_IDENTIFIER */
509
static int hf_h225_digSig;                        /* NULL */
510
static int hf_h225_iso9797;                       /* OBJECT_IDENTIFIER */
511
static int hf_h225_nonIsoIM;                      /* NonIsoIntegrityMechanism */
512
static int hf_h225_algorithmOID;                  /* OBJECT_IDENTIFIER */
513
static int hf_h225_icv;                           /* BIT_STRING */
514
static int hf_h225_cryptoEPPwdHash;               /* T_cryptoEPPwdHash */
515
static int hf_h225_alias;                         /* AliasAddress */
516
static int hf_h225_timeStamp;                     /* TimeStamp */
517
static int hf_h225_token;                         /* HASHED */
518
static int hf_h225_cryptoGKPwdHash;               /* T_cryptoGKPwdHash */
519
static int hf_h225_gatekeeperId;                  /* GatekeeperIdentifier */
520
static int hf_h225_cryptoEPPwdEncr;               /* ENCRYPTED */
521
static int hf_h225_cryptoGKPwdEncr;               /* ENCRYPTED */
522
static int hf_h225_cryptoEPCert;                  /* SIGNED */
523
static int hf_h225_cryptoGKCert;                  /* SIGNED */
524
static int hf_h225_cryptoFastStart;               /* SIGNED */
525
static int hf_h225_nestedcryptoToken;             /* CryptoToken */
526
static int hf_h225_channelRate;                   /* BandWidth */
527
static int hf_h225_channelMultiplier;             /* INTEGER_1_256 */
528
static int hf_h225_globalCallId;                  /* GloballyUniqueID */
529
static int hf_h225_threadId;                      /* GloballyUniqueID */
530
static int hf_h225_prefix;                        /* AliasAddress */
531
static int hf_h225_canReportCallCapacity;         /* BOOLEAN */
532
static int hf_h225_capacityReportingSpecification_when;  /* CapacityReportingSpecification_when */
533
static int hf_h225_callStart;                     /* NULL */
534
static int hf_h225_callEnd;                       /* NULL */
535
static int hf_h225_maximumCallCapacity;           /* CallCapacityInfo */
536
static int hf_h225_currentCallCapacity;           /* CallCapacityInfo */
537
static int hf_h225_voiceGwCallsAvailable;         /* SEQUENCE_OF_CallsAvailable */
538
static int hf_h225_voiceGwCallsAvailable_item;    /* CallsAvailable */
539
static int hf_h225_h310GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
540
static int hf_h225_h310GwCallsAvailable_item;     /* CallsAvailable */
541
static int hf_h225_h320GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
542
static int hf_h225_h320GwCallsAvailable_item;     /* CallsAvailable */
543
static int hf_h225_h321GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
544
static int hf_h225_h321GwCallsAvailable_item;     /* CallsAvailable */
545
static int hf_h225_h322GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
546
static int hf_h225_h322GwCallsAvailable_item;     /* CallsAvailable */
547
static int hf_h225_h323GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
548
static int hf_h225_h323GwCallsAvailable_item;     /* CallsAvailable */
549
static int hf_h225_h324GwCallsAvailable;          /* SEQUENCE_OF_CallsAvailable */
550
static int hf_h225_h324GwCallsAvailable_item;     /* CallsAvailable */
551
static int hf_h225_t120OnlyGwCallsAvailable;      /* SEQUENCE_OF_CallsAvailable */
552
static int hf_h225_t120OnlyGwCallsAvailable_item;  /* CallsAvailable */
553
static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable;  /* SEQUENCE_OF_CallsAvailable */
554
static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item;  /* CallsAvailable */
555
static int hf_h225_terminalCallsAvailable;        /* SEQUENCE_OF_CallsAvailable */
556
static int hf_h225_terminalCallsAvailable_item;   /* CallsAvailable */
557
static int hf_h225_mcuCallsAvailable;             /* SEQUENCE_OF_CallsAvailable */
558
static int hf_h225_mcuCallsAvailable_item;        /* CallsAvailable */
559
static int hf_h225_sipGwCallsAvailable;           /* SEQUENCE_OF_CallsAvailable */
560
static int hf_h225_sipGwCallsAvailable_item;      /* CallsAvailable */
561
static int hf_h225_calls;                         /* INTEGER_0_4294967295 */
562
static int hf_h225_group_IA5String;               /* IA5String_SIZE_1_128 */
563
static int hf_h225_carrier;                       /* CarrierInfo */
564
static int hf_h225_sourceCircuitID;               /* CircuitIdentifier */
565
static int hf_h225_destinationCircuitID;          /* CircuitIdentifier */
566
static int hf_h225_cic;                           /* CicInfo */
567
static int hf_h225_group;                         /* GroupID */
568
static int hf_h225_cic_2_4;                       /* T_cic_2_4 */
569
static int hf_h225_cic_2_4_item;                  /* OCTET_STRING_SIZE_2_4 */
570
static int hf_h225_pointCode;                     /* OCTET_STRING_SIZE_2_5 */
571
static int hf_h225_member;                        /* T_member */
572
static int hf_h225_member_item;                   /* INTEGER_0_65535 */
573
static int hf_h225_carrierIdentificationCode;     /* OCTET_STRING_SIZE_3_4 */
574
static int hf_h225_carrierName;                   /* IA5String_SIZE_1_128 */
575
static int hf_h225_url;                           /* IA5String_SIZE_0_512 */
576
static int hf_h225_signal;                        /* H248SignalsDescriptor */
577
static int hf_h225_callCreditServiceControl;      /* CallCreditServiceControl */
578
static int hf_h225_sessionId_0_255;               /* INTEGER_0_255 */
579
static int hf_h225_contents;                      /* ServiceControlDescriptor */
580
static int hf_h225_reason;                        /* ServiceControlSession_reason */
581
static int hf_h225_open;                          /* NULL */
582
static int hf_h225_refresh;                       /* NULL */
583
static int hf_h225_close;                         /* NULL */
584
static int hf_h225_nonStandardUsageTypes;         /* SEQUENCE_OF_NonStandardParameter */
585
static int hf_h225_nonStandardUsageTypes_item;    /* NonStandardParameter */
586
static int hf_h225_startTime;                     /* NULL */
587
static int hf_h225_endTime_flg;                   /* NULL */
588
static int hf_h225_terminationCause_flg;          /* NULL */
589
static int hf_h225_when;                          /* RasUsageSpecification_when */
590
static int hf_h225_start;                         /* NULL */
591
static int hf_h225_end;                           /* NULL */
592
static int hf_h225_inIrr;                         /* NULL */
593
static int hf_h225_ras_callStartingPoint;         /* RasUsageSpecificationcallStartingPoint */
594
static int hf_h225_alerting_flg;                  /* NULL */
595
static int hf_h225_connect_flg;                   /* NULL */
596
static int hf_h225_required;                      /* RasUsageInfoTypes */
597
static int hf_h225_nonStandardUsageFields;        /* SEQUENCE_OF_NonStandardParameter */
598
static int hf_h225_nonStandardUsageFields_item;   /* NonStandardParameter */
599
static int hf_h225_alertingTime;                  /* TimeStamp */
600
static int hf_h225_connectTime;                   /* TimeStamp */
601
static int hf_h225_endTime;                       /* TimeStamp */
602
static int hf_h225_releaseCompleteCauseIE;        /* OCTET_STRING_SIZE_2_32 */
603
static int hf_h225_sender;                        /* BOOLEAN */
604
static int hf_h225_multicast;                     /* BOOLEAN */
605
static int hf_h225_bandwidth;                     /* BandWidth */
606
static int hf_h225_rtcpAddresses;                 /* TransportChannelInfo */
607
static int hf_h225_canDisplayAmountString;        /* BOOLEAN */
608
static int hf_h225_canEnforceDurationLimit;       /* BOOLEAN */
609
static int hf_h225_amountString;                  /* BMPString_SIZE_1_512 */
610
static int hf_h225_billingMode;                   /* T_billingMode */
611
static int hf_h225_credit;                        /* NULL */
612
static int hf_h225_debit;                         /* NULL */
613
static int hf_h225_callDurationLimit;             /* INTEGER_1_4294967295 */
614
static int hf_h225_enforceCallDurationLimit;      /* BOOLEAN */
615
static int hf_h225_callStartingPoint;             /* CallCreditServiceControl_callStartingPoint */
616
static int hf_h225_id;                            /* GenericIdentifier */
617
static int hf_h225_parameters;                    /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
618
static int hf_h225_parameters_item;               /* EnumeratedParameter */
619
static int hf_h225_standard;                      /* T_standard */
620
static int hf_h225_oid;                           /* T_oid */
621
static int hf_h225_genericIdentifier_nonStandard;  /* GloballyUniqueID */
622
static int hf_h225_content;                       /* Content */
623
static int hf_h225_raw;                           /* T_raw */
624
static int hf_h225_text;                          /* IA5String */
625
static int hf_h225_unicode;                       /* BMPString */
626
static int hf_h225_bool;                          /* BOOLEAN */
627
static int hf_h225_number8;                       /* INTEGER_0_255 */
628
static int hf_h225_number16;                      /* INTEGER_0_65535 */
629
static int hf_h225_number32;                      /* INTEGER_0_4294967295 */
630
static int hf_h225_transport;                     /* TransportAddress */
631
static int hf_h225_compound;                      /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
632
static int hf_h225_compound_item;                 /* EnumeratedParameter */
633
static int hf_h225_nested;                        /* SEQUENCE_SIZE_1_16_OF_GenericData */
634
static int hf_h225_nested_item;                   /* GenericData */
635
static int hf_h225_replacementFeatureSet;         /* BOOLEAN */
636
static int hf_h225_sendAddress;                   /* TransportAddress */
637
static int hf_h225_recvAddress;                   /* TransportAddress */
638
static int hf_h225_rtpAddress;                    /* TransportChannelInfo */
639
static int hf_h225_rtcpAddress;                   /* TransportChannelInfo */
640
static int hf_h225_cname;                         /* PrintableString */
641
static int hf_h225_ssrc;                          /* INTEGER_1_4294967295 */
642
static int hf_h225_sessionId;                     /* INTEGER_1_255 */
643
static int hf_h225_associatedSessionIds;          /* T_associatedSessionIds */
644
static int hf_h225_associatedSessionIds_item;     /* INTEGER_1_255 */
645
static int hf_h225_multicast_flg;                 /* NULL */
646
static int hf_h225_gatekeeperBased;               /* NULL */
647
static int hf_h225_endpointBased;                 /* NULL */
648
static int hf_h225_gatekeeperRequest;             /* GatekeeperRequest */
649
static int hf_h225_gatekeeperConfirm;             /* GatekeeperConfirm */
650
static int hf_h225_gatekeeperReject;              /* GatekeeperReject */
651
static int hf_h225_registrationRequest;           /* RegistrationRequest */
652
static int hf_h225_registrationConfirm;           /* RegistrationConfirm */
653
static int hf_h225_registrationReject;            /* RegistrationReject */
654
static int hf_h225_unregistrationRequest;         /* UnregistrationRequest */
655
static int hf_h225_unregistrationConfirm;         /* UnregistrationConfirm */
656
static int hf_h225_unregistrationReject;          /* UnregistrationReject */
657
static int hf_h225_admissionRequest;              /* AdmissionRequest */
658
static int hf_h225_admissionConfirm;              /* AdmissionConfirm */
659
static int hf_h225_admissionReject;               /* AdmissionReject */
660
static int hf_h225_bandwidthRequest;              /* BandwidthRequest */
661
static int hf_h225_bandwidthConfirm;              /* BandwidthConfirm */
662
static int hf_h225_bandwidthReject;               /* BandwidthReject */
663
static int hf_h225_disengageRequest;              /* DisengageRequest */
664
static int hf_h225_disengageConfirm;              /* DisengageConfirm */
665
static int hf_h225_disengageReject;               /* DisengageReject */
666
static int hf_h225_locationRequest;               /* LocationRequest */
667
static int hf_h225_locationConfirm;               /* LocationConfirm */
668
static int hf_h225_locationReject;                /* LocationReject */
669
static int hf_h225_infoRequest;                   /* InfoRequest */
670
static int hf_h225_infoRequestResponse;           /* InfoRequestResponse */
671
static int hf_h225_nonStandardMessage;            /* NonStandardMessage */
672
static int hf_h225_unknownMessageResponse;        /* UnknownMessageResponse */
673
static int hf_h225_requestInProgress;             /* RequestInProgress */
674
static int hf_h225_resourcesAvailableIndicate;    /* ResourcesAvailableIndicate */
675
static int hf_h225_resourcesAvailableConfirm;     /* ResourcesAvailableConfirm */
676
static int hf_h225_infoRequestAck;                /* InfoRequestAck */
677
static int hf_h225_infoRequestNak;                /* InfoRequestNak */
678
static int hf_h225_serviceControlIndication;      /* ServiceControlIndication */
679
static int hf_h225_serviceControlResponse;        /* ServiceControlResponse */
680
static int hf_h225_admissionConfirmSequence;      /* SEQUENCE_OF_AdmissionConfirm */
681
static int hf_h225_admissionConfirmSequence_item;  /* AdmissionConfirm */
682
static int hf_h225_requestSeqNum;                 /* RequestSeqNum */
683
static int hf_h225_gatekeeperRequest_rasAddress;  /* TransportAddress */
684
static int hf_h225_endpointAlias;                 /* SEQUENCE_OF_AliasAddress */
685
static int hf_h225_endpointAlias_item;            /* AliasAddress */
686
static int hf_h225_alternateEndpoints;            /* SEQUENCE_OF_Endpoint */
687
static int hf_h225_alternateEndpoints_item;       /* Endpoint */
688
static int hf_h225_authenticationCapability;      /* SEQUENCE_OF_AuthenticationMechanism */
689
static int hf_h225_authenticationCapability_item;  /* AuthenticationMechanism */
690
static int hf_h225_algorithmOIDs;                 /* T_algorithmOIDs */
691
static int hf_h225_algorithmOIDs_item;            /* OBJECT_IDENTIFIER */
692
static int hf_h225_integrity;                     /* SEQUENCE_OF_IntegrityMechanism */
693
static int hf_h225_integrity_item;                /* IntegrityMechanism */
694
static int hf_h225_integrityCheckValue;           /* ICV */
695
static int hf_h225_supportsAltGK;                 /* NULL */
696
static int hf_h225_supportsAssignedGK;            /* BOOLEAN */
697
static int hf_h225_assignedGatekeeper;            /* AlternateGK */
698
static int hf_h225_gatekeeperConfirm_rasAddress;  /* TransportAddress */
699
static int hf_h225_authenticationMode;            /* AuthenticationMechanism */
700
static int hf_h225_rehomingModel;                 /* RehomingModel */
701
static int hf_h225_gatekeeperRejectReason;        /* GatekeeperRejectReason */
702
static int hf_h225_altGKInfo;                     /* AltGKInfo */
703
static int hf_h225_resourceUnavailable;           /* NULL */
704
static int hf_h225_terminalExcluded;              /* NULL */
705
static int hf_h225_securityDenial;                /* NULL */
706
static int hf_h225_gkRej_securityError;           /* SecurityErrors */
707
static int hf_h225_discoveryComplete;             /* BOOLEAN */
708
static int hf_h225_terminalType;                  /* EndpointType */
709
static int hf_h225_terminalAlias;                 /* SEQUENCE_OF_AliasAddress */
710
static int hf_h225_terminalAlias_item;            /* AliasAddress */
711
static int hf_h225_endpointVendor;                /* VendorIdentifier */
712
static int hf_h225_timeToLive;                    /* TimeToLive */
713
static int hf_h225_keepAlive;                     /* BOOLEAN */
714
static int hf_h225_willSupplyUUIEs;               /* BOOLEAN */
715
static int hf_h225_additiveRegistration;          /* NULL */
716
static int hf_h225_terminalAliasPattern;          /* SEQUENCE_OF_AddressPattern */
717
static int hf_h225_terminalAliasPattern_item;     /* AddressPattern */
718
static int hf_h225_usageReportingCapability;      /* RasUsageInfoTypes */
719
static int hf_h225_supportedH248Packages;         /* SEQUENCE_OF_H248PackagesDescriptor */
720
static int hf_h225_supportedH248Packages_item;    /* H248PackagesDescriptor */
721
static int hf_h225_callCreditCapability;          /* CallCreditCapability */
722
static int hf_h225_capacityReportingCapability;   /* CapacityReportingCapability */
723
static int hf_h225_restart;                       /* NULL */
724
static int hf_h225_supportsACFSequences;          /* NULL */
725
static int hf_h225_transportQOS;                  /* TransportQOS */
726
static int hf_h225_willRespondToIRR;              /* BOOLEAN */
727
static int hf_h225_preGrantedARQ;                 /* T_preGrantedARQ */
728
static int hf_h225_makeCall;                      /* BOOLEAN */
729
static int hf_h225_useGKCallSignalAddressToMakeCall;  /* BOOLEAN */
730
static int hf_h225_answerCall;                    /* BOOLEAN */
731
static int hf_h225_useGKCallSignalAddressToAnswer;  /* BOOLEAN */
732
static int hf_h225_irrFrequencyInCall;            /* INTEGER_1_65535 */
733
static int hf_h225_totalBandwidthRestriction;     /* BandWidth */
734
static int hf_h225_useSpecifiedTransport;         /* UseSpecifiedTransport */
735
static int hf_h225_supportsAdditiveRegistration;  /* NULL */
736
static int hf_h225_usageSpec;                     /* SEQUENCE_OF_RasUsageSpecification */
737
static int hf_h225_usageSpec_item;                /* RasUsageSpecification */
738
static int hf_h225_featureServerAlias;            /* AliasAddress */
739
static int hf_h225_capacityReportingSpec;         /* CapacityReportingSpecification */
740
static int hf_h225_registrationRejectReason;      /* RegistrationRejectReason */
741
static int hf_h225_discoveryRequired;             /* NULL */
742
static int hf_h225_invalidCallSignalAddress;      /* NULL */
743
static int hf_h225_invalidRASAddress;             /* NULL */
744
static int hf_h225_duplicateAlias;                /* SEQUENCE_OF_AliasAddress */
745
static int hf_h225_duplicateAlias_item;           /* AliasAddress */
746
static int hf_h225_invalidTerminalType;           /* NULL */
747
static int hf_h225_transportNotSupported;         /* NULL */
748
static int hf_h225_transportQOSNotSupported;      /* NULL */
749
static int hf_h225_invalidAlias;                  /* NULL */
750
static int hf_h225_fullRegistrationRequired;      /* NULL */
751
static int hf_h225_additiveRegistrationNotSupported;  /* NULL */
752
static int hf_h225_invalidTerminalAliases;        /* T_invalidTerminalAliases */
753
static int hf_h225_reg_securityError;             /* SecurityErrors */
754
static int hf_h225_registerWithAssignedGK;        /* NULL */
755
static int hf_h225_unregRequestReason;            /* UnregRequestReason */
756
static int hf_h225_endpointAliasPattern;          /* SEQUENCE_OF_AddressPattern */
757
static int hf_h225_endpointAliasPattern_item;     /* AddressPattern */
758
static int hf_h225_reregistrationRequired;        /* NULL */
759
static int hf_h225_ttlExpired;                    /* NULL */
760
static int hf_h225_maintenance;                   /* NULL */
761
static int hf_h225_securityError;                 /* SecurityErrors2 */
762
static int hf_h225_unregRejectReason;             /* UnregRejectReason */
763
static int hf_h225_notCurrentlyRegistered;        /* NULL */
764
static int hf_h225_callInProgress;                /* NULL */
765
static int hf_h225_permissionDenied;              /* NULL */
766
static int hf_h225_callModel;                     /* CallModel */
767
static int hf_h225_DestinationInfo_item;          /* DestinationInfo_item */
768
static int hf_h225_destinationInfo_01;            /* DestinationInfo */
769
static int hf_h225_srcInfo;                       /* SEQUENCE_OF_AliasAddress */
770
static int hf_h225_srcInfo_item;                  /* AliasAddress */
771
static int hf_h225_srcCallSignalAddress;          /* TransportAddress */
772
static int hf_h225_bandWidth;                     /* BandWidth */
773
static int hf_h225_callReferenceValue;            /* CallReferenceValue */
774
static int hf_h225_canMapAlias;                   /* BOOLEAN */
775
static int hf_h225_srcAlternatives;               /* SEQUENCE_OF_Endpoint */
776
static int hf_h225_srcAlternatives_item;          /* Endpoint */
777
static int hf_h225_destAlternatives;              /* SEQUENCE_OF_Endpoint */
778
static int hf_h225_destAlternatives_item;         /* Endpoint */
779
static int hf_h225_gatewayDataRate;               /* DataRate */
780
static int hf_h225_desiredTunnelledProtocol;      /* TunnelledProtocol */
781
static int hf_h225_canMapSrcAlias;                /* BOOLEAN */
782
static int hf_h225_pointToPoint;                  /* NULL */
783
static int hf_h225_oneToN;                        /* NULL */
784
static int hf_h225_nToOne;                        /* NULL */
785
static int hf_h225_nToN;                          /* NULL */
786
static int hf_h225_direct;                        /* NULL */
787
static int hf_h225_gatekeeperRouted;              /* NULL */
788
static int hf_h225_endpointControlled;            /* NULL */
789
static int hf_h225_gatekeeperControlled;          /* NULL */
790
static int hf_h225_noControl;                     /* NULL */
791
static int hf_h225_qOSCapabilities;               /* SEQUENCE_SIZE_1_256_OF_QOSCapability */
792
static int hf_h225_qOSCapabilities_item;          /* QOSCapability */
793
static int hf_h225_irrFrequency;                  /* INTEGER_1_65535 */
794
static int hf_h225_destinationType;               /* EndpointType */
795
static int hf_h225_ac_remoteExtensionAddress_item;  /* AliasAddress */
796
static int hf_h225_uuiesRequested;                /* UUIEsRequested */
797
static int hf_h225_supportedProtocols;            /* SEQUENCE_OF_SupportedProtocols */
798
static int hf_h225_supportedProtocols_item;       /* SupportedProtocols */
799
static int hf_h225_modifiedSrcInfo;               /* SEQUENCE_OF_AliasAddress */
800
static int hf_h225_modifiedSrcInfo_item;          /* AliasAddress */
801
static int hf_h225_setup_bool;                    /* BOOLEAN */
802
static int hf_h225_callProceeding_flg;            /* BOOLEAN */
803
static int hf_h225_connect_bool;                  /* BOOLEAN */
804
static int hf_h225_alerting_bool;                 /* BOOLEAN */
805
static int hf_h225_information_bool;              /* BOOLEAN */
806
static int hf_h225_releaseComplete_bool;          /* BOOLEAN */
807
static int hf_h225_facility_bool;                 /* BOOLEAN */
808
static int hf_h225_progress_bool;                 /* BOOLEAN */
809
static int hf_h225_empty;                         /* BOOLEAN */
810
static int hf_h225_status_bool;                   /* BOOLEAN */
811
static int hf_h225_statusInquiry_bool;            /* BOOLEAN */
812
static int hf_h225_setupAcknowledge_bool;         /* BOOLEAN */
813
static int hf_h225_notify_bool;                   /* BOOLEAN */
814
static int hf_h225_rejectReason;                  /* AdmissionRejectReason */
815
static int hf_h225_invalidPermission;             /* NULL */
816
static int hf_h225_requestDenied;                 /* NULL */
817
static int hf_h225_invalidEndpointIdentifier;     /* NULL */
818
static int hf_h225_qosControlNotSupported;        /* NULL */
819
static int hf_h225_incompleteAddress;             /* NULL */
820
static int hf_h225_aliasesInconsistent;           /* NULL */
821
static int hf_h225_routeCallToSCN;                /* SEQUENCE_OF_PartyNumber */
822
static int hf_h225_routeCallToSCN_item;           /* PartyNumber */
823
static int hf_h225_exceedsCallCapacity;           /* NULL */
824
static int hf_h225_collectDestination;            /* NULL */
825
static int hf_h225_collectPIN;                    /* NULL */
826
static int hf_h225_noRouteToDestination;          /* NULL */
827
static int hf_h225_unallocatedNumber;             /* NULL */
828
static int hf_h225_answeredCall;                  /* BOOLEAN */
829
static int hf_h225_usageInformation;              /* RasUsageInformation */
830
static int hf_h225_bandwidthDetails;              /* SEQUENCE_OF_BandwidthDetails */
831
static int hf_h225_bandwidthDetails_item;         /* BandwidthDetails */
832
static int hf_h225_bandRejectReason;              /* BandRejectReason */
833
static int hf_h225_allowedBandWidth;              /* BandWidth */
834
static int hf_h225_notBound;                      /* NULL */
835
static int hf_h225_invalidConferenceID;           /* NULL */
836
static int hf_h225_insufficientResources;         /* NULL */
837
static int hf_h225_replyAddress;                  /* TransportAddress */
838
static int hf_h225_sourceInfo;                    /* SEQUENCE_OF_AliasAddress */
839
static int hf_h225_sourceInfo_item;               /* AliasAddress */
840
static int hf_h225_hopCount;                      /* INTEGER_1_255 */
841
static int hf_h225_sourceEndpointInfo;            /* SEQUENCE_OF_AliasAddress */
842
static int hf_h225_sourceEndpointInfo_item;       /* AliasAddress */
843
static int hf_h225_locationConfirm_callSignalAddress;  /* TransportAddress */
844
static int hf_h225_locationConfirm_rasAddress;    /* TransportAddress */
845
static int hf_h225_remoteExtensionAddress_item;   /* AliasAddress */
846
static int hf_h225_locationRejectReason;          /* LocationRejectReason */
847
static int hf_h225_notRegistered;                 /* NULL */
848
static int hf_h225_routeCalltoSCN;                /* SEQUENCE_OF_PartyNumber */
849
static int hf_h225_routeCalltoSCN_item;           /* PartyNumber */
850
static int hf_h225_disengageReason;               /* DisengageReason */
851
static int hf_h225_terminationCause;              /* CallTerminationCause */
852
static int hf_h225_forcedDrop;                    /* NULL */
853
static int hf_h225_normalDrop;                    /* NULL */
854
static int hf_h225_disengageRejectReason;         /* DisengageRejectReason */
855
static int hf_h225_requestToDropOther;            /* NULL */
856
static int hf_h225_usageInfoRequested;            /* RasUsageInfoTypes */
857
static int hf_h225_segmentedResponseSupported;    /* NULL */
858
static int hf_h225_nextSegmentRequested;          /* INTEGER_0_65535 */
859
static int hf_h225_capacityInfoRequested;         /* NULL */
860
static int hf_h225_infoRequestResponse_rasAddress;  /* TransportAddress */
861
static int hf_h225_perCallInfo;                   /* T_perCallInfo */
862
static int hf_h225_perCallInfo_item;              /* T_perCallInfo_item */
863
static int hf_h225_originator;                    /* BOOLEAN */
864
static int hf_h225_audio;                         /* SEQUENCE_OF_RTPSession */
865
static int hf_h225_audio_item;                    /* RTPSession */
866
static int hf_h225_video;                         /* SEQUENCE_OF_RTPSession */
867
static int hf_h225_video_item;                    /* RTPSession */
868
static int hf_h225_data;                          /* SEQUENCE_OF_TransportChannelInfo */
869
static int hf_h225_data_item;                     /* TransportChannelInfo */
870
static int hf_h225_h245;                          /* TransportChannelInfo */
871
static int hf_h225_callSignalling;                /* TransportChannelInfo */
872
static int hf_h225_substituteConfIDs;             /* SEQUENCE_OF_ConferenceIdentifier */
873
static int hf_h225_substituteConfIDs_item;        /* ConferenceIdentifier */
874
static int hf_h225_pdu;                           /* T_pdu */
875
static int hf_h225_pdu_item;                      /* T_pdu_item */
876
static int hf_h225_h323pdu;                       /* H323_UU_PDU */
877
static int hf_h225_sent;                          /* BOOLEAN */
878
static int hf_h225_needResponse;                  /* BOOLEAN */
879
static int hf_h225_irrStatus;                     /* InfoRequestResponseStatus */
880
static int hf_h225_unsolicited;                   /* BOOLEAN */
881
static int hf_h225_complete;                      /* NULL */
882
static int hf_h225_incomplete;                    /* NULL */
883
static int hf_h225_segment;                       /* INTEGER_0_65535 */
884
static int hf_h225_invalidCall;                   /* NULL */
885
static int hf_h225_nakReason;                     /* InfoRequestNakReason */
886
static int hf_h225_messageNotUnderstood;          /* OCTET_STRING */
887
static int hf_h225_delay;                         /* INTEGER_1_65535 */
888
static int hf_h225_protocols;                     /* SEQUENCE_OF_SupportedProtocols */
889
static int hf_h225_protocols_item;                /* SupportedProtocols */
890
static int hf_h225_almostOutOfResources;          /* BOOLEAN */
891
static int hf_h225_callSpecific;                  /* T_callSpecific */
892
static int hf_h225_result;                        /* T_result */
893
static int hf_h225_started;                       /* NULL */
894
static int hf_h225_failed;                        /* NULL */
895
static int hf_h225_stopped;                       /* NULL */
896
static int hf_h225_notAvailable;                  /* NULL */
897
898
/* Initialize the subtree pointers */
899
static int ett_h225;
900
static int ett_h225_H323_UserInformation;
901
static int ett_h225_T_user_data;
902
static int ett_h225_H323_UU_PDU;
903
static int ett_h225_T_h323_message_body;
904
static int ett_h225_T_h4501SupplementaryService;
905
static int ett_h225_H245Control;
906
static int ett_h225_SEQUENCE_OF_NonStandardParameter;
907
static int ett_h225_T_tunnelledSignallingMessage;
908
static int ett_h225_T_messageContent;
909
static int ett_h225_SEQUENCE_OF_GenericData;
910
static int ett_h225_StimulusControl;
911
static int ett_h225_Alerting_UUIE;
912
static int ett_h225_SEQUENCE_OF_ClearToken;
913
static int ett_h225_SEQUENCE_OF_CryptoH323Token;
914
static int ett_h225_SEQUENCE_OF_AliasAddress;
915
static int ett_h225_SEQUENCE_OF_ServiceControlSession;
916
static int ett_h225_SEQUENCE_OF_DisplayName;
917
static int ett_h225_CallProceeding_UUIE;
918
static int ett_h225_Connect_UUIE;
919
static int ett_h225_Information_UUIE;
920
static int ett_h225_ReleaseComplete_UUIE;
921
static int ett_h225_ReleaseCompleteReason;
922
static int ett_h225_Setup_UUIE;
923
static int ett_h225_SEQUENCE_OF_CallReferenceValue;
924
static int ett_h225_T_conferenceGoal;
925
static int ett_h225_SEQUENCE_OF_H245Security;
926
static int ett_h225_FastStart;
927
static int ett_h225_T_connectionParameters;
928
static int ett_h225_Language;
929
static int ett_h225_SEQUENCE_OF_SupportedProtocols;
930
static int ett_h225_SEQUENCE_OF_FeatureDescriptor;
931
static int ett_h225_ParallelH245Control;
932
static int ett_h225_SEQUENCE_OF_ExtendedAliasAddress;
933
static int ett_h225_ScnConnectionType;
934
static int ett_h225_ScnConnectionAggregation;
935
static int ett_h225_PresentationIndicator;
936
static int ett_h225_Facility_UUIE;
937
static int ett_h225_SEQUENCE_OF_ConferenceList;
938
static int ett_h225_ConferenceList;
939
static int ett_h225_FacilityReason;
940
static int ett_h225_Progress_UUIE;
941
static int ett_h225_TransportAddress;
942
static int ett_h225_H245TransportAddress;
943
static int ett_h225_T_h245IpAddress;
944
static int ett_h225_T_h245IpSourceRoute;
945
static int ett_h225_T_h245Route;
946
static int ett_h225_T_h245Routing;
947
static int ett_h225_T_h245IpxAddress;
948
static int ett_h225_T_h245Ip6Address;
949
static int ett_h225_T_ipAddress;
950
static int ett_h225_T_ipSourceRoute;
951
static int ett_h225_T_route;
952
static int ett_h225_T_routing;
953
static int ett_h225_T_ipxAddress;
954
static int ett_h225_T_ip6Address;
955
static int ett_h225_Status_UUIE;
956
static int ett_h225_StatusInquiry_UUIE;
957
static int ett_h225_SetupAcknowledge_UUIE;
958
static int ett_h225_Notify_UUIE;
959
static int ett_h225_EndpointType;
960
static int ett_h225_SEQUENCE_OF_TunnelledProtocol;
961
static int ett_h225_GatewayInfo;
962
static int ett_h225_SupportedProtocols;
963
static int ett_h225_H310Caps;
964
static int ett_h225_SEQUENCE_OF_DataRate;
965
static int ett_h225_SEQUENCE_OF_SupportedPrefix;
966
static int ett_h225_H320Caps;
967
static int ett_h225_H321Caps;
968
static int ett_h225_H322Caps;
969
static int ett_h225_H323Caps;
970
static int ett_h225_H324Caps;
971
static int ett_h225_VoiceCaps;
972
static int ett_h225_T120OnlyCaps;
973
static int ett_h225_NonStandardProtocol;
974
static int ett_h225_T38FaxAnnexbOnlyCaps;
975
static int ett_h225_SIPCaps;
976
static int ett_h225_McuInfo;
977
static int ett_h225_TerminalInfo;
978
static int ett_h225_GatekeeperInfo;
979
static int ett_h225_VendorIdentifier;
980
static int ett_h225_H221NonStandard;
981
static int ett_h225_TunnelledProtocol;
982
static int ett_h225_TunnelledProtocol_id;
983
static int ett_h225_TunnelledProtocolAlternateIdentifier;
984
static int ett_h225_NonStandardParameter;
985
static int ett_h225_NonStandardIdentifier;
986
static int ett_h225_AliasAddress;
987
static int ett_h225_AddressPattern;
988
static int ett_h225_T_range;
989
static int ett_h225_PartyNumber;
990
static int ett_h225_PublicPartyNumber;
991
static int ett_h225_PrivatePartyNumber;
992
static int ett_h225_DisplayName;
993
static int ett_h225_PublicTypeOfNumber;
994
static int ett_h225_PrivateTypeOfNumber;
995
static int ett_h225_MobileUIM;
996
static int ett_h225_ANSI_41_UIM;
997
static int ett_h225_T_system_id;
998
static int ett_h225_GSM_UIM;
999
static int ett_h225_IsupNumber;
1000
static int ett_h225_IsupPublicPartyNumber;
1001
static int ett_h225_IsupPrivatePartyNumber;
1002
static int ett_h225_NatureOfAddress;
1003
static int ett_h225_ExtendedAliasAddress;
1004
static int ett_h225_Endpoint;
1005
static int ett_h225_SEQUENCE_OF_TransportAddress;
1006
static int ett_h225_AlternateTransportAddresses;
1007
static int ett_h225_UseSpecifiedTransport;
1008
static int ett_h225_AlternateGK;
1009
static int ett_h225_AltGKInfo;
1010
static int ett_h225_SEQUENCE_OF_AlternateGK;
1011
static int ett_h225_SecurityServiceMode;
1012
static int ett_h225_SecurityCapabilities;
1013
static int ett_h225_SecurityErrors;
1014
static int ett_h225_SecurityErrors2;
1015
static int ett_h225_H245Security;
1016
static int ett_h225_QseriesOptions;
1017
static int ett_h225_Q954Details;
1018
static int ett_h225_CallIdentifier;
1019
static int ett_h225_EncryptIntAlg;
1020
static int ett_h225_NonIsoIntegrityMechanism;
1021
static int ett_h225_IntegrityMechanism;
1022
static int ett_h225_ICV;
1023
static int ett_h225_CryptoH323Token;
1024
static int ett_h225_T_cryptoEPPwdHash;
1025
static int ett_h225_T_cryptoGKPwdHash;
1026
static int ett_h225_DataRate;
1027
static int ett_h225_CallLinkage;
1028
static int ett_h225_SupportedPrefix;
1029
static int ett_h225_CapacityReportingCapability;
1030
static int ett_h225_CapacityReportingSpecification;
1031
static int ett_h225_CapacityReportingSpecification_when;
1032
static int ett_h225_CallCapacity;
1033
static int ett_h225_CallCapacityInfo;
1034
static int ett_h225_SEQUENCE_OF_CallsAvailable;
1035
static int ett_h225_CallsAvailable;
1036
static int ett_h225_CircuitInfo;
1037
static int ett_h225_CircuitIdentifier;
1038
static int ett_h225_CicInfo;
1039
static int ett_h225_T_cic_2_4;
1040
static int ett_h225_GroupID;
1041
static int ett_h225_T_member;
1042
static int ett_h225_CarrierInfo;
1043
static int ett_h225_ServiceControlDescriptor;
1044
static int ett_h225_ServiceControlSession;
1045
static int ett_h225_ServiceControlSession_reason;
1046
static int ett_h225_RasUsageInfoTypes;
1047
static int ett_h225_RasUsageSpecification;
1048
static int ett_h225_RasUsageSpecification_when;
1049
static int ett_h225_RasUsageSpecificationcallStartingPoint;
1050
static int ett_h225_RasUsageInformation;
1051
static int ett_h225_CallTerminationCause;
1052
static int ett_h225_BandwidthDetails;
1053
static int ett_h225_CallCreditCapability;
1054
static int ett_h225_CallCreditServiceControl;
1055
static int ett_h225_T_billingMode;
1056
static int ett_h225_CallCreditServiceControl_callStartingPoint;
1057
static int ett_h225_GenericData;
1058
static int ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter;
1059
static int ett_h225_GenericIdentifier;
1060
static int ett_h225_EnumeratedParameter;
1061
static int ett_h225_Content;
1062
static int ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData;
1063
static int ett_h225_FeatureSet;
1064
static int ett_h225_TransportChannelInfo;
1065
static int ett_h225_RTPSession;
1066
static int ett_h225_T_associatedSessionIds;
1067
static int ett_h225_RehomingModel;
1068
static int ett_h225_RasMessage;
1069
static int ett_h225_SEQUENCE_OF_AdmissionConfirm;
1070
static int ett_h225_GatekeeperRequest;
1071
static int ett_h225_SEQUENCE_OF_Endpoint;
1072
static int ett_h225_SEQUENCE_OF_AuthenticationMechanism;
1073
static int ett_h225_T_algorithmOIDs;
1074
static int ett_h225_SEQUENCE_OF_IntegrityMechanism;
1075
static int ett_h225_GatekeeperConfirm;
1076
static int ett_h225_GatekeeperReject;
1077
static int ett_h225_GatekeeperRejectReason;
1078
static int ett_h225_RegistrationRequest;
1079
static int ett_h225_SEQUENCE_OF_AddressPattern;
1080
static int ett_h225_SEQUENCE_OF_H248PackagesDescriptor;
1081
static int ett_h225_RegistrationConfirm;
1082
static int ett_h225_T_preGrantedARQ;
1083
static int ett_h225_SEQUENCE_OF_RasUsageSpecification;
1084
static int ett_h225_RegistrationReject;
1085
static int ett_h225_RegistrationRejectReason;
1086
static int ett_h225_T_invalidTerminalAliases;
1087
static int ett_h225_UnregistrationRequest;
1088
static int ett_h225_UnregRequestReason;
1089
static int ett_h225_UnregistrationConfirm;
1090
static int ett_h225_UnregistrationReject;
1091
static int ett_h225_UnregRejectReason;
1092
static int ett_h225_AdmissionRequest;
1093
static int ett_h225_DestinationInfo;
1094
static int ett_h225_CallType;
1095
static int ett_h225_CallModel;
1096
static int ett_h225_TransportQOS;
1097
static int ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability;
1098
static int ett_h225_AdmissionConfirm;
1099
static int ett_h225_UUIEsRequested;
1100
static int ett_h225_AdmissionReject;
1101
static int ett_h225_AdmissionRejectReason;
1102
static int ett_h225_SEQUENCE_OF_PartyNumber;
1103
static int ett_h225_BandwidthRequest;
1104
static int ett_h225_SEQUENCE_OF_BandwidthDetails;
1105
static int ett_h225_BandwidthConfirm;
1106
static int ett_h225_BandwidthReject;
1107
static int ett_h225_BandRejectReason;
1108
static int ett_h225_LocationRequest;
1109
static int ett_h225_LocationConfirm;
1110
static int ett_h225_LocationReject;
1111
static int ett_h225_LocationRejectReason;
1112
static int ett_h225_DisengageRequest;
1113
static int ett_h225_DisengageReason;
1114
static int ett_h225_DisengageConfirm;
1115
static int ett_h225_DisengageReject;
1116
static int ett_h225_DisengageRejectReason;
1117
static int ett_h225_InfoRequest;
1118
static int ett_h225_InfoRequestResponse;
1119
static int ett_h225_T_perCallInfo;
1120
static int ett_h225_T_perCallInfo_item;
1121
static int ett_h225_SEQUENCE_OF_RTPSession;
1122
static int ett_h225_SEQUENCE_OF_TransportChannelInfo;
1123
static int ett_h225_SEQUENCE_OF_ConferenceIdentifier;
1124
static int ett_h225_T_pdu;
1125
static int ett_h225_T_pdu_item;
1126
static int ett_h225_InfoRequestResponseStatus;
1127
static int ett_h225_InfoRequestAck;
1128
static int ett_h225_InfoRequestNak;
1129
static int ett_h225_InfoRequestNakReason;
1130
static int ett_h225_NonStandardMessage;
1131
static int ett_h225_UnknownMessageResponse;
1132
static int ett_h225_RequestInProgress;
1133
static int ett_h225_ResourcesAvailableIndicate;
1134
static int ett_h225_ResourcesAvailableConfirm;
1135
static int ett_h225_ServiceControlIndication;
1136
static int ett_h225_T_callSpecific;
1137
static int ett_h225_ServiceControlResponse;
1138
static int ett_h225_T_result;
1139
1140
/* Preferences */
1141
static unsigned h225_tls_port = TLS_PORT_CS;
1142
static bool h225_reassembly = true;
1143
static bool h225_h245_in_tree = true;
1144
static bool h225_tp_in_tree = true;
1145
1146
/* Global variables */
1147
static uint32_t ipv4_address;
1148
static ws_in6_addr ipv6_address;
1149
static ws_in6_addr ipv6_address_zeros = {{0}};
1150
static uint32_t ip_port;
1151
static bool contains_faststart;
1152
static e_guid_t *call_id_guid;
1153
1154
/* NonStandardParameter */
1155
static const char *nsiOID;
1156
static uint32_t h221NonStandard;
1157
static uint32_t t35CountryCode;
1158
static uint32_t t35Extension;
1159
static uint32_t manufacturerCode;
1160
1161
/* TunnelledProtocol */
1162
static const char *tpOID;
1163
1164
static const value_string ras_message_category[] = {
1165
  {  0, "Gatekeeper    "},
1166
  {  1, "Registration  "},
1167
  {  2, "UnRegistration"},
1168
  {  3, "Admission     "},
1169
  {  4, "Bandwidth     "},
1170
  {  5, "Disengage     "},
1171
  {  6, "Location      "},
1172
  {  0, NULL }
1173
};
1174
1175
typedef enum _ras_type {
1176
  RAS_REQUEST,
1177
  RAS_CONFIRM,
1178
  RAS_REJECT,
1179
  RAS_OTHER
1180
}ras_type;
1181
1182
typedef enum _ras_category {
1183
  RAS_GATEKEEPER,
1184
  RAS_REGISTRATION,
1185
  RAS_UNREGISTRATION,
1186
  RAS_ADMISSION,
1187
  RAS_BANDWIDTH,
1188
  RAS_DISENGAGE,
1189
  RAS_LOCATION,
1190
  RAS_OTHERS
1191
}ras_category;
1192
1193
14
#define NUM_RAS_STATS 7
1194
1195
static tap_packet_status
1196
h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *phi, tap_flags_t flags _U_)
1197
0
{
1198
0
  rtd_data_t* rtd_data = (rtd_data_t*)phs;
1199
0
  rtd_stat_table* rs = &rtd_data->stat_table;
1200
0
  const h225_packet_info *pi=(const h225_packet_info *)phi;
1201
1202
0
  ras_type rasmsg_type = RAS_OTHER;
1203
0
  ras_category rascategory = RAS_OTHERS;
1204
1205
0
  if (pi->msg_type != H225_RAS || pi->msg_tag == -1) {
1206
    /* No RAS Message or uninitialized msg_tag -> return */
1207
0
    return TAP_PACKET_DONT_REDRAW;
1208
0
  }
1209
1210
0
  if (pi->msg_tag < 21) {
1211
    /* */
1212
0
    rascategory = (ras_category)(pi->msg_tag / 3);
1213
0
    rasmsg_type = (ras_type)(pi->msg_tag % 3);
1214
0
  }
1215
0
  else {
1216
    /* No SRT yet (ToDo) */
1217
0
    return TAP_PACKET_DONT_REDRAW;
1218
0
  }
1219
1220
0
  switch(rasmsg_type) {
1221
1222
0
  case RAS_REQUEST:
1223
0
    if(pi->is_duplicate){
1224
0
      rs->time_stats[rascategory].req_dup_num++;
1225
0
    }
1226
0
    else {
1227
0
      rs->time_stats[rascategory].open_req_num++;
1228
0
    }
1229
0
    break;
1230
1231
0
  case RAS_CONFIRM:
1232
    /* no break - delay stats are identical for Confirm and Reject */
1233
0
  case RAS_REJECT:
1234
0
    if(pi->is_duplicate){
1235
      /* Duplicate is ignored */
1236
0
      rs->time_stats[rascategory].rsp_dup_num++;
1237
0
    }
1238
0
    else if (!pi->request_available) {
1239
      /* no request was seen, ignore response */
1240
0
      rs->time_stats[rascategory].disc_rsp_num++;
1241
0
    }
1242
0
    else {
1243
0
      rs->time_stats[rascategory].open_req_num--;
1244
0
      time_stat_update(&(rs->time_stats[rascategory].rtd[0]),&(pi->delta_time), pinfo);
1245
0
    }
1246
0
    break;
1247
1248
0
  default:
1249
0
    return TAP_PACKET_DONT_REDRAW;
1250
0
  }
1251
0
  return TAP_PACKET_REDRAW;
1252
0
}
1253
1254
static void h225_set_cs_type(packet_info *pinfo, h225_packet_info* h225_pi, h225_cs_type cs_type, bool faststart)
1255
62
{
1256
62
  if (h225_pi == NULL)
1257
0
    return;
1258
1259
62
  h225_pi->cs_type = cs_type;
1260
  /* XXX - Why not always use contains_faststart or h225_pi->is_faststart
1261
   * There are some UUIEs (e.g., Facility-UUIE) where a fastStart can be
1262
   * included but the path adding extra to the label has never been used.
1263
   * Is that an oversight or intentional?
1264
   */
1265
62
  if (faststart) {
1266
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);
1267
62
  } else {
1268
62
    h225_pi->frame_label = wmem_strdup(pinfo->pool, val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
1269
62
  }
1270
62
}
1271
1272
/*--- Cyclic dependencies ---*/
1273
1274
/* EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter */
1275
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_);
1276
1277
/* GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData */
1278
/*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_);*/
1279
1280
1281
1282
1283
static unsigned
1284
182
dissect_h225_ProtocolIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1285
182
  offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1286
1287
182
  return offset;
1288
182
}
1289
1290
1291
1292
static unsigned
1293
32
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_) {
1294
32
  tvbuff_t *value_tvb;
1295
1296
32
  ipv4_address = 0;
1297
32
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1298
32
                                       4, 4, false, &value_tvb);
1299
1300
32
  if (value_tvb)
1301
32
    ipv4_address = tvb_get_ipv4(value_tvb, 0);
1302
1303
32
  return offset;
1304
32
}
1305
1306
1307
1308
static unsigned
1309
32
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_) {
1310
32
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1311
32
                                                            0U, 65535U, &ip_port, false);
1312
1313
32
  return offset;
1314
32
}
1315
1316
1317
static const per_sequence_t T_h245IpAddress_sequence[] = {
1318
  { &hf_h225_h245Ip         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip },
1319
  { &hf_h225_h245IpPort     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245IpPort },
1320
  { NULL, 0, 0, NULL }
1321
};
1322
1323
static unsigned
1324
32
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_) {
1325
32
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1326
32
                                   ett_h225_T_h245IpAddress, T_h245IpAddress_sequence);
1327
1328
32
  return offset;
1329
32
}
1330
1331
1332
1333
static unsigned
1334
997
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_) {
1335
997
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1336
997
                                       4, 4, false, NULL);
1337
1338
997
  return offset;
1339
997
}
1340
1341
1342
1343
static unsigned
1344
915
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_) {
1345
915
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1346
915
                                                            0U, 65535U, NULL, false);
1347
1348
915
  return offset;
1349
915
}
1350
1351
1352
static const per_sequence_t T_h245Route_sequence_of[1] = {
1353
  { &hf_h225_h245Route_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1354
};
1355
1356
static unsigned
1357
2
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_) {
1358
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1359
2
                                      ett_h225_T_h245Route, T_h245Route_sequence_of);
1360
1361
2
  return offset;
1362
2
}
1363
1364
1365
1366
static unsigned
1367
747
dissect_h225_NULL(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1368
747
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1369
1370
747
  return offset;
1371
747
}
1372
1373
1374
static const value_string h225_T_h245Routing_vals[] = {
1375
  {   0, "strict" },
1376
  {   1, "loose" },
1377
  { 0, NULL }
1378
};
1379
1380
static const per_choice_t T_h245Routing_choice[] = {
1381
  {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1382
  {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1383
  { 0, NULL, 0, NULL }
1384
};
1385
1386
static unsigned
1387
2
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_) {
1388
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1389
2
                                 ett_h225_T_h245Routing, T_h245Routing_choice,
1390
2
                                 NULL);
1391
1392
2
  return offset;
1393
2
}
1394
1395
1396
static const per_sequence_t T_h245IpSourceRoute_sequence[] = {
1397
  { &hf_h225_ip             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1398
  { &hf_h225_port           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1399
  { &hf_h225_h245Route      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Route },
1400
  { &hf_h225_h245Routing    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Routing },
1401
  { NULL, 0, 0, NULL }
1402
};
1403
1404
static unsigned
1405
2
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_) {
1406
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1407
2
                                   ett_h225_T_h245IpSourceRoute, T_h245IpSourceRoute_sequence);
1408
1409
2
  return offset;
1410
2
}
1411
1412
1413
1414
static unsigned
1415
132
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_) {
1416
132
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1417
132
                                       6, 6, false, NULL);
1418
1419
132
  return offset;
1420
132
}
1421
1422
1423
1424
static unsigned
1425
130
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_) {
1426
130
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1427
130
                                       2, 2, false, NULL);
1428
1429
130
  return offset;
1430
130
}
1431
1432
1433
static const per_sequence_t T_h245IpxAddress_sequence[] = {
1434
  { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1435
  { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1436
  { &hf_h225_h245IpxPort    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1437
  { NULL, 0, 0, NULL }
1438
};
1439
1440
static unsigned
1441
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_) {
1442
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1443
0
                                   ett_h225_T_h245IpxAddress, T_h245IpxAddress_sequence);
1444
1445
0
  return offset;
1446
0
}
1447
1448
1449
1450
static unsigned
1451
1
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_) {
1452
1
  tvbuff_t *value_tvb;
1453
1454
1
  ipv6_address = ipv6_address_zeros;
1455
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1456
1
                                       16, 16, false, &value_tvb);
1457
1458
1
  if (value_tvb)
1459
1
    tvb_get_ipv6(value_tvb, 0, &ipv6_address);
1460
1461
1
  return offset;
1462
1
}
1463
1464
1465
1466
static unsigned
1467
1
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_) {
1468
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1469
1
                                                            0U, 65535U, &ip_port, false);
1470
1471
1
  return offset;
1472
1
}
1473
1474
1475
static const per_sequence_t T_h245Ip6Address_sequence[] = {
1476
  { &hf_h225_h245Ip6        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6 },
1477
  { &hf_h225_h245Ip6port    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6port },
1478
  { NULL, 0, 0, NULL }
1479
};
1480
1481
static unsigned
1482
1
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_) {
1483
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1484
1
                                   ett_h225_T_h245Ip6Address, T_h245Ip6Address_sequence);
1485
1486
1
  return offset;
1487
1
}
1488
1489
1490
1491
static unsigned
1492
114
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_) {
1493
114
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1494
114
                                       16, 16, false, NULL);
1495
1496
114
  return offset;
1497
114
}
1498
1499
1500
1501
static unsigned
1502
58
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_) {
1503
58
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1504
58
                                       1, 20, false, NULL);
1505
1506
58
  return offset;
1507
58
}
1508
1509
1510
1511
static unsigned
1512
247
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_) {
1513
247
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &nsiOID);
1514
1515
247
  return offset;
1516
247
}
1517
1518
1519
1520
static unsigned
1521
137
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_) {
1522
137
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1523
137
                                                            0U, 255U, &t35CountryCode, false);
1524
1525
137
  return offset;
1526
137
}
1527
1528
1529
1530
static unsigned
1531
137
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_) {
1532
137
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1533
137
                                                            0U, 255U, &t35Extension, false);
1534
1535
137
  return offset;
1536
137
}
1537
1538
1539
1540
static unsigned
1541
135
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_) {
1542
135
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1543
135
                                                            0U, 65535U, &manufacturerCode, false);
1544
1545
135
  return offset;
1546
135
}
1547
1548
1549
static const per_sequence_t H221NonStandard_sequence[] = {
1550
  { &hf_h225_t35CountryCode , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35CountryCode },
1551
  { &hf_h225_t35Extension   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35Extension },
1552
  { &hf_h225_manufacturerCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_manufacturerCode },
1553
  { NULL, 0, 0, NULL }
1554
};
1555
1556
static unsigned
1557
137
dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1558
137
  t35CountryCode = 0;
1559
137
  t35Extension = 0;
1560
137
  manufacturerCode = 0;
1561
137
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1562
137
                                   ett_h225_H221NonStandard, H221NonStandard_sequence);
1563
1564
137
  h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
1565
137
  proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
1566
137
  return offset;
1567
137
}
1568
1569
1570
static const value_string h225_NonStandardIdentifier_vals[] = {
1571
  {   0, "object" },
1572
  {   1, "h221NonStandard" },
1573
  { 0, NULL }
1574
};
1575
1576
static const per_choice_t NonStandardIdentifier_choice[] = {
1577
  {   0, &hf_h225_nsiOID         , ASN1_EXTENSION_ROOT    , dissect_h225_T_nsiOID },
1578
  {   1, &hf_h225_h221NonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_H221NonStandard },
1579
  { 0, NULL, 0, NULL }
1580
};
1581
1582
static unsigned
1583
418
dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1584
418
  int32_t value;
1585
1586
418
  nsiOID = "";
1587
418
  h221NonStandard = 0;
1588
1589
418
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1590
418
                                 ett_h225_NonStandardIdentifier, NonStandardIdentifier_choice,
1591
418
                                 &value);
1592
1593
418
  switch (value) {
1594
217
    case 0 :  /* object */
1595
217
      nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
1596
217
      break;
1597
71
    case 1 :  /* h221NonStandard */
1598
71
      nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
1599
71
      break;
1600
82
    default :
1601
82
      nsp_handle = NULL;
1602
418
    }
1603
1604
370
  return offset;
1605
418
}
1606
1607
1608
1609
static unsigned
1610
370
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_) {
1611
370
  tvbuff_t *next_tvb = NULL;
1612
1613
370
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1614
370
                                       NO_BOUND, NO_BOUND, false, &next_tvb);
1615
1616
370
  if (next_tvb && tvb_reported_length(next_tvb)) {
1617
200
    call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
1618
200
  }
1619
1620
370
  return offset;
1621
370
}
1622
1623
1624
static const per_sequence_t NonStandardParameter_sequence[] = {
1625
  { &hf_h225_nonStandardIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardIdentifier },
1626
  { &hf_h225_nsp_data       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_nsp_data },
1627
  { NULL, 0, 0, NULL }
1628
};
1629
1630
unsigned
1631
420
dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1632
420
  nsp_handle = NULL;
1633
420
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1634
420
                                   ett_h225_NonStandardParameter, NonStandardParameter_sequence);
1635
1636
420
  return offset;
1637
420
}
1638
1639
1640
static const value_string h225_H245TransportAddress_vals[] = {
1641
  {   0, "ipAddress" },
1642
  {   1, "ipSourceRoute" },
1643
  {   2, "ipxAddress" },
1644
  {   3, "ip6Address" },
1645
  {   4, "netBios" },
1646
  {   5, "nsap" },
1647
  {   6, "nonStandardAddress" },
1648
  { 0, NULL }
1649
};
1650
1651
static const per_choice_t H245TransportAddress_choice[] = {
1652
  {   0, &hf_h225_h245IpAddress  , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpAddress },
1653
  {   1, &hf_h225_h245IpSourceRoute, ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpSourceRoute },
1654
  {   2, &hf_h225_h245IpxAddress , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpxAddress },
1655
  {   3, &hf_h225_h245Ip6Address , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245Ip6Address },
1656
  {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1657
  {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1658
  {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1659
  { 0, NULL, 0, NULL }
1660
};
1661
1662
static unsigned
1663
43
dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1664
43
  h225_packet_info* h225_pi;
1665
43
  ipv4_address=0;
1666
43
  ipv6_address = ipv6_address_zeros;
1667
43
  ip_port=0;
1668
1669
43
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1670
43
                                 ett_h225_H245TransportAddress, H245TransportAddress_choice,
1671
43
                                 NULL);
1672
1673
  /* we need this info for TAPing */
1674
43
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1675
1676
43
  if (h225_pi) {
1677
43
    h225_pi->is_h245 = true;
1678
43
    h225_pi->h245_address = ipv4_address;
1679
43
    h225_pi->h245_port = ip_port;
1680
43
  }
1681
43
  if ( !actx->pinfo->fd->visited && h245_handle && ip_port!=0 ) {
1682
29
    address src_addr;
1683
29
    conversation_t *conv=NULL;
1684
1685
29
    if (ipv4_address!=0) {
1686
24
      set_address(&src_addr, AT_IPv4, 4, &ipv4_address);
1687
24
    } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
1688
1
      set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
1689
4
    } else {
1690
4
      return offset;
1691
4
    }
1692
1693
25
    conv=find_conversation(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
1694
25
    if(!conv){
1695
13
      conv=conversation_new(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
1696
13
      conversation_set_dissector(conv, h245_handle);
1697
13
    }
1698
25
  }
1699
39
  return offset;
1700
43
}
1701
1702
1703
1704
static unsigned
1705
3.17k
dissect_h225_DialedDigits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1706
3.17k
  tvbuff_t *value_tvb = NULL;
1707
3.17k
  unsigned len = 0;
1708
3.17k
  h225_packet_info* h225_pi;
1709
1710
3.17k
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1711
3.17k
                                                      1, 128, false, "0123456789#*,", 13,
1712
3.17k
                                                      &value_tvb);
1713
1714
3.17k
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1715
3.17k
  if (h225_pi && h225_pi->is_destinationInfo == true) {
1716
412
    if (value_tvb) {
1717
412
      len = tvb_reported_length(value_tvb);
1718
      /* XXX - should this be allocated as an ephemeral string? */
1719
412
      if (len > sizeof h225_pi->dialedDigits - 1)
1720
7
        len = sizeof h225_pi->dialedDigits - 1;
1721
412
      tvb_memcpy(value_tvb, (uint8_t*)h225_pi->dialedDigits, 0, len);
1722
412
    }
1723
412
    h225_pi->dialedDigits[len] = '\0';
1724
412
    h225_pi->is_destinationInfo = false;
1725
412
  }
1726
1727
3.17k
  return offset;
1728
3.17k
}
1729
1730
1731
1732
static unsigned
1733
153
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_) {
1734
153
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1735
153
                                          1, 256, false);
1736
1737
153
  return offset;
1738
153
}
1739
1740
1741
1742
static unsigned
1743
105
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_) {
1744
105
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1745
105
                                          1, 512, false,
1746
105
                                          NULL);
1747
1748
105
  return offset;
1749
105
}
1750
1751
1752
1753
static unsigned
1754
716
dissect_h225_IpV4(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1755
716
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1756
716
                                       4, 4, false, NULL);
1757
1758
716
  return offset;
1759
716
}
1760
1761
1762
static const per_sequence_t T_ipAddress_sequence[] = {
1763
  { &hf_h225_ipV4           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IpV4 },
1764
  { &hf_h225_ipV4_port      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1765
  { NULL, 0, 0, NULL }
1766
};
1767
1768
static unsigned
1769
716
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_) {
1770
716
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1771
716
                                   ett_h225_T_ipAddress, T_ipAddress_sequence);
1772
1773
716
  return offset;
1774
716
}
1775
1776
1777
static const per_sequence_t T_route_sequence_of[1] = {
1778
  { &hf_h225_route_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1779
};
1780
1781
static unsigned
1782
53
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_) {
1783
53
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1784
53
                                      ett_h225_T_route, T_route_sequence_of);
1785
1786
53
  return offset;
1787
53
}
1788
1789
1790
static const value_string h225_T_routing_vals[] = {
1791
  {   0, "strict" },
1792
  {   1, "loose" },
1793
  { 0, NULL }
1794
};
1795
1796
static const per_choice_t T_routing_choice[] = {
1797
  {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1798
  {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1799
  { 0, NULL, 0, NULL }
1800
};
1801
1802
static unsigned
1803
38
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_) {
1804
38
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1805
38
                                 ett_h225_T_routing, T_routing_choice,
1806
38
                                 NULL);
1807
1808
38
  return offset;
1809
38
}
1810
1811
1812
static const per_sequence_t T_ipSourceRoute_sequence[] = {
1813
  { &hf_h225_src_route_ipV4 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1814
  { &hf_h225_ipV4_src_port  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1815
  { &hf_h225_route          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_route },
1816
  { &hf_h225_routing        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_routing },
1817
  { NULL, 0, 0, NULL }
1818
};
1819
1820
static unsigned
1821
60
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_) {
1822
60
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1823
60
                                   ett_h225_T_ipSourceRoute, T_ipSourceRoute_sequence);
1824
1825
60
  return offset;
1826
60
}
1827
1828
1829
static const per_sequence_t T_ipxAddress_sequence[] = {
1830
  { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1831
  { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1832
  { &hf_h225_ipx_port       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1833
  { NULL, 0, 0, NULL }
1834
};
1835
1836
static unsigned
1837
132
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_) {
1838
132
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1839
132
                                   ett_h225_T_ipxAddress, T_ipxAddress_sequence);
1840
1841
132
  return offset;
1842
132
}
1843
1844
1845
static const per_sequence_t T_ip6Address_sequence[] = {
1846
  { &hf_h225_ipV6           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_16 },
1847
  { &hf_h225_ipV6_port      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1848
  { NULL, 0, 0, NULL }
1849
};
1850
1851
static unsigned
1852
57
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_) {
1853
57
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1854
57
                                   ett_h225_T_ip6Address, T_ip6Address_sequence);
1855
1856
57
  return offset;
1857
57
}
1858
1859
1860
const value_string h225_TransportAddress_vals[] = {
1861
  {   0, "ipAddress" },
1862
  {   1, "ipSourceRoute" },
1863
  {   2, "ipxAddress" },
1864
  {   3, "ip6Address" },
1865
  {   4, "netBios" },
1866
  {   5, "nsap" },
1867
  {   6, "nonStandardAddress" },
1868
  { 0, NULL }
1869
};
1870
1871
static const per_choice_t TransportAddress_choice[] = {
1872
  {   0, &hf_h225_ipAddress      , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipAddress },
1873
  {   1, &hf_h225_ipSourceRoute  , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipSourceRoute },
1874
  {   2, &hf_h225_ipxAddress     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipxAddress },
1875
  {   3, &hf_h225_ip6Address     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ip6Address },
1876
  {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1877
  {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1878
  {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1879
  { 0, NULL, 0, NULL }
1880
};
1881
1882
unsigned
1883
1.19k
dissect_h225_TransportAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1884
1.19k
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1885
1.19k
                                 ett_h225_TransportAddress, TransportAddress_choice,
1886
1.19k
                                 NULL);
1887
1888
1.19k
  return offset;
1889
1.19k
}
1890
1891
1892
const value_string h225_PublicTypeOfNumber_vals[] = {
1893
  {   0, "unknown" },
1894
  {   1, "internationalNumber" },
1895
  {   2, "nationalNumber" },
1896
  {   3, "networkSpecificNumber" },
1897
  {   4, "subscriberNumber" },
1898
  {   5, "abbreviatedNumber" },
1899
  { 0, NULL }
1900
};
1901
1902
static const per_choice_t PublicTypeOfNumber_choice[] = {
1903
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1904
  {   1, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1905
  {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1906
  {   3, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1907
  {   4, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1908
  {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1909
  { 0, NULL, 0, NULL }
1910
};
1911
1912
unsigned
1913
78
dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1914
78
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1915
78
                                 ett_h225_PublicTypeOfNumber, PublicTypeOfNumber_choice,
1916
78
                                 NULL);
1917
1918
78
  return offset;
1919
78
}
1920
1921
1922
1923
static unsigned
1924
117
dissect_h225_NumberDigits(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1925
117
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1926
117
                                                      1, 128, false, "0123456789#*,", 13,
1927
117
                                                      NULL);
1928
1929
117
  return offset;
1930
117
}
1931
1932
1933
static const per_sequence_t PublicPartyNumber_sequence[] = {
1934
  { &hf_h225_publicTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PublicTypeOfNumber },
1935
  { &hf_h225_publicNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1936
  { NULL, 0, 0, NULL }
1937
};
1938
1939
static unsigned
1940
78
dissect_h225_PublicPartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1941
78
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1942
78
                                   ett_h225_PublicPartyNumber, PublicPartyNumber_sequence);
1943
1944
78
  return offset;
1945
78
}
1946
1947
1948
const value_string h225_PrivateTypeOfNumber_vals[] = {
1949
  {   0, "unknown" },
1950
  {   1, "level2RegionalNumber" },
1951
  {   2, "level1RegionalNumber" },
1952
  {   3, "pISNSpecificNumber" },
1953
  {   4, "localNumber" },
1954
  {   5, "abbreviatedNumber" },
1955
  { 0, NULL }
1956
};
1957
1958
static const per_choice_t PrivateTypeOfNumber_choice[] = {
1959
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1960
  {   1, &hf_h225_level2RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1961
  {   2, &hf_h225_level1RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1962
  {   3, &hf_h225_pISNSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1963
  {   4, &hf_h225_localNumber    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1964
  {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1965
  { 0, NULL, 0, NULL }
1966
};
1967
1968
unsigned
1969
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_) {
1970
6
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1971
6
                                 ett_h225_PrivateTypeOfNumber, PrivateTypeOfNumber_choice,
1972
6
                                 NULL);
1973
1974
6
  return offset;
1975
6
}
1976
1977
1978
static const per_sequence_t PrivatePartyNumber_sequence[] = {
1979
  { &hf_h225_privateTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
1980
  { &hf_h225_privateNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1981
  { NULL, 0, 0, NULL }
1982
};
1983
1984
static unsigned
1985
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_) {
1986
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1987
5
                                   ett_h225_PrivatePartyNumber, PrivatePartyNumber_sequence);
1988
1989
5
  return offset;
1990
5
}
1991
1992
1993
const value_string h225_PartyNumber_vals[] = {
1994
  {   0, "e164Number" },
1995
  {   1, "dataPartyNumber" },
1996
  {   2, "telexPartyNumber" },
1997
  {   3, "privateNumber" },
1998
  {   4, "nationalStandardPartyNumber" },
1999
  { 0, NULL }
2000
};
2001
2002
static const per_choice_t PartyNumber_choice[] = {
2003
  {   0, &hf_h225_e164Number     , ASN1_EXTENSION_ROOT    , dissect_h225_PublicPartyNumber },
2004
  {   1, &hf_h225_dataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2005
  {   2, &hf_h225_telexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2006
  {   3, &hf_h225_privateNumber  , ASN1_EXTENSION_ROOT    , dissect_h225_PrivatePartyNumber },
2007
  {   4, &hf_h225_nationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2008
  { 0, NULL, 0, NULL }
2009
};
2010
2011
unsigned
2012
173
dissect_h225_PartyNumber(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2013
173
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2014
173
                                 ett_h225_PartyNumber, PartyNumber_choice,
2015
173
                                 NULL);
2016
2017
173
  return offset;
2018
173
}
2019
2020
2021
2022
static unsigned
2023
139
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_) {
2024
139
  int min_len, max_len;
2025
139
  bool has_extension;
2026
2027
139
  get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
2028
139
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2029
139
                                                      min_len, max_len, has_extension, "0123456789#*abc", 15,
2030
139
                                                      NULL);
2031
2032
139
  return offset;
2033
139
}
2034
2035
2036
2037
static unsigned
2038
60
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_) {
2039
60
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2040
60
                                                "TBCD_STRING", 3, 16, false);
2041
2042
60
  return offset;
2043
60
}
2044
2045
2046
2047
static unsigned
2048
49
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_) {
2049
49
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2050
49
                                                "TBCD_STRING", 16, 16, false);
2051
2052
49
  return offset;
2053
49
}
2054
2055
2056
2057
static unsigned
2058
29
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_) {
2059
29
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2060
29
                                                "TBCD_STRING", 1, 4, false);
2061
2062
29
  return offset;
2063
29
}
2064
2065
2066
static const value_string h225_T_system_id_vals[] = {
2067
  {   0, "sid" },
2068
  {   1, "mid" },
2069
  { 0, NULL }
2070
};
2071
2072
static const per_choice_t T_system_id_choice[] = {
2073
  {   0, &hf_h225_sid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2074
  {   1, &hf_h225_mid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2075
  { 0, NULL, 0, NULL }
2076
};
2077
2078
static unsigned
2079
30
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_) {
2080
30
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2081
30
                                 ett_h225_T_system_id, T_system_id_choice,
2082
30
                                 NULL);
2083
2084
30
  return offset;
2085
30
}
2086
2087
2088
2089
static unsigned
2090
42
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_) {
2091
42
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2092
42
                                       1, 1, false, NULL);
2093
2094
42
  return offset;
2095
42
}
2096
2097
2098
static const per_sequence_t ANSI_41_UIM_sequence[] = {
2099
  { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2100
  { &hf_h225_min            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2101
  { &hf_h225_mdn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2102
  { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2103
  { &hf_h225_esn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2104
  { &hf_h225_mscid          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2105
  { &hf_h225_system_id      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_system_id },
2106
  { &hf_h225_systemMyTypeCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2107
  { &hf_h225_systemAccessType, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2108
  { &hf_h225_qualificationInformationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2109
  { &hf_h225_sesn           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2110
  { &hf_h225_soc            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2111
  { NULL, 0, 0, NULL }
2112
};
2113
2114
static unsigned
2115
33
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_) {
2116
33
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2117
33
                                   ett_h225_ANSI_41_UIM, ANSI_41_UIM_sequence);
2118
2119
33
  return offset;
2120
33
}
2121
2122
2123
2124
static unsigned
2125
3
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_) {
2126
3
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2127
3
                                       1, 4, false, NULL);
2128
2129
3
  return offset;
2130
3
}
2131
2132
2133
2134
static unsigned
2135
1
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_) {
2136
1
  offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2137
1
                                                "TBCD_STRING", 15, 16, false);
2138
2139
1
  return offset;
2140
1
}
2141
2142
2143
static const per_sequence_t GSM_UIM_sequence[] = {
2144
  { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2145
  { &hf_h225_tmsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_4 },
2146
  { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2147
  { &hf_h225_imei           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_15_16 },
2148
  { &hf_h225_hplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2149
  { &hf_h225_vplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2150
  { NULL, 0, 0, NULL }
2151
};
2152
2153
static unsigned
2154
3
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_) {
2155
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2156
3
                                   ett_h225_GSM_UIM, GSM_UIM_sequence);
2157
2158
3
  return offset;
2159
3
}
2160
2161
2162
static const value_string h225_MobileUIM_vals[] = {
2163
  {   0, "ansi-41-uim" },
2164
  {   1, "gsm-uim" },
2165
  { 0, NULL }
2166
};
2167
2168
static const per_choice_t MobileUIM_choice[] = {
2169
  {   0, &hf_h225_ansi_41_uim    , ASN1_EXTENSION_ROOT    , dissect_h225_ANSI_41_UIM },
2170
  {   1, &hf_h225_gsm_uim        , ASN1_EXTENSION_ROOT    , dissect_h225_GSM_UIM },
2171
  { 0, NULL, 0, NULL }
2172
};
2173
2174
static unsigned
2175
36
dissect_h225_MobileUIM(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2176
36
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2177
36
                                 ett_h225_MobileUIM, MobileUIM_choice,
2178
36
                                 NULL);
2179
2180
36
  return offset;
2181
36
}
2182
2183
2184
static const value_string h225_NatureOfAddress_vals[] = {
2185
  {   0, "unknown" },
2186
  {   1, "subscriberNumber" },
2187
  {   2, "nationalNumber" },
2188
  {   3, "internationalNumber" },
2189
  {   4, "networkSpecificNumber" },
2190
  {   5, "routingNumberNationalFormat" },
2191
  {   6, "routingNumberNetworkSpecificFormat" },
2192
  {   7, "routingNumberWithCalledDirectoryNumber" },
2193
  { 0, NULL }
2194
};
2195
2196
static const per_choice_t NatureOfAddress_choice[] = {
2197
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2198
  {   1, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2199
  {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2200
  {   3, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2201
  {   4, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2202
  {   5, &hf_h225_routingNumberNationalFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2203
  {   6, &hf_h225_routingNumberNetworkSpecificFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2204
  {   7, &hf_h225_routingNumberWithCalledDirectoryNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2205
  { 0, NULL, 0, NULL }
2206
};
2207
2208
static unsigned
2209
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_) {
2210
5
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2211
5
                                 ett_h225_NatureOfAddress, NatureOfAddress_choice,
2212
5
                                 NULL);
2213
2214
5
  return offset;
2215
5
}
2216
2217
2218
2219
static unsigned
2220
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_) {
2221
5
  offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2222
5
                                                      1, 128, false, "0123456789ABCDE", 15,
2223
5
                                                      NULL);
2224
2225
5
  return offset;
2226
5
}
2227
2228
2229
static const per_sequence_t IsupPublicPartyNumber_sequence[] = {
2230
  { &hf_h225_natureOfAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NatureOfAddress },
2231
  { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2232
  { NULL, 0, 0, NULL }
2233
};
2234
2235
static unsigned
2236
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_) {
2237
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2238
5
                                   ett_h225_IsupPublicPartyNumber, IsupPublicPartyNumber_sequence);
2239
2240
5
  return offset;
2241
5
}
2242
2243
2244
static const per_sequence_t IsupPrivatePartyNumber_sequence[] = {
2245
  { &hf_h225_privateTypeOfNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
2246
  { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2247
  { NULL, 0, 0, NULL }
2248
};
2249
2250
static unsigned
2251
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_) {
2252
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2253
1
                                   ett_h225_IsupPrivatePartyNumber, IsupPrivatePartyNumber_sequence);
2254
2255
1
  return offset;
2256
1
}
2257
2258
2259
static const value_string h225_IsupNumber_vals[] = {
2260
  {   0, "e164Number" },
2261
  {   1, "dataPartyNumber" },
2262
  {   2, "telexPartyNumber" },
2263
  {   3, "privateNumber" },
2264
  {   4, "nationalStandardPartyNumber" },
2265
  { 0, NULL }
2266
};
2267
2268
static const per_choice_t IsupNumber_choice[] = {
2269
  {   0, &hf_h225_isupE164Number , ASN1_EXTENSION_ROOT    , dissect_h225_IsupPublicPartyNumber },
2270
  {   1, &hf_h225_isupDataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2271
  {   2, &hf_h225_isupTelexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2272
  {   3, &hf_h225_isupPrivateNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupPrivatePartyNumber },
2273
  {   4, &hf_h225_isupNationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2274
  { 0, NULL, 0, NULL }
2275
};
2276
2277
static unsigned
2278
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_) {
2279
6
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2280
6
                                 ett_h225_IsupNumber, IsupNumber_choice,
2281
6
                                 NULL);
2282
2283
6
  return offset;
2284
6
}
2285
2286
2287
const value_string AliasAddress_vals[] = {
2288
  {   0, "dialledDigits" },
2289
  {   1, "h323-ID" },
2290
  {   2, "url-ID" },
2291
  {   3, "transportID" },
2292
  {   4, "email-ID" },
2293
  {   5, "partyNumber" },
2294
  {   6, "mobileUIM" },
2295
  {   7, "isupNumber" },
2296
  { 0, NULL }
2297
};
2298
2299
static const per_choice_t AliasAddress_choice[] = {
2300
  {   0, &hf_h225_dialledDigits  , ASN1_EXTENSION_ROOT    , dissect_h225_DialedDigits },
2301
  {   1, &hf_h225_h323_ID        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString_SIZE_1_256 },
2302
  {   2, &hf_h225_url_ID         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2303
  {   3, &hf_h225_transportID    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_TransportAddress },
2304
  {   4, &hf_h225_email_ID       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2305
  {   5, &hf_h225_partyNumber    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_PartyNumber },
2306
  {   6, &hf_h225_mobileUIM      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_MobileUIM },
2307
  {   7, &hf_h225_isupNumber     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IsupNumber },
2308
  { 0, NULL, 0, NULL }
2309
};
2310
2311
unsigned
2312
3.58k
dissect_h225_AliasAddress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2313
3.58k
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2314
3.58k
                                 ett_h225_AliasAddress, AliasAddress_choice,
2315
3.58k
                                 NULL);
2316
2317
3.58k
  return offset;
2318
3.58k
}
2319
2320
2321
static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
2322
  { &hf_h225_alertingAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2323
};
2324
2325
static unsigned
2326
66
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_) {
2327
66
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2328
66
                                      ett_h225_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
2329
2330
66
  return offset;
2331
66
}
2332
2333
2334
2335
static unsigned
2336
34
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_) {
2337
34
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2338
34
                                       1, 256, false, NULL);
2339
2340
34
  return offset;
2341
34
}
2342
2343
2344
2345
static unsigned
2346
46
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_) {
2347
46
  offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2348
2349
46
  return offset;
2350
46
}
2351
2352
2353
static const per_sequence_t VendorIdentifier_sequence[] = {
2354
  { &hf_h225_vendorIdentifier_vendor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H221NonStandard },
2355
  { &hf_h225_productId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2356
  { &hf_h225_versionId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2357
  { &hf_h225_enterpriseNumber, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
2358
  { NULL, 0, 0, NULL }
2359
};
2360
2361
static unsigned
2362
60
dissect_h225_VendorIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2363
60
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2364
60
                                   ett_h225_VendorIdentifier, VendorIdentifier_sequence);
2365
2366
60
  return offset;
2367
60
}
2368
2369
2370
static const per_sequence_t GatekeeperInfo_sequence[] = {
2371
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2372
  { NULL, 0, 0, NULL }
2373
};
2374
2375
static unsigned
2376
61
dissect_h225_GatekeeperInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2377
61
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2378
61
                                   ett_h225_GatekeeperInfo, GatekeeperInfo_sequence);
2379
2380
61
  return offset;
2381
61
}
2382
2383
2384
2385
unsigned
2386
370
dissect_h225_BandWidth(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2387
370
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2388
370
                                                            0U, 4294967295U, NULL, false);
2389
2390
370
  return offset;
2391
370
}
2392
2393
2394
2395
static unsigned
2396
21
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_) {
2397
21
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2398
21
                                                            1U, 256U, NULL, false);
2399
2400
21
  return offset;
2401
21
}
2402
2403
2404
static const per_sequence_t DataRate_sequence[] = {
2405
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2406
  { &hf_h225_channelRate    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
2407
  { &hf_h225_channelMultiplier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_256 },
2408
  { NULL, 0, 0, NULL }
2409
};
2410
2411
static unsigned
2412
68
dissect_h225_DataRate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2413
68
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2414
68
                                   ett_h225_DataRate, DataRate_sequence);
2415
2416
68
  return offset;
2417
68
}
2418
2419
2420
static const per_sequence_t SEQUENCE_OF_DataRate_sequence_of[1] = {
2421
  { &hf_h225_dataRatesSupported_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DataRate },
2422
};
2423
2424
static unsigned
2425
7
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_) {
2426
7
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2427
7
                                      ett_h225_SEQUENCE_OF_DataRate, SEQUENCE_OF_DataRate_sequence_of);
2428
2429
7
  return offset;
2430
7
}
2431
2432
2433
static const per_sequence_t SupportedPrefix_sequence[] = {
2434
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2435
  { &hf_h225_prefix         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2436
  { NULL, 0, 0, NULL }
2437
};
2438
2439
static unsigned
2440
69
dissect_h225_SupportedPrefix(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2441
69
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2442
69
                                   ett_h225_SupportedPrefix, SupportedPrefix_sequence);
2443
2444
69
  return offset;
2445
69
}
2446
2447
2448
static const per_sequence_t SEQUENCE_OF_SupportedPrefix_sequence_of[1] = {
2449
  { &hf_h225_supportedPrefixes_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedPrefix },
2450
};
2451
2452
static unsigned
2453
8
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_) {
2454
8
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2455
8
                                      ett_h225_SEQUENCE_OF_SupportedPrefix, SEQUENCE_OF_SupportedPrefix_sequence_of);
2456
2457
8
  return offset;
2458
8
}
2459
2460
2461
static const per_sequence_t H310Caps_sequence[] = {
2462
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2463
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2464
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2465
  { NULL, 0, 0, NULL }
2466
};
2467
2468
static unsigned
2469
56
dissect_h225_H310Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2470
56
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2471
56
                                   ett_h225_H310Caps, H310Caps_sequence);
2472
2473
56
  return offset;
2474
56
}
2475
2476
2477
static const per_sequence_t H320Caps_sequence[] = {
2478
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2479
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2480
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2481
  { NULL, 0, 0, NULL }
2482
};
2483
2484
static unsigned
2485
7
dissect_h225_H320Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2486
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2487
7
                                   ett_h225_H320Caps, H320Caps_sequence);
2488
2489
7
  return offset;
2490
7
}
2491
2492
2493
static const per_sequence_t H321Caps_sequence[] = {
2494
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2495
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2496
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2497
  { NULL, 0, 0, NULL }
2498
};
2499
2500
static unsigned
2501
52
dissect_h225_H321Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2502
52
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2503
52
                                   ett_h225_H321Caps, H321Caps_sequence);
2504
2505
52
  return offset;
2506
52
}
2507
2508
2509
static const per_sequence_t H322Caps_sequence[] = {
2510
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2511
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2512
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2513
  { NULL, 0, 0, NULL }
2514
};
2515
2516
static unsigned
2517
10
dissect_h225_H322Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2518
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2519
10
                                   ett_h225_H322Caps, H322Caps_sequence);
2520
2521
10
  return offset;
2522
10
}
2523
2524
2525
static const per_sequence_t H323Caps_sequence[] = {
2526
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2527
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2528
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2529
  { NULL, 0, 0, NULL }
2530
};
2531
2532
static unsigned
2533
3
dissect_h225_H323Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2534
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2535
3
                                   ett_h225_H323Caps, H323Caps_sequence);
2536
2537
3
  return offset;
2538
3
}
2539
2540
2541
static const per_sequence_t H324Caps_sequence[] = {
2542
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2543
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2544
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2545
  { NULL, 0, 0, NULL }
2546
};
2547
2548
static unsigned
2549
53
dissect_h225_H324Caps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2550
53
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2551
53
                                   ett_h225_H324Caps, H324Caps_sequence);
2552
2553
53
  return offset;
2554
53
}
2555
2556
2557
static const per_sequence_t VoiceCaps_sequence[] = {
2558
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2559
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2560
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2561
  { NULL, 0, 0, NULL }
2562
};
2563
2564
static unsigned
2565
2
dissect_h225_VoiceCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2566
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2567
2
                                   ett_h225_VoiceCaps, VoiceCaps_sequence);
2568
2569
2
  return offset;
2570
2
}
2571
2572
2573
static const per_sequence_t T120OnlyCaps_sequence[] = {
2574
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2575
  { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2576
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2577
  { NULL, 0, 0, NULL }
2578
};
2579
2580
static unsigned
2581
4
dissect_h225_T120OnlyCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2582
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2583
4
                                   ett_h225_T120OnlyCaps, T120OnlyCaps_sequence);
2584
2585
4
  return offset;
2586
4
}
2587
2588
2589
static const per_sequence_t NonStandardProtocol_sequence[] = {
2590
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2591
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2592
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2593
  { NULL, 0, 0, NULL }
2594
};
2595
2596
static unsigned
2597
6
dissect_h225_NonStandardProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2598
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2599
6
                                   ett_h225_NonStandardProtocol, NonStandardProtocol_sequence);
2600
2601
6
  return offset;
2602
6
}
2603
2604
2605
static const per_sequence_t T38FaxAnnexbOnlyCaps_sequence[] = {
2606
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2607
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2608
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2609
  { &hf_h225_t38FaxProtocol , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
2610
  { &hf_h225_t38FaxProfile  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
2611
  { NULL, 0, 0, NULL }
2612
};
2613
2614
static unsigned
2615
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_) {
2616
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2617
2
                                   ett_h225_T38FaxAnnexbOnlyCaps, T38FaxAnnexbOnlyCaps_sequence);
2618
2619
2
  return offset;
2620
2
}
2621
2622
2623
static const per_sequence_t SIPCaps_sequence[] = {
2624
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2625
  { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2626
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
2627
  { NULL, 0, 0, NULL }
2628
};
2629
2630
static unsigned
2631
0
dissect_h225_SIPCaps(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2632
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2633
0
                                   ett_h225_SIPCaps, SIPCaps_sequence);
2634
2635
0
  return offset;
2636
0
}
2637
2638
2639
const value_string h225_SupportedProtocols_vals[] = {
2640
  {   0, "nonStandardData" },
2641
  {   1, "h310" },
2642
  {   2, "h320" },
2643
  {   3, "h321" },
2644
  {   4, "h322" },
2645
  {   5, "h323" },
2646
  {   6, "h324" },
2647
  {   7, "voice" },
2648
  {   8, "t120-only" },
2649
  {   9, "nonStandardProtocol" },
2650
  {  10, "t38FaxAnnexbOnly" },
2651
  {  11, "sip" },
2652
  { 0, NULL }
2653
};
2654
2655
static const per_choice_t SupportedProtocols_choice[] = {
2656
  {   0, &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
2657
  {   1, &hf_h225_h310           , ASN1_EXTENSION_ROOT    , dissect_h225_H310Caps },
2658
  {   2, &hf_h225_h320           , ASN1_EXTENSION_ROOT    , dissect_h225_H320Caps },
2659
  {   3, &hf_h225_h321           , ASN1_EXTENSION_ROOT    , dissect_h225_H321Caps },
2660
  {   4, &hf_h225_h322           , ASN1_EXTENSION_ROOT    , dissect_h225_H322Caps },
2661
  {   5, &hf_h225_h323           , ASN1_EXTENSION_ROOT    , dissect_h225_H323Caps },
2662
  {   6, &hf_h225_h324           , ASN1_EXTENSION_ROOT    , dissect_h225_H324Caps },
2663
  {   7, &hf_h225_voice          , ASN1_EXTENSION_ROOT    , dissect_h225_VoiceCaps },
2664
  {   8, &hf_h225_t120_only      , ASN1_EXTENSION_ROOT    , dissect_h225_T120OnlyCaps },
2665
  {   9, &hf_h225_nonStandardProtocol, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardProtocol },
2666
  {  10, &hf_h225_t38FaxAnnexbOnly, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T38FaxAnnexbOnlyCaps },
2667
  {  11, &hf_h225_sip            , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SIPCaps },
2668
  { 0, NULL, 0, NULL }
2669
};
2670
2671
unsigned
2672
268
dissect_h225_SupportedProtocols(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2673
268
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2674
268
                                 ett_h225_SupportedProtocols, SupportedProtocols_choice,
2675
268
                                 NULL);
2676
2677
268
  return offset;
2678
268
}
2679
2680
2681
static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
2682
  { &hf_h225_desiredProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
2683
};
2684
2685
static unsigned
2686
33
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_) {
2687
33
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2688
33
                                      ett_h225_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
2689
2690
33
  return offset;
2691
33
}
2692
2693
2694
static const per_sequence_t GatewayInfo_sequence[] = {
2695
  { &hf_h225_protocol       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2696
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2697
  { NULL, 0, 0, NULL }
2698
};
2699
2700
static unsigned
2701
44
dissect_h225_GatewayInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2702
44
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2703
44
                                   ett_h225_GatewayInfo, GatewayInfo_sequence);
2704
2705
44
  return offset;
2706
44
}
2707
2708
2709
static const per_sequence_t McuInfo_sequence[] = {
2710
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2711
  { &hf_h225_protocol       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2712
  { NULL, 0, 0, NULL }
2713
};
2714
2715
static unsigned
2716
34
dissect_h225_McuInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2717
34
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2718
34
                                   ett_h225_McuInfo, McuInfo_sequence);
2719
2720
34
  return offset;
2721
34
}
2722
2723
2724
static const per_sequence_t TerminalInfo_sequence[] = {
2725
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2726
  { NULL, 0, 0, NULL }
2727
};
2728
2729
static unsigned
2730
34
dissect_h225_TerminalInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2731
34
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2732
34
                                   ett_h225_TerminalInfo, TerminalInfo_sequence);
2733
2734
34
  return offset;
2735
34
}
2736
2737
2738
2739
static unsigned
2740
830
dissect_h225_BOOLEAN(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2741
830
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2742
2743
830
  return offset;
2744
830
}
2745
2746
2747
2748
static unsigned
2749
2
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_) {
2750
2
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2751
2
                                     32, 32, false, NULL, 0, NULL, NULL);
2752
2753
2
  return offset;
2754
2
}
2755
2756
2757
2758
static unsigned
2759
9
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_) {
2760
9
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &tpOID);
2761
2762
9
  return offset;
2763
9
}
2764
2765
2766
2767
static unsigned
2768
7
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_) {
2769
7
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
2770
7
                                          1, 64, false,
2771
7
                                          NULL);
2772
2773
7
  return offset;
2774
7
}
2775
2776
2777
static const per_sequence_t TunnelledProtocolAlternateIdentifier_sequence[] = {
2778
  { &hf_h225_protocolType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_64 },
2779
  { &hf_h225_protocolVariant, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2780
  { NULL, 0, 0, NULL }
2781
};
2782
2783
static unsigned
2784
0
dissect_h225_TunnelledProtocolAlternateIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2785
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2786
0
                                   ett_h225_TunnelledProtocolAlternateIdentifier, TunnelledProtocolAlternateIdentifier_sequence);
2787
2788
0
  return offset;
2789
0
}
2790
2791
2792
static const value_string h225_TunnelledProtocol_id_vals[] = {
2793
  {   0, "tunnelledProtocolObjectID" },
2794
  {   1, "tunnelledProtocolAlternateID" },
2795
  { 0, NULL }
2796
};
2797
2798
static const per_choice_t TunnelledProtocol_id_choice[] = {
2799
  {   0, &hf_h225_tunnelledProtocolObjectID, ASN1_EXTENSION_ROOT    , dissect_h225_T_tunnelledProtocolObjectID },
2800
  {   1, &hf_h225_tunnelledProtocolAlternateID, ASN1_EXTENSION_ROOT    , dissect_h225_TunnelledProtocolAlternateIdentifier },
2801
  { 0, NULL, 0, NULL }
2802
};
2803
2804
static unsigned
2805
14
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_) {
2806
14
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2807
14
                                 ett_h225_TunnelledProtocol_id, TunnelledProtocol_id_choice,
2808
14
                                 NULL);
2809
2810
14
  return offset;
2811
14
}
2812
2813
2814
static const per_sequence_t TunnelledProtocol_sequence[] = {
2815
  { &hf_h225_tunnelledProtocol_id, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol_id },
2816
  { &hf_h225_subIdentifier  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2817
  { NULL, 0, 0, NULL }
2818
};
2819
2820
unsigned
2821
14
dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2822
14
  tpOID = "";
2823
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2824
14
                                   ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
2825
2826
14
  tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
2827
14
  return offset;
2828
14
}
2829
2830
2831
static const per_sequence_t SEQUENCE_OF_TunnelledProtocol_sequence_of[1] = {
2832
  { &hf_h225_supportedTunnelledProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
2833
};
2834
2835
static unsigned
2836
4
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_) {
2837
4
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2838
4
                                      ett_h225_SEQUENCE_OF_TunnelledProtocol, SEQUENCE_OF_TunnelledProtocol_sequence_of);
2839
2840
4
  return offset;
2841
4
}
2842
2843
2844
static const per_sequence_t EndpointType_sequence[] = {
2845
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2846
  { &hf_h225_vendor         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_VendorIdentifier },
2847
  { &hf_h225_gatekeeper     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperInfo },
2848
  { &hf_h225_gateway        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatewayInfo },
2849
  { &hf_h225_mcu            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_McuInfo },
2850
  { &hf_h225_terminal       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TerminalInfo },
2851
  { &hf_h225_mc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2852
  { &hf_h225_undefinedNode  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2853
  { &hf_h225_set            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BIT_STRING_SIZE_32 },
2854
  { &hf_h225_supportedTunnelledProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TunnelledProtocol },
2855
  { NULL, 0, 0, NULL }
2856
};
2857
2858
unsigned
2859
253
dissect_h225_EndpointType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2860
253
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2861
253
                                   ett_h225_EndpointType, EndpointType_sequence);
2862
2863
253
  return offset;
2864
253
}
2865
2866
2867
2868
unsigned
2869
190
dissect_h225_CallReferenceValue(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2870
190
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2871
190
                                                            0U, 65535U, NULL, false);
2872
2873
190
  return offset;
2874
190
}
2875
2876
2877
static const per_sequence_t SEQUENCE_OF_CallReferenceValue_sequence_of[1] = {
2878
  { &hf_h225_destExtraCRV_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
2879
};
2880
2881
static unsigned
2882
1
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_) {
2883
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2884
1
                                      ett_h225_SEQUENCE_OF_CallReferenceValue, SEQUENCE_OF_CallReferenceValue_sequence_of);
2885
2886
1
  return offset;
2887
1
}
2888
2889
2890
2891
unsigned
2892
664
dissect_h225_GloballyUniqueID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2893
664
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2894
664
                                       16, 16, false, (tvbuff_t **)actx->value_ptr);
2895
2896
664
  return offset;
2897
664
}
2898
2899
2900
2901
unsigned
2902
218
dissect_h225_ConferenceIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2903
218
  offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2904
2905
218
  return offset;
2906
218
}
2907
2908
2909
static const value_string h225_T_conferenceGoal_vals[] = {
2910
  {   0, "create" },
2911
  {   1, "join" },
2912
  {   2, "invite" },
2913
  {   3, "capability-negotiation" },
2914
  {   4, "callIndependentSupplementaryService" },
2915
  { 0, NULL }
2916
};
2917
2918
static const per_choice_t T_conferenceGoal_choice[] = {
2919
  {   0, &hf_h225_create         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2920
  {   1, &hf_h225_join           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2921
  {   2, &hf_h225_invite         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2922
  {   3, &hf_h225_capability_negotiation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2923
  {   4, &hf_h225_callIndependentSupplementaryService, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2924
  { 0, NULL, 0, NULL }
2925
};
2926
2927
static unsigned
2928
12
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_) {
2929
12
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2930
12
                                 ett_h225_T_conferenceGoal, T_conferenceGoal_choice,
2931
12
                                 NULL);
2932
2933
12
  return offset;
2934
12
}
2935
2936
2937
static const per_sequence_t Q954Details_sequence[] = {
2938
  { &hf_h225_conferenceCalling, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2939
  { &hf_h225_threePartyService, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2940
  { NULL, 0, 0, NULL }
2941
};
2942
2943
static unsigned
2944
9
dissect_h225_Q954Details(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2945
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2946
9
                                   ett_h225_Q954Details, Q954Details_sequence);
2947
2948
9
  return offset;
2949
9
}
2950
2951
2952
static const per_sequence_t QseriesOptions_sequence[] = {
2953
  { &hf_h225_q932Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2954
  { &hf_h225_q951Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2955
  { &hf_h225_q952Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2956
  { &hf_h225_q953Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2957
  { &hf_h225_q955Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2958
  { &hf_h225_q956Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2959
  { &hf_h225_q957Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2960
  { &hf_h225_q954Info       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_Q954Details },
2961
  { NULL, 0, 0, NULL }
2962
};
2963
2964
static unsigned
2965
9
dissect_h225_QseriesOptions(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2966
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2967
9
                                   ett_h225_QseriesOptions, QseriesOptions_sequence);
2968
2969
9
  return offset;
2970
9
}
2971
2972
2973
static const value_string h225_CallType_vals[] = {
2974
  {   0, "pointToPoint" },
2975
  {   1, "oneToN" },
2976
  {   2, "nToOne" },
2977
  {   3, "nToN" },
2978
  { 0, NULL }
2979
};
2980
2981
static const per_choice_t CallType_choice[] = {
2982
  {   0, &hf_h225_pointToPoint   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2983
  {   1, &hf_h225_oneToN         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2984
  {   2, &hf_h225_nToOne         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2985
  {   3, &hf_h225_nToN           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2986
  { 0, NULL, 0, NULL }
2987
};
2988
2989
static unsigned
2990
139
dissect_h225_CallType(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2991
139
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2992
139
                                 ett_h225_CallType, CallType_choice,
2993
139
                                 NULL);
2994
2995
139
  return offset;
2996
139
}
2997
2998
2999
3000
static unsigned
3001
43
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_) {
3002
43
  tvbuff_t *guid_tvb = NULL;
3003
3004
43
  actx->value_ptr = &guid_tvb;
3005
43
  offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
3006
3007
43
  if (guid_tvb)
3008
41
    tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(actx->pinfo->pool, e_guid_t));
3009
43
  actx->value_ptr = NULL;
3010
3011
43
  return offset;
3012
43
}
3013
3014
3015
static const per_sequence_t CallIdentifier_sequence[] = {
3016
  { &hf_h225_guid           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_guid },
3017
  { NULL, 0, 0, NULL }
3018
};
3019
3020
unsigned
3021
43
dissect_h225_CallIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3022
43
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3023
43
                                   ett_h225_CallIdentifier, CallIdentifier_sequence);
3024
3025
43
  return offset;
3026
43
}
3027
3028
3029
static const value_string h225_SecurityServiceMode_vals[] = {
3030
  {   0, "nonStandard" },
3031
  {   1, "none" },
3032
  {   2, "default" },
3033
  { 0, NULL }
3034
};
3035
3036
static const per_choice_t SecurityServiceMode_choice[] = {
3037
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3038
  {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3039
  {   2, &hf_h225_default        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3040
  { 0, NULL, 0, NULL }
3041
};
3042
3043
static unsigned
3044
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_) {
3045
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3046
0
                                 ett_h225_SecurityServiceMode, SecurityServiceMode_choice,
3047
0
                                 NULL);
3048
3049
0
  return offset;
3050
0
}
3051
3052
3053
static const per_sequence_t SecurityCapabilities_sequence[] = {
3054
  { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
3055
  { &hf_h225_encryption     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3056
  { &hf_h225_authenticaton  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3057
  { &hf_h225_securityCapabilities_integrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3058
  { NULL, 0, 0, NULL }
3059
};
3060
3061
static unsigned
3062
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_) {
3063
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3064
0
                                   ett_h225_SecurityCapabilities, SecurityCapabilities_sequence);
3065
3066
0
  return offset;
3067
0
}
3068
3069
3070
static const value_string h225_H245Security_vals[] = {
3071
  {   0, "nonStandard" },
3072
  {   1, "noSecurity" },
3073
  {   2, "tls" },
3074
  {   3, "ipsec" },
3075
  { 0, NULL }
3076
};
3077
3078
static const per_choice_t H245Security_choice[] = {
3079
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3080
  {   1, &hf_h225_noSecurity     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3081
  {   2, &hf_h225_tls            , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3082
  {   3, &hf_h225_ipsec          , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3083
  { 0, NULL, 0, NULL }
3084
};
3085
3086
static unsigned
3087
2
dissect_h225_H245Security(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3088
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3089
2
                                 ett_h225_H245Security, H245Security_choice,
3090
2
                                 NULL);
3091
3092
2
  return offset;
3093
2
}
3094
3095
3096
static const per_sequence_t SEQUENCE_OF_H245Security_sequence_of[1] = {
3097
  { &hf_h225_h245SecurityCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Security },
3098
};
3099
3100
static unsigned
3101
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_) {
3102
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3103
0
                                      ett_h225_SEQUENCE_OF_H245Security, SEQUENCE_OF_H245Security_sequence_of);
3104
3105
0
  return offset;
3106
0
}
3107
3108
3109
static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
3110
  { &hf_h225_tokens_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
3111
};
3112
3113
static unsigned
3114
26
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_) {
3115
26
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3116
26
                                      ett_h225_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
3117
3118
26
  return offset;
3119
26
}
3120
3121
3122
static const per_sequence_t T_cryptoEPPwdHash_sequence[] = {
3123
  { &hf_h225_alias          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
3124
  { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3125
  { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3126
  { NULL, 0, 0, NULL }
3127
};
3128
3129
static unsigned
3130
48
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_) {
3131
48
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3132
48
                                   ett_h225_T_cryptoEPPwdHash, T_cryptoEPPwdHash_sequence);
3133
3134
48
  return offset;
3135
48
}
3136
3137
3138
3139
unsigned
3140
28
dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3141
28
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3142
28
                                          1, 128, false);
3143
3144
28
  return offset;
3145
28
}
3146
3147
3148
static const per_sequence_t T_cryptoGKPwdHash_sequence[] = {
3149
  { &hf_h225_gatekeeperId   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperIdentifier },
3150
  { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3151
  { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3152
  { NULL, 0, 0, NULL }
3153
};
3154
3155
static unsigned
3156
8
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_) {
3157
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3158
8
                                   ett_h225_T_cryptoGKPwdHash, T_cryptoGKPwdHash_sequence);
3159
3160
8
  return offset;
3161
8
}
3162
3163
3164
const value_string h225_CryptoH323Token_vals[] = {
3165
  {   0, "cryptoEPPwdHash" },
3166
  {   1, "cryptoGKPwdHash" },
3167
  {   2, "cryptoEPPwdEncr" },
3168
  {   3, "cryptoGKPwdEncr" },
3169
  {   4, "cryptoEPCert" },
3170
  {   5, "cryptoGKCert" },
3171
  {   6, "cryptoFastStart" },
3172
  {   7, "nestedcryptoToken" },
3173
  { 0, NULL }
3174
};
3175
3176
static const per_choice_t CryptoH323Token_choice[] = {
3177
  {   0, &hf_h225_cryptoEPPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoEPPwdHash },
3178
  {   1, &hf_h225_cryptoGKPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoGKPwdHash },
3179
  {   2, &hf_h225_cryptoEPPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3180
  {   3, &hf_h225_cryptoGKPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3181
  {   4, &hf_h225_cryptoEPCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3182
  {   5, &hf_h225_cryptoGKCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3183
  {   6, &hf_h225_cryptoFastStart, ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3184
  {   7, &hf_h225_nestedcryptoToken, ASN1_EXTENSION_ROOT    , dissect_h235_CryptoToken },
3185
  { 0, NULL, 0, NULL }
3186
};
3187
3188
unsigned
3189
102
dissect_h225_CryptoH323Token(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3190
102
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3191
102
                                 ett_h225_CryptoH323Token, CryptoH323Token_choice,
3192
102
                                 NULL);
3193
3194
102
  return offset;
3195
102
}
3196
3197
3198
static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
3199
  { &hf_h225_cryptoTokens_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
3200
};
3201
3202
static unsigned
3203
33
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_) {
3204
33
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3205
33
                                      ett_h225_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
3206
3207
33
  return offset;
3208
33
}
3209
3210
3211
3212
static unsigned
3213
18
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_) {
3214
18
  tvbuff_t *value_tvb = NULL;
3215
18
  char codec_str[50];
3216
18
  h225_packet_info* h225_pi;
3217
18
  codec_str[0] = '\0';
3218
3219
18
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3220
18
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
3221
3222
18
  if (value_tvb && tvb_reported_length(value_tvb)) {
3223
2
    dissect_h245_FastStart_OLC(value_tvb, actx->pinfo, tree, codec_str);
3224
2
  }
3225
3226
  /* Add to packet info */
3227
18
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
3228
18
  if (h225_pi != NULL) {
3229
15
    h225_pi->frame_label = wmem_strdup_printf(actx->pinfo->pool, "%s %s", h225_pi->frame_label, codec_str);
3230
15
    h225_pi->is_faststart = true;
3231
15
  }
3232
18
  contains_faststart = true;
3233
3234
18
  return offset;
3235
18
}
3236
3237
3238
static const per_sequence_t FastStart_sequence_of[1] = {
3239
  { &hf_h225_FastStart_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FastStart_item },
3240
};
3241
3242
static unsigned
3243
3
dissect_h225_FastStart(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3244
3
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3245
3
                                      ett_h225_FastStart, FastStart_sequence_of);
3246
3247
3
  return offset;
3248
3
}
3249
3250
3251
3252
static unsigned
3253
135
dissect_h225_EndpointIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3254
135
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3255
135
                                          1, 128, false);
3256
3257
135
  return offset;
3258
135
}
3259
3260
3261
static const value_string h225_ScnConnectionType_vals[] = {
3262
  {   0, "unknown" },
3263
  {   1, "bChannel" },
3264
  {   2, "hybrid2x64" },
3265
  {   3, "hybrid384" },
3266
  {   4, "hybrid1536" },
3267
  {   5, "hybrid1920" },
3268
  {   6, "multirate" },
3269
  { 0, NULL }
3270
};
3271
3272
static const per_choice_t ScnConnectionType_choice[] = {
3273
  {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3274
  {   1, &hf_h225_bChannel       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3275
  {   2, &hf_h225_hybrid2x64     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3276
  {   3, &hf_h225_hybrid384      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3277
  {   4, &hf_h225_hybrid1536     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3278
  {   5, &hf_h225_hybrid1920     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3279
  {   6, &hf_h225_multirate      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3280
  { 0, NULL, 0, NULL }
3281
};
3282
3283
static unsigned
3284
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_) {
3285
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3286
0
                                 ett_h225_ScnConnectionType, ScnConnectionType_choice,
3287
0
                                 NULL);
3288
3289
0
  return offset;
3290
0
}
3291
3292
3293
static const value_string h225_ScnConnectionAggregation_vals[] = {
3294
  {   0, "auto" },
3295
  {   1, "none" },
3296
  {   2, "h221" },
3297
  {   3, "bonded-mode1" },
3298
  {   4, "bonded-mode2" },
3299
  {   5, "bonded-mode3" },
3300
  { 0, NULL }
3301
};
3302
3303
static const per_choice_t ScnConnectionAggregation_choice[] = {
3304
  {   0, &hf_h225_auto           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3305
  {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3306
  {   2, &hf_h225_h221           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3307
  {   3, &hf_h225_bonded_mode1   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3308
  {   4, &hf_h225_bonded_mode2   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3309
  {   5, &hf_h225_bonded_mode3   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3310
  { 0, NULL, 0, NULL }
3311
};
3312
3313
static unsigned
3314
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_) {
3315
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3316
0
                                 ett_h225_ScnConnectionAggregation, ScnConnectionAggregation_choice,
3317
0
                                 NULL);
3318
3319
0
  return offset;
3320
0
}
3321
3322
3323
static const per_sequence_t T_connectionParameters_sequence[] = {
3324
  { &hf_h225_connectionType , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionType },
3325
  { &hf_h225_numberOfScnConnections, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3326
  { &hf_h225_connectionAggregation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionAggregation },
3327
  { NULL, 0, 0, NULL }
3328
};
3329
3330
static unsigned
3331
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_) {
3332
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3333
0
                                   ett_h225_T_connectionParameters, T_connectionParameters_sequence);
3334
3335
0
  return offset;
3336
0
}
3337
3338
3339
3340
static unsigned
3341
91
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_) {
3342
91
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3343
91
                                          1, 32, false,
3344
91
                                          NULL);
3345
3346
91
  return offset;
3347
91
}
3348
3349
3350
static const per_sequence_t Language_sequence_of[1] = {
3351
  { &hf_h225_Language_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 },
3352
};
3353
3354
static unsigned
3355
8
dissect_h225_Language(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3356
8
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3357
8
                                      ett_h225_Language, Language_sequence_of);
3358
3359
8
  return offset;
3360
8
}
3361
3362
3363
const value_string h225_PresentationIndicator_vals[] = {
3364
  {   0, "presentationAllowed" },
3365
  {   1, "presentationRestricted" },
3366
  {   2, "addressNotAvailable" },
3367
  { 0, NULL }
3368
};
3369
3370
static const per_choice_t PresentationIndicator_choice[] = {
3371
  {   0, &hf_h225_presentationAllowed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3372
  {   1, &hf_h225_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3373
  {   2, &hf_h225_addressNotAvailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3374
  { 0, NULL, 0, NULL }
3375
};
3376
3377
unsigned
3378
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_) {
3379
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3380
1
                                 ett_h225_PresentationIndicator, PresentationIndicator_choice,
3381
1
                                 NULL);
3382
3383
1
  return offset;
3384
1
}
3385
3386
3387
const value_string h225_ScreeningIndicator_vals[] = {
3388
  {   0, "userProvidedNotScreened" },
3389
  {   1, "userProvidedVerifiedAndPassed" },
3390
  {   2, "userProvidedVerifiedAndFailed" },
3391
  {   3, "networkProvided" },
3392
  { 0, NULL }
3393
};
3394
3395
3396
unsigned
3397
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_) {
3398
1
  offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3399
1
                                     4, NULL, true, 0, NULL);
3400
3401
1
  return offset;
3402
1
}
3403
3404
3405
3406
static unsigned
3407
125
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_) {
3408
125
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3409
125
                                                            0U, 255U, NULL, false);
3410
3411
125
  return offset;
3412
125
}
3413
3414
3415
3416
static unsigned
3417
7
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_) {
3418
7
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3419
7
                                          0, 512, false,
3420
7
                                          NULL);
3421
3422
7
  return offset;
3423
7
}
3424
3425
3426
3427
static unsigned
3428
14
dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3429
14
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3430
14
                                       NO_BOUND, NO_BOUND, false, NULL);
3431
3432
14
  return offset;
3433
14
}
3434
3435
3436
3437
static unsigned
3438
1
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_) {
3439
1
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3440
1
                                          1, 512, false);
3441
3442
1
  return offset;
3443
1
}
3444
3445
3446
static const value_string h225_T_billingMode_vals[] = {
3447
  {   0, "credit" },
3448
  {   1, "debit" },
3449
  { 0, NULL }
3450
};
3451
3452
static const per_choice_t T_billingMode_choice[] = {
3453
  {   0, &hf_h225_credit         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3454
  {   1, &hf_h225_debit          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3455
  { 0, NULL, 0, NULL }
3456
};
3457
3458
static unsigned
3459
1
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_) {
3460
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3461
1
                                 ett_h225_T_billingMode, T_billingMode_choice,
3462
1
                                 NULL);
3463
3464
1
  return offset;
3465
1
}
3466
3467
3468
3469
static unsigned
3470
162
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_) {
3471
162
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3472
162
                                                            1U, 4294967295U, NULL, false);
3473
3474
162
  return offset;
3475
162
}
3476
3477
3478
static const value_string h225_CallCreditServiceControl_callStartingPoint_vals[] = {
3479
  {   0, "alerting" },
3480
  {   1, "connect" },
3481
  { 0, NULL }
3482
};
3483
3484
static const per_choice_t CallCreditServiceControl_callStartingPoint_choice[] = {
3485
  {   0, &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3486
  {   1, &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3487
  { 0, NULL, 0, NULL }
3488
};
3489
3490
static unsigned
3491
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_) {
3492
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3493
0
                                 ett_h225_CallCreditServiceControl_callStartingPoint, CallCreditServiceControl_callStartingPoint_choice,
3494
0
                                 NULL);
3495
3496
0
  return offset;
3497
0
}
3498
3499
3500
static const per_sequence_t CallCreditServiceControl_sequence[] = {
3501
  { &hf_h225_amountString   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BMPString_SIZE_1_512 },
3502
  { &hf_h225_billingMode    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_billingMode },
3503
  { &hf_h225_callDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_4294967295 },
3504
  { &hf_h225_enforceCallDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
3505
  { &hf_h225_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCreditServiceControl_callStartingPoint },
3506
  { NULL, 0, 0, NULL }
3507
};
3508
3509
static unsigned
3510
2
dissect_h225_CallCreditServiceControl(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3511
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3512
2
                                   ett_h225_CallCreditServiceControl, CallCreditServiceControl_sequence);
3513
3514
2
  return offset;
3515
2
}
3516
3517
3518
static const value_string h225_ServiceControlDescriptor_vals[] = {
3519
  {   0, "url" },
3520
  {   1, "signal" },
3521
  {   2, "nonStandard" },
3522
  {   3, "callCreditServiceControl" },
3523
  { 0, NULL }
3524
};
3525
3526
static const per_choice_t ServiceControlDescriptor_choice[] = {
3527
  {   0, &hf_h225_url            , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String_SIZE_0_512 },
3528
  {   1, &hf_h225_signal         , ASN1_EXTENSION_ROOT    , dissect_h225_H248SignalsDescriptor },
3529
  {   2, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3530
  {   3, &hf_h225_callCreditServiceControl, ASN1_EXTENSION_ROOT    , dissect_h225_CallCreditServiceControl },
3531
  { 0, NULL, 0, NULL }
3532
};
3533
3534
static unsigned
3535
24
dissect_h225_ServiceControlDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3536
24
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3537
24
                                 ett_h225_ServiceControlDescriptor, ServiceControlDescriptor_choice,
3538
24
                                 NULL);
3539
3540
24
  return offset;
3541
24
}
3542
3543
3544
static const value_string h225_ServiceControlSession_reason_vals[] = {
3545
  {   0, "open" },
3546
  {   1, "refresh" },
3547
  {   2, "close" },
3548
  { 0, NULL }
3549
};
3550
3551
static const per_choice_t ServiceControlSession_reason_choice[] = {
3552
  {   0, &hf_h225_open           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3553
  {   1, &hf_h225_refresh        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3554
  {   2, &hf_h225_close          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3555
  { 0, NULL, 0, NULL }
3556
};
3557
3558
static unsigned
3559
118
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_) {
3560
118
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3561
118
                                 ett_h225_ServiceControlSession_reason, ServiceControlSession_reason_choice,
3562
118
                                 NULL);
3563
3564
118
  return offset;
3565
118
}
3566
3567
3568
static const per_sequence_t ServiceControlSession_sequence[] = {
3569
  { &hf_h225_sessionId_0_255, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
3570
  { &hf_h225_contents       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ServiceControlDescriptor },
3571
  { &hf_h225_reason         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession_reason },
3572
  { NULL, 0, 0, NULL }
3573
};
3574
3575
unsigned
3576
126
dissect_h225_ServiceControlSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3577
126
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3578
126
                                   ett_h225_ServiceControlSession, ServiceControlSession_sequence);
3579
3580
126
  return offset;
3581
126
}
3582
3583
3584
static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
3585
  { &hf_h225_serviceControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
3586
};
3587
3588
static unsigned
3589
18
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_) {
3590
18
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3591
18
                                      ett_h225_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
3592
3593
18
  return offset;
3594
18
}
3595
3596
3597
3598
static unsigned
3599
801
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_) {
3600
801
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3601
801
                                                            0U, 4294967295U, NULL, false);
3602
3603
801
  return offset;
3604
801
}
3605
3606
3607
3608
static unsigned
3609
44
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_) {
3610
44
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3611
44
                                          1, 128, false,
3612
44
                                          NULL);
3613
3614
44
  return offset;
3615
44
}
3616
3617
3618
3619
static unsigned
3620
1
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_) {
3621
1
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3622
1
                                       3, 4, false, NULL);
3623
3624
1
  return offset;
3625
1
}
3626
3627
3628
static const per_sequence_t CarrierInfo_sequence[] = {
3629
  { &hf_h225_carrierIdentificationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_3_4 },
3630
  { &hf_h225_carrierName    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3631
  { NULL, 0, 0, NULL }
3632
};
3633
3634
static unsigned
3635
8
dissect_h225_CarrierInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3636
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3637
8
                                   ett_h225_CarrierInfo, CarrierInfo_sequence);
3638
3639
8
  return offset;
3640
8
}
3641
3642
3643
static const per_sequence_t CallsAvailable_sequence[] = {
3644
  { &hf_h225_calls          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_4294967295 },
3645
  { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3646
  { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3647
  { NULL, 0, 0, NULL }
3648
};
3649
3650
static unsigned
3651
801
dissect_h225_CallsAvailable(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3652
801
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3653
801
                                   ett_h225_CallsAvailable, CallsAvailable_sequence);
3654
3655
801
  return offset;
3656
801
}
3657
3658
3659
static const per_sequence_t SEQUENCE_OF_CallsAvailable_sequence_of[1] = {
3660
  { &hf_h225_voiceGwCallsAvailable_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallsAvailable },
3661
};
3662
3663
static unsigned
3664
56
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_) {
3665
56
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3666
56
                                      ett_h225_SEQUENCE_OF_CallsAvailable, SEQUENCE_OF_CallsAvailable_sequence_of);
3667
3668
56
  return offset;
3669
56
}
3670
3671
3672
static const per_sequence_t CallCapacityInfo_sequence[] = {
3673
  { &hf_h225_voiceGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3674
  { &hf_h225_h310GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3675
  { &hf_h225_h320GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3676
  { &hf_h225_h321GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3677
  { &hf_h225_h322GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3678
  { &hf_h225_h323GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3679
  { &hf_h225_h324GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3680
  { &hf_h225_t120OnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3681
  { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3682
  { &hf_h225_terminalCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3683
  { &hf_h225_mcuCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3684
  { &hf_h225_sipGwCallsAvailable, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3685
  { NULL, 0, 0, NULL }
3686
};
3687
3688
static unsigned
3689
30
dissect_h225_CallCapacityInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3690
30
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3691
30
                                   ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
3692
3693
30
  return offset;
3694
30
}
3695
3696
3697
static const per_sequence_t CallCapacity_sequence[] = {
3698
  { &hf_h225_maximumCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3699
  { &hf_h225_currentCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3700
  { NULL, 0, 0, NULL }
3701
};
3702
3703
static unsigned
3704
28
dissect_h225_CallCapacity(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3705
28
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3706
28
                                   ett_h225_CallCapacity, CallCapacity_sequence);
3707
3708
28
  return offset;
3709
28
}
3710
3711
3712
3713
static unsigned
3714
124
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_) {
3715
124
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3716
124
                                       2, 4, false, NULL);
3717
3718
124
  return offset;
3719
124
}
3720
3721
3722
static const per_sequence_t T_cic_2_4_sequence_of[1] = {
3723
  { &hf_h225_cic_2_4_item   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_4 },
3724
};
3725
3726
static unsigned
3727
8
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_) {
3728
8
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3729
8
                                      ett_h225_T_cic_2_4, T_cic_2_4_sequence_of);
3730
3731
8
  return offset;
3732
8
}
3733
3734
3735
3736
static unsigned
3737
2
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_) {
3738
2
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3739
2
                                       2, 5, false, NULL);
3740
3741
2
  return offset;
3742
2
}
3743
3744
3745
static const per_sequence_t CicInfo_sequence[] = {
3746
  { &hf_h225_cic_2_4        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_cic_2_4 },
3747
  { &hf_h225_pointCode      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_5 },
3748
  { NULL, 0, 0, NULL }
3749
};
3750
3751
static unsigned
3752
8
dissect_h225_CicInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3753
8
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3754
8
                                   ett_h225_CicInfo, CicInfo_sequence);
3755
3756
8
  return offset;
3757
8
}
3758
3759
3760
static const per_sequence_t T_member_sequence_of[1] = {
3761
  { &hf_h225_member_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3762
};
3763
3764
static unsigned
3765
2
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_) {
3766
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3767
2
                                      ett_h225_T_member, T_member_sequence_of);
3768
3769
2
  return offset;
3770
2
}
3771
3772
3773
static const per_sequence_t GroupID_sequence[] = {
3774
  { &hf_h225_member         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_member },
3775
  { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_128 },
3776
  { NULL, 0, 0, NULL }
3777
};
3778
3779
static unsigned
3780
3
dissect_h225_GroupID(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3781
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3782
3
                                   ett_h225_GroupID, GroupID_sequence);
3783
3784
3
  return offset;
3785
3
}
3786
3787
3788
static const per_sequence_t CircuitIdentifier_sequence[] = {
3789
  { &hf_h225_cic            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CicInfo },
3790
  { &hf_h225_group          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GroupID },
3791
  { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3792
  { NULL, 0, 0, NULL }
3793
};
3794
3795
unsigned
3796
13
dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3797
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3798
13
                                   ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
3799
3800
13
  return offset;
3801
13
}
3802
3803
3804
3805
static unsigned
3806
1.08k
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_) {
3807
1.08k
  uint32_t value_int = (uint32_t)-1;
3808
1.08k
  gef_ctx_t *gefx;
3809
3810
1.08k
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3811
1.08k
                                                            0U, 16383U, &value_int, true);
3812
3813
1.08k
  gefx = gef_ctx_get(actx->private_data);
3814
1.08k
  if (gefx) gefx->id = wmem_strdup_printf(actx->pinfo->pool, "%u", value_int);
3815
3816
1.08k
  return offset;
3817
1.08k
}
3818
3819
3820
3821
static unsigned
3822
60
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_) {
3823
60
  const char *oid_str = NULL;
3824
60
  gef_ctx_t *gefx;
3825
3826
60
  offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &oid_str);
3827
3828
60
  gefx = gef_ctx_get(actx->private_data);
3829
60
  if (gefx) gefx->id = oid_str;
3830
3831
60
  return offset;
3832
60
}
3833
3834
3835
const value_string h225_GenericIdentifier_vals[] = {
3836
  {   0, "standard" },
3837
  {   1, "oid" },
3838
  {   2, "nonStandard" },
3839
  { 0, NULL }
3840
};
3841
3842
static const per_choice_t GenericIdentifier_choice[] = {
3843
  {   0, &hf_h225_standard       , ASN1_EXTENSION_ROOT    , dissect_h225_T_standard },
3844
  {   1, &hf_h225_oid            , ASN1_EXTENSION_ROOT    , dissect_h225_T_oid },
3845
  {   2, &hf_h225_genericIdentifier_nonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_GloballyUniqueID },
3846
  { 0, NULL, 0, NULL }
3847
};
3848
3849
unsigned
3850
1.41k
dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3851
1.41k
  gef_ctx_t *gefx;
3852
1.41k
  proto_item* ti;
3853
1.41k
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3854
1.41k
                                 ett_h225_GenericIdentifier, GenericIdentifier_choice,
3855
1.41k
                                 NULL);
3856
3857
1.41k
  gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
3858
1.41k
  gefx = gef_ctx_get(actx->private_data);
3859
1.41k
  if (gefx) {
3860
1.37k
    ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3861
1.37k
  proto_item_set_hidden(ti);
3862
1.37k
    dissector_try_string_with_data(gef_name_dissector_table, gefx->key, tvb_new_subset_length(tvb, offset>>3, 0), actx->pinfo, tree, false, actx);
3863
1.37k
  }
3864
1.41k
  actx->private_data = gefx;  /* subdissector could overwrite it */
3865
1.41k
  return offset;
3866
1.41k
}
3867
3868
3869
3870
static unsigned
3871
43
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_) {
3872
43
  tvbuff_t *value_tvb;
3873
43
  gef_ctx_t *gefx;
3874
43
  proto_item* ti;
3875
3876
43
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3877
43
                                       NO_BOUND, NO_BOUND, false, &value_tvb);
3878
3879
43
  gefx = gef_ctx_get(actx->private_data);
3880
43
  if (gefx) {
3881
42
    ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3882
42
  proto_item_set_hidden(ti);
3883
42
    dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3884
42
  }
3885
3886
43
  return offset;
3887
43
}
3888
3889
3890
3891
static unsigned
3892
3
dissect_h225_IA5String(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3893
3
  offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3894
3
                                          NO_BOUND, NO_BOUND, false,
3895
3
                                          NULL);
3896
3897
3
  return offset;
3898
3
}
3899
3900
3901
3902
static unsigned
3903
2
dissect_h225_BMPString(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3904
2
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3905
2
                                          NO_BOUND, NO_BOUND, false);
3906
3907
2
  return offset;
3908
2
}
3909
3910
3911
static const per_sequence_t SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of[1] = {
3912
  { &hf_h225_parameters_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_EnumeratedParameter },
3913
};
3914
3915
static unsigned
3916
88
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_) {
3917
88
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3918
88
                                                  ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter, SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of,
3919
88
                                                  1, 512, false);
3920
3921
88
  return offset;
3922
88
}
3923
3924
3925
static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of[1] = {
3926
  { &hf_h225_nested_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
3927
};
3928
3929
static unsigned
3930
2
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_) {
3931
2
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3932
2
                                                  ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData, SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of,
3933
2
                                                  1, 16, false);
3934
3935
2
  return offset;
3936
2
}
3937
3938
3939
static const value_string h225_Content_vals[] = {
3940
  {   0, "raw" },
3941
  {   1, "text" },
3942
  {   2, "unicode" },
3943
  {   3, "bool" },
3944
  {   4, "number8" },
3945
  {   5, "number16" },
3946
  {   6, "number32" },
3947
  {   7, "id" },
3948
  {   8, "alias" },
3949
  {   9, "transport" },
3950
  {  10, "compound" },
3951
  {  11, "nested" },
3952
  { 0, NULL }
3953
};
3954
3955
static const per_choice_t Content_choice[] = {
3956
  {   0, &hf_h225_raw            , ASN1_EXTENSION_ROOT    , dissect_h225_T_raw },
3957
  {   1, &hf_h225_text           , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String },
3958
  {   2, &hf_h225_unicode        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString },
3959
  {   3, &hf_h225_bool           , ASN1_EXTENSION_ROOT    , dissect_h225_BOOLEAN },
3960
  {   4, &hf_h225_number8        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_255 },
3961
  {   5, &hf_h225_number16       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
3962
  {   6, &hf_h225_number32       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_4294967295 },
3963
  {   7, &hf_h225_id             , ASN1_EXTENSION_ROOT    , dissect_h225_GenericIdentifier },
3964
  {   8, &hf_h225_alias          , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
3965
  {   9, &hf_h225_transport      , ASN1_EXTENSION_ROOT    , dissect_h225_TransportAddress },
3966
  {  10, &hf_h225_compound       , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
3967
  {  11, &hf_h225_nested         , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData },
3968
  { 0, NULL, 0, NULL }
3969
};
3970
3971
static unsigned
3972
70
dissect_h225_Content(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3973
70
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3974
70
                                 ett_h225_Content, Content_choice,
3975
70
                                 NULL);
3976
3977
70
  return offset;
3978
70
}
3979
3980
3981
static const per_sequence_t EnumeratedParameter_sequence[] = {
3982
  { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
3983
  { &hf_h225_content        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_Content },
3984
  { NULL, 0, 0, NULL }
3985
};
3986
3987
static unsigned
3988
741
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3989
  // EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter
3990
741
  actx->pinfo->dissection_depth += 3;
3991
741
  increment_dissection_depth(actx->pinfo);
3992
741
  gef_ctx_t *parent_gefx;
3993
3994
741
  parent_gefx = gef_ctx_get(actx->private_data);
3995
741
  actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL);
3996
741
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3997
741
                                   ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
3998
3999
741
  actx->pinfo->dissection_depth -= 3;
4000
741
  decrement_dissection_depth(actx->pinfo);
4001
741
  actx->private_data = parent_gefx;
4002
741
  return offset;
4003
741
}
4004
4005
4006
static const per_sequence_t GenericData_sequence[] = {
4007
  { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
4008
  { &hf_h225_parameters     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
4009
  { NULL, 0, 0, NULL }
4010
};
4011
4012
unsigned
4013
690
dissect_h225_GenericData(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4014
  // GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData
4015
690
  actx->pinfo->dissection_depth += 5;
4016
690
  increment_dissection_depth(actx->pinfo);
4017
690
  void *priv_data = actx->private_data;
4018
690
  gef_ctx_t *gefx;
4019
4020
  /* check if not inherited from FeatureDescriptor */
4021
690
  gefx = gef_ctx_get(actx->private_data);
4022
690
  if (!gefx) {
4023
560
    gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData");
4024
560
    actx->private_data = gefx;
4025
560
  }
4026
690
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4027
690
                                   ett_h225_GenericData, GenericData_sequence);
4028
4029
690
  actx->pinfo->dissection_depth -= 5;
4030
690
  decrement_dissection_depth(actx->pinfo);
4031
690
  actx->private_data = priv_data;
4032
690
  return offset;
4033
690
}
4034
4035
4036
static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
4037
  { &hf_h225_genericData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
4038
};
4039
4040
static unsigned
4041
64
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_) {
4042
64
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4043
64
                                      ett_h225_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
4044
4045
64
  return offset;
4046
64
}
4047
4048
4049
static const per_sequence_t CircuitInfo_sequence[] = {
4050
  { &hf_h225_sourceCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4051
  { &hf_h225_destinationCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4052
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
4053
  { NULL, 0, 0, NULL }
4054
};
4055
4056
unsigned
4057
29
dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4058
29
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4059
29
                                   ett_h225_CircuitInfo, CircuitInfo_sequence);
4060
4061
29
  return offset;
4062
29
}
4063
4064
4065
4066
static unsigned
4067
128
dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4068
128
  void *priv_data = actx->private_data;
4069
128
  actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor");
4070
128
  offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
4071
4072
128
  actx->private_data = priv_data;
4073
128
  return offset;
4074
128
}
4075
4076
4077
static const per_sequence_t SEQUENCE_OF_FeatureDescriptor_sequence_of[1] = {
4078
  { &hf_h225_neededFeatures_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FeatureDescriptor },
4079
};
4080
4081
static unsigned
4082
11
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_) {
4083
11
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4084
11
                                      ett_h225_SEQUENCE_OF_FeatureDescriptor, SEQUENCE_OF_FeatureDescriptor_sequence_of);
4085
4086
11
  return offset;
4087
11
}
4088
4089
4090
4091
static unsigned
4092
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_) {
4093
0
  tvbuff_t *h245_tvb = NULL;
4094
4095
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4096
0
                                       NO_BOUND, NO_BOUND, false, &h245_tvb);
4097
4098
0
  next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4099
4100
0
  return offset;
4101
0
}
4102
4103
4104
static const per_sequence_t ParallelH245Control_sequence_of[1] = {
4105
  { &hf_h225_ParallelH245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ParallelH245Control_item },
4106
};
4107
4108
static unsigned
4109
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_) {
4110
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4111
0
                                      ett_h225_ParallelH245Control, ParallelH245Control_sequence_of);
4112
4113
0
  return offset;
4114
0
}
4115
4116
4117
static const per_sequence_t ExtendedAliasAddress_sequence[] = {
4118
  { &hf_h225_extAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
4119
  { &hf_h225_presentationIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4120
  { &hf_h225_screeningIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4121
  { NULL, 0, 0, NULL }
4122
};
4123
4124
static unsigned
4125
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_) {
4126
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4127
0
                                   ett_h225_ExtendedAliasAddress, ExtendedAliasAddress_sequence);
4128
4129
0
  return offset;
4130
0
}
4131
4132
4133
static const per_sequence_t SEQUENCE_OF_ExtendedAliasAddress_sequence_of[1] = {
4134
  { &hf_h225_additionalSourceAddresses_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ExtendedAliasAddress },
4135
};
4136
4137
static unsigned
4138
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_) {
4139
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4140
0
                                      ett_h225_SEQUENCE_OF_ExtendedAliasAddress, SEQUENCE_OF_ExtendedAliasAddress_sequence_of);
4141
4142
0
  return offset;
4143
0
}
4144
4145
4146
4147
static unsigned
4148
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_) {
4149
0
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4150
0
                                                            1U, 31U, NULL, false);
4151
4152
0
  return offset;
4153
0
}
4154
4155
4156
4157
static unsigned
4158
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_) {
4159
0
  offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
4160
0
                                          1, 80, false);
4161
4162
0
  return offset;
4163
0
}
4164
4165
4166
static const per_sequence_t DisplayName_sequence[] = {
4167
  { &hf_h225_displayName_language, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h225_IA5String },
4168
  { &hf_h225_name           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BMPString_SIZE_1_80 },
4169
  { NULL, 0, 0, NULL }
4170
};
4171
4172
static unsigned
4173
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_) {
4174
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4175
0
                                   ett_h225_DisplayName, DisplayName_sequence);
4176
4177
0
  return offset;
4178
0
}
4179
4180
4181
static const per_sequence_t SEQUENCE_OF_DisplayName_sequence_of[1] = {
4182
  { &hf_h225_displayName_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DisplayName },
4183
};
4184
4185
static unsigned
4186
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_) {
4187
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4188
0
                                      ett_h225_SEQUENCE_OF_DisplayName, SEQUENCE_OF_DisplayName_sequence_of);
4189
4190
0
  return offset;
4191
0
}
4192
4193
4194
static const per_sequence_t Setup_UUIE_sequence[] = {
4195
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4196
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4197
  { &hf_h225_sourceAddress  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4198
  { &hf_h225_setup_UUIE_sourceInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4199
  { &hf_h225_destinationAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4200
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4201
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4202
  { &hf_h225_destExtraCRV   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallReferenceValue },
4203
  { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4204
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4205
  { &hf_h225_conferenceGoal , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_conferenceGoal },
4206
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
4207
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
4208
  { &hf_h225_sourceCallSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4209
  { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4210
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4211
  { &hf_h225_h245SecurityCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H245Security },
4212
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4213
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4214
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4215
  { &hf_h225_mediaWaitForConnect, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4216
  { &hf_h225_canOverlapSend , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4217
  { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
4218
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4219
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4220
  { &hf_h225_connectionParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_connectionParameters },
4221
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4222
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4223
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4224
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4225
  { &hf_h225_symmetricOperationRequired, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4226
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4227
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4228
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
4229
  { &hf_h225_neededFeatures , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4230
  { &hf_h225_desiredFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4231
  { &hf_h225_supportedFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4232
  { &hf_h225_parallelH245Control, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ParallelH245Control },
4233
  { &hf_h225_additionalSourceAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ExtendedAliasAddress },
4234
  { &hf_h225_hopCount_1_31  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_31 },
4235
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4236
  { NULL, 0, 0, NULL }
4237
};
4238
4239
static unsigned
4240
22
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_) {
4241
22
  h225_packet_info* h225_pi;
4242
22
  contains_faststart = false;
4243
22
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4244
22
                                   ett_h225_Setup_UUIE, Setup_UUIE_sequence);
4245
4246
  /* Add to packet info */
4247
22
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4248
22
  h225_set_cs_type(actx->pinfo, h225_pi, H225_SETUP, contains_faststart);
4249
22
  return offset;
4250
22
}
4251
4252
4253
static const per_sequence_t FeatureSet_sequence[] = {
4254
  { &hf_h225_replacementFeatureSet, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4255
  { &hf_h225_neededFeatures , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4256
  { &hf_h225_desiredFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4257
  { &hf_h225_supportedFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4258
  { NULL, 0, 0, NULL }
4259
};
4260
4261
unsigned
4262
13
dissect_h225_FeatureSet(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4263
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4264
13
                                   ett_h225_FeatureSet, FeatureSet_sequence);
4265
4266
13
  return offset;
4267
13
}
4268
4269
4270
static const per_sequence_t CallProceeding_UUIE_sequence[] = {
4271
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4272
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4273
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4274
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4275
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4276
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4277
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4278
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4279
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4280
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4281
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4282
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4283
  { NULL, 0, 0, NULL }
4284
};
4285
4286
static unsigned
4287
40
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_) {
4288
40
  h225_packet_info* h225_pi;
4289
40
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4290
40
                                   ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
4291
4292
  /* Add to packet info */
4293
40
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4294
40
  h225_set_cs_type(actx->pinfo, h225_pi, H225_CALL_PROCEDING, contains_faststart);
4295
40
  return offset;
4296
40
}
4297
4298
4299
static const per_sequence_t Connect_UUIE_sequence[] = {
4300
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4301
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4302
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4303
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4304
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4305
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4306
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4307
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4308
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4309
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4310
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4311
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4312
  { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4313
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4314
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4315
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4316
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4317
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4318
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4319
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4320
  { NULL, 0, 0, NULL }
4321
};
4322
4323
static unsigned
4324
1
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_) {
4325
1
  h225_packet_info* h225_pi;
4326
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4327
1
                                   ett_h225_Connect_UUIE, Connect_UUIE_sequence);
4328
4329
  /* Add to packet info */
4330
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4331
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_CONNECT, contains_faststart);
4332
1
  return offset;
4333
1
}
4334
4335
4336
static const per_sequence_t Alerting_UUIE_sequence[] = {
4337
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4338
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4339
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4340
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4341
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4342
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4343
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4344
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4345
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4346
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4347
  { &hf_h225_alertingAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4348
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4349
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4350
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4351
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4352
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4353
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4354
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4355
  { NULL, 0, 0, NULL }
4356
};
4357
4358
static unsigned
4359
6
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_) {
4360
6
  h225_packet_info* h225_pi;
4361
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4362
6
                                   ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
4363
4364
  /* Add to packet info */
4365
6
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4366
6
  h225_set_cs_type(actx->pinfo, h225_pi, H225_ALERTING, contains_faststart);
4367
6
  return offset;
4368
6
}
4369
4370
4371
static const per_sequence_t Information_UUIE_sequence[] = {
4372
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4373
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4374
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4375
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4376
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4377
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4378
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4379
  { NULL, 0, 0, NULL }
4380
};
4381
4382
static unsigned
4383
1
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_) {
4384
1
  h225_packet_info* h225_pi;
4385
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4386
1
                                   ett_h225_Information_UUIE, Information_UUIE_sequence);
4387
4388
  /* Add to packet info */
4389
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4390
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_INFORMATION, false);
4391
1
  return offset;
4392
1
}
4393
4394
4395
static const value_string h225_SecurityErrors_vals[] = {
4396
  {   0, "securityWrongSyncTime" },
4397
  {   1, "securityReplay" },
4398
  {   2, "securityWrongGeneralID" },
4399
  {   3, "securityWrongSendersID" },
4400
  {   4, "securityIntegrityFailed" },
4401
  {   5, "securityWrongOID" },
4402
  {   6, "securityDHmismatch" },
4403
  {   7, "securityCertificateExpired" },
4404
  {   8, "securityCertificateDateInvalid" },
4405
  {   9, "securityCertificateRevoked" },
4406
  {  10, "securityCertificateNotReadable" },
4407
  {  11, "securityCertificateSignatureInvalid" },
4408
  {  12, "securityCertificateMissing" },
4409
  {  13, "securityCertificateIncomplete" },
4410
  {  14, "securityUnsupportedCertificateAlgOID" },
4411
  {  15, "securityUnknownCA" },
4412
  { 0, NULL }
4413
};
4414
4415
static const per_choice_t SecurityErrors_choice[] = {
4416
  {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4417
  {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4418
  {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4419
  {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4420
  {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4421
  {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4422
  {   6, &hf_h225_securityDHmismatch, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4423
  {   7, &hf_h225_securityCertificateExpired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4424
  {   8, &hf_h225_securityCertificateDateInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4425
  {   9, &hf_h225_securityCertificateRevoked, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4426
  {  10, &hf_h225_securityCertificateNotReadable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4427
  {  11, &hf_h225_securityCertificateSignatureInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4428
  {  12, &hf_h225_securityCertificateMissing, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4429
  {  13, &hf_h225_securityCertificateIncomplete, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4430
  {  14, &hf_h225_securityUnsupportedCertificateAlgOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4431
  {  15, &hf_h225_securityUnknownCA, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4432
  { 0, NULL, 0, NULL }
4433
};
4434
4435
static unsigned
4436
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_) {
4437
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4438
0
                                 ett_h225_SecurityErrors, SecurityErrors_choice,
4439
0
                                 NULL);
4440
4441
0
  return offset;
4442
0
}
4443
4444
4445
const value_string h225_ReleaseCompleteReason_vals[] = {
4446
  {   0, "noBandwidth" },
4447
  {   1, "gatekeeperResources" },
4448
  {   2, "unreachableDestination" },
4449
  {   3, "destinationRejection" },
4450
  {   4, "invalidRevision" },
4451
  {   5, "noPermission" },
4452
  {   6, "unreachableGatekeeper" },
4453
  {   7, "gatewayResources" },
4454
  {   8, "badFormatAddress" },
4455
  {   9, "adaptiveBusy" },
4456
  {  10, "inConf" },
4457
  {  11, "undefinedReason" },
4458
  {  12, "facilityCallDeflection" },
4459
  {  13, "securityDenied" },
4460
  {  14, "calledPartyNotRegistered" },
4461
  {  15, "callerNotRegistered" },
4462
  {  16, "newConnectionNeeded" },
4463
  {  17, "nonStandardReason" },
4464
  {  18, "replaceWithConferenceInvite" },
4465
  {  19, "genericDataReason" },
4466
  {  20, "neededFeatureNotSupported" },
4467
  {  21, "tunnelledSignallingRejected" },
4468
  {  22, "invalidCID" },
4469
  {  23, "securityError" },
4470
  {  24, "hopCountExceeded" },
4471
  { 0, NULL }
4472
};
4473
4474
static const per_choice_t ReleaseCompleteReason_choice[] = {
4475
  {   0, &hf_h225_noBandwidth    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4476
  {   1, &hf_h225_gatekeeperResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4477
  {   2, &hf_h225_unreachableDestination, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4478
  {   3, &hf_h225_destinationRejection, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4479
  {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4480
  {   5, &hf_h225_noPermission   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4481
  {   6, &hf_h225_unreachableGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4482
  {   7, &hf_h225_gatewayResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4483
  {   8, &hf_h225_badFormatAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4484
  {   9, &hf_h225_adaptiveBusy   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4485
  {  10, &hf_h225_inConf         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4486
  {  11, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4487
  {  12, &hf_h225_facilityCallDeflection, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4488
  {  13, &hf_h225_securityDenied , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4489
  {  14, &hf_h225_calledPartyNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4490
  {  15, &hf_h225_callerNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4491
  {  16, &hf_h225_newConnectionNeeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4492
  {  17, &hf_h225_nonStandardReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardParameter },
4493
  {  18, &hf_h225_replaceWithConferenceInvite, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ConferenceIdentifier },
4494
  {  19, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4495
  {  20, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4496
  {  21, &hf_h225_tunnelledSignallingRejected, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4497
  {  22, &hf_h225_invalidCID     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4498
  {  23, &hf_h225_rLC_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
4499
  {  24, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4500
  { 0, NULL, 0, NULL }
4501
};
4502
4503
unsigned
4504
7
dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4505
7
  int32_t value;
4506
7
  h225_packet_info* h225_pi;
4507
7
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4508
4509
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4510
7
                                 ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice,
4511
7
                                 &value);
4512
4513
7
  if (h225_pi != NULL) {
4514
2
    h225_pi->reason = value;
4515
2
  }
4516
4517
7
  return offset;
4518
7
}
4519
4520
4521
static const per_sequence_t ReleaseComplete_UUIE_sequence[] = {
4522
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4523
  { &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ReleaseCompleteReason },
4524
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4525
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4526
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4527
  { &hf_h225_busyAddress    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4528
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4529
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4530
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4531
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4532
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4533
  { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4534
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4535
  { NULL, 0, 0, NULL }
4536
};
4537
4538
static unsigned
4539
4
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_) {
4540
4
  h225_packet_info* h225_pi;
4541
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4542
4
                                   ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
4543
4544
  /* Add to packet info */
4545
4
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4546
4
  h225_set_cs_type(actx->pinfo, h225_pi, H225_RELEASE_COMPLET, false);
4547
4
  return offset;
4548
4
}
4549
4550
4551
const value_string FacilityReason_vals[] = {
4552
  {   0, "routeCallToGatekeeper" },
4553
  {   1, "callForwarded" },
4554
  {   2, "routeCallToMC" },
4555
  {   3, "undefinedReason" },
4556
  {   4, "conferenceListChoice" },
4557
  {   5, "startH245" },
4558
  {   6, "noH245" },
4559
  {   7, "newTokens" },
4560
  {   8, "featureSetUpdate" },
4561
  {   9, "forwardedElements" },
4562
  {  10, "transportedInformation" },
4563
  { 0, NULL }
4564
};
4565
4566
static const per_choice_t FacilityReason_choice[] = {
4567
  {   0, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4568
  {   1, &hf_h225_callForwarded  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4569
  {   2, &hf_h225_routeCallToMC  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4570
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4571
  {   4, &hf_h225_conferenceListChoice, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4572
  {   5, &hf_h225_startH245      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4573
  {   6, &hf_h225_noH245         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4574
  {   7, &hf_h225_newTokens      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4575
  {   8, &hf_h225_featureSetUpdate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4576
  {   9, &hf_h225_forwardedElements, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4577
  {  10, &hf_h225_transportedInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4578
  { 0, NULL, 0, NULL }
4579
};
4580
4581
static unsigned
4582
1
dissect_h225_FacilityReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4583
1
  int32_t value;
4584
1
  h225_packet_info* h225_pi;
4585
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4586
4587
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4588
1
                                 ett_h225_FacilityReason, FacilityReason_choice,
4589
1
                                 &value);
4590
4591
1
  if (h225_pi != NULL) {
4592
1
    h225_pi->reason = value;
4593
1
  }
4594
4595
1
  return offset;
4596
1
}
4597
4598
4599
static const per_sequence_t ConferenceList_sequence[] = {
4600
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4601
  { &hf_h225_conferenceAlias, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4602
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
4603
  { NULL, 0, 0, NULL }
4604
};
4605
4606
static unsigned
4607
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_) {
4608
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4609
0
                                   ett_h225_ConferenceList, ConferenceList_sequence);
4610
4611
0
  return offset;
4612
0
}
4613
4614
4615
static const per_sequence_t SEQUENCE_OF_ConferenceList_sequence_of[1] = {
4616
  { &hf_h225_conferences_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceList },
4617
};
4618
4619
static unsigned
4620
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_) {
4621
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4622
0
                                      ett_h225_SEQUENCE_OF_ConferenceList, SEQUENCE_OF_ConferenceList_sequence_of);
4623
4624
0
  return offset;
4625
0
}
4626
4627
4628
static const per_sequence_t Facility_UUIE_sequence[] = {
4629
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4630
  { &hf_h225_alternativeAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4631
  { &hf_h225_alternativeAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4632
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4633
  { &hf_h225_facilityReason , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_FacilityReason },
4634
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4635
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4636
  { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4637
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4638
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4639
  { &hf_h225_conferences    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ConferenceList },
4640
  { &hf_h225_h245Address    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4641
  { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4642
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4643
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4644
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4645
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4646
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4647
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4648
  { &hf_h225_uUIE_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4649
  { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4650
  { NULL, 0, 0, NULL }
4651
};
4652
4653
static unsigned
4654
6
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_) {
4655
6
  h225_packet_info* h225_pi;
4656
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4657
6
                                   ett_h225_Facility_UUIE, Facility_UUIE_sequence);
4658
4659
  /* Add to packet info */
4660
6
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4661
6
  h225_set_cs_type(actx->pinfo, h225_pi, H225_FACILITY, false);
4662
6
  return offset;
4663
6
}
4664
4665
4666
static const per_sequence_t Progress_UUIE_sequence[] = {
4667
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4668
  { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4669
  { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4670
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4671
  { &hf_h225_h245SecurityMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245Security },
4672
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4673
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4674
  { &hf_h225_fastStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FastStart },
4675
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4676
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4677
  { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4678
  { NULL, 0, 0, NULL }
4679
};
4680
4681
static unsigned
4682
6
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_) {
4683
6
  h225_packet_info* h225_pi;
4684
6
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4685
6
                                   ett_h225_Progress_UUIE, Progress_UUIE_sequence);
4686
4687
  /* Add to packet info */
4688
6
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4689
6
  h225_set_cs_type(actx->pinfo, h225_pi, H225_PROGRESS, contains_faststart);
4690
6
  return offset;
4691
6
}
4692
4693
4694
4695
static unsigned
4696
0
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_) {
4697
0
  h225_packet_info* h225_pi;
4698
0
  offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
4699
4700
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4701
0
  if (h225_pi != NULL) {
4702
0
    h225_pi->cs_type = H225_EMPTY;
4703
0
  }
4704
0
  return offset;
4705
0
}
4706
4707
4708
static const per_sequence_t Status_UUIE_sequence[] = {
4709
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4710
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4711
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4712
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4713
  { NULL, 0, 0, NULL }
4714
};
4715
4716
static unsigned
4717
0
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_) {
4718
0
  h225_packet_info* h225_pi;
4719
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4720
0
                                   ett_h225_Status_UUIE, Status_UUIE_sequence);
4721
4722
  /* Add to packet info */
4723
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4724
0
  h225_set_cs_type(actx->pinfo, h225_pi, H225_STATUS, false);
4725
0
  return offset;
4726
0
}
4727
4728
4729
static const per_sequence_t StatusInquiry_UUIE_sequence[] = {
4730
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4731
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4732
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4733
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4734
  { NULL, 0, 0, NULL }
4735
};
4736
4737
static unsigned
4738
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_) {
4739
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4740
0
                                   ett_h225_StatusInquiry_UUIE, StatusInquiry_UUIE_sequence);
4741
4742
0
  return offset;
4743
0
}
4744
4745
4746
static const per_sequence_t SetupAcknowledge_UUIE_sequence[] = {
4747
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4748
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4749
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4750
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4751
  { NULL, 0, 0, NULL }
4752
};
4753
4754
static unsigned
4755
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_) {
4756
1
  h225_packet_info* h225_pi;
4757
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4758
1
                                   ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
4759
4760
  /* Add to packet info */
4761
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4762
1
  h225_set_cs_type(actx->pinfo, h225_pi, H225_SETUP_ACK, false);
4763
1
  return offset;
4764
1
}
4765
4766
4767
static const per_sequence_t Notify_UUIE_sequence[] = {
4768
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4769
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4770
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4771
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4772
  { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4773
  { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4774
  { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4775
  { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4776
  { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4777
  { NULL, 0, 0, NULL }
4778
};
4779
4780
static unsigned
4781
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_) {
4782
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4783
1
                                   ett_h225_Notify_UUIE, Notify_UUIE_sequence);
4784
4785
1
  return offset;
4786
1
}
4787
4788
4789
const value_string T_h323_message_body_vals[] = {
4790
  {   0, "setup" },
4791
  {   1, "callProceeding" },
4792
  {   2, "connect" },
4793
  {   3, "alerting" },
4794
  {   4, "information" },
4795
  {   5, "releaseComplete" },
4796
  {   6, "facility" },
4797
  {   7, "progress" },
4798
  {   8, "empty" },
4799
  {   9, "status" },
4800
  {  10, "statusInquiry" },
4801
  {  11, "setupAcknowledge" },
4802
  {  12, "notify" },
4803
  { 0, NULL }
4804
};
4805
4806
static const per_choice_t T_h323_message_body_choice[] = {
4807
  {   0, &hf_h225_setup          , ASN1_EXTENSION_ROOT    , dissect_h225_Setup_UUIE },
4808
  {   1, &hf_h225_callProceeding , ASN1_EXTENSION_ROOT    , dissect_h225_CallProceeding_UUIE },
4809
  {   2, &hf_h225_connect        , ASN1_EXTENSION_ROOT    , dissect_h225_Connect_UUIE },
4810
  {   3, &hf_h225_alerting       , ASN1_EXTENSION_ROOT    , dissect_h225_Alerting_UUIE },
4811
  {   4, &hf_h225_information    , ASN1_EXTENSION_ROOT    , dissect_h225_Information_UUIE },
4812
  {   5, &hf_h225_releaseComplete, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseComplete_UUIE },
4813
  {   6, &hf_h225_facility       , ASN1_EXTENSION_ROOT    , dissect_h225_Facility_UUIE },
4814
  {   7, &hf_h225_progress       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Progress_UUIE },
4815
  {   8, &hf_h225_empty_flg      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_empty_flg },
4816
  {   9, &hf_h225_status         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Status_UUIE },
4817
  {  10, &hf_h225_statusInquiry  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_StatusInquiry_UUIE },
4818
  {  11, &hf_h225_setupAcknowledge, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SetupAcknowledge_UUIE },
4819
  {  12, &hf_h225_notify         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Notify_UUIE },
4820
  { 0, NULL, 0, NULL }
4821
};
4822
4823
static unsigned
4824
94
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_) {
4825
94
  int32_t message_body_val;
4826
94
  h225_packet_info* h225_pi;
4827
4828
94
  contains_faststart = false;
4829
94
  call_id_guid = NULL;
4830
94
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4831
94
                                 ett_h225_T_h323_message_body, T_h323_message_body_choice,
4832
94
                                 &message_body_val);
4833
4834
94
  col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %s ",
4835
94
    val_to_str_const(message_body_val, T_h323_message_body_vals, "<unknown>"));
4836
4837
94
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4838
94
  if (h225_pi != NULL) {
4839
67
    if (h225_pi->msg_type == H225_CS) {
4840
      /* Don't override msg_tag value from IRR */
4841
3
      h225_pi->msg_tag = message_body_val;
4842
3
    }
4843
4844
67
    if (call_id_guid) {
4845
6
      h225_pi->guid = *call_id_guid;
4846
6
    }
4847
67
  }
4848
4849
94
  if (contains_faststart == true )
4850
0
  {
4851
0
    col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
4852
0
  }
4853
4854
94
  col_set_fence(actx->pinfo->cinfo,COL_INFO);
4855
4856
4857
94
  return offset;
4858
94
}
4859
4860
4861
4862
static unsigned
4863
92
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_) {
4864
92
  tvbuff_t *h4501_tvb = NULL;
4865
4866
92
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4867
92
                                       NO_BOUND, NO_BOUND, false, &h4501_tvb);
4868
4869
92
  if (h4501_tvb && tvb_reported_length(h4501_tvb)) {
4870
8
    call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree);
4871
8
  }
4872
4873
92
  return offset;
4874
92
}
4875
4876
4877
static const per_sequence_t T_h4501SupplementaryService_sequence_of[1] = {
4878
  { &hf_h225_h4501SupplementaryService_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h4501SupplementaryService_item },
4879
};
4880
4881
static unsigned
4882
8
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_) {
4883
8
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4884
8
                                      ett_h225_T_h4501SupplementaryService, T_h4501SupplementaryService_sequence_of);
4885
4886
8
  return offset;
4887
8
}
4888
4889
4890
4891
static unsigned
4892
1
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_) {
4893
1
  h225_packet_info* h225_pi;
4894
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4895
1
  if (h225_pi != NULL) {
4896
1
  offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &(h225_pi->is_h245Tunneling));
4897
4898
1
  }
4899
1
  return offset;
4900
1
}
4901
4902
4903
4904
static unsigned
4905
40
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_) {
4906
40
  tvbuff_t *h245_tvb = NULL;
4907
4908
40
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4909
40
                                       NO_BOUND, NO_BOUND, false, &h245_tvb);
4910
4911
40
  next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4912
4913
40
  return offset;
4914
40
}
4915
4916
4917
static const per_sequence_t H245Control_sequence_of[1] = {
4918
  { &hf_h225_H245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Control_item },
4919
};
4920
4921
static unsigned
4922
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_) {
4923
7
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4924
7
                                      ett_h225_H245Control, H245Control_sequence_of);
4925
4926
7
  return offset;
4927
7
}
4928
4929
4930
static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
4931
  { &hf_h225_nonStandardControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
4932
};
4933
4934
static unsigned
4935
3
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_) {
4936
3
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4937
3
                                      ett_h225_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
4938
4939
3
  return offset;
4940
3
}
4941
4942
4943
static const per_sequence_t CallLinkage_sequence[] = {
4944
  { &hf_h225_globalCallId   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
4945
  { &hf_h225_threadId       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
4946
  { NULL, 0, 0, NULL }
4947
};
4948
4949
static unsigned
4950
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_) {
4951
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4952
2
                                   ett_h225_CallLinkage, CallLinkage_sequence);
4953
4954
2
  return offset;
4955
2
}
4956
4957
4958
4959
static unsigned
4960
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_) {
4961
15
  tvbuff_t *next_tvb = NULL;
4962
4963
15
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4964
15
                                       NO_BOUND, NO_BOUND, false, &next_tvb);
4965
4966
15
  next_tvb_add_handle(tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
4967
4968
15
  return offset;
4969
15
}
4970
4971
4972
static const per_sequence_t T_messageContent_sequence_of[1] = {
4973
  { &hf_h225_messageContent_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent_item },
4974
};
4975
4976
static unsigned
4977
5
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_) {
4978
5
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4979
5
                                      ett_h225_T_messageContent, T_messageContent_sequence_of);
4980
4981
5
  return offset;
4982
5
}
4983
4984
4985
static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
4986
  { &hf_h225_tunnelledProtocolID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
4987
  { &hf_h225_messageContent , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent },
4988
  { &hf_h225_tunnellingRequired, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
4989
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
4990
  { NULL, 0, 0, NULL }
4991
};
4992
4993
static unsigned
4994
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_) {
4995
5
  tp_handle = NULL;
4996
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4997
5
                                   ett_h225_T_tunnelledSignallingMessage, T_tunnelledSignallingMessage_sequence);
4998
4999
5
  return offset;
5000
5
}
5001
5002
5003
5004
static unsigned
5005
2
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_) {
5006
2
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5007
2
                                       NO_BOUND, NO_BOUND, false, NULL);
5008
5009
2
  return offset;
5010
2
}
5011
5012
5013
static const per_sequence_t StimulusControl_sequence[] = {
5014
  { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5015
  { &hf_h225_isText         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5016
  { &hf_h225_h248Message    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING },
5017
  { NULL, 0, 0, NULL }
5018
};
5019
5020
static unsigned
5021
1
dissect_h225_StimulusControl(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5022
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5023
1
                                   ett_h225_StimulusControl, StimulusControl_sequence);
5024
5025
1
  return offset;
5026
1
}
5027
5028
5029
static const per_sequence_t H323_UU_PDU_sequence[] = {
5030
  { &hf_h225_h323_message_body, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h323_message_body },
5031
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5032
  { &hf_h225_h4501SupplementaryService, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_h4501SupplementaryService },
5033
  { &hf_h225_h245Tunnelling , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_T_h245Tunnelling },
5034
  { &hf_h225_h245Control    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Control },
5035
  { &hf_h225_nonStandardControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_NonStandardParameter },
5036
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
5037
  { &hf_h225_tunnelledSignallingMessage, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_tunnelledSignallingMessage },
5038
  { &hf_h225_provisionalRespToH245Tunnelling, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5039
  { &hf_h225_stimulusControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_StimulusControl },
5040
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5041
  { NULL, 0, 0, NULL }
5042
};
5043
5044
static unsigned
5045
94
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_) {
5046
94
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5047
94
                                   ett_h225_H323_UU_PDU, H323_UU_PDU_sequence);
5048
5049
94
  return offset;
5050
94
}
5051
5052
5053
5054
static unsigned
5055
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_) {
5056
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5057
0
                                       1, 131, false, NULL);
5058
5059
0
  return offset;
5060
0
}
5061
5062
5063
static const per_sequence_t T_user_data_sequence[] = {
5064
  { &hf_h225_protocol_discriminator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
5065
  { &hf_h225_user_information, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_1_131 },
5066
  { NULL, 0, 0, NULL }
5067
};
5068
5069
static unsigned
5070
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_) {
5071
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5072
0
                                   ett_h225_T_user_data, T_user_data_sequence);
5073
5074
0
  return offset;
5075
0
}
5076
5077
5078
static const per_sequence_t H323_UserInformation_sequence[] = {
5079
  { &hf_h225_h323_uu_pdu    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
5080
  { &hf_h225_user_data      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_user_data },
5081
  { NULL, 0, 0, NULL }
5082
};
5083
5084
static unsigned
5085
12
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_) {
5086
12
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5087
12
                                   ett_h225_H323_UserInformation, H323_UserInformation_sequence);
5088
5089
12
  return offset;
5090
12
}
5091
5092
5093
static const per_sequence_t T_range_sequence[] = {
5094
  { &hf_h225_startOfRange   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5095
  { &hf_h225_endOfRange     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5096
  { NULL, 0, 0, NULL }
5097
};
5098
5099
static unsigned
5100
1
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_) {
5101
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5102
1
                                   ett_h225_T_range, T_range_sequence);
5103
5104
1
  return offset;
5105
1
}
5106
5107
5108
static const value_string h225_AddressPattern_vals[] = {
5109
  {   0, "wildcard" },
5110
  {   1, "range" },
5111
  { 0, NULL }
5112
};
5113
5114
static const per_choice_t AddressPattern_choice[] = {
5115
  {   0, &hf_h225_wildcard       , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
5116
  {   1, &hf_h225_range          , ASN1_EXTENSION_ROOT    , dissect_h225_T_range },
5117
  { 0, NULL, 0, NULL }
5118
};
5119
5120
static unsigned
5121
1
dissect_h225_AddressPattern(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5122
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5123
1
                                 ett_h225_AddressPattern, AddressPattern_choice,
5124
1
                                 NULL);
5125
5126
1
  return offset;
5127
1
}
5128
5129
5130
static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
5131
  { &hf_h225_callSignalAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5132
};
5133
5134
static unsigned
5135
130
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_) {
5136
130
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5137
130
                                      ett_h225_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
5138
5139
130
  return offset;
5140
130
}
5141
5142
5143
5144
static unsigned
5145
149
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_) {
5146
149
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5147
149
                                                            0U, 127U, NULL, false);
5148
5149
149
  return offset;
5150
149
}
5151
5152
5153
static const per_sequence_t AlternateTransportAddresses_sequence[] = {
5154
  { &hf_h225_annexE         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5155
  { &hf_h225_sctp           , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5156
  { NULL, 0, 0, NULL }
5157
};
5158
5159
unsigned
5160
1
dissect_h225_AlternateTransportAddresses(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5161
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5162
1
                                   ett_h225_AlternateTransportAddresses, AlternateTransportAddresses_sequence);
5163
5164
1
  return offset;
5165
1
}
5166
5167
5168
static const per_sequence_t Endpoint_sequence[] = {
5169
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5170
  { &hf_h225_aliasAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5171
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5172
  { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5173
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointType },
5174
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5175
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5176
  { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_0_127 },
5177
  { &hf_h225_remoteExtensionAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5178
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5179
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
5180
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
5181
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5182
  { NULL, 0, 0, NULL }
5183
};
5184
5185
static unsigned
5186
105
dissect_h225_Endpoint(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5187
105
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5188
105
                                   ett_h225_Endpoint, Endpoint_sequence);
5189
5190
105
  return offset;
5191
105
}
5192
5193
5194
static const value_string h225_UseSpecifiedTransport_vals[] = {
5195
  {   0, "tcp" },
5196
  {   1, "annexE" },
5197
  {   2, "sctp" },
5198
  { 0, NULL }
5199
};
5200
5201
static const per_choice_t UseSpecifiedTransport_choice[] = {
5202
  {   0, &hf_h225_tcp            , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5203
  {   1, &hf_h225_annexE_flg     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5204
  {   2, &hf_h225_sctp_flg       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5205
  { 0, NULL, 0, NULL }
5206
};
5207
5208
static unsigned
5209
2
dissect_h225_UseSpecifiedTransport(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5210
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5211
2
                                 ett_h225_UseSpecifiedTransport, UseSpecifiedTransport_choice,
5212
2
                                 NULL);
5213
5214
2
  return offset;
5215
2
}
5216
5217
5218
static const per_sequence_t AlternateGK_sequence[] = {
5219
  { &hf_h225_alternateGK_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5220
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5221
  { &hf_h225_needToRegister , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5222
  { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_127 },
5223
  { NULL, 0, 0, NULL }
5224
};
5225
5226
static unsigned
5227
157
dissect_h225_AlternateGK(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5228
157
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5229
157
                                   ett_h225_AlternateGK, AlternateGK_sequence);
5230
5231
157
  return offset;
5232
157
}
5233
5234
5235
static const per_sequence_t SEQUENCE_OF_AlternateGK_sequence_of[1] = {
5236
  { &hf_h225_alternateGatekeeper_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AlternateGK },
5237
};
5238
5239
static unsigned
5240
21
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_) {
5241
21
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5242
21
                                      ett_h225_SEQUENCE_OF_AlternateGK, SEQUENCE_OF_AlternateGK_sequence_of);
5243
5244
21
  return offset;
5245
21
}
5246
5247
5248
static const per_sequence_t AltGKInfo_sequence[] = {
5249
  { &hf_h225_alternateGatekeeper, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AlternateGK },
5250
  { &hf_h225_altGKisPermanent, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5251
  { NULL, 0, 0, NULL }
5252
};
5253
5254
static unsigned
5255
21
dissect_h225_AltGKInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5256
21
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5257
21
                                   ett_h225_AltGKInfo, AltGKInfo_sequence);
5258
5259
21
  return offset;
5260
21
}
5261
5262
5263
static const value_string h225_SecurityErrors2_vals[] = {
5264
  {   0, "securityWrongSyncTime" },
5265
  {   1, "securityReplay" },
5266
  {   2, "securityWrongGeneralID" },
5267
  {   3, "securityWrongSendersID" },
5268
  {   4, "securityIntegrityFailed" },
5269
  {   5, "securityWrongOID" },
5270
  { 0, NULL }
5271
};
5272
5273
static const per_choice_t SecurityErrors2_choice[] = {
5274
  {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5275
  {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5276
  {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5277
  {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5278
  {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5279
  {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5280
  { 0, NULL, 0, NULL }
5281
};
5282
5283
static unsigned
5284
1
dissect_h225_SecurityErrors2(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5285
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5286
1
                                 ett_h225_SecurityErrors2, SecurityErrors2_choice,
5287
1
                                 NULL);
5288
5289
1
  return offset;
5290
1
}
5291
5292
5293
5294
static unsigned
5295
540
dissect_h225_RequestSeqNum(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5296
540
  h225_packet_info* h225_pi;
5297
540
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5298
540
  if (h225_pi != NULL) {
5299
540
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5300
540
                                                            1U, 65535U, &(h225_pi->requestSeqNum), false);
5301
5302
540
  }
5303
540
  return offset;
5304
540
}
5305
5306
5307
5308
unsigned
5309
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_) {
5310
1
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5311
1
                                                            1U, 4294967295U, NULL, false);
5312
5313
1
  return offset;
5314
1
}
5315
5316
5317
5318
static unsigned
5319
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_) {
5320
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5321
0
                                       NO_BOUND, NO_BOUND, false, NULL);
5322
5323
0
  return offset;
5324
0
}
5325
5326
5327
static const value_string h225_EncryptIntAlg_vals[] = {
5328
  {   0, "nonStandard" },
5329
  {   1, "isoAlgorithm" },
5330
  { 0, NULL }
5331
};
5332
5333
static const per_choice_t EncryptIntAlg_choice[] = {
5334
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5335
  {   1, &hf_h225_isoAlgorithm   , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5336
  { 0, NULL, 0, NULL }
5337
};
5338
5339
static unsigned
5340
1
dissect_h225_EncryptIntAlg(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5341
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5342
1
                                 ett_h225_EncryptIntAlg, EncryptIntAlg_choice,
5343
1
                                 NULL);
5344
5345
1
  return offset;
5346
1
}
5347
5348
5349
static const value_string h225_NonIsoIntegrityMechanism_vals[] = {
5350
  {   0, "hMAC-MD5" },
5351
  {   1, "hMAC-iso10118-2-s" },
5352
  {   2, "hMAC-iso10118-2-l" },
5353
  {   3, "hMAC-iso10118-3" },
5354
  { 0, NULL }
5355
};
5356
5357
static const per_choice_t NonIsoIntegrityMechanism_choice[] = {
5358
  {   0, &hf_h225_hMAC_MD5       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5359
  {   1, &hf_h225_hMAC_iso10118_2_s, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5360
  {   2, &hf_h225_hMAC_iso10118_2_l, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5361
  {   3, &hf_h225_hMAC_iso10118_3, ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5362
  { 0, NULL, 0, NULL }
5363
};
5364
5365
static unsigned
5366
19
dissect_h225_NonIsoIntegrityMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5367
19
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5368
19
                                 ett_h225_NonIsoIntegrityMechanism, NonIsoIntegrityMechanism_choice,
5369
19
                                 NULL);
5370
5371
19
  return offset;
5372
19
}
5373
5374
5375
const value_string h225_IntegrityMechanism_vals[] = {
5376
  {   0, "nonStandard" },
5377
  {   1, "digSig" },
5378
  {   2, "iso9797" },
5379
  {   3, "nonIsoIM" },
5380
  { 0, NULL }
5381
};
5382
5383
static const per_choice_t IntegrityMechanism_choice[] = {
5384
  {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5385
  {   1, &hf_h225_digSig         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5386
  {   2, &hf_h225_iso9797        , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5387
  {   3, &hf_h225_nonIsoIM       , ASN1_EXTENSION_ROOT    , dissect_h225_NonIsoIntegrityMechanism },
5388
  { 0, NULL, 0, NULL }
5389
};
5390
5391
unsigned
5392
38
dissect_h225_IntegrityMechanism(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5393
38
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5394
38
                                 ett_h225_IntegrityMechanism, IntegrityMechanism_choice,
5395
38
                                 NULL);
5396
5397
38
  return offset;
5398
38
}
5399
5400
5401
5402
static unsigned
5403
35
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_) {
5404
35
  offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5405
35
                                     NO_BOUND, NO_BOUND, false, NULL, 0, NULL, NULL);
5406
5407
35
  return offset;
5408
35
}
5409
5410
5411
static const per_sequence_t ICV_sequence[] = {
5412
  { &hf_h225_algorithmOID   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5413
  { &hf_h225_icv            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BIT_STRING },
5414
  { NULL, 0, 0, NULL }
5415
};
5416
5417
unsigned
5418
40
dissect_h225_ICV(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5419
40
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5420
40
                                   ett_h225_ICV, ICV_sequence);
5421
5422
40
  return offset;
5423
40
}
5424
5425
5426
static const per_sequence_t CapacityReportingCapability_sequence[] = {
5427
  { &hf_h225_canReportCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5428
  { NULL, 0, 0, NULL }
5429
};
5430
5431
static unsigned
5432
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_) {
5433
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5434
0
                                   ett_h225_CapacityReportingCapability, CapacityReportingCapability_sequence);
5435
5436
0
  return offset;
5437
0
}
5438
5439
5440
static const per_sequence_t CapacityReportingSpecification_when_sequence[] = {
5441
  { &hf_h225_callStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5442
  { &hf_h225_callEnd        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5443
  { NULL, 0, 0, NULL }
5444
};
5445
5446
static unsigned
5447
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_) {
5448
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5449
0
                                   ett_h225_CapacityReportingSpecification_when, CapacityReportingSpecification_when_sequence);
5450
5451
0
  return offset;
5452
0
}
5453
5454
5455
static const per_sequence_t CapacityReportingSpecification_sequence[] = {
5456
  { &hf_h225_capacityReportingSpecification_when, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CapacityReportingSpecification_when },
5457
  { NULL, 0, 0, NULL }
5458
};
5459
5460
static unsigned
5461
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_) {
5462
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5463
0
                                   ett_h225_CapacityReportingSpecification, CapacityReportingSpecification_sequence);
5464
5465
0
  return offset;
5466
0
}
5467
5468
5469
static const per_sequence_t RasUsageInfoTypes_sequence[] = {
5470
  { &hf_h225_nonStandardUsageTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5471
  { &hf_h225_startTime      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5472
  { &hf_h225_endTime_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5473
  { &hf_h225_terminationCause_flg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5474
  { NULL, 0, 0, NULL }
5475
};
5476
5477
static unsigned
5478
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_) {
5479
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5480
1
                                   ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
5481
5482
1
  return offset;
5483
1
}
5484
5485
5486
static const per_sequence_t RasUsageSpecification_when_sequence[] = {
5487
  { &hf_h225_start          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5488
  { &hf_h225_end            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5489
  { &hf_h225_inIrr          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5490
  { NULL, 0, 0, NULL }
5491
};
5492
5493
static unsigned
5494
1
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_) {
5495
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5496
1
                                   ett_h225_RasUsageSpecification_when, RasUsageSpecification_when_sequence);
5497
5498
1
  return offset;
5499
1
}
5500
5501
5502
static const per_sequence_t RasUsageSpecificationcallStartingPoint_sequence[] = {
5503
  { &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5504
  { &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5505
  { NULL, 0, 0, NULL }
5506
};
5507
5508
static unsigned
5509
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_) {
5510
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5511
0
                                   ett_h225_RasUsageSpecificationcallStartingPoint, RasUsageSpecificationcallStartingPoint_sequence);
5512
5513
0
  return offset;
5514
0
}
5515
5516
5517
static const per_sequence_t RasUsageSpecification_sequence[] = {
5518
  { &hf_h225_when           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification_when },
5519
  { &hf_h225_ras_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_RasUsageSpecificationcallStartingPoint },
5520
  { &hf_h225_required       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageInfoTypes },
5521
  { NULL, 0, 0, NULL }
5522
};
5523
5524
static unsigned
5525
1
dissect_h225_RasUsageSpecification(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5526
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5527
1
                                   ett_h225_RasUsageSpecification, RasUsageSpecification_sequence);
5528
5529
1
  return offset;
5530
1
}
5531
5532
5533
static const per_sequence_t RasUsageInformation_sequence[] = {
5534
  { &hf_h225_nonStandardUsageFields, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5535
  { &hf_h225_alertingTime   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5536
  { &hf_h225_connectTime    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5537
  { &hf_h225_endTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5538
  { NULL, 0, 0, NULL }
5539
};
5540
5541
static unsigned
5542
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_) {
5543
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5544
1
                                   ett_h225_RasUsageInformation, RasUsageInformation_sequence);
5545
5546
1
  return offset;
5547
1
}
5548
5549
5550
5551
static unsigned
5552
0
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_) {
5553
0
  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5554
0
                                       2, 32, false, NULL);
5555
5556
0
  return offset;
5557
0
}
5558
5559
5560
static const value_string h225_CallTerminationCause_vals[] = {
5561
  {   0, "releaseCompleteReason" },
5562
  {   1, "releaseCompleteCauseIE" },
5563
  { 0, NULL }
5564
};
5565
5566
static const per_choice_t CallTerminationCause_choice[] = {
5567
  {   0, &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseCompleteReason },
5568
  {   1, &hf_h225_releaseCompleteCauseIE, ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_2_32 },
5569
  { 0, NULL, 0, NULL }
5570
};
5571
5572
static unsigned
5573
0
dissect_h225_CallTerminationCause(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5574
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5575
0
                                 ett_h225_CallTerminationCause, CallTerminationCause_choice,
5576
0
                                 NULL);
5577
5578
0
  return offset;
5579
0
}
5580
5581
5582
static const per_sequence_t TransportChannelInfo_sequence[] = {
5583
  { &hf_h225_sendAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5584
  { &hf_h225_recvAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5585
  { NULL, 0, 0, NULL }
5586
};
5587
5588
unsigned
5589
814
dissect_h225_TransportChannelInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5590
814
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5591
814
                                   ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
5592
5593
814
  return offset;
5594
814
}
5595
5596
5597
static const per_sequence_t BandwidthDetails_sequence[] = {
5598
  { &hf_h225_sender         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5599
  { &hf_h225_multicast      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5600
  { &hf_h225_bandwidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
5601
  { &hf_h225_rtcpAddresses  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5602
  { NULL, 0, 0, NULL }
5603
};
5604
5605
static unsigned
5606
10
dissect_h225_BandwidthDetails(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5607
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5608
10
                                   ett_h225_BandwidthDetails, BandwidthDetails_sequence);
5609
5610
10
  return offset;
5611
10
}
5612
5613
5614
static const per_sequence_t CallCreditCapability_sequence[] = {
5615
  { &hf_h225_canDisplayAmountString, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5616
  { &hf_h225_canEnforceDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5617
  { NULL, 0, 0, NULL }
5618
};
5619
5620
static unsigned
5621
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_) {
5622
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5623
0
                                   ett_h225_CallCreditCapability, CallCreditCapability_sequence);
5624
5625
0
  return offset;
5626
0
}
5627
5628
5629
5630
static unsigned
5631
167
dissect_h225_PrintableString(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5632
167
  offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
5633
167
                                          NO_BOUND, NO_BOUND, false,
5634
167
                                          NULL);
5635
5636
167
  return offset;
5637
167
}
5638
5639
5640
5641
static unsigned
5642
691
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_) {
5643
691
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5644
691
                                                            1U, 255U, NULL, false);
5645
5646
691
  return offset;
5647
691
}
5648
5649
5650
static const per_sequence_t T_associatedSessionIds_sequence_of[1] = {
5651
  { &hf_h225_associatedSessionIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5652
};
5653
5654
static unsigned
5655
161
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_) {
5656
161
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5657
161
                                      ett_h225_T_associatedSessionIds, T_associatedSessionIds_sequence_of);
5658
5659
161
  return offset;
5660
161
}
5661
5662
5663
static const per_sequence_t RTPSession_sequence[] = {
5664
  { &hf_h225_rtpAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5665
  { &hf_h225_rtcpAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5666
  { &hf_h225_cname          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrintableString },
5667
  { &hf_h225_ssrc           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_4294967295 },
5668
  { &hf_h225_sessionId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5669
  { &hf_h225_associatedSessionIds, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_associatedSessionIds },
5670
  { &hf_h225_multicast_flg  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5671
  { &hf_h225_bandwidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
5672
  { NULL, 0, 0, NULL }
5673
};
5674
5675
static unsigned
5676
171
dissect_h225_RTPSession(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5677
171
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5678
171
                                   ett_h225_RTPSession, RTPSession_sequence);
5679
5680
171
  return offset;
5681
171
}
5682
5683
5684
static const value_string h225_RehomingModel_vals[] = {
5685
  {   0, "gatekeeperBased" },
5686
  {   1, "endpointBased" },
5687
  { 0, NULL }
5688
};
5689
5690
static const per_choice_t RehomingModel_choice[] = {
5691
  {   0, &hf_h225_gatekeeperBased, ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5692
  {   1, &hf_h225_endpointBased  , ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5693
  { 0, NULL, 0, NULL }
5694
};
5695
5696
static unsigned
5697
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_) {
5698
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5699
0
                                 ett_h225_RehomingModel, RehomingModel_choice,
5700
0
                                 NULL);
5701
5702
0
  return offset;
5703
0
}
5704
5705
5706
static const per_sequence_t SEQUENCE_OF_Endpoint_sequence_of[1] = {
5707
  { &hf_h225_alternateEndpoints_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_Endpoint },
5708
};
5709
5710
static unsigned
5711
16
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_) {
5712
16
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5713
16
                                      ett_h225_SEQUENCE_OF_Endpoint, SEQUENCE_OF_Endpoint_sequence_of);
5714
5715
16
  return offset;
5716
16
}
5717
5718
5719
static const per_sequence_t SEQUENCE_OF_AuthenticationMechanism_sequence_of[1] = {
5720
  { &hf_h225_authenticationCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_AuthenticationMechanism },
5721
};
5722
5723
static unsigned
5724
8
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_) {
5725
8
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5726
8
                                      ett_h225_SEQUENCE_OF_AuthenticationMechanism, SEQUENCE_OF_AuthenticationMechanism_sequence_of);
5727
5728
8
  return offset;
5729
8
}
5730
5731
5732
static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
5733
  { &hf_h225_algorithmOIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5734
};
5735
5736
static unsigned
5737
2
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_) {
5738
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5739
2
                                      ett_h225_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
5740
5741
2
  return offset;
5742
2
}
5743
5744
5745
static const per_sequence_t SEQUENCE_OF_IntegrityMechanism_sequence_of[1] = {
5746
  { &hf_h225_integrity_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IntegrityMechanism },
5747
};
5748
5749
static unsigned
5750
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_) {
5751
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5752
1
                                      ett_h225_SEQUENCE_OF_IntegrityMechanism, SEQUENCE_OF_IntegrityMechanism_sequence_of);
5753
5754
1
  return offset;
5755
1
}
5756
5757
5758
static const per_sequence_t GatekeeperRequest_sequence[] = {
5759
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5760
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5761
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5762
  { &hf_h225_gatekeeperRequest_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5763
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5764
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5765
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
5766
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5767
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
5768
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5769
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5770
  { &hf_h225_authenticationCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AuthenticationMechanism },
5771
  { &hf_h225_algorithmOIDs  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_algorithmOIDs },
5772
  { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5773
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5774
  { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5775
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5776
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5777
  { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5778
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5779
  { NULL, 0, 0, NULL }
5780
};
5781
5782
static unsigned
5783
60
dissect_h225_GatekeeperRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5784
60
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5785
60
                                   ett_h225_GatekeeperRequest, GatekeeperRequest_sequence);
5786
5787
60
  return offset;
5788
60
}
5789
5790
5791
static const per_sequence_t GatekeeperConfirm_sequence[] = {
5792
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5793
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5794
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5795
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5796
  { &hf_h225_gatekeeperConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5797
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
5798
  { &hf_h225_authenticationMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h235_AuthenticationMechanism },
5799
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5800
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5801
  { &hf_h225_algorithmOID   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
5802
  { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5803
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5804
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5805
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5806
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5807
  { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
5808
  { NULL, 0, 0, NULL }
5809
};
5810
5811
static unsigned
5812
3
dissect_h225_GatekeeperConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5813
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5814
3
                                   ett_h225_GatekeeperConfirm, GatekeeperConfirm_sequence);
5815
5816
3
  return offset;
5817
3
}
5818
5819
5820
const value_string GatekeeperRejectReason_vals[] = {
5821
  {   0, "resourceUnavailable" },
5822
  {   1, "terminalExcluded" },
5823
  {   2, "invalidRevision" },
5824
  {   3, "undefinedReason" },
5825
  {   4, "securityDenial" },
5826
  {   5, "genericDataReason" },
5827
  {   6, "neededFeatureNotSupported" },
5828
  {   7, "securityError" },
5829
  { 0, NULL }
5830
};
5831
5832
static const per_choice_t GatekeeperRejectReason_choice[] = {
5833
  {   0, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5834
  {   1, &hf_h225_terminalExcluded, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5835
  {   2, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5836
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5837
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5838
  {   5, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5839
  {   6, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5840
  {   7, &hf_h225_gkRej_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
5841
  { 0, NULL, 0, NULL }
5842
};
5843
5844
static unsigned
5845
8
dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5846
8
  int32_t value;
5847
8
  h225_packet_info* h225_pi;
5848
8
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5849
5850
8
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5851
8
                                 ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice,
5852
8
                                 &value);
5853
5854
8
  if (h225_pi != NULL) {
5855
8
    h225_pi->reason = value;
5856
8
  }
5857
5858
8
  return offset;
5859
8
}
5860
5861
5862
static const per_sequence_t GatekeeperReject_sequence[] = {
5863
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5864
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5865
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5866
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5867
  { &hf_h225_gatekeeperRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperRejectReason },
5868
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
5869
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5870
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5871
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5872
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5873
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5874
  { NULL, 0, 0, NULL }
5875
};
5876
5877
static unsigned
5878
9
dissect_h225_GatekeeperReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5879
9
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5880
9
                                   ett_h225_GatekeeperReject, GatekeeperReject_sequence);
5881
5882
9
  return offset;
5883
9
}
5884
5885
5886
static const per_sequence_t SEQUENCE_OF_AddressPattern_sequence_of[1] = {
5887
  { &hf_h225_terminalAliasPattern_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AddressPattern },
5888
};
5889
5890
static unsigned
5891
1
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_) {
5892
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5893
1
                                      ett_h225_SEQUENCE_OF_AddressPattern, SEQUENCE_OF_AddressPattern_sequence_of);
5894
5895
1
  return offset;
5896
1
}
5897
5898
5899
static const per_sequence_t SEQUENCE_OF_H248PackagesDescriptor_sequence_of[1] = {
5900
  { &hf_h225_supportedH248Packages_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H248PackagesDescriptor },
5901
};
5902
5903
static unsigned
5904
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_) {
5905
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5906
0
                                      ett_h225_SEQUENCE_OF_H248PackagesDescriptor, SEQUENCE_OF_H248PackagesDescriptor_sequence_of);
5907
5908
0
  return offset;
5909
0
}
5910
5911
5912
static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = {
5913
  { &hf_h225_qOSCapabilities_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability },
5914
};
5915
5916
static unsigned
5917
23
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_) {
5918
23
  offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5919
23
                                                  ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of,
5920
23
                                                  1, 256, false);
5921
5922
23
  return offset;
5923
23
}
5924
5925
5926
const value_string h225_TransportQOS_vals[] = {
5927
  {   0, "endpointControlled" },
5928
  {   1, "gatekeeperControlled" },
5929
  {   2, "noControl" },
5930
  {   3, "qOSCapabilities" },
5931
  { 0, NULL }
5932
};
5933
5934
static const per_choice_t TransportQOS_choice[] = {
5935
  {   0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5936
  {   1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5937
  {   2, &hf_h225_noControl      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5938
  {   3, &hf_h225_qOSCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability },
5939
  { 0, NULL, 0, NULL }
5940
};
5941
5942
unsigned
5943
122
dissect_h225_TransportQOS(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5944
122
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5945
122
                                 ett_h225_TransportQOS, TransportQOS_choice,
5946
122
                                 NULL);
5947
5948
122
  return offset;
5949
122
}
5950
5951
5952
static const per_sequence_t RegistrationRequest_sequence[] = {
5953
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5954
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5955
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5956
  { &hf_h225_discoveryComplete, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5957
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5958
  { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5959
  { &hf_h225_terminalType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5960
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5961
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5962
  { &hf_h225_endpointVendor , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_VendorIdentifier },
5963
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
5964
  { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
5965
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5966
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5967
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5968
  { &hf_h225_keepAlive      , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5969
  { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
5970
  { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5971
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5972
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
5973
  { &hf_h225_additiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5974
  { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
5975
  { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5976
  { &hf_h225_usageReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
5977
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5978
  { &hf_h225_supportedH248Packages, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H248PackagesDescriptor },
5979
  { &hf_h225_callCreditCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCreditCapability },
5980
  { &hf_h225_capacityReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingCapability },
5981
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
5982
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5983
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5984
  { &hf_h225_restart        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5985
  { &hf_h225_supportsACFSequences, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5986
  { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5987
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5988
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
5989
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
5990
  { NULL, 0, 0, NULL }
5991
};
5992
5993
static unsigned
5994
7
dissect_h225_RegistrationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5995
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5996
7
                                   ett_h225_RegistrationRequest, RegistrationRequest_sequence);
5997
5998
7
  return offset;
5999
7
}
6000
6001
6002
6003
static unsigned
6004
13
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_) {
6005
13
  offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6006
13
                                                            1U, 65535U, NULL, false);
6007
6008
13
  return offset;
6009
13
}
6010
6011
6012
static const per_sequence_t T_preGrantedARQ_sequence[] = {
6013
  { &hf_h225_makeCall       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6014
  { &hf_h225_useGKCallSignalAddressToMakeCall, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6015
  { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6016
  { &hf_h225_useGKCallSignalAddressToAnswer, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6017
  { &hf_h225_irrFrequencyInCall, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6018
  { &hf_h225_totalBandwidthRestriction, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6019
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6020
  { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6021
  { NULL, 0, 0, NULL }
6022
};
6023
6024
static unsigned
6025
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_) {
6026
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6027
0
                                   ett_h225_T_preGrantedARQ, T_preGrantedARQ_sequence);
6028
6029
0
  return offset;
6030
0
}
6031
6032
6033
static const per_sequence_t SEQUENCE_OF_RasUsageSpecification_sequence_of[1] = {
6034
  { &hf_h225_usageSpec_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification },
6035
};
6036
6037
static unsigned
6038
2
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_) {
6039
2
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6040
2
                                      ett_h225_SEQUENCE_OF_RasUsageSpecification, SEQUENCE_OF_RasUsageSpecification_sequence_of);
6041
6042
2
  return offset;
6043
2
}
6044
6045
6046
static const per_sequence_t RegistrationConfirm_sequence[] = {
6047
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6048
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6049
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6050
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6051
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6052
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6053
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6054
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6055
  { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
6056
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6057
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6058
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6059
  { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6060
  { &hf_h225_preGrantedARQ  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_preGrantedARQ },
6061
  { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6062
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6063
  { &hf_h225_supportsAdditiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6064
  { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6065
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6066
  { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6067
  { &hf_h225_featureServerAlias, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
6068
  { &hf_h225_capacityReportingSpec, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingSpecification },
6069
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6070
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6071
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6072
  { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
6073
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6074
  { NULL, 0, 0, NULL }
6075
};
6076
6077
static unsigned
6078
10
dissect_h225_RegistrationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6079
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6080
10
                                   ett_h225_RegistrationConfirm, RegistrationConfirm_sequence);
6081
6082
10
  return offset;
6083
10
}
6084
6085
6086
static const per_sequence_t T_invalidTerminalAliases_sequence[] = {
6087
  { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6088
  { &hf_h225_terminalAliasPattern, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6089
  { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6090
  { NULL, 0, 0, NULL }
6091
};
6092
6093
static unsigned
6094
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_) {
6095
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6096
0
                                   ett_h225_T_invalidTerminalAliases, T_invalidTerminalAliases_sequence);
6097
6098
0
  return offset;
6099
0
}
6100
6101
6102
const value_string RegistrationRejectReason_vals[] = {
6103
  {   0, "discoveryRequired" },
6104
  {   1, "invalidRevision" },
6105
  {   2, "invalidCallSignalAddress" },
6106
  {   3, "invalidRASAddress" },
6107
  {   4, "duplicateAlias" },
6108
  {   5, "invalidTerminalType" },
6109
  {   6, "undefinedReason" },
6110
  {   7, "transportNotSupported" },
6111
  {   8, "transportQOSNotSupported" },
6112
  {   9, "resourceUnavailable" },
6113
  {  10, "invalidAlias" },
6114
  {  11, "securityDenial" },
6115
  {  12, "fullRegistrationRequired" },
6116
  {  13, "additiveRegistrationNotSupported" },
6117
  {  14, "invalidTerminalAliases" },
6118
  {  15, "genericDataReason" },
6119
  {  16, "neededFeatureNotSupported" },
6120
  {  17, "securityError" },
6121
  {  18, "registerWithAssignedGK" },
6122
  { 0, NULL }
6123
};
6124
6125
static const per_choice_t RegistrationRejectReason_choice[] = {
6126
  {   0, &hf_h225_discoveryRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6127
  {   1, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6128
  {   2, &hf_h225_invalidCallSignalAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6129
  {   3, &hf_h225_invalidRASAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6130
  {   4, &hf_h225_duplicateAlias , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_OF_AliasAddress },
6131
  {   5, &hf_h225_invalidTerminalType, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6132
  {   6, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6133
  {   7, &hf_h225_transportNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6134
  {   8, &hf_h225_transportQOSNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6135
  {   9, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6136
  {  10, &hf_h225_invalidAlias   , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6137
  {  11, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6138
  {  12, &hf_h225_fullRegistrationRequired, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6139
  {  13, &hf_h225_additiveRegistrationNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6140
  {  14, &hf_h225_invalidTerminalAliases, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_invalidTerminalAliases },
6141
  {  15, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6142
  {  16, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6143
  {  17, &hf_h225_reg_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
6144
  {  18, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6145
  { 0, NULL, 0, NULL }
6146
};
6147
6148
static unsigned
6149
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_) {
6150
2
  int32_t value;
6151
2
  h225_packet_info* h225_pi;
6152
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6153
6154
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6155
2
                                 ett_h225_RegistrationRejectReason, RegistrationRejectReason_choice,
6156
2
                                 &value);
6157
6158
2
  if (h225_pi != NULL) {
6159
2
    h225_pi->reason = value;
6160
2
  }
6161
6162
2
  return offset;
6163
2
}
6164
6165
6166
static const per_sequence_t RegistrationReject_sequence[] = {
6167
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6168
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6169
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6170
  { &hf_h225_registrationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RegistrationRejectReason },
6171
  { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6172
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6173
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6174
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6175
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6176
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6177
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6178
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6179
  { NULL, 0, 0, NULL }
6180
};
6181
6182
static unsigned
6183
3
dissect_h225_RegistrationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6184
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6185
3
                                   ett_h225_RegistrationReject, RegistrationReject_sequence);
6186
6187
3
  return offset;
6188
3
}
6189
6190
6191
const value_string UnregRequestReason_vals[] = {
6192
  {   0, "reregistrationRequired" },
6193
  {   1, "ttlExpired" },
6194
  {   2, "securityDenial" },
6195
  {   3, "undefinedReason" },
6196
  {   4, "maintenance" },
6197
  {   5, "securityError" },
6198
  {   6, "registerWithAssignedGK" },
6199
  { 0, NULL }
6200
};
6201
6202
static const per_choice_t UnregRequestReason_choice[] = {
6203
  {   0, &hf_h225_reregistrationRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6204
  {   1, &hf_h225_ttlExpired     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6205
  {   2, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6206
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6207
  {   4, &hf_h225_maintenance    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6208
  {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6209
  {   6, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6210
  { 0, NULL, 0, NULL }
6211
};
6212
6213
static unsigned
6214
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_) {
6215
0
  int32_t value;
6216
0
  h225_packet_info* h225_pi;
6217
0
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6218
6219
0
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6220
0
                                 ett_h225_UnregRequestReason, UnregRequestReason_choice,
6221
0
                                 &value);
6222
6223
0
  if (h225_pi != NULL) {
6224
0
    h225_pi->reason = value;
6225
0
  }
6226
6227
0
  return offset;
6228
0
}
6229
6230
6231
static const per_sequence_t UnregistrationRequest_sequence[] = {
6232
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6233
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6234
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6235
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6236
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6237
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6238
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6239
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6240
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6241
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6242
  { &hf_h225_unregRequestReason, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UnregRequestReason },
6243
  { &hf_h225_endpointAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6244
  { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6245
  { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6246
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6247
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6248
  { NULL, 0, 0, NULL }
6249
};
6250
6251
static unsigned
6252
19
dissect_h225_UnregistrationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6253
19
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6254
19
                                   ett_h225_UnregistrationRequest, UnregistrationRequest_sequence);
6255
6256
19
  return offset;
6257
19
}
6258
6259
6260
static const per_sequence_t UnregistrationConfirm_sequence[] = {
6261
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6262
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6263
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6264
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6265
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6266
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6267
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6268
  { NULL, 0, 0, NULL }
6269
};
6270
6271
static unsigned
6272
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_) {
6273
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6274
1
                                   ett_h225_UnregistrationConfirm, UnregistrationConfirm_sequence);
6275
6276
1
  return offset;
6277
1
}
6278
6279
6280
const value_string UnregRejectReason_vals[] = {
6281
  {   0, "notCurrentlyRegistered" },
6282
  {   1, "callInProgress" },
6283
  {   2, "undefinedReason" },
6284
  {   3, "permissionDenied" },
6285
  {   4, "securityDenial" },
6286
  {   5, "securityError" },
6287
  { 0, NULL }
6288
};
6289
6290
static const per_choice_t UnregRejectReason_choice[] = {
6291
  {   0, &hf_h225_notCurrentlyRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6292
  {   1, &hf_h225_callInProgress , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6293
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6294
  {   3, &hf_h225_permissionDenied, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6295
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6296
  {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6297
  { 0, NULL, 0, NULL }
6298
};
6299
6300
static unsigned
6301
3
dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6302
3
  int32_t value;
6303
3
  h225_packet_info* h225_pi;
6304
3
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6305
6306
3
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6307
3
                                 ett_h225_UnregRejectReason, UnregRejectReason_choice,
6308
3
                                 &value);
6309
6310
3
  if (h225_pi != NULL) {
6311
3
    h225_pi->reason = value;
6312
3
  }
6313
6314
3
  return offset;
6315
3
}
6316
6317
6318
static const per_sequence_t UnregistrationReject_sequence[] = {
6319
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6320
  { &hf_h225_unregRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_UnregRejectReason },
6321
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6322
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6323
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6324
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6325
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6326
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6327
  { NULL, 0, 0, NULL }
6328
};
6329
6330
static unsigned
6331
3
dissect_h225_UnregistrationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6332
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6333
3
                                   ett_h225_UnregistrationReject, UnregistrationReject_sequence);
6334
6335
3
  return offset;
6336
3
}
6337
6338
6339
static const value_string h225_CallModel_vals[] = {
6340
  {   0, "direct" },
6341
  {   1, "gatekeeperRouted" },
6342
  { 0, NULL }
6343
};
6344
6345
static const per_choice_t CallModel_choice[] = {
6346
  {   0, &hf_h225_direct         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6347
  {   1, &hf_h225_gatekeeperRouted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6348
  { 0, NULL, 0, NULL }
6349
};
6350
6351
static unsigned
6352
214
dissect_h225_CallModel(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6353
214
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6354
214
                                 ett_h225_CallModel, CallModel_choice,
6355
214
                                 NULL);
6356
6357
214
  return offset;
6358
214
}
6359
6360
6361
6362
static unsigned
6363
447
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_) {
6364
447
  h225_packet_info* h225_pi;
6365
6366
447
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6367
447
  if (h225_pi != NULL) {
6368
447
    h225_pi->is_destinationInfo = true;
6369
447
  }
6370
447
  offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
6371
6372
447
  return offset;
6373
447
}
6374
6375
6376
static const per_sequence_t DestinationInfo_sequence_of[1] = {
6377
  { &hf_h225_DestinationInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo_item },
6378
};
6379
6380
static unsigned
6381
27
dissect_h225_DestinationInfo(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6382
27
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6383
27
                                      ett_h225_DestinationInfo, DestinationInfo_sequence_of);
6384
6385
27
  return offset;
6386
27
}
6387
6388
6389
static const per_sequence_t AdmissionRequest_sequence[] = {
6390
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6391
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
6392
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallModel },
6393
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6394
  { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6395
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6396
  { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6397
  { &hf_h225_srcInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AliasAddress },
6398
  { &hf_h225_srcCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6399
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6400
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6401
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6402
  { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
6403
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6404
  { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6405
  { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6406
  { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6407
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6408
  { &hf_h225_srcAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6409
  { &hf_h225_destAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6410
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6411
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6412
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6413
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6414
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6415
  { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6416
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6417
  { &hf_h225_gatewayDataRate, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DataRate },
6418
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6419
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6420
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6421
  { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6422
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6423
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6424
  { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6425
  { NULL, 0, 0, NULL }
6426
};
6427
6428
static unsigned
6429
17
dissect_h225_AdmissionRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6430
17
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6431
17
                                   ett_h225_AdmissionRequest, AdmissionRequest_sequence);
6432
6433
17
  return offset;
6434
17
}
6435
6436
6437
static const per_sequence_t UUIEsRequested_sequence[] = {
6438
  { &hf_h225_setup_bool     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6439
  { &hf_h225_callProceeding_flg, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6440
  { &hf_h225_connect_bool   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6441
  { &hf_h225_alerting_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6442
  { &hf_h225_information_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6443
  { &hf_h225_releaseComplete_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6444
  { &hf_h225_facility_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6445
  { &hf_h225_progress_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6446
  { &hf_h225_empty          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6447
  { &hf_h225_status_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6448
  { &hf_h225_statusInquiry_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6449
  { &hf_h225_setupAcknowledge_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6450
  { &hf_h225_notify_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6451
  { NULL, 0, 0, NULL }
6452
};
6453
6454
static unsigned
6455
2
dissect_h225_UUIEsRequested(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6456
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6457
2
                                   ett_h225_UUIEsRequested, UUIEsRequested_sequence);
6458
6459
2
  return offset;
6460
2
}
6461
6462
6463
static const per_sequence_t AdmissionConfirm_sequence[] = {
6464
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6465
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6466
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
6467
  { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6468
  { &hf_h225_irrFrequency   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6469
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6470
  { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6471
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6472
  { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6473
  { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6474
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6475
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6476
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6477
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6478
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6479
  { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6480
  { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_UUIEsRequested },
6481
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6482
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6483
  { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6484
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6485
  { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6486
  { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6487
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6488
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6489
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6490
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6491
  { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6492
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6493
  { NULL, 0, 0, NULL }
6494
};
6495
6496
static unsigned
6497
101
dissect_h225_AdmissionConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6498
101
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6499
101
                                   ett_h225_AdmissionConfirm, AdmissionConfirm_sequence);
6500
6501
101
  return offset;
6502
101
}
6503
6504
6505
static const per_sequence_t SEQUENCE_OF_PartyNumber_sequence_of[1] = {
6506
  { &hf_h225_routeCallToSCN_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
6507
};
6508
6509
static unsigned
6510
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_) {
6511
0
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6512
0
                                      ett_h225_SEQUENCE_OF_PartyNumber, SEQUENCE_OF_PartyNumber_sequence_of);
6513
6514
0
  return offset;
6515
0
}
6516
6517
6518
const value_string AdmissionRejectReason_vals[] = {
6519
  {   0, "calledPartyNotRegistered" },
6520
  {   1, "invalidPermission" },
6521
  {   2, "requestDenied" },
6522
  {   3, "undefinedReason" },
6523
  {   4, "callerNotRegistered" },
6524
  {   5, "routeCallToGatekeeper" },
6525
  {   6, "invalidEndpointIdentifier" },
6526
  {   7, "resourceUnavailable" },
6527
  {   8, "securityDenial" },
6528
  {   9, "qosControlNotSupported" },
6529
  {  10, "incompleteAddress" },
6530
  {  11, "aliasesInconsistent" },
6531
  {  12, "routeCallToSCN" },
6532
  {  13, "exceedsCallCapacity" },
6533
  {  14, "collectDestination" },
6534
  {  15, "collectPIN" },
6535
  {  16, "genericDataReason" },
6536
  {  17, "neededFeatureNotSupported" },
6537
  {  18, "securityError" },
6538
  {  19, "securityDHmismatch" },
6539
  {  20, "noRouteToDestination" },
6540
  {  21, "unallocatedNumber" },
6541
  {  22, "registerWithAssignedGK" },
6542
  { 0, NULL }
6543
};
6544
6545
static const per_choice_t AdmissionRejectReason_choice[] = {
6546
  {   0, &hf_h225_calledPartyNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6547
  {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6548
  {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6549
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6550
  {   4, &hf_h225_callerNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6551
  {   5, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6552
  {   6, &hf_h225_invalidEndpointIdentifier, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6553
  {   7, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6554
  {   8, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6555
  {   9, &hf_h225_qosControlNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6556
  {  10, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6557
  {  11, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6558
  {  12, &hf_h225_routeCallToSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6559
  {  13, &hf_h225_exceedsCallCapacity, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6560
  {  14, &hf_h225_collectDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6561
  {  15, &hf_h225_collectPIN     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6562
  {  16, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6563
  {  17, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6564
  {  18, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6565
  {  19, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6566
  {  20, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6567
  {  21, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6568
  {  22, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6569
  { 0, NULL, 0, NULL }
6570
};
6571
6572
static unsigned
6573
13
dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6574
13
  int32_t value;
6575
13
  h225_packet_info* h225_pi;
6576
13
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6577
6578
13
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6579
13
                                 ett_h225_AdmissionRejectReason, AdmissionRejectReason_choice,
6580
13
                                 &value);
6581
6582
13
  if (h225_pi != NULL) {
6583
13
    h225_pi->reason = value;
6584
13
  }
6585
6586
13
  return offset;
6587
13
}
6588
6589
6590
static const per_sequence_t AdmissionReject_sequence[] = {
6591
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6592
  { &hf_h225_rejectReason   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionRejectReason },
6593
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6594
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6595
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6596
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6597
  { &hf_h225_callSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
6598
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6599
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6600
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6601
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6602
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6603
  { NULL, 0, 0, NULL }
6604
};
6605
6606
static unsigned
6607
13
dissect_h225_AdmissionReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6608
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6609
13
                                   ett_h225_AdmissionReject, AdmissionReject_sequence);
6610
6611
13
  return offset;
6612
13
}
6613
6614
6615
static const per_sequence_t SEQUENCE_OF_BandwidthDetails_sequence_of[1] = {
6616
  { &hf_h225_bandwidthDetails_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BandwidthDetails },
6617
};
6618
6619
static unsigned
6620
6
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_) {
6621
6
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6622
6
                                      ett_h225_SEQUENCE_OF_BandwidthDetails, SEQUENCE_OF_BandwidthDetails_sequence_of);
6623
6624
6
  return offset;
6625
6
}
6626
6627
6628
static const per_sequence_t BandwidthRequest_sequence[] = {
6629
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6630
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6631
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6632
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6633
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallType },
6634
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6635
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6636
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6637
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6638
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6639
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6640
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6641
  { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6642
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6643
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6644
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6645
  { &hf_h225_bandwidthDetails, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_BandwidthDetails },
6646
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6647
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6648
  { NULL, 0, 0, NULL }
6649
};
6650
6651
static unsigned
6652
10
dissect_h225_BandwidthRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6653
10
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6654
10
                                   ett_h225_BandwidthRequest, BandwidthRequest_sequence);
6655
6656
10
  return offset;
6657
10
}
6658
6659
6660
static const per_sequence_t BandwidthConfirm_sequence[] = {
6661
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6662
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6663
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6664
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6665
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6666
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6667
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6668
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6669
  { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6670
  { NULL, 0, 0, NULL }
6671
};
6672
6673
static unsigned
6674
64
dissect_h225_BandwidthConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6675
64
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6676
64
                                   ett_h225_BandwidthConfirm, BandwidthConfirm_sequence);
6677
6678
64
  return offset;
6679
64
}
6680
6681
6682
const value_string BandRejectReason_vals[] = {
6683
  {   0, "notBound" },
6684
  {   1, "invalidConferenceID" },
6685
  {   2, "invalidPermission" },
6686
  {   3, "insufficientResources" },
6687
  {   4, "invalidRevision" },
6688
  {   5, "undefinedReason" },
6689
  {   6, "securityDenial" },
6690
  {   7, "securityError" },
6691
  { 0, NULL }
6692
};
6693
6694
static const per_choice_t BandRejectReason_choice[] = {
6695
  {   0, &hf_h225_notBound       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6696
  {   1, &hf_h225_invalidConferenceID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6697
  {   2, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6698
  {   3, &hf_h225_insufficientResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6699
  {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6700
  {   5, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6701
  {   6, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6702
  {   7, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6703
  { 0, NULL, 0, NULL }
6704
};
6705
6706
static unsigned
6707
14
dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6708
14
  int32_t value;
6709
14
  h225_packet_info* h225_pi;
6710
14
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6711
6712
14
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6713
14
                                 ett_h225_BandRejectReason, BandRejectReason_choice,
6714
14
                                 &value);
6715
6716
14
  if (h225_pi != NULL) {
6717
13
    h225_pi->reason = value;
6718
13
  }
6719
6720
14
  return offset;
6721
14
}
6722
6723
6724
static const per_sequence_t BandwidthReject_sequence[] = {
6725
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6726
  { &hf_h225_bandRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandRejectReason },
6727
  { &hf_h225_allowedBandWidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6728
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6729
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6730
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6731
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6732
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6733
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6734
  { NULL, 0, 0, NULL }
6735
};
6736
6737
static unsigned
6738
14
dissect_h225_BandwidthReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6739
14
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6740
14
                                   ett_h225_BandwidthReject, BandwidthReject_sequence);
6741
6742
14
  return offset;
6743
14
}
6744
6745
6746
const value_string DisengageReason_vals[] = {
6747
  {   0, "forcedDrop" },
6748
  {   1, "normalDrop" },
6749
  {   2, "undefinedReason" },
6750
  { 0, NULL }
6751
};
6752
6753
static const per_choice_t DisengageReason_choice[] = {
6754
  {   0, &hf_h225_forcedDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6755
  {   1, &hf_h225_normalDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6756
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6757
  { 0, NULL, 0, NULL }
6758
};
6759
6760
static unsigned
6761
1
dissect_h225_DisengageReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6762
1
  int32_t value;
6763
1
  h225_packet_info* h225_pi;
6764
1
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6765
6766
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6767
1
                                 ett_h225_DisengageReason, DisengageReason_choice,
6768
1
                                 &value);
6769
6770
1
  if (h225_pi != NULL) {
6771
1
    h225_pi->reason = value;
6772
1
  }
6773
6774
1
  return offset;
6775
1
}
6776
6777
6778
static const per_sequence_t DisengageRequest_sequence[] = {
6779
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6780
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6781
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6782
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6783
  { &hf_h225_disengageReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageReason },
6784
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6785
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6786
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6787
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6788
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6789
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6790
  { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6791
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6792
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6793
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6794
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6795
  { &hf_h225_terminationCause, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallTerminationCause },
6796
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6797
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6798
  { NULL, 0, 0, NULL }
6799
};
6800
6801
static unsigned
6802
3
dissect_h225_DisengageRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6803
3
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6804
3
                                   ett_h225_DisengageRequest, DisengageRequest_sequence);
6805
6806
3
  return offset;
6807
3
}
6808
6809
6810
static const per_sequence_t DisengageConfirm_sequence[] = {
6811
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6812
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6813
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6814
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6815
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6816
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6817
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6818
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6819
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6820
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6821
  { NULL, 0, 0, NULL }
6822
};
6823
6824
static unsigned
6825
21
dissect_h225_DisengageConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6826
21
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6827
21
                                   ett_h225_DisengageConfirm, DisengageConfirm_sequence);
6828
6829
21
  return offset;
6830
21
}
6831
6832
6833
const value_string DisengageRejectReason_vals[] = {
6834
  {   0, "notRegistered" },
6835
  {   1, "requestToDropOther" },
6836
  {   2, "securityDenial" },
6837
  {   3, "securityError" },
6838
  { 0, NULL }
6839
};
6840
6841
static const per_choice_t DisengageRejectReason_choice[] = {
6842
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6843
  {   1, &hf_h225_requestToDropOther, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6844
  {   2, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6845
  {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6846
  { 0, NULL, 0, NULL }
6847
};
6848
6849
static unsigned
6850
7
dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6851
7
  int32_t value;
6852
7
  h225_packet_info* h225_pi;
6853
7
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6854
6855
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6856
7
                                 ett_h225_DisengageRejectReason, DisengageRejectReason_choice,
6857
7
                                 &value);
6858
6859
7
  if (h225_pi != NULL) {
6860
6
    h225_pi->reason = value;
6861
6
  }
6862
6863
7
  return offset;
6864
7
}
6865
6866
6867
static const per_sequence_t DisengageReject_sequence[] = {
6868
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6869
  { &hf_h225_disengageRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageRejectReason },
6870
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6871
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6872
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6873
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6874
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6875
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6876
  { NULL, 0, 0, NULL }
6877
};
6878
6879
static unsigned
6880
7
dissect_h225_DisengageReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6881
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6882
7
                                   ett_h225_DisengageReject, DisengageReject_sequence);
6883
6884
7
  return offset;
6885
7
}
6886
6887
6888
static const per_sequence_t LocationRequest_sequence[] = {
6889
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6890
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6891
  { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo },
6892
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6893
  { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6894
  { &hf_h225_sourceInfo     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6895
  { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6896
  { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6897
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6898
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6899
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6900
  { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6901
  { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6902
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6903
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6904
  { &hf_h225_hopCount       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_255 },
6905
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6906
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
6907
  { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6908
  { &hf_h225_sourceEndpointInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6909
  { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6910
  { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6911
  { NULL, 0, 0, NULL }
6912
};
6913
6914
static unsigned
6915
20
dissect_h225_LocationRequest(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6916
20
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6917
20
                                   ett_h225_LocationRequest, LocationRequest_sequence);
6918
6919
20
  return offset;
6920
20
}
6921
6922
6923
static const per_sequence_t LocationConfirm_sequence[] = {
6924
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6925
  { &hf_h225_locationConfirm_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6926
  { &hf_h225_locationConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6927
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6928
  { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6929
  { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6930
  { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6931
  { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6932
  { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6933
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6934
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6935
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6936
  { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6937
  { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6938
  { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6939
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6940
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6941
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6942
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6943
  { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6944
  { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6945
  { NULL, 0, 0, NULL }
6946
};
6947
6948
static unsigned
6949
5
dissect_h225_LocationConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6950
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6951
5
                                   ett_h225_LocationConfirm, LocationConfirm_sequence);
6952
6953
5
  return offset;
6954
5
}
6955
6956
6957
const value_string LocationRejectReason_vals[] = {
6958
  {   0, "notRegistered" },
6959
  {   1, "invalidPermission" },
6960
  {   2, "requestDenied" },
6961
  {   3, "undefinedReason" },
6962
  {   4, "securityDenial" },
6963
  {   5, "aliasesInconsistent" },
6964
  {   6, "routeCalltoSCN" },
6965
  {   7, "resourceUnavailable" },
6966
  {   8, "genericDataReason" },
6967
  {   9, "neededFeatureNotSupported" },
6968
  {  10, "hopCountExceeded" },
6969
  {  11, "incompleteAddress" },
6970
  {  12, "securityError" },
6971
  {  13, "securityDHmismatch" },
6972
  {  14, "noRouteToDestination" },
6973
  {  15, "unallocatedNumber" },
6974
  { 0, NULL }
6975
};
6976
6977
static const per_choice_t LocationRejectReason_choice[] = {
6978
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6979
  {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6980
  {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6981
  {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6982
  {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6983
  {   5, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6984
  {   6, &hf_h225_routeCalltoSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6985
  {   7, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6986
  {   8, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6987
  {   9, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6988
  {  10, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6989
  {  11, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6990
  {  12, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6991
  {  13, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6992
  {  14, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6993
  {  15, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6994
  { 0, NULL, 0, NULL }
6995
};
6996
6997
static unsigned
6998
7
dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6999
7
  int32_t value;
7000
7
  h225_packet_info* h225_pi;
7001
7
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7002
7003
7
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7004
7
                                 ett_h225_LocationRejectReason, LocationRejectReason_choice,
7005
7
                                 &value);
7006
7007
7
  if (h225_pi != NULL) {
7008
7
    h225_pi->reason = value;
7009
7
  }
7010
7011
7
  return offset;
7012
7
}
7013
7014
7015
static const per_sequence_t LocationReject_sequence[] = {
7016
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7017
  { &hf_h225_locationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_LocationRejectReason },
7018
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7019
  { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7020
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7021
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7022
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7023
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7024
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7025
  { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
7026
  { NULL, 0, 0, NULL }
7027
};
7028
7029
static unsigned
7030
7
dissect_h225_LocationReject(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7031
7
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7032
7
                                   ett_h225_LocationReject, LocationReject_sequence);
7033
7034
7
  return offset;
7035
7
}
7036
7037
7038
static const per_sequence_t InfoRequest_sequence[] = {
7039
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7040
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7041
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7042
  { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
7043
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7044
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7045
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7046
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7047
  { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UUIEsRequested },
7048
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7049
  { &hf_h225_usageInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
7050
  { &hf_h225_segmentedResponseSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7051
  { &hf_h225_nextSegmentRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_0_65535 },
7052
  { &hf_h225_capacityInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7053
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7054
  { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
7055
  { NULL, 0, 0, NULL }
7056
};
7057
7058
static unsigned
7059
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_) {
7060
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7061
2
                                   ett_h225_InfoRequest, InfoRequest_sequence);
7062
7063
2
  return offset;
7064
2
}
7065
7066
7067
static const per_sequence_t SEQUENCE_OF_RTPSession_sequence_of[1] = {
7068
  { &hf_h225_audio_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RTPSession },
7069
};
7070
7071
static unsigned
7072
73
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_) {
7073
73
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7074
73
                                      ett_h225_SEQUENCE_OF_RTPSession, SEQUENCE_OF_RTPSession_sequence_of);
7075
7076
73
  return offset;
7077
73
}
7078
7079
7080
static const per_sequence_t SEQUENCE_OF_TransportChannelInfo_sequence_of[1] = {
7081
  { &hf_h225_data_item      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7082
};
7083
7084
static unsigned
7085
57
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_) {
7086
57
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7087
57
                                      ett_h225_SEQUENCE_OF_TransportChannelInfo, SEQUENCE_OF_TransportChannelInfo_sequence_of);
7088
7089
57
  return offset;
7090
57
}
7091
7092
7093
static const per_sequence_t SEQUENCE_OF_ConferenceIdentifier_sequence_of[1] = {
7094
  { &hf_h225_substituteConfIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7095
};
7096
7097
static unsigned
7098
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_) {
7099
1
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7100
1
                                      ett_h225_SEQUENCE_OF_ConferenceIdentifier, SEQUENCE_OF_ConferenceIdentifier_sequence_of);
7101
7102
1
  return offset;
7103
1
}
7104
7105
7106
static const per_sequence_t T_pdu_item_sequence[] = {
7107
  { &hf_h225_h323pdu        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
7108
  { &hf_h225_sent           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7109
  { NULL, 0, 0, NULL }
7110
};
7111
7112
static unsigned
7113
82
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_) {
7114
82
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7115
82
                                   ett_h225_T_pdu_item, T_pdu_item_sequence);
7116
7117
82
  return offset;
7118
82
}
7119
7120
7121
static const per_sequence_t T_pdu_sequence_of[1] = {
7122
  { &hf_h225_pdu_item       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_pdu_item },
7123
};
7124
7125
static unsigned
7126
41
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_) {
7127
41
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7128
41
                                      ett_h225_T_pdu, T_pdu_sequence_of);
7129
7130
41
  return offset;
7131
41
}
7132
7133
7134
static const per_sequence_t T_perCallInfo_item_sequence[] = {
7135
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7136
  { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7137
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7138
  { &hf_h225_originator     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
7139
  { &hf_h225_audio          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7140
  { &hf_h225_video          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7141
  { &hf_h225_data           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportChannelInfo },
7142
  { &hf_h225_h245           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7143
  { &hf_h225_callSignalling , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7144
  { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
7145
  { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
7146
  { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
7147
  { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7148
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7149
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7150
  { &hf_h225_substituteConfIDs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ConferenceIdentifier },
7151
  { &hf_h225_pdu            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_pdu },
7152
  { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7153
  { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
7154
  { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
7155
  { NULL, 0, 0, NULL }
7156
};
7157
7158
static unsigned
7159
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_) {
7160
133
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7161
133
                                   ett_h225_T_perCallInfo_item, T_perCallInfo_item_sequence);
7162
7163
133
  return offset;
7164
133
}
7165
7166
7167
static const per_sequence_t T_perCallInfo_sequence_of[1] = {
7168
  { &hf_h225_perCallInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_perCallInfo_item },
7169
};
7170
7171
static unsigned
7172
68
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_) {
7173
68
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7174
68
                                      ett_h225_T_perCallInfo, T_perCallInfo_sequence_of);
7175
7176
68
  return offset;
7177
68
}
7178
7179
7180
static const value_string h225_InfoRequestResponseStatus_vals[] = {
7181
  {   0, "complete" },
7182
  {   1, "incomplete" },
7183
  {   2, "segment" },
7184
  {   3, "invalidCall" },
7185
  { 0, NULL }
7186
};
7187
7188
static const per_choice_t InfoRequestResponseStatus_choice[] = {
7189
  {   0, &hf_h225_complete       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7190
  {   1, &hf_h225_incomplete     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7191
  {   2, &hf_h225_segment        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
7192
  {   3, &hf_h225_invalidCall    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7193
  { 0, NULL, 0, NULL }
7194
};
7195
7196
static unsigned
7197
1
dissect_h225_InfoRequestResponseStatus(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7198
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7199
1
                                 ett_h225_InfoRequestResponseStatus, InfoRequestResponseStatus_choice,
7200
1
                                 NULL);
7201
7202
1
  return offset;
7203
1
}
7204
7205
7206
static const per_sequence_t InfoRequestResponse_sequence[] = {
7207
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7208
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7209
  { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
7210
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7211
  { &hf_h225_infoRequestResponse_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
7212
  { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
7213
  { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
7214
  { &hf_h225_perCallInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_perCallInfo },
7215
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7216
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7217
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7218
  { &hf_h225_needResponse   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7219
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7220
  { &hf_h225_irrStatus      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_InfoRequestResponseStatus },
7221
  { &hf_h225_unsolicited    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7222
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7223
  { NULL, 0, 0, NULL }
7224
};
7225
7226
static unsigned
7227
96
dissect_h225_InfoRequestResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7228
96
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7229
96
                                   ett_h225_InfoRequestResponse, InfoRequestResponse_sequence);
7230
7231
96
  return offset;
7232
96
}
7233
7234
7235
static const per_sequence_t NonStandardMessage_sequence[] = {
7236
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7237
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
7238
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7239
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7240
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7241
  { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7242
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7243
  { NULL, 0, 0, NULL }
7244
};
7245
7246
static unsigned
7247
4
dissect_h225_NonStandardMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7248
4
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7249
4
                                   ett_h225_NonStandardMessage, NonStandardMessage_sequence);
7250
7251
4
  return offset;
7252
4
}
7253
7254
7255
static const per_sequence_t UnknownMessageResponse_sequence[] = {
7256
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7257
  { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7258
  { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7259
  { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7260
  { &hf_h225_messageNotUnderstood, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING },
7261
  { NULL, 0, 0, NULL }
7262
};
7263
7264
static unsigned
7265
5
dissect_h225_UnknownMessageResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7266
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7267
5
                                   ett_h225_UnknownMessageResponse, UnknownMessageResponse_sequence);
7268
7269
5
  return offset;
7270
5
}
7271
7272
7273
static const per_sequence_t RequestInProgress_sequence[] = {
7274
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7275
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7276
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7277
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7278
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7279
  { &hf_h225_delay          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_65535 },
7280
  { NULL, 0, 0, NULL }
7281
};
7282
7283
static unsigned
7284
5
dissect_h225_RequestInProgress(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7285
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7286
5
                                   ett_h225_RequestInProgress, RequestInProgress_sequence);
7287
7288
5
  return offset;
7289
5
}
7290
7291
7292
static const per_sequence_t ResourcesAvailableIndicate_sequence[] = {
7293
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7294
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7295
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7296
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7297
  { &hf_h225_protocols      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedProtocols },
7298
  { &hf_h225_almostOutOfResources, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7299
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7300
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7301
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7302
  { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7303
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7304
  { NULL, 0, 0, NULL }
7305
};
7306
7307
static unsigned
7308
5
dissect_h225_ResourcesAvailableIndicate(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7309
5
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7310
5
                                   ett_h225_ResourcesAvailableIndicate, ResourcesAvailableIndicate_sequence);
7311
7312
5
  return offset;
7313
5
}
7314
7315
7316
static const per_sequence_t ResourcesAvailableConfirm_sequence[] = {
7317
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7318
  { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7319
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7320
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7321
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7322
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7323
  { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7324
  { NULL, 0, 0, NULL }
7325
};
7326
7327
static unsigned
7328
2
dissect_h225_ResourcesAvailableConfirm(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7329
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7330
2
                                   ett_h225_ResourcesAvailableConfirm, ResourcesAvailableConfirm_sequence);
7331
7332
2
  return offset;
7333
2
}
7334
7335
7336
static const per_sequence_t InfoRequestAck_sequence[] = {
7337
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7338
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7339
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7340
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7341
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7342
  { NULL, 0, 0, NULL }
7343
};
7344
7345
static unsigned
7346
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_) {
7347
1
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7348
1
                                   ett_h225_InfoRequestAck, InfoRequestAck_sequence);
7349
7350
1
  return offset;
7351
1
}
7352
7353
7354
const value_string InfoRequestNakReason_vals[] = {
7355
  {   0, "notRegistered" },
7356
  {   1, "securityDenial" },
7357
  {   2, "undefinedReason" },
7358
  {   3, "securityError" },
7359
  { 0, NULL }
7360
};
7361
7362
static const per_choice_t InfoRequestNakReason_choice[] = {
7363
  {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7364
  {   1, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7365
  {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7366
  {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
7367
  { 0, NULL, 0, NULL }
7368
};
7369
7370
static unsigned
7371
2
dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7372
2
  int32_t value;
7373
2
  h225_packet_info* h225_pi;
7374
2
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7375
7376
2
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7377
2
                                 ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice,
7378
2
                                 &value);
7379
7380
2
  if (h225_pi != NULL) {
7381
2
    h225_pi->reason = value;
7382
2
  }
7383
7384
2
  return offset;
7385
2
}
7386
7387
7388
static const per_sequence_t InfoRequestNak_sequence[] = {
7389
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7390
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7391
  { &hf_h225_nakReason      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_InfoRequestNakReason },
7392
  { &hf_h225_altGKInfo      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7393
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7394
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7395
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7396
  { NULL, 0, 0, NULL }
7397
};
7398
7399
static unsigned
7400
2
dissect_h225_InfoRequestNak(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7401
2
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7402
2
                                   ett_h225_InfoRequestNak, InfoRequestNak_sequence);
7403
7404
2
  return offset;
7405
2
}
7406
7407
7408
static const per_sequence_t T_callSpecific_sequence[] = {
7409
  { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7410
  { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7411
  { &hf_h225_answeredCall   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7412
  { NULL, 0, 0, NULL }
7413
};
7414
7415
static unsigned
7416
0
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_) {
7417
0
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7418
0
                                   ett_h225_T_callSpecific, T_callSpecific_sequence);
7419
7420
0
  return offset;
7421
0
}
7422
7423
7424
static const per_sequence_t ServiceControlIndication_sequence[] = {
7425
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7426
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7427
  { &hf_h225_serviceControl , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ServiceControlSession },
7428
  { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
7429
  { &hf_h225_callSpecific   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_callSpecific },
7430
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7431
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7432
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7433
  { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7434
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7435
  { NULL, 0, 0, NULL }
7436
};
7437
7438
static unsigned
7439
13
dissect_h225_ServiceControlIndication(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7440
13
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7441
13
                                   ett_h225_ServiceControlIndication, ServiceControlIndication_sequence);
7442
7443
13
  return offset;
7444
13
}
7445
7446
7447
static const value_string h225_T_result_vals[] = {
7448
  {   0, "started" },
7449
  {   1, "failed" },
7450
  {   2, "stopped" },
7451
  {   3, "notAvailable" },
7452
  {   4, "neededFeatureNotSupported" },
7453
  { 0, NULL }
7454
};
7455
7456
static const per_choice_t T_result_choice[] = {
7457
  {   0, &hf_h225_started        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7458
  {   1, &hf_h225_failed         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7459
  {   2, &hf_h225_stopped        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7460
  {   3, &hf_h225_notAvailable   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7461
  {   4, &hf_h225_neededFeatureNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7462
  { 0, NULL, 0, NULL }
7463
};
7464
7465
static unsigned
7466
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_) {
7467
1
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7468
1
                                 ett_h225_T_result, T_result_choice,
7469
1
                                 NULL);
7470
7471
1
  return offset;
7472
1
}
7473
7474
7475
static const per_sequence_t ServiceControlResponse_sequence[] = {
7476
  { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7477
  { &hf_h225_result         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_result },
7478
  { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7479
  { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7480
  { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7481
  { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7482
  { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7483
  { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7484
  { NULL, 0, 0, NULL }
7485
};
7486
7487
static unsigned
7488
11
dissect_h225_ServiceControlResponse(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7489
11
  offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7490
11
                                   ett_h225_ServiceControlResponse, ServiceControlResponse_sequence);
7491
7492
11
  return offset;
7493
11
}
7494
7495
7496
static const per_sequence_t SEQUENCE_OF_AdmissionConfirm_sequence_of[1] = {
7497
  { &hf_h225_admissionConfirmSequence_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionConfirm },
7498
};
7499
7500
static unsigned
7501
11
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_) {
7502
11
  offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7503
11
                                      ett_h225_SEQUENCE_OF_AdmissionConfirm, SEQUENCE_OF_AdmissionConfirm_sequence_of);
7504
7505
11
  return offset;
7506
11
}
7507
7508
7509
const value_string h225_RasMessage_vals[] = {
7510
  {   0, "gatekeeperRequest" },
7511
  {   1, "gatekeeperConfirm" },
7512
  {   2, "gatekeeperReject" },
7513
  {   3, "registrationRequest" },
7514
  {   4, "registrationConfirm" },
7515
  {   5, "registrationReject" },
7516
  {   6, "unregistrationRequest" },
7517
  {   7, "unregistrationConfirm" },
7518
  {   8, "unregistrationReject" },
7519
  {   9, "admissionRequest" },
7520
  {  10, "admissionConfirm" },
7521
  {  11, "admissionReject" },
7522
  {  12, "bandwidthRequest" },
7523
  {  13, "bandwidthConfirm" },
7524
  {  14, "bandwidthReject" },
7525
  {  15, "disengageRequest" },
7526
  {  16, "disengageConfirm" },
7527
  {  17, "disengageReject" },
7528
  {  18, "locationRequest" },
7529
  {  19, "locationConfirm" },
7530
  {  20, "locationReject" },
7531
  {  21, "infoRequest" },
7532
  {  22, "infoRequestResponse" },
7533
  {  23, "nonStandardMessage" },
7534
  {  24, "unknownMessageResponse" },
7535
  {  25, "requestInProgress" },
7536
  {  26, "resourcesAvailableIndicate" },
7537
  {  27, "resourcesAvailableConfirm" },
7538
  {  28, "infoRequestAck" },
7539
  {  29, "infoRequestNak" },
7540
  {  30, "serviceControlIndication" },
7541
  {  31, "serviceControlResponse" },
7542
  {  32, "admissionConfirmSequence" },
7543
  { 0, NULL }
7544
};
7545
7546
static const per_choice_t RasMessage_choice[] = {
7547
  {   0, &hf_h225_gatekeeperRequest, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperRequest },
7548
  {   1, &hf_h225_gatekeeperConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperConfirm },
7549
  {   2, &hf_h225_gatekeeperReject, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperReject },
7550
  {   3, &hf_h225_registrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationRequest },
7551
  {   4, &hf_h225_registrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationConfirm },
7552
  {   5, &hf_h225_registrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationReject },
7553
  {   6, &hf_h225_unregistrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationRequest },
7554
  {   7, &hf_h225_unregistrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationConfirm },
7555
  {   8, &hf_h225_unregistrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationReject },
7556
  {   9, &hf_h225_admissionRequest, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionRequest },
7557
  {  10, &hf_h225_admissionConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionConfirm },
7558
  {  11, &hf_h225_admissionReject, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionReject },
7559
  {  12, &hf_h225_bandwidthRequest, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthRequest },
7560
  {  13, &hf_h225_bandwidthConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthConfirm },
7561
  {  14, &hf_h225_bandwidthReject, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthReject },
7562
  {  15, &hf_h225_disengageRequest, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageRequest },
7563
  {  16, &hf_h225_disengageConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageConfirm },
7564
  {  17, &hf_h225_disengageReject, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageReject },
7565
  {  18, &hf_h225_locationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_LocationRequest },
7566
  {  19, &hf_h225_locationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_LocationConfirm },
7567
  {  20, &hf_h225_locationReject , ASN1_EXTENSION_ROOT    , dissect_h225_LocationReject },
7568
  {  21, &hf_h225_infoRequest    , ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequest },
7569
  {  22, &hf_h225_infoRequestResponse, ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequestResponse },
7570
  {  23, &hf_h225_nonStandardMessage, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardMessage },
7571
  {  24, &hf_h225_unknownMessageResponse, ASN1_EXTENSION_ROOT    , dissect_h225_UnknownMessageResponse },
7572
  {  25, &hf_h225_requestInProgress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_RequestInProgress },
7573
  {  26, &hf_h225_resourcesAvailableIndicate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableIndicate },
7574
  {  27, &hf_h225_resourcesAvailableConfirm, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableConfirm },
7575
  {  28, &hf_h225_infoRequestAck , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestAck },
7576
  {  29, &hf_h225_infoRequestNak , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestNak },
7577
  {  30, &hf_h225_serviceControlIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlIndication },
7578
  {  31, &hf_h225_serviceControlResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlResponse },
7579
  {  32, &hf_h225_admissionConfirmSequence, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_AdmissionConfirm },
7580
  { 0, NULL, 0, NULL }
7581
};
7582
7583
unsigned
7584
469
dissect_h225_RasMessage(tvbuff_t *tvb _U_, uint32_t offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7585
469
    int32_t rasmessage_value;
7586
469
    h225_packet_info* h225_pi;
7587
7588
469
  call_id_guid = NULL;
7589
469
  offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7590
469
                                 ett_h225_RasMessage, RasMessage_choice,
7591
469
                                 &rasmessage_value);
7592
7593
469
  col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %s ",
7594
469
    val_to_str_const(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
7595
7596
469
  h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7597
469
  if (h225_pi != NULL) {
7598
27
    h225_pi->msg_tag = rasmessage_value;
7599
27
    if (call_id_guid) {
7600
1
      h225_pi->guid = *call_id_guid;
7601
1
    }
7602
27
  }
7603
7604
469
  return offset;
7605
469
}
7606
7607
/*--- PDUs ---*/
7608
7609
12
static int dissect_H323_UserInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7610
12
  unsigned offset = 0;
7611
12
  asn1_ctx_t asn1_ctx;
7612
12
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7613
12
  offset = dissect_h225_H323_UserInformation(tvb, offset, &asn1_ctx, tree, hf_h225_H323_UserInformation_PDU);
7614
12
  offset += 7; offset >>= 3;
7615
12
  return offset;
7616
12
}
7617
0
int dissect_h225_ExtendedAliasAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7618
0
  unsigned offset = 0;
7619
0
  asn1_ctx_t asn1_ctx;
7620
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7621
0
  offset = dissect_h225_ExtendedAliasAddress(tvb, offset, &asn1_ctx, tree, hf_h225_h225_ExtendedAliasAddress_PDU);
7622
0
  offset += 7; offset >>= 3;
7623
0
  return offset;
7624
0
}
7625
469
static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7626
469
  unsigned offset = 0;
7627
469
  asn1_ctx_t asn1_ctx;
7628
469
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7629
469
  offset = dissect_h225_RasMessage(tvb, offset, &asn1_ctx, tree, hf_h225_RasMessage_PDU);
7630
469
  offset += 7; offset >>= 3;
7631
469
  return offset;
7632
469
}
7633
7634
7635
/* Forward declaration we need below */
7636
void proto_reg_handoff_h225(void);
7637
7638
/*
7639
 * Functions needed for Ras-Hash-Table
7640
 */
7641
7642
/* compare 2 keys */
7643
static int h225ras_call_equal(const void *k1, const void *k2)
7644
3
{
7645
3
  const h225ras_call_info_key* key1 = (const h225ras_call_info_key*) k1;
7646
3
  const h225ras_call_info_key* key2 = (const h225ras_call_info_key*) k2;
7647
7648
3
  return (key1->reqSeqNum == key2->reqSeqNum &&
7649
3
          key1->conversation == key2->conversation);
7650
3
}
7651
7652
/* calculate a hash key */
7653
static unsigned h225ras_call_hash(const void *k)
7654
20
{
7655
20
  const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
7656
7657
20
  return key->reqSeqNum + GPOINTER_TO_UINT(key->conversation);
7658
20
}
7659
7660
7661
h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category)
7662
23
{
7663
23
  h225ras_call_t *h225ras_call = (h225ras_call_t *)wmem_map_lookup(ras_calls[category], h225ras_call_key);
7664
7665
23
  return h225ras_call;
7666
23
}
7667
7668
h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category)
7669
10
{
7670
10
  h225ras_call_info_key *new_h225ras_call_key;
7671
10
  h225ras_call_t *h225ras_call = NULL;
7672
7673
7674
  /* Prepare the value data.
7675
     "req_num" and "rsp_num" are frame numbers;
7676
     frame numbers are 1-origin, so we use 0
7677
     to mean "we don't yet know in which frame
7678
     the reply for this call appears". */
7679
10
  new_h225ras_call_key = wmem_new(wmem_file_scope(), h225ras_call_info_key);
7680
10
  new_h225ras_call_key->reqSeqNum = h225ras_call_key->reqSeqNum;
7681
10
  new_h225ras_call_key->conversation = h225ras_call_key->conversation;
7682
10
  h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7683
10
  h225ras_call->req_num = pinfo->num;
7684
10
  h225ras_call->rsp_num = 0;
7685
10
  h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
7686
10
  h225ras_call->responded = false;
7687
10
  h225ras_call->next_call = NULL;
7688
10
  h225ras_call->req_time=pinfo->abs_ts;
7689
10
  h225ras_call->guid=*guid;
7690
  /* store it */
7691
10
  wmem_map_insert(ras_calls[category], new_h225ras_call_key, h225ras_call);
7692
7693
10
  return h225ras_call;
7694
10
}
7695
7696
h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category _U_)
7697
0
{
7698
0
  h225ras_call_t *h225ras_call = NULL;
7699
7700
  /* Prepare the value data.
7701
     "req_num" and "rsp_num" are frame numbers;
7702
     frame numbers are 1-origin, so we use 0
7703
     to mean "we don't yet know in which frame
7704
     the reply for this call appears". */
7705
0
  h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7706
0
  h225ras_call->req_num = pinfo->num;
7707
0
  h225ras_call->rsp_num = 0;
7708
0
  h225ras_call->requestSeqNum = prev_call->requestSeqNum;
7709
0
  h225ras_call->responded = false;
7710
0
  h225ras_call->next_call = NULL;
7711
0
  h225ras_call->req_time=pinfo->abs_ts;
7712
0
  h225ras_call->guid=*guid;
7713
7714
0
  prev_call->next_call = h225ras_call;
7715
0
  return h225ras_call;
7716
0
}
7717
7718
static void
7719
h225_frame_end(void)
7720
481
{
7721
  /* next_tvb pointers are allocated in packet scope, clear it. */
7722
481
  h245_list = NULL;
7723
481
  tp_list = NULL;
7724
481
}
7725
7726
static int
7727
dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7728
12
{
7729
12
  proto_item *it;
7730
12
  proto_tree *tr;
7731
12
  int offset = 0;
7732
12
  h225_packet_info* h225_pi;
7733
7734
  /* Init struct for collecting h225_packet_info */
7735
12
  h225_pi = create_h225_packet_info(pinfo);
7736
12
  h225_pi->msg_type = H225_CS;
7737
12
  p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7738
7739
12
  register_frame_end_routine(pinfo, h225_frame_end);
7740
12
  h245_list = next_tvb_list_new(pinfo->pool);
7741
12
  tp_list = next_tvb_list_new(pinfo->pool);
7742
7743
12
  col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7744
12
  col_clear(pinfo->cinfo, COL_INFO);
7745
7746
12
  it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, -1, PSNAME" CS");
7747
12
  tr=proto_item_add_subtree(it, ett_h225);
7748
7749
12
  offset = dissect_H323_UserInformation_PDU(tvb, pinfo, tr, NULL);
7750
7751
12
  if (h245_list->count){
7752
0
    col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
7753
0
    col_set_fence(pinfo->cinfo, COL_PROTOCOL);
7754
0
  }
7755
7756
12
  next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7757
12
  next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7758
7759
12
  tap_queue_packet(h225_tap, pinfo, h225_pi);
7760
7761
12
  return offset;
7762
12
}
7763
static int
7764
469
dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_){
7765
469
  proto_item *it;
7766
469
  proto_tree *tr;
7767
469
  uint32_t offset=0;
7768
469
  h225_packet_info* h225_pi;
7769
7770
  /* Init struct for collecting h225_packet_info */
7771
469
  h225_pi = create_h225_packet_info(pinfo);
7772
469
  h225_pi->msg_type = H225_RAS;
7773
469
  p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7774
7775
469
  register_frame_end_routine(pinfo, h225_frame_end);
7776
469
  h245_list = next_tvb_list_new(pinfo->pool);
7777
469
  tp_list = next_tvb_list_new(pinfo->pool);
7778
7779
469
  col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7780
7781
469
  it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, PSNAME" RAS");
7782
469
  tr=proto_item_add_subtree(it, ett_h225);
7783
7784
469
  offset = dissect_RasMessage_PDU(tvb, pinfo, tr, NULL);
7785
7786
469
  ras_call_matching(tvb, pinfo, tr, h225_pi);
7787
7788
469
  next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7789
469
  next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7790
7791
469
  tap_queue_packet(h225_tap, pinfo, h225_pi);
7792
7793
469
  return offset;
7794
469
}
7795
7796
7797
/* The following values represent the size of their valuestring arrays */
7798
7799
#define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
7800
#define CS_MSG_TYPES array_length(T_h323_message_body_vals)
7801
7802
#define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
7803
#define RRJ_REASONS array_length(RegistrationRejectReason_vals)
7804
#define URQ_REASONS array_length(UnregRequestReason_vals)
7805
#define URJ_REASONS array_length(UnregRejectReason_vals)
7806
#define ARJ_REASONS array_length(AdmissionRejectReason_vals)
7807
#define BRJ_REASONS array_length(BandRejectReason_vals)
7808
#define DRQ_REASONS array_length(DisengageReason_vals)
7809
#define DRJ_REASONS array_length(DisengageRejectReason_vals)
7810
#define LRJ_REASONS array_length(LocationRejectReason_vals)
7811
#define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
7812
#define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
7813
#define FACILITY_REASONS array_length(FacilityReason_vals)
7814
7815
/* TAP STAT INFO */
7816
typedef enum
7817
{
7818
  MESSAGE_TYPE_COLUMN = 0,
7819
  COUNT_COLUMN
7820
} h225_stat_columns;
7821
7822
typedef struct _h225_table_item {
7823
  unsigned count;     /* Message count */
7824
  unsigned table_idx; /* stat_table index */
7825
} h225_table_item_t;
7826
7827
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"}};
7828
7829
static unsigned ras_msg_idx[RAS_MSG_TYPES];
7830
static unsigned cs_msg_idx[CS_MSG_TYPES];
7831
7832
static unsigned grj_reason_idx[GRJ_REASONS];
7833
static unsigned rrj_reason_idx[RRJ_REASONS];
7834
static unsigned urq_reason_idx[URQ_REASONS];
7835
static unsigned urj_reason_idx[URJ_REASONS];
7836
static unsigned arj_reason_idx[ARJ_REASONS];
7837
static unsigned brj_reason_idx[BRJ_REASONS];
7838
static unsigned drq_reason_idx[DRQ_REASONS];
7839
static unsigned drj_reason_idx[DRJ_REASONS];
7840
static unsigned lrj_reason_idx[LRJ_REASONS];
7841
static unsigned irqnak_reason_idx[IRQNAK_REASONS];
7842
static unsigned rel_cmp_reason_idx[REL_CMP_REASONS];
7843
static unsigned facility_reason_idx[FACILITY_REASONS];
7844
7845
static unsigned other_idx;
7846
7847
static void h225_stat_init(stat_tap_table_ui* new_stat)
7848
0
{
7849
0
  const char *table_name = "H.225 Messages and Message Reasons";
7850
0
  int num_fields = array_length(h225_stat_fields);
7851
0
  stat_tap_table *table;
7852
0
  int row_idx = 0, msg_idx;
7853
0
  stat_tap_table_item_type items[array_length(h225_stat_fields)];
7854
7855
0
  table = stat_tap_find_table(new_stat, table_name);
7856
0
  if (table) {
7857
0
    if (new_stat->stat_tap_reset_table_cb) {
7858
0
      new_stat->stat_tap_reset_table_cb(table);
7859
0
    }
7860
0
    return;
7861
0
  }
7862
7863
0
  memset(items, 0x0, sizeof(items));
7864
0
  table = stat_tap_init_table(table_name, num_fields, 0, NULL);
7865
0
  stat_tap_add_table(new_stat, table);
7866
7867
0
  items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
7868
0
  items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
7869
0
  items[COUNT_COLUMN].value.uint_value = 0;
7870
7871
  /* Add a row for each value type */
7872
7873
0
  msg_idx = 0;
7874
0
  do
7875
0
  {
7876
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7877
0
      h225_RasMessage_vals[msg_idx].strptr
7878
0
      ? h225_RasMessage_vals[msg_idx].strptr
7879
0
      : "Unknown RAS message";
7880
0
    ras_msg_idx[msg_idx] = row_idx;
7881
7882
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7883
0
    row_idx++;
7884
0
    msg_idx++;
7885
0
  } while (h225_RasMessage_vals[msg_idx].strptr);
7886
7887
0
  msg_idx = 0;
7888
0
  do
7889
0
  {
7890
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7891
0
      T_h323_message_body_vals[msg_idx].strptr
7892
0
      ? T_h323_message_body_vals[msg_idx].strptr
7893
0
      : "Unknown CS message";
7894
0
    cs_msg_idx[msg_idx] = row_idx;
7895
7896
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7897
0
    row_idx++;
7898
0
    msg_idx++;
7899
0
  } while (T_h323_message_body_vals[msg_idx].strptr);
7900
7901
0
  msg_idx = 0;
7902
0
  do
7903
0
  {
7904
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7905
0
      GatekeeperRejectReason_vals[msg_idx].strptr
7906
0
      ? GatekeeperRejectReason_vals[msg_idx].strptr
7907
0
      : "Unknown gatekeeper reject reason";
7908
0
    grj_reason_idx[msg_idx] = row_idx;
7909
7910
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7911
0
    row_idx++;
7912
0
    msg_idx++;
7913
0
  } while (GatekeeperRejectReason_vals[msg_idx].strptr);
7914
7915
0
  msg_idx = 0;
7916
0
  do
7917
0
  {
7918
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7919
0
      RegistrationRejectReason_vals[msg_idx].strptr
7920
0
      ? RegistrationRejectReason_vals[msg_idx].strptr
7921
0
      : "Unknown registration reject reason";
7922
0
    rrj_reason_idx[msg_idx] = row_idx;
7923
7924
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7925
0
    row_idx++;
7926
0
    msg_idx++;
7927
0
  } while (RegistrationRejectReason_vals[msg_idx].strptr);
7928
7929
0
  msg_idx = 0;
7930
0
  do
7931
0
  {
7932
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7933
0
      UnregRequestReason_vals[msg_idx].strptr
7934
0
      ? UnregRequestReason_vals[msg_idx].strptr
7935
0
      : "Unknown unregistration request reason";
7936
0
    urq_reason_idx[msg_idx] = row_idx;
7937
7938
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7939
0
    row_idx++;
7940
0
    msg_idx++;
7941
0
  } while (UnregRequestReason_vals[msg_idx].strptr);
7942
7943
0
  msg_idx = 0;
7944
0
  do
7945
0
  {
7946
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7947
0
      UnregRejectReason_vals[msg_idx].strptr
7948
0
      ? UnregRejectReason_vals[msg_idx].strptr
7949
0
      : "Unknown unregistration reject reason";
7950
0
    urj_reason_idx[msg_idx] = row_idx;
7951
7952
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7953
0
    row_idx++;
7954
0
    msg_idx++;
7955
0
  } while (UnregRejectReason_vals[msg_idx].strptr);
7956
7957
0
  msg_idx = 0;
7958
0
  do
7959
0
  {
7960
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7961
0
      AdmissionRejectReason_vals[msg_idx].strptr
7962
0
      ? AdmissionRejectReason_vals[msg_idx].strptr
7963
0
      : "Unknown admission reject reason";
7964
0
    arj_reason_idx[msg_idx] = row_idx;
7965
7966
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7967
0
    row_idx++;
7968
0
    msg_idx++;
7969
0
  } while (AdmissionRejectReason_vals[msg_idx].strptr);
7970
7971
0
  msg_idx = 0;
7972
0
  do
7973
0
  {
7974
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7975
0
      BandRejectReason_vals[msg_idx].strptr
7976
0
      ? BandRejectReason_vals[msg_idx].strptr
7977
0
      : "Unknown band reject reason";
7978
0
    brj_reason_idx[msg_idx] = row_idx;
7979
7980
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7981
0
    row_idx++;
7982
0
    msg_idx++;
7983
0
  } while (BandRejectReason_vals[msg_idx].strptr);
7984
7985
0
  msg_idx = 0;
7986
0
  do
7987
0
  {
7988
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
7989
0
      DisengageReason_vals[msg_idx].strptr
7990
0
      ? DisengageReason_vals[msg_idx].strptr
7991
0
      : "Unknown disengage reason";
7992
0
    drq_reason_idx[msg_idx] = row_idx;
7993
7994
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
7995
0
    row_idx++;
7996
0
    msg_idx++;
7997
0
  } while (DisengageReason_vals[msg_idx].strptr);
7998
7999
0
  msg_idx = 0;
8000
0
  do
8001
0
  {
8002
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8003
0
      DisengageRejectReason_vals[msg_idx].strptr
8004
0
      ? DisengageRejectReason_vals[msg_idx].strptr
8005
0
      : "Unknown disengage reject reason";
8006
0
    drj_reason_idx[msg_idx] = row_idx;
8007
8008
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8009
0
    row_idx++;
8010
0
    msg_idx++;
8011
0
  } while (DisengageRejectReason_vals[msg_idx].strptr);
8012
8013
0
  msg_idx = 0;
8014
0
  do
8015
0
  {
8016
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8017
0
      LocationRejectReason_vals[msg_idx].strptr
8018
0
      ? LocationRejectReason_vals[msg_idx].strptr
8019
0
      : "Unknown location reject reason";
8020
0
    lrj_reason_idx[msg_idx] = row_idx;
8021
8022
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8023
0
    row_idx++;
8024
0
    msg_idx++;
8025
0
  } while (LocationRejectReason_vals[msg_idx].strptr);
8026
8027
0
  msg_idx = 0;
8028
0
  do
8029
0
  {
8030
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8031
0
      InfoRequestNakReason_vals[msg_idx].strptr
8032
0
      ? InfoRequestNakReason_vals[msg_idx].strptr
8033
0
      : "Unknown info request nak reason";
8034
0
    irqnak_reason_idx[msg_idx] = row_idx;
8035
8036
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8037
0
    row_idx++;
8038
0
    msg_idx++;
8039
0
  } while (InfoRequestNakReason_vals[msg_idx].strptr);
8040
8041
0
  msg_idx = 0;
8042
0
  do
8043
0
  {
8044
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8045
0
      h225_ReleaseCompleteReason_vals[msg_idx].strptr
8046
0
      ? h225_ReleaseCompleteReason_vals[msg_idx].strptr
8047
0
      : "Unknown release complete reason";
8048
0
    rel_cmp_reason_idx[msg_idx] = row_idx;
8049
8050
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8051
0
    row_idx++;
8052
0
    msg_idx++;
8053
0
  } while (h225_ReleaseCompleteReason_vals[msg_idx].strptr);
8054
8055
0
  msg_idx = 0;
8056
0
  do
8057
0
  {
8058
0
    items[MESSAGE_TYPE_COLUMN].value.string_value =
8059
0
      FacilityReason_vals[msg_idx].strptr
8060
0
      ? FacilityReason_vals[msg_idx].strptr
8061
0
      : "Unknown facility reason";
8062
0
    facility_reason_idx[msg_idx] = row_idx;
8063
8064
0
    stat_tap_init_table_row(table, row_idx, num_fields, items);
8065
0
    row_idx++;
8066
0
    msg_idx++;
8067
0
  } while (FacilityReason_vals[msg_idx].strptr);
8068
8069
8070
0
  items[MESSAGE_TYPE_COLUMN].value.string_value = "Unknown H.225 message";
8071
0
  stat_tap_init_table_row(table, row_idx, num_fields, items);
8072
0
  other_idx = row_idx;
8073
0
}
8074
8075
static tap_packet_status
8076
h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *hpi_ptr, tap_flags_t flags _U_)
8077
0
{
8078
0
  stat_data_t* stat_data = (stat_data_t*)tapdata;
8079
0
  const h225_packet_info *hpi = (const h225_packet_info *)hpi_ptr;
8080
0
  int tag_idx = -1;
8081
0
  int reason_idx = -1;
8082
8083
0
  if(hpi->msg_tag < 0) { /* uninitialized */
8084
0
    return TAP_PACKET_DONT_REDRAW;
8085
0
  }
8086
8087
0
  switch (hpi->msg_type) {
8088
8089
0
  case H225_RAS:
8090
0
    tag_idx = ras_msg_idx[MIN(hpi->msg_tag, (int)RAS_MSG_TYPES-1)];
8091
8092
    /* Look for reason tag */
8093
0
    if(hpi->reason < 0) { /* uninitialized */
8094
0
      break;
8095
0
    }
8096
8097
0
    switch(hpi->msg_tag) {
8098
8099
0
    case 2: /* GRJ */
8100
0
      reason_idx = grj_reason_idx[MIN(hpi->reason, (int)GRJ_REASONS-1)];
8101
0
      break;
8102
0
    case 5: /* RRJ */
8103
0
      reason_idx = rrj_reason_idx[MIN(hpi->reason, (int)RRJ_REASONS-1)];
8104
0
      break;
8105
0
    case 6: /* URQ */
8106
0
      reason_idx = urq_reason_idx[MIN(hpi->reason, (int)URQ_REASONS-1)];
8107
0
      break;
8108
0
    case 8: /* URJ */
8109
0
      reason_idx = urj_reason_idx[MIN(hpi->reason, (int)URJ_REASONS-1)];
8110
0
      break;
8111
0
    case 11: /* ARJ */
8112
0
      reason_idx = arj_reason_idx[MIN(hpi->reason, (int)ARJ_REASONS-1)];
8113
0
      break;
8114
0
    case 14: /* BRJ */
8115
0
      reason_idx = brj_reason_idx[MIN(hpi->reason, (int)BRJ_REASONS-1)];
8116
0
      break;
8117
0
    case 15: /* DRQ */
8118
0
      reason_idx = drq_reason_idx[MIN(hpi->reason, (int)DRQ_REASONS-1)];
8119
0
      break;
8120
0
    case 17: /* DRJ */
8121
0
      reason_idx = drj_reason_idx[MIN(hpi->reason, (int)DRJ_REASONS-1)];
8122
0
      break;
8123
0
    case 20: /* LRJ */
8124
0
      reason_idx = lrj_reason_idx[MIN(hpi->reason, (int)LRJ_REASONS-1)];
8125
0
      break;
8126
0
    case 29: /* IRQ Nak */
8127
0
      reason_idx = irqnak_reason_idx[MIN(hpi->reason, (int)IRQNAK_REASONS-1)];
8128
0
      break;
8129
0
    default:
8130
      /* do nothing */
8131
0
      break;
8132
0
    }
8133
8134
0
    break;
8135
8136
0
  case H225_CS:
8137
0
    tag_idx = cs_msg_idx[MIN(hpi->msg_tag, (int)CS_MSG_TYPES-1)];
8138
8139
    /* Look for reason tag */
8140
0
    if(hpi->reason < 0) { /* uninitialized */
8141
0
      break;
8142
0
    }
8143
8144
0
    switch(hpi->msg_tag) {
8145
8146
0
    case 5: /* ReleaseComplete */
8147
0
      reason_idx = rel_cmp_reason_idx[MIN(hpi->reason, (int)REL_CMP_REASONS-1)];
8148
0
      break;
8149
0
    case 6: /* Facility */
8150
0
      reason_idx = facility_reason_idx[MIN(hpi->reason, (int)FACILITY_REASONS-1)];
8151
0
      break;
8152
0
    default:
8153
      /* do nothing */
8154
0
      break;
8155
0
    }
8156
8157
0
    break;
8158
8159
0
  case H225_OTHERS:
8160
0
  default:
8161
0
    tag_idx = other_idx;
8162
0
  }
8163
8164
0
  if (tag_idx >= 0) {
8165
0
    stat_tap_table*table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
8166
0
    stat_tap_table_item_type* msg_data = stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);
8167
0
    msg_data->value.uint_value++;
8168
0
    stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
8169
8170
0
    if (reason_idx >= 0) {
8171
0
      msg_data = stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);
8172
0
      msg_data->value.uint_value++;
8173
0
      stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
8174
0
    }
8175
8176
0
    return TAP_PACKET_REDRAW;
8177
0
  }
8178
0
  return TAP_PACKET_DONT_REDRAW;
8179
0
}
8180
8181
static void
8182
h225_stat_reset(stat_tap_table* table)
8183
0
{
8184
0
  unsigned element;
8185
0
  stat_tap_table_item_type* item_data;
8186
8187
0
  for (element = 0; element < table->num_elements; element++)
8188
0
  {
8189
0
    item_data = stat_tap_get_field_data(table, element, COUNT_COLUMN);
8190
0
    item_data->value.uint_value = 0;
8191
0
    stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
8192
0
  }
8193
0
}
8194
8195
/*--- proto_register_h225 -------------------------------------------*/
8196
14
void proto_register_h225(void) {
8197
8198
  /* List of fields */
8199
14
  static hf_register_info hf[] = {
8200
14
  { &hf_h221Manufacturer,
8201
14
    { "H.225 Manufacturer", "h225.Manufacturer", FT_UINT32, BASE_HEX,
8202
14
    VALS(H221ManufacturerCode_vals), 0, "h225.H.221 Manufacturer", HFILL }},
8203
8204
14
  { &hf_h225_ras_req_frame,
8205
14
    { "RAS Request Frame", "h225.ras.reqframe", FT_FRAMENUM, BASE_NONE,
8206
14
    FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0, NULL, HFILL }},
8207
8208
14
  { &hf_h225_ras_rsp_frame,
8209
14
    { "RAS Response Frame", "h225.ras.rspframe", FT_FRAMENUM, BASE_NONE,
8210
14
    FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0, NULL, HFILL }},
8211
8212
14
  { &hf_h225_ras_dup,
8213
14
    { "Duplicate RAS Message", "h225.ras.dup", FT_UINT32, BASE_DEC,
8214
14
    NULL, 0, NULL, HFILL }},
8215
8216
14
  { &hf_h225_ras_deltatime,
8217
14
    { "RAS Service Response Time", "h225.ras.timedelta", FT_RELATIVE_TIME, BASE_NONE,
8218
14
    NULL, 0, "Timedelta between RAS-Request and RAS-Response", HFILL }},
8219
8220
14
  { &hf_h225_debug_dissector_try_string,
8221
14
    { "*** DEBUG dissector_try_string", "h225.debug.dissector_try_string", FT_STRING, BASE_NONE,
8222
14
    NULL, 0, NULL, HFILL }},
8223
8224
14
    { &hf_h225_H323_UserInformation_PDU,
8225
14
      { "H323-UserInformation", "h225.H323_UserInformation_element",
8226
14
        FT_NONE, BASE_NONE, NULL, 0,
8227
14
        NULL, HFILL }},
8228
14
    { &hf_h225_h225_ExtendedAliasAddress_PDU,
8229
14
      { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8230
14
        FT_NONE, BASE_NONE, NULL, 0,
8231
14
        NULL, HFILL }},
8232
14
    { &hf_h225_RasMessage_PDU,
8233
14
      { "RasMessage", "h225.RasMessage",
8234
14
        FT_UINT32, BASE_DEC, VALS(h225_RasMessage_vals), 0,
8235
14
        NULL, HFILL }},
8236
14
    { &hf_h225_h323_uu_pdu,
8237
14
      { "h323-uu-pdu", "h225.h323_uu_pdu_element",
8238
14
        FT_NONE, BASE_NONE, NULL, 0,
8239
14
        NULL, HFILL }},
8240
14
    { &hf_h225_user_data,
8241
14
      { "user-data", "h225.user_data_element",
8242
14
        FT_NONE, BASE_NONE, NULL, 0,
8243
14
        NULL, HFILL }},
8244
14
    { &hf_h225_protocol_discriminator,
8245
14
      { "protocol-discriminator", "h225.protocol_discriminator",
8246
14
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &q931_protocol_discriminator_vals_ext, 0,
8247
14
        "INTEGER_0_255", HFILL }},
8248
14
    { &hf_h225_user_information,
8249
14
      { "user-information", "h225.user_information",
8250
14
        FT_BYTES, BASE_NONE, NULL, 0,
8251
14
        "OCTET_STRING_SIZE_1_131", HFILL }},
8252
14
    { &hf_h225_h323_message_body,
8253
14
      { "h323-message-body", "h225.h323_message_body",
8254
14
        FT_UINT32, BASE_DEC, VALS(T_h323_message_body_vals), 0,
8255
14
        NULL, HFILL }},
8256
14
    { &hf_h225_setup,
8257
14
      { "setup", "h225.setup_element",
8258
14
        FT_NONE, BASE_NONE, NULL, 0,
8259
14
        "Setup_UUIE", HFILL }},
8260
14
    { &hf_h225_callProceeding,
8261
14
      { "callProceeding", "h225.callProceeding_element",
8262
14
        FT_NONE, BASE_NONE, NULL, 0,
8263
14
        "CallProceeding_UUIE", HFILL }},
8264
14
    { &hf_h225_connect,
8265
14
      { "connect", "h225.connect_element",
8266
14
        FT_NONE, BASE_NONE, NULL, 0,
8267
14
        "Connect_UUIE", HFILL }},
8268
14
    { &hf_h225_alerting,
8269
14
      { "alerting", "h225.alerting_element",
8270
14
        FT_NONE, BASE_NONE, NULL, 0,
8271
14
        "Alerting_UUIE", HFILL }},
8272
14
    { &hf_h225_information,
8273
14
      { "information", "h225.information_element",
8274
14
        FT_NONE, BASE_NONE, NULL, 0,
8275
14
        "Information_UUIE", HFILL }},
8276
14
    { &hf_h225_releaseComplete,
8277
14
      { "releaseComplete", "h225.releaseComplete_element",
8278
14
        FT_NONE, BASE_NONE, NULL, 0,
8279
14
        "ReleaseComplete_UUIE", HFILL }},
8280
14
    { &hf_h225_facility,
8281
14
      { "facility", "h225.facility_element",
8282
14
        FT_NONE, BASE_NONE, NULL, 0,
8283
14
        "Facility_UUIE", HFILL }},
8284
14
    { &hf_h225_progress,
8285
14
      { "progress", "h225.progress_element",
8286
14
        FT_NONE, BASE_NONE, NULL, 0,
8287
14
        "Progress_UUIE", HFILL }},
8288
14
    { &hf_h225_empty_flg,
8289
14
      { "empty", "h225.empty_flg_element",
8290
14
        FT_NONE, BASE_NONE, NULL, 0,
8291
14
        "T_empty_flg", HFILL }},
8292
14
    { &hf_h225_status,
8293
14
      { "status", "h225.status_element",
8294
14
        FT_NONE, BASE_NONE, NULL, 0,
8295
14
        "Status_UUIE", HFILL }},
8296
14
    { &hf_h225_statusInquiry,
8297
14
      { "statusInquiry", "h225.statusInquiry_element",
8298
14
        FT_NONE, BASE_NONE, NULL, 0,
8299
14
        "StatusInquiry_UUIE", HFILL }},
8300
14
    { &hf_h225_setupAcknowledge,
8301
14
      { "setupAcknowledge", "h225.setupAcknowledge_element",
8302
14
        FT_NONE, BASE_NONE, NULL, 0,
8303
14
        "SetupAcknowledge_UUIE", HFILL }},
8304
14
    { &hf_h225_notify,
8305
14
      { "notify", "h225.notify_element",
8306
14
        FT_NONE, BASE_NONE, NULL, 0,
8307
14
        "Notify_UUIE", HFILL }},
8308
14
    { &hf_h225_nonStandardData,
8309
14
      { "nonStandardData", "h225.nonStandardData_element",
8310
14
        FT_NONE, BASE_NONE, NULL, 0,
8311
14
        "NonStandardParameter", HFILL }},
8312
14
    { &hf_h225_h4501SupplementaryService,
8313
14
      { "h4501SupplementaryService", "h225.h4501SupplementaryService",
8314
14
        FT_UINT32, BASE_DEC, NULL, 0,
8315
14
        NULL, HFILL }},
8316
14
    { &hf_h225_h4501SupplementaryService_item,
8317
14
      { "h4501SupplementaryService item", "h225.h4501SupplementaryService_item",
8318
14
        FT_UINT32, BASE_DEC, NULL, 0,
8319
14
        NULL, HFILL }},
8320
14
    { &hf_h225_h245Tunnelling,
8321
14
      { "h245Tunnelling", "h225.h245Tunnelling",
8322
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8323
14
        NULL, HFILL }},
8324
14
    { &hf_h225_H245Control_item,
8325
14
      { "H245Control item", "h225.H245Control_item",
8326
14
        FT_UINT32, BASE_DEC, NULL, 0,
8327
14
        NULL, HFILL }},
8328
14
    { &hf_h225_h245Control,
8329
14
      { "h245Control", "h225.h245Control",
8330
14
        FT_UINT32, BASE_DEC, NULL, 0,
8331
14
        NULL, HFILL }},
8332
14
    { &hf_h225_nonStandardControl,
8333
14
      { "nonStandardControl", "h225.nonStandardControl",
8334
14
        FT_UINT32, BASE_DEC, NULL, 0,
8335
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
8336
14
    { &hf_h225_nonStandardControl_item,
8337
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
8338
14
        FT_NONE, BASE_NONE, NULL, 0,
8339
14
        NULL, HFILL }},
8340
14
    { &hf_h225_callLinkage,
8341
14
      { "callLinkage", "h225.callLinkage_element",
8342
14
        FT_NONE, BASE_NONE, NULL, 0,
8343
14
        NULL, HFILL }},
8344
14
    { &hf_h225_tunnelledSignallingMessage,
8345
14
      { "tunnelledSignallingMessage", "h225.tunnelledSignallingMessage_element",
8346
14
        FT_NONE, BASE_NONE, NULL, 0,
8347
14
        NULL, HFILL }},
8348
14
    { &hf_h225_tunnelledProtocolID,
8349
14
      { "tunnelledProtocolID", "h225.tunnelledProtocolID_element",
8350
14
        FT_NONE, BASE_NONE, NULL, 0,
8351
14
        "TunnelledProtocol", HFILL }},
8352
14
    { &hf_h225_messageContent,
8353
14
      { "messageContent", "h225.messageContent",
8354
14
        FT_UINT32, BASE_DEC, NULL, 0,
8355
14
        NULL, HFILL }},
8356
14
    { &hf_h225_messageContent_item,
8357
14
      { "messageContent item", "h225.messageContent_item",
8358
14
        FT_UINT32, BASE_DEC, NULL, 0,
8359
14
        "T_messageContent_item", HFILL }},
8360
14
    { &hf_h225_tunnellingRequired,
8361
14
      { "tunnellingRequired", "h225.tunnellingRequired_element",
8362
14
        FT_NONE, BASE_NONE, NULL, 0,
8363
14
        NULL, HFILL }},
8364
14
    { &hf_h225_provisionalRespToH245Tunnelling,
8365
14
      { "provisionalRespToH245Tunnelling", "h225.provisionalRespToH245Tunnelling_element",
8366
14
        FT_NONE, BASE_NONE, NULL, 0,
8367
14
        NULL, HFILL }},
8368
14
    { &hf_h225_stimulusControl,
8369
14
      { "stimulusControl", "h225.stimulusControl_element",
8370
14
        FT_NONE, BASE_NONE, NULL, 0,
8371
14
        NULL, HFILL }},
8372
14
    { &hf_h225_genericData,
8373
14
      { "genericData", "h225.genericData",
8374
14
        FT_UINT32, BASE_DEC, NULL, 0,
8375
14
        "SEQUENCE_OF_GenericData", HFILL }},
8376
14
    { &hf_h225_genericData_item,
8377
14
      { "GenericData", "h225.GenericData_element",
8378
14
        FT_NONE, BASE_NONE, NULL, 0,
8379
14
        NULL, HFILL }},
8380
14
    { &hf_h225_nonStandard,
8381
14
      { "nonStandard", "h225.nonStandard_element",
8382
14
        FT_NONE, BASE_NONE, NULL, 0,
8383
14
        "NonStandardParameter", HFILL }},
8384
14
    { &hf_h225_isText,
8385
14
      { "isText", "h225.isText_element",
8386
14
        FT_NONE, BASE_NONE, NULL, 0,
8387
14
        NULL, HFILL }},
8388
14
    { &hf_h225_h248Message,
8389
14
      { "h248Message", "h225.h248Message",
8390
14
        FT_BYTES, BASE_NONE, NULL, 0,
8391
14
        "OCTET_STRING", HFILL }},
8392
14
    { &hf_h225_protocolIdentifier,
8393
14
      { "protocolIdentifier", "h225.protocolIdentifier",
8394
14
        FT_OID, BASE_NONE, NULL, 0,
8395
14
        NULL, HFILL }},
8396
14
    { &hf_h225_uUIE_destinationInfo,
8397
14
      { "destinationInfo", "h225.uUIE_destinationInfo_element",
8398
14
        FT_NONE, BASE_NONE, NULL, 0,
8399
14
        "EndpointType", HFILL }},
8400
14
    { &hf_h225_h245Address,
8401
14
      { "h245Address", "h225.h245Address",
8402
14
        FT_UINT32, BASE_DEC, VALS(h225_H245TransportAddress_vals), 0,
8403
14
        "H245TransportAddress", HFILL }},
8404
14
    { &hf_h225_callIdentifier,
8405
14
      { "callIdentifier", "h225.callIdentifier_element",
8406
14
        FT_NONE, BASE_NONE, NULL, 0,
8407
14
        NULL, HFILL }},
8408
14
    { &hf_h225_h245SecurityMode,
8409
14
      { "h245SecurityMode", "h225.h245SecurityMode",
8410
14
        FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8411
14
        "H245Security", HFILL }},
8412
14
    { &hf_h225_tokens,
8413
14
      { "tokens", "h225.tokens",
8414
14
        FT_UINT32, BASE_DEC, NULL, 0,
8415
14
        "SEQUENCE_OF_ClearToken", HFILL }},
8416
14
    { &hf_h225_tokens_item,
8417
14
      { "ClearToken", "h225.ClearToken_element",
8418
14
        FT_NONE, BASE_NONE, NULL, 0,
8419
14
        NULL, HFILL }},
8420
14
    { &hf_h225_cryptoTokens,
8421
14
      { "cryptoTokens", "h225.cryptoTokens",
8422
14
        FT_UINT32, BASE_DEC, NULL, 0,
8423
14
        "SEQUENCE_OF_CryptoH323Token", HFILL }},
8424
14
    { &hf_h225_cryptoTokens_item,
8425
14
      { "CryptoH323Token", "h225.CryptoH323Token",
8426
14
        FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
8427
14
        NULL, HFILL }},
8428
14
    { &hf_h225_fastStart,
8429
14
      { "fastStart", "h225.fastStart",
8430
14
        FT_UINT32, BASE_DEC, NULL, 0,
8431
14
        NULL, HFILL }},
8432
14
    { &hf_h225_multipleCalls,
8433
14
      { "multipleCalls", "h225.multipleCalls",
8434
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8435
14
        "BOOLEAN", HFILL }},
8436
14
    { &hf_h225_maintainConnection,
8437
14
      { "maintainConnection", "h225.maintainConnection",
8438
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8439
14
        "BOOLEAN", HFILL }},
8440
14
    { &hf_h225_alertingAddress,
8441
14
      { "alertingAddress", "h225.alertingAddress",
8442
14
        FT_UINT32, BASE_DEC, NULL, 0,
8443
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8444
14
    { &hf_h225_alertingAddress_item,
8445
14
      { "AliasAddress", "h225.AliasAddress",
8446
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8447
14
        NULL, HFILL }},
8448
14
    { &hf_h225_presentationIndicator,
8449
14
      { "presentationIndicator", "h225.presentationIndicator",
8450
14
        FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
8451
14
        NULL, HFILL }},
8452
14
    { &hf_h225_screeningIndicator,
8453
14
      { "screeningIndicator", "h225.screeningIndicator",
8454
14
        FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
8455
14
        NULL, HFILL }},
8456
14
    { &hf_h225_fastConnectRefused,
8457
14
      { "fastConnectRefused", "h225.fastConnectRefused_element",
8458
14
        FT_NONE, BASE_NONE, NULL, 0,
8459
14
        NULL, HFILL }},
8460
14
    { &hf_h225_serviceControl,
8461
14
      { "serviceControl", "h225.serviceControl",
8462
14
        FT_UINT32, BASE_DEC, NULL, 0,
8463
14
        "SEQUENCE_OF_ServiceControlSession", HFILL }},
8464
14
    { &hf_h225_serviceControl_item,
8465
14
      { "ServiceControlSession", "h225.ServiceControlSession_element",
8466
14
        FT_NONE, BASE_NONE, NULL, 0,
8467
14
        NULL, HFILL }},
8468
14
    { &hf_h225_capacity,
8469
14
      { "capacity", "h225.capacity_element",
8470
14
        FT_NONE, BASE_NONE, NULL, 0,
8471
14
        "CallCapacity", HFILL }},
8472
14
    { &hf_h225_featureSet,
8473
14
      { "featureSet", "h225.featureSet_element",
8474
14
        FT_NONE, BASE_NONE, NULL, 0,
8475
14
        NULL, HFILL }},
8476
14
    { &hf_h225_displayName,
8477
14
      { "displayName", "h225.displayName",
8478
14
        FT_UINT32, BASE_DEC, NULL, 0,
8479
14
        "SEQUENCE_OF_DisplayName", HFILL }},
8480
14
    { &hf_h225_displayName_item,
8481
14
      { "DisplayName", "h225.DisplayName_element",
8482
14
        FT_NONE, BASE_NONE, NULL, 0,
8483
14
        NULL, HFILL }},
8484
14
    { &hf_h225_conferenceID,
8485
14
      { "conferenceID", "h225.conferenceID",
8486
14
        FT_GUID, BASE_NONE, NULL, 0,
8487
14
        "ConferenceIdentifier", HFILL }},
8488
14
    { &hf_h225_language,
8489
14
      { "language", "h225.language",
8490
14
        FT_UINT32, BASE_DEC, NULL, 0,
8491
14
        NULL, HFILL }},
8492
14
    { &hf_h225_connectedAddress,
8493
14
      { "connectedAddress", "h225.connectedAddress",
8494
14
        FT_UINT32, BASE_DEC, NULL, 0,
8495
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8496
14
    { &hf_h225_connectedAddress_item,
8497
14
      { "AliasAddress", "h225.AliasAddress",
8498
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8499
14
        NULL, HFILL }},
8500
14
    { &hf_h225_circuitInfo,
8501
14
      { "circuitInfo", "h225.circuitInfo_element",
8502
14
        FT_NONE, BASE_NONE, NULL, 0,
8503
14
        NULL, HFILL }},
8504
14
    { &hf_h225_releaseCompleteReason,
8505
14
      { "reason", "h225.releaseCompleteReason",
8506
14
        FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
8507
14
        "ReleaseCompleteReason", HFILL }},
8508
14
    { &hf_h225_busyAddress,
8509
14
      { "busyAddress", "h225.busyAddress",
8510
14
        FT_UINT32, BASE_DEC, NULL, 0,
8511
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8512
14
    { &hf_h225_busyAddress_item,
8513
14
      { "AliasAddress", "h225.AliasAddress",
8514
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8515
14
        NULL, HFILL }},
8516
14
    { &hf_h225_destinationInfo,
8517
14
      { "destinationInfo", "h225.destinationInfo_element",
8518
14
        FT_NONE, BASE_NONE, NULL, 0,
8519
14
        "EndpointType", HFILL }},
8520
14
    { &hf_h225_noBandwidth,
8521
14
      { "noBandwidth", "h225.noBandwidth_element",
8522
14
        FT_NONE, BASE_NONE, NULL, 0,
8523
14
        NULL, HFILL }},
8524
14
    { &hf_h225_gatekeeperResources,
8525
14
      { "gatekeeperResources", "h225.gatekeeperResources_element",
8526
14
        FT_NONE, BASE_NONE, NULL, 0,
8527
14
        NULL, HFILL }},
8528
14
    { &hf_h225_unreachableDestination,
8529
14
      { "unreachableDestination", "h225.unreachableDestination_element",
8530
14
        FT_NONE, BASE_NONE, NULL, 0,
8531
14
        NULL, HFILL }},
8532
14
    { &hf_h225_destinationRejection,
8533
14
      { "destinationRejection", "h225.destinationRejection_element",
8534
14
        FT_NONE, BASE_NONE, NULL, 0,
8535
14
        NULL, HFILL }},
8536
14
    { &hf_h225_invalidRevision,
8537
14
      { "invalidRevision", "h225.invalidRevision_element",
8538
14
        FT_NONE, BASE_NONE, NULL, 0,
8539
14
        NULL, HFILL }},
8540
14
    { &hf_h225_noPermission,
8541
14
      { "noPermission", "h225.noPermission_element",
8542
14
        FT_NONE, BASE_NONE, NULL, 0,
8543
14
        NULL, HFILL }},
8544
14
    { &hf_h225_unreachableGatekeeper,
8545
14
      { "unreachableGatekeeper", "h225.unreachableGatekeeper_element",
8546
14
        FT_NONE, BASE_NONE, NULL, 0,
8547
14
        NULL, HFILL }},
8548
14
    { &hf_h225_gatewayResources,
8549
14
      { "gatewayResources", "h225.gatewayResources_element",
8550
14
        FT_NONE, BASE_NONE, NULL, 0,
8551
14
        NULL, HFILL }},
8552
14
    { &hf_h225_badFormatAddress,
8553
14
      { "badFormatAddress", "h225.badFormatAddress_element",
8554
14
        FT_NONE, BASE_NONE, NULL, 0,
8555
14
        NULL, HFILL }},
8556
14
    { &hf_h225_adaptiveBusy,
8557
14
      { "adaptiveBusy", "h225.adaptiveBusy_element",
8558
14
        FT_NONE, BASE_NONE, NULL, 0,
8559
14
        NULL, HFILL }},
8560
14
    { &hf_h225_inConf,
8561
14
      { "inConf", "h225.inConf_element",
8562
14
        FT_NONE, BASE_NONE, NULL, 0,
8563
14
        NULL, HFILL }},
8564
14
    { &hf_h225_undefinedReason,
8565
14
      { "undefinedReason", "h225.undefinedReason_element",
8566
14
        FT_NONE, BASE_NONE, NULL, 0,
8567
14
        NULL, HFILL }},
8568
14
    { &hf_h225_facilityCallDeflection,
8569
14
      { "facilityCallDeflection", "h225.facilityCallDeflection_element",
8570
14
        FT_NONE, BASE_NONE, NULL, 0,
8571
14
        NULL, HFILL }},
8572
14
    { &hf_h225_securityDenied,
8573
14
      { "securityDenied", "h225.securityDenied_element",
8574
14
        FT_NONE, BASE_NONE, NULL, 0,
8575
14
        NULL, HFILL }},
8576
14
    { &hf_h225_calledPartyNotRegistered,
8577
14
      { "calledPartyNotRegistered", "h225.calledPartyNotRegistered_element",
8578
14
        FT_NONE, BASE_NONE, NULL, 0,
8579
14
        NULL, HFILL }},
8580
14
    { &hf_h225_callerNotRegistered,
8581
14
      { "callerNotRegistered", "h225.callerNotRegistered_element",
8582
14
        FT_NONE, BASE_NONE, NULL, 0,
8583
14
        NULL, HFILL }},
8584
14
    { &hf_h225_newConnectionNeeded,
8585
14
      { "newConnectionNeeded", "h225.newConnectionNeeded_element",
8586
14
        FT_NONE, BASE_NONE, NULL, 0,
8587
14
        NULL, HFILL }},
8588
14
    { &hf_h225_nonStandardReason,
8589
14
      { "nonStandardReason", "h225.nonStandardReason_element",
8590
14
        FT_NONE, BASE_NONE, NULL, 0,
8591
14
        "NonStandardParameter", HFILL }},
8592
14
    { &hf_h225_replaceWithConferenceInvite,
8593
14
      { "replaceWithConferenceInvite", "h225.replaceWithConferenceInvite",
8594
14
        FT_GUID, BASE_NONE, NULL, 0,
8595
14
        "ConferenceIdentifier", HFILL }},
8596
14
    { &hf_h225_genericDataReason,
8597
14
      { "genericDataReason", "h225.genericDataReason_element",
8598
14
        FT_NONE, BASE_NONE, NULL, 0,
8599
14
        NULL, HFILL }},
8600
14
    { &hf_h225_neededFeatureNotSupported,
8601
14
      { "neededFeatureNotSupported", "h225.neededFeatureNotSupported_element",
8602
14
        FT_NONE, BASE_NONE, NULL, 0,
8603
14
        NULL, HFILL }},
8604
14
    { &hf_h225_tunnelledSignallingRejected,
8605
14
      { "tunnelledSignallingRejected", "h225.tunnelledSignallingRejected_element",
8606
14
        FT_NONE, BASE_NONE, NULL, 0,
8607
14
        NULL, HFILL }},
8608
14
    { &hf_h225_invalidCID,
8609
14
      { "invalidCID", "h225.invalidCID_element",
8610
14
        FT_NONE, BASE_NONE, NULL, 0,
8611
14
        NULL, HFILL }},
8612
14
    { &hf_h225_rLC_securityError,
8613
14
      { "securityError", "h225.rLC_securityError",
8614
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
8615
14
        "SecurityErrors", HFILL }},
8616
14
    { &hf_h225_hopCountExceeded,
8617
14
      { "hopCountExceeded", "h225.hopCountExceeded_element",
8618
14
        FT_NONE, BASE_NONE, NULL, 0,
8619
14
        NULL, HFILL }},
8620
14
    { &hf_h225_sourceAddress,
8621
14
      { "sourceAddress", "h225.sourceAddress",
8622
14
        FT_UINT32, BASE_DEC, NULL, 0,
8623
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8624
14
    { &hf_h225_sourceAddress_item,
8625
14
      { "AliasAddress", "h225.AliasAddress",
8626
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8627
14
        NULL, HFILL }},
8628
14
    { &hf_h225_setup_UUIE_sourceInfo,
8629
14
      { "sourceInfo", "h225.setup_UUIE_sourceInfo_element",
8630
14
        FT_NONE, BASE_NONE, NULL, 0,
8631
14
        "EndpointType", HFILL }},
8632
14
    { &hf_h225_destinationAddress,
8633
14
      { "destinationAddress", "h225.destinationAddress",
8634
14
        FT_UINT32, BASE_DEC, NULL, 0,
8635
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8636
14
    { &hf_h225_destinationAddress_item,
8637
14
      { "AliasAddress", "h225.AliasAddress",
8638
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8639
14
        NULL, HFILL }},
8640
14
    { &hf_h225_destCallSignalAddress,
8641
14
      { "destCallSignalAddress", "h225.destCallSignalAddress",
8642
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8643
14
        "TransportAddress", HFILL }},
8644
14
    { &hf_h225_destExtraCallInfo,
8645
14
      { "destExtraCallInfo", "h225.destExtraCallInfo",
8646
14
        FT_UINT32, BASE_DEC, NULL, 0,
8647
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8648
14
    { &hf_h225_destExtraCallInfo_item,
8649
14
      { "AliasAddress", "h225.AliasAddress",
8650
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8651
14
        NULL, HFILL }},
8652
14
    { &hf_h225_destExtraCRV,
8653
14
      { "destExtraCRV", "h225.destExtraCRV",
8654
14
        FT_UINT32, BASE_DEC, NULL, 0,
8655
14
        "SEQUENCE_OF_CallReferenceValue", HFILL }},
8656
14
    { &hf_h225_destExtraCRV_item,
8657
14
      { "CallReferenceValue", "h225.CallReferenceValue",
8658
14
        FT_UINT32, BASE_DEC, NULL, 0,
8659
14
        NULL, HFILL }},
8660
14
    { &hf_h225_activeMC,
8661
14
      { "activeMC", "h225.activeMC",
8662
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8663
14
        "BOOLEAN", HFILL }},
8664
14
    { &hf_h225_conferenceGoal,
8665
14
      { "conferenceGoal", "h225.conferenceGoal",
8666
14
        FT_UINT32, BASE_DEC, VALS(h225_T_conferenceGoal_vals), 0,
8667
14
        NULL, HFILL }},
8668
14
    { &hf_h225_create,
8669
14
      { "create", "h225.create_element",
8670
14
        FT_NONE, BASE_NONE, NULL, 0,
8671
14
        NULL, HFILL }},
8672
14
    { &hf_h225_join,
8673
14
      { "join", "h225.join_element",
8674
14
        FT_NONE, BASE_NONE, NULL, 0,
8675
14
        NULL, HFILL }},
8676
14
    { &hf_h225_invite,
8677
14
      { "invite", "h225.invite_element",
8678
14
        FT_NONE, BASE_NONE, NULL, 0,
8679
14
        NULL, HFILL }},
8680
14
    { &hf_h225_capability_negotiation,
8681
14
      { "capability-negotiation", "h225.capability_negotiation_element",
8682
14
        FT_NONE, BASE_NONE, NULL, 0,
8683
14
        NULL, HFILL }},
8684
14
    { &hf_h225_callIndependentSupplementaryService,
8685
14
      { "callIndependentSupplementaryService", "h225.callIndependentSupplementaryService_element",
8686
14
        FT_NONE, BASE_NONE, NULL, 0,
8687
14
        NULL, HFILL }},
8688
14
    { &hf_h225_callServices,
8689
14
      { "callServices", "h225.callServices_element",
8690
14
        FT_NONE, BASE_NONE, NULL, 0,
8691
14
        "QseriesOptions", HFILL }},
8692
14
    { &hf_h225_callType,
8693
14
      { "callType", "h225.callType",
8694
14
        FT_UINT32, BASE_DEC, VALS(h225_CallType_vals), 0,
8695
14
        NULL, HFILL }},
8696
14
    { &hf_h225_sourceCallSignalAddress,
8697
14
      { "sourceCallSignalAddress", "h225.sourceCallSignalAddress",
8698
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8699
14
        "TransportAddress", HFILL }},
8700
14
    { &hf_h225_uUIE_remoteExtensionAddress,
8701
14
      { "remoteExtensionAddress", "h225.uUIE_remoteExtensionAddress",
8702
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8703
14
        "AliasAddress", HFILL }},
8704
14
    { &hf_h225_h245SecurityCapability,
8705
14
      { "h245SecurityCapability", "h225.h245SecurityCapability",
8706
14
        FT_UINT32, BASE_DEC, NULL, 0,
8707
14
        "SEQUENCE_OF_H245Security", HFILL }},
8708
14
    { &hf_h225_h245SecurityCapability_item,
8709
14
      { "H245Security", "h225.H245Security",
8710
14
        FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8711
14
        NULL, HFILL }},
8712
14
    { &hf_h225_FastStart_item,
8713
14
      { "FastStart item", "h225.FastStart_item",
8714
14
        FT_UINT32, BASE_DEC, NULL, 0,
8715
14
        NULL, HFILL }},
8716
14
    { &hf_h225_mediaWaitForConnect,
8717
14
      { "mediaWaitForConnect", "h225.mediaWaitForConnect",
8718
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8719
14
        "BOOLEAN", HFILL }},
8720
14
    { &hf_h225_canOverlapSend,
8721
14
      { "canOverlapSend", "h225.canOverlapSend",
8722
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8723
14
        "BOOLEAN", HFILL }},
8724
14
    { &hf_h225_endpointIdentifier,
8725
14
      { "endpointIdentifier", "h225.endpointIdentifier",
8726
14
        FT_STRING, BASE_NONE, NULL, 0,
8727
14
        NULL, HFILL }},
8728
14
    { &hf_h225_connectionParameters,
8729
14
      { "connectionParameters", "h225.connectionParameters_element",
8730
14
        FT_NONE, BASE_NONE, NULL, 0,
8731
14
        NULL, HFILL }},
8732
14
    { &hf_h225_connectionType,
8733
14
      { "connectionType", "h225.connectionType",
8734
14
        FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionType_vals), 0,
8735
14
        "ScnConnectionType", HFILL }},
8736
14
    { &hf_h225_numberOfScnConnections,
8737
14
      { "numberOfScnConnections", "h225.numberOfScnConnections",
8738
14
        FT_UINT32, BASE_DEC, NULL, 0,
8739
14
        "INTEGER_0_65535", HFILL }},
8740
14
    { &hf_h225_connectionAggregation,
8741
14
      { "connectionAggregation", "h225.connectionAggregation",
8742
14
        FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0,
8743
14
        "ScnConnectionAggregation", HFILL }},
8744
14
    { &hf_h225_Language_item,
8745
14
      { "Language item", "h225.Language_item",
8746
14
        FT_STRING, BASE_NONE, NULL, 0,
8747
14
        "IA5String_SIZE_1_32", HFILL }},
8748
14
    { &hf_h225_symmetricOperationRequired,
8749
14
      { "symmetricOperationRequired", "h225.symmetricOperationRequired_element",
8750
14
        FT_NONE, BASE_NONE, NULL, 0,
8751
14
        NULL, HFILL }},
8752
14
    { &hf_h225_desiredProtocols,
8753
14
      { "desiredProtocols", "h225.desiredProtocols",
8754
14
        FT_UINT32, BASE_DEC, NULL, 0,
8755
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
8756
14
    { &hf_h225_desiredProtocols_item,
8757
14
      { "SupportedProtocols", "h225.SupportedProtocols",
8758
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
8759
14
        NULL, HFILL }},
8760
14
    { &hf_h225_neededFeatures,
8761
14
      { "neededFeatures", "h225.neededFeatures",
8762
14
        FT_UINT32, BASE_DEC, NULL, 0,
8763
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8764
14
    { &hf_h225_neededFeatures_item,
8765
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8766
14
        FT_NONE, BASE_NONE, NULL, 0,
8767
14
        NULL, HFILL }},
8768
14
    { &hf_h225_desiredFeatures,
8769
14
      { "desiredFeatures", "h225.desiredFeatures",
8770
14
        FT_UINT32, BASE_DEC, NULL, 0,
8771
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8772
14
    { &hf_h225_desiredFeatures_item,
8773
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8774
14
        FT_NONE, BASE_NONE, NULL, 0,
8775
14
        NULL, HFILL }},
8776
14
    { &hf_h225_supportedFeatures,
8777
14
      { "supportedFeatures", "h225.supportedFeatures",
8778
14
        FT_UINT32, BASE_DEC, NULL, 0,
8779
14
        "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8780
14
    { &hf_h225_supportedFeatures_item,
8781
14
      { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8782
14
        FT_NONE, BASE_NONE, NULL, 0,
8783
14
        NULL, HFILL }},
8784
14
    { &hf_h225_ParallelH245Control_item,
8785
14
      { "ParallelH245Control item", "h225.ParallelH245Control_item",
8786
14
        FT_UINT32, BASE_DEC, NULL, 0,
8787
14
        NULL, HFILL }},
8788
14
    { &hf_h225_parallelH245Control,
8789
14
      { "parallelH245Control", "h225.parallelH245Control",
8790
14
        FT_UINT32, BASE_DEC, NULL, 0,
8791
14
        NULL, HFILL }},
8792
14
    { &hf_h225_additionalSourceAddresses,
8793
14
      { "additionalSourceAddresses", "h225.additionalSourceAddresses",
8794
14
        FT_UINT32, BASE_DEC, NULL, 0,
8795
14
        "SEQUENCE_OF_ExtendedAliasAddress", HFILL }},
8796
14
    { &hf_h225_additionalSourceAddresses_item,
8797
14
      { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8798
14
        FT_NONE, BASE_NONE, NULL, 0,
8799
14
        NULL, HFILL }},
8800
14
    { &hf_h225_hopCount_1_31,
8801
14
      { "hopCount", "h225.hopCount_1_31",
8802
14
        FT_UINT32, BASE_DEC, NULL, 0,
8803
14
        "INTEGER_1_31", HFILL }},
8804
14
    { &hf_h225_unknown,
8805
14
      { "unknown", "h225.unknown_element",
8806
14
        FT_NONE, BASE_NONE, NULL, 0,
8807
14
        NULL, HFILL }},
8808
14
    { &hf_h225_bChannel,
8809
14
      { "bChannel", "h225.bChannel_element",
8810
14
        FT_NONE, BASE_NONE, NULL, 0,
8811
14
        NULL, HFILL }},
8812
14
    { &hf_h225_hybrid2x64,
8813
14
      { "hybrid2x64", "h225.hybrid2x64_element",
8814
14
        FT_NONE, BASE_NONE, NULL, 0,
8815
14
        NULL, HFILL }},
8816
14
    { &hf_h225_hybrid384,
8817
14
      { "hybrid384", "h225.hybrid384_element",
8818
14
        FT_NONE, BASE_NONE, NULL, 0,
8819
14
        NULL, HFILL }},
8820
14
    { &hf_h225_hybrid1536,
8821
14
      { "hybrid1536", "h225.hybrid1536_element",
8822
14
        FT_NONE, BASE_NONE, NULL, 0,
8823
14
        NULL, HFILL }},
8824
14
    { &hf_h225_hybrid1920,
8825
14
      { "hybrid1920", "h225.hybrid1920_element",
8826
14
        FT_NONE, BASE_NONE, NULL, 0,
8827
14
        NULL, HFILL }},
8828
14
    { &hf_h225_multirate,
8829
14
      { "multirate", "h225.multirate_element",
8830
14
        FT_NONE, BASE_NONE, NULL, 0,
8831
14
        NULL, HFILL }},
8832
14
    { &hf_h225_auto,
8833
14
      { "auto", "h225.auto_element",
8834
14
        FT_NONE, BASE_NONE, NULL, 0,
8835
14
        NULL, HFILL }},
8836
14
    { &hf_h225_none,
8837
14
      { "none", "h225.none_element",
8838
14
        FT_NONE, BASE_NONE, NULL, 0,
8839
14
        NULL, HFILL }},
8840
14
    { &hf_h225_h221,
8841
14
      { "h221", "h225.h221_element",
8842
14
        FT_NONE, BASE_NONE, NULL, 0,
8843
14
        NULL, HFILL }},
8844
14
    { &hf_h225_bonded_mode1,
8845
14
      { "bonded-mode1", "h225.bonded_mode1_element",
8846
14
        FT_NONE, BASE_NONE, NULL, 0,
8847
14
        NULL, HFILL }},
8848
14
    { &hf_h225_bonded_mode2,
8849
14
      { "bonded-mode2", "h225.bonded_mode2_element",
8850
14
        FT_NONE, BASE_NONE, NULL, 0,
8851
14
        NULL, HFILL }},
8852
14
    { &hf_h225_bonded_mode3,
8853
14
      { "bonded-mode3", "h225.bonded_mode3_element",
8854
14
        FT_NONE, BASE_NONE, NULL, 0,
8855
14
        NULL, HFILL }},
8856
14
    { &hf_h225_presentationAllowed,
8857
14
      { "presentationAllowed", "h225.presentationAllowed_element",
8858
14
        FT_NONE, BASE_NONE, NULL, 0,
8859
14
        NULL, HFILL }},
8860
14
    { &hf_h225_presentationRestricted,
8861
14
      { "presentationRestricted", "h225.presentationRestricted_element",
8862
14
        FT_NONE, BASE_NONE, NULL, 0,
8863
14
        NULL, HFILL }},
8864
14
    { &hf_h225_addressNotAvailable,
8865
14
      { "addressNotAvailable", "h225.addressNotAvailable_element",
8866
14
        FT_NONE, BASE_NONE, NULL, 0,
8867
14
        NULL, HFILL }},
8868
14
    { &hf_h225_alternativeAddress,
8869
14
      { "alternativeAddress", "h225.alternativeAddress",
8870
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8871
14
        "TransportAddress", HFILL }},
8872
14
    { &hf_h225_alternativeAliasAddress,
8873
14
      { "alternativeAliasAddress", "h225.alternativeAliasAddress",
8874
14
        FT_UINT32, BASE_DEC, NULL, 0,
8875
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
8876
14
    { &hf_h225_alternativeAliasAddress_item,
8877
14
      { "AliasAddress", "h225.AliasAddress",
8878
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8879
14
        NULL, HFILL }},
8880
14
    { &hf_h225_facilityReason,
8881
14
      { "reason", "h225.facilityReason",
8882
14
        FT_UINT32, BASE_DEC, VALS(FacilityReason_vals), 0,
8883
14
        "FacilityReason", HFILL }},
8884
14
    { &hf_h225_conferences,
8885
14
      { "conferences", "h225.conferences",
8886
14
        FT_UINT32, BASE_DEC, NULL, 0,
8887
14
        "SEQUENCE_OF_ConferenceList", HFILL }},
8888
14
    { &hf_h225_conferences_item,
8889
14
      { "ConferenceList", "h225.ConferenceList_element",
8890
14
        FT_NONE, BASE_NONE, NULL, 0,
8891
14
        NULL, HFILL }},
8892
14
    { &hf_h225_conferenceAlias,
8893
14
      { "conferenceAlias", "h225.conferenceAlias",
8894
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8895
14
        "AliasAddress", HFILL }},
8896
14
    { &hf_h225_routeCallToGatekeeper,
8897
14
      { "routeCallToGatekeeper", "h225.routeCallToGatekeeper_element",
8898
14
        FT_NONE, BASE_NONE, NULL, 0,
8899
14
        NULL, HFILL }},
8900
14
    { &hf_h225_callForwarded,
8901
14
      { "callForwarded", "h225.callForwarded_element",
8902
14
        FT_NONE, BASE_NONE, NULL, 0,
8903
14
        NULL, HFILL }},
8904
14
    { &hf_h225_routeCallToMC,
8905
14
      { "routeCallToMC", "h225.routeCallToMC_element",
8906
14
        FT_NONE, BASE_NONE, NULL, 0,
8907
14
        NULL, HFILL }},
8908
14
    { &hf_h225_conferenceListChoice,
8909
14
      { "conferenceListChoice", "h225.conferenceListChoice_element",
8910
14
        FT_NONE, BASE_NONE, NULL, 0,
8911
14
        NULL, HFILL }},
8912
14
    { &hf_h225_startH245,
8913
14
      { "startH245", "h225.startH245_element",
8914
14
        FT_NONE, BASE_NONE, NULL, 0,
8915
14
        NULL, HFILL }},
8916
14
    { &hf_h225_noH245,
8917
14
      { "noH245", "h225.noH245_element",
8918
14
        FT_NONE, BASE_NONE, NULL, 0,
8919
14
        NULL, HFILL }},
8920
14
    { &hf_h225_newTokens,
8921
14
      { "newTokens", "h225.newTokens_element",
8922
14
        FT_NONE, BASE_NONE, NULL, 0,
8923
14
        NULL, HFILL }},
8924
14
    { &hf_h225_featureSetUpdate,
8925
14
      { "featureSetUpdate", "h225.featureSetUpdate_element",
8926
14
        FT_NONE, BASE_NONE, NULL, 0,
8927
14
        NULL, HFILL }},
8928
14
    { &hf_h225_forwardedElements,
8929
14
      { "forwardedElements", "h225.forwardedElements_element",
8930
14
        FT_NONE, BASE_NONE, NULL, 0,
8931
14
        NULL, HFILL }},
8932
14
    { &hf_h225_transportedInformation,
8933
14
      { "transportedInformation", "h225.transportedInformation_element",
8934
14
        FT_NONE, BASE_NONE, NULL, 0,
8935
14
        NULL, HFILL }},
8936
14
    { &hf_h225_h245IpAddress,
8937
14
      { "ipAddress", "h225.h245IpAddress_element",
8938
14
        FT_NONE, BASE_NONE, NULL, 0,
8939
14
        "T_h245IpAddress", HFILL }},
8940
14
    { &hf_h225_h245Ip,
8941
14
      { "ip", "h225.h245Ip",
8942
14
        FT_IPv4, BASE_NONE, NULL, 0,
8943
14
        "T_h245Ip", HFILL }},
8944
14
    { &hf_h225_h245IpPort,
8945
14
      { "port", "h225.h245IpPort",
8946
14
        FT_UINT32, BASE_DEC, NULL, 0,
8947
14
        "T_h245IpPort", HFILL }},
8948
14
    { &hf_h225_h245IpSourceRoute,
8949
14
      { "ipSourceRoute", "h225.h245IpSourceRoute_element",
8950
14
        FT_NONE, BASE_NONE, NULL, 0,
8951
14
        "T_h245IpSourceRoute", HFILL }},
8952
14
    { &hf_h225_ip,
8953
14
      { "ip", "h225.ip",
8954
14
        FT_BYTES, BASE_NONE, NULL, 0,
8955
14
        "OCTET_STRING_SIZE_4", HFILL }},
8956
14
    { &hf_h225_port,
8957
14
      { "port", "h225.port",
8958
14
        FT_UINT32, BASE_DEC, NULL, 0,
8959
14
        "INTEGER_0_65535", HFILL }},
8960
14
    { &hf_h225_h245Route,
8961
14
      { "route", "h225.h245Route",
8962
14
        FT_UINT32, BASE_DEC, NULL, 0,
8963
14
        "T_h245Route", HFILL }},
8964
14
    { &hf_h225_h245Route_item,
8965
14
      { "route item", "h225.h245Route_item",
8966
14
        FT_BYTES, BASE_NONE, NULL, 0,
8967
14
        "OCTET_STRING_SIZE_4", HFILL }},
8968
14
    { &hf_h225_h245Routing,
8969
14
      { "routing", "h225.h245Routing",
8970
14
        FT_UINT32, BASE_DEC, VALS(h225_T_h245Routing_vals), 0,
8971
14
        "T_h245Routing", HFILL }},
8972
14
    { &hf_h225_strict,
8973
14
      { "strict", "h225.strict_element",
8974
14
        FT_NONE, BASE_NONE, NULL, 0,
8975
14
        NULL, HFILL }},
8976
14
    { &hf_h225_loose,
8977
14
      { "loose", "h225.loose_element",
8978
14
        FT_NONE, BASE_NONE, NULL, 0,
8979
14
        NULL, HFILL }},
8980
14
    { &hf_h225_h245IpxAddress,
8981
14
      { "ipxAddress", "h225.h245IpxAddress_element",
8982
14
        FT_NONE, BASE_NONE, NULL, 0,
8983
14
        "T_h245IpxAddress", HFILL }},
8984
14
    { &hf_h225_node,
8985
14
      { "node", "h225.node",
8986
14
        FT_BYTES, BASE_NONE, NULL, 0,
8987
14
        "OCTET_STRING_SIZE_6", HFILL }},
8988
14
    { &hf_h225_netnum,
8989
14
      { "netnum", "h225.netnum",
8990
14
        FT_BYTES, BASE_NONE, NULL, 0,
8991
14
        "OCTET_STRING_SIZE_4", HFILL }},
8992
14
    { &hf_h225_h245IpxPort,
8993
14
      { "port", "h225.h245IpxPort",
8994
14
        FT_BYTES, BASE_NONE, NULL, 0,
8995
14
        "OCTET_STRING_SIZE_2", HFILL }},
8996
14
    { &hf_h225_h245Ip6Address,
8997
14
      { "ip6Address", "h225.h245Ip6Address_element",
8998
14
        FT_NONE, BASE_NONE, NULL, 0,
8999
14
        "T_h245Ip6Address", HFILL }},
9000
14
    { &hf_h225_h245Ip6,
9001
14
      { "ip", "h225.h245Ip6",
9002
14
        FT_IPv6, BASE_NONE, NULL, 0,
9003
14
        "T_h245Ip6", HFILL }},
9004
14
    { &hf_h225_h245Ip6port,
9005
14
      { "port", "h225.h245Ip6port",
9006
14
        FT_UINT32, BASE_DEC, NULL, 0,
9007
14
        "T_h245Ip6port", HFILL }},
9008
14
    { &hf_h225_netBios,
9009
14
      { "netBios", "h225.netBios",
9010
14
        FT_BYTES, BASE_NONE, NULL, 0,
9011
14
        "OCTET_STRING_SIZE_16", HFILL }},
9012
14
    { &hf_h225_nsap,
9013
14
      { "nsap", "h225.nsap",
9014
14
        FT_BYTES, BASE_NONE, NULL, 0,
9015
14
        "OCTET_STRING_SIZE_1_20", HFILL }},
9016
14
    { &hf_h225_nonStandardAddress,
9017
14
      { "nonStandardAddress", "h225.nonStandardAddress_element",
9018
14
        FT_NONE, BASE_NONE, NULL, 0,
9019
14
        "NonStandardParameter", HFILL }},
9020
14
    { &hf_h225_ipAddress,
9021
14
      { "ipAddress", "h225.ipAddress_element",
9022
14
        FT_NONE, BASE_NONE, NULL, 0,
9023
14
        NULL, HFILL }},
9024
14
    { &hf_h225_ipV4,
9025
14
      { "ip", "h225.ipV4",
9026
14
        FT_IPv4, BASE_NONE, NULL, 0,
9027
14
        "IpV4", HFILL }},
9028
14
    { &hf_h225_ipV4_port,
9029
14
      { "port", "h225.ipV4_port",
9030
14
        FT_UINT32, BASE_DEC, NULL, 0,
9031
14
        "INTEGER_0_65535", HFILL }},
9032
14
    { &hf_h225_ipSourceRoute,
9033
14
      { "ipSourceRoute", "h225.ipSourceRoute_element",
9034
14
        FT_NONE, BASE_NONE, NULL, 0,
9035
14
        NULL, HFILL }},
9036
14
    { &hf_h225_src_route_ipV4,
9037
14
      { "ip", "h225.src_route_ipV4",
9038
14
        FT_BYTES, BASE_NONE, NULL, 0,
9039
14
        "OCTET_STRING_SIZE_4", HFILL }},
9040
14
    { &hf_h225_ipV4_src_port,
9041
14
      { "port", "h225.ipV4_src_port",
9042
14
        FT_UINT32, BASE_DEC, NULL, 0,
9043
14
        "INTEGER_0_65535", HFILL }},
9044
14
    { &hf_h225_route,
9045
14
      { "route", "h225.route",
9046
14
        FT_UINT32, BASE_DEC, NULL, 0,
9047
14
        NULL, HFILL }},
9048
14
    { &hf_h225_route_item,
9049
14
      { "route item", "h225.route_item",
9050
14
        FT_BYTES, BASE_NONE, NULL, 0,
9051
14
        "OCTET_STRING_SIZE_4", HFILL }},
9052
14
    { &hf_h225_routing,
9053
14
      { "routing", "h225.routing",
9054
14
        FT_UINT32, BASE_DEC, VALS(h225_T_routing_vals), 0,
9055
14
        NULL, HFILL }},
9056
14
    { &hf_h225_ipxAddress,
9057
14
      { "ipxAddress", "h225.ipxAddress_element",
9058
14
        FT_NONE, BASE_NONE, NULL, 0,
9059
14
        NULL, HFILL }},
9060
14
    { &hf_h225_ipx_port,
9061
14
      { "port", "h225.ipx_port",
9062
14
        FT_BYTES, BASE_NONE, NULL, 0,
9063
14
        "OCTET_STRING_SIZE_2", HFILL }},
9064
14
    { &hf_h225_ip6Address,
9065
14
      { "ip6Address", "h225.ip6Address_element",
9066
14
        FT_NONE, BASE_NONE, NULL, 0,
9067
14
        NULL, HFILL }},
9068
14
    { &hf_h225_ipV6,
9069
14
      { "ip", "h225.ipV6",
9070
14
        FT_IPv6, BASE_NONE, NULL, 0,
9071
14
        "OCTET_STRING_SIZE_16", HFILL }},
9072
14
    { &hf_h225_ipV6_port,
9073
14
      { "port", "h225.ipV6_port",
9074
14
        FT_UINT32, BASE_DEC, NULL, 0,
9075
14
        "INTEGER_0_65535", HFILL }},
9076
14
    { &hf_h225_vendor,
9077
14
      { "vendor", "h225.vendor_element",
9078
14
        FT_NONE, BASE_NONE, NULL, 0,
9079
14
        "VendorIdentifier", HFILL }},
9080
14
    { &hf_h225_gatekeeper,
9081
14
      { "gatekeeper", "h225.gatekeeper_element",
9082
14
        FT_NONE, BASE_NONE, NULL, 0,
9083
14
        "GatekeeperInfo", HFILL }},
9084
14
    { &hf_h225_gateway,
9085
14
      { "gateway", "h225.gateway_element",
9086
14
        FT_NONE, BASE_NONE, NULL, 0,
9087
14
        "GatewayInfo", HFILL }},
9088
14
    { &hf_h225_mcu,
9089
14
      { "mcu", "h225.mcu_element",
9090
14
        FT_NONE, BASE_NONE, NULL, 0,
9091
14
        "McuInfo", HFILL }},
9092
14
    { &hf_h225_terminal,
9093
14
      { "terminal", "h225.terminal_element",
9094
14
        FT_NONE, BASE_NONE, NULL, 0,
9095
14
        "TerminalInfo", HFILL }},
9096
14
    { &hf_h225_mc,
9097
14
      { "mc", "h225.mc",
9098
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9099
14
        "BOOLEAN", HFILL }},
9100
14
    { &hf_h225_undefinedNode,
9101
14
      { "undefinedNode", "h225.undefinedNode",
9102
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9103
14
        "BOOLEAN", HFILL }},
9104
14
    { &hf_h225_set,
9105
14
      { "set", "h225.set",
9106
14
        FT_BYTES, BASE_NONE, NULL, 0,
9107
14
        "BIT_STRING_SIZE_32", HFILL }},
9108
14
    { &hf_h225_supportedTunnelledProtocols,
9109
14
      { "supportedTunnelledProtocols", "h225.supportedTunnelledProtocols",
9110
14
        FT_UINT32, BASE_DEC, NULL, 0,
9111
14
        "SEQUENCE_OF_TunnelledProtocol", HFILL }},
9112
14
    { &hf_h225_supportedTunnelledProtocols_item,
9113
14
      { "TunnelledProtocol", "h225.TunnelledProtocol_element",
9114
14
        FT_NONE, BASE_NONE, NULL, 0,
9115
14
        NULL, HFILL }},
9116
14
    { &hf_h225_protocol,
9117
14
      { "protocol", "h225.protocol",
9118
14
        FT_UINT32, BASE_DEC, NULL, 0,
9119
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
9120
14
    { &hf_h225_protocol_item,
9121
14
      { "SupportedProtocols", "h225.SupportedProtocols",
9122
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
9123
14
        NULL, HFILL }},
9124
14
    { &hf_h225_h310,
9125
14
      { "h310", "h225.h310_element",
9126
14
        FT_NONE, BASE_NONE, NULL, 0,
9127
14
        "H310Caps", HFILL }},
9128
14
    { &hf_h225_h320,
9129
14
      { "h320", "h225.h320_element",
9130
14
        FT_NONE, BASE_NONE, NULL, 0,
9131
14
        "H320Caps", HFILL }},
9132
14
    { &hf_h225_h321,
9133
14
      { "h321", "h225.h321_element",
9134
14
        FT_NONE, BASE_NONE, NULL, 0,
9135
14
        "H321Caps", HFILL }},
9136
14
    { &hf_h225_h322,
9137
14
      { "h322", "h225.h322_element",
9138
14
        FT_NONE, BASE_NONE, NULL, 0,
9139
14
        "H322Caps", HFILL }},
9140
14
    { &hf_h225_h323,
9141
14
      { "h323", "h225.h323_element",
9142
14
        FT_NONE, BASE_NONE, NULL, 0,
9143
14
        "H323Caps", HFILL }},
9144
14
    { &hf_h225_h324,
9145
14
      { "h324", "h225.h324_element",
9146
14
        FT_NONE, BASE_NONE, NULL, 0,
9147
14
        "H324Caps", HFILL }},
9148
14
    { &hf_h225_voice,
9149
14
      { "voice", "h225.voice_element",
9150
14
        FT_NONE, BASE_NONE, NULL, 0,
9151
14
        "VoiceCaps", HFILL }},
9152
14
    { &hf_h225_t120_only,
9153
14
      { "t120-only", "h225.t120_only_element",
9154
14
        FT_NONE, BASE_NONE, NULL, 0,
9155
14
        "T120OnlyCaps", HFILL }},
9156
14
    { &hf_h225_nonStandardProtocol,
9157
14
      { "nonStandardProtocol", "h225.nonStandardProtocol_element",
9158
14
        FT_NONE, BASE_NONE, NULL, 0,
9159
14
        NULL, HFILL }},
9160
14
    { &hf_h225_t38FaxAnnexbOnly,
9161
14
      { "t38FaxAnnexbOnly", "h225.t38FaxAnnexbOnly_element",
9162
14
        FT_NONE, BASE_NONE, NULL, 0,
9163
14
        "T38FaxAnnexbOnlyCaps", HFILL }},
9164
14
    { &hf_h225_sip,
9165
14
      { "sip", "h225.sip_element",
9166
14
        FT_NONE, BASE_NONE, NULL, 0,
9167
14
        "SIPCaps", HFILL }},
9168
14
    { &hf_h225_dataRatesSupported,
9169
14
      { "dataRatesSupported", "h225.dataRatesSupported",
9170
14
        FT_UINT32, BASE_DEC, NULL, 0,
9171
14
        "SEQUENCE_OF_DataRate", HFILL }},
9172
14
    { &hf_h225_dataRatesSupported_item,
9173
14
      { "DataRate", "h225.DataRate_element",
9174
14
        FT_NONE, BASE_NONE, NULL, 0,
9175
14
        NULL, HFILL }},
9176
14
    { &hf_h225_supportedPrefixes,
9177
14
      { "supportedPrefixes", "h225.supportedPrefixes",
9178
14
        FT_UINT32, BASE_DEC, NULL, 0,
9179
14
        "SEQUENCE_OF_SupportedPrefix", HFILL }},
9180
14
    { &hf_h225_supportedPrefixes_item,
9181
14
      { "SupportedPrefix", "h225.SupportedPrefix_element",
9182
14
        FT_NONE, BASE_NONE, NULL, 0,
9183
14
        NULL, HFILL }},
9184
14
    { &hf_h225_t38FaxProtocol,
9185
14
      { "t38FaxProtocol", "h225.t38FaxProtocol",
9186
14
        FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
9187
14
        "DataProtocolCapability", HFILL }},
9188
14
    { &hf_h225_t38FaxProfile,
9189
14
      { "t38FaxProfile", "h225.t38FaxProfile_element",
9190
14
        FT_NONE, BASE_NONE, NULL, 0,
9191
14
        NULL, HFILL }},
9192
14
    { &hf_h225_vendorIdentifier_vendor,
9193
14
      { "vendor", "h225.vendorIdentifier_vendor_element",
9194
14
        FT_NONE, BASE_NONE, NULL, 0,
9195
14
        "H221NonStandard", HFILL }},
9196
14
    { &hf_h225_productId,
9197
14
      { "productId", "h225.productId",
9198
14
        FT_STRING, BASE_NONE, NULL, 0,
9199
14
        "OCTET_STRING_SIZE_1_256", HFILL }},
9200
14
    { &hf_h225_versionId,
9201
14
      { "versionId", "h225.versionId",
9202
14
        FT_STRING, BASE_NONE, NULL, 0,
9203
14
        "OCTET_STRING_SIZE_1_256", HFILL }},
9204
14
    { &hf_h225_enterpriseNumber,
9205
14
      { "enterpriseNumber", "h225.enterpriseNumber",
9206
14
        FT_OID, BASE_NONE, NULL, 0,
9207
14
        "OBJECT_IDENTIFIER", HFILL }},
9208
14
    { &hf_h225_t35CountryCode,
9209
14
      { "t35CountryCode", "h225.t35CountryCode",
9210
14
        FT_UINT32, BASE_DEC, VALS(T35CountryCode_vals), 0,
9211
14
        NULL, HFILL }},
9212
14
    { &hf_h225_t35Extension,
9213
14
      { "t35Extension", "h225.t35Extension",
9214
14
        FT_UINT32, BASE_DEC, NULL, 0,
9215
14
        NULL, HFILL }},
9216
14
    { &hf_h225_manufacturerCode,
9217
14
      { "manufacturerCode", "h225.manufacturerCode",
9218
14
        FT_UINT32, BASE_DEC, NULL, 0,
9219
14
        NULL, HFILL }},
9220
14
    { &hf_h225_tunnelledProtocol_id,
9221
14
      { "id", "h225.tunnelledProtocol_id",
9222
14
        FT_UINT32, BASE_DEC, VALS(h225_TunnelledProtocol_id_vals), 0,
9223
14
        "TunnelledProtocol_id", HFILL }},
9224
14
    { &hf_h225_tunnelledProtocolObjectID,
9225
14
      { "tunnelledProtocolObjectID", "h225.tunnelledProtocolObjectID",
9226
14
        FT_OID, BASE_NONE, NULL, 0,
9227
14
        NULL, HFILL }},
9228
14
    { &hf_h225_tunnelledProtocolAlternateID,
9229
14
      { "tunnelledProtocolAlternateID", "h225.tunnelledProtocolAlternateID_element",
9230
14
        FT_NONE, BASE_NONE, NULL, 0,
9231
14
        "TunnelledProtocolAlternateIdentifier", HFILL }},
9232
14
    { &hf_h225_subIdentifier,
9233
14
      { "subIdentifier", "h225.subIdentifier",
9234
14
        FT_STRING, BASE_NONE, NULL, 0,
9235
14
        "IA5String_SIZE_1_64", HFILL }},
9236
14
    { &hf_h225_protocolType,
9237
14
      { "protocolType", "h225.protocolType",
9238
14
        FT_STRING, BASE_NONE, NULL, 0,
9239
14
        "IA5String_SIZE_1_64", HFILL }},
9240
14
    { &hf_h225_protocolVariant,
9241
14
      { "protocolVariant", "h225.protocolVariant",
9242
14
        FT_STRING, BASE_NONE, NULL, 0,
9243
14
        "IA5String_SIZE_1_64", HFILL }},
9244
14
    { &hf_h225_nonStandardIdentifier,
9245
14
      { "nonStandardIdentifier", "h225.nonStandardIdentifier",
9246
14
        FT_UINT32, BASE_DEC, VALS(h225_NonStandardIdentifier_vals), 0,
9247
14
        NULL, HFILL }},
9248
14
    { &hf_h225_nsp_data,
9249
14
      { "data", "h225.nsp_data",
9250
14
        FT_UINT32, BASE_DEC, NULL, 0,
9251
14
        "T_nsp_data", HFILL }},
9252
14
    { &hf_h225_nsiOID,
9253
14
      { "object", "h225.nsiOID",
9254
14
        FT_OID, BASE_NONE, NULL, 0,
9255
14
        "T_nsiOID", HFILL }},
9256
14
    { &hf_h225_h221NonStandard,
9257
14
      { "h221NonStandard", "h225.h221NonStandard_element",
9258
14
        FT_NONE, BASE_NONE, NULL, 0,
9259
14
        NULL, HFILL }},
9260
14
    { &hf_h225_dialledDigits,
9261
14
      { "dialledDigits", "h225.dialledDigits",
9262
14
        FT_STRING, BASE_NONE, NULL, 0,
9263
14
        "DialedDigits", HFILL }},
9264
14
    { &hf_h225_h323_ID,
9265
14
      { "h323-ID", "h225.h323_ID",
9266
14
        FT_STRING, BASE_NONE, NULL, 0,
9267
14
        "BMPString_SIZE_1_256", HFILL }},
9268
14
    { &hf_h225_url_ID,
9269
14
      { "url-ID", "h225.url_ID",
9270
14
        FT_STRING, BASE_NONE, NULL, 0,
9271
14
        "IA5String_SIZE_1_512", HFILL }},
9272
14
    { &hf_h225_transportID,
9273
14
      { "transportID", "h225.transportID",
9274
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9275
14
        "TransportAddress", HFILL }},
9276
14
    { &hf_h225_email_ID,
9277
14
      { "email-ID", "h225.email_ID",
9278
14
        FT_STRING, BASE_NONE, NULL, 0,
9279
14
        "IA5String_SIZE_1_512", HFILL }},
9280
14
    { &hf_h225_partyNumber,
9281
14
      { "partyNumber", "h225.partyNumber",
9282
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9283
14
        NULL, HFILL }},
9284
14
    { &hf_h225_mobileUIM,
9285
14
      { "mobileUIM", "h225.mobileUIM",
9286
14
        FT_UINT32, BASE_DEC, VALS(h225_MobileUIM_vals), 0,
9287
14
        NULL, HFILL }},
9288
14
    { &hf_h225_isupNumber,
9289
14
      { "isupNumber", "h225.isupNumber",
9290
14
        FT_UINT32, BASE_DEC, VALS(h225_IsupNumber_vals), 0,
9291
14
        NULL, HFILL }},
9292
14
    { &hf_h225_wildcard,
9293
14
      { "wildcard", "h225.wildcard",
9294
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9295
14
        "AliasAddress", HFILL }},
9296
14
    { &hf_h225_range,
9297
14
      { "range", "h225.range_element",
9298
14
        FT_NONE, BASE_NONE, NULL, 0,
9299
14
        NULL, HFILL }},
9300
14
    { &hf_h225_startOfRange,
9301
14
      { "startOfRange", "h225.startOfRange",
9302
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9303
14
        "PartyNumber", HFILL }},
9304
14
    { &hf_h225_endOfRange,
9305
14
      { "endOfRange", "h225.endOfRange",
9306
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9307
14
        "PartyNumber", HFILL }},
9308
14
    { &hf_h225_e164Number,
9309
14
      { "e164Number", "h225.e164Number_element",
9310
14
        FT_NONE, BASE_NONE, NULL, 0,
9311
14
        "PublicPartyNumber", HFILL }},
9312
14
    { &hf_h225_dataPartyNumber,
9313
14
      { "dataPartyNumber", "h225.dataPartyNumber",
9314
14
        FT_STRING, BASE_NONE, NULL, 0,
9315
14
        "NumberDigits", HFILL }},
9316
14
    { &hf_h225_telexPartyNumber,
9317
14
      { "telexPartyNumber", "h225.telexPartyNumber",
9318
14
        FT_STRING, BASE_NONE, NULL, 0,
9319
14
        "NumberDigits", HFILL }},
9320
14
    { &hf_h225_privateNumber,
9321
14
      { "privateNumber", "h225.privateNumber_element",
9322
14
        FT_NONE, BASE_NONE, NULL, 0,
9323
14
        "PrivatePartyNumber", HFILL }},
9324
14
    { &hf_h225_nationalStandardPartyNumber,
9325
14
      { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9326
14
        FT_STRING, BASE_NONE, NULL, 0,
9327
14
        "NumberDigits", HFILL }},
9328
14
    { &hf_h225_publicTypeOfNumber,
9329
14
      { "publicTypeOfNumber", "h225.publicTypeOfNumber",
9330
14
        FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
9331
14
        NULL, HFILL }},
9332
14
    { &hf_h225_publicNumberDigits,
9333
14
      { "publicNumberDigits", "h225.publicNumberDigits",
9334
14
        FT_STRING, BASE_NONE, NULL, 0,
9335
14
        "NumberDigits", HFILL }},
9336
14
    { &hf_h225_privateTypeOfNumber,
9337
14
      { "privateTypeOfNumber", "h225.privateTypeOfNumber",
9338
14
        FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
9339
14
        NULL, HFILL }},
9340
14
    { &hf_h225_privateNumberDigits,
9341
14
      { "privateNumberDigits", "h225.privateNumberDigits",
9342
14
        FT_STRING, BASE_NONE, NULL, 0,
9343
14
        "NumberDigits", HFILL }},
9344
14
    { &hf_h225_displayName_language,
9345
14
      { "language", "h225.displayName_language",
9346
14
        FT_STRING, BASE_NONE, NULL, 0,
9347
14
        "IA5String", HFILL }},
9348
14
    { &hf_h225_name,
9349
14
      { "name", "h225.name",
9350
14
        FT_STRING, BASE_NONE, NULL, 0,
9351
14
        "BMPString_SIZE_1_80", HFILL }},
9352
14
    { &hf_h225_internationalNumber,
9353
14
      { "internationalNumber", "h225.internationalNumber_element",
9354
14
        FT_NONE, BASE_NONE, NULL, 0,
9355
14
        NULL, HFILL }},
9356
14
    { &hf_h225_nationalNumber,
9357
14
      { "nationalNumber", "h225.nationalNumber_element",
9358
14
        FT_NONE, BASE_NONE, NULL, 0,
9359
14
        NULL, HFILL }},
9360
14
    { &hf_h225_networkSpecificNumber,
9361
14
      { "networkSpecificNumber", "h225.networkSpecificNumber_element",
9362
14
        FT_NONE, BASE_NONE, NULL, 0,
9363
14
        NULL, HFILL }},
9364
14
    { &hf_h225_subscriberNumber,
9365
14
      { "subscriberNumber", "h225.subscriberNumber_element",
9366
14
        FT_NONE, BASE_NONE, NULL, 0,
9367
14
        NULL, HFILL }},
9368
14
    { &hf_h225_abbreviatedNumber,
9369
14
      { "abbreviatedNumber", "h225.abbreviatedNumber_element",
9370
14
        FT_NONE, BASE_NONE, NULL, 0,
9371
14
        NULL, HFILL }},
9372
14
    { &hf_h225_level2RegionalNumber,
9373
14
      { "level2RegionalNumber", "h225.level2RegionalNumber_element",
9374
14
        FT_NONE, BASE_NONE, NULL, 0,
9375
14
        NULL, HFILL }},
9376
14
    { &hf_h225_level1RegionalNumber,
9377
14
      { "level1RegionalNumber", "h225.level1RegionalNumber_element",
9378
14
        FT_NONE, BASE_NONE, NULL, 0,
9379
14
        NULL, HFILL }},
9380
14
    { &hf_h225_pISNSpecificNumber,
9381
14
      { "pISNSpecificNumber", "h225.pISNSpecificNumber_element",
9382
14
        FT_NONE, BASE_NONE, NULL, 0,
9383
14
        NULL, HFILL }},
9384
14
    { &hf_h225_localNumber,
9385
14
      { "localNumber", "h225.localNumber_element",
9386
14
        FT_NONE, BASE_NONE, NULL, 0,
9387
14
        NULL, HFILL }},
9388
14
    { &hf_h225_ansi_41_uim,
9389
14
      { "ansi-41-uim", "h225.ansi_41_uim_element",
9390
14
        FT_NONE, BASE_NONE, NULL, 0,
9391
14
        NULL, HFILL }},
9392
14
    { &hf_h225_gsm_uim,
9393
14
      { "gsm-uim", "h225.gsm_uim_element",
9394
14
        FT_NONE, BASE_NONE, NULL, 0,
9395
14
        NULL, HFILL }},
9396
14
    { &hf_h225_imsi,
9397
14
      { "imsi", "h225.imsi",
9398
14
        FT_STRING, BASE_NONE, NULL, 0,
9399
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9400
14
    { &hf_h225_min,
9401
14
      { "min", "h225.min",
9402
14
        FT_STRING, BASE_NONE, NULL, 0,
9403
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9404
14
    { &hf_h225_mdn,
9405
14
      { "mdn", "h225.mdn",
9406
14
        FT_STRING, BASE_NONE, NULL, 0,
9407
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9408
14
    { &hf_h225_msisdn,
9409
14
      { "msisdn", "h225.msisdn",
9410
14
        FT_STRING, BASE_NONE, NULL, 0,
9411
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9412
14
    { &hf_h225_esn,
9413
14
      { "esn", "h225.esn",
9414
14
        FT_STRING, BASE_NONE, NULL, 0,
9415
14
        "TBCD_STRING_SIZE_16", HFILL }},
9416
14
    { &hf_h225_mscid,
9417
14
      { "mscid", "h225.mscid",
9418
14
        FT_STRING, BASE_NONE, NULL, 0,
9419
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9420
14
    { &hf_h225_system_id,
9421
14
      { "system-id", "h225.system_id",
9422
14
        FT_UINT32, BASE_DEC, VALS(h225_T_system_id_vals), 0,
9423
14
        NULL, HFILL }},
9424
14
    { &hf_h225_sid,
9425
14
      { "sid", "h225.sid",
9426
14
        FT_STRING, BASE_NONE, NULL, 0,
9427
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9428
14
    { &hf_h225_mid,
9429
14
      { "mid", "h225.mid",
9430
14
        FT_STRING, BASE_NONE, NULL, 0,
9431
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9432
14
    { &hf_h225_systemMyTypeCode,
9433
14
      { "systemMyTypeCode", "h225.systemMyTypeCode",
9434
14
        FT_BYTES, BASE_NONE, NULL, 0,
9435
14
        "OCTET_STRING_SIZE_1", HFILL }},
9436
14
    { &hf_h225_systemAccessType,
9437
14
      { "systemAccessType", "h225.systemAccessType",
9438
14
        FT_BYTES, BASE_NONE, NULL, 0,
9439
14
        "OCTET_STRING_SIZE_1", HFILL }},
9440
14
    { &hf_h225_qualificationInformationCode,
9441
14
      { "qualificationInformationCode", "h225.qualificationInformationCode",
9442
14
        FT_BYTES, BASE_NONE, NULL, 0,
9443
14
        "OCTET_STRING_SIZE_1", HFILL }},
9444
14
    { &hf_h225_sesn,
9445
14
      { "sesn", "h225.sesn",
9446
14
        FT_STRING, BASE_NONE, NULL, 0,
9447
14
        "TBCD_STRING_SIZE_16", HFILL }},
9448
14
    { &hf_h225_soc,
9449
14
      { "soc", "h225.soc",
9450
14
        FT_STRING, BASE_NONE, NULL, 0,
9451
14
        "TBCD_STRING_SIZE_3_16", HFILL }},
9452
14
    { &hf_h225_tmsi,
9453
14
      { "tmsi", "h225.tmsi",
9454
14
        FT_BYTES, BASE_NONE, NULL, 0,
9455
14
        "OCTET_STRING_SIZE_1_4", HFILL }},
9456
14
    { &hf_h225_imei,
9457
14
      { "imei", "h225.imei",
9458
14
        FT_STRING, BASE_NONE, NULL, 0,
9459
14
        "TBCD_STRING_SIZE_15_16", HFILL }},
9460
14
    { &hf_h225_hplmn,
9461
14
      { "hplmn", "h225.hplmn",
9462
14
        FT_STRING, BASE_NONE, NULL, 0,
9463
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9464
14
    { &hf_h225_vplmn,
9465
14
      { "vplmn", "h225.vplmn",
9466
14
        FT_STRING, BASE_NONE, NULL, 0,
9467
14
        "TBCD_STRING_SIZE_1_4", HFILL }},
9468
14
    { &hf_h225_isupE164Number,
9469
14
      { "e164Number", "h225.isupE164Number_element",
9470
14
        FT_NONE, BASE_NONE, NULL, 0,
9471
14
        "IsupPublicPartyNumber", HFILL }},
9472
14
    { &hf_h225_isupDataPartyNumber,
9473
14
      { "dataPartyNumber", "h225.isupDataPartyNumber",
9474
14
        FT_STRING, BASE_NONE, NULL, 0,
9475
14
        "IsupDigits", HFILL }},
9476
14
    { &hf_h225_isupTelexPartyNumber,
9477
14
      { "telexPartyNumber", "h225.isupTelexPartyNumber",
9478
14
        FT_STRING, BASE_NONE, NULL, 0,
9479
14
        "IsupDigits", HFILL }},
9480
14
    { &hf_h225_isupPrivateNumber,
9481
14
      { "privateNumber", "h225.isupPrivateNumber_element",
9482
14
        FT_NONE, BASE_NONE, NULL, 0,
9483
14
        "IsupPrivatePartyNumber", HFILL }},
9484
14
    { &hf_h225_isupNationalStandardPartyNumber,
9485
14
      { "nationalStandardPartyNumber", "h225.isupNationalStandardPartyNumber",
9486
14
        FT_STRING, BASE_NONE, NULL, 0,
9487
14
        "IsupDigits", HFILL }},
9488
14
    { &hf_h225_natureOfAddress,
9489
14
      { "natureOfAddress", "h225.natureOfAddress",
9490
14
        FT_UINT32, BASE_DEC, VALS(h225_NatureOfAddress_vals), 0,
9491
14
        NULL, HFILL }},
9492
14
    { &hf_h225_address,
9493
14
      { "address", "h225.address",
9494
14
        FT_STRING, BASE_NONE, NULL, 0,
9495
14
        "IsupDigits", HFILL }},
9496
14
    { &hf_h225_routingNumberNationalFormat,
9497
14
      { "routingNumberNationalFormat", "h225.routingNumberNationalFormat_element",
9498
14
        FT_NONE, BASE_NONE, NULL, 0,
9499
14
        NULL, HFILL }},
9500
14
    { &hf_h225_routingNumberNetworkSpecificFormat,
9501
14
      { "routingNumberNetworkSpecificFormat", "h225.routingNumberNetworkSpecificFormat_element",
9502
14
        FT_NONE, BASE_NONE, NULL, 0,
9503
14
        NULL, HFILL }},
9504
14
    { &hf_h225_routingNumberWithCalledDirectoryNumber,
9505
14
      { "routingNumberWithCalledDirectoryNumber", "h225.routingNumberWithCalledDirectoryNumber_element",
9506
14
        FT_NONE, BASE_NONE, NULL, 0,
9507
14
        NULL, HFILL }},
9508
14
    { &hf_h225_extAliasAddress,
9509
14
      { "address", "h225.extAliasAddress",
9510
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9511
14
        "AliasAddress", HFILL }},
9512
14
    { &hf_h225_aliasAddress,
9513
14
      { "aliasAddress", "h225.aliasAddress",
9514
14
        FT_UINT32, BASE_DEC, NULL, 0,
9515
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
9516
14
    { &hf_h225_aliasAddress_item,
9517
14
      { "AliasAddress", "h225.AliasAddress",
9518
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9519
14
        NULL, HFILL }},
9520
14
    { &hf_h225_callSignalAddress,
9521
14
      { "callSignalAddress", "h225.callSignalAddress",
9522
14
        FT_UINT32, BASE_DEC, NULL, 0,
9523
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9524
14
    { &hf_h225_callSignalAddress_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_rasAddress,
9529
14
      { "rasAddress", "h225.rasAddress",
9530
14
        FT_UINT32, BASE_DEC, NULL, 0,
9531
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9532
14
    { &hf_h225_rasAddress_item,
9533
14
      { "TransportAddress", "h225.TransportAddress",
9534
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9535
14
        NULL, HFILL }},
9536
14
    { &hf_h225_endpointType,
9537
14
      { "endpointType", "h225.endpointType_element",
9538
14
        FT_NONE, BASE_NONE, NULL, 0,
9539
14
        NULL, HFILL }},
9540
14
    { &hf_h225_priority,
9541
14
      { "priority", "h225.priority",
9542
14
        FT_UINT32, BASE_DEC, NULL, 0,
9543
14
        "INTEGER_0_127", HFILL }},
9544
14
    { &hf_h225_remoteExtensionAddress,
9545
14
      { "remoteExtensionAddress", "h225.remoteExtensionAddress",
9546
14
        FT_UINT32, BASE_DEC, NULL, 0,
9547
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
9548
14
    { &hf_h225_ep_remoteExtensionAddress_item,
9549
14
      { "AliasAddress", "h225.remoteExtensionAddress.item",
9550
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9551
14
        NULL, HFILL }},
9552
14
    { &hf_h225_alternateTransportAddresses,
9553
14
      { "alternateTransportAddresses", "h225.alternateTransportAddresses_element",
9554
14
        FT_NONE, BASE_NONE, NULL, 0,
9555
14
        NULL, HFILL }},
9556
14
    { &hf_h225_annexE,
9557
14
      { "annexE", "h225.annexE",
9558
14
        FT_UINT32, BASE_DEC, NULL, 0,
9559
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9560
14
    { &hf_h225_annexE_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_sctp,
9565
14
      { "sctp", "h225.sctp",
9566
14
        FT_UINT32, BASE_DEC, NULL, 0,
9567
14
        "SEQUENCE_OF_TransportAddress", HFILL }},
9568
14
    { &hf_h225_sctp_item,
9569
14
      { "TransportAddress", "h225.TransportAddress",
9570
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9571
14
        NULL, HFILL }},
9572
14
    { &hf_h225_tcp,
9573
14
      { "tcp", "h225.tcp_element",
9574
14
        FT_NONE, BASE_NONE, NULL, 0,
9575
14
        NULL, HFILL }},
9576
14
    { &hf_h225_annexE_flg,
9577
14
      { "annexE", "h225.annexE_flg_element",
9578
14
        FT_NONE, BASE_NONE, NULL, 0,
9579
14
        NULL, HFILL }},
9580
14
    { &hf_h225_sctp_flg,
9581
14
      { "sctp", "h225.sctp_flg_element",
9582
14
        FT_NONE, BASE_NONE, NULL, 0,
9583
14
        NULL, HFILL }},
9584
14
    { &hf_h225_alternateGK_rasAddress,
9585
14
      { "rasAddress", "h225.alternateGK_rasAddress",
9586
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9587
14
        "TransportAddress", HFILL }},
9588
14
    { &hf_h225_gatekeeperIdentifier,
9589
14
      { "gatekeeperIdentifier", "h225.gatekeeperIdentifier",
9590
14
        FT_STRING, BASE_NONE, NULL, 0,
9591
14
        NULL, HFILL }},
9592
14
    { &hf_h225_needToRegister,
9593
14
      { "needToRegister", "h225.needToRegister",
9594
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9595
14
        "BOOLEAN", HFILL }},
9596
14
    { &hf_h225_alternateGatekeeper,
9597
14
      { "alternateGatekeeper", "h225.alternateGatekeeper",
9598
14
        FT_UINT32, BASE_DEC, NULL, 0,
9599
14
        "SEQUENCE_OF_AlternateGK", HFILL }},
9600
14
    { &hf_h225_alternateGatekeeper_item,
9601
14
      { "AlternateGK", "h225.AlternateGK_element",
9602
14
        FT_NONE, BASE_NONE, NULL, 0,
9603
14
        NULL, HFILL }},
9604
14
    { &hf_h225_altGKisPermanent,
9605
14
      { "altGKisPermanent", "h225.altGKisPermanent",
9606
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9607
14
        "BOOLEAN", HFILL }},
9608
14
    { &hf_h225_default,
9609
14
      { "default", "h225.default_element",
9610
14
        FT_NONE, BASE_NONE, NULL, 0,
9611
14
        NULL, HFILL }},
9612
14
    { &hf_h225_encryption,
9613
14
      { "encryption", "h225.encryption",
9614
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9615
14
        "SecurityServiceMode", HFILL }},
9616
14
    { &hf_h225_authenticaton,
9617
14
      { "authenticaton", "h225.authenticaton",
9618
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9619
14
        "SecurityServiceMode", HFILL }},
9620
14
    { &hf_h225_securityCapabilities_integrity,
9621
14
      { "integrity", "h225.securityCapabilities_integrity",
9622
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9623
14
        "SecurityServiceMode", HFILL }},
9624
14
    { &hf_h225_securityWrongSyncTime,
9625
14
      { "securityWrongSyncTime", "h225.securityWrongSyncTime_element",
9626
14
        FT_NONE, BASE_NONE, NULL, 0,
9627
14
        NULL, HFILL }},
9628
14
    { &hf_h225_securityReplay,
9629
14
      { "securityReplay", "h225.securityReplay_element",
9630
14
        FT_NONE, BASE_NONE, NULL, 0,
9631
14
        NULL, HFILL }},
9632
14
    { &hf_h225_securityWrongGeneralID,
9633
14
      { "securityWrongGeneralID", "h225.securityWrongGeneralID_element",
9634
14
        FT_NONE, BASE_NONE, NULL, 0,
9635
14
        NULL, HFILL }},
9636
14
    { &hf_h225_securityWrongSendersID,
9637
14
      { "securityWrongSendersID", "h225.securityWrongSendersID_element",
9638
14
        FT_NONE, BASE_NONE, NULL, 0,
9639
14
        NULL, HFILL }},
9640
14
    { &hf_h225_securityIntegrityFailed,
9641
14
      { "securityIntegrityFailed", "h225.securityIntegrityFailed_element",
9642
14
        FT_NONE, BASE_NONE, NULL, 0,
9643
14
        NULL, HFILL }},
9644
14
    { &hf_h225_securityWrongOID,
9645
14
      { "securityWrongOID", "h225.securityWrongOID_element",
9646
14
        FT_NONE, BASE_NONE, NULL, 0,
9647
14
        NULL, HFILL }},
9648
14
    { &hf_h225_securityDHmismatch,
9649
14
      { "securityDHmismatch", "h225.securityDHmismatch_element",
9650
14
        FT_NONE, BASE_NONE, NULL, 0,
9651
14
        NULL, HFILL }},
9652
14
    { &hf_h225_securityCertificateExpired,
9653
14
      { "securityCertificateExpired", "h225.securityCertificateExpired_element",
9654
14
        FT_NONE, BASE_NONE, NULL, 0,
9655
14
        NULL, HFILL }},
9656
14
    { &hf_h225_securityCertificateDateInvalid,
9657
14
      { "securityCertificateDateInvalid", "h225.securityCertificateDateInvalid_element",
9658
14
        FT_NONE, BASE_NONE, NULL, 0,
9659
14
        NULL, HFILL }},
9660
14
    { &hf_h225_securityCertificateRevoked,
9661
14
      { "securityCertificateRevoked", "h225.securityCertificateRevoked_element",
9662
14
        FT_NONE, BASE_NONE, NULL, 0,
9663
14
        NULL, HFILL }},
9664
14
    { &hf_h225_securityCertificateNotReadable,
9665
14
      { "securityCertificateNotReadable", "h225.securityCertificateNotReadable_element",
9666
14
        FT_NONE, BASE_NONE, NULL, 0,
9667
14
        NULL, HFILL }},
9668
14
    { &hf_h225_securityCertificateSignatureInvalid,
9669
14
      { "securityCertificateSignatureInvalid", "h225.securityCertificateSignatureInvalid_element",
9670
14
        FT_NONE, BASE_NONE, NULL, 0,
9671
14
        NULL, HFILL }},
9672
14
    { &hf_h225_securityCertificateMissing,
9673
14
      { "securityCertificateMissing", "h225.securityCertificateMissing_element",
9674
14
        FT_NONE, BASE_NONE, NULL, 0,
9675
14
        NULL, HFILL }},
9676
14
    { &hf_h225_securityCertificateIncomplete,
9677
14
      { "securityCertificateIncomplete", "h225.securityCertificateIncomplete_element",
9678
14
        FT_NONE, BASE_NONE, NULL, 0,
9679
14
        NULL, HFILL }},
9680
14
    { &hf_h225_securityUnsupportedCertificateAlgOID,
9681
14
      { "securityUnsupportedCertificateAlgOID", "h225.securityUnsupportedCertificateAlgOID_element",
9682
14
        FT_NONE, BASE_NONE, NULL, 0,
9683
14
        NULL, HFILL }},
9684
14
    { &hf_h225_securityUnknownCA,
9685
14
      { "securityUnknownCA", "h225.securityUnknownCA_element",
9686
14
        FT_NONE, BASE_NONE, NULL, 0,
9687
14
        NULL, HFILL }},
9688
14
    { &hf_h225_noSecurity,
9689
14
      { "noSecurity", "h225.noSecurity_element",
9690
14
        FT_NONE, BASE_NONE, NULL, 0,
9691
14
        NULL, HFILL }},
9692
14
    { &hf_h225_tls,
9693
14
      { "tls", "h225.tls_element",
9694
14
        FT_NONE, BASE_NONE, NULL, 0,
9695
14
        "SecurityCapabilities", HFILL }},
9696
14
    { &hf_h225_ipsec,
9697
14
      { "ipsec", "h225.ipsec_element",
9698
14
        FT_NONE, BASE_NONE, NULL, 0,
9699
14
        "SecurityCapabilities", HFILL }},
9700
14
    { &hf_h225_q932Full,
9701
14
      { "q932Full", "h225.q932Full",
9702
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9703
14
        "BOOLEAN", HFILL }},
9704
14
    { &hf_h225_q951Full,
9705
14
      { "q951Full", "h225.q951Full",
9706
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9707
14
        "BOOLEAN", HFILL }},
9708
14
    { &hf_h225_q952Full,
9709
14
      { "q952Full", "h225.q952Full",
9710
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9711
14
        "BOOLEAN", HFILL }},
9712
14
    { &hf_h225_q953Full,
9713
14
      { "q953Full", "h225.q953Full",
9714
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9715
14
        "BOOLEAN", HFILL }},
9716
14
    { &hf_h225_q955Full,
9717
14
      { "q955Full", "h225.q955Full",
9718
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9719
14
        "BOOLEAN", HFILL }},
9720
14
    { &hf_h225_q956Full,
9721
14
      { "q956Full", "h225.q956Full",
9722
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9723
14
        "BOOLEAN", HFILL }},
9724
14
    { &hf_h225_q957Full,
9725
14
      { "q957Full", "h225.q957Full",
9726
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9727
14
        "BOOLEAN", HFILL }},
9728
14
    { &hf_h225_q954Info,
9729
14
      { "q954Info", "h225.q954Info_element",
9730
14
        FT_NONE, BASE_NONE, NULL, 0,
9731
14
        "Q954Details", HFILL }},
9732
14
    { &hf_h225_conferenceCalling,
9733
14
      { "conferenceCalling", "h225.conferenceCalling",
9734
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9735
14
        "BOOLEAN", HFILL }},
9736
14
    { &hf_h225_threePartyService,
9737
14
      { "threePartyService", "h225.threePartyService",
9738
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9739
14
        "BOOLEAN", HFILL }},
9740
14
    { &hf_h225_guid,
9741
14
      { "guid", "h225.guid",
9742
14
        FT_GUID, BASE_NONE, NULL, 0,
9743
14
        NULL, HFILL }},
9744
14
    { &hf_h225_isoAlgorithm,
9745
14
      { "isoAlgorithm", "h225.isoAlgorithm",
9746
14
        FT_OID, BASE_NONE, NULL, 0,
9747
14
        "OBJECT_IDENTIFIER", HFILL }},
9748
14
    { &hf_h225_hMAC_MD5,
9749
14
      { "hMAC-MD5", "h225.hMAC_MD5_element",
9750
14
        FT_NONE, BASE_NONE, NULL, 0,
9751
14
        NULL, HFILL }},
9752
14
    { &hf_h225_hMAC_iso10118_2_s,
9753
14
      { "hMAC-iso10118-2-s", "h225.hMAC_iso10118_2_s",
9754
14
        FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9755
14
        "EncryptIntAlg", HFILL }},
9756
14
    { &hf_h225_hMAC_iso10118_2_l,
9757
14
      { "hMAC-iso10118-2-l", "h225.hMAC_iso10118_2_l",
9758
14
        FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9759
14
        "EncryptIntAlg", HFILL }},
9760
14
    { &hf_h225_hMAC_iso10118_3,
9761
14
      { "hMAC-iso10118-3", "h225.hMAC_iso10118_3",
9762
14
        FT_OID, BASE_NONE, NULL, 0,
9763
14
        "OBJECT_IDENTIFIER", HFILL }},
9764
14
    { &hf_h225_digSig,
9765
14
      { "digSig", "h225.digSig_element",
9766
14
        FT_NONE, BASE_NONE, NULL, 0,
9767
14
        NULL, HFILL }},
9768
14
    { &hf_h225_iso9797,
9769
14
      { "iso9797", "h225.iso9797",
9770
14
        FT_OID, BASE_NONE, NULL, 0,
9771
14
        "OBJECT_IDENTIFIER", HFILL }},
9772
14
    { &hf_h225_nonIsoIM,
9773
14
      { "nonIsoIM", "h225.nonIsoIM",
9774
14
        FT_UINT32, BASE_DEC, VALS(h225_NonIsoIntegrityMechanism_vals), 0,
9775
14
        "NonIsoIntegrityMechanism", HFILL }},
9776
14
    { &hf_h225_algorithmOID,
9777
14
      { "algorithmOID", "h225.algorithmOID",
9778
14
        FT_OID, BASE_NONE, NULL, 0,
9779
14
        "OBJECT_IDENTIFIER", HFILL }},
9780
14
    { &hf_h225_icv,
9781
14
      { "icv", "h225.icv",
9782
14
        FT_BYTES, BASE_NONE, NULL, 0,
9783
14
        "BIT_STRING", HFILL }},
9784
14
    { &hf_h225_cryptoEPPwdHash,
9785
14
      { "cryptoEPPwdHash", "h225.cryptoEPPwdHash_element",
9786
14
        FT_NONE, BASE_NONE, NULL, 0,
9787
14
        NULL, HFILL }},
9788
14
    { &hf_h225_alias,
9789
14
      { "alias", "h225.alias",
9790
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9791
14
        "AliasAddress", HFILL }},
9792
14
    { &hf_h225_timeStamp,
9793
14
      { "timeStamp", "h225.timeStamp",
9794
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
9795
14
        NULL, HFILL }},
9796
14
    { &hf_h225_token,
9797
14
      { "token", "h225.token_element",
9798
14
        FT_NONE, BASE_NONE, NULL, 0,
9799
14
        "HASHED", HFILL }},
9800
14
    { &hf_h225_cryptoGKPwdHash,
9801
14
      { "cryptoGKPwdHash", "h225.cryptoGKPwdHash_element",
9802
14
        FT_NONE, BASE_NONE, NULL, 0,
9803
14
        NULL, HFILL }},
9804
14
    { &hf_h225_gatekeeperId,
9805
14
      { "gatekeeperId", "h225.gatekeeperId",
9806
14
        FT_STRING, BASE_NONE, NULL, 0,
9807
14
        "GatekeeperIdentifier", HFILL }},
9808
14
    { &hf_h225_cryptoEPPwdEncr,
9809
14
      { "cryptoEPPwdEncr", "h225.cryptoEPPwdEncr_element",
9810
14
        FT_NONE, BASE_NONE, NULL, 0,
9811
14
        "ENCRYPTED", HFILL }},
9812
14
    { &hf_h225_cryptoGKPwdEncr,
9813
14
      { "cryptoGKPwdEncr", "h225.cryptoGKPwdEncr_element",
9814
14
        FT_NONE, BASE_NONE, NULL, 0,
9815
14
        "ENCRYPTED", HFILL }},
9816
14
    { &hf_h225_cryptoEPCert,
9817
14
      { "cryptoEPCert", "h225.cryptoEPCert_element",
9818
14
        FT_NONE, BASE_NONE, NULL, 0,
9819
14
        "SIGNED", HFILL }},
9820
14
    { &hf_h225_cryptoGKCert,
9821
14
      { "cryptoGKCert", "h225.cryptoGKCert_element",
9822
14
        FT_NONE, BASE_NONE, NULL, 0,
9823
14
        "SIGNED", HFILL }},
9824
14
    { &hf_h225_cryptoFastStart,
9825
14
      { "cryptoFastStart", "h225.cryptoFastStart_element",
9826
14
        FT_NONE, BASE_NONE, NULL, 0,
9827
14
        "SIGNED", HFILL }},
9828
14
    { &hf_h225_nestedcryptoToken,
9829
14
      { "nestedcryptoToken", "h225.nestedcryptoToken",
9830
14
        FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
9831
14
        "CryptoToken", HFILL }},
9832
14
    { &hf_h225_channelRate,
9833
14
      { "channelRate", "h225.channelRate",
9834
14
        FT_UINT32, BASE_DEC, NULL, 0,
9835
14
        "BandWidth", HFILL }},
9836
14
    { &hf_h225_channelMultiplier,
9837
14
      { "channelMultiplier", "h225.channelMultiplier",
9838
14
        FT_UINT32, BASE_DEC, NULL, 0,
9839
14
        "INTEGER_1_256", HFILL }},
9840
14
    { &hf_h225_globalCallId,
9841
14
      { "globalCallId", "h225.globalCallId",
9842
14
        FT_GUID, BASE_NONE, NULL, 0,
9843
14
        "GloballyUniqueID", HFILL }},
9844
14
    { &hf_h225_threadId,
9845
14
      { "threadId", "h225.threadId",
9846
14
        FT_GUID, BASE_NONE, NULL, 0,
9847
14
        "GloballyUniqueID", HFILL }},
9848
14
    { &hf_h225_prefix,
9849
14
      { "prefix", "h225.prefix",
9850
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9851
14
        "AliasAddress", HFILL }},
9852
14
    { &hf_h225_canReportCallCapacity,
9853
14
      { "canReportCallCapacity", "h225.canReportCallCapacity",
9854
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9855
14
        "BOOLEAN", HFILL }},
9856
14
    { &hf_h225_capacityReportingSpecification_when,
9857
14
      { "when", "h225.capacityReportingSpecification_when_element",
9858
14
        FT_NONE, BASE_NONE, NULL, 0,
9859
14
        "CapacityReportingSpecification_when", HFILL }},
9860
14
    { &hf_h225_callStart,
9861
14
      { "callStart", "h225.callStart_element",
9862
14
        FT_NONE, BASE_NONE, NULL, 0,
9863
14
        NULL, HFILL }},
9864
14
    { &hf_h225_callEnd,
9865
14
      { "callEnd", "h225.callEnd_element",
9866
14
        FT_NONE, BASE_NONE, NULL, 0,
9867
14
        NULL, HFILL }},
9868
14
    { &hf_h225_maximumCallCapacity,
9869
14
      { "maximumCallCapacity", "h225.maximumCallCapacity_element",
9870
14
        FT_NONE, BASE_NONE, NULL, 0,
9871
14
        "CallCapacityInfo", HFILL }},
9872
14
    { &hf_h225_currentCallCapacity,
9873
14
      { "currentCallCapacity", "h225.currentCallCapacity_element",
9874
14
        FT_NONE, BASE_NONE, NULL, 0,
9875
14
        "CallCapacityInfo", HFILL }},
9876
14
    { &hf_h225_voiceGwCallsAvailable,
9877
14
      { "voiceGwCallsAvailable", "h225.voiceGwCallsAvailable",
9878
14
        FT_UINT32, BASE_DEC, NULL, 0,
9879
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9880
14
    { &hf_h225_voiceGwCallsAvailable_item,
9881
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9882
14
        FT_NONE, BASE_NONE, NULL, 0,
9883
14
        NULL, HFILL }},
9884
14
    { &hf_h225_h310GwCallsAvailable,
9885
14
      { "h310GwCallsAvailable", "h225.h310GwCallsAvailable",
9886
14
        FT_UINT32, BASE_DEC, NULL, 0,
9887
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9888
14
    { &hf_h225_h310GwCallsAvailable_item,
9889
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9890
14
        FT_NONE, BASE_NONE, NULL, 0,
9891
14
        NULL, HFILL }},
9892
14
    { &hf_h225_h320GwCallsAvailable,
9893
14
      { "h320GwCallsAvailable", "h225.h320GwCallsAvailable",
9894
14
        FT_UINT32, BASE_DEC, NULL, 0,
9895
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9896
14
    { &hf_h225_h320GwCallsAvailable_item,
9897
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9898
14
        FT_NONE, BASE_NONE, NULL, 0,
9899
14
        NULL, HFILL }},
9900
14
    { &hf_h225_h321GwCallsAvailable,
9901
14
      { "h321GwCallsAvailable", "h225.h321GwCallsAvailable",
9902
14
        FT_UINT32, BASE_DEC, NULL, 0,
9903
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9904
14
    { &hf_h225_h321GwCallsAvailable_item,
9905
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9906
14
        FT_NONE, BASE_NONE, NULL, 0,
9907
14
        NULL, HFILL }},
9908
14
    { &hf_h225_h322GwCallsAvailable,
9909
14
      { "h322GwCallsAvailable", "h225.h322GwCallsAvailable",
9910
14
        FT_UINT32, BASE_DEC, NULL, 0,
9911
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9912
14
    { &hf_h225_h322GwCallsAvailable_item,
9913
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9914
14
        FT_NONE, BASE_NONE, NULL, 0,
9915
14
        NULL, HFILL }},
9916
14
    { &hf_h225_h323GwCallsAvailable,
9917
14
      { "h323GwCallsAvailable", "h225.h323GwCallsAvailable",
9918
14
        FT_UINT32, BASE_DEC, NULL, 0,
9919
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9920
14
    { &hf_h225_h323GwCallsAvailable_item,
9921
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9922
14
        FT_NONE, BASE_NONE, NULL, 0,
9923
14
        NULL, HFILL }},
9924
14
    { &hf_h225_h324GwCallsAvailable,
9925
14
      { "h324GwCallsAvailable", "h225.h324GwCallsAvailable",
9926
14
        FT_UINT32, BASE_DEC, NULL, 0,
9927
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9928
14
    { &hf_h225_h324GwCallsAvailable_item,
9929
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9930
14
        FT_NONE, BASE_NONE, NULL, 0,
9931
14
        NULL, HFILL }},
9932
14
    { &hf_h225_t120OnlyGwCallsAvailable,
9933
14
      { "t120OnlyGwCallsAvailable", "h225.t120OnlyGwCallsAvailable",
9934
14
        FT_UINT32, BASE_DEC, NULL, 0,
9935
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9936
14
    { &hf_h225_t120OnlyGwCallsAvailable_item,
9937
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9938
14
        FT_NONE, BASE_NONE, NULL, 0,
9939
14
        NULL, HFILL }},
9940
14
    { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable,
9941
14
      { "t38FaxAnnexbOnlyGwCallsAvailable", "h225.t38FaxAnnexbOnlyGwCallsAvailable",
9942
14
        FT_UINT32, BASE_DEC, NULL, 0,
9943
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9944
14
    { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item,
9945
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9946
14
        FT_NONE, BASE_NONE, NULL, 0,
9947
14
        NULL, HFILL }},
9948
14
    { &hf_h225_terminalCallsAvailable,
9949
14
      { "terminalCallsAvailable", "h225.terminalCallsAvailable",
9950
14
        FT_UINT32, BASE_DEC, NULL, 0,
9951
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9952
14
    { &hf_h225_terminalCallsAvailable_item,
9953
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9954
14
        FT_NONE, BASE_NONE, NULL, 0,
9955
14
        NULL, HFILL }},
9956
14
    { &hf_h225_mcuCallsAvailable,
9957
14
      { "mcuCallsAvailable", "h225.mcuCallsAvailable",
9958
14
        FT_UINT32, BASE_DEC, NULL, 0,
9959
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9960
14
    { &hf_h225_mcuCallsAvailable_item,
9961
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9962
14
        FT_NONE, BASE_NONE, NULL, 0,
9963
14
        NULL, HFILL }},
9964
14
    { &hf_h225_sipGwCallsAvailable,
9965
14
      { "sipGwCallsAvailable", "h225.sipGwCallsAvailable",
9966
14
        FT_UINT32, BASE_DEC, NULL, 0,
9967
14
        "SEQUENCE_OF_CallsAvailable", HFILL }},
9968
14
    { &hf_h225_sipGwCallsAvailable_item,
9969
14
      { "CallsAvailable", "h225.CallsAvailable_element",
9970
14
        FT_NONE, BASE_NONE, NULL, 0,
9971
14
        NULL, HFILL }},
9972
14
    { &hf_h225_calls,
9973
14
      { "calls", "h225.calls",
9974
14
        FT_UINT32, BASE_DEC, NULL, 0,
9975
14
        "INTEGER_0_4294967295", HFILL }},
9976
14
    { &hf_h225_group_IA5String,
9977
14
      { "group", "h225.group_IA5String",
9978
14
        FT_STRING, BASE_NONE, NULL, 0,
9979
14
        "IA5String_SIZE_1_128", HFILL }},
9980
14
    { &hf_h225_carrier,
9981
14
      { "carrier", "h225.carrier_element",
9982
14
        FT_NONE, BASE_NONE, NULL, 0,
9983
14
        "CarrierInfo", HFILL }},
9984
14
    { &hf_h225_sourceCircuitID,
9985
14
      { "sourceCircuitID", "h225.sourceCircuitID_element",
9986
14
        FT_NONE, BASE_NONE, NULL, 0,
9987
14
        "CircuitIdentifier", HFILL }},
9988
14
    { &hf_h225_destinationCircuitID,
9989
14
      { "destinationCircuitID", "h225.destinationCircuitID_element",
9990
14
        FT_NONE, BASE_NONE, NULL, 0,
9991
14
        "CircuitIdentifier", HFILL }},
9992
14
    { &hf_h225_cic,
9993
14
      { "cic", "h225.cic_element",
9994
14
        FT_NONE, BASE_NONE, NULL, 0,
9995
14
        "CicInfo", HFILL }},
9996
14
    { &hf_h225_group,
9997
14
      { "group", "h225.group_element",
9998
14
        FT_NONE, BASE_NONE, NULL, 0,
9999
14
        "GroupID", HFILL }},
10000
14
    { &hf_h225_cic_2_4,
10001
14
      { "cic", "h225.cic_2_4",
10002
14
        FT_UINT32, BASE_DEC, NULL, 0,
10003
14
        "T_cic_2_4", HFILL }},
10004
14
    { &hf_h225_cic_2_4_item,
10005
14
      { "cic item", "h225.cic_2_4_item",
10006
14
        FT_BYTES, BASE_NONE, NULL, 0,
10007
14
        "OCTET_STRING_SIZE_2_4", HFILL }},
10008
14
    { &hf_h225_pointCode,
10009
14
      { "pointCode", "h225.pointCode",
10010
14
        FT_BYTES, BASE_NONE, NULL, 0,
10011
14
        "OCTET_STRING_SIZE_2_5", HFILL }},
10012
14
    { &hf_h225_member,
10013
14
      { "member", "h225.member",
10014
14
        FT_UINT32, BASE_DEC, NULL, 0,
10015
14
        NULL, HFILL }},
10016
14
    { &hf_h225_member_item,
10017
14
      { "member item", "h225.member_item",
10018
14
        FT_UINT32, BASE_DEC, NULL, 0,
10019
14
        "INTEGER_0_65535", HFILL }},
10020
14
    { &hf_h225_carrierIdentificationCode,
10021
14
      { "carrierIdentificationCode", "h225.carrierIdentificationCode",
10022
14
        FT_BYTES, BASE_NONE, NULL, 0,
10023
14
        "OCTET_STRING_SIZE_3_4", HFILL }},
10024
14
    { &hf_h225_carrierName,
10025
14
      { "carrierName", "h225.carrierName",
10026
14
        FT_STRING, BASE_NONE, NULL, 0,
10027
14
        "IA5String_SIZE_1_128", HFILL }},
10028
14
    { &hf_h225_url,
10029
14
      { "url", "h225.url",
10030
14
        FT_STRING, BASE_NONE, NULL, 0,
10031
14
        "IA5String_SIZE_0_512", HFILL }},
10032
14
    { &hf_h225_signal,
10033
14
      { "signal", "h225.signal",
10034
14
        FT_BYTES, BASE_NONE, NULL, 0,
10035
14
        "H248SignalsDescriptor", HFILL }},
10036
14
    { &hf_h225_callCreditServiceControl,
10037
14
      { "callCreditServiceControl", "h225.callCreditServiceControl_element",
10038
14
        FT_NONE, BASE_NONE, NULL, 0,
10039
14
        NULL, HFILL }},
10040
14
    { &hf_h225_sessionId_0_255,
10041
14
      { "sessionId", "h225.sessionId_0_255",
10042
14
        FT_UINT32, BASE_DEC, NULL, 0,
10043
14
        "INTEGER_0_255", HFILL }},
10044
14
    { &hf_h225_contents,
10045
14
      { "contents", "h225.contents",
10046
14
        FT_UINT32, BASE_DEC, VALS(h225_ServiceControlDescriptor_vals), 0,
10047
14
        "ServiceControlDescriptor", HFILL }},
10048
14
    { &hf_h225_reason,
10049
14
      { "reason", "h225.reason",
10050
14
        FT_UINT32, BASE_DEC, VALS(h225_ServiceControlSession_reason_vals), 0,
10051
14
        "ServiceControlSession_reason", HFILL }},
10052
14
    { &hf_h225_open,
10053
14
      { "open", "h225.open_element",
10054
14
        FT_NONE, BASE_NONE, NULL, 0,
10055
14
        NULL, HFILL }},
10056
14
    { &hf_h225_refresh,
10057
14
      { "refresh", "h225.refresh_element",
10058
14
        FT_NONE, BASE_NONE, NULL, 0,
10059
14
        NULL, HFILL }},
10060
14
    { &hf_h225_close,
10061
14
      { "close", "h225.close_element",
10062
14
        FT_NONE, BASE_NONE, NULL, 0,
10063
14
        NULL, HFILL }},
10064
14
    { &hf_h225_nonStandardUsageTypes,
10065
14
      { "nonStandardUsageTypes", "h225.nonStandardUsageTypes",
10066
14
        FT_UINT32, BASE_DEC, NULL, 0,
10067
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
10068
14
    { &hf_h225_nonStandardUsageTypes_item,
10069
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
10070
14
        FT_NONE, BASE_NONE, NULL, 0,
10071
14
        NULL, HFILL }},
10072
14
    { &hf_h225_startTime,
10073
14
      { "startTime", "h225.startTime_element",
10074
14
        FT_NONE, BASE_NONE, NULL, 0,
10075
14
        NULL, HFILL }},
10076
14
    { &hf_h225_endTime_flg,
10077
14
      { "endTime", "h225.endTime_flg_element",
10078
14
        FT_NONE, BASE_NONE, NULL, 0,
10079
14
        NULL, HFILL }},
10080
14
    { &hf_h225_terminationCause_flg,
10081
14
      { "terminationCause", "h225.terminationCause_flg_element",
10082
14
        FT_NONE, BASE_NONE, NULL, 0,
10083
14
        NULL, HFILL }},
10084
14
    { &hf_h225_when,
10085
14
      { "when", "h225.when_element",
10086
14
        FT_NONE, BASE_NONE, NULL, 0,
10087
14
        "RasUsageSpecification_when", HFILL }},
10088
14
    { &hf_h225_start,
10089
14
      { "start", "h225.start_element",
10090
14
        FT_NONE, BASE_NONE, NULL, 0,
10091
14
        NULL, HFILL }},
10092
14
    { &hf_h225_end,
10093
14
      { "end", "h225.end_element",
10094
14
        FT_NONE, BASE_NONE, NULL, 0,
10095
14
        NULL, HFILL }},
10096
14
    { &hf_h225_inIrr,
10097
14
      { "inIrr", "h225.inIrr_element",
10098
14
        FT_NONE, BASE_NONE, NULL, 0,
10099
14
        NULL, HFILL }},
10100
14
    { &hf_h225_ras_callStartingPoint,
10101
14
      { "callStartingPoint", "h225.ras_callStartingPoint_element",
10102
14
        FT_NONE, BASE_NONE, NULL, 0,
10103
14
        "RasUsageSpecificationcallStartingPoint", HFILL }},
10104
14
    { &hf_h225_alerting_flg,
10105
14
      { "alerting", "h225.alerting_flg_element",
10106
14
        FT_NONE, BASE_NONE, NULL, 0,
10107
14
        NULL, HFILL }},
10108
14
    { &hf_h225_connect_flg,
10109
14
      { "connect", "h225.connect_flg_element",
10110
14
        FT_NONE, BASE_NONE, NULL, 0,
10111
14
        NULL, HFILL }},
10112
14
    { &hf_h225_required,
10113
14
      { "required", "h225.required_element",
10114
14
        FT_NONE, BASE_NONE, NULL, 0,
10115
14
        "RasUsageInfoTypes", HFILL }},
10116
14
    { &hf_h225_nonStandardUsageFields,
10117
14
      { "nonStandardUsageFields", "h225.nonStandardUsageFields",
10118
14
        FT_UINT32, BASE_DEC, NULL, 0,
10119
14
        "SEQUENCE_OF_NonStandardParameter", HFILL }},
10120
14
    { &hf_h225_nonStandardUsageFields_item,
10121
14
      { "NonStandardParameter", "h225.NonStandardParameter_element",
10122
14
        FT_NONE, BASE_NONE, NULL, 0,
10123
14
        NULL, HFILL }},
10124
14
    { &hf_h225_alertingTime,
10125
14
      { "alertingTime", "h225.alertingTime",
10126
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10127
14
        "TimeStamp", HFILL }},
10128
14
    { &hf_h225_connectTime,
10129
14
      { "connectTime", "h225.connectTime",
10130
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10131
14
        "TimeStamp", HFILL }},
10132
14
    { &hf_h225_endTime,
10133
14
      { "endTime", "h225.endTime",
10134
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10135
14
        "TimeStamp", HFILL }},
10136
14
    { &hf_h225_releaseCompleteCauseIE,
10137
14
      { "releaseCompleteCauseIE", "h225.releaseCompleteCauseIE",
10138
14
        FT_BYTES, BASE_NONE, NULL, 0,
10139
14
        "OCTET_STRING_SIZE_2_32", HFILL }},
10140
14
    { &hf_h225_sender,
10141
14
      { "sender", "h225.sender",
10142
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10143
14
        "BOOLEAN", HFILL }},
10144
14
    { &hf_h225_multicast,
10145
14
      { "multicast", "h225.multicast",
10146
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10147
14
        "BOOLEAN", HFILL }},
10148
14
    { &hf_h225_bandwidth,
10149
14
      { "bandwidth", "h225.bandwidth",
10150
14
        FT_UINT32, BASE_DEC, NULL, 0,
10151
14
        NULL, HFILL }},
10152
14
    { &hf_h225_rtcpAddresses,
10153
14
      { "rtcpAddresses", "h225.rtcpAddresses_element",
10154
14
        FT_NONE, BASE_NONE, NULL, 0,
10155
14
        "TransportChannelInfo", HFILL }},
10156
14
    { &hf_h225_canDisplayAmountString,
10157
14
      { "canDisplayAmountString", "h225.canDisplayAmountString",
10158
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10159
14
        "BOOLEAN", HFILL }},
10160
14
    { &hf_h225_canEnforceDurationLimit,
10161
14
      { "canEnforceDurationLimit", "h225.canEnforceDurationLimit",
10162
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10163
14
        "BOOLEAN", HFILL }},
10164
14
    { &hf_h225_amountString,
10165
14
      { "amountString", "h225.amountString",
10166
14
        FT_STRING, BASE_NONE, NULL, 0,
10167
14
        "BMPString_SIZE_1_512", HFILL }},
10168
14
    { &hf_h225_billingMode,
10169
14
      { "billingMode", "h225.billingMode",
10170
14
        FT_UINT32, BASE_DEC, VALS(h225_T_billingMode_vals), 0,
10171
14
        NULL, HFILL }},
10172
14
    { &hf_h225_credit,
10173
14
      { "credit", "h225.credit_element",
10174
14
        FT_NONE, BASE_NONE, NULL, 0,
10175
14
        NULL, HFILL }},
10176
14
    { &hf_h225_debit,
10177
14
      { "debit", "h225.debit_element",
10178
14
        FT_NONE, BASE_NONE, NULL, 0,
10179
14
        NULL, HFILL }},
10180
14
    { &hf_h225_callDurationLimit,
10181
14
      { "callDurationLimit", "h225.callDurationLimit",
10182
14
        FT_UINT32, BASE_DEC, NULL, 0,
10183
14
        "INTEGER_1_4294967295", HFILL }},
10184
14
    { &hf_h225_enforceCallDurationLimit,
10185
14
      { "enforceCallDurationLimit", "h225.enforceCallDurationLimit",
10186
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10187
14
        "BOOLEAN", HFILL }},
10188
14
    { &hf_h225_callStartingPoint,
10189
14
      { "callStartingPoint", "h225.callStartingPoint",
10190
14
        FT_UINT32, BASE_DEC, VALS(h225_CallCreditServiceControl_callStartingPoint_vals), 0,
10191
14
        "CallCreditServiceControl_callStartingPoint", HFILL }},
10192
14
    { &hf_h225_id,
10193
14
      { "id", "h225.id",
10194
14
        FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
10195
14
        "GenericIdentifier", HFILL }},
10196
14
    { &hf_h225_parameters,
10197
14
      { "parameters", "h225.parameters",
10198
14
        FT_UINT32, BASE_DEC, NULL, 0,
10199
14
        "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10200
14
    { &hf_h225_parameters_item,
10201
14
      { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10202
14
        FT_NONE, BASE_NONE, NULL, 0,
10203
14
        NULL, HFILL }},
10204
14
    { &hf_h225_standard,
10205
14
      { "standard", "h225.standard",
10206
14
        FT_UINT32, BASE_DEC, NULL, 0,
10207
14
        NULL, HFILL }},
10208
14
    { &hf_h225_oid,
10209
14
      { "oid", "h225.oid",
10210
14
        FT_OID, BASE_NONE, NULL, 0,
10211
14
        NULL, HFILL }},
10212
14
    { &hf_h225_genericIdentifier_nonStandard,
10213
14
      { "nonStandard", "h225.genericIdentifier_nonStandard",
10214
14
        FT_GUID, BASE_NONE, NULL, 0,
10215
14
        "GloballyUniqueID", HFILL }},
10216
14
    { &hf_h225_content,
10217
14
      { "content", "h225.content",
10218
14
        FT_UINT32, BASE_DEC, VALS(h225_Content_vals), 0,
10219
14
        NULL, HFILL }},
10220
14
    { &hf_h225_raw,
10221
14
      { "raw", "h225.raw",
10222
14
        FT_BYTES, BASE_NONE, NULL, 0,
10223
14
        NULL, HFILL }},
10224
14
    { &hf_h225_text,
10225
14
      { "text", "h225.text",
10226
14
        FT_STRING, BASE_NONE, NULL, 0,
10227
14
        "IA5String", HFILL }},
10228
14
    { &hf_h225_unicode,
10229
14
      { "unicode", "h225.unicode",
10230
14
        FT_STRING, BASE_NONE, NULL, 0,
10231
14
        "BMPString", HFILL }},
10232
14
    { &hf_h225_bool,
10233
14
      { "bool", "h225.bool",
10234
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10235
14
        "BOOLEAN", HFILL }},
10236
14
    { &hf_h225_number8,
10237
14
      { "number8", "h225.number8",
10238
14
        FT_UINT32, BASE_DEC, NULL, 0,
10239
14
        "INTEGER_0_255", HFILL }},
10240
14
    { &hf_h225_number16,
10241
14
      { "number16", "h225.number16",
10242
14
        FT_UINT32, BASE_DEC, NULL, 0,
10243
14
        "INTEGER_0_65535", HFILL }},
10244
14
    { &hf_h225_number32,
10245
14
      { "number32", "h225.number32",
10246
14
        FT_UINT32, BASE_DEC, NULL, 0,
10247
14
        "INTEGER_0_4294967295", HFILL }},
10248
14
    { &hf_h225_transport,
10249
14
      { "transport", "h225.transport",
10250
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10251
14
        "TransportAddress", HFILL }},
10252
14
    { &hf_h225_compound,
10253
14
      { "compound", "h225.compound",
10254
14
        FT_UINT32, BASE_DEC, NULL, 0,
10255
14
        "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10256
14
    { &hf_h225_compound_item,
10257
14
      { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10258
14
        FT_NONE, BASE_NONE, NULL, 0,
10259
14
        NULL, HFILL }},
10260
14
    { &hf_h225_nested,
10261
14
      { "nested", "h225.nested",
10262
14
        FT_UINT32, BASE_DEC, NULL, 0,
10263
14
        "SEQUENCE_SIZE_1_16_OF_GenericData", HFILL }},
10264
14
    { &hf_h225_nested_item,
10265
14
      { "GenericData", "h225.GenericData_element",
10266
14
        FT_NONE, BASE_NONE, NULL, 0,
10267
14
        NULL, HFILL }},
10268
14
    { &hf_h225_replacementFeatureSet,
10269
14
      { "replacementFeatureSet", "h225.replacementFeatureSet",
10270
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10271
14
        "BOOLEAN", HFILL }},
10272
14
    { &hf_h225_sendAddress,
10273
14
      { "sendAddress", "h225.sendAddress",
10274
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10275
14
        "TransportAddress", HFILL }},
10276
14
    { &hf_h225_recvAddress,
10277
14
      { "recvAddress", "h225.recvAddress",
10278
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10279
14
        "TransportAddress", HFILL }},
10280
14
    { &hf_h225_rtpAddress,
10281
14
      { "rtpAddress", "h225.rtpAddress_element",
10282
14
        FT_NONE, BASE_NONE, NULL, 0,
10283
14
        "TransportChannelInfo", HFILL }},
10284
14
    { &hf_h225_rtcpAddress,
10285
14
      { "rtcpAddress", "h225.rtcpAddress_element",
10286
14
        FT_NONE, BASE_NONE, NULL, 0,
10287
14
        "TransportChannelInfo", HFILL }},
10288
14
    { &hf_h225_cname,
10289
14
      { "cname", "h225.cname",
10290
14
        FT_STRING, BASE_NONE, NULL, 0,
10291
14
        "PrintableString", HFILL }},
10292
14
    { &hf_h225_ssrc,
10293
14
      { "ssrc", "h225.ssrc",
10294
14
        FT_UINT32, BASE_DEC, NULL, 0,
10295
14
        "INTEGER_1_4294967295", HFILL }},
10296
14
    { &hf_h225_sessionId,
10297
14
      { "sessionId", "h225.sessionId",
10298
14
        FT_UINT32, BASE_DEC, NULL, 0,
10299
14
        "INTEGER_1_255", HFILL }},
10300
14
    { &hf_h225_associatedSessionIds,
10301
14
      { "associatedSessionIds", "h225.associatedSessionIds",
10302
14
        FT_UINT32, BASE_DEC, NULL, 0,
10303
14
        NULL, HFILL }},
10304
14
    { &hf_h225_associatedSessionIds_item,
10305
14
      { "associatedSessionIds item", "h225.associatedSessionIds_item",
10306
14
        FT_UINT32, BASE_DEC, NULL, 0,
10307
14
        "INTEGER_1_255", HFILL }},
10308
14
    { &hf_h225_multicast_flg,
10309
14
      { "multicast", "h225.multicast_flg_element",
10310
14
        FT_NONE, BASE_NONE, NULL, 0,
10311
14
        NULL, HFILL }},
10312
14
    { &hf_h225_gatekeeperBased,
10313
14
      { "gatekeeperBased", "h225.gatekeeperBased_element",
10314
14
        FT_NONE, BASE_NONE, NULL, 0,
10315
14
        NULL, HFILL }},
10316
14
    { &hf_h225_endpointBased,
10317
14
      { "endpointBased", "h225.endpointBased_element",
10318
14
        FT_NONE, BASE_NONE, NULL, 0,
10319
14
        NULL, HFILL }},
10320
14
    { &hf_h225_gatekeeperRequest,
10321
14
      { "gatekeeperRequest", "h225.gatekeeperRequest_element",
10322
14
        FT_NONE, BASE_NONE, NULL, 0,
10323
14
        NULL, HFILL }},
10324
14
    { &hf_h225_gatekeeperConfirm,
10325
14
      { "gatekeeperConfirm", "h225.gatekeeperConfirm_element",
10326
14
        FT_NONE, BASE_NONE, NULL, 0,
10327
14
        NULL, HFILL }},
10328
14
    { &hf_h225_gatekeeperReject,
10329
14
      { "gatekeeperReject", "h225.gatekeeperReject_element",
10330
14
        FT_NONE, BASE_NONE, NULL, 0,
10331
14
        NULL, HFILL }},
10332
14
    { &hf_h225_registrationRequest,
10333
14
      { "registrationRequest", "h225.registrationRequest_element",
10334
14
        FT_NONE, BASE_NONE, NULL, 0,
10335
14
        NULL, HFILL }},
10336
14
    { &hf_h225_registrationConfirm,
10337
14
      { "registrationConfirm", "h225.registrationConfirm_element",
10338
14
        FT_NONE, BASE_NONE, NULL, 0,
10339
14
        NULL, HFILL }},
10340
14
    { &hf_h225_registrationReject,
10341
14
      { "registrationReject", "h225.registrationReject_element",
10342
14
        FT_NONE, BASE_NONE, NULL, 0,
10343
14
        NULL, HFILL }},
10344
14
    { &hf_h225_unregistrationRequest,
10345
14
      { "unregistrationRequest", "h225.unregistrationRequest_element",
10346
14
        FT_NONE, BASE_NONE, NULL, 0,
10347
14
        NULL, HFILL }},
10348
14
    { &hf_h225_unregistrationConfirm,
10349
14
      { "unregistrationConfirm", "h225.unregistrationConfirm_element",
10350
14
        FT_NONE, BASE_NONE, NULL, 0,
10351
14
        NULL, HFILL }},
10352
14
    { &hf_h225_unregistrationReject,
10353
14
      { "unregistrationReject", "h225.unregistrationReject_element",
10354
14
        FT_NONE, BASE_NONE, NULL, 0,
10355
14
        NULL, HFILL }},
10356
14
    { &hf_h225_admissionRequest,
10357
14
      { "admissionRequest", "h225.admissionRequest_element",
10358
14
        FT_NONE, BASE_NONE, NULL, 0,
10359
14
        NULL, HFILL }},
10360
14
    { &hf_h225_admissionConfirm,
10361
14
      { "admissionConfirm", "h225.admissionConfirm_element",
10362
14
        FT_NONE, BASE_NONE, NULL, 0,
10363
14
        NULL, HFILL }},
10364
14
    { &hf_h225_admissionReject,
10365
14
      { "admissionReject", "h225.admissionReject_element",
10366
14
        FT_NONE, BASE_NONE, NULL, 0,
10367
14
        NULL, HFILL }},
10368
14
    { &hf_h225_bandwidthRequest,
10369
14
      { "bandwidthRequest", "h225.bandwidthRequest_element",
10370
14
        FT_NONE, BASE_NONE, NULL, 0,
10371
14
        NULL, HFILL }},
10372
14
    { &hf_h225_bandwidthConfirm,
10373
14
      { "bandwidthConfirm", "h225.bandwidthConfirm_element",
10374
14
        FT_NONE, BASE_NONE, NULL, 0,
10375
14
        NULL, HFILL }},
10376
14
    { &hf_h225_bandwidthReject,
10377
14
      { "bandwidthReject", "h225.bandwidthReject_element",
10378
14
        FT_NONE, BASE_NONE, NULL, 0,
10379
14
        NULL, HFILL }},
10380
14
    { &hf_h225_disengageRequest,
10381
14
      { "disengageRequest", "h225.disengageRequest_element",
10382
14
        FT_NONE, BASE_NONE, NULL, 0,
10383
14
        NULL, HFILL }},
10384
14
    { &hf_h225_disengageConfirm,
10385
14
      { "disengageConfirm", "h225.disengageConfirm_element",
10386
14
        FT_NONE, BASE_NONE, NULL, 0,
10387
14
        NULL, HFILL }},
10388
14
    { &hf_h225_disengageReject,
10389
14
      { "disengageReject", "h225.disengageReject_element",
10390
14
        FT_NONE, BASE_NONE, NULL, 0,
10391
14
        NULL, HFILL }},
10392
14
    { &hf_h225_locationRequest,
10393
14
      { "locationRequest", "h225.locationRequest_element",
10394
14
        FT_NONE, BASE_NONE, NULL, 0,
10395
14
        NULL, HFILL }},
10396
14
    { &hf_h225_locationConfirm,
10397
14
      { "locationConfirm", "h225.locationConfirm_element",
10398
14
        FT_NONE, BASE_NONE, NULL, 0,
10399
14
        NULL, HFILL }},
10400
14
    { &hf_h225_locationReject,
10401
14
      { "locationReject", "h225.locationReject_element",
10402
14
        FT_NONE, BASE_NONE, NULL, 0,
10403
14
        NULL, HFILL }},
10404
14
    { &hf_h225_infoRequest,
10405
14
      { "infoRequest", "h225.infoRequest_element",
10406
14
        FT_NONE, BASE_NONE, NULL, 0,
10407
14
        NULL, HFILL }},
10408
14
    { &hf_h225_infoRequestResponse,
10409
14
      { "infoRequestResponse", "h225.infoRequestResponse_element",
10410
14
        FT_NONE, BASE_NONE, NULL, 0,
10411
14
        NULL, HFILL }},
10412
14
    { &hf_h225_nonStandardMessage,
10413
14
      { "nonStandardMessage", "h225.nonStandardMessage_element",
10414
14
        FT_NONE, BASE_NONE, NULL, 0,
10415
14
        NULL, HFILL }},
10416
14
    { &hf_h225_unknownMessageResponse,
10417
14
      { "unknownMessageResponse", "h225.unknownMessageResponse_element",
10418
14
        FT_NONE, BASE_NONE, NULL, 0,
10419
14
        NULL, HFILL }},
10420
14
    { &hf_h225_requestInProgress,
10421
14
      { "requestInProgress", "h225.requestInProgress_element",
10422
14
        FT_NONE, BASE_NONE, NULL, 0,
10423
14
        NULL, HFILL }},
10424
14
    { &hf_h225_resourcesAvailableIndicate,
10425
14
      { "resourcesAvailableIndicate", "h225.resourcesAvailableIndicate_element",
10426
14
        FT_NONE, BASE_NONE, NULL, 0,
10427
14
        NULL, HFILL }},
10428
14
    { &hf_h225_resourcesAvailableConfirm,
10429
14
      { "resourcesAvailableConfirm", "h225.resourcesAvailableConfirm_element",
10430
14
        FT_NONE, BASE_NONE, NULL, 0,
10431
14
        NULL, HFILL }},
10432
14
    { &hf_h225_infoRequestAck,
10433
14
      { "infoRequestAck", "h225.infoRequestAck_element",
10434
14
        FT_NONE, BASE_NONE, NULL, 0,
10435
14
        NULL, HFILL }},
10436
14
    { &hf_h225_infoRequestNak,
10437
14
      { "infoRequestNak", "h225.infoRequestNak_element",
10438
14
        FT_NONE, BASE_NONE, NULL, 0,
10439
14
        NULL, HFILL }},
10440
14
    { &hf_h225_serviceControlIndication,
10441
14
      { "serviceControlIndication", "h225.serviceControlIndication_element",
10442
14
        FT_NONE, BASE_NONE, NULL, 0,
10443
14
        NULL, HFILL }},
10444
14
    { &hf_h225_serviceControlResponse,
10445
14
      { "serviceControlResponse", "h225.serviceControlResponse_element",
10446
14
        FT_NONE, BASE_NONE, NULL, 0,
10447
14
        NULL, HFILL }},
10448
14
    { &hf_h225_admissionConfirmSequence,
10449
14
      { "admissionConfirmSequence", "h225.admissionConfirmSequence",
10450
14
        FT_UINT32, BASE_DEC, NULL, 0,
10451
14
        "SEQUENCE_OF_AdmissionConfirm", HFILL }},
10452
14
    { &hf_h225_admissionConfirmSequence_item,
10453
14
      { "AdmissionConfirm", "h225.AdmissionConfirm_element",
10454
14
        FT_NONE, BASE_NONE, NULL, 0,
10455
14
        NULL, HFILL }},
10456
14
    { &hf_h225_requestSeqNum,
10457
14
      { "requestSeqNum", "h225.requestSeqNum",
10458
14
        FT_UINT32, BASE_DEC, NULL, 0,
10459
14
        NULL, HFILL }},
10460
14
    { &hf_h225_gatekeeperRequest_rasAddress,
10461
14
      { "rasAddress", "h225.gatekeeperRequest_rasAddress",
10462
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10463
14
        "TransportAddress", HFILL }},
10464
14
    { &hf_h225_endpointAlias,
10465
14
      { "endpointAlias", "h225.endpointAlias",
10466
14
        FT_UINT32, BASE_DEC, NULL, 0,
10467
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10468
14
    { &hf_h225_endpointAlias_item,
10469
14
      { "AliasAddress", "h225.AliasAddress",
10470
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10471
14
        NULL, HFILL }},
10472
14
    { &hf_h225_alternateEndpoints,
10473
14
      { "alternateEndpoints", "h225.alternateEndpoints",
10474
14
        FT_UINT32, BASE_DEC, NULL, 0,
10475
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10476
14
    { &hf_h225_alternateEndpoints_item,
10477
14
      { "Endpoint", "h225.Endpoint_element",
10478
14
        FT_NONE, BASE_NONE, NULL, 0,
10479
14
        NULL, HFILL }},
10480
14
    { &hf_h225_authenticationCapability,
10481
14
      { "authenticationCapability", "h225.authenticationCapability",
10482
14
        FT_UINT32, BASE_DEC, NULL, 0,
10483
14
        "SEQUENCE_OF_AuthenticationMechanism", HFILL }},
10484
14
    { &hf_h225_authenticationCapability_item,
10485
14
      { "AuthenticationMechanism", "h225.AuthenticationMechanism",
10486
14
        FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10487
14
        NULL, HFILL }},
10488
14
    { &hf_h225_algorithmOIDs,
10489
14
      { "algorithmOIDs", "h225.algorithmOIDs",
10490
14
        FT_UINT32, BASE_DEC, NULL, 0,
10491
14
        NULL, HFILL }},
10492
14
    { &hf_h225_algorithmOIDs_item,
10493
14
      { "algorithmOIDs item", "h225.algorithmOIDs_item",
10494
14
        FT_OID, BASE_NONE, NULL, 0,
10495
14
        "OBJECT_IDENTIFIER", HFILL }},
10496
14
    { &hf_h225_integrity,
10497
14
      { "integrity", "h225.integrity",
10498
14
        FT_UINT32, BASE_DEC, NULL, 0,
10499
14
        "SEQUENCE_OF_IntegrityMechanism", HFILL }},
10500
14
    { &hf_h225_integrity_item,
10501
14
      { "IntegrityMechanism", "h225.IntegrityMechanism",
10502
14
        FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
10503
14
        NULL, HFILL }},
10504
14
    { &hf_h225_integrityCheckValue,
10505
14
      { "integrityCheckValue", "h225.integrityCheckValue_element",
10506
14
        FT_NONE, BASE_NONE, NULL, 0,
10507
14
        "ICV", HFILL }},
10508
14
    { &hf_h225_supportsAltGK,
10509
14
      { "supportsAltGK", "h225.supportsAltGK_element",
10510
14
        FT_NONE, BASE_NONE, NULL, 0,
10511
14
        NULL, HFILL }},
10512
14
    { &hf_h225_supportsAssignedGK,
10513
14
      { "supportsAssignedGK", "h225.supportsAssignedGK",
10514
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10515
14
        "BOOLEAN", HFILL }},
10516
14
    { &hf_h225_assignedGatekeeper,
10517
14
      { "assignedGatekeeper", "h225.assignedGatekeeper_element",
10518
14
        FT_NONE, BASE_NONE, NULL, 0,
10519
14
        "AlternateGK", HFILL }},
10520
14
    { &hf_h225_gatekeeperConfirm_rasAddress,
10521
14
      { "rasAddress", "h225.gatekeeperConfirm_rasAddress",
10522
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10523
14
        "TransportAddress", HFILL }},
10524
14
    { &hf_h225_authenticationMode,
10525
14
      { "authenticationMode", "h225.authenticationMode",
10526
14
        FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10527
14
        "AuthenticationMechanism", HFILL }},
10528
14
    { &hf_h225_rehomingModel,
10529
14
      { "rehomingModel", "h225.rehomingModel",
10530
14
        FT_UINT32, BASE_DEC, VALS(h225_RehomingModel_vals), 0,
10531
14
        NULL, HFILL }},
10532
14
    { &hf_h225_gatekeeperRejectReason,
10533
14
      { "rejectReason", "h225.gatekeeperRejectReason",
10534
14
        FT_UINT32, BASE_DEC, VALS(GatekeeperRejectReason_vals), 0,
10535
14
        "GatekeeperRejectReason", HFILL }},
10536
14
    { &hf_h225_altGKInfo,
10537
14
      { "altGKInfo", "h225.altGKInfo_element",
10538
14
        FT_NONE, BASE_NONE, NULL, 0,
10539
14
        NULL, HFILL }},
10540
14
    { &hf_h225_resourceUnavailable,
10541
14
      { "resourceUnavailable", "h225.resourceUnavailable_element",
10542
14
        FT_NONE, BASE_NONE, NULL, 0,
10543
14
        NULL, HFILL }},
10544
14
    { &hf_h225_terminalExcluded,
10545
14
      { "terminalExcluded", "h225.terminalExcluded_element",
10546
14
        FT_NONE, BASE_NONE, NULL, 0,
10547
14
        NULL, HFILL }},
10548
14
    { &hf_h225_securityDenial,
10549
14
      { "securityDenial", "h225.securityDenial_element",
10550
14
        FT_NONE, BASE_NONE, NULL, 0,
10551
14
        NULL, HFILL }},
10552
14
    { &hf_h225_gkRej_securityError,
10553
14
      { "securityError", "h225.gkRej_securityError",
10554
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10555
14
        "SecurityErrors", HFILL }},
10556
14
    { &hf_h225_discoveryComplete,
10557
14
      { "discoveryComplete", "h225.discoveryComplete",
10558
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10559
14
        "BOOLEAN", HFILL }},
10560
14
    { &hf_h225_terminalType,
10561
14
      { "terminalType", "h225.terminalType_element",
10562
14
        FT_NONE, BASE_NONE, NULL, 0,
10563
14
        "EndpointType", HFILL }},
10564
14
    { &hf_h225_terminalAlias,
10565
14
      { "terminalAlias", "h225.terminalAlias",
10566
14
        FT_UINT32, BASE_DEC, NULL, 0,
10567
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10568
14
    { &hf_h225_terminalAlias_item,
10569
14
      { "AliasAddress", "h225.AliasAddress",
10570
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10571
14
        NULL, HFILL }},
10572
14
    { &hf_h225_endpointVendor,
10573
14
      { "endpointVendor", "h225.endpointVendor_element",
10574
14
        FT_NONE, BASE_NONE, NULL, 0,
10575
14
        "VendorIdentifier", HFILL }},
10576
14
    { &hf_h225_timeToLive,
10577
14
      { "timeToLive", "h225.timeToLive",
10578
14
        FT_UINT32, BASE_DEC, NULL, 0,
10579
14
        NULL, HFILL }},
10580
14
    { &hf_h225_keepAlive,
10581
14
      { "keepAlive", "h225.keepAlive",
10582
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10583
14
        "BOOLEAN", HFILL }},
10584
14
    { &hf_h225_willSupplyUUIEs,
10585
14
      { "willSupplyUUIEs", "h225.willSupplyUUIEs",
10586
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10587
14
        "BOOLEAN", HFILL }},
10588
14
    { &hf_h225_additiveRegistration,
10589
14
      { "additiveRegistration", "h225.additiveRegistration_element",
10590
14
        FT_NONE, BASE_NONE, NULL, 0,
10591
14
        NULL, HFILL }},
10592
14
    { &hf_h225_terminalAliasPattern,
10593
14
      { "terminalAliasPattern", "h225.terminalAliasPattern",
10594
14
        FT_UINT32, BASE_DEC, NULL, 0,
10595
14
        "SEQUENCE_OF_AddressPattern", HFILL }},
10596
14
    { &hf_h225_terminalAliasPattern_item,
10597
14
      { "AddressPattern", "h225.AddressPattern",
10598
14
        FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10599
14
        NULL, HFILL }},
10600
14
    { &hf_h225_usageReportingCapability,
10601
14
      { "usageReportingCapability", "h225.usageReportingCapability_element",
10602
14
        FT_NONE, BASE_NONE, NULL, 0,
10603
14
        "RasUsageInfoTypes", HFILL }},
10604
14
    { &hf_h225_supportedH248Packages,
10605
14
      { "supportedH248Packages", "h225.supportedH248Packages",
10606
14
        FT_UINT32, BASE_DEC, NULL, 0,
10607
14
        "SEQUENCE_OF_H248PackagesDescriptor", HFILL }},
10608
14
    { &hf_h225_supportedH248Packages_item,
10609
14
      { "H248PackagesDescriptor", "h225.H248PackagesDescriptor",
10610
14
        FT_BYTES, BASE_NONE, NULL, 0,
10611
14
        NULL, HFILL }},
10612
14
    { &hf_h225_callCreditCapability,
10613
14
      { "callCreditCapability", "h225.callCreditCapability_element",
10614
14
        FT_NONE, BASE_NONE, NULL, 0,
10615
14
        NULL, HFILL }},
10616
14
    { &hf_h225_capacityReportingCapability,
10617
14
      { "capacityReportingCapability", "h225.capacityReportingCapability_element",
10618
14
        FT_NONE, BASE_NONE, NULL, 0,
10619
14
        NULL, HFILL }},
10620
14
    { &hf_h225_restart,
10621
14
      { "restart", "h225.restart_element",
10622
14
        FT_NONE, BASE_NONE, NULL, 0,
10623
14
        NULL, HFILL }},
10624
14
    { &hf_h225_supportsACFSequences,
10625
14
      { "supportsACFSequences", "h225.supportsACFSequences_element",
10626
14
        FT_NONE, BASE_NONE, NULL, 0,
10627
14
        NULL, HFILL }},
10628
14
    { &hf_h225_transportQOS,
10629
14
      { "transportQOS", "h225.transportQOS",
10630
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
10631
14
        NULL, HFILL }},
10632
14
    { &hf_h225_willRespondToIRR,
10633
14
      { "willRespondToIRR", "h225.willRespondToIRR",
10634
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10635
14
        "BOOLEAN", HFILL }},
10636
14
    { &hf_h225_preGrantedARQ,
10637
14
      { "preGrantedARQ", "h225.preGrantedARQ_element",
10638
14
        FT_NONE, BASE_NONE, NULL, 0,
10639
14
        NULL, HFILL }},
10640
14
    { &hf_h225_makeCall,
10641
14
      { "makeCall", "h225.makeCall",
10642
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10643
14
        "BOOLEAN", HFILL }},
10644
14
    { &hf_h225_useGKCallSignalAddressToMakeCall,
10645
14
      { "useGKCallSignalAddressToMakeCall", "h225.useGKCallSignalAddressToMakeCall",
10646
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10647
14
        "BOOLEAN", HFILL }},
10648
14
    { &hf_h225_answerCall,
10649
14
      { "answerCall", "h225.answerCall",
10650
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10651
14
        "BOOLEAN", HFILL }},
10652
14
    { &hf_h225_useGKCallSignalAddressToAnswer,
10653
14
      { "useGKCallSignalAddressToAnswer", "h225.useGKCallSignalAddressToAnswer",
10654
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10655
14
        "BOOLEAN", HFILL }},
10656
14
    { &hf_h225_irrFrequencyInCall,
10657
14
      { "irrFrequencyInCall", "h225.irrFrequencyInCall",
10658
14
        FT_UINT32, BASE_DEC, NULL, 0,
10659
14
        "INTEGER_1_65535", HFILL }},
10660
14
    { &hf_h225_totalBandwidthRestriction,
10661
14
      { "totalBandwidthRestriction", "h225.totalBandwidthRestriction",
10662
14
        FT_UINT32, BASE_DEC, NULL, 0,
10663
14
        "BandWidth", HFILL }},
10664
14
    { &hf_h225_useSpecifiedTransport,
10665
14
      { "useSpecifiedTransport", "h225.useSpecifiedTransport",
10666
14
        FT_UINT32, BASE_DEC, VALS(h225_UseSpecifiedTransport_vals), 0,
10667
14
        NULL, HFILL }},
10668
14
    { &hf_h225_supportsAdditiveRegistration,
10669
14
      { "supportsAdditiveRegistration", "h225.supportsAdditiveRegistration_element",
10670
14
        FT_NONE, BASE_NONE, NULL, 0,
10671
14
        NULL, HFILL }},
10672
14
    { &hf_h225_usageSpec,
10673
14
      { "usageSpec", "h225.usageSpec",
10674
14
        FT_UINT32, BASE_DEC, NULL, 0,
10675
14
        "SEQUENCE_OF_RasUsageSpecification", HFILL }},
10676
14
    { &hf_h225_usageSpec_item,
10677
14
      { "RasUsageSpecification", "h225.RasUsageSpecification_element",
10678
14
        FT_NONE, BASE_NONE, NULL, 0,
10679
14
        NULL, HFILL }},
10680
14
    { &hf_h225_featureServerAlias,
10681
14
      { "featureServerAlias", "h225.featureServerAlias",
10682
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10683
14
        "AliasAddress", HFILL }},
10684
14
    { &hf_h225_capacityReportingSpec,
10685
14
      { "capacityReportingSpec", "h225.capacityReportingSpec_element",
10686
14
        FT_NONE, BASE_NONE, NULL, 0,
10687
14
        "CapacityReportingSpecification", HFILL }},
10688
14
    { &hf_h225_registrationRejectReason,
10689
14
      { "rejectReason", "h225.registrationRejectReason",
10690
14
        FT_UINT32, BASE_DEC, VALS(RegistrationRejectReason_vals), 0,
10691
14
        "RegistrationRejectReason", HFILL }},
10692
14
    { &hf_h225_discoveryRequired,
10693
14
      { "discoveryRequired", "h225.discoveryRequired_element",
10694
14
        FT_NONE, BASE_NONE, NULL, 0,
10695
14
        NULL, HFILL }},
10696
14
    { &hf_h225_invalidCallSignalAddress,
10697
14
      { "invalidCallSignalAddress", "h225.invalidCallSignalAddress_element",
10698
14
        FT_NONE, BASE_NONE, NULL, 0,
10699
14
        NULL, HFILL }},
10700
14
    { &hf_h225_invalidRASAddress,
10701
14
      { "invalidRASAddress", "h225.invalidRASAddress_element",
10702
14
        FT_NONE, BASE_NONE, NULL, 0,
10703
14
        NULL, HFILL }},
10704
14
    { &hf_h225_duplicateAlias,
10705
14
      { "duplicateAlias", "h225.duplicateAlias",
10706
14
        FT_UINT32, BASE_DEC, NULL, 0,
10707
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10708
14
    { &hf_h225_duplicateAlias_item,
10709
14
      { "AliasAddress", "h225.AliasAddress",
10710
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10711
14
        NULL, HFILL }},
10712
14
    { &hf_h225_invalidTerminalType,
10713
14
      { "invalidTerminalType", "h225.invalidTerminalType_element",
10714
14
        FT_NONE, BASE_NONE, NULL, 0,
10715
14
        NULL, HFILL }},
10716
14
    { &hf_h225_transportNotSupported,
10717
14
      { "transportNotSupported", "h225.transportNotSupported_element",
10718
14
        FT_NONE, BASE_NONE, NULL, 0,
10719
14
        NULL, HFILL }},
10720
14
    { &hf_h225_transportQOSNotSupported,
10721
14
      { "transportQOSNotSupported", "h225.transportQOSNotSupported_element",
10722
14
        FT_NONE, BASE_NONE, NULL, 0,
10723
14
        NULL, HFILL }},
10724
14
    { &hf_h225_invalidAlias,
10725
14
      { "invalidAlias", "h225.invalidAlias_element",
10726
14
        FT_NONE, BASE_NONE, NULL, 0,
10727
14
        NULL, HFILL }},
10728
14
    { &hf_h225_fullRegistrationRequired,
10729
14
      { "fullRegistrationRequired", "h225.fullRegistrationRequired_element",
10730
14
        FT_NONE, BASE_NONE, NULL, 0,
10731
14
        NULL, HFILL }},
10732
14
    { &hf_h225_additiveRegistrationNotSupported,
10733
14
      { "additiveRegistrationNotSupported", "h225.additiveRegistrationNotSupported_element",
10734
14
        FT_NONE, BASE_NONE, NULL, 0,
10735
14
        NULL, HFILL }},
10736
14
    { &hf_h225_invalidTerminalAliases,
10737
14
      { "invalidTerminalAliases", "h225.invalidTerminalAliases_element",
10738
14
        FT_NONE, BASE_NONE, NULL, 0,
10739
14
        NULL, HFILL }},
10740
14
    { &hf_h225_reg_securityError,
10741
14
      { "securityError", "h225.reg_securityError",
10742
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10743
14
        "SecurityErrors", HFILL }},
10744
14
    { &hf_h225_registerWithAssignedGK,
10745
14
      { "registerWithAssignedGK", "h225.registerWithAssignedGK_element",
10746
14
        FT_NONE, BASE_NONE, NULL, 0,
10747
14
        NULL, HFILL }},
10748
14
    { &hf_h225_unregRequestReason,
10749
14
      { "reason", "h225.unregRequestReason",
10750
14
        FT_UINT32, BASE_DEC, VALS(UnregRequestReason_vals), 0,
10751
14
        "UnregRequestReason", HFILL }},
10752
14
    { &hf_h225_endpointAliasPattern,
10753
14
      { "endpointAliasPattern", "h225.endpointAliasPattern",
10754
14
        FT_UINT32, BASE_DEC, NULL, 0,
10755
14
        "SEQUENCE_OF_AddressPattern", HFILL }},
10756
14
    { &hf_h225_endpointAliasPattern_item,
10757
14
      { "AddressPattern", "h225.AddressPattern",
10758
14
        FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10759
14
        NULL, HFILL }},
10760
14
    { &hf_h225_reregistrationRequired,
10761
14
      { "reregistrationRequired", "h225.reregistrationRequired_element",
10762
14
        FT_NONE, BASE_NONE, NULL, 0,
10763
14
        NULL, HFILL }},
10764
14
    { &hf_h225_ttlExpired,
10765
14
      { "ttlExpired", "h225.ttlExpired_element",
10766
14
        FT_NONE, BASE_NONE, NULL, 0,
10767
14
        NULL, HFILL }},
10768
14
    { &hf_h225_maintenance,
10769
14
      { "maintenance", "h225.maintenance_element",
10770
14
        FT_NONE, BASE_NONE, NULL, 0,
10771
14
        NULL, HFILL }},
10772
14
    { &hf_h225_securityError,
10773
14
      { "securityError", "h225.securityError",
10774
14
        FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors2_vals), 0,
10775
14
        "SecurityErrors2", HFILL }},
10776
14
    { &hf_h225_unregRejectReason,
10777
14
      { "rejectReason", "h225.unregRejectReason",
10778
14
        FT_UINT32, BASE_DEC, VALS(UnregRejectReason_vals), 0,
10779
14
        "UnregRejectReason", HFILL }},
10780
14
    { &hf_h225_notCurrentlyRegistered,
10781
14
      { "notCurrentlyRegistered", "h225.notCurrentlyRegistered_element",
10782
14
        FT_NONE, BASE_NONE, NULL, 0,
10783
14
        NULL, HFILL }},
10784
14
    { &hf_h225_callInProgress,
10785
14
      { "callInProgress", "h225.callInProgress_element",
10786
14
        FT_NONE, BASE_NONE, NULL, 0,
10787
14
        NULL, HFILL }},
10788
14
    { &hf_h225_permissionDenied,
10789
14
      { "permissionDenied", "h225.permissionDenied_element",
10790
14
        FT_NONE, BASE_NONE, NULL, 0,
10791
14
        NULL, HFILL }},
10792
14
    { &hf_h225_callModel,
10793
14
      { "callModel", "h225.callModel",
10794
14
        FT_UINT32, BASE_DEC, VALS(h225_CallModel_vals), 0,
10795
14
        NULL, HFILL }},
10796
14
    { &hf_h225_DestinationInfo_item,
10797
14
      { "DestinationInfo item", "h225.DestinationInfo_item",
10798
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10799
14
        NULL, HFILL }},
10800
14
    { &hf_h225_destinationInfo_01,
10801
14
      { "destinationInfo", "h225.destinationInfo",
10802
14
        FT_UINT32, BASE_DEC, NULL, 0,
10803
14
        NULL, HFILL }},
10804
14
    { &hf_h225_srcInfo,
10805
14
      { "srcInfo", "h225.srcInfo",
10806
14
        FT_UINT32, BASE_DEC, NULL, 0,
10807
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10808
14
    { &hf_h225_srcInfo_item,
10809
14
      { "AliasAddress", "h225.AliasAddress",
10810
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10811
14
        NULL, HFILL }},
10812
14
    { &hf_h225_srcCallSignalAddress,
10813
14
      { "srcCallSignalAddress", "h225.srcCallSignalAddress",
10814
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10815
14
        "TransportAddress", HFILL }},
10816
14
    { &hf_h225_bandWidth,
10817
14
      { "bandWidth", "h225.bandWidth",
10818
14
        FT_UINT32, BASE_DEC, NULL, 0,
10819
14
        NULL, HFILL }},
10820
14
    { &hf_h225_callReferenceValue,
10821
14
      { "callReferenceValue", "h225.callReferenceValue",
10822
14
        FT_UINT32, BASE_DEC, NULL, 0,
10823
14
        NULL, HFILL }},
10824
14
    { &hf_h225_canMapAlias,
10825
14
      { "canMapAlias", "h225.canMapAlias",
10826
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10827
14
        "BOOLEAN", HFILL }},
10828
14
    { &hf_h225_srcAlternatives,
10829
14
      { "srcAlternatives", "h225.srcAlternatives",
10830
14
        FT_UINT32, BASE_DEC, NULL, 0,
10831
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10832
14
    { &hf_h225_srcAlternatives_item,
10833
14
      { "Endpoint", "h225.Endpoint_element",
10834
14
        FT_NONE, BASE_NONE, NULL, 0,
10835
14
        NULL, HFILL }},
10836
14
    { &hf_h225_destAlternatives,
10837
14
      { "destAlternatives", "h225.destAlternatives",
10838
14
        FT_UINT32, BASE_DEC, NULL, 0,
10839
14
        "SEQUENCE_OF_Endpoint", HFILL }},
10840
14
    { &hf_h225_destAlternatives_item,
10841
14
      { "Endpoint", "h225.Endpoint_element",
10842
14
        FT_NONE, BASE_NONE, NULL, 0,
10843
14
        NULL, HFILL }},
10844
14
    { &hf_h225_gatewayDataRate,
10845
14
      { "gatewayDataRate", "h225.gatewayDataRate_element",
10846
14
        FT_NONE, BASE_NONE, NULL, 0,
10847
14
        "DataRate", HFILL }},
10848
14
    { &hf_h225_desiredTunnelledProtocol,
10849
14
      { "desiredTunnelledProtocol", "h225.desiredTunnelledProtocol_element",
10850
14
        FT_NONE, BASE_NONE, NULL, 0,
10851
14
        "TunnelledProtocol", HFILL }},
10852
14
    { &hf_h225_canMapSrcAlias,
10853
14
      { "canMapSrcAlias", "h225.canMapSrcAlias",
10854
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10855
14
        "BOOLEAN", HFILL }},
10856
14
    { &hf_h225_pointToPoint,
10857
14
      { "pointToPoint", "h225.pointToPoint_element",
10858
14
        FT_NONE, BASE_NONE, NULL, 0,
10859
14
        NULL, HFILL }},
10860
14
    { &hf_h225_oneToN,
10861
14
      { "oneToN", "h225.oneToN_element",
10862
14
        FT_NONE, BASE_NONE, NULL, 0,
10863
14
        NULL, HFILL }},
10864
14
    { &hf_h225_nToOne,
10865
14
      { "nToOne", "h225.nToOne_element",
10866
14
        FT_NONE, BASE_NONE, NULL, 0,
10867
14
        NULL, HFILL }},
10868
14
    { &hf_h225_nToN,
10869
14
      { "nToN", "h225.nToN_element",
10870
14
        FT_NONE, BASE_NONE, NULL, 0,
10871
14
        NULL, HFILL }},
10872
14
    { &hf_h225_direct,
10873
14
      { "direct", "h225.direct_element",
10874
14
        FT_NONE, BASE_NONE, NULL, 0,
10875
14
        NULL, HFILL }},
10876
14
    { &hf_h225_gatekeeperRouted,
10877
14
      { "gatekeeperRouted", "h225.gatekeeperRouted_element",
10878
14
        FT_NONE, BASE_NONE, NULL, 0,
10879
14
        NULL, HFILL }},
10880
14
    { &hf_h225_endpointControlled,
10881
14
      { "endpointControlled", "h225.endpointControlled_element",
10882
14
        FT_NONE, BASE_NONE, NULL, 0,
10883
14
        NULL, HFILL }},
10884
14
    { &hf_h225_gatekeeperControlled,
10885
14
      { "gatekeeperControlled", "h225.gatekeeperControlled_element",
10886
14
        FT_NONE, BASE_NONE, NULL, 0,
10887
14
        NULL, HFILL }},
10888
14
    { &hf_h225_noControl,
10889
14
      { "noControl", "h225.noControl_element",
10890
14
        FT_NONE, BASE_NONE, NULL, 0,
10891
14
        NULL, HFILL }},
10892
14
    { &hf_h225_qOSCapabilities,
10893
14
      { "qOSCapabilities", "h225.qOSCapabilities",
10894
14
        FT_UINT32, BASE_DEC, NULL, 0,
10895
14
        "SEQUENCE_SIZE_1_256_OF_QOSCapability", HFILL }},
10896
14
    { &hf_h225_qOSCapabilities_item,
10897
14
      { "QOSCapability", "h225.QOSCapability_element",
10898
14
        FT_NONE, BASE_NONE, NULL, 0,
10899
14
        NULL, HFILL }},
10900
14
    { &hf_h225_irrFrequency,
10901
14
      { "irrFrequency", "h225.irrFrequency",
10902
14
        FT_UINT32, BASE_DEC, NULL, 0,
10903
14
        "INTEGER_1_65535", HFILL }},
10904
14
    { &hf_h225_destinationType,
10905
14
      { "destinationType", "h225.destinationType_element",
10906
14
        FT_NONE, BASE_NONE, NULL, 0,
10907
14
        "EndpointType", HFILL }},
10908
14
    { &hf_h225_ac_remoteExtensionAddress_item,
10909
14
      { "AliasAddress", "h225.ac_remoteExtensionAddress_item",
10910
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10911
14
        NULL, HFILL }},
10912
14
    { &hf_h225_uuiesRequested,
10913
14
      { "uuiesRequested", "h225.uuiesRequested_element",
10914
14
        FT_NONE, BASE_NONE, NULL, 0,
10915
14
        NULL, HFILL }},
10916
14
    { &hf_h225_supportedProtocols,
10917
14
      { "supportedProtocols", "h225.supportedProtocols",
10918
14
        FT_UINT32, BASE_DEC, NULL, 0,
10919
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
10920
14
    { &hf_h225_supportedProtocols_item,
10921
14
      { "SupportedProtocols", "h225.SupportedProtocols",
10922
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
10923
14
        NULL, HFILL }},
10924
14
    { &hf_h225_modifiedSrcInfo,
10925
14
      { "modifiedSrcInfo", "h225.modifiedSrcInfo",
10926
14
        FT_UINT32, BASE_DEC, NULL, 0,
10927
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
10928
14
    { &hf_h225_modifiedSrcInfo_item,
10929
14
      { "AliasAddress", "h225.AliasAddress",
10930
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10931
14
        NULL, HFILL }},
10932
14
    { &hf_h225_setup_bool,
10933
14
      { "setup", "h225.setup_bool",
10934
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10935
14
        "BOOLEAN", HFILL }},
10936
14
    { &hf_h225_callProceeding_flg,
10937
14
      { "callProceeding", "h225.callProceeding_flg",
10938
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10939
14
        "BOOLEAN", HFILL }},
10940
14
    { &hf_h225_connect_bool,
10941
14
      { "connect", "h225.connect_bool",
10942
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10943
14
        "BOOLEAN", HFILL }},
10944
14
    { &hf_h225_alerting_bool,
10945
14
      { "alerting", "h225.alerting_bool",
10946
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10947
14
        "BOOLEAN", HFILL }},
10948
14
    { &hf_h225_information_bool,
10949
14
      { "information", "h225.information_bool",
10950
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10951
14
        "BOOLEAN", HFILL }},
10952
14
    { &hf_h225_releaseComplete_bool,
10953
14
      { "releaseComplete", "h225.releaseComplete_bool",
10954
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10955
14
        "BOOLEAN", HFILL }},
10956
14
    { &hf_h225_facility_bool,
10957
14
      { "facility", "h225.facility_bool",
10958
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10959
14
        "BOOLEAN", HFILL }},
10960
14
    { &hf_h225_progress_bool,
10961
14
      { "progress", "h225.progress_bool",
10962
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10963
14
        "BOOLEAN", HFILL }},
10964
14
    { &hf_h225_empty,
10965
14
      { "empty", "h225.empty",
10966
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10967
14
        "BOOLEAN", HFILL }},
10968
14
    { &hf_h225_status_bool,
10969
14
      { "status", "h225.status_bool",
10970
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10971
14
        "BOOLEAN", HFILL }},
10972
14
    { &hf_h225_statusInquiry_bool,
10973
14
      { "statusInquiry", "h225.statusInquiry_bool",
10974
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10975
14
        "BOOLEAN", HFILL }},
10976
14
    { &hf_h225_setupAcknowledge_bool,
10977
14
      { "setupAcknowledge", "h225.setupAcknowledge_bool",
10978
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10979
14
        "BOOLEAN", HFILL }},
10980
14
    { &hf_h225_notify_bool,
10981
14
      { "notify", "h225.notify_bool",
10982
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10983
14
        "BOOLEAN", HFILL }},
10984
14
    { &hf_h225_rejectReason,
10985
14
      { "rejectReason", "h225.rejectReason",
10986
14
        FT_UINT32, BASE_DEC, VALS(AdmissionRejectReason_vals), 0,
10987
14
        "AdmissionRejectReason", HFILL }},
10988
14
    { &hf_h225_invalidPermission,
10989
14
      { "invalidPermission", "h225.invalidPermission_element",
10990
14
        FT_NONE, BASE_NONE, NULL, 0,
10991
14
        NULL, HFILL }},
10992
14
    { &hf_h225_requestDenied,
10993
14
      { "requestDenied", "h225.requestDenied_element",
10994
14
        FT_NONE, BASE_NONE, NULL, 0,
10995
14
        NULL, HFILL }},
10996
14
    { &hf_h225_invalidEndpointIdentifier,
10997
14
      { "invalidEndpointIdentifier", "h225.invalidEndpointIdentifier_element",
10998
14
        FT_NONE, BASE_NONE, NULL, 0,
10999
14
        NULL, HFILL }},
11000
14
    { &hf_h225_qosControlNotSupported,
11001
14
      { "qosControlNotSupported", "h225.qosControlNotSupported_element",
11002
14
        FT_NONE, BASE_NONE, NULL, 0,
11003
14
        NULL, HFILL }},
11004
14
    { &hf_h225_incompleteAddress,
11005
14
      { "incompleteAddress", "h225.incompleteAddress_element",
11006
14
        FT_NONE, BASE_NONE, NULL, 0,
11007
14
        NULL, HFILL }},
11008
14
    { &hf_h225_aliasesInconsistent,
11009
14
      { "aliasesInconsistent", "h225.aliasesInconsistent_element",
11010
14
        FT_NONE, BASE_NONE, NULL, 0,
11011
14
        NULL, HFILL }},
11012
14
    { &hf_h225_routeCallToSCN,
11013
14
      { "routeCallToSCN", "h225.routeCallToSCN",
11014
14
        FT_UINT32, BASE_DEC, NULL, 0,
11015
14
        "SEQUENCE_OF_PartyNumber", HFILL }},
11016
14
    { &hf_h225_routeCallToSCN_item,
11017
14
      { "PartyNumber", "h225.PartyNumber",
11018
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11019
14
        NULL, HFILL }},
11020
14
    { &hf_h225_exceedsCallCapacity,
11021
14
      { "exceedsCallCapacity", "h225.exceedsCallCapacity_element",
11022
14
        FT_NONE, BASE_NONE, NULL, 0,
11023
14
        NULL, HFILL }},
11024
14
    { &hf_h225_collectDestination,
11025
14
      { "collectDestination", "h225.collectDestination_element",
11026
14
        FT_NONE, BASE_NONE, NULL, 0,
11027
14
        NULL, HFILL }},
11028
14
    { &hf_h225_collectPIN,
11029
14
      { "collectPIN", "h225.collectPIN_element",
11030
14
        FT_NONE, BASE_NONE, NULL, 0,
11031
14
        NULL, HFILL }},
11032
14
    { &hf_h225_noRouteToDestination,
11033
14
      { "noRouteToDestination", "h225.noRouteToDestination_element",
11034
14
        FT_NONE, BASE_NONE, NULL, 0,
11035
14
        NULL, HFILL }},
11036
14
    { &hf_h225_unallocatedNumber,
11037
14
      { "unallocatedNumber", "h225.unallocatedNumber_element",
11038
14
        FT_NONE, BASE_NONE, NULL, 0,
11039
14
        NULL, HFILL }},
11040
14
    { &hf_h225_answeredCall,
11041
14
      { "answeredCall", "h225.answeredCall",
11042
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11043
14
        "BOOLEAN", HFILL }},
11044
14
    { &hf_h225_usageInformation,
11045
14
      { "usageInformation", "h225.usageInformation_element",
11046
14
        FT_NONE, BASE_NONE, NULL, 0,
11047
14
        "RasUsageInformation", HFILL }},
11048
14
    { &hf_h225_bandwidthDetails,
11049
14
      { "bandwidthDetails", "h225.bandwidthDetails",
11050
14
        FT_UINT32, BASE_DEC, NULL, 0,
11051
14
        "SEQUENCE_OF_BandwidthDetails", HFILL }},
11052
14
    { &hf_h225_bandwidthDetails_item,
11053
14
      { "BandwidthDetails", "h225.BandwidthDetails_element",
11054
14
        FT_NONE, BASE_NONE, NULL, 0,
11055
14
        NULL, HFILL }},
11056
14
    { &hf_h225_bandRejectReason,
11057
14
      { "rejectReason", "h225.bandRejectReason",
11058
14
        FT_UINT32, BASE_DEC, VALS(BandRejectReason_vals), 0,
11059
14
        "BandRejectReason", HFILL }},
11060
14
    { &hf_h225_allowedBandWidth,
11061
14
      { "allowedBandWidth", "h225.allowedBandWidth",
11062
14
        FT_UINT32, BASE_DEC, NULL, 0,
11063
14
        "BandWidth", HFILL }},
11064
14
    { &hf_h225_notBound,
11065
14
      { "notBound", "h225.notBound_element",
11066
14
        FT_NONE, BASE_NONE, NULL, 0,
11067
14
        NULL, HFILL }},
11068
14
    { &hf_h225_invalidConferenceID,
11069
14
      { "invalidConferenceID", "h225.invalidConferenceID_element",
11070
14
        FT_NONE, BASE_NONE, NULL, 0,
11071
14
        NULL, HFILL }},
11072
14
    { &hf_h225_insufficientResources,
11073
14
      { "insufficientResources", "h225.insufficientResources_element",
11074
14
        FT_NONE, BASE_NONE, NULL, 0,
11075
14
        NULL, HFILL }},
11076
14
    { &hf_h225_replyAddress,
11077
14
      { "replyAddress", "h225.replyAddress",
11078
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11079
14
        "TransportAddress", HFILL }},
11080
14
    { &hf_h225_sourceInfo,
11081
14
      { "sourceInfo", "h225.sourceInfo",
11082
14
        FT_UINT32, BASE_DEC, NULL, 0,
11083
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
11084
14
    { &hf_h225_sourceInfo_item,
11085
14
      { "AliasAddress", "h225.AliasAddress",
11086
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11087
14
        NULL, HFILL }},
11088
14
    { &hf_h225_hopCount,
11089
14
      { "hopCount", "h225.hopCount",
11090
14
        FT_UINT32, BASE_DEC, NULL, 0,
11091
14
        "INTEGER_1_255", HFILL }},
11092
14
    { &hf_h225_sourceEndpointInfo,
11093
14
      { "sourceEndpointInfo", "h225.sourceEndpointInfo",
11094
14
        FT_UINT32, BASE_DEC, NULL, 0,
11095
14
        "SEQUENCE_OF_AliasAddress", HFILL }},
11096
14
    { &hf_h225_sourceEndpointInfo_item,
11097
14
      { "AliasAddress", "h225.AliasAddress",
11098
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11099
14
        NULL, HFILL }},
11100
14
    { &hf_h225_locationConfirm_callSignalAddress,
11101
14
      { "callSignalAddress", "h225.locationConfirm_callSignalAddress",
11102
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11103
14
        "TransportAddress", HFILL }},
11104
14
    { &hf_h225_locationConfirm_rasAddress,
11105
14
      { "rasAddress", "h225.locationConfirm_rasAddress",
11106
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11107
14
        "TransportAddress", HFILL }},
11108
14
    { &hf_h225_remoteExtensionAddress_item,
11109
14
      { "AliasAddress", "h225.AliasAddress",
11110
14
        FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11111
14
        NULL, HFILL }},
11112
14
    { &hf_h225_locationRejectReason,
11113
14
      { "rejectReason", "h225.locationRejectReason",
11114
14
        FT_UINT32, BASE_DEC, VALS(LocationRejectReason_vals), 0,
11115
14
        "LocationRejectReason", HFILL }},
11116
14
    { &hf_h225_notRegistered,
11117
14
      { "notRegistered", "h225.notRegistered_element",
11118
14
        FT_NONE, BASE_NONE, NULL, 0,
11119
14
        NULL, HFILL }},
11120
14
    { &hf_h225_routeCalltoSCN,
11121
14
      { "routeCalltoSCN", "h225.routeCalltoSCN",
11122
14
        FT_UINT32, BASE_DEC, NULL, 0,
11123
14
        "SEQUENCE_OF_PartyNumber", HFILL }},
11124
14
    { &hf_h225_routeCalltoSCN_item,
11125
14
      { "PartyNumber", "h225.PartyNumber",
11126
14
        FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11127
14
        NULL, HFILL }},
11128
14
    { &hf_h225_disengageReason,
11129
14
      { "disengageReason", "h225.disengageReason",
11130
14
        FT_UINT32, BASE_DEC, VALS(DisengageReason_vals), 0,
11131
14
        NULL, HFILL }},
11132
14
    { &hf_h225_terminationCause,
11133
14
      { "terminationCause", "h225.terminationCause",
11134
14
        FT_UINT32, BASE_DEC, VALS(h225_CallTerminationCause_vals), 0,
11135
14
        "CallTerminationCause", HFILL }},
11136
14
    { &hf_h225_forcedDrop,
11137
14
      { "forcedDrop", "h225.forcedDrop_element",
11138
14
        FT_NONE, BASE_NONE, NULL, 0,
11139
14
        NULL, HFILL }},
11140
14
    { &hf_h225_normalDrop,
11141
14
      { "normalDrop", "h225.normalDrop_element",
11142
14
        FT_NONE, BASE_NONE, NULL, 0,
11143
14
        NULL, HFILL }},
11144
14
    { &hf_h225_disengageRejectReason,
11145
14
      { "rejectReason", "h225.disengageRejectReason",
11146
14
        FT_UINT32, BASE_DEC, VALS(DisengageRejectReason_vals), 0,
11147
14
        "DisengageRejectReason", HFILL }},
11148
14
    { &hf_h225_requestToDropOther,
11149
14
      { "requestToDropOther", "h225.requestToDropOther_element",
11150
14
        FT_NONE, BASE_NONE, NULL, 0,
11151
14
        NULL, HFILL }},
11152
14
    { &hf_h225_usageInfoRequested,
11153
14
      { "usageInfoRequested", "h225.usageInfoRequested_element",
11154
14
        FT_NONE, BASE_NONE, NULL, 0,
11155
14
        "RasUsageInfoTypes", HFILL }},
11156
14
    { &hf_h225_segmentedResponseSupported,
11157
14
      { "segmentedResponseSupported", "h225.segmentedResponseSupported_element",
11158
14
        FT_NONE, BASE_NONE, NULL, 0,
11159
14
        NULL, HFILL }},
11160
14
    { &hf_h225_nextSegmentRequested,
11161
14
      { "nextSegmentRequested", "h225.nextSegmentRequested",
11162
14
        FT_UINT32, BASE_DEC, NULL, 0,
11163
14
        "INTEGER_0_65535", HFILL }},
11164
14
    { &hf_h225_capacityInfoRequested,
11165
14
      { "capacityInfoRequested", "h225.capacityInfoRequested_element",
11166
14
        FT_NONE, BASE_NONE, NULL, 0,
11167
14
        NULL, HFILL }},
11168
14
    { &hf_h225_infoRequestResponse_rasAddress,
11169
14
      { "rasAddress", "h225.infoRequestResponse_rasAddress",
11170
14
        FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11171
14
        "TransportAddress", HFILL }},
11172
14
    { &hf_h225_perCallInfo,
11173
14
      { "perCallInfo", "h225.perCallInfo",
11174
14
        FT_UINT32, BASE_DEC, NULL, 0,
11175
14
        NULL, HFILL }},
11176
14
    { &hf_h225_perCallInfo_item,
11177
14
      { "perCallInfo item", "h225.perCallInfo_item_element",
11178
14
        FT_NONE, BASE_NONE, NULL, 0,
11179
14
        NULL, HFILL }},
11180
14
    { &hf_h225_originator,
11181
14
      { "originator", "h225.originator",
11182
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11183
14
        "BOOLEAN", HFILL }},
11184
14
    { &hf_h225_audio,
11185
14
      { "audio", "h225.audio",
11186
14
        FT_UINT32, BASE_DEC, NULL, 0,
11187
14
        "SEQUENCE_OF_RTPSession", HFILL }},
11188
14
    { &hf_h225_audio_item,
11189
14
      { "RTPSession", "h225.RTPSession_element",
11190
14
        FT_NONE, BASE_NONE, NULL, 0,
11191
14
        NULL, HFILL }},
11192
14
    { &hf_h225_video,
11193
14
      { "video", "h225.video",
11194
14
        FT_UINT32, BASE_DEC, NULL, 0,
11195
14
        "SEQUENCE_OF_RTPSession", HFILL }},
11196
14
    { &hf_h225_video_item,
11197
14
      { "RTPSession", "h225.RTPSession_element",
11198
14
        FT_NONE, BASE_NONE, NULL, 0,
11199
14
        NULL, HFILL }},
11200
14
    { &hf_h225_data,
11201
14
      { "data", "h225.data",
11202
14
        FT_UINT32, BASE_DEC, NULL, 0,
11203
14
        "SEQUENCE_OF_TransportChannelInfo", HFILL }},
11204
14
    { &hf_h225_data_item,
11205
14
      { "TransportChannelInfo", "h225.TransportChannelInfo_element",
11206
14
        FT_NONE, BASE_NONE, NULL, 0,
11207
14
        NULL, HFILL }},
11208
14
    { &hf_h225_h245,
11209
14
      { "h245", "h225.h245_element",
11210
14
        FT_NONE, BASE_NONE, NULL, 0,
11211
14
        "TransportChannelInfo", HFILL }},
11212
14
    { &hf_h225_callSignalling,
11213
14
      { "callSignalling", "h225.callSignalling_element",
11214
14
        FT_NONE, BASE_NONE, NULL, 0,
11215
14
        "TransportChannelInfo", HFILL }},
11216
14
    { &hf_h225_substituteConfIDs,
11217
14
      { "substituteConfIDs", "h225.substituteConfIDs",
11218
14
        FT_UINT32, BASE_DEC, NULL, 0,
11219
14
        "SEQUENCE_OF_ConferenceIdentifier", HFILL }},
11220
14
    { &hf_h225_substituteConfIDs_item,
11221
14
      { "ConferenceIdentifier", "h225.ConferenceIdentifier",
11222
14
        FT_GUID, BASE_NONE, NULL, 0,
11223
14
        NULL, HFILL }},
11224
14
    { &hf_h225_pdu,
11225
14
      { "pdu", "h225.pdu",
11226
14
        FT_UINT32, BASE_DEC, NULL, 0,
11227
14
        NULL, HFILL }},
11228
14
    { &hf_h225_pdu_item,
11229
14
      { "pdu item", "h225.pdu_item_element",
11230
14
        FT_NONE, BASE_NONE, NULL, 0,
11231
14
        NULL, HFILL }},
11232
14
    { &hf_h225_h323pdu,
11233
14
      { "h323pdu", "h225.h323pdu_element",
11234
14
        FT_NONE, BASE_NONE, NULL, 0,
11235
14
        "H323_UU_PDU", HFILL }},
11236
14
    { &hf_h225_sent,
11237
14
      { "sent", "h225.sent",
11238
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11239
14
        "BOOLEAN", HFILL }},
11240
14
    { &hf_h225_needResponse,
11241
14
      { "needResponse", "h225.needResponse",
11242
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11243
14
        "BOOLEAN", HFILL }},
11244
14
    { &hf_h225_irrStatus,
11245
14
      { "irrStatus", "h225.irrStatus",
11246
14
        FT_UINT32, BASE_DEC, VALS(h225_InfoRequestResponseStatus_vals), 0,
11247
14
        "InfoRequestResponseStatus", HFILL }},
11248
14
    { &hf_h225_unsolicited,
11249
14
      { "unsolicited", "h225.unsolicited",
11250
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11251
14
        "BOOLEAN", HFILL }},
11252
14
    { &hf_h225_complete,
11253
14
      { "complete", "h225.complete_element",
11254
14
        FT_NONE, BASE_NONE, NULL, 0,
11255
14
        NULL, HFILL }},
11256
14
    { &hf_h225_incomplete,
11257
14
      { "incomplete", "h225.incomplete_element",
11258
14
        FT_NONE, BASE_NONE, NULL, 0,
11259
14
        NULL, HFILL }},
11260
14
    { &hf_h225_segment,
11261
14
      { "segment", "h225.segment",
11262
14
        FT_UINT32, BASE_DEC, NULL, 0,
11263
14
        "INTEGER_0_65535", HFILL }},
11264
14
    { &hf_h225_invalidCall,
11265
14
      { "invalidCall", "h225.invalidCall_element",
11266
14
        FT_NONE, BASE_NONE, NULL, 0,
11267
14
        NULL, HFILL }},
11268
14
    { &hf_h225_nakReason,
11269
14
      { "nakReason", "h225.nakReason",
11270
14
        FT_UINT32, BASE_DEC, VALS(InfoRequestNakReason_vals), 0,
11271
14
        "InfoRequestNakReason", HFILL }},
11272
14
    { &hf_h225_messageNotUnderstood,
11273
14
      { "messageNotUnderstood", "h225.messageNotUnderstood",
11274
14
        FT_BYTES, BASE_NONE, NULL, 0,
11275
14
        "OCTET_STRING", HFILL }},
11276
14
    { &hf_h225_delay,
11277
14
      { "delay", "h225.delay",
11278
14
        FT_UINT32, BASE_DEC, NULL, 0,
11279
14
        "INTEGER_1_65535", HFILL }},
11280
14
    { &hf_h225_protocols,
11281
14
      { "protocols", "h225.protocols",
11282
14
        FT_UINT32, BASE_DEC, NULL, 0,
11283
14
        "SEQUENCE_OF_SupportedProtocols", HFILL }},
11284
14
    { &hf_h225_protocols_item,
11285
14
      { "SupportedProtocols", "h225.SupportedProtocols",
11286
14
        FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
11287
14
        NULL, HFILL }},
11288
14
    { &hf_h225_almostOutOfResources,
11289
14
      { "almostOutOfResources", "h225.almostOutOfResources",
11290
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
11291
14
        "BOOLEAN", HFILL }},
11292
14
    { &hf_h225_callSpecific,
11293
14
      { "callSpecific", "h225.callSpecific_element",
11294
14
        FT_NONE, BASE_NONE, NULL, 0,
11295
14
        NULL, HFILL }},
11296
14
    { &hf_h225_result,
11297
14
      { "result", "h225.result",
11298
14
        FT_UINT32, BASE_DEC, VALS(h225_T_result_vals), 0,
11299
14
        NULL, HFILL }},
11300
14
    { &hf_h225_started,
11301
14
      { "started", "h225.started_element",
11302
14
        FT_NONE, BASE_NONE, NULL, 0,
11303
14
        NULL, HFILL }},
11304
14
    { &hf_h225_failed,
11305
14
      { "failed", "h225.failed_element",
11306
14
        FT_NONE, BASE_NONE, NULL, 0,
11307
14
        NULL, HFILL }},
11308
14
    { &hf_h225_stopped,
11309
14
      { "stopped", "h225.stopped_element",
11310
14
        FT_NONE, BASE_NONE, NULL, 0,
11311
14
        NULL, HFILL }},
11312
14
    { &hf_h225_notAvailable,
11313
14
      { "notAvailable", "h225.notAvailable_element",
11314
14
        FT_NONE, BASE_NONE, NULL, 0,
11315
14
        NULL, HFILL }},
11316
14
  };
11317
11318
  /* List of subtrees */
11319
14
  static int *ett[] = {
11320
14
    &ett_h225,
11321
14
    &ett_h225_H323_UserInformation,
11322
14
    &ett_h225_T_user_data,
11323
14
    &ett_h225_H323_UU_PDU,
11324
14
    &ett_h225_T_h323_message_body,
11325
14
    &ett_h225_T_h4501SupplementaryService,
11326
14
    &ett_h225_H245Control,
11327
14
    &ett_h225_SEQUENCE_OF_NonStandardParameter,
11328
14
    &ett_h225_T_tunnelledSignallingMessage,
11329
14
    &ett_h225_T_messageContent,
11330
14
    &ett_h225_SEQUENCE_OF_GenericData,
11331
14
    &ett_h225_StimulusControl,
11332
14
    &ett_h225_Alerting_UUIE,
11333
14
    &ett_h225_SEQUENCE_OF_ClearToken,
11334
14
    &ett_h225_SEQUENCE_OF_CryptoH323Token,
11335
14
    &ett_h225_SEQUENCE_OF_AliasAddress,
11336
14
    &ett_h225_SEQUENCE_OF_ServiceControlSession,
11337
14
    &ett_h225_SEQUENCE_OF_DisplayName,
11338
14
    &ett_h225_CallProceeding_UUIE,
11339
14
    &ett_h225_Connect_UUIE,
11340
14
    &ett_h225_Information_UUIE,
11341
14
    &ett_h225_ReleaseComplete_UUIE,
11342
14
    &ett_h225_ReleaseCompleteReason,
11343
14
    &ett_h225_Setup_UUIE,
11344
14
    &ett_h225_SEQUENCE_OF_CallReferenceValue,
11345
14
    &ett_h225_T_conferenceGoal,
11346
14
    &ett_h225_SEQUENCE_OF_H245Security,
11347
14
    &ett_h225_FastStart,
11348
14
    &ett_h225_T_connectionParameters,
11349
14
    &ett_h225_Language,
11350
14
    &ett_h225_SEQUENCE_OF_SupportedProtocols,
11351
14
    &ett_h225_SEQUENCE_OF_FeatureDescriptor,
11352
14
    &ett_h225_ParallelH245Control,
11353
14
    &ett_h225_SEQUENCE_OF_ExtendedAliasAddress,
11354
14
    &ett_h225_ScnConnectionType,
11355
14
    &ett_h225_ScnConnectionAggregation,
11356
14
    &ett_h225_PresentationIndicator,
11357
14
    &ett_h225_Facility_UUIE,
11358
14
    &ett_h225_SEQUENCE_OF_ConferenceList,
11359
14
    &ett_h225_ConferenceList,
11360
14
    &ett_h225_FacilityReason,
11361
14
    &ett_h225_Progress_UUIE,
11362
14
    &ett_h225_TransportAddress,
11363
14
    &ett_h225_H245TransportAddress,
11364
14
    &ett_h225_T_h245IpAddress,
11365
14
    &ett_h225_T_h245IpSourceRoute,
11366
14
    &ett_h225_T_h245Route,
11367
14
    &ett_h225_T_h245Routing,
11368
14
    &ett_h225_T_h245IpxAddress,
11369
14
    &ett_h225_T_h245Ip6Address,
11370
14
    &ett_h225_T_ipAddress,
11371
14
    &ett_h225_T_ipSourceRoute,
11372
14
    &ett_h225_T_route,
11373
14
    &ett_h225_T_routing,
11374
14
    &ett_h225_T_ipxAddress,
11375
14
    &ett_h225_T_ip6Address,
11376
14
    &ett_h225_Status_UUIE,
11377
14
    &ett_h225_StatusInquiry_UUIE,
11378
14
    &ett_h225_SetupAcknowledge_UUIE,
11379
14
    &ett_h225_Notify_UUIE,
11380
14
    &ett_h225_EndpointType,
11381
14
    &ett_h225_SEQUENCE_OF_TunnelledProtocol,
11382
14
    &ett_h225_GatewayInfo,
11383
14
    &ett_h225_SupportedProtocols,
11384
14
    &ett_h225_H310Caps,
11385
14
    &ett_h225_SEQUENCE_OF_DataRate,
11386
14
    &ett_h225_SEQUENCE_OF_SupportedPrefix,
11387
14
    &ett_h225_H320Caps,
11388
14
    &ett_h225_H321Caps,
11389
14
    &ett_h225_H322Caps,
11390
14
    &ett_h225_H323Caps,
11391
14
    &ett_h225_H324Caps,
11392
14
    &ett_h225_VoiceCaps,
11393
14
    &ett_h225_T120OnlyCaps,
11394
14
    &ett_h225_NonStandardProtocol,
11395
14
    &ett_h225_T38FaxAnnexbOnlyCaps,
11396
14
    &ett_h225_SIPCaps,
11397
14
    &ett_h225_McuInfo,
11398
14
    &ett_h225_TerminalInfo,
11399
14
    &ett_h225_GatekeeperInfo,
11400
14
    &ett_h225_VendorIdentifier,
11401
14
    &ett_h225_H221NonStandard,
11402
14
    &ett_h225_TunnelledProtocol,
11403
14
    &ett_h225_TunnelledProtocol_id,
11404
14
    &ett_h225_TunnelledProtocolAlternateIdentifier,
11405
14
    &ett_h225_NonStandardParameter,
11406
14
    &ett_h225_NonStandardIdentifier,
11407
14
    &ett_h225_AliasAddress,
11408
14
    &ett_h225_AddressPattern,
11409
14
    &ett_h225_T_range,
11410
14
    &ett_h225_PartyNumber,
11411
14
    &ett_h225_PublicPartyNumber,
11412
14
    &ett_h225_PrivatePartyNumber,
11413
14
    &ett_h225_DisplayName,
11414
14
    &ett_h225_PublicTypeOfNumber,
11415
14
    &ett_h225_PrivateTypeOfNumber,
11416
14
    &ett_h225_MobileUIM,
11417
14
    &ett_h225_ANSI_41_UIM,
11418
14
    &ett_h225_T_system_id,
11419
14
    &ett_h225_GSM_UIM,
11420
14
    &ett_h225_IsupNumber,
11421
14
    &ett_h225_IsupPublicPartyNumber,
11422
14
    &ett_h225_IsupPrivatePartyNumber,
11423
14
    &ett_h225_NatureOfAddress,
11424
14
    &ett_h225_ExtendedAliasAddress,
11425
14
    &ett_h225_Endpoint,
11426
14
    &ett_h225_SEQUENCE_OF_TransportAddress,
11427
14
    &ett_h225_AlternateTransportAddresses,
11428
14
    &ett_h225_UseSpecifiedTransport,
11429
14
    &ett_h225_AlternateGK,
11430
14
    &ett_h225_AltGKInfo,
11431
14
    &ett_h225_SEQUENCE_OF_AlternateGK,
11432
14
    &ett_h225_SecurityServiceMode,
11433
14
    &ett_h225_SecurityCapabilities,
11434
14
    &ett_h225_SecurityErrors,
11435
14
    &ett_h225_SecurityErrors2,
11436
14
    &ett_h225_H245Security,
11437
14
    &ett_h225_QseriesOptions,
11438
14
    &ett_h225_Q954Details,
11439
14
    &ett_h225_CallIdentifier,
11440
14
    &ett_h225_EncryptIntAlg,
11441
14
    &ett_h225_NonIsoIntegrityMechanism,
11442
14
    &ett_h225_IntegrityMechanism,
11443
14
    &ett_h225_ICV,
11444
14
    &ett_h225_CryptoH323Token,
11445
14
    &ett_h225_T_cryptoEPPwdHash,
11446
14
    &ett_h225_T_cryptoGKPwdHash,
11447
14
    &ett_h225_DataRate,
11448
14
    &ett_h225_CallLinkage,
11449
14
    &ett_h225_SupportedPrefix,
11450
14
    &ett_h225_CapacityReportingCapability,
11451
14
    &ett_h225_CapacityReportingSpecification,
11452
14
    &ett_h225_CapacityReportingSpecification_when,
11453
14
    &ett_h225_CallCapacity,
11454
14
    &ett_h225_CallCapacityInfo,
11455
14
    &ett_h225_SEQUENCE_OF_CallsAvailable,
11456
14
    &ett_h225_CallsAvailable,
11457
14
    &ett_h225_CircuitInfo,
11458
14
    &ett_h225_CircuitIdentifier,
11459
14
    &ett_h225_CicInfo,
11460
14
    &ett_h225_T_cic_2_4,
11461
14
    &ett_h225_GroupID,
11462
14
    &ett_h225_T_member,
11463
14
    &ett_h225_CarrierInfo,
11464
14
    &ett_h225_ServiceControlDescriptor,
11465
14
    &ett_h225_ServiceControlSession,
11466
14
    &ett_h225_ServiceControlSession_reason,
11467
14
    &ett_h225_RasUsageInfoTypes,
11468
14
    &ett_h225_RasUsageSpecification,
11469
14
    &ett_h225_RasUsageSpecification_when,
11470
14
    &ett_h225_RasUsageSpecificationcallStartingPoint,
11471
14
    &ett_h225_RasUsageInformation,
11472
14
    &ett_h225_CallTerminationCause,
11473
14
    &ett_h225_BandwidthDetails,
11474
14
    &ett_h225_CallCreditCapability,
11475
14
    &ett_h225_CallCreditServiceControl,
11476
14
    &ett_h225_T_billingMode,
11477
14
    &ett_h225_CallCreditServiceControl_callStartingPoint,
11478
14
    &ett_h225_GenericData,
11479
14
    &ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter,
11480
14
    &ett_h225_GenericIdentifier,
11481
14
    &ett_h225_EnumeratedParameter,
11482
14
    &ett_h225_Content,
11483
14
    &ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData,
11484
14
    &ett_h225_FeatureSet,
11485
14
    &ett_h225_TransportChannelInfo,
11486
14
    &ett_h225_RTPSession,
11487
14
    &ett_h225_T_associatedSessionIds,
11488
14
    &ett_h225_RehomingModel,
11489
14
    &ett_h225_RasMessage,
11490
14
    &ett_h225_SEQUENCE_OF_AdmissionConfirm,
11491
14
    &ett_h225_GatekeeperRequest,
11492
14
    &ett_h225_SEQUENCE_OF_Endpoint,
11493
14
    &ett_h225_SEQUENCE_OF_AuthenticationMechanism,
11494
14
    &ett_h225_T_algorithmOIDs,
11495
14
    &ett_h225_SEQUENCE_OF_IntegrityMechanism,
11496
14
    &ett_h225_GatekeeperConfirm,
11497
14
    &ett_h225_GatekeeperReject,
11498
14
    &ett_h225_GatekeeperRejectReason,
11499
14
    &ett_h225_RegistrationRequest,
11500
14
    &ett_h225_SEQUENCE_OF_AddressPattern,
11501
14
    &ett_h225_SEQUENCE_OF_H248PackagesDescriptor,
11502
14
    &ett_h225_RegistrationConfirm,
11503
14
    &ett_h225_T_preGrantedARQ,
11504
14
    &ett_h225_SEQUENCE_OF_RasUsageSpecification,
11505
14
    &ett_h225_RegistrationReject,
11506
14
    &ett_h225_RegistrationRejectReason,
11507
14
    &ett_h225_T_invalidTerminalAliases,
11508
14
    &ett_h225_UnregistrationRequest,
11509
14
    &ett_h225_UnregRequestReason,
11510
14
    &ett_h225_UnregistrationConfirm,
11511
14
    &ett_h225_UnregistrationReject,
11512
14
    &ett_h225_UnregRejectReason,
11513
14
    &ett_h225_AdmissionRequest,
11514
14
    &ett_h225_DestinationInfo,
11515
14
    &ett_h225_CallType,
11516
14
    &ett_h225_CallModel,
11517
14
    &ett_h225_TransportQOS,
11518
14
    &ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability,
11519
14
    &ett_h225_AdmissionConfirm,
11520
14
    &ett_h225_UUIEsRequested,
11521
14
    &ett_h225_AdmissionReject,
11522
14
    &ett_h225_AdmissionRejectReason,
11523
14
    &ett_h225_SEQUENCE_OF_PartyNumber,
11524
14
    &ett_h225_BandwidthRequest,
11525
14
    &ett_h225_SEQUENCE_OF_BandwidthDetails,
11526
14
    &ett_h225_BandwidthConfirm,
11527
14
    &ett_h225_BandwidthReject,
11528
14
    &ett_h225_BandRejectReason,
11529
14
    &ett_h225_LocationRequest,
11530
14
    &ett_h225_LocationConfirm,
11531
14
    &ett_h225_LocationReject,
11532
14
    &ett_h225_LocationRejectReason,
11533
14
    &ett_h225_DisengageRequest,
11534
14
    &ett_h225_DisengageReason,
11535
14
    &ett_h225_DisengageConfirm,
11536
14
    &ett_h225_DisengageReject,
11537
14
    &ett_h225_DisengageRejectReason,
11538
14
    &ett_h225_InfoRequest,
11539
14
    &ett_h225_InfoRequestResponse,
11540
14
    &ett_h225_T_perCallInfo,
11541
14
    &ett_h225_T_perCallInfo_item,
11542
14
    &ett_h225_SEQUENCE_OF_RTPSession,
11543
14
    &ett_h225_SEQUENCE_OF_TransportChannelInfo,
11544
14
    &ett_h225_SEQUENCE_OF_ConferenceIdentifier,
11545
14
    &ett_h225_T_pdu,
11546
14
    &ett_h225_T_pdu_item,
11547
14
    &ett_h225_InfoRequestResponseStatus,
11548
14
    &ett_h225_InfoRequestAck,
11549
14
    &ett_h225_InfoRequestNak,
11550
14
    &ett_h225_InfoRequestNakReason,
11551
14
    &ett_h225_NonStandardMessage,
11552
14
    &ett_h225_UnknownMessageResponse,
11553
14
    &ett_h225_RequestInProgress,
11554
14
    &ett_h225_ResourcesAvailableIndicate,
11555
14
    &ett_h225_ResourcesAvailableConfirm,
11556
14
    &ett_h225_ServiceControlIndication,
11557
14
    &ett_h225_T_callSpecific,
11558
14
    &ett_h225_ServiceControlResponse,
11559
14
    &ett_h225_T_result,
11560
14
  };
11561
11562
14
  static tap_param h225_stat_params[] = {
11563
14
    { PARAM_FILTER, "filter", "Filter", NULL, true }
11564
14
  };
11565
11566
14
  static stat_tap_table_ui h225_stat_table = {
11567
14
    REGISTER_TELEPHONY_GROUP_UNSORTED,
11568
14
    "H.225",
11569
14
    PFNAME,
11570
14
    "h225,counter",
11571
14
    h225_stat_init,
11572
14
    h225_stat_packet,
11573
14
    h225_stat_reset,
11574
14
    NULL,
11575
14
    NULL,
11576
14
    array_length(h225_stat_fields), h225_stat_fields,
11577
14
    array_length(h225_stat_params), h225_stat_params,
11578
14
    NULL,
11579
14
    0
11580
14
  };
11581
11582
14
  module_t *h225_module;
11583
14
  int i, proto_h225_ras;
11584
11585
  /* Register protocol */
11586
14
  proto_h225 = proto_register_protocol(PNAME, PSNAME, PFNAME);
11587
11588
  /* Create a "fake" protocol to get proper display strings for SRT dialogs */
11589
14
  proto_h225_ras = proto_register_protocol("H.225 RAS", "H.225 RAS", "h225_ras");
11590
11591
  /* Register fields and subtrees */
11592
14
  proto_register_field_array(proto_h225, hf, array_length(hf));
11593
14
  proto_register_subtree_array(ett, array_length(ett));
11594
11595
14
  h225_module = prefs_register_protocol(proto_h225, proto_reg_handoff_h225);
11596
14
  prefs_register_uint_preference(h225_module, "tls.port",
11597
14
    "H.225 TLS Port",
11598
14
    "H.225 Server TLS Port",
11599
14
    10, &h225_tls_port);
11600
14
  prefs_register_bool_preference(h225_module, "reassembly",
11601
14
    "Reassemble H.225 messages spanning multiple TCP segments",
11602
14
    "Whether the H.225 dissector should reassemble messages spanning multiple TCP segments."
11603
14
    " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
11604
14
    &h225_reassembly);
11605
14
  prefs_register_bool_preference(h225_module, "h245_in_tree",
11606
14
    "Display tunnelled H.245 inside H.225.0 tree",
11607
14
    "ON - display tunnelled H.245 inside H.225.0 tree, OFF - display tunnelled H.245 in root tree after H.225.0",
11608
14
    &h225_h245_in_tree);
11609
14
  prefs_register_bool_preference(h225_module, "tp_in_tree",
11610
14
    "Display tunnelled protocols inside H.225.0 tree",
11611
14
    "ON - display tunnelled protocols inside H.225.0 tree, OFF - display tunnelled protocols in root tree after H.225.0",
11612
14
    &h225_tp_in_tree);
11613
11614
14
  register_dissector(PFNAME, dissect_h225_H323UserInformation, proto_h225);
11615
14
  register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
11616
14
  h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
11617
11618
14
  nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11619
14
  nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter h221", proto_h225, FT_UINT32, BASE_HEX);
11620
14
  tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11621
14
  gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11622
14
  gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11623
11624
112
  for(i=0;i<7;i++) {
11625
98
    ras_calls[i] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), h225ras_call_hash, h225ras_call_equal);
11626
98
  }
11627
11628
14
  h225_tap = register_tap(PFNAME);
11629
11630
14
  register_rtd_table(proto_h225_ras, PFNAME, NUM_RAS_STATS, 1, ras_message_category, h225rassrt_packet, NULL);
11631
11632
14
  register_stat_tap_table_ui(&h225_stat_table);
11633
11634
14
  oid_add_from_string("Version 1","0.0.8.2250.0.1");
11635
14
  oid_add_from_string("Version 2","0.0.8.2250.0.2");
11636
14
  oid_add_from_string("Version 3","0.0.8.2250.0.3");
11637
14
  oid_add_from_string("Version 4","0.0.8.2250.0.4");
11638
14
  oid_add_from_string("Version 5","0.0.8.2250.0.5");
11639
14
  oid_add_from_string("Version 6","0.0.8.2250.0.6");
11640
11641
14
  register_external_value_string("T_h323_message_body_vals", T_h323_message_body_vals);
11642
14
  register_external_value_string("h225_ReleaseCompleteReason_vals", h225_ReleaseCompleteReason_vals);
11643
14
  register_external_value_string("FacilityReason_vals", FacilityReason_vals);
11644
14
  register_external_value_string("h225_RasMessage_vals", h225_RasMessage_vals);
11645
14
  register_external_value_string("GatekeeperRejectReason_vals", GatekeeperRejectReason_vals);
11646
14
  register_external_value_string("RegistrationRejectReason_vals", RegistrationRejectReason_vals);
11647
14
  register_external_value_string("UnregRequestReason_vals", UnregRequestReason_vals);
11648
14
  register_external_value_string("UnregRejectReason_vals", UnregRejectReason_vals);
11649
14
  register_external_value_string("AdmissionRejectReason_vals", AdmissionRejectReason_vals);
11650
14
  register_external_value_string("BandRejectReason_vals", BandRejectReason_vals);
11651
14
  register_external_value_string("LocationRejectReason_vals", LocationRejectReason_vals);
11652
14
  register_external_value_string("DisengageReason_vals", DisengageReason_vals);
11653
14
  register_external_value_string("DisengageRejectReason_vals", DisengageRejectReason_vals);
11654
14
  register_external_value_string("InfoRequestNakReason_vals", InfoRequestNakReason_vals);
11655
14
}
11656
11657
11658
/*--- proto_reg_handoff_h225 ---------------------------------------*/
11659
void
11660
proto_reg_handoff_h225(void)
11661
14
{
11662
14
  static bool h225_prefs_initialized = false;
11663
14
  static dissector_handle_t q931_tpkt_handle;
11664
14
  static unsigned saved_h225_tls_port;
11665
11666
14
  if (!h225_prefs_initialized) {
11667
14
    dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
11668
11669
14
    h245_handle = find_dissector("h245");
11670
14
    h245dg_handle = find_dissector("h245dg");
11671
14
    h4501_handle = find_dissector_add_dependency("h4501", proto_h225);
11672
14
    data_handle = find_dissector("data");
11673
14
    h225_prefs_initialized = true;
11674
14
    q931_tpkt_handle = find_dissector("q931.tpkt");
11675
14
  } else {
11676
0
    ssl_dissector_delete(saved_h225_tls_port, q931_tpkt_handle);
11677
0
  }
11678
11679
14
  saved_h225_tls_port = h225_tls_port;
11680
14
  ssl_dissector_add(saved_h225_tls_port, q931_tpkt_handle);
11681
14
}
11682
11683
static h225_packet_info* create_h225_packet_info(packet_info *pinfo)
11684
481
{
11685
481
  h225_packet_info* pi = wmem_new0(pinfo->pool, h225_packet_info);
11686
11687
481
  pi->msg_type = H225_OTHERS;
11688
481
  pi->cs_type = H225_OTHER;
11689
481
  pi->msg_tag = -1;
11690
481
  pi->reason = -1;
11691
481
  pi->frame_label = wmem_strdup(pinfo->pool, "");
11692
11693
481
  return pi;
11694
481
}
11695
11696
/*
11697
  The following function contains the routines for RAS request/response matching.
11698
  A RAS response matches with a request, if both messages have the same
11699
  RequestSequenceNumber, belong to the same IP conversation and belong to the same
11700
  RAS "category" (e.g. Admission, Registration).
11701
11702
  We use hashtables to access the lists of RAS calls (request/response pairs).
11703
  We have one hashtable for each RAS category. The hashkeys consist of the
11704
  non-unique 16-bit RequestSequenceNumber and values representing the conversation.
11705
11706
  In big capture files, we might get different requests with identical keys.
11707
  These requests aren't necessarily duplicates. They might be valid new requests.
11708
  At the moment we just use the timedelta between the last valid and the new request
11709
  to decide if the new request is a duplicate or not. There might be better ways.
11710
  Two thresholds are defined below.
11711
11712
  However the decision is made, another problem arises. We can't just add those
11713
  requests to our hashtables. Instead we create lists of RAS calls with identical keys.
11714
  The hashtables for RAS calls contain now pointers to the first RAS call in a list of
11715
  RAS calls with identical keys.
11716
  These lists aren't expected to contain more than 3 items and are usually single item
11717
  lists. So we don't need an expensive but intelligent way to access these lists
11718
  (e.g. hashtables). Just walk through such a list.
11719
*/
11720
11721
0
#define THRESHOLD_REPEATED_RESPONDED_CALL 300
11722
3
#define THRESHOLD_REPEATED_NOT_RESPONDED_CALL 1800
11723
11724
static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi)
11725
27
{
11726
27
  proto_item *hidden_item;
11727
27
  conversation_t* conversation = NULL;
11728
27
  h225ras_call_info_key h225ras_call_key;
11729
27
  h225ras_call_t *h225ras_call = NULL;
11730
27
  nstime_t delta;
11731
27
  unsigned msg_category;
11732
11733
27
  if(pi->msg_type == H225_RAS && pi->msg_tag < 21) {
11734
    /* make RAS request/response matching only for tags from 0 to 20 for now */
11735
11736
23
    msg_category = pi->msg_tag / 3;
11737
23
    if(pi->msg_tag % 3 == 0) {    /* Request Message */
11738
13
      conversation = find_or_create_conversation(pinfo);
11739
11740
      /* prepare the key data */
11741
13
      h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11742
13
      h225ras_call_key.conversation = conversation;
11743
11744
      /* look up the request */
11745
13
      h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11746
11747
13
      if (h225ras_call != NULL) {
11748
        /* We've seen requests with this reqSeqNum, with the same
11749
           source and destination, before - do we have
11750
           *this* request already? */
11751
        /* Walk through list of ras requests with identical keys */
11752
3
        do {
11753
3
          if (pinfo->num == h225ras_call->req_num) {
11754
            /* We have seen this request before -> do nothing */
11755
0
            break;
11756
0
          }
11757
11758
          /* if end of list is reached, exit loop and decide if request is duplicate or not. */
11759
3
          if (h225ras_call->next_call == NULL) {
11760
3
            if ( (pinfo->num > h225ras_call->rsp_num && h225ras_call->rsp_num != 0
11761
0
               && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_RESPONDED_CALL) )
11762
3
               ||(pinfo->num > h225ras_call->req_num && h225ras_call->rsp_num == 0
11763
3
               && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_NOT_RESPONDED_CALL) ) )
11764
0
            {
11765
              /* if last request has been responded
11766
                 and this request appears after last response (has bigger frame number)
11767
                 and last request occurred more than 300 seconds ago,
11768
                 or if last request hasn't been responded
11769
                 and this request appears after last request (has bigger frame number)
11770
                 and last request occurred more than 1800 seconds ago,
11771
                 we decide that we have a new request */
11772
              /* Append new ras call to list */
11773
0
              h225ras_call = append_h225ras_call(h225ras_call, pinfo, &pi->guid, msg_category);
11774
3
            } else {
11775
              /* No, so it's a duplicate request.
11776
                 Mark it as such. */
11777
3
              pi->is_duplicate = true;
11778
3
              hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11779
3
              proto_item_set_hidden(hidden_item);
11780
3
            }
11781
3
            break;
11782
3
          }
11783
0
          h225ras_call = h225ras_call->next_call;
11784
0
        } while (h225ras_call != NULL );
11785
3
      }
11786
10
      else {
11787
10
        h225ras_call = new_h225ras_call(&h225ras_call_key, pinfo, &pi->guid, msg_category);
11788
10
      }
11789
11790
      /* add link to response frame, if available */
11791
13
      if(h225ras_call && h225ras_call->rsp_num != 0){
11792
0
        proto_item *ti =
11793
0
        proto_tree_add_uint_format(tree, hf_h225_ras_rsp_frame, tvb, 0, 0, h225ras_call->rsp_num,
11794
0
                                     "The response to this request is in frame %u",
11795
0
                                     h225ras_call->rsp_num);
11796
0
        proto_item_set_generated(ti);
11797
0
      }
11798
11799
    /* end of request message handling*/
11800
13
    }
11801
10
    else {          /* Confirm or Reject Message */
11802
10
      conversation = find_conversation_pinfo(pinfo, 0);
11803
10
      if (conversation != NULL) {
11804
        /* look only for matching request, if
11805
           matching conversation is available. */
11806
10
        h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11807
10
        h225ras_call_key.conversation = conversation;
11808
10
        h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11809
10
        if(h225ras_call) {
11810
          /* find matching ras_call in list of ras calls with identical keys */
11811
0
          do {
11812
0
            if (pinfo->num == h225ras_call->rsp_num) {
11813
              /* We have seen this response before -> stop now with matching ras call */
11814
0
              break;
11815
0
            }
11816
11817
            /* Break when list end is reached */
11818
0
            if(h225ras_call->next_call == NULL) {
11819
0
              break;
11820
0
            }
11821
0
            h225ras_call = h225ras_call->next_call;
11822
0
          } while (h225ras_call != NULL) ;
11823
11824
0
          if (!h225ras_call) {
11825
0
            return;
11826
0
          }
11827
11828
          /* if this is an ACF, ARJ or DCF, DRJ, give guid to tap and make it filterable */
11829
0
          if (msg_category == 3 || msg_category == 5) {
11830
0
            pi->guid = h225ras_call->guid;
11831
0
            hidden_item = proto_tree_add_guid(tree, hf_h225_guid, tvb, 0, GUID_LEN, &pi->guid);
11832
0
            proto_item_set_hidden(hidden_item);
11833
0
          }
11834
11835
0
          if (h225ras_call->rsp_num == 0) {
11836
            /* We have not yet seen a response to that call, so
11837
               this must be the first response; remember its
11838
               frame number. */
11839
0
            h225ras_call->rsp_num = pinfo->num;
11840
0
          }
11841
0
          else {
11842
            /* We have seen a response to this call - but was it
11843
               *this* response? */
11844
0
            if (h225ras_call->rsp_num != pinfo->num) {
11845
              /* No, so it's a duplicate response.
11846
                 Mark it as such. */
11847
0
              pi->is_duplicate = true;
11848
0
              hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11849
0
              proto_item_set_hidden(hidden_item);
11850
0
            }
11851
0
          }
11852
11853
0
          if(h225ras_call->req_num != 0){
11854
0
            proto_item *ti;
11855
0
            h225ras_call->responded = true;
11856
0
            pi->request_available = true;
11857
11858
            /* Indicate the frame to which this is a reply. */
11859
0
            ti = proto_tree_add_uint_format(tree, hf_h225_ras_req_frame, tvb, 0, 0, h225ras_call->req_num,
11860
0
              "This is a response to a request in frame %u", h225ras_call->req_num);
11861
0
            proto_item_set_generated(ti);
11862
11863
            /* Calculate RAS Service Response Time */
11864
0
            nstime_delta(&delta, &pinfo->abs_ts, &h225ras_call->req_time);
11865
0
            pi->delta_time = delta; /* give it to tap */
11866
11867
            /* display Ras Service Response Time and make it filterable */
11868
0
            ti = proto_tree_add_time(tree, hf_h225_ras_deltatime, tvb, 0, 0, &(pi->delta_time));
11869
0
            proto_item_set_generated(ti);
11870
0
          }
11871
0
        }
11872
10
      }
11873
10
    }
11874
23
  }
11875
27
}
11876
11877
/*
11878
 * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
11879
 *
11880
 * Local Variables:
11881
 * c-basic-offset: 2
11882
 * tab-width: 8
11883
 * indent-tabs-mode: nil
11884
 * End:
11885
 *
11886
 * vi: set shiftwidth=2 tabstop=8 expandtab:
11887
 * :indentSize=2:tabSize=8:noTabs=true:
11888
 */