Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-h225.c
blob62b23d36d4c76b411fff5e0e0332c542a8b914b9
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 */
6 /* packet-h225.c
7 * Routines for h225 packet dissection
8 * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
16 * To quote the author of the previous H323/H225/H245 dissector:
17 * "This is a complete replacement of the previous limitied 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.
26 #include "config.h"
28 #include <epan/packet.h>
29 #include <epan/conversation.h>
30 #include <epan/proto_data.h>
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>
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"
53 #define PNAME "H323-MESSAGES"
54 #define PSNAME "H.225.0"
55 #define PFNAME "h225"
57 #define UDP_PORT_RAS_RANGE "1718-1719"
58 #define TCP_PORT_CS 1720
59 #define TLS_PORT_CS 1300
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);
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;
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;
83 /* Global Memory Chunks for lists and Global hash tables*/
85 static wmem_map_t *ras_calls[7];
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);
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;
103 static dissector_handle_t h245_handle;
104 static dissector_handle_t h245dg_handle;
105 static dissector_handle_t h4501_handle;
107 static dissector_handle_t nsp_handle;
108 static dissector_handle_t tp_handle;
110 static next_tvb_list_t *h245_list;
111 static next_tvb_list_t *tp_list;
113 /* Initialize the protocol and registered fields */
114 static int h225_tap;
115 static int proto_h225;
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;
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 */
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;
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;
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;
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;
1161 /* TunnelledProtocol */
1162 static const char *tpOID;
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 }
1175 typedef enum _ras_type {
1176 RAS_REQUEST,
1177 RAS_CONFIRM,
1178 RAS_REJECT,
1179 RAS_OTHER
1180 }ras_type;
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;
1193 #define NUM_RAS_STATS 7
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_)
1198 rtd_data_t* rtd_data = (rtd_data_t*)phs;
1199 rtd_stat_table* rs = &rtd_data->stat_table;
1200 const h225_packet_info *pi=(const h225_packet_info *)phi;
1202 ras_type rasmsg_type = RAS_OTHER;
1203 ras_category rascategory = RAS_OTHERS;
1205 if (pi->msg_type != H225_RAS || pi->msg_tag == -1) {
1206 /* No RAS Message or uninitialized msg_tag -> return */
1207 return TAP_PACKET_DONT_REDRAW;
1210 if (pi->msg_tag < 21) {
1211 /* */
1212 rascategory = (ras_category)(pi->msg_tag / 3);
1213 rasmsg_type = (ras_type)(pi->msg_tag % 3);
1215 else {
1216 /* No SRT yet (ToDo) */
1217 return TAP_PACKET_DONT_REDRAW;
1220 switch(rasmsg_type) {
1222 case RAS_REQUEST:
1223 if(pi->is_duplicate){
1224 rs->time_stats[rascategory].req_dup_num++;
1226 else {
1227 rs->time_stats[rascategory].open_req_num++;
1229 break;
1231 case RAS_CONFIRM:
1232 /* no break - delay stats are identical for Confirm and Reject */
1233 case RAS_REJECT:
1234 if(pi->is_duplicate){
1235 /* Duplicate is ignored */
1236 rs->time_stats[rascategory].rsp_dup_num++;
1238 else if (!pi->request_available) {
1239 /* no request was seen, ignore response */
1240 rs->time_stats[rascategory].disc_rsp_num++;
1242 else {
1243 rs->time_stats[rascategory].open_req_num--;
1244 time_stat_update(&(rs->time_stats[rascategory].rtd[0]),&(pi->delta_time), pinfo);
1246 break;
1248 default:
1249 return TAP_PACKET_DONT_REDRAW;
1251 return TAP_PACKET_REDRAW;
1254 static void h225_set_cs_type(h225_packet_info* h225_pi, h225_cs_type cs_type, bool faststart)
1256 if (h225_pi == NULL)
1257 return;
1259 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?
1265 if (faststart) {
1266 char temp[50];
1267 snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
1268 (void) g_strlcpy(h225_pi->frame_label, temp, 50);
1269 } else {
1270 snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
1274 /*--- Cyclic dependencies ---*/
1276 /* EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter */
1277 static int dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1279 /* GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData */
1280 /*int dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
1285 static int
1286 dissect_h225_ProtocolIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1289 return offset;
1294 static int
1295 dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1296 tvbuff_t *value_tvb;
1298 ipv4_address = 0;
1299 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1300 4, 4, false, &value_tvb);
1302 if (value_tvb)
1303 ipv4_address = tvb_get_ipv4(value_tvb, 0);
1305 return offset;
1310 static int
1311 dissect_h225_T_h245IpPort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1312 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1313 0U, 65535U, &ip_port, false);
1315 return offset;
1319 static const per_sequence_t T_h245IpAddress_sequence[] = {
1320 { &hf_h225_h245Ip , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip },
1321 { &hf_h225_h245IpPort , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_h245IpPort },
1322 { NULL, 0, 0, NULL }
1325 static int
1326 dissect_h225_T_h245IpAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1327 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1328 ett_h225_T_h245IpAddress, T_h245IpAddress_sequence);
1330 return offset;
1335 static int
1336 dissect_h225_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1337 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1338 4, 4, false, NULL);
1340 return offset;
1345 static int
1346 dissect_h225_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1347 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1348 0U, 65535U, NULL, false);
1350 return offset;
1354 static const per_sequence_t T_h245Route_sequence_of[1] = {
1355 { &hf_h225_h245Route_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1358 static int
1359 dissect_h225_T_h245Route(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1360 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1361 ett_h225_T_h245Route, T_h245Route_sequence_of);
1363 return offset;
1368 static int
1369 dissect_h225_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1370 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1372 return offset;
1376 static const value_string h225_T_h245Routing_vals[] = {
1377 { 0, "strict" },
1378 { 1, "loose" },
1379 { 0, NULL }
1382 static const per_choice_t T_h245Routing_choice[] = {
1383 { 0, &hf_h225_strict , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1384 { 1, &hf_h225_loose , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1385 { 0, NULL, 0, NULL }
1388 static int
1389 dissect_h225_T_h245Routing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1390 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1391 ett_h225_T_h245Routing, T_h245Routing_choice,
1392 NULL);
1394 return offset;
1398 static const per_sequence_t T_h245IpSourceRoute_sequence[] = {
1399 { &hf_h225_ip , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1400 { &hf_h225_port , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1401 { &hf_h225_h245Route , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Route },
1402 { &hf_h225_h245Routing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Routing },
1403 { NULL, 0, 0, NULL }
1406 static int
1407 dissect_h225_T_h245IpSourceRoute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1408 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1409 ett_h225_T_h245IpSourceRoute, T_h245IpSourceRoute_sequence);
1411 return offset;
1416 static int
1417 dissect_h225_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1418 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1419 6, 6, false, NULL);
1421 return offset;
1426 static int
1427 dissect_h225_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1428 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1429 2, 2, false, NULL);
1431 return offset;
1435 static const per_sequence_t T_h245IpxAddress_sequence[] = {
1436 { &hf_h225_node , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1437 { &hf_h225_netnum , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1438 { &hf_h225_h245IpxPort , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1439 { NULL, 0, 0, NULL }
1442 static int
1443 dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1444 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1445 ett_h225_T_h245IpxAddress, T_h245IpxAddress_sequence);
1447 return offset;
1452 static int
1453 dissect_h225_T_h245Ip6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1454 tvbuff_t *value_tvb;
1456 ipv6_address = ipv6_address_zeros;
1457 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1458 16, 16, false, &value_tvb);
1460 if (value_tvb)
1461 tvb_get_ipv6(value_tvb, 0, &ipv6_address);
1463 return offset;
1468 static int
1469 dissect_h225_T_h245Ip6port(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1470 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1471 0U, 65535U, &ip_port, false);
1473 return offset;
1477 static const per_sequence_t T_h245Ip6Address_sequence[] = {
1478 { &hf_h225_h245Ip6 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6 },
1479 { &hf_h225_h245Ip6port , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6port },
1480 { NULL, 0, 0, NULL }
1483 static int
1484 dissect_h225_T_h245Ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1486 ett_h225_T_h245Ip6Address, T_h245Ip6Address_sequence);
1488 return offset;
1493 static int
1494 dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1495 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1496 16, 16, false, NULL);
1498 return offset;
1503 static int
1504 dissect_h225_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1505 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1506 1, 20, false, NULL);
1508 return offset;
1513 static int
1514 dissect_h225_T_nsiOID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1515 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &nsiOID);
1517 return offset;
1522 static int
1523 dissect_h225_T_t35CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1524 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1525 0U, 255U, &t35CountryCode, false);
1527 return offset;
1532 static int
1533 dissect_h225_T_t35Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1534 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1535 0U, 255U, &t35Extension, false);
1537 return offset;
1542 static int
1543 dissect_h225_T_manufacturerCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1544 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1545 0U, 65535U, &manufacturerCode, false);
1547 return offset;
1551 static const per_sequence_t H221NonStandard_sequence[] = {
1552 { &hf_h225_t35CountryCode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_t35CountryCode },
1553 { &hf_h225_t35Extension , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_t35Extension },
1554 { &hf_h225_manufacturerCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_manufacturerCode },
1555 { NULL, 0, 0, NULL }
1558 static int
1559 dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1560 t35CountryCode = 0;
1561 t35Extension = 0;
1562 manufacturerCode = 0;
1563 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1564 ett_h225_H221NonStandard, H221NonStandard_sequence);
1566 h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
1567 proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
1568 return offset;
1572 static const value_string h225_NonStandardIdentifier_vals[] = {
1573 { 0, "object" },
1574 { 1, "h221NonStandard" },
1575 { 0, NULL }
1578 static const per_choice_t NonStandardIdentifier_choice[] = {
1579 { 0, &hf_h225_nsiOID , ASN1_EXTENSION_ROOT , dissect_h225_T_nsiOID },
1580 { 1, &hf_h225_h221NonStandard, ASN1_EXTENSION_ROOT , dissect_h225_H221NonStandard },
1581 { 0, NULL, 0, NULL }
1584 static int
1585 dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1586 int32_t value;
1588 nsiOID = "";
1589 h221NonStandard = 0;
1591 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1592 ett_h225_NonStandardIdentifier, NonStandardIdentifier_choice,
1593 &value);
1595 switch (value) {
1596 case 0 : /* object */
1597 nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
1598 break;
1599 case 1 : /* h221NonStandard */
1600 nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
1601 break;
1602 default :
1603 nsp_handle = NULL;
1606 return offset;
1611 static int
1612 dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1613 tvbuff_t *next_tvb = NULL;
1615 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1616 NO_BOUND, NO_BOUND, false, &next_tvb);
1618 if (next_tvb && tvb_reported_length(next_tvb)) {
1619 call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
1622 return offset;
1626 static const per_sequence_t NonStandardParameter_sequence[] = {
1627 { &hf_h225_nonStandardIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardIdentifier },
1628 { &hf_h225_nsp_data , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_nsp_data },
1629 { NULL, 0, 0, NULL }
1633 dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1634 nsp_handle = NULL;
1635 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1636 ett_h225_NonStandardParameter, NonStandardParameter_sequence);
1638 return offset;
1642 static const value_string h225_H245TransportAddress_vals[] = {
1643 { 0, "ipAddress" },
1644 { 1, "ipSourceRoute" },
1645 { 2, "ipxAddress" },
1646 { 3, "ip6Address" },
1647 { 4, "netBios" },
1648 { 5, "nsap" },
1649 { 6, "nonStandardAddress" },
1650 { 0, NULL }
1653 static const per_choice_t H245TransportAddress_choice[] = {
1654 { 0, &hf_h225_h245IpAddress , ASN1_EXTENSION_ROOT , dissect_h225_T_h245IpAddress },
1655 { 1, &hf_h225_h245IpSourceRoute, ASN1_EXTENSION_ROOT , dissect_h225_T_h245IpSourceRoute },
1656 { 2, &hf_h225_h245IpxAddress , ASN1_EXTENSION_ROOT , dissect_h225_T_h245IpxAddress },
1657 { 3, &hf_h225_h245Ip6Address , ASN1_EXTENSION_ROOT , dissect_h225_T_h245Ip6Address },
1658 { 4, &hf_h225_netBios , ASN1_EXTENSION_ROOT , dissect_h225_OCTET_STRING_SIZE_16 },
1659 { 5, &hf_h225_nsap , ASN1_EXTENSION_ROOT , dissect_h225_OCTET_STRING_SIZE_1_20 },
1660 { 6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
1661 { 0, NULL, 0, NULL }
1664 static int
1665 dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1666 h225_packet_info* h225_pi;
1667 ipv4_address=0;
1668 ipv6_address = ipv6_address_zeros;
1669 ip_port=0;
1671 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1672 ett_h225_H245TransportAddress, H245TransportAddress_choice,
1673 NULL);
1675 /* we need this info for TAPing */
1676 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1678 if (h225_pi) {
1679 h225_pi->is_h245 = true;
1680 h225_pi->h245_address = ipv4_address;
1681 h225_pi->h245_port = ip_port;
1683 if ( !actx->pinfo->fd->visited && h245_handle && ip_port!=0 ) {
1684 address src_addr;
1685 conversation_t *conv=NULL;
1687 if (ipv4_address!=0) {
1688 set_address(&src_addr, AT_IPv4, 4, &ipv4_address);
1689 } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
1690 set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
1691 } else {
1692 return offset;
1695 conv=find_conversation(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
1696 if(!conv){
1697 conv=conversation_new(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
1698 conversation_set_dissector(conv, h245_handle);
1701 return offset;
1706 static int
1707 dissect_h225_DialedDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1708 tvbuff_t *value_tvb = NULL;
1709 unsigned len = 0;
1710 h225_packet_info* h225_pi;
1712 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1713 1, 128, false, "0123456789#*,", 13,
1714 &value_tvb);
1716 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
1717 if (h225_pi && h225_pi->is_destinationInfo == true) {
1718 if (value_tvb) {
1719 len = tvb_reported_length(value_tvb);
1720 /* XXX - should this be allocated as an ephemeral string? */
1721 if (len > sizeof h225_pi->dialedDigits - 1)
1722 len = sizeof h225_pi->dialedDigits - 1;
1723 tvb_memcpy(value_tvb, (uint8_t*)h225_pi->dialedDigits, 0, len);
1725 h225_pi->dialedDigits[len] = '\0';
1726 h225_pi->is_destinationInfo = false;
1729 return offset;
1734 static int
1735 dissect_h225_BMPString_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1736 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1737 1, 256, false);
1739 return offset;
1744 static int
1745 dissect_h225_IA5String_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1746 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1747 1, 512, false,
1748 NULL);
1750 return offset;
1755 static int
1756 dissect_h225_IpV4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1757 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1758 4, 4, false, NULL);
1760 return offset;
1764 static const per_sequence_t T_ipAddress_sequence[] = {
1765 { &hf_h225_ipV4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_IpV4 },
1766 { &hf_h225_ipV4_port , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1767 { NULL, 0, 0, NULL }
1770 static int
1771 dissect_h225_T_ipAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1772 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1773 ett_h225_T_ipAddress, T_ipAddress_sequence);
1775 return offset;
1779 static const per_sequence_t T_route_sequence_of[1] = {
1780 { &hf_h225_route_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1783 static int
1784 dissect_h225_T_route(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1785 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1786 ett_h225_T_route, T_route_sequence_of);
1788 return offset;
1792 static const value_string h225_T_routing_vals[] = {
1793 { 0, "strict" },
1794 { 1, "loose" },
1795 { 0, NULL }
1798 static const per_choice_t T_routing_choice[] = {
1799 { 0, &hf_h225_strict , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1800 { 1, &hf_h225_loose , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1801 { 0, NULL, 0, NULL }
1804 static int
1805 dissect_h225_T_routing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1806 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1807 ett_h225_T_routing, T_routing_choice,
1808 NULL);
1810 return offset;
1814 static const per_sequence_t T_ipSourceRoute_sequence[] = {
1815 { &hf_h225_src_route_ipV4 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1816 { &hf_h225_ipV4_src_port , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1817 { &hf_h225_route , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_route },
1818 { &hf_h225_routing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_routing },
1819 { NULL, 0, 0, NULL }
1822 static int
1823 dissect_h225_T_ipSourceRoute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1824 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1825 ett_h225_T_ipSourceRoute, T_ipSourceRoute_sequence);
1827 return offset;
1831 static const per_sequence_t T_ipxAddress_sequence[] = {
1832 { &hf_h225_node , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1833 { &hf_h225_netnum , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1834 { &hf_h225_ipx_port , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1835 { NULL, 0, 0, NULL }
1838 static int
1839 dissect_h225_T_ipxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1840 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1841 ett_h225_T_ipxAddress, T_ipxAddress_sequence);
1843 return offset;
1847 static const per_sequence_t T_ip6Address_sequence[] = {
1848 { &hf_h225_ipV6 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_16 },
1849 { &hf_h225_ipV6_port , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1850 { NULL, 0, 0, NULL }
1853 static int
1854 dissect_h225_T_ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1855 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1856 ett_h225_T_ip6Address, T_ip6Address_sequence);
1858 return offset;
1862 const value_string h225_TransportAddress_vals[] = {
1863 { 0, "ipAddress" },
1864 { 1, "ipSourceRoute" },
1865 { 2, "ipxAddress" },
1866 { 3, "ip6Address" },
1867 { 4, "netBios" },
1868 { 5, "nsap" },
1869 { 6, "nonStandardAddress" },
1870 { 0, NULL }
1873 static const per_choice_t TransportAddress_choice[] = {
1874 { 0, &hf_h225_ipAddress , ASN1_EXTENSION_ROOT , dissect_h225_T_ipAddress },
1875 { 1, &hf_h225_ipSourceRoute , ASN1_EXTENSION_ROOT , dissect_h225_T_ipSourceRoute },
1876 { 2, &hf_h225_ipxAddress , ASN1_EXTENSION_ROOT , dissect_h225_T_ipxAddress },
1877 { 3, &hf_h225_ip6Address , ASN1_EXTENSION_ROOT , dissect_h225_T_ip6Address },
1878 { 4, &hf_h225_netBios , ASN1_EXTENSION_ROOT , dissect_h225_OCTET_STRING_SIZE_16 },
1879 { 5, &hf_h225_nsap , ASN1_EXTENSION_ROOT , dissect_h225_OCTET_STRING_SIZE_1_20 },
1880 { 6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
1881 { 0, NULL, 0, NULL }
1885 dissect_h225_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1886 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1887 ett_h225_TransportAddress, TransportAddress_choice,
1888 NULL);
1890 return offset;
1894 const value_string h225_PublicTypeOfNumber_vals[] = {
1895 { 0, "unknown" },
1896 { 1, "internationalNumber" },
1897 { 2, "nationalNumber" },
1898 { 3, "networkSpecificNumber" },
1899 { 4, "subscriberNumber" },
1900 { 5, "abbreviatedNumber" },
1901 { 0, NULL }
1904 static const per_choice_t PublicTypeOfNumber_choice[] = {
1905 { 0, &hf_h225_unknown , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1906 { 1, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1907 { 2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1908 { 3, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1909 { 4, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1910 { 5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1911 { 0, NULL, 0, NULL }
1915 dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1916 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1917 ett_h225_PublicTypeOfNumber, PublicTypeOfNumber_choice,
1918 NULL);
1920 return offset;
1925 static int
1926 dissect_h225_NumberDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1927 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1928 1, 128, false, "0123456789#*,", 13,
1929 NULL);
1931 return offset;
1935 static const per_sequence_t PublicPartyNumber_sequence[] = {
1936 { &hf_h225_publicTypeOfNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PublicTypeOfNumber },
1937 { &hf_h225_publicNumberDigits, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1938 { NULL, 0, 0, NULL }
1941 static int
1942 dissect_h225_PublicPartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1943 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1944 ett_h225_PublicPartyNumber, PublicPartyNumber_sequence);
1946 return offset;
1950 const value_string h225_PrivateTypeOfNumber_vals[] = {
1951 { 0, "unknown" },
1952 { 1, "level2RegionalNumber" },
1953 { 2, "level1RegionalNumber" },
1954 { 3, "pISNSpecificNumber" },
1955 { 4, "localNumber" },
1956 { 5, "abbreviatedNumber" },
1957 { 0, NULL }
1960 static const per_choice_t PrivateTypeOfNumber_choice[] = {
1961 { 0, &hf_h225_unknown , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1962 { 1, &hf_h225_level2RegionalNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1963 { 2, &hf_h225_level1RegionalNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1964 { 3, &hf_h225_pISNSpecificNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1965 { 4, &hf_h225_localNumber , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1966 { 5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
1967 { 0, NULL, 0, NULL }
1971 dissect_h225_PrivateTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1972 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1973 ett_h225_PrivateTypeOfNumber, PrivateTypeOfNumber_choice,
1974 NULL);
1976 return offset;
1980 static const per_sequence_t PrivatePartyNumber_sequence[] = {
1981 { &hf_h225_privateTypeOfNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
1982 { &hf_h225_privateNumberDigits, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1983 { NULL, 0, 0, NULL }
1986 static int
1987 dissect_h225_PrivatePartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1988 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1989 ett_h225_PrivatePartyNumber, PrivatePartyNumber_sequence);
1991 return offset;
1995 const value_string h225_PartyNumber_vals[] = {
1996 { 0, "e164Number" },
1997 { 1, "dataPartyNumber" },
1998 { 2, "telexPartyNumber" },
1999 { 3, "privateNumber" },
2000 { 4, "nationalStandardPartyNumber" },
2001 { 0, NULL }
2004 static const per_choice_t PartyNumber_choice[] = {
2005 { 0, &hf_h225_e164Number , ASN1_EXTENSION_ROOT , dissect_h225_PublicPartyNumber },
2006 { 1, &hf_h225_dataPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_NumberDigits },
2007 { 2, &hf_h225_telexPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_NumberDigits },
2008 { 3, &hf_h225_privateNumber , ASN1_EXTENSION_ROOT , dissect_h225_PrivatePartyNumber },
2009 { 4, &hf_h225_nationalStandardPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_NumberDigits },
2010 { 0, NULL, 0, NULL }
2014 dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2015 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2016 ett_h225_PartyNumber, PartyNumber_choice,
2017 NULL);
2019 return offset;
2024 static int
2025 dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2026 int min_len, max_len;
2027 bool has_extension;
2029 get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
2030 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2031 min_len, max_len, has_extension, "0123456789#*abc", 15,
2032 NULL);
2034 return offset;
2039 static int
2040 dissect_h225_TBCD_STRING_SIZE_3_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2041 offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2042 "TBCD_STRING", 3, 16, false);
2044 return offset;
2049 static int
2050 dissect_h225_TBCD_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2051 offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2052 "TBCD_STRING", 16, 16, false);
2054 return offset;
2059 static int
2060 dissect_h225_TBCD_STRING_SIZE_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2061 offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2062 "TBCD_STRING", 1, 4, false);
2064 return offset;
2068 static const value_string h225_T_system_id_vals[] = {
2069 { 0, "sid" },
2070 { 1, "mid" },
2071 { 0, NULL }
2074 static const per_choice_t T_system_id_choice[] = {
2075 { 0, &hf_h225_sid , ASN1_EXTENSION_ROOT , dissect_h225_TBCD_STRING_SIZE_1_4 },
2076 { 1, &hf_h225_mid , ASN1_EXTENSION_ROOT , dissect_h225_TBCD_STRING_SIZE_1_4 },
2077 { 0, NULL, 0, NULL }
2080 static int
2081 dissect_h225_T_system_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2082 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2083 ett_h225_T_system_id, T_system_id_choice,
2084 NULL);
2086 return offset;
2091 static int
2092 dissect_h225_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2093 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2094 1, 1, false, NULL);
2096 return offset;
2100 static const per_sequence_t ANSI_41_UIM_sequence[] = {
2101 { &hf_h225_imsi , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2102 { &hf_h225_min , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2103 { &hf_h225_mdn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2104 { &hf_h225_msisdn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2105 { &hf_h225_esn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_16 },
2106 { &hf_h225_mscid , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2107 { &hf_h225_system_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_system_id },
2108 { &hf_h225_systemMyTypeCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1 },
2109 { &hf_h225_systemAccessType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1 },
2110 { &hf_h225_qualificationInformationCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1 },
2111 { &hf_h225_sesn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_16 },
2112 { &hf_h225_soc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2113 { NULL, 0, 0, NULL }
2116 static int
2117 dissect_h225_ANSI_41_UIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2118 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2119 ett_h225_ANSI_41_UIM, ANSI_41_UIM_sequence);
2121 return offset;
2126 static int
2127 dissect_h225_OCTET_STRING_SIZE_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2128 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2129 1, 4, false, NULL);
2131 return offset;
2136 static int
2137 dissect_h225_TBCD_STRING_SIZE_15_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2138 offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2139 "TBCD_STRING", 15, 16, false);
2141 return offset;
2145 static const per_sequence_t GSM_UIM_sequence[] = {
2146 { &hf_h225_imsi , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2147 { &hf_h225_tmsi , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1_4 },
2148 { &hf_h225_msisdn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_3_16 },
2149 { &hf_h225_imei , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_15_16 },
2150 { &hf_h225_hplmn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_1_4 },
2151 { &hf_h225_vplmn , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TBCD_STRING_SIZE_1_4 },
2152 { NULL, 0, 0, NULL }
2155 static int
2156 dissect_h225_GSM_UIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2157 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2158 ett_h225_GSM_UIM, GSM_UIM_sequence);
2160 return offset;
2164 static const value_string h225_MobileUIM_vals[] = {
2165 { 0, "ansi-41-uim" },
2166 { 1, "gsm-uim" },
2167 { 0, NULL }
2170 static const per_choice_t MobileUIM_choice[] = {
2171 { 0, &hf_h225_ansi_41_uim , ASN1_EXTENSION_ROOT , dissect_h225_ANSI_41_UIM },
2172 { 1, &hf_h225_gsm_uim , ASN1_EXTENSION_ROOT , dissect_h225_GSM_UIM },
2173 { 0, NULL, 0, NULL }
2176 static int
2177 dissect_h225_MobileUIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2178 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2179 ett_h225_MobileUIM, MobileUIM_choice,
2180 NULL);
2182 return offset;
2186 static const value_string h225_NatureOfAddress_vals[] = {
2187 { 0, "unknown" },
2188 { 1, "subscriberNumber" },
2189 { 2, "nationalNumber" },
2190 { 3, "internationalNumber" },
2191 { 4, "networkSpecificNumber" },
2192 { 5, "routingNumberNationalFormat" },
2193 { 6, "routingNumberNetworkSpecificFormat" },
2194 { 7, "routingNumberWithCalledDirectoryNumber" },
2195 { 0, NULL }
2198 static const per_choice_t NatureOfAddress_choice[] = {
2199 { 0, &hf_h225_unknown , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2200 { 1, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2201 { 2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2202 { 3, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2203 { 4, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2204 { 5, &hf_h225_routingNumberNationalFormat, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2205 { 6, &hf_h225_routingNumberNetworkSpecificFormat, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2206 { 7, &hf_h225_routingNumberWithCalledDirectoryNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2207 { 0, NULL, 0, NULL }
2210 static int
2211 dissect_h225_NatureOfAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2212 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2213 ett_h225_NatureOfAddress, NatureOfAddress_choice,
2214 NULL);
2216 return offset;
2221 static int
2222 dissect_h225_IsupDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2223 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2224 1, 128, false, "0123456789ABCDE", 15,
2225 NULL);
2227 return offset;
2231 static const per_sequence_t IsupPublicPartyNumber_sequence[] = {
2232 { &hf_h225_natureOfAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_NatureOfAddress },
2233 { &hf_h225_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2234 { NULL, 0, 0, NULL }
2237 static int
2238 dissect_h225_IsupPublicPartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2239 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2240 ett_h225_IsupPublicPartyNumber, IsupPublicPartyNumber_sequence);
2242 return offset;
2246 static const per_sequence_t IsupPrivatePartyNumber_sequence[] = {
2247 { &hf_h225_privateTypeOfNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
2248 { &hf_h225_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2249 { NULL, 0, 0, NULL }
2252 static int
2253 dissect_h225_IsupPrivatePartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2254 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2255 ett_h225_IsupPrivatePartyNumber, IsupPrivatePartyNumber_sequence);
2257 return offset;
2261 static const value_string h225_IsupNumber_vals[] = {
2262 { 0, "e164Number" },
2263 { 1, "dataPartyNumber" },
2264 { 2, "telexPartyNumber" },
2265 { 3, "privateNumber" },
2266 { 4, "nationalStandardPartyNumber" },
2267 { 0, NULL }
2270 static const per_choice_t IsupNumber_choice[] = {
2271 { 0, &hf_h225_isupE164Number , ASN1_EXTENSION_ROOT , dissect_h225_IsupPublicPartyNumber },
2272 { 1, &hf_h225_isupDataPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits },
2273 { 2, &hf_h225_isupTelexPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits },
2274 { 3, &hf_h225_isupPrivateNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupPrivatePartyNumber },
2275 { 4, &hf_h225_isupNationalStandardPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits },
2276 { 0, NULL, 0, NULL }
2279 static int
2280 dissect_h225_IsupNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2281 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2282 ett_h225_IsupNumber, IsupNumber_choice,
2283 NULL);
2285 return offset;
2289 const value_string AliasAddress_vals[] = {
2290 { 0, "dialledDigits" },
2291 { 1, "h323-ID" },
2292 { 2, "url-ID" },
2293 { 3, "transportID" },
2294 { 4, "email-ID" },
2295 { 5, "partyNumber" },
2296 { 6, "mobileUIM" },
2297 { 7, "isupNumber" },
2298 { 0, NULL }
2301 static const per_choice_t AliasAddress_choice[] = {
2302 { 0, &hf_h225_dialledDigits , ASN1_EXTENSION_ROOT , dissect_h225_DialedDigits },
2303 { 1, &hf_h225_h323_ID , ASN1_EXTENSION_ROOT , dissect_h225_BMPString_SIZE_1_256 },
2304 { 2, &hf_h225_url_ID , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2305 { 3, &hf_h225_transportID , ASN1_NOT_EXTENSION_ROOT, dissect_h225_TransportAddress },
2306 { 4, &hf_h225_email_ID , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2307 { 5, &hf_h225_partyNumber , ASN1_NOT_EXTENSION_ROOT, dissect_h225_PartyNumber },
2308 { 6, &hf_h225_mobileUIM , ASN1_NOT_EXTENSION_ROOT, dissect_h225_MobileUIM },
2309 { 7, &hf_h225_isupNumber , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IsupNumber },
2310 { 0, NULL, 0, NULL }
2314 dissect_h225_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2315 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2316 ett_h225_AliasAddress, AliasAddress_choice,
2317 NULL);
2319 return offset;
2323 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
2324 { &hf_h225_alertingAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2327 static int
2328 dissect_h225_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2329 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2330 ett_h225_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
2332 return offset;
2337 static int
2338 dissect_h225_OCTET_STRING_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2339 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2340 1, 256, false, NULL);
2342 return offset;
2347 static int
2348 dissect_h225_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2349 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2351 return offset;
2355 static const per_sequence_t VendorIdentifier_sequence[] = {
2356 { &hf_h225_vendorIdentifier_vendor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_H221NonStandard },
2357 { &hf_h225_productId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1_256 },
2358 { &hf_h225_versionId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_1_256 },
2359 { &hf_h225_enterpriseNumber, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_OBJECT_IDENTIFIER },
2360 { NULL, 0, 0, NULL }
2363 static int
2364 dissect_h225_VendorIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2365 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2366 ett_h225_VendorIdentifier, VendorIdentifier_sequence);
2368 return offset;
2372 static const per_sequence_t GatekeeperInfo_sequence[] = {
2373 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2374 { NULL, 0, 0, NULL }
2377 static int
2378 dissect_h225_GatekeeperInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2380 ett_h225_GatekeeperInfo, GatekeeperInfo_sequence);
2382 return offset;
2388 dissect_h225_BandWidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2389 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2390 0U, 4294967295U, NULL, false);
2392 return offset;
2397 static int
2398 dissect_h225_INTEGER_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2399 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2400 1U, 256U, NULL, false);
2402 return offset;
2406 static const per_sequence_t DataRate_sequence[] = {
2407 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2408 { &hf_h225_channelRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
2409 { &hf_h225_channelMultiplier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_INTEGER_1_256 },
2410 { NULL, 0, 0, NULL }
2413 static int
2414 dissect_h225_DataRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2416 ett_h225_DataRate, DataRate_sequence);
2418 return offset;
2422 static const per_sequence_t SEQUENCE_OF_DataRate_sequence_of[1] = {
2423 { &hf_h225_dataRatesSupported_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_DataRate },
2426 static int
2427 dissect_h225_SEQUENCE_OF_DataRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2428 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2429 ett_h225_SEQUENCE_OF_DataRate, SEQUENCE_OF_DataRate_sequence_of);
2431 return offset;
2435 static const per_sequence_t SupportedPrefix_sequence[] = {
2436 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2437 { &hf_h225_prefix , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2438 { NULL, 0, 0, NULL }
2441 static int
2442 dissect_h225_SupportedPrefix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2443 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2444 ett_h225_SupportedPrefix, SupportedPrefix_sequence);
2446 return offset;
2450 static const per_sequence_t SEQUENCE_OF_SupportedPrefix_sequence_of[1] = {
2451 { &hf_h225_supportedPrefixes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_SupportedPrefix },
2454 static int
2455 dissect_h225_SEQUENCE_OF_SupportedPrefix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2456 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2457 ett_h225_SEQUENCE_OF_SupportedPrefix, SEQUENCE_OF_SupportedPrefix_sequence_of);
2459 return offset;
2463 static const per_sequence_t H310Caps_sequence[] = {
2464 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2465 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2466 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2467 { NULL, 0, 0, NULL }
2470 static int
2471 dissect_h225_H310Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2472 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2473 ett_h225_H310Caps, H310Caps_sequence);
2475 return offset;
2479 static const per_sequence_t H320Caps_sequence[] = {
2480 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2481 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2482 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2483 { NULL, 0, 0, NULL }
2486 static int
2487 dissect_h225_H320Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2488 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2489 ett_h225_H320Caps, H320Caps_sequence);
2491 return offset;
2495 static const per_sequence_t H321Caps_sequence[] = {
2496 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2497 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2498 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2499 { NULL, 0, 0, NULL }
2502 static int
2503 dissect_h225_H321Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2504 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2505 ett_h225_H321Caps, H321Caps_sequence);
2507 return offset;
2511 static const per_sequence_t H322Caps_sequence[] = {
2512 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2513 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2514 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2515 { NULL, 0, 0, NULL }
2518 static int
2519 dissect_h225_H322Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2520 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2521 ett_h225_H322Caps, H322Caps_sequence);
2523 return offset;
2527 static const per_sequence_t H323Caps_sequence[] = {
2528 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2529 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2530 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2531 { NULL, 0, 0, NULL }
2534 static int
2535 dissect_h225_H323Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2536 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2537 ett_h225_H323Caps, H323Caps_sequence);
2539 return offset;
2543 static const per_sequence_t H324Caps_sequence[] = {
2544 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2545 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2546 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2547 { NULL, 0, 0, NULL }
2550 static int
2551 dissect_h225_H324Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2552 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2553 ett_h225_H324Caps, H324Caps_sequence);
2555 return offset;
2559 static const per_sequence_t VoiceCaps_sequence[] = {
2560 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2561 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2562 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2563 { NULL, 0, 0, NULL }
2566 static int
2567 dissect_h225_VoiceCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2568 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2569 ett_h225_VoiceCaps, VoiceCaps_sequence);
2571 return offset;
2575 static const per_sequence_t T120OnlyCaps_sequence[] = {
2576 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2577 { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2578 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2579 { NULL, 0, 0, NULL }
2582 static int
2583 dissect_h225_T120OnlyCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2584 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2585 ett_h225_T120OnlyCaps, T120OnlyCaps_sequence);
2587 return offset;
2591 static const per_sequence_t NonStandardProtocol_sequence[] = {
2592 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2593 { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2594 { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2595 { NULL, 0, 0, NULL }
2598 static int
2599 dissect_h225_NonStandardProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2600 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2601 ett_h225_NonStandardProtocol, NonStandardProtocol_sequence);
2603 return offset;
2607 static const per_sequence_t T38FaxAnnexbOnlyCaps_sequence[] = {
2608 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2609 { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2610 { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2611 { &hf_h225_t38FaxProtocol , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
2612 { &hf_h225_t38FaxProfile , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
2613 { NULL, 0, 0, NULL }
2616 static int
2617 dissect_h225_T38FaxAnnexbOnlyCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2618 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2619 ett_h225_T38FaxAnnexbOnlyCaps, T38FaxAnnexbOnlyCaps_sequence);
2621 return offset;
2625 static const per_sequence_t SIPCaps_sequence[] = {
2626 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2627 { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DataRate },
2628 { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedPrefix },
2629 { NULL, 0, 0, NULL }
2632 static int
2633 dissect_h225_SIPCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2634 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2635 ett_h225_SIPCaps, SIPCaps_sequence);
2637 return offset;
2641 const value_string h225_SupportedProtocols_vals[] = {
2642 { 0, "nonStandardData" },
2643 { 1, "h310" },
2644 { 2, "h320" },
2645 { 3, "h321" },
2646 { 4, "h322" },
2647 { 5, "h323" },
2648 { 6, "h324" },
2649 { 7, "voice" },
2650 { 8, "t120-only" },
2651 { 9, "nonStandardProtocol" },
2652 { 10, "t38FaxAnnexbOnly" },
2653 { 11, "sip" },
2654 { 0, NULL }
2657 static const per_choice_t SupportedProtocols_choice[] = {
2658 { 0, &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
2659 { 1, &hf_h225_h310 , ASN1_EXTENSION_ROOT , dissect_h225_H310Caps },
2660 { 2, &hf_h225_h320 , ASN1_EXTENSION_ROOT , dissect_h225_H320Caps },
2661 { 3, &hf_h225_h321 , ASN1_EXTENSION_ROOT , dissect_h225_H321Caps },
2662 { 4, &hf_h225_h322 , ASN1_EXTENSION_ROOT , dissect_h225_H322Caps },
2663 { 5, &hf_h225_h323 , ASN1_EXTENSION_ROOT , dissect_h225_H323Caps },
2664 { 6, &hf_h225_h324 , ASN1_EXTENSION_ROOT , dissect_h225_H324Caps },
2665 { 7, &hf_h225_voice , ASN1_EXTENSION_ROOT , dissect_h225_VoiceCaps },
2666 { 8, &hf_h225_t120_only , ASN1_EXTENSION_ROOT , dissect_h225_T120OnlyCaps },
2667 { 9, &hf_h225_nonStandardProtocol, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardProtocol },
2668 { 10, &hf_h225_t38FaxAnnexbOnly, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T38FaxAnnexbOnlyCaps },
2669 { 11, &hf_h225_sip , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SIPCaps },
2670 { 0, NULL, 0, NULL }
2674 dissect_h225_SupportedProtocols(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2675 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2676 ett_h225_SupportedProtocols, SupportedProtocols_choice,
2677 NULL);
2679 return offset;
2683 static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
2684 { &hf_h225_desiredProtocols_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
2687 static int
2688 dissect_h225_SEQUENCE_OF_SupportedProtocols(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2689 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2690 ett_h225_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
2692 return offset;
2696 static const per_sequence_t GatewayInfo_sequence[] = {
2697 { &hf_h225_protocol , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2698 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2699 { NULL, 0, 0, NULL }
2702 static int
2703 dissect_h225_GatewayInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2704 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2705 ett_h225_GatewayInfo, GatewayInfo_sequence);
2707 return offset;
2711 static const per_sequence_t McuInfo_sequence[] = {
2712 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2713 { &hf_h225_protocol , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2714 { NULL, 0, 0, NULL }
2717 static int
2718 dissect_h225_McuInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2719 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2720 ett_h225_McuInfo, McuInfo_sequence);
2722 return offset;
2726 static const per_sequence_t TerminalInfo_sequence[] = {
2727 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2728 { NULL, 0, 0, NULL }
2731 static int
2732 dissect_h225_TerminalInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2733 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2734 ett_h225_TerminalInfo, TerminalInfo_sequence);
2736 return offset;
2741 static int
2742 dissect_h225_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2743 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2745 return offset;
2750 static int
2751 dissect_h225_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2752 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2753 32, 32, false, NULL, 0, NULL, NULL);
2755 return offset;
2760 static int
2761 dissect_h225_T_tunnelledProtocolObjectID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2762 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &tpOID);
2764 return offset;
2769 static int
2770 dissect_h225_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2771 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
2772 1, 64, false,
2773 NULL);
2775 return offset;
2779 static const per_sequence_t TunnelledProtocolAlternateIdentifier_sequence[] = {
2780 { &hf_h225_protocolType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_64 },
2781 { &hf_h225_protocolVariant, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IA5String_SIZE_1_64 },
2782 { NULL, 0, 0, NULL }
2785 static int
2786 dissect_h225_TunnelledProtocolAlternateIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2787 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2788 ett_h225_TunnelledProtocolAlternateIdentifier, TunnelledProtocolAlternateIdentifier_sequence);
2790 return offset;
2794 static const value_string h225_TunnelledProtocol_id_vals[] = {
2795 { 0, "tunnelledProtocolObjectID" },
2796 { 1, "tunnelledProtocolAlternateID" },
2797 { 0, NULL }
2800 static const per_choice_t TunnelledProtocol_id_choice[] = {
2801 { 0, &hf_h225_tunnelledProtocolObjectID, ASN1_EXTENSION_ROOT , dissect_h225_T_tunnelledProtocolObjectID },
2802 { 1, &hf_h225_tunnelledProtocolAlternateID, ASN1_EXTENSION_ROOT , dissect_h225_TunnelledProtocolAlternateIdentifier },
2803 { 0, NULL, 0, NULL }
2806 static int
2807 dissect_h225_TunnelledProtocol_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2808 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2809 ett_h225_TunnelledProtocol_id, TunnelledProtocol_id_choice,
2810 NULL);
2812 return offset;
2816 static const per_sequence_t TunnelledProtocol_sequence[] = {
2817 { &hf_h225_tunnelledProtocol_id, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol_id },
2818 { &hf_h225_subIdentifier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IA5String_SIZE_1_64 },
2819 { NULL, 0, 0, NULL }
2823 dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2824 tpOID = "";
2825 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2826 ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
2828 tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
2829 return offset;
2833 static const per_sequence_t SEQUENCE_OF_TunnelledProtocol_sequence_of[1] = {
2834 { &hf_h225_supportedTunnelledProtocols_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
2837 static int
2838 dissect_h225_SEQUENCE_OF_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2839 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2840 ett_h225_SEQUENCE_OF_TunnelledProtocol, SEQUENCE_OF_TunnelledProtocol_sequence_of);
2842 return offset;
2846 static const per_sequence_t EndpointType_sequence[] = {
2847 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
2848 { &hf_h225_vendor , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_VendorIdentifier },
2849 { &hf_h225_gatekeeper , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperInfo },
2850 { &hf_h225_gateway , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatewayInfo },
2851 { &hf_h225_mcu , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_McuInfo },
2852 { &hf_h225_terminal , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TerminalInfo },
2853 { &hf_h225_mc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2854 { &hf_h225_undefinedNode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2855 { &hf_h225_set , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BIT_STRING_SIZE_32 },
2856 { &hf_h225_supportedTunnelledProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TunnelledProtocol },
2857 { NULL, 0, 0, NULL }
2861 dissect_h225_EndpointType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2862 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2863 ett_h225_EndpointType, EndpointType_sequence);
2865 return offset;
2871 dissect_h225_CallReferenceValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2872 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2873 0U, 65535U, NULL, false);
2875 return offset;
2879 static const per_sequence_t SEQUENCE_OF_CallReferenceValue_sequence_of[1] = {
2880 { &hf_h225_destExtraCRV_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
2883 static int
2884 dissect_h225_SEQUENCE_OF_CallReferenceValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2885 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2886 ett_h225_SEQUENCE_OF_CallReferenceValue, SEQUENCE_OF_CallReferenceValue_sequence_of);
2888 return offset;
2894 dissect_h225_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2895 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2896 16, 16, false, (tvbuff_t **)actx->value_ptr);
2898 return offset;
2904 dissect_h225_ConferenceIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2905 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2907 return offset;
2911 static const value_string h225_T_conferenceGoal_vals[] = {
2912 { 0, "create" },
2913 { 1, "join" },
2914 { 2, "invite" },
2915 { 3, "capability-negotiation" },
2916 { 4, "callIndependentSupplementaryService" },
2917 { 0, NULL }
2920 static const per_choice_t T_conferenceGoal_choice[] = {
2921 { 0, &hf_h225_create , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2922 { 1, &hf_h225_join , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2923 { 2, &hf_h225_invite , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2924 { 3, &hf_h225_capability_negotiation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2925 { 4, &hf_h225_callIndependentSupplementaryService, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2926 { 0, NULL, 0, NULL }
2929 static int
2930 dissect_h225_T_conferenceGoal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2931 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2932 ett_h225_T_conferenceGoal, T_conferenceGoal_choice,
2933 NULL);
2935 return offset;
2939 static const per_sequence_t Q954Details_sequence[] = {
2940 { &hf_h225_conferenceCalling, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2941 { &hf_h225_threePartyService, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2942 { NULL, 0, 0, NULL }
2945 static int
2946 dissect_h225_Q954Details(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2947 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2948 ett_h225_Q954Details, Q954Details_sequence);
2950 return offset;
2954 static const per_sequence_t QseriesOptions_sequence[] = {
2955 { &hf_h225_q932Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2956 { &hf_h225_q951Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2957 { &hf_h225_q952Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2958 { &hf_h225_q953Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2959 { &hf_h225_q955Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2960 { &hf_h225_q956Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2961 { &hf_h225_q957Full , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2962 { &hf_h225_q954Info , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_Q954Details },
2963 { NULL, 0, 0, NULL }
2966 static int
2967 dissect_h225_QseriesOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2968 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2969 ett_h225_QseriesOptions, QseriesOptions_sequence);
2971 return offset;
2975 static const value_string h225_CallType_vals[] = {
2976 { 0, "pointToPoint" },
2977 { 1, "oneToN" },
2978 { 2, "nToOne" },
2979 { 3, "nToN" },
2980 { 0, NULL }
2983 static const per_choice_t CallType_choice[] = {
2984 { 0, &hf_h225_pointToPoint , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2985 { 1, &hf_h225_oneToN , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2986 { 2, &hf_h225_nToOne , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2987 { 3, &hf_h225_nToN , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
2988 { 0, NULL, 0, NULL }
2991 static int
2992 dissect_h225_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2993 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2994 ett_h225_CallType, CallType_choice,
2995 NULL);
2997 return offset;
3002 static int
3003 dissect_h225_T_guid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3004 tvbuff_t *guid_tvb = NULL;
3006 actx->value_ptr = &guid_tvb;
3007 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
3009 if (guid_tvb)
3010 tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(actx->pinfo->pool, e_guid_t));
3011 actx->value_ptr = NULL;
3013 return offset;
3017 static const per_sequence_t CallIdentifier_sequence[] = {
3018 { &hf_h225_guid , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_guid },
3019 { NULL, 0, 0, NULL }
3023 dissect_h225_CallIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3024 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3025 ett_h225_CallIdentifier, CallIdentifier_sequence);
3027 return offset;
3031 static const value_string h225_SecurityServiceMode_vals[] = {
3032 { 0, "nonStandard" },
3033 { 1, "none" },
3034 { 2, "default" },
3035 { 0, NULL }
3038 static const per_choice_t SecurityServiceMode_choice[] = {
3039 { 0, &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
3040 { 1, &hf_h225_none , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3041 { 2, &hf_h225_default , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3042 { 0, NULL, 0, NULL }
3045 static int
3046 dissect_h225_SecurityServiceMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3047 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3048 ett_h225_SecurityServiceMode, SecurityServiceMode_choice,
3049 NULL);
3051 return offset;
3055 static const per_sequence_t SecurityCapabilities_sequence[] = {
3056 { &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
3057 { &hf_h225_encryption , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3058 { &hf_h225_authenticaton , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3059 { &hf_h225_securityCapabilities_integrity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3060 { NULL, 0, 0, NULL }
3063 static int
3064 dissect_h225_SecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3065 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3066 ett_h225_SecurityCapabilities, SecurityCapabilities_sequence);
3068 return offset;
3072 static const value_string h225_H245Security_vals[] = {
3073 { 0, "nonStandard" },
3074 { 1, "noSecurity" },
3075 { 2, "tls" },
3076 { 3, "ipsec" },
3077 { 0, NULL }
3080 static const per_choice_t H245Security_choice[] = {
3081 { 0, &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
3082 { 1, &hf_h225_noSecurity , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3083 { 2, &hf_h225_tls , ASN1_EXTENSION_ROOT , dissect_h225_SecurityCapabilities },
3084 { 3, &hf_h225_ipsec , ASN1_EXTENSION_ROOT , dissect_h225_SecurityCapabilities },
3085 { 0, NULL, 0, NULL }
3088 static int
3089 dissect_h225_H245Security(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3090 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3091 ett_h225_H245Security, H245Security_choice,
3092 NULL);
3094 return offset;
3098 static const per_sequence_t SEQUENCE_OF_H245Security_sequence_of[1] = {
3099 { &hf_h225_h245SecurityCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_H245Security },
3102 static int
3103 dissect_h225_SEQUENCE_OF_H245Security(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3104 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3105 ett_h225_SEQUENCE_OF_H245Security, SEQUENCE_OF_H245Security_sequence_of);
3107 return offset;
3111 static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
3112 { &hf_h225_tokens_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
3115 static int
3116 dissect_h225_SEQUENCE_OF_ClearToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3117 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3118 ett_h225_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
3120 return offset;
3124 static const per_sequence_t T_cryptoEPPwdHash_sequence[] = {
3125 { &hf_h225_alias , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
3126 { &hf_h225_timeStamp , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3127 { &hf_h225_token , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3128 { NULL, 0, 0, NULL }
3131 static int
3132 dissect_h225_T_cryptoEPPwdHash(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3133 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3134 ett_h225_T_cryptoEPPwdHash, T_cryptoEPPwdHash_sequence);
3136 return offset;
3142 dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3143 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3144 1, 128, false);
3146 return offset;
3150 static const per_sequence_t T_cryptoGKPwdHash_sequence[] = {
3151 { &hf_h225_gatekeeperId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperIdentifier },
3152 { &hf_h225_timeStamp , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3153 { &hf_h225_token , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3154 { NULL, 0, 0, NULL }
3157 static int
3158 dissect_h225_T_cryptoGKPwdHash(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3159 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3160 ett_h225_T_cryptoGKPwdHash, T_cryptoGKPwdHash_sequence);
3162 return offset;
3166 const value_string h225_CryptoH323Token_vals[] = {
3167 { 0, "cryptoEPPwdHash" },
3168 { 1, "cryptoGKPwdHash" },
3169 { 2, "cryptoEPPwdEncr" },
3170 { 3, "cryptoGKPwdEncr" },
3171 { 4, "cryptoEPCert" },
3172 { 5, "cryptoGKCert" },
3173 { 6, "cryptoFastStart" },
3174 { 7, "nestedcryptoToken" },
3175 { 0, NULL }
3178 static const per_choice_t CryptoH323Token_choice[] = {
3179 { 0, &hf_h225_cryptoEPPwdHash, ASN1_EXTENSION_ROOT , dissect_h225_T_cryptoEPPwdHash },
3180 { 1, &hf_h225_cryptoGKPwdHash, ASN1_EXTENSION_ROOT , dissect_h225_T_cryptoGKPwdHash },
3181 { 2, &hf_h225_cryptoEPPwdEncr, ASN1_EXTENSION_ROOT , dissect_h235_ENCRYPTED },
3182 { 3, &hf_h225_cryptoGKPwdEncr, ASN1_EXTENSION_ROOT , dissect_h235_ENCRYPTED },
3183 { 4, &hf_h225_cryptoEPCert , ASN1_EXTENSION_ROOT , dissect_h235_SIGNED },
3184 { 5, &hf_h225_cryptoGKCert , ASN1_EXTENSION_ROOT , dissect_h235_SIGNED },
3185 { 6, &hf_h225_cryptoFastStart, ASN1_EXTENSION_ROOT , dissect_h235_SIGNED },
3186 { 7, &hf_h225_nestedcryptoToken, ASN1_EXTENSION_ROOT , dissect_h235_CryptoToken },
3187 { 0, NULL, 0, NULL }
3191 dissect_h225_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3192 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3193 ett_h225_CryptoH323Token, CryptoH323Token_choice,
3194 NULL);
3196 return offset;
3200 static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
3201 { &hf_h225_cryptoTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
3204 static int
3205 dissect_h225_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3206 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3207 ett_h225_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
3209 return offset;
3214 static int
3215 dissect_h225_FastStart_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3216 tvbuff_t *value_tvb = NULL;
3217 char codec_str[50];
3218 h225_packet_info* h225_pi;
3219 codec_str[0] = '\0';
3221 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3222 NO_BOUND, NO_BOUND, false, &value_tvb);
3224 if (value_tvb && tvb_reported_length(value_tvb)) {
3225 dissect_h245_FastStart_OLC(value_tvb, actx->pinfo, tree, codec_str);
3228 /* Add to packet info */
3229 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
3230 if (h225_pi != NULL) {
3231 char temp[50];
3232 snprintf(temp, 50, "%s %s", h225_pi->frame_label, codec_str);
3233 (void) g_strlcpy(h225_pi->frame_label, temp, 50);
3234 h225_pi->is_faststart = true;
3236 contains_faststart = true;
3238 return offset;
3242 static const per_sequence_t FastStart_sequence_of[1] = {
3243 { &hf_h225_FastStart_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_FastStart_item },
3246 static int
3247 dissect_h225_FastStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3248 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3249 ett_h225_FastStart, FastStart_sequence_of);
3251 return offset;
3256 static int
3257 dissect_h225_EndpointIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3258 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3259 1, 128, false);
3261 return offset;
3265 static const value_string h225_ScnConnectionType_vals[] = {
3266 { 0, "unknown" },
3267 { 1, "bChannel" },
3268 { 2, "hybrid2x64" },
3269 { 3, "hybrid384" },
3270 { 4, "hybrid1536" },
3271 { 5, "hybrid1920" },
3272 { 6, "multirate" },
3273 { 0, NULL }
3276 static const per_choice_t ScnConnectionType_choice[] = {
3277 { 0, &hf_h225_unknown , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3278 { 1, &hf_h225_bChannel , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3279 { 2, &hf_h225_hybrid2x64 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3280 { 3, &hf_h225_hybrid384 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3281 { 4, &hf_h225_hybrid1536 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3282 { 5, &hf_h225_hybrid1920 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3283 { 6, &hf_h225_multirate , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3284 { 0, NULL, 0, NULL }
3287 static int
3288 dissect_h225_ScnConnectionType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3289 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3290 ett_h225_ScnConnectionType, ScnConnectionType_choice,
3291 NULL);
3293 return offset;
3297 static const value_string h225_ScnConnectionAggregation_vals[] = {
3298 { 0, "auto" },
3299 { 1, "none" },
3300 { 2, "h221" },
3301 { 3, "bonded-mode1" },
3302 { 4, "bonded-mode2" },
3303 { 5, "bonded-mode3" },
3304 { 0, NULL }
3307 static const per_choice_t ScnConnectionAggregation_choice[] = {
3308 { 0, &hf_h225_auto , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3309 { 1, &hf_h225_none , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3310 { 2, &hf_h225_h221 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3311 { 3, &hf_h225_bonded_mode1 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3312 { 4, &hf_h225_bonded_mode2 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3313 { 5, &hf_h225_bonded_mode3 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3314 { 0, NULL, 0, NULL }
3317 static int
3318 dissect_h225_ScnConnectionAggregation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3319 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3320 ett_h225_ScnConnectionAggregation, ScnConnectionAggregation_choice,
3321 NULL);
3323 return offset;
3327 static const per_sequence_t T_connectionParameters_sequence[] = {
3328 { &hf_h225_connectionType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionType },
3329 { &hf_h225_numberOfScnConnections, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3330 { &hf_h225_connectionAggregation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionAggregation },
3331 { NULL, 0, 0, NULL }
3334 static int
3335 dissect_h225_T_connectionParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3336 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3337 ett_h225_T_connectionParameters, T_connectionParameters_sequence);
3339 return offset;
3344 static int
3345 dissect_h225_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3346 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3347 1, 32, false,
3348 NULL);
3350 return offset;
3354 static const per_sequence_t Language_sequence_of[1] = {
3355 { &hf_h225_Language_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 },
3358 static int
3359 dissect_h225_Language(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3360 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3361 ett_h225_Language, Language_sequence_of);
3363 return offset;
3367 const value_string h225_PresentationIndicator_vals[] = {
3368 { 0, "presentationAllowed" },
3369 { 1, "presentationRestricted" },
3370 { 2, "addressNotAvailable" },
3371 { 0, NULL }
3374 static const per_choice_t PresentationIndicator_choice[] = {
3375 { 0, &hf_h225_presentationAllowed, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3376 { 1, &hf_h225_presentationRestricted, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3377 { 2, &hf_h225_addressNotAvailable, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3378 { 0, NULL, 0, NULL }
3382 dissect_h225_PresentationIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3383 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3384 ett_h225_PresentationIndicator, PresentationIndicator_choice,
3385 NULL);
3387 return offset;
3391 const value_string h225_ScreeningIndicator_vals[] = {
3392 { 0, "userProvidedNotScreened" },
3393 { 1, "userProvidedVerifiedAndPassed" },
3394 { 2, "userProvidedVerifiedAndFailed" },
3395 { 3, "networkProvided" },
3396 { 0, NULL }
3401 dissect_h225_ScreeningIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3402 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3403 4, NULL, true, 0, NULL);
3405 return offset;
3410 static int
3411 dissect_h225_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3412 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3413 0U, 255U, NULL, false);
3415 return offset;
3420 static int
3421 dissect_h225_IA5String_SIZE_0_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3422 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3423 0, 512, false,
3424 NULL);
3426 return offset;
3431 static int
3432 dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3433 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3434 NO_BOUND, NO_BOUND, false, NULL);
3436 return offset;
3441 static int
3442 dissect_h225_BMPString_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3443 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3444 1, 512, false);
3446 return offset;
3450 static const value_string h225_T_billingMode_vals[] = {
3451 { 0, "credit" },
3452 { 1, "debit" },
3453 { 0, NULL }
3456 static const per_choice_t T_billingMode_choice[] = {
3457 { 0, &hf_h225_credit , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3458 { 1, &hf_h225_debit , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3459 { 0, NULL, 0, NULL }
3462 static int
3463 dissect_h225_T_billingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3464 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3465 ett_h225_T_billingMode, T_billingMode_choice,
3466 NULL);
3468 return offset;
3473 static int
3474 dissect_h225_INTEGER_1_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3475 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3476 1U, 4294967295U, NULL, false);
3478 return offset;
3482 static const value_string h225_CallCreditServiceControl_callStartingPoint_vals[] = {
3483 { 0, "alerting" },
3484 { 1, "connect" },
3485 { 0, NULL }
3488 static const per_choice_t CallCreditServiceControl_callStartingPoint_choice[] = {
3489 { 0, &hf_h225_alerting_flg , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3490 { 1, &hf_h225_connect_flg , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3491 { 0, NULL, 0, NULL }
3494 static int
3495 dissect_h225_CallCreditServiceControl_callStartingPoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3496 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3497 ett_h225_CallCreditServiceControl_callStartingPoint, CallCreditServiceControl_callStartingPoint_choice,
3498 NULL);
3500 return offset;
3504 static const per_sequence_t CallCreditServiceControl_sequence[] = {
3505 { &hf_h225_amountString , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BMPString_SIZE_1_512 },
3506 { &hf_h225_billingMode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_billingMode },
3507 { &hf_h225_callDurationLimit, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_INTEGER_1_4294967295 },
3508 { &hf_h225_enforceCallDurationLimit, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BOOLEAN },
3509 { &hf_h225_callStartingPoint, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallCreditServiceControl_callStartingPoint },
3510 { NULL, 0, 0, NULL }
3513 static int
3514 dissect_h225_CallCreditServiceControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3515 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3516 ett_h225_CallCreditServiceControl, CallCreditServiceControl_sequence);
3518 return offset;
3522 static const value_string h225_ServiceControlDescriptor_vals[] = {
3523 { 0, "url" },
3524 { 1, "signal" },
3525 { 2, "nonStandard" },
3526 { 3, "callCreditServiceControl" },
3527 { 0, NULL }
3530 static const per_choice_t ServiceControlDescriptor_choice[] = {
3531 { 0, &hf_h225_url , ASN1_EXTENSION_ROOT , dissect_h225_IA5String_SIZE_0_512 },
3532 { 1, &hf_h225_signal , ASN1_EXTENSION_ROOT , dissect_h225_H248SignalsDescriptor },
3533 { 2, &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
3534 { 3, &hf_h225_callCreditServiceControl, ASN1_EXTENSION_ROOT , dissect_h225_CallCreditServiceControl },
3535 { 0, NULL, 0, NULL }
3538 static int
3539 dissect_h225_ServiceControlDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3540 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3541 ett_h225_ServiceControlDescriptor, ServiceControlDescriptor_choice,
3542 NULL);
3544 return offset;
3548 static const value_string h225_ServiceControlSession_reason_vals[] = {
3549 { 0, "open" },
3550 { 1, "refresh" },
3551 { 2, "close" },
3552 { 0, NULL }
3555 static const per_choice_t ServiceControlSession_reason_choice[] = {
3556 { 0, &hf_h225_open , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3557 { 1, &hf_h225_refresh , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3558 { 2, &hf_h225_close , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
3559 { 0, NULL, 0, NULL }
3562 static int
3563 dissect_h225_ServiceControlSession_reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3564 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3565 ett_h225_ServiceControlSession_reason, ServiceControlSession_reason_choice,
3566 NULL);
3568 return offset;
3572 static const per_sequence_t ServiceControlSession_sequence[] = {
3573 { &hf_h225_sessionId_0_255, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
3574 { &hf_h225_contents , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ServiceControlDescriptor },
3575 { &hf_h225_reason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession_reason },
3576 { NULL, 0, 0, NULL }
3580 dissect_h225_ServiceControlSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3581 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3582 ett_h225_ServiceControlSession, ServiceControlSession_sequence);
3584 return offset;
3588 static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
3589 { &hf_h225_serviceControl_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
3592 static int
3593 dissect_h225_SEQUENCE_OF_ServiceControlSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3594 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3595 ett_h225_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
3597 return offset;
3602 static int
3603 dissect_h225_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3604 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3605 0U, 4294967295U, NULL, false);
3607 return offset;
3612 static int
3613 dissect_h225_IA5String_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3614 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3615 1, 128, false,
3616 NULL);
3618 return offset;
3623 static int
3624 dissect_h225_OCTET_STRING_SIZE_3_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3625 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3626 3, 4, false, NULL);
3628 return offset;
3632 static const per_sequence_t CarrierInfo_sequence[] = {
3633 { &hf_h225_carrierIdentificationCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING_SIZE_3_4 },
3634 { &hf_h225_carrierName , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IA5String_SIZE_1_128 },
3635 { NULL, 0, 0, NULL }
3638 static int
3639 dissect_h225_CarrierInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3640 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3641 ett_h225_CarrierInfo, CarrierInfo_sequence);
3643 return offset;
3647 static const per_sequence_t CallsAvailable_sequence[] = {
3648 { &hf_h225_calls , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_4294967295 },
3649 { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IA5String_SIZE_1_128 },
3650 { &hf_h225_carrier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CarrierInfo },
3651 { NULL, 0, 0, NULL }
3654 static int
3655 dissect_h225_CallsAvailable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3656 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3657 ett_h225_CallsAvailable, CallsAvailable_sequence);
3659 return offset;
3663 static const per_sequence_t SEQUENCE_OF_CallsAvailable_sequence_of[1] = {
3664 { &hf_h225_voiceGwCallsAvailable_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CallsAvailable },
3667 static int
3668 dissect_h225_SEQUENCE_OF_CallsAvailable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3669 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3670 ett_h225_SEQUENCE_OF_CallsAvailable, SEQUENCE_OF_CallsAvailable_sequence_of);
3672 return offset;
3676 static const per_sequence_t CallCapacityInfo_sequence[] = {
3677 { &hf_h225_voiceGwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3678 { &hf_h225_h310GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3679 { &hf_h225_h320GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3680 { &hf_h225_h321GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3681 { &hf_h225_h322GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3682 { &hf_h225_h323GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3683 { &hf_h225_h324GwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3684 { &hf_h225_t120OnlyGwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3685 { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3686 { &hf_h225_terminalCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3687 { &hf_h225_mcuCallsAvailable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3688 { &hf_h225_sipGwCallsAvailable, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallsAvailable },
3689 { NULL, 0, 0, NULL }
3692 static int
3693 dissect_h225_CallCapacityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3694 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3695 ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
3697 return offset;
3701 static const per_sequence_t CallCapacity_sequence[] = {
3702 { &hf_h225_maximumCallCapacity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallCapacityInfo },
3703 { &hf_h225_currentCallCapacity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallCapacityInfo },
3704 { NULL, 0, 0, NULL }
3707 static int
3708 dissect_h225_CallCapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3709 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3710 ett_h225_CallCapacity, CallCapacity_sequence);
3712 return offset;
3717 static int
3718 dissect_h225_OCTET_STRING_SIZE_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3719 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3720 2, 4, false, NULL);
3722 return offset;
3726 static const per_sequence_t T_cic_2_4_sequence_of[1] = {
3727 { &hf_h225_cic_2_4_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_4 },
3730 static int
3731 dissect_h225_T_cic_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3732 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3733 ett_h225_T_cic_2_4, T_cic_2_4_sequence_of);
3735 return offset;
3740 static int
3741 dissect_h225_OCTET_STRING_SIZE_2_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3742 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3743 2, 5, false, NULL);
3745 return offset;
3749 static const per_sequence_t CicInfo_sequence[] = {
3750 { &hf_h225_cic_2_4 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_cic_2_4 },
3751 { &hf_h225_pointCode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_5 },
3752 { NULL, 0, 0, NULL }
3755 static int
3756 dissect_h225_CicInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3757 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3758 ett_h225_CicInfo, CicInfo_sequence);
3760 return offset;
3764 static const per_sequence_t T_member_sequence_of[1] = {
3765 { &hf_h225_member_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3768 static int
3769 dissect_h225_T_member(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3770 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3771 ett_h225_T_member, T_member_sequence_of);
3773 return offset;
3777 static const per_sequence_t GroupID_sequence[] = {
3778 { &hf_h225_member , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_member },
3779 { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_128 },
3780 { NULL, 0, 0, NULL }
3783 static int
3784 dissect_h225_GroupID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3785 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3786 ett_h225_GroupID, GroupID_sequence);
3788 return offset;
3792 static const per_sequence_t CircuitIdentifier_sequence[] = {
3793 { &hf_h225_cic , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CicInfo },
3794 { &hf_h225_group , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GroupID },
3795 { &hf_h225_carrier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CarrierInfo },
3796 { NULL, 0, 0, NULL }
3800 dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3801 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3802 ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
3804 return offset;
3809 static int
3810 dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3811 uint32_t value_int = (uint32_t)-1;
3812 gef_ctx_t *gefx;
3814 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3815 0U, 16383U, &value_int, true);
3817 gefx = gef_ctx_get(actx->private_data);
3818 if (gefx) gefx->id = wmem_strdup_printf(actx->pinfo->pool, "%u", value_int);
3820 return offset;
3825 static int
3826 dissect_h225_T_oid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3827 const char *oid_str = NULL;
3828 gef_ctx_t *gefx;
3830 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &oid_str);
3832 gefx = gef_ctx_get(actx->private_data);
3833 if (gefx) gefx->id = oid_str;
3835 return offset;
3839 const value_string h225_GenericIdentifier_vals[] = {
3840 { 0, "standard" },
3841 { 1, "oid" },
3842 { 2, "nonStandard" },
3843 { 0, NULL }
3846 static const per_choice_t GenericIdentifier_choice[] = {
3847 { 0, &hf_h225_standard , ASN1_EXTENSION_ROOT , dissect_h225_T_standard },
3848 { 1, &hf_h225_oid , ASN1_EXTENSION_ROOT , dissect_h225_T_oid },
3849 { 2, &hf_h225_genericIdentifier_nonStandard, ASN1_EXTENSION_ROOT , dissect_h225_GloballyUniqueID },
3850 { 0, NULL, 0, NULL }
3854 dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3855 gef_ctx_t *gefx;
3856 proto_item* ti;
3857 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3858 ett_h225_GenericIdentifier, GenericIdentifier_choice,
3859 NULL);
3861 gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
3862 gefx = gef_ctx_get(actx->private_data);
3863 if (gefx) {
3864 ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3865 proto_item_set_hidden(ti);
3866 dissector_try_string_with_data(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, false, actx);
3868 actx->private_data = gefx; /* subdissector could overwrite it */
3869 return offset;
3874 static int
3875 dissect_h225_T_raw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3876 tvbuff_t *value_tvb;
3877 gef_ctx_t *gefx;
3878 proto_item* ti;
3880 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3881 NO_BOUND, NO_BOUND, false, &value_tvb);
3883 gefx = gef_ctx_get(actx->private_data);
3884 if (gefx) {
3885 ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3886 proto_item_set_hidden(ti);
3887 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3890 return offset;
3895 static int
3896 dissect_h225_IA5String(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3897 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3898 NO_BOUND, NO_BOUND, false,
3899 NULL);
3901 return offset;
3906 static int
3907 dissect_h225_BMPString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3908 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3909 NO_BOUND, NO_BOUND, false);
3911 return offset;
3915 static const per_sequence_t SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of[1] = {
3916 { &hf_h225_parameters_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_EnumeratedParameter },
3919 static int
3920 dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3921 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3922 ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter, SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of,
3923 1, 512, false);
3925 return offset;
3929 static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of[1] = {
3930 { &hf_h225_nested_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
3933 static int
3934 dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3935 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3936 ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData, SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of,
3937 1, 16, false);
3939 return offset;
3943 static const value_string h225_Content_vals[] = {
3944 { 0, "raw" },
3945 { 1, "text" },
3946 { 2, "unicode" },
3947 { 3, "bool" },
3948 { 4, "number8" },
3949 { 5, "number16" },
3950 { 6, "number32" },
3951 { 7, "id" },
3952 { 8, "alias" },
3953 { 9, "transport" },
3954 { 10, "compound" },
3955 { 11, "nested" },
3956 { 0, NULL }
3959 static const per_choice_t Content_choice[] = {
3960 { 0, &hf_h225_raw , ASN1_EXTENSION_ROOT , dissect_h225_T_raw },
3961 { 1, &hf_h225_text , ASN1_EXTENSION_ROOT , dissect_h225_IA5String },
3962 { 2, &hf_h225_unicode , ASN1_EXTENSION_ROOT , dissect_h225_BMPString },
3963 { 3, &hf_h225_bool , ASN1_EXTENSION_ROOT , dissect_h225_BOOLEAN },
3964 { 4, &hf_h225_number8 , ASN1_EXTENSION_ROOT , dissect_h225_INTEGER_0_255 },
3965 { 5, &hf_h225_number16 , ASN1_EXTENSION_ROOT , dissect_h225_INTEGER_0_65535 },
3966 { 6, &hf_h225_number32 , ASN1_EXTENSION_ROOT , dissect_h225_INTEGER_0_4294967295 },
3967 { 7, &hf_h225_id , ASN1_EXTENSION_ROOT , dissect_h225_GenericIdentifier },
3968 { 8, &hf_h225_alias , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
3969 { 9, &hf_h225_transport , ASN1_EXTENSION_ROOT , dissect_h225_TransportAddress },
3970 { 10, &hf_h225_compound , ASN1_EXTENSION_ROOT , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
3971 { 11, &hf_h225_nested , ASN1_EXTENSION_ROOT , dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData },
3972 { 0, NULL, 0, NULL }
3975 static int
3976 dissect_h225_Content(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3977 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3978 ett_h225_Content, Content_choice,
3979 NULL);
3981 return offset;
3985 static const per_sequence_t EnumeratedParameter_sequence[] = {
3986 { &hf_h225_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
3987 { &hf_h225_content , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_Content },
3988 { NULL, 0, 0, NULL }
3991 static int
3992 dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3993 // EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter
3994 actx->pinfo->dissection_depth += 3;
3995 increment_dissection_depth(actx->pinfo);
3996 gef_ctx_t *parent_gefx;
3998 parent_gefx = gef_ctx_get(actx->private_data);
3999 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL);
4000 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4001 ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
4003 actx->pinfo->dissection_depth -= 3;
4004 decrement_dissection_depth(actx->pinfo);
4005 actx->private_data = parent_gefx;
4006 return offset;
4010 static const per_sequence_t GenericData_sequence[] = {
4011 { &hf_h225_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
4012 { &hf_h225_parameters , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
4013 { NULL, 0, 0, NULL }
4017 dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4018 // GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData
4019 actx->pinfo->dissection_depth += 5;
4020 increment_dissection_depth(actx->pinfo);
4021 void *priv_data = actx->private_data;
4022 gef_ctx_t *gefx;
4024 /* check if not inherited from FeatureDescriptor */
4025 gefx = gef_ctx_get(actx->private_data);
4026 if (!gefx) {
4027 gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData");
4028 actx->private_data = gefx;
4030 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4031 ett_h225_GenericData, GenericData_sequence);
4033 actx->pinfo->dissection_depth -= 5;
4034 decrement_dissection_depth(actx->pinfo);
4035 actx->private_data = priv_data;
4036 return offset;
4040 static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
4041 { &hf_h225_genericData_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
4044 static int
4045 dissect_h225_SEQUENCE_OF_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4046 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4047 ett_h225_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
4049 return offset;
4053 static const per_sequence_t CircuitInfo_sequence[] = {
4054 { &hf_h225_sourceCircuitID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CircuitIdentifier },
4055 { &hf_h225_destinationCircuitID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CircuitIdentifier },
4056 { &hf_h225_genericData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
4057 { NULL, 0, 0, NULL }
4061 dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4062 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4063 ett_h225_CircuitInfo, CircuitInfo_sequence);
4065 return offset;
4070 static int
4071 dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4072 void *priv_data = actx->private_data;
4073 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor");
4074 offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
4076 actx->private_data = priv_data;
4077 return offset;
4081 static const per_sequence_t SEQUENCE_OF_FeatureDescriptor_sequence_of[1] = {
4082 { &hf_h225_neededFeatures_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_FeatureDescriptor },
4085 static int
4086 dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4087 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4088 ett_h225_SEQUENCE_OF_FeatureDescriptor, SEQUENCE_OF_FeatureDescriptor_sequence_of);
4090 return offset;
4095 static int
4096 dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4097 tvbuff_t *h245_tvb = NULL;
4099 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4100 NO_BOUND, NO_BOUND, false, &h245_tvb);
4102 next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4104 return offset;
4108 static const per_sequence_t ParallelH245Control_sequence_of[1] = {
4109 { &hf_h225_ParallelH245Control_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ParallelH245Control_item },
4112 static int
4113 dissect_h225_ParallelH245Control(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4114 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4115 ett_h225_ParallelH245Control, ParallelH245Control_sequence_of);
4117 return offset;
4121 static const per_sequence_t ExtendedAliasAddress_sequence[] = {
4122 { &hf_h225_extAliasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
4123 { &hf_h225_presentationIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4124 { &hf_h225_screeningIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4125 { NULL, 0, 0, NULL }
4128 static int
4129 dissect_h225_ExtendedAliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4130 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4131 ett_h225_ExtendedAliasAddress, ExtendedAliasAddress_sequence);
4133 return offset;
4137 static const per_sequence_t SEQUENCE_OF_ExtendedAliasAddress_sequence_of[1] = {
4138 { &hf_h225_additionalSourceAddresses_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ExtendedAliasAddress },
4141 static int
4142 dissect_h225_SEQUENCE_OF_ExtendedAliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4143 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4144 ett_h225_SEQUENCE_OF_ExtendedAliasAddress, SEQUENCE_OF_ExtendedAliasAddress_sequence_of);
4146 return offset;
4151 static int
4152 dissect_h225_INTEGER_1_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4153 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4154 1U, 31U, NULL, false);
4156 return offset;
4161 static int
4162 dissect_h225_BMPString_SIZE_1_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4163 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
4164 1, 80, false);
4166 return offset;
4170 static const per_sequence_t DisplayName_sequence[] = {
4171 { &hf_h225_displayName_language, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h225_IA5String },
4172 { &hf_h225_name , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_BMPString_SIZE_1_80 },
4173 { NULL, 0, 0, NULL }
4176 static int
4177 dissect_h225_DisplayName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4178 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4179 ett_h225_DisplayName, DisplayName_sequence);
4181 return offset;
4185 static const per_sequence_t SEQUENCE_OF_DisplayName_sequence_of[1] = {
4186 { &hf_h225_displayName_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_DisplayName },
4189 static int
4190 dissect_h225_SEQUENCE_OF_DisplayName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4191 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4192 ett_h225_SEQUENCE_OF_DisplayName, SEQUENCE_OF_DisplayName_sequence_of);
4194 return offset;
4198 static const per_sequence_t Setup_UUIE_sequence[] = {
4199 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4200 { &hf_h225_h245Address , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4201 { &hf_h225_sourceAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4202 { &hf_h225_setup_UUIE_sourceInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4203 { &hf_h225_destinationAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4204 { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
4205 { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4206 { &hf_h225_destExtraCRV , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CallReferenceValue },
4207 { &hf_h225_activeMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4208 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4209 { &hf_h225_conferenceGoal , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_conferenceGoal },
4210 { &hf_h225_callServices , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_QseriesOptions },
4211 { &hf_h225_callType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
4212 { &hf_h225_sourceCallSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportAddress },
4213 { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AliasAddress },
4214 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4215 { &hf_h225_h245SecurityCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_H245Security },
4216 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4217 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4218 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4219 { &hf_h225_mediaWaitForConnect, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4220 { &hf_h225_canOverlapSend , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4221 { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointIdentifier },
4222 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4223 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4224 { &hf_h225_connectionParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_connectionParameters },
4225 { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language },
4226 { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4227 { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4228 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4229 { &hf_h225_symmetricOperationRequired, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4230 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
4231 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
4232 { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
4233 { &hf_h225_neededFeatures , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4234 { &hf_h225_desiredFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4235 { &hf_h225_supportedFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4236 { &hf_h225_parallelH245Control, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ParallelH245Control },
4237 { &hf_h225_additionalSourceAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ExtendedAliasAddress },
4238 { &hf_h225_hopCount_1_31 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_INTEGER_1_31 },
4239 { &hf_h225_displayName , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DisplayName },
4240 { NULL, 0, 0, NULL }
4243 static int
4244 dissect_h225_Setup_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4245 h225_packet_info* h225_pi;
4246 contains_faststart = false;
4247 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4248 ett_h225_Setup_UUIE, Setup_UUIE_sequence);
4250 /* Add to packet info */
4251 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4252 h225_set_cs_type(h225_pi, H225_SETUP, contains_faststart);
4253 return offset;
4257 static const per_sequence_t FeatureSet_sequence[] = {
4258 { &hf_h225_replacementFeatureSet, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4259 { &hf_h225_neededFeatures , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4260 { &hf_h225_desiredFeatures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4261 { &hf_h225_supportedFeatures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4262 { NULL, 0, 0, NULL }
4266 dissect_h225_FeatureSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4267 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4268 ett_h225_FeatureSet, FeatureSet_sequence);
4270 return offset;
4274 static const per_sequence_t CallProceeding_UUIE_sequence[] = {
4275 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4276 { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4277 { &hf_h225_h245Address , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4278 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4279 { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245Security },
4280 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4281 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4282 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4283 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4284 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4285 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4286 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
4287 { NULL, 0, 0, NULL }
4290 static int
4291 dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4292 h225_packet_info* h225_pi;
4293 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4294 ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
4296 /* Add to packet info */
4297 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4298 h225_set_cs_type(h225_pi, H225_CALL_PROCEDING, contains_faststart);
4299 return offset;
4303 static const per_sequence_t Connect_UUIE_sequence[] = {
4304 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4305 { &hf_h225_h245Address , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4306 { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4307 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4308 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4309 { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245Security },
4310 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4311 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4312 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4313 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4314 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4315 { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language },
4316 { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4317 { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4318 { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4319 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4320 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4321 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
4322 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
4323 { &hf_h225_displayName , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DisplayName },
4324 { NULL, 0, 0, NULL }
4327 static int
4328 dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4329 h225_packet_info* h225_pi;
4330 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4331 ett_h225_Connect_UUIE, Connect_UUIE_sequence);
4333 /* Add to packet info */
4334 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4335 h225_set_cs_type(h225_pi, H225_CONNECT, contains_faststart);
4336 return offset;
4340 static const per_sequence_t Alerting_UUIE_sequence[] = {
4341 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4342 { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4343 { &hf_h225_h245Address , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4344 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4345 { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245Security },
4346 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4347 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4348 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4349 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4350 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4351 { &hf_h225_alertingAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4352 { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4353 { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4354 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4355 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4356 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
4357 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
4358 { &hf_h225_displayName , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DisplayName },
4359 { NULL, 0, 0, NULL }
4362 static int
4363 dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4364 h225_packet_info* h225_pi;
4365 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4366 ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
4368 /* Add to packet info */
4369 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4370 h225_set_cs_type(h225_pi, H225_ALERTING, contains_faststart);
4371 return offset;
4375 static const per_sequence_t Information_UUIE_sequence[] = {
4376 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4377 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4378 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4379 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4380 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4381 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4382 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
4383 { NULL, 0, 0, NULL }
4386 static int
4387 dissect_h225_Information_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4388 h225_packet_info* h225_pi;
4389 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4390 ett_h225_Information_UUIE, Information_UUIE_sequence);
4392 /* Add to packet info */
4393 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4394 h225_set_cs_type(h225_pi, H225_INFORMATION, false);
4395 return offset;
4399 static const value_string h225_SecurityErrors_vals[] = {
4400 { 0, "securityWrongSyncTime" },
4401 { 1, "securityReplay" },
4402 { 2, "securityWrongGeneralID" },
4403 { 3, "securityWrongSendersID" },
4404 { 4, "securityIntegrityFailed" },
4405 { 5, "securityWrongOID" },
4406 { 6, "securityDHmismatch" },
4407 { 7, "securityCertificateExpired" },
4408 { 8, "securityCertificateDateInvalid" },
4409 { 9, "securityCertificateRevoked" },
4410 { 10, "securityCertificateNotReadable" },
4411 { 11, "securityCertificateSignatureInvalid" },
4412 { 12, "securityCertificateMissing" },
4413 { 13, "securityCertificateIncomplete" },
4414 { 14, "securityUnsupportedCertificateAlgOID" },
4415 { 15, "securityUnknownCA" },
4416 { 0, NULL }
4419 static const per_choice_t SecurityErrors_choice[] = {
4420 { 0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4421 { 1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4422 { 2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4423 { 3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4424 { 4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4425 { 5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4426 { 6, &hf_h225_securityDHmismatch, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4427 { 7, &hf_h225_securityCertificateExpired, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4428 { 8, &hf_h225_securityCertificateDateInvalid, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4429 { 9, &hf_h225_securityCertificateRevoked, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4430 { 10, &hf_h225_securityCertificateNotReadable, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4431 { 11, &hf_h225_securityCertificateSignatureInvalid, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4432 { 12, &hf_h225_securityCertificateMissing, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4433 { 13, &hf_h225_securityCertificateIncomplete, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4434 { 14, &hf_h225_securityUnsupportedCertificateAlgOID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4435 { 15, &hf_h225_securityUnknownCA, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4436 { 0, NULL, 0, NULL }
4439 static int
4440 dissect_h225_SecurityErrors(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4441 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4442 ett_h225_SecurityErrors, SecurityErrors_choice,
4443 NULL);
4445 return offset;
4449 const value_string h225_ReleaseCompleteReason_vals[] = {
4450 { 0, "noBandwidth" },
4451 { 1, "gatekeeperResources" },
4452 { 2, "unreachableDestination" },
4453 { 3, "destinationRejection" },
4454 { 4, "invalidRevision" },
4455 { 5, "noPermission" },
4456 { 6, "unreachableGatekeeper" },
4457 { 7, "gatewayResources" },
4458 { 8, "badFormatAddress" },
4459 { 9, "adaptiveBusy" },
4460 { 10, "inConf" },
4461 { 11, "undefinedReason" },
4462 { 12, "facilityCallDeflection" },
4463 { 13, "securityDenied" },
4464 { 14, "calledPartyNotRegistered" },
4465 { 15, "callerNotRegistered" },
4466 { 16, "newConnectionNeeded" },
4467 { 17, "nonStandardReason" },
4468 { 18, "replaceWithConferenceInvite" },
4469 { 19, "genericDataReason" },
4470 { 20, "neededFeatureNotSupported" },
4471 { 21, "tunnelledSignallingRejected" },
4472 { 22, "invalidCID" },
4473 { 23, "securityError" },
4474 { 24, "hopCountExceeded" },
4475 { 0, NULL }
4478 static const per_choice_t ReleaseCompleteReason_choice[] = {
4479 { 0, &hf_h225_noBandwidth , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4480 { 1, &hf_h225_gatekeeperResources, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4481 { 2, &hf_h225_unreachableDestination, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4482 { 3, &hf_h225_destinationRejection, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4483 { 4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4484 { 5, &hf_h225_noPermission , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4485 { 6, &hf_h225_unreachableGatekeeper, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4486 { 7, &hf_h225_gatewayResources, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4487 { 8, &hf_h225_badFormatAddress, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4488 { 9, &hf_h225_adaptiveBusy , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4489 { 10, &hf_h225_inConf , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4490 { 11, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4491 { 12, &hf_h225_facilityCallDeflection, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4492 { 13, &hf_h225_securityDenied , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4493 { 14, &hf_h225_calledPartyNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4494 { 15, &hf_h225_callerNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4495 { 16, &hf_h225_newConnectionNeeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4496 { 17, &hf_h225_nonStandardReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardParameter },
4497 { 18, &hf_h225_replaceWithConferenceInvite, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ConferenceIdentifier },
4498 { 19, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4499 { 20, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4500 { 21, &hf_h225_tunnelledSignallingRejected, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4501 { 22, &hf_h225_invalidCID , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4502 { 23, &hf_h225_rLC_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
4503 { 24, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4504 { 0, NULL, 0, NULL }
4508 dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4509 int32_t value;
4510 h225_packet_info* h225_pi;
4511 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4513 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4514 ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice,
4515 &value);
4517 if (h225_pi != NULL) {
4518 h225_pi->reason = value;
4521 return offset;
4525 static const per_sequence_t ReleaseComplete_UUIE_sequence[] = {
4526 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4527 { &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ReleaseCompleteReason },
4528 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4529 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4530 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4531 { &hf_h225_busyAddress , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4532 { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4533 { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4534 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
4535 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4536 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
4537 { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointType },
4538 { &hf_h225_displayName , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DisplayName },
4539 { NULL, 0, 0, NULL }
4542 static int
4543 dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4544 h225_packet_info* h225_pi;
4545 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4546 ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
4548 /* Add to packet info */
4549 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4550 h225_set_cs_type(h225_pi, H225_RELEASE_COMPLET, false);
4551 return offset;
4555 const value_string FacilityReason_vals[] = {
4556 { 0, "routeCallToGatekeeper" },
4557 { 1, "callForwarded" },
4558 { 2, "routeCallToMC" },
4559 { 3, "undefinedReason" },
4560 { 4, "conferenceListChoice" },
4561 { 5, "startH245" },
4562 { 6, "noH245" },
4563 { 7, "newTokens" },
4564 { 8, "featureSetUpdate" },
4565 { 9, "forwardedElements" },
4566 { 10, "transportedInformation" },
4567 { 0, NULL }
4570 static const per_choice_t FacilityReason_choice[] = {
4571 { 0, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4572 { 1, &hf_h225_callForwarded , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4573 { 2, &hf_h225_routeCallToMC , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4574 { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
4575 { 4, &hf_h225_conferenceListChoice, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4576 { 5, &hf_h225_startH245 , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4577 { 6, &hf_h225_noH245 , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4578 { 7, &hf_h225_newTokens , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4579 { 8, &hf_h225_featureSetUpdate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4580 { 9, &hf_h225_forwardedElements, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4581 { 10, &hf_h225_transportedInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4582 { 0, NULL, 0, NULL }
4585 static int
4586 dissect_h225_FacilityReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4587 int32_t value;
4588 h225_packet_info* h225_pi;
4589 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4591 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4592 ett_h225_FacilityReason, FacilityReason_choice,
4593 &value);
4595 if (h225_pi != NULL) {
4596 h225_pi->reason = value;
4599 return offset;
4603 static const per_sequence_t ConferenceList_sequence[] = {
4604 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ConferenceIdentifier },
4605 { &hf_h225_conferenceAlias, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
4606 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
4607 { NULL, 0, 0, NULL }
4610 static int
4611 dissect_h225_ConferenceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4612 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4613 ett_h225_ConferenceList, ConferenceList_sequence);
4615 return offset;
4619 static const per_sequence_t SEQUENCE_OF_ConferenceList_sequence_of[1] = {
4620 { &hf_h225_conferences_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceList },
4623 static int
4624 dissect_h225_SEQUENCE_OF_ConferenceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4625 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4626 ett_h225_SEQUENCE_OF_ConferenceList, SEQUENCE_OF_ConferenceList_sequence_of);
4628 return offset;
4632 static const per_sequence_t Facility_UUIE_sequence[] = {
4633 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4634 { &hf_h225_alternativeAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
4635 { &hf_h225_alternativeAliasAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4636 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ConferenceIdentifier },
4637 { &hf_h225_facilityReason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_FacilityReason },
4638 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4639 { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4640 { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AliasAddress },
4641 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4642 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4643 { &hf_h225_conferences , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ConferenceList },
4644 { &hf_h225_h245Address , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4645 { &hf_h225_fastStart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FastStart },
4646 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4647 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4648 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4649 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4650 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
4651 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
4652 { &hf_h225_uUIE_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointType },
4653 { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245Security },
4654 { NULL, 0, 0, NULL }
4657 static int
4658 dissect_h225_Facility_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4659 h225_packet_info* h225_pi;
4660 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4661 ett_h225_Facility_UUIE, Facility_UUIE_sequence);
4663 /* Add to packet info */
4664 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4665 h225_set_cs_type(h225_pi, H225_FACILITY, false);
4666 return offset;
4670 static const per_sequence_t Progress_UUIE_sequence[] = {
4671 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4672 { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4673 { &hf_h225_h245Address , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245TransportAddress },
4674 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4675 { &hf_h225_h245SecurityMode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_H245Security },
4676 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4677 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4678 { &hf_h225_fastStart , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_FastStart },
4679 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4680 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4681 { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
4682 { NULL, 0, 0, NULL }
4685 static int
4686 dissect_h225_Progress_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4687 h225_packet_info* h225_pi;
4688 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4689 ett_h225_Progress_UUIE, Progress_UUIE_sequence);
4691 /* Add to packet info */
4692 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4693 h225_set_cs_type(h225_pi, H225_PROGRESS, contains_faststart);
4694 return offset;
4699 static int
4700 dissect_h225_T_empty_flg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4701 h225_packet_info* h225_pi;
4702 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
4704 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4705 if (h225_pi != NULL) {
4706 h225_pi->cs_type = H225_EMPTY;
4708 return offset;
4712 static const per_sequence_t Status_UUIE_sequence[] = {
4713 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4714 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4715 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4716 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4717 { NULL, 0, 0, NULL }
4720 static int
4721 dissect_h225_Status_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4722 h225_packet_info* h225_pi;
4723 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4724 ett_h225_Status_UUIE, Status_UUIE_sequence);
4726 /* Add to packet info */
4727 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4728 h225_set_cs_type(h225_pi, H225_STATUS, false);
4729 return offset;
4733 static const per_sequence_t StatusInquiry_UUIE_sequence[] = {
4734 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4735 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4736 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4737 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4738 { NULL, 0, 0, NULL }
4741 static int
4742 dissect_h225_StatusInquiry_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4743 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4744 ett_h225_StatusInquiry_UUIE, StatusInquiry_UUIE_sequence);
4746 return offset;
4750 static const per_sequence_t SetupAcknowledge_UUIE_sequence[] = {
4751 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4752 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4753 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4754 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4755 { NULL, 0, 0, NULL }
4758 static int
4759 dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4760 h225_packet_info* h225_pi;
4761 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4762 ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
4764 /* Add to packet info */
4765 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4766 h225_set_cs_type(h225_pi, H225_SETUP_ACK, false);
4767 return offset;
4771 static const per_sequence_t Notify_UUIE_sequence[] = {
4772 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4773 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4774 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
4775 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4776 { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
4777 { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_PresentationIndicator },
4778 { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ScreeningIndicator },
4779 { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointType },
4780 { &hf_h225_displayName , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_DisplayName },
4781 { NULL, 0, 0, NULL }
4784 static int
4785 dissect_h225_Notify_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4786 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4787 ett_h225_Notify_UUIE, Notify_UUIE_sequence);
4789 return offset;
4793 const value_string T_h323_message_body_vals[] = {
4794 { 0, "setup" },
4795 { 1, "callProceeding" },
4796 { 2, "connect" },
4797 { 3, "alerting" },
4798 { 4, "information" },
4799 { 5, "releaseComplete" },
4800 { 6, "facility" },
4801 { 7, "progress" },
4802 { 8, "empty" },
4803 { 9, "status" },
4804 { 10, "statusInquiry" },
4805 { 11, "setupAcknowledge" },
4806 { 12, "notify" },
4807 { 0, NULL }
4810 static const per_choice_t T_h323_message_body_choice[] = {
4811 { 0, &hf_h225_setup , ASN1_EXTENSION_ROOT , dissect_h225_Setup_UUIE },
4812 { 1, &hf_h225_callProceeding , ASN1_EXTENSION_ROOT , dissect_h225_CallProceeding_UUIE },
4813 { 2, &hf_h225_connect , ASN1_EXTENSION_ROOT , dissect_h225_Connect_UUIE },
4814 { 3, &hf_h225_alerting , ASN1_EXTENSION_ROOT , dissect_h225_Alerting_UUIE },
4815 { 4, &hf_h225_information , ASN1_EXTENSION_ROOT , dissect_h225_Information_UUIE },
4816 { 5, &hf_h225_releaseComplete, ASN1_EXTENSION_ROOT , dissect_h225_ReleaseComplete_UUIE },
4817 { 6, &hf_h225_facility , ASN1_EXTENSION_ROOT , dissect_h225_Facility_UUIE },
4818 { 7, &hf_h225_progress , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Progress_UUIE },
4819 { 8, &hf_h225_empty_flg , ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_empty_flg },
4820 { 9, &hf_h225_status , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Status_UUIE },
4821 { 10, &hf_h225_statusInquiry , ASN1_NOT_EXTENSION_ROOT, dissect_h225_StatusInquiry_UUIE },
4822 { 11, &hf_h225_setupAcknowledge, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SetupAcknowledge_UUIE },
4823 { 12, &hf_h225_notify , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Notify_UUIE },
4824 { 0, NULL, 0, NULL }
4827 static int
4828 dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4829 int32_t message_body_val;
4830 h225_packet_info* h225_pi;
4832 contains_faststart = false;
4833 call_id_guid = NULL;
4834 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4835 ett_h225_T_h323_message_body, T_h323_message_body_choice,
4836 &message_body_val);
4838 col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %s ",
4839 val_to_str_const(message_body_val, T_h323_message_body_vals, "<unknown>"));
4841 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4842 if (h225_pi != NULL) {
4843 if (h225_pi->msg_type == H225_CS) {
4844 /* Don't override msg_tag value from IRR */
4845 h225_pi->msg_tag = message_body_val;
4848 if (call_id_guid) {
4849 h225_pi->guid = *call_id_guid;
4853 if (contains_faststart == true )
4855 col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
4858 col_set_fence(actx->pinfo->cinfo,COL_INFO);
4861 return offset;
4866 static int
4867 dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4868 tvbuff_t *h4501_tvb = NULL;
4870 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4871 NO_BOUND, NO_BOUND, false, &h4501_tvb);
4873 if (h4501_tvb && tvb_reported_length(h4501_tvb)) {
4874 call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree);
4877 return offset;
4881 static const per_sequence_t T_h4501SupplementaryService_sequence_of[1] = {
4882 { &hf_h225_h4501SupplementaryService_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_h4501SupplementaryService_item },
4885 static int
4886 dissect_h225_T_h4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4887 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4888 ett_h225_T_h4501SupplementaryService, T_h4501SupplementaryService_sequence_of);
4890 return offset;
4895 static int
4896 dissect_h225_T_h245Tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4897 h225_packet_info* h225_pi;
4898 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
4899 if (h225_pi != NULL) {
4900 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &(h225_pi->is_h245Tunneling));
4903 return offset;
4908 static int
4909 dissect_h225_H245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4910 tvbuff_t *h245_tvb = NULL;
4912 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4913 NO_BOUND, NO_BOUND, false, &h245_tvb);
4915 next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4917 return offset;
4921 static const per_sequence_t H245Control_sequence_of[1] = {
4922 { &hf_h225_H245Control_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_H245Control_item },
4925 static int
4926 dissect_h225_H245Control(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4927 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4928 ett_h225_H245Control, H245Control_sequence_of);
4930 return offset;
4934 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
4935 { &hf_h225_nonStandardControl_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
4938 static int
4939 dissect_h225_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4940 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4941 ett_h225_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
4943 return offset;
4947 static const per_sequence_t CallLinkage_sequence[] = {
4948 { &hf_h225_globalCallId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GloballyUniqueID },
4949 { &hf_h225_threadId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GloballyUniqueID },
4950 { NULL, 0, 0, NULL }
4953 static int
4954 dissect_h225_CallLinkage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4955 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4956 ett_h225_CallLinkage, CallLinkage_sequence);
4958 return offset;
4963 static int
4964 dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4965 tvbuff_t *next_tvb = NULL;
4967 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4968 NO_BOUND, NO_BOUND, false, &next_tvb);
4970 next_tvb_add_handle(tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
4972 return offset;
4976 static const per_sequence_t T_messageContent_sequence_of[1] = {
4977 { &hf_h225_messageContent_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent_item },
4980 static int
4981 dissect_h225_T_messageContent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4982 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4983 ett_h225_T_messageContent, T_messageContent_sequence_of);
4985 return offset;
4989 static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
4990 { &hf_h225_tunnelledProtocolID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
4991 { &hf_h225_messageContent , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent },
4992 { &hf_h225_tunnellingRequired, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
4993 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
4994 { NULL, 0, 0, NULL }
4997 static int
4998 dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4999 tp_handle = NULL;
5000 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5001 ett_h225_T_tunnelledSignallingMessage, T_tunnelledSignallingMessage_sequence);
5003 return offset;
5008 static int
5009 dissect_h225_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5010 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5011 NO_BOUND, NO_BOUND, false, NULL);
5013 return offset;
5017 static const per_sequence_t StimulusControl_sequence[] = {
5018 { &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5019 { &hf_h225_isText , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5020 { &hf_h225_h248Message , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_OCTET_STRING },
5021 { NULL, 0, 0, NULL }
5024 static int
5025 dissect_h225_StimulusControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5026 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5027 ett_h225_StimulusControl, StimulusControl_sequence);
5029 return offset;
5033 static const per_sequence_t H323_UU_PDU_sequence[] = {
5034 { &hf_h225_h323_message_body, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h323_message_body },
5035 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5036 { &hf_h225_h4501SupplementaryService, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_h4501SupplementaryService },
5037 { &hf_h225_h245Tunnelling , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_T_h245Tunnelling },
5038 { &hf_h225_h245Control , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_H245Control },
5039 { &hf_h225_nonStandardControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_NonStandardParameter },
5040 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
5041 { &hf_h225_tunnelledSignallingMessage, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_tunnelledSignallingMessage },
5042 { &hf_h225_provisionalRespToH245Tunnelling, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5043 { &hf_h225_stimulusControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_StimulusControl },
5044 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
5045 { NULL, 0, 0, NULL }
5048 static int
5049 dissect_h225_H323_UU_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5050 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5051 ett_h225_H323_UU_PDU, H323_UU_PDU_sequence);
5053 return offset;
5058 static int
5059 dissect_h225_OCTET_STRING_SIZE_1_131(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5060 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5061 1, 131, false, NULL);
5063 return offset;
5067 static const per_sequence_t T_user_data_sequence[] = {
5068 { &hf_h225_protocol_discriminator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
5069 { &hf_h225_user_information, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_1_131 },
5070 { NULL, 0, 0, NULL }
5073 static int
5074 dissect_h225_T_user_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5075 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5076 ett_h225_T_user_data, T_user_data_sequence);
5078 return offset;
5082 static const per_sequence_t H323_UserInformation_sequence[] = {
5083 { &hf_h225_h323_uu_pdu , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
5084 { &hf_h225_user_data , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_user_data },
5085 { NULL, 0, 0, NULL }
5088 static int
5089 dissect_h225_H323_UserInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5090 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5091 ett_h225_H323_UserInformation, H323_UserInformation_sequence);
5093 return offset;
5097 static const per_sequence_t T_range_sequence[] = {
5098 { &hf_h225_startOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5099 { &hf_h225_endOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5100 { NULL, 0, 0, NULL }
5103 static int
5104 dissect_h225_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5105 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5106 ett_h225_T_range, T_range_sequence);
5108 return offset;
5112 static const value_string h225_AddressPattern_vals[] = {
5113 { 0, "wildcard" },
5114 { 1, "range" },
5115 { 0, NULL }
5118 static const per_choice_t AddressPattern_choice[] = {
5119 { 0, &hf_h225_wildcard , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
5120 { 1, &hf_h225_range , ASN1_EXTENSION_ROOT , dissect_h225_T_range },
5121 { 0, NULL, 0, NULL }
5124 static int
5125 dissect_h225_AddressPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5126 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5127 ett_h225_AddressPattern, AddressPattern_choice,
5128 NULL);
5130 return offset;
5134 static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
5135 { &hf_h225_callSignalAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5138 static int
5139 dissect_h225_SEQUENCE_OF_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5140 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5141 ett_h225_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
5143 return offset;
5148 static int
5149 dissect_h225_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5150 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5151 0U, 127U, NULL, false);
5153 return offset;
5157 static const per_sequence_t AlternateTransportAddresses_sequence[] = {
5158 { &hf_h225_annexE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportAddress },
5159 { &hf_h225_sctp , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportAddress },
5160 { NULL, 0, 0, NULL }
5164 dissect_h225_AlternateTransportAddresses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5165 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5166 ett_h225_AlternateTransportAddresses, AlternateTransportAddresses_sequence);
5168 return offset;
5172 static const per_sequence_t Endpoint_sequence[] = {
5173 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5174 { &hf_h225_aliasAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
5175 { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportAddress },
5176 { &hf_h225_rasAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportAddress },
5177 { &hf_h225_endpointType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointType },
5178 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
5179 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5180 { &hf_h225_priority , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_INTEGER_0_127 },
5181 { &hf_h225_remoteExtensionAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
5182 { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
5183 { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateTransportAddresses },
5184 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
5185 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
5186 { NULL, 0, 0, NULL }
5189 static int
5190 dissect_h225_Endpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5191 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5192 ett_h225_Endpoint, Endpoint_sequence);
5194 return offset;
5198 static const value_string h225_UseSpecifiedTransport_vals[] = {
5199 { 0, "tcp" },
5200 { 1, "annexE" },
5201 { 2, "sctp" },
5202 { 0, NULL }
5205 static const per_choice_t UseSpecifiedTransport_choice[] = {
5206 { 0, &hf_h225_tcp , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5207 { 1, &hf_h225_annexE_flg , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5208 { 2, &hf_h225_sctp_flg , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5209 { 0, NULL, 0, NULL }
5212 static int
5213 dissect_h225_UseSpecifiedTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5214 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5215 ett_h225_UseSpecifiedTransport, UseSpecifiedTransport_choice,
5216 NULL);
5218 return offset;
5222 static const per_sequence_t AlternateGK_sequence[] = {
5223 { &hf_h225_alternateGK_rasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5224 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
5225 { &hf_h225_needToRegister , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5226 { &hf_h225_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_127 },
5227 { NULL, 0, 0, NULL }
5230 static int
5231 dissect_h225_AlternateGK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5232 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5233 ett_h225_AlternateGK, AlternateGK_sequence);
5235 return offset;
5239 static const per_sequence_t SEQUENCE_OF_AlternateGK_sequence_of[1] = {
5240 { &hf_h225_alternateGatekeeper_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AlternateGK },
5243 static int
5244 dissect_h225_SEQUENCE_OF_AlternateGK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5245 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5246 ett_h225_SEQUENCE_OF_AlternateGK, SEQUENCE_OF_AlternateGK_sequence_of);
5248 return offset;
5252 static const per_sequence_t AltGKInfo_sequence[] = {
5253 { &hf_h225_alternateGatekeeper, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AlternateGK },
5254 { &hf_h225_altGKisPermanent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5255 { NULL, 0, 0, NULL }
5258 static int
5259 dissect_h225_AltGKInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5260 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5261 ett_h225_AltGKInfo, AltGKInfo_sequence);
5263 return offset;
5267 static const value_string h225_SecurityErrors2_vals[] = {
5268 { 0, "securityWrongSyncTime" },
5269 { 1, "securityReplay" },
5270 { 2, "securityWrongGeneralID" },
5271 { 3, "securityWrongSendersID" },
5272 { 4, "securityIntegrityFailed" },
5273 { 5, "securityWrongOID" },
5274 { 0, NULL }
5277 static const per_choice_t SecurityErrors2_choice[] = {
5278 { 0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5279 { 1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5280 { 2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5281 { 3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5282 { 4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5283 { 5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5284 { 0, NULL, 0, NULL }
5287 static int
5288 dissect_h225_SecurityErrors2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5289 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5290 ett_h225_SecurityErrors2, SecurityErrors2_choice,
5291 NULL);
5293 return offset;
5298 static int
5299 dissect_h225_RequestSeqNum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5300 h225_packet_info* h225_pi;
5301 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5302 if (h225_pi != NULL) {
5303 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5304 1U, 65535U, &(h225_pi->requestSeqNum), false);
5307 return offset;
5313 dissect_h225_TimeToLive(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5314 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5315 1U, 4294967295U, NULL, false);
5317 return offset;
5322 static int
5323 dissect_h225_H248PackagesDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5324 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5325 NO_BOUND, NO_BOUND, false, NULL);
5327 return offset;
5331 static const value_string h225_EncryptIntAlg_vals[] = {
5332 { 0, "nonStandard" },
5333 { 1, "isoAlgorithm" },
5334 { 0, NULL }
5337 static const per_choice_t EncryptIntAlg_choice[] = {
5338 { 0, &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
5339 { 1, &hf_h225_isoAlgorithm , ASN1_EXTENSION_ROOT , dissect_h225_OBJECT_IDENTIFIER },
5340 { 0, NULL, 0, NULL }
5343 static int
5344 dissect_h225_EncryptIntAlg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5345 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5346 ett_h225_EncryptIntAlg, EncryptIntAlg_choice,
5347 NULL);
5349 return offset;
5353 static const value_string h225_NonIsoIntegrityMechanism_vals[] = {
5354 { 0, "hMAC-MD5" },
5355 { 1, "hMAC-iso10118-2-s" },
5356 { 2, "hMAC-iso10118-2-l" },
5357 { 3, "hMAC-iso10118-3" },
5358 { 0, NULL }
5361 static const per_choice_t NonIsoIntegrityMechanism_choice[] = {
5362 { 0, &hf_h225_hMAC_MD5 , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5363 { 1, &hf_h225_hMAC_iso10118_2_s, ASN1_EXTENSION_ROOT , dissect_h225_EncryptIntAlg },
5364 { 2, &hf_h225_hMAC_iso10118_2_l, ASN1_EXTENSION_ROOT , dissect_h225_EncryptIntAlg },
5365 { 3, &hf_h225_hMAC_iso10118_3, ASN1_EXTENSION_ROOT , dissect_h225_OBJECT_IDENTIFIER },
5366 { 0, NULL, 0, NULL }
5369 static int
5370 dissect_h225_NonIsoIntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5371 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5372 ett_h225_NonIsoIntegrityMechanism, NonIsoIntegrityMechanism_choice,
5373 NULL);
5375 return offset;
5379 const value_string h225_IntegrityMechanism_vals[] = {
5380 { 0, "nonStandard" },
5381 { 1, "digSig" },
5382 { 2, "iso9797" },
5383 { 3, "nonIsoIM" },
5384 { 0, NULL }
5387 static const per_choice_t IntegrityMechanism_choice[] = {
5388 { 0, &hf_h225_nonStandard , ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
5389 { 1, &hf_h225_digSig , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5390 { 2, &hf_h225_iso9797 , ASN1_EXTENSION_ROOT , dissect_h225_OBJECT_IDENTIFIER },
5391 { 3, &hf_h225_nonIsoIM , ASN1_EXTENSION_ROOT , dissect_h225_NonIsoIntegrityMechanism },
5392 { 0, NULL, 0, NULL }
5396 dissect_h225_IntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5397 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5398 ett_h225_IntegrityMechanism, IntegrityMechanism_choice,
5399 NULL);
5401 return offset;
5406 static int
5407 dissect_h225_BIT_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5408 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5409 NO_BOUND, NO_BOUND, false, NULL, 0, NULL, NULL);
5411 return offset;
5415 static const per_sequence_t ICV_sequence[] = {
5416 { &hf_h225_algorithmOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5417 { &hf_h225_icv , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_BIT_STRING },
5418 { NULL, 0, 0, NULL }
5422 dissect_h225_ICV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5423 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5424 ett_h225_ICV, ICV_sequence);
5426 return offset;
5430 static const per_sequence_t CapacityReportingCapability_sequence[] = {
5431 { &hf_h225_canReportCallCapacity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5432 { NULL, 0, 0, NULL }
5435 static int
5436 dissect_h225_CapacityReportingCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5437 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5438 ett_h225_CapacityReportingCapability, CapacityReportingCapability_sequence);
5440 return offset;
5444 static const per_sequence_t CapacityReportingSpecification_when_sequence[] = {
5445 { &hf_h225_callStart , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5446 { &hf_h225_callEnd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5447 { NULL, 0, 0, NULL }
5450 static int
5451 dissect_h225_CapacityReportingSpecification_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5452 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5453 ett_h225_CapacityReportingSpecification_when, CapacityReportingSpecification_when_sequence);
5455 return offset;
5459 static const per_sequence_t CapacityReportingSpecification_sequence[] = {
5460 { &hf_h225_capacityReportingSpecification_when, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CapacityReportingSpecification_when },
5461 { NULL, 0, 0, NULL }
5464 static int
5465 dissect_h225_CapacityReportingSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5466 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5467 ett_h225_CapacityReportingSpecification, CapacityReportingSpecification_sequence);
5469 return offset;
5473 static const per_sequence_t RasUsageInfoTypes_sequence[] = {
5474 { &hf_h225_nonStandardUsageTypes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5475 { &hf_h225_startTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5476 { &hf_h225_endTime_flg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5477 { &hf_h225_terminationCause_flg, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5478 { NULL, 0, 0, NULL }
5481 static int
5482 dissect_h225_RasUsageInfoTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5483 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5484 ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
5486 return offset;
5490 static const per_sequence_t RasUsageSpecification_when_sequence[] = {
5491 { &hf_h225_start , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5492 { &hf_h225_end , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5493 { &hf_h225_inIrr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5494 { NULL, 0, 0, NULL }
5497 static int
5498 dissect_h225_RasUsageSpecification_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5499 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5500 ett_h225_RasUsageSpecification_when, RasUsageSpecification_when_sequence);
5502 return offset;
5506 static const per_sequence_t RasUsageSpecificationcallStartingPoint_sequence[] = {
5507 { &hf_h225_alerting_flg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5508 { &hf_h225_connect_flg , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NULL },
5509 { NULL, 0, 0, NULL }
5512 static int
5513 dissect_h225_RasUsageSpecificationcallStartingPoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5514 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5515 ett_h225_RasUsageSpecificationcallStartingPoint, RasUsageSpecificationcallStartingPoint_sequence);
5517 return offset;
5521 static const per_sequence_t RasUsageSpecification_sequence[] = {
5522 { &hf_h225_when , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification_when },
5523 { &hf_h225_ras_callStartingPoint, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_RasUsageSpecificationcallStartingPoint },
5524 { &hf_h225_required , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageInfoTypes },
5525 { NULL, 0, 0, NULL }
5528 static int
5529 dissect_h225_RasUsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5530 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5531 ett_h225_RasUsageSpecification, RasUsageSpecification_sequence);
5533 return offset;
5537 static const per_sequence_t RasUsageInformation_sequence[] = {
5538 { &hf_h225_nonStandardUsageFields, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5539 { &hf_h225_alertingTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
5540 { &hf_h225_connectTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
5541 { &hf_h225_endTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
5542 { NULL, 0, 0, NULL }
5545 static int
5546 dissect_h225_RasUsageInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5547 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5548 ett_h225_RasUsageInformation, RasUsageInformation_sequence);
5550 return offset;
5555 static int
5556 dissect_h225_OCTET_STRING_SIZE_2_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5557 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5558 2, 32, false, NULL);
5560 return offset;
5564 static const value_string h225_CallTerminationCause_vals[] = {
5565 { 0, "releaseCompleteReason" },
5566 { 1, "releaseCompleteCauseIE" },
5567 { 0, NULL }
5570 static const per_choice_t CallTerminationCause_choice[] = {
5571 { 0, &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT , dissect_h225_ReleaseCompleteReason },
5572 { 1, &hf_h225_releaseCompleteCauseIE, ASN1_EXTENSION_ROOT , dissect_h225_OCTET_STRING_SIZE_2_32 },
5573 { 0, NULL, 0, NULL }
5576 static int
5577 dissect_h225_CallTerminationCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5578 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5579 ett_h225_CallTerminationCause, CallTerminationCause_choice,
5580 NULL);
5582 return offset;
5586 static const per_sequence_t TransportChannelInfo_sequence[] = {
5587 { &hf_h225_sendAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
5588 { &hf_h225_recvAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
5589 { NULL, 0, 0, NULL }
5593 dissect_h225_TransportChannelInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5594 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5595 ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
5597 return offset;
5601 static const per_sequence_t BandwidthDetails_sequence[] = {
5602 { &hf_h225_sender , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5603 { &hf_h225_multicast , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5604 { &hf_h225_bandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
5605 { &hf_h225_rtcpAddresses , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5606 { NULL, 0, 0, NULL }
5609 static int
5610 dissect_h225_BandwidthDetails(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5611 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5612 ett_h225_BandwidthDetails, BandwidthDetails_sequence);
5614 return offset;
5618 static const per_sequence_t CallCreditCapability_sequence[] = {
5619 { &hf_h225_canDisplayAmountString, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BOOLEAN },
5620 { &hf_h225_canEnforceDurationLimit, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BOOLEAN },
5621 { NULL, 0, 0, NULL }
5624 static int
5625 dissect_h225_CallCreditCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5626 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5627 ett_h225_CallCreditCapability, CallCreditCapability_sequence);
5629 return offset;
5634 static int
5635 dissect_h225_PrintableString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5636 offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
5637 NO_BOUND, NO_BOUND, false,
5638 NULL);
5640 return offset;
5645 static int
5646 dissect_h225_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5647 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5648 1U, 255U, NULL, false);
5650 return offset;
5654 static const per_sequence_t T_associatedSessionIds_sequence_of[1] = {
5655 { &hf_h225_associatedSessionIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5658 static int
5659 dissect_h225_T_associatedSessionIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5660 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5661 ett_h225_T_associatedSessionIds, T_associatedSessionIds_sequence_of);
5663 return offset;
5667 static const per_sequence_t RTPSession_sequence[] = {
5668 { &hf_h225_rtpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5669 { &hf_h225_rtcpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5670 { &hf_h225_cname , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PrintableString },
5671 { &hf_h225_ssrc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_4294967295 },
5672 { &hf_h225_sessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5673 { &hf_h225_associatedSessionIds, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_associatedSessionIds },
5674 { &hf_h225_multicast_flg , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5675 { &hf_h225_bandwidth , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BandWidth },
5676 { NULL, 0, 0, NULL }
5679 static int
5680 dissect_h225_RTPSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5681 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5682 ett_h225_RTPSession, RTPSession_sequence);
5684 return offset;
5688 static const value_string h225_RehomingModel_vals[] = {
5689 { 0, "gatekeeperBased" },
5690 { 1, "endpointBased" },
5691 { 0, NULL }
5694 static const per_choice_t RehomingModel_choice[] = {
5695 { 0, &hf_h225_gatekeeperBased, ASN1_NO_EXTENSIONS , dissect_h225_NULL },
5696 { 1, &hf_h225_endpointBased , ASN1_NO_EXTENSIONS , dissect_h225_NULL },
5697 { 0, NULL, 0, NULL }
5700 static int
5701 dissect_h225_RehomingModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5702 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5703 ett_h225_RehomingModel, RehomingModel_choice,
5704 NULL);
5706 return offset;
5710 static const per_sequence_t SEQUENCE_OF_Endpoint_sequence_of[1] = {
5711 { &hf_h225_alternateEndpoints_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_Endpoint },
5714 static int
5715 dissect_h225_SEQUENCE_OF_Endpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5716 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5717 ett_h225_SEQUENCE_OF_Endpoint, SEQUENCE_OF_Endpoint_sequence_of);
5719 return offset;
5723 static const per_sequence_t SEQUENCE_OF_AuthenticationMechanism_sequence_of[1] = {
5724 { &hf_h225_authenticationCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_AuthenticationMechanism },
5727 static int
5728 dissect_h225_SEQUENCE_OF_AuthenticationMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5729 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5730 ett_h225_SEQUENCE_OF_AuthenticationMechanism, SEQUENCE_OF_AuthenticationMechanism_sequence_of);
5732 return offset;
5736 static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
5737 { &hf_h225_algorithmOIDs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5740 static int
5741 dissect_h225_T_algorithmOIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5742 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5743 ett_h225_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
5745 return offset;
5749 static const per_sequence_t SEQUENCE_OF_IntegrityMechanism_sequence_of[1] = {
5750 { &hf_h225_integrity_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_IntegrityMechanism },
5753 static int
5754 dissect_h225_SEQUENCE_OF_IntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5755 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5756 ett_h225_SEQUENCE_OF_IntegrityMechanism, SEQUENCE_OF_IntegrityMechanism_sequence_of);
5758 return offset;
5762 static const per_sequence_t GatekeeperRequest_sequence[] = {
5763 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5764 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5765 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5766 { &hf_h225_gatekeeperRequest_rasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5767 { &hf_h225_endpointType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5768 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
5769 { &hf_h225_callServices , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_QseriesOptions },
5770 { &hf_h225_endpointAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
5771 { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
5772 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
5773 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5774 { &hf_h225_authenticationCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AuthenticationMechanism },
5775 { &hf_h225_algorithmOIDs , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_algorithmOIDs },
5776 { &hf_h225_integrity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5777 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
5778 { &hf_h225_supportsAltGK , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5779 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
5780 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
5781 { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5782 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
5783 { NULL, 0, 0, NULL }
5786 static int
5787 dissect_h225_GatekeeperRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5788 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5789 ett_h225_GatekeeperRequest, GatekeeperRequest_sequence);
5791 return offset;
5795 static const per_sequence_t GatekeeperConfirm_sequence[] = {
5796 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5797 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5798 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5799 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
5800 { &hf_h225_gatekeeperConfirm_rasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5801 { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AlternateGK },
5802 { &hf_h225_authenticationMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h235_AuthenticationMechanism },
5803 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
5804 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5805 { &hf_h225_algorithmOID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_OBJECT_IDENTIFIER },
5806 { &hf_h225_integrity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5807 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
5808 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
5809 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
5810 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
5811 { &hf_h225_rehomingModel , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RehomingModel },
5812 { NULL, 0, 0, NULL }
5815 static int
5816 dissect_h225_GatekeeperConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5817 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5818 ett_h225_GatekeeperConfirm, GatekeeperConfirm_sequence);
5820 return offset;
5824 const value_string GatekeeperRejectReason_vals[] = {
5825 { 0, "resourceUnavailable" },
5826 { 1, "terminalExcluded" },
5827 { 2, "invalidRevision" },
5828 { 3, "undefinedReason" },
5829 { 4, "securityDenial" },
5830 { 5, "genericDataReason" },
5831 { 6, "neededFeatureNotSupported" },
5832 { 7, "securityError" },
5833 { 0, NULL }
5836 static const per_choice_t GatekeeperRejectReason_choice[] = {
5837 { 0, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5838 { 1, &hf_h225_terminalExcluded, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5839 { 2, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5840 { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5841 { 4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5842 { 5, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5843 { 6, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5844 { 7, &hf_h225_gkRej_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
5845 { 0, NULL, 0, NULL }
5848 static int
5849 dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5850 int32_t value;
5851 h225_packet_info* h225_pi;
5852 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
5854 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5855 ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice,
5856 &value);
5858 if (h225_pi != NULL) {
5859 h225_pi->reason = value;
5862 return offset;
5866 static const per_sequence_t GatekeeperReject_sequence[] = {
5867 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5868 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5869 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5870 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
5871 { &hf_h225_gatekeeperRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperRejectReason },
5872 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
5873 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
5874 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5875 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
5876 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
5877 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
5878 { NULL, 0, 0, NULL }
5881 static int
5882 dissect_h225_GatekeeperReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5883 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5884 ett_h225_GatekeeperReject, GatekeeperReject_sequence);
5886 return offset;
5890 static const per_sequence_t SEQUENCE_OF_AddressPattern_sequence_of[1] = {
5891 { &hf_h225_terminalAliasPattern_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AddressPattern },
5894 static int
5895 dissect_h225_SEQUENCE_OF_AddressPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5896 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5897 ett_h225_SEQUENCE_OF_AddressPattern, SEQUENCE_OF_AddressPattern_sequence_of);
5899 return offset;
5903 static const per_sequence_t SEQUENCE_OF_H248PackagesDescriptor_sequence_of[1] = {
5904 { &hf_h225_supportedH248Packages_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_H248PackagesDescriptor },
5907 static int
5908 dissect_h225_SEQUENCE_OF_H248PackagesDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5909 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5910 ett_h225_SEQUENCE_OF_H248PackagesDescriptor, SEQUENCE_OF_H248PackagesDescriptor_sequence_of);
5912 return offset;
5916 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = {
5917 { &hf_h225_qOSCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability },
5920 static int
5921 dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5922 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5923 ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of,
5924 1, 256, false);
5926 return offset;
5930 const value_string h225_TransportQOS_vals[] = {
5931 { 0, "endpointControlled" },
5932 { 1, "gatekeeperControlled" },
5933 { 2, "noControl" },
5934 { 3, "qOSCapabilities" },
5935 { 0, NULL }
5938 static const per_choice_t TransportQOS_choice[] = {
5939 { 0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5940 { 1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5941 { 2, &hf_h225_noControl , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
5942 { 3, &hf_h225_qOSCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability },
5943 { 0, NULL, 0, NULL }
5947 dissect_h225_TransportQOS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5948 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5949 ett_h225_TransportQOS, TransportQOS_choice,
5950 NULL);
5952 return offset;
5956 static const per_sequence_t RegistrationRequest_sequence[] = {
5957 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5958 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5959 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
5960 { &hf_h225_discoveryComplete, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5961 { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5962 { &hf_h225_rasAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
5963 { &hf_h225_terminalType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5964 { &hf_h225_terminalAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
5965 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
5966 { &hf_h225_endpointVendor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_VendorIdentifier },
5967 { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
5968 { &hf_h225_timeToLive , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TimeToLive },
5969 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
5970 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5971 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
5972 { &hf_h225_keepAlive , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5973 { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointIdentifier },
5974 { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5975 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5976 { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateTransportAddresses },
5977 { &hf_h225_additiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5978 { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AddressPattern },
5979 { &hf_h225_supportsAltGK , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5980 { &hf_h225_usageReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInfoTypes },
5981 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BOOLEAN },
5982 { &hf_h225_supportedH248Packages, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_H248PackagesDescriptor },
5983 { &hf_h225_callCreditCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCreditCapability },
5984 { &hf_h225_capacityReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CapacityReportingCapability },
5985 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
5986 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
5987 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
5988 { &hf_h225_restart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5989 { &hf_h225_supportsACFSequences, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
5990 { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5991 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
5992 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
5993 { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language },
5994 { NULL, 0, 0, NULL }
5997 static int
5998 dissect_h225_RegistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5999 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6000 ett_h225_RegistrationRequest, RegistrationRequest_sequence);
6002 return offset;
6007 static int
6008 dissect_h225_INTEGER_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6009 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6010 1U, 65535U, NULL, false);
6012 return offset;
6016 static const per_sequence_t T_preGrantedARQ_sequence[] = {
6017 { &hf_h225_makeCall , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6018 { &hf_h225_useGKCallSignalAddressToMakeCall, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6019 { &hf_h225_answerCall , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6020 { &hf_h225_useGKCallSignalAddressToAnswer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6021 { &hf_h225_irrFrequencyInCall, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_INTEGER_1_65535 },
6022 { &hf_h225_totalBandwidthRestriction, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BandWidth },
6023 { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateTransportAddresses },
6024 { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_UseSpecifiedTransport },
6025 { NULL, 0, 0, NULL }
6028 static int
6029 dissect_h225_T_preGrantedARQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6030 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6031 ett_h225_T_preGrantedARQ, T_preGrantedARQ_sequence);
6033 return offset;
6037 static const per_sequence_t SEQUENCE_OF_RasUsageSpecification_sequence_of[1] = {
6038 { &hf_h225_usageSpec_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification },
6041 static int
6042 dissect_h225_SEQUENCE_OF_RasUsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6043 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6044 ett_h225_SEQUENCE_OF_RasUsageSpecification, SEQUENCE_OF_RasUsageSpecification_sequence_of);
6046 return offset;
6050 static const per_sequence_t RegistrationConfirm_sequence[] = {
6051 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6052 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6053 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6054 { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6055 { &hf_h225_terminalAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6056 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6057 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6058 { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AlternateGK },
6059 { &hf_h225_timeToLive , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TimeToLive },
6060 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6061 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6062 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6063 { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6064 { &hf_h225_preGrantedARQ , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_preGrantedARQ },
6065 { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6066 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6067 { &hf_h225_supportsAdditiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
6068 { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AddressPattern },
6069 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6070 { &hf_h225_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6071 { &hf_h225_featureServerAlias, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AliasAddress },
6072 { &hf_h225_capacityReportingSpec, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CapacityReportingSpecification },
6073 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6074 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6075 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6076 { &hf_h225_rehomingModel , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RehomingModel },
6077 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
6078 { NULL, 0, 0, NULL }
6081 static int
6082 dissect_h225_RegistrationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6083 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6084 ett_h225_RegistrationConfirm, RegistrationConfirm_sequence);
6086 return offset;
6090 static const per_sequence_t T_invalidTerminalAliases_sequence[] = {
6091 { &hf_h225_terminalAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6092 { &hf_h225_terminalAliasPattern, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AddressPattern },
6093 { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6094 { NULL, 0, 0, NULL }
6097 static int
6098 dissect_h225_T_invalidTerminalAliases(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6099 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6100 ett_h225_T_invalidTerminalAliases, T_invalidTerminalAliases_sequence);
6102 return offset;
6106 const value_string RegistrationRejectReason_vals[] = {
6107 { 0, "discoveryRequired" },
6108 { 1, "invalidRevision" },
6109 { 2, "invalidCallSignalAddress" },
6110 { 3, "invalidRASAddress" },
6111 { 4, "duplicateAlias" },
6112 { 5, "invalidTerminalType" },
6113 { 6, "undefinedReason" },
6114 { 7, "transportNotSupported" },
6115 { 8, "transportQOSNotSupported" },
6116 { 9, "resourceUnavailable" },
6117 { 10, "invalidAlias" },
6118 { 11, "securityDenial" },
6119 { 12, "fullRegistrationRequired" },
6120 { 13, "additiveRegistrationNotSupported" },
6121 { 14, "invalidTerminalAliases" },
6122 { 15, "genericDataReason" },
6123 { 16, "neededFeatureNotSupported" },
6124 { 17, "securityError" },
6125 { 18, "registerWithAssignedGK" },
6126 { 0, NULL }
6129 static const per_choice_t RegistrationRejectReason_choice[] = {
6130 { 0, &hf_h225_discoveryRequired, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6131 { 1, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6132 { 2, &hf_h225_invalidCallSignalAddress, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6133 { 3, &hf_h225_invalidRASAddress, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6134 { 4, &hf_h225_duplicateAlias , ASN1_EXTENSION_ROOT , dissect_h225_SEQUENCE_OF_AliasAddress },
6135 { 5, &hf_h225_invalidTerminalType, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6136 { 6, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6137 { 7, &hf_h225_transportNotSupported, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6138 { 8, &hf_h225_transportQOSNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6139 { 9, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6140 { 10, &hf_h225_invalidAlias , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6141 { 11, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6142 { 12, &hf_h225_fullRegistrationRequired, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6143 { 13, &hf_h225_additiveRegistrationNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6144 { 14, &hf_h225_invalidTerminalAliases, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_invalidTerminalAliases },
6145 { 15, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6146 { 16, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6147 { 17, &hf_h225_reg_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
6148 { 18, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6149 { 0, NULL, 0, NULL }
6152 static int
6153 dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6154 int32_t value;
6155 h225_packet_info* h225_pi;
6156 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6158 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6159 ett_h225_RegistrationRejectReason, RegistrationRejectReason_choice,
6160 &value);
6162 if (h225_pi != NULL) {
6163 h225_pi->reason = value;
6166 return offset;
6170 static const per_sequence_t RegistrationReject_sequence[] = {
6171 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6172 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6173 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6174 { &hf_h225_registrationRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RegistrationRejectReason },
6175 { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6176 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
6177 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6178 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6179 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6180 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6181 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6182 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6183 { NULL, 0, 0, NULL }
6186 static int
6187 dissect_h225_RegistrationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6188 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6189 ett_h225_RegistrationReject, RegistrationReject_sequence);
6191 return offset;
6195 const value_string UnregRequestReason_vals[] = {
6196 { 0, "reregistrationRequired" },
6197 { 1, "ttlExpired" },
6198 { 2, "securityDenial" },
6199 { 3, "undefinedReason" },
6200 { 4, "maintenance" },
6201 { 5, "securityError" },
6202 { 6, "registerWithAssignedGK" },
6203 { 0, NULL }
6206 static const per_choice_t UnregRequestReason_choice[] = {
6207 { 0, &hf_h225_reregistrationRequired, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6208 { 1, &hf_h225_ttlExpired , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6209 { 2, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6210 { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6211 { 4, &hf_h225_maintenance , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6212 { 5, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6213 { 6, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6214 { 0, NULL, 0, NULL }
6217 static int
6218 dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6219 int32_t value;
6220 h225_packet_info* h225_pi;
6221 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6223 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6224 ett_h225_UnregRequestReason, UnregRequestReason_choice,
6225 &value);
6227 if (h225_pi != NULL) {
6228 h225_pi->reason = value;
6231 return offset;
6235 static const per_sequence_t UnregistrationRequest_sequence[] = {
6236 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6237 { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6238 { &hf_h225_endpointAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6239 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6240 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointIdentifier },
6241 { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
6242 { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6243 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6244 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6245 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6246 { &hf_h225_unregRequestReason, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_UnregRequestReason },
6247 { &hf_h225_endpointAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AddressPattern },
6248 { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6249 { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AlternateGK },
6250 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6251 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6252 { NULL, 0, 0, NULL }
6255 static int
6256 dissect_h225_UnregistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6257 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6258 ett_h225_UnregistrationRequest, UnregistrationRequest_sequence);
6260 return offset;
6264 static const per_sequence_t UnregistrationConfirm_sequence[] = {
6265 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6266 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6267 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6268 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6269 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6270 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6271 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6272 { NULL, 0, 0, NULL }
6275 static int
6276 dissect_h225_UnregistrationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6277 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6278 ett_h225_UnregistrationConfirm, UnregistrationConfirm_sequence);
6280 return offset;
6284 const value_string UnregRejectReason_vals[] = {
6285 { 0, "notCurrentlyRegistered" },
6286 { 1, "callInProgress" },
6287 { 2, "undefinedReason" },
6288 { 3, "permissionDenied" },
6289 { 4, "securityDenial" },
6290 { 5, "securityError" },
6291 { 0, NULL }
6294 static const per_choice_t UnregRejectReason_choice[] = {
6295 { 0, &hf_h225_notCurrentlyRegistered, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6296 { 1, &hf_h225_callInProgress , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6297 { 2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6298 { 3, &hf_h225_permissionDenied, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6299 { 4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6300 { 5, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6301 { 0, NULL, 0, NULL }
6304 static int
6305 dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6306 int32_t value;
6307 h225_packet_info* h225_pi;
6308 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6310 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6311 ett_h225_UnregRejectReason, UnregRejectReason_choice,
6312 &value);
6314 if (h225_pi != NULL) {
6315 h225_pi->reason = value;
6318 return offset;
6322 static const per_sequence_t UnregistrationReject_sequence[] = {
6323 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6324 { &hf_h225_unregRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_UnregRejectReason },
6325 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6326 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
6327 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6328 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6329 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6330 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6331 { NULL, 0, 0, NULL }
6334 static int
6335 dissect_h225_UnregistrationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6336 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6337 ett_h225_UnregistrationReject, UnregistrationReject_sequence);
6339 return offset;
6343 static const value_string h225_CallModel_vals[] = {
6344 { 0, "direct" },
6345 { 1, "gatekeeperRouted" },
6346 { 0, NULL }
6349 static const per_choice_t CallModel_choice[] = {
6350 { 0, &hf_h225_direct , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6351 { 1, &hf_h225_gatekeeperRouted, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6352 { 0, NULL, 0, NULL }
6355 static int
6356 dissect_h225_CallModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6357 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6358 ett_h225_CallModel, CallModel_choice,
6359 NULL);
6361 return offset;
6366 static int
6367 dissect_h225_DestinationInfo_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6368 h225_packet_info* h225_pi;
6370 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6371 if (h225_pi != NULL) {
6372 h225_pi->is_destinationInfo = true;
6374 offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
6376 return offset;
6380 static const per_sequence_t DestinationInfo_sequence_of[1] = {
6381 { &hf_h225_DestinationInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo_item },
6384 static int
6385 dissect_h225_DestinationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6386 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6387 ett_h225_DestinationInfo, DestinationInfo_sequence_of);
6389 return offset;
6393 static const per_sequence_t AdmissionRequest_sequence[] = {
6394 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6395 { &hf_h225_callType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
6396 { &hf_h225_callModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallModel },
6397 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6398 { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_DestinationInfo },
6399 { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
6400 { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6401 { &hf_h225_srcInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AliasAddress },
6402 { &hf_h225_srcCallSignalAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
6403 { &hf_h225_bandWidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6404 { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6405 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6406 { &hf_h225_callServices , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_QseriesOptions },
6407 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6408 { &hf_h225_activeMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6409 { &hf_h225_answerCall , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6410 { &hf_h225_canMapAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6411 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6412 { &hf_h225_srcAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
6413 { &hf_h225_destAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
6414 { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6415 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6416 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6417 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6418 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
6419 { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6420 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
6421 { &hf_h225_gatewayDataRate, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_DataRate },
6422 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
6423 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6424 { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6425 { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TunnelledProtocol },
6426 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6427 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6428 { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6429 { NULL, 0, 0, NULL }
6432 static int
6433 dissect_h225_AdmissionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6434 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6435 ett_h225_AdmissionRequest, AdmissionRequest_sequence);
6437 return offset;
6441 static const per_sequence_t UUIEsRequested_sequence[] = {
6442 { &hf_h225_setup_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6443 { &hf_h225_callProceeding_flg, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6444 { &hf_h225_connect_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6445 { &hf_h225_alerting_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6446 { &hf_h225_information_bool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6447 { &hf_h225_releaseComplete_bool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6448 { &hf_h225_facility_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6449 { &hf_h225_progress_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6450 { &hf_h225_empty , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6451 { &hf_h225_status_bool , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6452 { &hf_h225_statusInquiry_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6453 { &hf_h225_setupAcknowledge_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6454 { &hf_h225_notify_bool , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6455 { NULL, 0, 0, NULL }
6458 static int
6459 dissect_h225_UUIEsRequested(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6460 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6461 ett_h225_UUIEsRequested, UUIEsRequested_sequence);
6463 return offset;
6467 static const per_sequence_t AdmissionConfirm_sequence[] = {
6468 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6469 { &hf_h225_bandWidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6470 { &hf_h225_callModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
6471 { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6472 { &hf_h225_irrFrequency , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_INTEGER_1_65535 },
6473 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6474 { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_DestinationInfo },
6475 { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6476 { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointType },
6477 { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6478 { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
6479 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6480 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6481 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6482 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
6483 { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6484 { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_UUIEsRequested },
6485 { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language },
6486 { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateTransportAddresses },
6487 { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_UseSpecifiedTransport },
6488 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6489 { &hf_h225_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6490 { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6491 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6492 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BOOLEAN },
6493 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6494 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6495 { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6496 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6497 { NULL, 0, 0, NULL }
6500 static int
6501 dissect_h225_AdmissionConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6502 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6503 ett_h225_AdmissionConfirm, AdmissionConfirm_sequence);
6505 return offset;
6509 static const per_sequence_t SEQUENCE_OF_PartyNumber_sequence_of[1] = {
6510 { &hf_h225_routeCallToSCN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
6513 static int
6514 dissect_h225_SEQUENCE_OF_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6515 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6516 ett_h225_SEQUENCE_OF_PartyNumber, SEQUENCE_OF_PartyNumber_sequence_of);
6518 return offset;
6522 const value_string AdmissionRejectReason_vals[] = {
6523 { 0, "calledPartyNotRegistered" },
6524 { 1, "invalidPermission" },
6525 { 2, "requestDenied" },
6526 { 3, "undefinedReason" },
6527 { 4, "callerNotRegistered" },
6528 { 5, "routeCallToGatekeeper" },
6529 { 6, "invalidEndpointIdentifier" },
6530 { 7, "resourceUnavailable" },
6531 { 8, "securityDenial" },
6532 { 9, "qosControlNotSupported" },
6533 { 10, "incompleteAddress" },
6534 { 11, "aliasesInconsistent" },
6535 { 12, "routeCallToSCN" },
6536 { 13, "exceedsCallCapacity" },
6537 { 14, "collectDestination" },
6538 { 15, "collectPIN" },
6539 { 16, "genericDataReason" },
6540 { 17, "neededFeatureNotSupported" },
6541 { 18, "securityError" },
6542 { 19, "securityDHmismatch" },
6543 { 20, "noRouteToDestination" },
6544 { 21, "unallocatedNumber" },
6545 { 22, "registerWithAssignedGK" },
6546 { 0, NULL }
6549 static const per_choice_t AdmissionRejectReason_choice[] = {
6550 { 0, &hf_h225_calledPartyNotRegistered, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6551 { 1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6552 { 2, &hf_h225_requestDenied , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6553 { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6554 { 4, &hf_h225_callerNotRegistered, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6555 { 5, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6556 { 6, &hf_h225_invalidEndpointIdentifier, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6557 { 7, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6558 { 8, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6559 { 9, &hf_h225_qosControlNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6560 { 10, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6561 { 11, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6562 { 12, &hf_h225_routeCallToSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6563 { 13, &hf_h225_exceedsCallCapacity, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6564 { 14, &hf_h225_collectDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6565 { 15, &hf_h225_collectPIN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6566 { 16, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6567 { 17, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6568 { 18, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6569 { 19, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6570 { 20, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6571 { 21, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6572 { 22, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6573 { 0, NULL, 0, NULL }
6576 static int
6577 dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6578 int32_t value;
6579 h225_packet_info* h225_pi;
6580 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6582 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6583 ett_h225_AdmissionRejectReason, AdmissionRejectReason_choice,
6584 &value);
6586 if (h225_pi != NULL) {
6587 h225_pi->reason = value;
6590 return offset;
6594 static const per_sequence_t AdmissionReject_sequence[] = {
6595 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6596 { &hf_h225_rejectReason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionRejectReason },
6597 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6598 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
6599 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6600 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6601 { &hf_h225_callSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportAddress },
6602 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6603 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6604 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6605 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6606 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6607 { NULL, 0, 0, NULL }
6610 static int
6611 dissect_h225_AdmissionReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6612 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6613 ett_h225_AdmissionReject, AdmissionReject_sequence);
6615 return offset;
6619 static const per_sequence_t SEQUENCE_OF_BandwidthDetails_sequence_of[1] = {
6620 { &hf_h225_bandwidthDetails_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_BandwidthDetails },
6623 static int
6624 dissect_h225_SEQUENCE_OF_BandwidthDetails(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6625 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6626 ett_h225_SEQUENCE_OF_BandwidthDetails, SEQUENCE_OF_BandwidthDetails_sequence_of);
6628 return offset;
6632 static const per_sequence_t BandwidthRequest_sequence[] = {
6633 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6634 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6635 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6636 { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6637 { &hf_h225_callType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_CallType },
6638 { &hf_h225_bandWidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6639 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6640 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6641 { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6642 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6643 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6644 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6645 { &hf_h225_answeredCall , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6646 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
6647 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
6648 { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation },
6649 { &hf_h225_bandwidthDetails, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_BandwidthDetails },
6650 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6651 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
6652 { NULL, 0, 0, NULL }
6655 static int
6656 dissect_h225_BandwidthRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6657 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6658 ett_h225_BandwidthRequest, BandwidthRequest_sequence);
6660 return offset;
6664 static const per_sequence_t BandwidthConfirm_sequence[] = {
6665 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6666 { &hf_h225_bandWidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6667 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6668 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6669 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6670 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6671 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
6672 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6673 { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS },
6674 { NULL, 0, 0, NULL }
6677 static int
6678 dissect_h225_BandwidthConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6679 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6680 ett_h225_BandwidthConfirm, BandwidthConfirm_sequence);
6682 return offset;
6686 const value_string BandRejectReason_vals[] = {
6687 { 0, "notBound" },
6688 { 1, "invalidConferenceID" },
6689 { 2, "invalidPermission" },
6690 { 3, "insufficientResources" },
6691 { 4, "invalidRevision" },
6692 { 5, "undefinedReason" },
6693 { 6, "securityDenial" },
6694 { 7, "securityError" },
6695 { 0, NULL }
6698 static const per_choice_t BandRejectReason_choice[] = {
6699 { 0, &hf_h225_notBound , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6700 { 1, &hf_h225_invalidConferenceID, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6701 { 2, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6702 { 3, &hf_h225_insufficientResources, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6703 { 4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6704 { 5, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6705 { 6, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6706 { 7, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6707 { 0, NULL, 0, NULL }
6710 static int
6711 dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6712 int32_t value;
6713 h225_packet_info* h225_pi;
6714 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6716 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6717 ett_h225_BandRejectReason, BandRejectReason_choice,
6718 &value);
6720 if (h225_pi != NULL) {
6721 h225_pi->reason = value;
6724 return offset;
6728 static const per_sequence_t BandwidthReject_sequence[] = {
6729 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6730 { &hf_h225_bandRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandRejectReason },
6731 { &hf_h225_allowedBandWidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6732 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6733 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
6734 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6735 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6736 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6737 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6738 { NULL, 0, 0, NULL }
6741 static int
6742 dissect_h225_BandwidthReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6743 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6744 ett_h225_BandwidthReject, BandwidthReject_sequence);
6746 return offset;
6750 const value_string DisengageReason_vals[] = {
6751 { 0, "forcedDrop" },
6752 { 1, "normalDrop" },
6753 { 2, "undefinedReason" },
6754 { 0, NULL }
6757 static const per_choice_t DisengageReason_choice[] = {
6758 { 0, &hf_h225_forcedDrop , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6759 { 1, &hf_h225_normalDrop , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6760 { 2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6761 { 0, NULL, 0, NULL }
6764 static int
6765 dissect_h225_DisengageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6766 int32_t value;
6767 h225_packet_info* h225_pi;
6768 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6770 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6771 ett_h225_DisengageReason, DisengageReason_choice,
6772 &value);
6774 if (h225_pi != NULL) {
6775 h225_pi->reason = value;
6778 return offset;
6782 static const per_sequence_t DisengageRequest_sequence[] = {
6783 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6784 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6785 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6786 { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6787 { &hf_h225_disengageReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_DisengageReason },
6788 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6789 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6790 { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6791 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6792 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6793 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6794 { &hf_h225_answeredCall , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6795 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
6796 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
6797 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6798 { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation },
6799 { &hf_h225_terminationCause, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallTerminationCause },
6800 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6801 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6802 { NULL, 0, 0, NULL }
6805 static int
6806 dissect_h225_DisengageRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6807 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6808 ett_h225_DisengageRequest, DisengageRequest_sequence);
6810 return offset;
6814 static const per_sequence_t DisengageConfirm_sequence[] = {
6815 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6816 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6817 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6818 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6819 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6820 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
6821 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6822 { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation },
6823 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6824 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
6825 { NULL, 0, 0, NULL }
6828 static int
6829 dissect_h225_DisengageConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6830 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6831 ett_h225_DisengageConfirm, DisengageConfirm_sequence);
6833 return offset;
6837 const value_string DisengageRejectReason_vals[] = {
6838 { 0, "notRegistered" },
6839 { 1, "requestToDropOther" },
6840 { 2, "securityDenial" },
6841 { 3, "securityError" },
6842 { 0, NULL }
6845 static const per_choice_t DisengageRejectReason_choice[] = {
6846 { 0, &hf_h225_notRegistered , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6847 { 1, &hf_h225_requestToDropOther, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6848 { 2, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6849 { 3, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6850 { 0, NULL, 0, NULL }
6853 static int
6854 dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6855 int32_t value;
6856 h225_packet_info* h225_pi;
6857 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
6859 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6860 ett_h225_DisengageRejectReason, DisengageRejectReason_choice,
6861 &value);
6863 if (h225_pi != NULL) {
6864 h225_pi->reason = value;
6867 return offset;
6871 static const per_sequence_t DisengageReject_sequence[] = {
6872 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6873 { &hf_h225_disengageRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_DisengageRejectReason },
6874 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6875 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
6876 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6877 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6878 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6879 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6880 { NULL, 0, 0, NULL }
6883 static int
6884 dissect_h225_DisengageReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6885 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6886 ett_h225_DisengageReject, DisengageReject_sequence);
6888 return offset;
6892 static const per_sequence_t LocationRequest_sequence[] = {
6893 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6894 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointIdentifier },
6895 { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo },
6896 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6897 { &hf_h225_replyAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6898 { &hf_h225_sourceInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6899 { &hf_h225_canMapAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6900 { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
6901 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6902 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6903 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6904 { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6905 { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TunnelledProtocol },
6906 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6907 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6908 { &hf_h225_hopCount , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_INTEGER_1_255 },
6909 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6910 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallIdentifier },
6911 { &hf_h225_bandWidth , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BandWidth },
6912 { &hf_h225_sourceEndpointInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6913 { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6914 { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language },
6915 { NULL, 0, 0, NULL }
6918 static int
6919 dissect_h225_LocationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6920 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6921 ett_h225_LocationRequest, LocationRequest_sequence);
6923 return offset;
6927 static const per_sequence_t LocationConfirm_sequence[] = {
6928 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6929 { &hf_h225_locationConfirm_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6930 { &hf_h225_locationConfirm_rasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6931 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
6932 { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_DestinationInfo },
6933 { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6934 { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_EndpointType },
6935 { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6936 { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_Endpoint },
6937 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
6938 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6939 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
6940 { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateTransportAddresses },
6941 { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6942 { &hf_h225_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BOOLEAN },
6943 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
6944 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
6945 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
6946 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6947 { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
6948 { &hf_h225_bandWidth , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BandWidth },
6949 { NULL, 0, 0, NULL }
6952 static int
6953 dissect_h225_LocationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6954 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6955 ett_h225_LocationConfirm, LocationConfirm_sequence);
6957 return offset;
6961 const value_string LocationRejectReason_vals[] = {
6962 { 0, "notRegistered" },
6963 { 1, "invalidPermission" },
6964 { 2, "requestDenied" },
6965 { 3, "undefinedReason" },
6966 { 4, "securityDenial" },
6967 { 5, "aliasesInconsistent" },
6968 { 6, "routeCalltoSCN" },
6969 { 7, "resourceUnavailable" },
6970 { 8, "genericDataReason" },
6971 { 9, "neededFeatureNotSupported" },
6972 { 10, "hopCountExceeded" },
6973 { 11, "incompleteAddress" },
6974 { 12, "securityError" },
6975 { 13, "securityDHmismatch" },
6976 { 14, "noRouteToDestination" },
6977 { 15, "unallocatedNumber" },
6978 { 0, NULL }
6981 static const per_choice_t LocationRejectReason_choice[] = {
6982 { 0, &hf_h225_notRegistered , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6983 { 1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6984 { 2, &hf_h225_requestDenied , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6985 { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
6986 { 4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6987 { 5, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6988 { 6, &hf_h225_routeCalltoSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6989 { 7, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6990 { 8, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6991 { 9, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6992 { 10, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6993 { 11, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6994 { 12, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6995 { 13, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6996 { 14, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6997 { 15, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6998 { 0, NULL, 0, NULL }
7001 static int
7002 dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7003 int32_t value;
7004 h225_packet_info* h225_pi;
7005 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7007 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7008 ett_h225_LocationRejectReason, LocationRejectReason_choice,
7009 &value);
7011 if (h225_pi != NULL) {
7012 h225_pi->reason = value;
7015 return offset;
7019 static const per_sequence_t LocationReject_sequence[] = {
7020 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7021 { &hf_h225_locationRejectReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_LocationRejectReason },
7022 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7023 { &hf_h225_altGKInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AltGKInfo },
7024 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7025 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7026 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
7027 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
7028 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7029 { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession },
7030 { NULL, 0, 0, NULL }
7033 static int
7034 dissect_h225_LocationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7035 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7036 ett_h225_LocationReject, LocationReject_sequence);
7038 return offset;
7042 static const per_sequence_t InfoRequest_sequence[] = {
7043 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7044 { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7045 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7046 { &hf_h225_replyAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportAddress },
7047 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7048 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7049 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7050 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
7051 { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_UUIEsRequested },
7052 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
7053 { &hf_h225_usageInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInfoTypes },
7054 { &hf_h225_segmentedResponseSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
7055 { &hf_h225_nextSegmentRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_INTEGER_0_65535 },
7056 { &hf_h225_capacityInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL },
7057 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7058 { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK },
7059 { NULL, 0, 0, NULL }
7062 static int
7063 dissect_h225_InfoRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7064 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7065 ett_h225_InfoRequest, InfoRequest_sequence);
7067 return offset;
7071 static const per_sequence_t SEQUENCE_OF_RTPSession_sequence_of[1] = {
7072 { &hf_h225_audio_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_RTPSession },
7075 static int
7076 dissect_h225_SEQUENCE_OF_RTPSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7077 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7078 ett_h225_SEQUENCE_OF_RTPSession, SEQUENCE_OF_RTPSession_sequence_of);
7080 return offset;
7084 static const per_sequence_t SEQUENCE_OF_TransportChannelInfo_sequence_of[1] = {
7085 { &hf_h225_data_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7088 static int
7089 dissect_h225_SEQUENCE_OF_TransportChannelInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7090 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7091 ett_h225_SEQUENCE_OF_TransportChannelInfo, SEQUENCE_OF_TransportChannelInfo_sequence_of);
7093 return offset;
7097 static const per_sequence_t SEQUENCE_OF_ConferenceIdentifier_sequence_of[1] = {
7098 { &hf_h225_substituteConfIDs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7101 static int
7102 dissect_h225_SEQUENCE_OF_ConferenceIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7103 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7104 ett_h225_SEQUENCE_OF_ConferenceIdentifier, SEQUENCE_OF_ConferenceIdentifier_sequence_of);
7106 return offset;
7110 static const per_sequence_t T_pdu_item_sequence[] = {
7111 { &hf_h225_h323pdu , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
7112 { &hf_h225_sent , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7113 { NULL, 0, 0, NULL }
7116 static int
7117 dissect_h225_T_pdu_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7118 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7119 ett_h225_T_pdu_item, T_pdu_item_sequence);
7121 return offset;
7125 static const per_sequence_t T_pdu_sequence_of[1] = {
7126 { &hf_h225_pdu_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_pdu_item },
7129 static int
7130 dissect_h225_T_pdu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7131 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7132 ett_h225_T_pdu, T_pdu_sequence_of);
7134 return offset;
7138 static const per_sequence_t T_perCallInfo_item_sequence[] = {
7139 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7140 { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7141 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7142 { &hf_h225_originator , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BOOLEAN },
7143 { &hf_h225_audio , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_RTPSession },
7144 { &hf_h225_video , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_RTPSession },
7145 { &hf_h225_data , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_TransportChannelInfo },
7146 { &hf_h225_h245 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7147 { &hf_h225_callSignalling , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7148 { &hf_h225_callType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
7149 { &hf_h225_bandWidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
7150 { &hf_h225_callModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
7151 { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7152 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7153 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7154 { &hf_h225_substituteConfIDs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ConferenceIdentifier },
7155 { &hf_h225_pdu , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_T_pdu },
7156 { &hf_h225_callLinkage , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallLinkage },
7157 { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation },
7158 { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
7159 { NULL, 0, 0, NULL }
7162 static int
7163 dissect_h225_T_perCallInfo_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7164 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7165 ett_h225_T_perCallInfo_item, T_perCallInfo_item_sequence);
7167 return offset;
7171 static const per_sequence_t T_perCallInfo_sequence_of[1] = {
7172 { &hf_h225_perCallInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_T_perCallInfo_item },
7175 static int
7176 dissect_h225_T_perCallInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7177 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7178 ett_h225_T_perCallInfo, T_perCallInfo_sequence_of);
7180 return offset;
7184 static const value_string h225_InfoRequestResponseStatus_vals[] = {
7185 { 0, "complete" },
7186 { 1, "incomplete" },
7187 { 2, "segment" },
7188 { 3, "invalidCall" },
7189 { 0, NULL }
7192 static const per_choice_t InfoRequestResponseStatus_choice[] = {
7193 { 0, &hf_h225_complete , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7194 { 1, &hf_h225_incomplete , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7195 { 2, &hf_h225_segment , ASN1_EXTENSION_ROOT , dissect_h225_INTEGER_0_65535 },
7196 { 3, &hf_h225_invalidCall , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7197 { 0, NULL, 0, NULL }
7200 static int
7201 dissect_h225_InfoRequestResponseStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7202 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7203 ett_h225_InfoRequestResponseStatus, InfoRequestResponseStatus_choice,
7204 NULL);
7206 return offset;
7210 static const per_sequence_t InfoRequestResponse_sequence[] = {
7211 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7212 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7213 { &hf_h225_endpointType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
7214 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7215 { &hf_h225_infoRequestResponse_rasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
7216 { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
7217 { &hf_h225_endpointAlias , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress },
7218 { &hf_h225_perCallInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_perCallInfo },
7219 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7220 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7221 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
7222 { &hf_h225_needResponse , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7223 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
7224 { &hf_h225_irrStatus , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_InfoRequestResponseStatus },
7225 { &hf_h225_unsolicited , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7226 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7227 { NULL, 0, 0, NULL }
7230 static int
7231 dissect_h225_InfoRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7232 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7233 ett_h225_InfoRequestResponse, InfoRequestResponse_sequence);
7235 return offset;
7239 static const per_sequence_t NonStandardMessage_sequence[] = {
7240 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7241 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
7242 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7243 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7244 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
7245 { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
7246 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7247 { NULL, 0, 0, NULL }
7250 static int
7251 dissect_h225_NonStandardMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7252 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7253 ett_h225_NonStandardMessage, NonStandardMessage_sequence);
7255 return offset;
7259 static const per_sequence_t UnknownMessageResponse_sequence[] = {
7260 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7261 { &hf_h225_tokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7262 { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7263 { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV },
7264 { &hf_h225_messageNotUnderstood, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING },
7265 { NULL, 0, 0, NULL }
7268 static int
7269 dissect_h225_UnknownMessageResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7270 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7271 ett_h225_UnknownMessageResponse, UnknownMessageResponse_sequence);
7273 return offset;
7277 static const per_sequence_t RequestInProgress_sequence[] = {
7278 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7279 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7280 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7281 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7282 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7283 { &hf_h225_delay , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_65535 },
7284 { NULL, 0, 0, NULL }
7287 static int
7288 dissect_h225_RequestInProgress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7289 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7290 ett_h225_RequestInProgress, RequestInProgress_sequence);
7292 return offset;
7296 static const per_sequence_t ResourcesAvailableIndicate_sequence[] = {
7297 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7298 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7299 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7300 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7301 { &hf_h225_protocols , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedProtocols },
7302 { &hf_h225_almostOutOfResources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7303 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7304 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7305 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7306 { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity },
7307 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7308 { NULL, 0, 0, NULL }
7311 static int
7312 dissect_h225_ResourcesAvailableIndicate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7313 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7314 ett_h225_ResourcesAvailableIndicate, ResourcesAvailableIndicate_sequence);
7316 return offset;
7320 static const per_sequence_t ResourcesAvailableConfirm_sequence[] = {
7321 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7322 { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7323 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7324 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7325 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7326 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7327 { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7328 { NULL, 0, 0, NULL }
7331 static int
7332 dissect_h225_ResourcesAvailableConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7333 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7334 ett_h225_ResourcesAvailableConfirm, ResourcesAvailableConfirm_sequence);
7336 return offset;
7340 static const per_sequence_t InfoRequestAck_sequence[] = {
7341 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7342 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7343 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7344 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7345 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7346 { NULL, 0, 0, NULL }
7349 static int
7350 dissect_h225_InfoRequestAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7351 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7352 ett_h225_InfoRequestAck, InfoRequestAck_sequence);
7354 return offset;
7358 const value_string InfoRequestNakReason_vals[] = {
7359 { 0, "notRegistered" },
7360 { 1, "securityDenial" },
7361 { 2, "undefinedReason" },
7362 { 3, "securityError" },
7363 { 0, NULL }
7366 static const per_choice_t InfoRequestNakReason_choice[] = {
7367 { 0, &hf_h225_notRegistered , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7368 { 1, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7369 { 2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7370 { 3, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
7371 { 0, NULL, 0, NULL }
7374 static int
7375 dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7376 int32_t value;
7377 h225_packet_info* h225_pi;
7378 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7380 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7381 ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice,
7382 &value);
7384 if (h225_pi != NULL) {
7385 h225_pi->reason = value;
7388 return offset;
7392 static const per_sequence_t InfoRequestNak_sequence[] = {
7393 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7394 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7395 { &hf_h225_nakReason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_InfoRequestNakReason },
7396 { &hf_h225_altGKInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AltGKInfo },
7397 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7398 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7399 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7400 { NULL, 0, 0, NULL }
7403 static int
7404 dissect_h225_InfoRequestNak(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7405 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7406 ett_h225_InfoRequestNak, InfoRequestNak_sequence);
7408 return offset;
7412 static const per_sequence_t T_callSpecific_sequence[] = {
7413 { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7414 { &hf_h225_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7415 { &hf_h225_answeredCall , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7416 { NULL, 0, 0, NULL }
7419 static int
7420 dissect_h225_T_callSpecific(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7421 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7422 ett_h225_T_callSpecific, T_callSpecific_sequence);
7424 return offset;
7428 static const per_sequence_t ServiceControlIndication_sequence[] = {
7429 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7430 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7431 { &hf_h225_serviceControl , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ServiceControlSession },
7432 { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointIdentifier },
7433 { &hf_h225_callSpecific , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_callSpecific },
7434 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7435 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7436 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7437 { &hf_h225_featureSet , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_FeatureSet },
7438 { &hf_h225_genericData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7439 { NULL, 0, 0, NULL }
7442 static int
7443 dissect_h225_ServiceControlIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7444 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7445 ett_h225_ServiceControlIndication, ServiceControlIndication_sequence);
7447 return offset;
7451 static const value_string h225_T_result_vals[] = {
7452 { 0, "started" },
7453 { 1, "failed" },
7454 { 2, "stopped" },
7455 { 3, "notAvailable" },
7456 { 4, "neededFeatureNotSupported" },
7457 { 0, NULL }
7460 static const per_choice_t T_result_choice[] = {
7461 { 0, &hf_h225_started , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7462 { 1, &hf_h225_failed , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7463 { 2, &hf_h225_stopped , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7464 { 3, &hf_h225_notAvailable , ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7465 { 4, &hf_h225_neededFeatureNotSupported, ASN1_EXTENSION_ROOT , dissect_h225_NULL },
7466 { 0, NULL, 0, NULL }
7469 static int
7470 dissect_h225_T_result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7471 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7472 ett_h225_T_result, T_result_choice,
7473 NULL);
7475 return offset;
7479 static const per_sequence_t ServiceControlResponse_sequence[] = {
7480 { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7481 { &hf_h225_result , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_T_result },
7482 { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
7483 { &hf_h225_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ClearToken },
7484 { &hf_h225_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7485 { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
7486 { &hf_h225_featureSet , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_FeatureSet },
7487 { &hf_h225_genericData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData },
7488 { NULL, 0, 0, NULL }
7491 static int
7492 dissect_h225_ServiceControlResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7493 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7494 ett_h225_ServiceControlResponse, ServiceControlResponse_sequence);
7496 return offset;
7500 static const per_sequence_t SEQUENCE_OF_AdmissionConfirm_sequence_of[1] = {
7501 { &hf_h225_admissionConfirmSequence_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionConfirm },
7504 static int
7505 dissect_h225_SEQUENCE_OF_AdmissionConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7506 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7507 ett_h225_SEQUENCE_OF_AdmissionConfirm, SEQUENCE_OF_AdmissionConfirm_sequence_of);
7509 return offset;
7513 const value_string h225_RasMessage_vals[] = {
7514 { 0, "gatekeeperRequest" },
7515 { 1, "gatekeeperConfirm" },
7516 { 2, "gatekeeperReject" },
7517 { 3, "registrationRequest" },
7518 { 4, "registrationConfirm" },
7519 { 5, "registrationReject" },
7520 { 6, "unregistrationRequest" },
7521 { 7, "unregistrationConfirm" },
7522 { 8, "unregistrationReject" },
7523 { 9, "admissionRequest" },
7524 { 10, "admissionConfirm" },
7525 { 11, "admissionReject" },
7526 { 12, "bandwidthRequest" },
7527 { 13, "bandwidthConfirm" },
7528 { 14, "bandwidthReject" },
7529 { 15, "disengageRequest" },
7530 { 16, "disengageConfirm" },
7531 { 17, "disengageReject" },
7532 { 18, "locationRequest" },
7533 { 19, "locationConfirm" },
7534 { 20, "locationReject" },
7535 { 21, "infoRequest" },
7536 { 22, "infoRequestResponse" },
7537 { 23, "nonStandardMessage" },
7538 { 24, "unknownMessageResponse" },
7539 { 25, "requestInProgress" },
7540 { 26, "resourcesAvailableIndicate" },
7541 { 27, "resourcesAvailableConfirm" },
7542 { 28, "infoRequestAck" },
7543 { 29, "infoRequestNak" },
7544 { 30, "serviceControlIndication" },
7545 { 31, "serviceControlResponse" },
7546 { 32, "admissionConfirmSequence" },
7547 { 0, NULL }
7550 static const per_choice_t RasMessage_choice[] = {
7551 { 0, &hf_h225_gatekeeperRequest, ASN1_EXTENSION_ROOT , dissect_h225_GatekeeperRequest },
7552 { 1, &hf_h225_gatekeeperConfirm, ASN1_EXTENSION_ROOT , dissect_h225_GatekeeperConfirm },
7553 { 2, &hf_h225_gatekeeperReject, ASN1_EXTENSION_ROOT , dissect_h225_GatekeeperReject },
7554 { 3, &hf_h225_registrationRequest, ASN1_EXTENSION_ROOT , dissect_h225_RegistrationRequest },
7555 { 4, &hf_h225_registrationConfirm, ASN1_EXTENSION_ROOT , dissect_h225_RegistrationConfirm },
7556 { 5, &hf_h225_registrationReject, ASN1_EXTENSION_ROOT , dissect_h225_RegistrationReject },
7557 { 6, &hf_h225_unregistrationRequest, ASN1_EXTENSION_ROOT , dissect_h225_UnregistrationRequest },
7558 { 7, &hf_h225_unregistrationConfirm, ASN1_EXTENSION_ROOT , dissect_h225_UnregistrationConfirm },
7559 { 8, &hf_h225_unregistrationReject, ASN1_EXTENSION_ROOT , dissect_h225_UnregistrationReject },
7560 { 9, &hf_h225_admissionRequest, ASN1_EXTENSION_ROOT , dissect_h225_AdmissionRequest },
7561 { 10, &hf_h225_admissionConfirm, ASN1_EXTENSION_ROOT , dissect_h225_AdmissionConfirm },
7562 { 11, &hf_h225_admissionReject, ASN1_EXTENSION_ROOT , dissect_h225_AdmissionReject },
7563 { 12, &hf_h225_bandwidthRequest, ASN1_EXTENSION_ROOT , dissect_h225_BandwidthRequest },
7564 { 13, &hf_h225_bandwidthConfirm, ASN1_EXTENSION_ROOT , dissect_h225_BandwidthConfirm },
7565 { 14, &hf_h225_bandwidthReject, ASN1_EXTENSION_ROOT , dissect_h225_BandwidthReject },
7566 { 15, &hf_h225_disengageRequest, ASN1_EXTENSION_ROOT , dissect_h225_DisengageRequest },
7567 { 16, &hf_h225_disengageConfirm, ASN1_EXTENSION_ROOT , dissect_h225_DisengageConfirm },
7568 { 17, &hf_h225_disengageReject, ASN1_EXTENSION_ROOT , dissect_h225_DisengageReject },
7569 { 18, &hf_h225_locationRequest, ASN1_EXTENSION_ROOT , dissect_h225_LocationRequest },
7570 { 19, &hf_h225_locationConfirm, ASN1_EXTENSION_ROOT , dissect_h225_LocationConfirm },
7571 { 20, &hf_h225_locationReject , ASN1_EXTENSION_ROOT , dissect_h225_LocationReject },
7572 { 21, &hf_h225_infoRequest , ASN1_EXTENSION_ROOT , dissect_h225_InfoRequest },
7573 { 22, &hf_h225_infoRequestResponse, ASN1_EXTENSION_ROOT , dissect_h225_InfoRequestResponse },
7574 { 23, &hf_h225_nonStandardMessage, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardMessage },
7575 { 24, &hf_h225_unknownMessageResponse, ASN1_EXTENSION_ROOT , dissect_h225_UnknownMessageResponse },
7576 { 25, &hf_h225_requestInProgress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_RequestInProgress },
7577 { 26, &hf_h225_resourcesAvailableIndicate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableIndicate },
7578 { 27, &hf_h225_resourcesAvailableConfirm, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableConfirm },
7579 { 28, &hf_h225_infoRequestAck , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestAck },
7580 { 29, &hf_h225_infoRequestNak , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestNak },
7581 { 30, &hf_h225_serviceControlIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlIndication },
7582 { 31, &hf_h225_serviceControlResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlResponse },
7583 { 32, &hf_h225_admissionConfirmSequence, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_AdmissionConfirm },
7584 { 0, NULL, 0, NULL }
7588 dissect_h225_RasMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7589 int32_t rasmessage_value;
7590 h225_packet_info* h225_pi;
7592 call_id_guid = NULL;
7593 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7594 ett_h225_RasMessage, RasMessage_choice,
7595 &rasmessage_value);
7597 col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %s ",
7598 val_to_str_const(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
7600 h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
7601 if (h225_pi != NULL) {
7602 h225_pi->msg_tag = rasmessage_value;
7603 if (call_id_guid) {
7604 h225_pi->guid = *call_id_guid;
7608 return offset;
7611 /*--- PDUs ---*/
7613 static int dissect_H323_UserInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7614 int offset = 0;
7615 asn1_ctx_t asn1_ctx;
7616 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7617 offset = dissect_h225_H323_UserInformation(tvb, offset, &asn1_ctx, tree, hf_h225_H323_UserInformation_PDU);
7618 offset += 7; offset >>= 3;
7619 return offset;
7621 int dissect_h225_ExtendedAliasAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7622 int offset = 0;
7623 asn1_ctx_t asn1_ctx;
7624 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7625 offset = dissect_h225_ExtendedAliasAddress(tvb, offset, &asn1_ctx, tree, hf_h225_h225_ExtendedAliasAddress_PDU);
7626 offset += 7; offset >>= 3;
7627 return offset;
7629 static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7630 int offset = 0;
7631 asn1_ctx_t asn1_ctx;
7632 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
7633 offset = dissect_h225_RasMessage(tvb, offset, &asn1_ctx, tree, hf_h225_RasMessage_PDU);
7634 offset += 7; offset >>= 3;
7635 return offset;
7639 /* Forward declaration we need below */
7640 void proto_reg_handoff_h225(void);
7643 * Functions needed for Ras-Hash-Table
7646 /* compare 2 keys */
7647 static int h225ras_call_equal(const void *k1, const void *k2)
7649 const h225ras_call_info_key* key1 = (const h225ras_call_info_key*) k1;
7650 const h225ras_call_info_key* key2 = (const h225ras_call_info_key*) k2;
7652 return (key1->reqSeqNum == key2->reqSeqNum &&
7653 key1->conversation == key2->conversation);
7656 /* calculate a hash key */
7657 static unsigned h225ras_call_hash(const void *k)
7659 const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
7661 return key->reqSeqNum + GPOINTER_TO_UINT(key->conversation);
7665 h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category)
7667 h225ras_call_t *h225ras_call = (h225ras_call_t *)wmem_map_lookup(ras_calls[category], h225ras_call_key);
7669 return h225ras_call;
7672 h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category)
7674 h225ras_call_info_key *new_h225ras_call_key;
7675 h225ras_call_t *h225ras_call = NULL;
7678 /* Prepare the value data.
7679 "req_num" and "rsp_num" are frame numbers;
7680 frame numbers are 1-origin, so we use 0
7681 to mean "we don't yet know in which frame
7682 the reply for this call appears". */
7683 new_h225ras_call_key = wmem_new(wmem_file_scope(), h225ras_call_info_key);
7684 new_h225ras_call_key->reqSeqNum = h225ras_call_key->reqSeqNum;
7685 new_h225ras_call_key->conversation = h225ras_call_key->conversation;
7686 h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7687 h225ras_call->req_num = pinfo->num;
7688 h225ras_call->rsp_num = 0;
7689 h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
7690 h225ras_call->responded = false;
7691 h225ras_call->next_call = NULL;
7692 h225ras_call->req_time=pinfo->abs_ts;
7693 h225ras_call->guid=*guid;
7694 /* store it */
7695 wmem_map_insert(ras_calls[category], new_h225ras_call_key, h225ras_call);
7697 return h225ras_call;
7700 h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category _U_)
7702 h225ras_call_t *h225ras_call = NULL;
7704 /* Prepare the value data.
7705 "req_num" and "rsp_num" are frame numbers;
7706 frame numbers are 1-origin, so we use 0
7707 to mean "we don't yet know in which frame
7708 the reply for this call appears". */
7709 h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7710 h225ras_call->req_num = pinfo->num;
7711 h225ras_call->rsp_num = 0;
7712 h225ras_call->requestSeqNum = prev_call->requestSeqNum;
7713 h225ras_call->responded = false;
7714 h225ras_call->next_call = NULL;
7715 h225ras_call->req_time=pinfo->abs_ts;
7716 h225ras_call->guid=*guid;
7718 prev_call->next_call = h225ras_call;
7719 return h225ras_call;
7722 static void
7723 h225_frame_end(void)
7725 /* next_tvb pointers are allocated in packet scope, clear it. */
7726 h245_list = NULL;
7727 tp_list = NULL;
7730 static int
7731 dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7733 proto_item *it;
7734 proto_tree *tr;
7735 int offset = 0;
7736 h225_packet_info* h225_pi;
7738 /* Init struct for collecting h225_packet_info */
7739 h225_pi = create_h225_packet_info(pinfo);
7740 h225_pi->msg_type = H225_CS;
7741 p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7743 register_frame_end_routine(pinfo, h225_frame_end);
7744 h245_list = next_tvb_list_new(pinfo->pool);
7745 tp_list = next_tvb_list_new(pinfo->pool);
7747 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7748 col_clear(pinfo->cinfo, COL_INFO);
7750 it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, -1, PSNAME" CS");
7751 tr=proto_item_add_subtree(it, ett_h225);
7753 offset = dissect_H323_UserInformation_PDU(tvb, pinfo, tr, NULL);
7755 if (h245_list->count){
7756 col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
7757 col_set_fence(pinfo->cinfo, COL_PROTOCOL);
7760 next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7761 next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7763 tap_queue_packet(h225_tap, pinfo, h225_pi);
7765 return offset;
7767 static int
7768 dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_){
7769 proto_item *it;
7770 proto_tree *tr;
7771 uint32_t offset=0;
7772 h225_packet_info* h225_pi;
7774 /* Init struct for collecting h225_packet_info */
7775 h225_pi = create_h225_packet_info(pinfo);
7776 h225_pi->msg_type = H225_RAS;
7777 p_add_proto_data(pinfo->pool, pinfo, proto_h225, 0, h225_pi);
7779 register_frame_end_routine(pinfo, h225_frame_end);
7780 h245_list = next_tvb_list_new(pinfo->pool);
7781 tp_list = next_tvb_list_new(pinfo->pool);
7783 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7785 it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, PSNAME" RAS");
7786 tr=proto_item_add_subtree(it, ett_h225);
7788 offset = dissect_RasMessage_PDU(tvb, pinfo, tr, NULL);
7790 ras_call_matching(tvb, pinfo, tr, h225_pi);
7792 next_tvb_call(h245_list, pinfo, tree, h245dg_handle, data_handle);
7793 next_tvb_call(tp_list, pinfo, tree, NULL, data_handle);
7795 tap_queue_packet(h225_tap, pinfo, h225_pi);
7797 return offset;
7801 /* The following values represent the size of their valuestring arrays */
7803 #define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
7804 #define CS_MSG_TYPES array_length(T_h323_message_body_vals)
7806 #define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
7807 #define RRJ_REASONS array_length(RegistrationRejectReason_vals)
7808 #define URQ_REASONS array_length(UnregRequestReason_vals)
7809 #define URJ_REASONS array_length(UnregRejectReason_vals)
7810 #define ARJ_REASONS array_length(AdmissionRejectReason_vals)
7811 #define BRJ_REASONS array_length(BandRejectReason_vals)
7812 #define DRQ_REASONS array_length(DisengageReason_vals)
7813 #define DRJ_REASONS array_length(DisengageRejectReason_vals)
7814 #define LRJ_REASONS array_length(LocationRejectReason_vals)
7815 #define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
7816 #define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
7817 #define FACILITY_REASONS array_length(FacilityReason_vals)
7819 /* TAP STAT INFO */
7820 typedef enum
7822 MESSAGE_TYPE_COLUMN = 0,
7823 COUNT_COLUMN
7824 } h225_stat_columns;
7826 typedef struct _h225_table_item {
7827 unsigned count; /* Message count */
7828 unsigned table_idx; /* stat_table index */
7829 } h225_table_item_t;
7831 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"}};
7833 static unsigned ras_msg_idx[RAS_MSG_TYPES];
7834 static unsigned cs_msg_idx[CS_MSG_TYPES];
7836 static unsigned grj_reason_idx[GRJ_REASONS];
7837 static unsigned rrj_reason_idx[RRJ_REASONS];
7838 static unsigned urq_reason_idx[URQ_REASONS];
7839 static unsigned urj_reason_idx[URJ_REASONS];
7840 static unsigned arj_reason_idx[ARJ_REASONS];
7841 static unsigned brj_reason_idx[BRJ_REASONS];
7842 static unsigned drq_reason_idx[DRQ_REASONS];
7843 static unsigned drj_reason_idx[DRJ_REASONS];
7844 static unsigned lrj_reason_idx[LRJ_REASONS];
7845 static unsigned irqnak_reason_idx[IRQNAK_REASONS];
7846 static unsigned rel_cmp_reason_idx[REL_CMP_REASONS];
7847 static unsigned facility_reason_idx[FACILITY_REASONS];
7849 static unsigned other_idx;
7851 static void h225_stat_init(stat_tap_table_ui* new_stat)
7853 const char *table_name = "H.225 Messages and Message Reasons";
7854 int num_fields = array_length(h225_stat_fields);
7855 stat_tap_table *table;
7856 int row_idx = 0, msg_idx;
7857 stat_tap_table_item_type items[array_length(h225_stat_fields)];
7859 table = stat_tap_find_table(new_stat, table_name);
7860 if (table) {
7861 if (new_stat->stat_tap_reset_table_cb) {
7862 new_stat->stat_tap_reset_table_cb(table);
7864 return;
7867 memset(items, 0x0, sizeof(items));
7868 table = stat_tap_init_table(table_name, num_fields, 0, NULL);
7869 stat_tap_add_table(new_stat, table);
7871 items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
7872 items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
7873 items[COUNT_COLUMN].value.uint_value = 0;
7875 /* Add a row for each value type */
7877 msg_idx = 0;
7880 items[MESSAGE_TYPE_COLUMN].value.string_value =
7881 h225_RasMessage_vals[msg_idx].strptr
7882 ? h225_RasMessage_vals[msg_idx].strptr
7883 : "Unknown RAS message";
7884 ras_msg_idx[msg_idx] = row_idx;
7886 stat_tap_init_table_row(table, row_idx, num_fields, items);
7887 row_idx++;
7888 msg_idx++;
7889 } while (h225_RasMessage_vals[msg_idx].strptr);
7891 msg_idx = 0;
7894 items[MESSAGE_TYPE_COLUMN].value.string_value =
7895 T_h323_message_body_vals[msg_idx].strptr
7896 ? T_h323_message_body_vals[msg_idx].strptr
7897 : "Unknown CS message";
7898 cs_msg_idx[msg_idx] = row_idx;
7900 stat_tap_init_table_row(table, row_idx, num_fields, items);
7901 row_idx++;
7902 msg_idx++;
7903 } while (T_h323_message_body_vals[msg_idx].strptr);
7905 msg_idx = 0;
7908 items[MESSAGE_TYPE_COLUMN].value.string_value =
7909 GatekeeperRejectReason_vals[msg_idx].strptr
7910 ? GatekeeperRejectReason_vals[msg_idx].strptr
7911 : "Unknown gatekeeper reject reason";
7912 grj_reason_idx[msg_idx] = row_idx;
7914 stat_tap_init_table_row(table, row_idx, num_fields, items);
7915 row_idx++;
7916 msg_idx++;
7917 } while (GatekeeperRejectReason_vals[msg_idx].strptr);
7919 msg_idx = 0;
7922 items[MESSAGE_TYPE_COLUMN].value.string_value =
7923 RegistrationRejectReason_vals[msg_idx].strptr
7924 ? RegistrationRejectReason_vals[msg_idx].strptr
7925 : "Unknown registration reject reason";
7926 rrj_reason_idx[msg_idx] = row_idx;
7928 stat_tap_init_table_row(table, row_idx, num_fields, items);
7929 row_idx++;
7930 msg_idx++;
7931 } while (RegistrationRejectReason_vals[msg_idx].strptr);
7933 msg_idx = 0;
7936 items[MESSAGE_TYPE_COLUMN].value.string_value =
7937 UnregRequestReason_vals[msg_idx].strptr
7938 ? UnregRequestReason_vals[msg_idx].strptr
7939 : "Unknown unregistration request reason";
7940 urq_reason_idx[msg_idx] = row_idx;
7942 stat_tap_init_table_row(table, row_idx, num_fields, items);
7943 row_idx++;
7944 msg_idx++;
7945 } while (UnregRequestReason_vals[msg_idx].strptr);
7947 msg_idx = 0;
7950 items[MESSAGE_TYPE_COLUMN].value.string_value =
7951 UnregRejectReason_vals[msg_idx].strptr
7952 ? UnregRejectReason_vals[msg_idx].strptr
7953 : "Unknown unregistration reject reason";
7954 urj_reason_idx[msg_idx] = row_idx;
7956 stat_tap_init_table_row(table, row_idx, num_fields, items);
7957 row_idx++;
7958 msg_idx++;
7959 } while (UnregRejectReason_vals[msg_idx].strptr);
7961 msg_idx = 0;
7964 items[MESSAGE_TYPE_COLUMN].value.string_value =
7965 AdmissionRejectReason_vals[msg_idx].strptr
7966 ? AdmissionRejectReason_vals[msg_idx].strptr
7967 : "Unknown admission reject reason";
7968 arj_reason_idx[msg_idx] = row_idx;
7970 stat_tap_init_table_row(table, row_idx, num_fields, items);
7971 row_idx++;
7972 msg_idx++;
7973 } while (AdmissionRejectReason_vals[msg_idx].strptr);
7975 msg_idx = 0;
7978 items[MESSAGE_TYPE_COLUMN].value.string_value =
7979 BandRejectReason_vals[msg_idx].strptr
7980 ? BandRejectReason_vals[msg_idx].strptr
7981 : "Unknown band reject reason";
7982 brj_reason_idx[msg_idx] = row_idx;
7984 stat_tap_init_table_row(table, row_idx, num_fields, items);
7985 row_idx++;
7986 msg_idx++;
7987 } while (BandRejectReason_vals[msg_idx].strptr);
7989 msg_idx = 0;
7992 items[MESSAGE_TYPE_COLUMN].value.string_value =
7993 DisengageReason_vals[msg_idx].strptr
7994 ? DisengageReason_vals[msg_idx].strptr
7995 : "Unknown disengage reason";
7996 drq_reason_idx[msg_idx] = row_idx;
7998 stat_tap_init_table_row(table, row_idx, num_fields, items);
7999 row_idx++;
8000 msg_idx++;
8001 } while (DisengageReason_vals[msg_idx].strptr);
8003 msg_idx = 0;
8006 items[MESSAGE_TYPE_COLUMN].value.string_value =
8007 DisengageRejectReason_vals[msg_idx].strptr
8008 ? DisengageRejectReason_vals[msg_idx].strptr
8009 : "Unknown disengage reject reason";
8010 drj_reason_idx[msg_idx] = row_idx;
8012 stat_tap_init_table_row(table, row_idx, num_fields, items);
8013 row_idx++;
8014 msg_idx++;
8015 } while (DisengageRejectReason_vals[msg_idx].strptr);
8017 msg_idx = 0;
8020 items[MESSAGE_TYPE_COLUMN].value.string_value =
8021 LocationRejectReason_vals[msg_idx].strptr
8022 ? LocationRejectReason_vals[msg_idx].strptr
8023 : "Unknown location reject reason";
8024 lrj_reason_idx[msg_idx] = row_idx;
8026 stat_tap_init_table_row(table, row_idx, num_fields, items);
8027 row_idx++;
8028 msg_idx++;
8029 } while (LocationRejectReason_vals[msg_idx].strptr);
8031 msg_idx = 0;
8034 items[MESSAGE_TYPE_COLUMN].value.string_value =
8035 InfoRequestNakReason_vals[msg_idx].strptr
8036 ? InfoRequestNakReason_vals[msg_idx].strptr
8037 : "Unknown info request nak reason";
8038 irqnak_reason_idx[msg_idx] = row_idx;
8040 stat_tap_init_table_row(table, row_idx, num_fields, items);
8041 row_idx++;
8042 msg_idx++;
8043 } while (InfoRequestNakReason_vals[msg_idx].strptr);
8045 msg_idx = 0;
8048 items[MESSAGE_TYPE_COLUMN].value.string_value =
8049 h225_ReleaseCompleteReason_vals[msg_idx].strptr
8050 ? h225_ReleaseCompleteReason_vals[msg_idx].strptr
8051 : "Unknown release complete reason";
8052 rel_cmp_reason_idx[msg_idx] = row_idx;
8054 stat_tap_init_table_row(table, row_idx, num_fields, items);
8055 row_idx++;
8056 msg_idx++;
8057 } while (h225_ReleaseCompleteReason_vals[msg_idx].strptr);
8059 msg_idx = 0;
8062 items[MESSAGE_TYPE_COLUMN].value.string_value =
8063 FacilityReason_vals[msg_idx].strptr
8064 ? FacilityReason_vals[msg_idx].strptr
8065 : "Unknown facility reason";
8066 facility_reason_idx[msg_idx] = row_idx;
8068 stat_tap_init_table_row(table, row_idx, num_fields, items);
8069 row_idx++;
8070 msg_idx++;
8071 } while (FacilityReason_vals[msg_idx].strptr);
8074 items[MESSAGE_TYPE_COLUMN].value.string_value = "Unknown H.225 message";
8075 stat_tap_init_table_row(table, row_idx, num_fields, items);
8076 other_idx = row_idx;
8079 static tap_packet_status
8080 h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *hpi_ptr, tap_flags_t flags _U_)
8082 stat_data_t* stat_data = (stat_data_t*)tapdata;
8083 const h225_packet_info *hpi = (const h225_packet_info *)hpi_ptr;
8084 int tag_idx = -1;
8085 int reason_idx = -1;
8087 if(hpi->msg_tag < 0) { /* uninitialized */
8088 return TAP_PACKET_DONT_REDRAW;
8091 switch (hpi->msg_type) {
8093 case H225_RAS:
8094 tag_idx = ras_msg_idx[MIN(hpi->msg_tag, (int)RAS_MSG_TYPES-1)];
8096 /* Look for reason tag */
8097 if(hpi->reason < 0) { /* uninitialized */
8098 break;
8101 switch(hpi->msg_tag) {
8103 case 2: /* GRJ */
8104 reason_idx = grj_reason_idx[MIN(hpi->reason, (int)GRJ_REASONS-1)];
8105 break;
8106 case 5: /* RRJ */
8107 reason_idx = rrj_reason_idx[MIN(hpi->reason, (int)RRJ_REASONS-1)];
8108 break;
8109 case 6: /* URQ */
8110 reason_idx = urq_reason_idx[MIN(hpi->reason, (int)URQ_REASONS-1)];
8111 break;
8112 case 8: /* URJ */
8113 reason_idx = urj_reason_idx[MIN(hpi->reason, (int)URJ_REASONS-1)];
8114 break;
8115 case 11: /* ARJ */
8116 reason_idx = arj_reason_idx[MIN(hpi->reason, (int)ARJ_REASONS-1)];
8117 break;
8118 case 14: /* BRJ */
8119 reason_idx = brj_reason_idx[MIN(hpi->reason, (int)BRJ_REASONS-1)];
8120 break;
8121 case 15: /* DRQ */
8122 reason_idx = drq_reason_idx[MIN(hpi->reason, (int)DRQ_REASONS-1)];
8123 break;
8124 case 17: /* DRJ */
8125 reason_idx = drj_reason_idx[MIN(hpi->reason, (int)DRJ_REASONS-1)];
8126 break;
8127 case 20: /* LRJ */
8128 reason_idx = lrj_reason_idx[MIN(hpi->reason, (int)LRJ_REASONS-1)];
8129 break;
8130 case 29: /* IRQ Nak */
8131 reason_idx = irqnak_reason_idx[MIN(hpi->reason, (int)IRQNAK_REASONS-1)];
8132 break;
8133 default:
8134 /* do nothing */
8135 break;
8138 break;
8140 case H225_CS:
8141 tag_idx = cs_msg_idx[MIN(hpi->msg_tag, (int)CS_MSG_TYPES-1)];
8143 /* Look for reason tag */
8144 if(hpi->reason < 0) { /* uninitialized */
8145 break;
8148 switch(hpi->msg_tag) {
8150 case 5: /* ReleaseComplete */
8151 reason_idx = rel_cmp_reason_idx[MIN(hpi->reason, (int)REL_CMP_REASONS-1)];
8152 break;
8153 case 6: /* Facility */
8154 reason_idx = facility_reason_idx[MIN(hpi->reason, (int)FACILITY_REASONS-1)];
8155 break;
8156 default:
8157 /* do nothing */
8158 break;
8161 break;
8163 case H225_OTHERS:
8164 default:
8165 tag_idx = other_idx;
8168 if (tag_idx >= 0) {
8169 stat_tap_table*table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
8170 stat_tap_table_item_type* msg_data = stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);
8171 msg_data->value.uint_value++;
8172 stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
8174 if (reason_idx >= 0) {
8175 msg_data = stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);
8176 msg_data->value.uint_value++;
8177 stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
8180 return TAP_PACKET_REDRAW;
8182 return TAP_PACKET_DONT_REDRAW;
8185 static void
8186 h225_stat_reset(stat_tap_table* table)
8188 unsigned element;
8189 stat_tap_table_item_type* item_data;
8191 for (element = 0; element < table->num_elements; element++)
8193 item_data = stat_tap_get_field_data(table, element, COUNT_COLUMN);
8194 item_data->value.uint_value = 0;
8195 stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
8199 /*--- proto_register_h225 -------------------------------------------*/
8200 void proto_register_h225(void) {
8202 /* List of fields */
8203 static hf_register_info hf[] = {
8204 { &hf_h221Manufacturer,
8205 { "H.225 Manufacturer", "h225.Manufacturer", FT_UINT32, BASE_HEX,
8206 VALS(H221ManufacturerCode_vals), 0, "h225.H.221 Manufacturer", HFILL }},
8208 { &hf_h225_ras_req_frame,
8209 { "RAS Request Frame", "h225.ras.reqframe", FT_FRAMENUM, BASE_NONE,
8210 FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0, NULL, HFILL }},
8212 { &hf_h225_ras_rsp_frame,
8213 { "RAS Response Frame", "h225.ras.rspframe", FT_FRAMENUM, BASE_NONE,
8214 FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0, NULL, HFILL }},
8216 { &hf_h225_ras_dup,
8217 { "Duplicate RAS Message", "h225.ras.dup", FT_UINT32, BASE_DEC,
8218 NULL, 0, NULL, HFILL }},
8220 { &hf_h225_ras_deltatime,
8221 { "RAS Service Response Time", "h225.ras.timedelta", FT_RELATIVE_TIME, BASE_NONE,
8222 NULL, 0, "Timedelta between RAS-Request and RAS-Response", HFILL }},
8224 { &hf_h225_debug_dissector_try_string,
8225 { "*** DEBUG dissector_try_string", "h225.debug.dissector_try_string", FT_STRING, BASE_NONE,
8226 NULL, 0, NULL, HFILL }},
8228 { &hf_h225_H323_UserInformation_PDU,
8229 { "H323-UserInformation", "h225.H323_UserInformation_element",
8230 FT_NONE, BASE_NONE, NULL, 0,
8231 NULL, HFILL }},
8232 { &hf_h225_h225_ExtendedAliasAddress_PDU,
8233 { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8234 FT_NONE, BASE_NONE, NULL, 0,
8235 NULL, HFILL }},
8236 { &hf_h225_RasMessage_PDU,
8237 { "RasMessage", "h225.RasMessage",
8238 FT_UINT32, BASE_DEC, VALS(h225_RasMessage_vals), 0,
8239 NULL, HFILL }},
8240 { &hf_h225_h323_uu_pdu,
8241 { "h323-uu-pdu", "h225.h323_uu_pdu_element",
8242 FT_NONE, BASE_NONE, NULL, 0,
8243 NULL, HFILL }},
8244 { &hf_h225_user_data,
8245 { "user-data", "h225.user_data_element",
8246 FT_NONE, BASE_NONE, NULL, 0,
8247 NULL, HFILL }},
8248 { &hf_h225_protocol_discriminator,
8249 { "protocol-discriminator", "h225.protocol_discriminator",
8250 FT_UINT32, BASE_DEC|BASE_EXT_STRING, &q931_protocol_discriminator_vals_ext, 0,
8251 "INTEGER_0_255", HFILL }},
8252 { &hf_h225_user_information,
8253 { "user-information", "h225.user_information",
8254 FT_BYTES, BASE_NONE, NULL, 0,
8255 "OCTET_STRING_SIZE_1_131", HFILL }},
8256 { &hf_h225_h323_message_body,
8257 { "h323-message-body", "h225.h323_message_body",
8258 FT_UINT32, BASE_DEC, VALS(T_h323_message_body_vals), 0,
8259 NULL, HFILL }},
8260 { &hf_h225_setup,
8261 { "setup", "h225.setup_element",
8262 FT_NONE, BASE_NONE, NULL, 0,
8263 "Setup_UUIE", HFILL }},
8264 { &hf_h225_callProceeding,
8265 { "callProceeding", "h225.callProceeding_element",
8266 FT_NONE, BASE_NONE, NULL, 0,
8267 "CallProceeding_UUIE", HFILL }},
8268 { &hf_h225_connect,
8269 { "connect", "h225.connect_element",
8270 FT_NONE, BASE_NONE, NULL, 0,
8271 "Connect_UUIE", HFILL }},
8272 { &hf_h225_alerting,
8273 { "alerting", "h225.alerting_element",
8274 FT_NONE, BASE_NONE, NULL, 0,
8275 "Alerting_UUIE", HFILL }},
8276 { &hf_h225_information,
8277 { "information", "h225.information_element",
8278 FT_NONE, BASE_NONE, NULL, 0,
8279 "Information_UUIE", HFILL }},
8280 { &hf_h225_releaseComplete,
8281 { "releaseComplete", "h225.releaseComplete_element",
8282 FT_NONE, BASE_NONE, NULL, 0,
8283 "ReleaseComplete_UUIE", HFILL }},
8284 { &hf_h225_facility,
8285 { "facility", "h225.facility_element",
8286 FT_NONE, BASE_NONE, NULL, 0,
8287 "Facility_UUIE", HFILL }},
8288 { &hf_h225_progress,
8289 { "progress", "h225.progress_element",
8290 FT_NONE, BASE_NONE, NULL, 0,
8291 "Progress_UUIE", HFILL }},
8292 { &hf_h225_empty_flg,
8293 { "empty", "h225.empty_element",
8294 FT_NONE, BASE_NONE, NULL, 0,
8295 "T_empty_flg", HFILL }},
8296 { &hf_h225_status,
8297 { "status", "h225.status_element",
8298 FT_NONE, BASE_NONE, NULL, 0,
8299 "Status_UUIE", HFILL }},
8300 { &hf_h225_statusInquiry,
8301 { "statusInquiry", "h225.statusInquiry_element",
8302 FT_NONE, BASE_NONE, NULL, 0,
8303 "StatusInquiry_UUIE", HFILL }},
8304 { &hf_h225_setupAcknowledge,
8305 { "setupAcknowledge", "h225.setupAcknowledge_element",
8306 FT_NONE, BASE_NONE, NULL, 0,
8307 "SetupAcknowledge_UUIE", HFILL }},
8308 { &hf_h225_notify,
8309 { "notify", "h225.notify_element",
8310 FT_NONE, BASE_NONE, NULL, 0,
8311 "Notify_UUIE", HFILL }},
8312 { &hf_h225_nonStandardData,
8313 { "nonStandardData", "h225.nonStandardData_element",
8314 FT_NONE, BASE_NONE, NULL, 0,
8315 "NonStandardParameter", HFILL }},
8316 { &hf_h225_h4501SupplementaryService,
8317 { "h4501SupplementaryService", "h225.h4501SupplementaryService",
8318 FT_UINT32, BASE_DEC, NULL, 0,
8319 NULL, HFILL }},
8320 { &hf_h225_h4501SupplementaryService_item,
8321 { "h4501SupplementaryService item", "h225.h4501SupplementaryService_item",
8322 FT_UINT32, BASE_DEC, NULL, 0,
8323 NULL, HFILL }},
8324 { &hf_h225_h245Tunnelling,
8325 { "h245Tunnelling", "h225.h245Tunnelling",
8326 FT_BOOLEAN, BASE_NONE, NULL, 0,
8327 NULL, HFILL }},
8328 { &hf_h225_H245Control_item,
8329 { "H245Control item", "h225.H245Control_item",
8330 FT_UINT32, BASE_DEC, NULL, 0,
8331 NULL, HFILL }},
8332 { &hf_h225_h245Control,
8333 { "h245Control", "h225.h245Control",
8334 FT_UINT32, BASE_DEC, NULL, 0,
8335 NULL, HFILL }},
8336 { &hf_h225_nonStandardControl,
8337 { "nonStandardControl", "h225.nonStandardControl",
8338 FT_UINT32, BASE_DEC, NULL, 0,
8339 "SEQUENCE_OF_NonStandardParameter", HFILL }},
8340 { &hf_h225_nonStandardControl_item,
8341 { "NonStandardParameter", "h225.NonStandardParameter_element",
8342 FT_NONE, BASE_NONE, NULL, 0,
8343 NULL, HFILL }},
8344 { &hf_h225_callLinkage,
8345 { "callLinkage", "h225.callLinkage_element",
8346 FT_NONE, BASE_NONE, NULL, 0,
8347 NULL, HFILL }},
8348 { &hf_h225_tunnelledSignallingMessage,
8349 { "tunnelledSignallingMessage", "h225.tunnelledSignallingMessage_element",
8350 FT_NONE, BASE_NONE, NULL, 0,
8351 NULL, HFILL }},
8352 { &hf_h225_tunnelledProtocolID,
8353 { "tunnelledProtocolID", "h225.tunnelledProtocolID_element",
8354 FT_NONE, BASE_NONE, NULL, 0,
8355 "TunnelledProtocol", HFILL }},
8356 { &hf_h225_messageContent,
8357 { "messageContent", "h225.messageContent",
8358 FT_UINT32, BASE_DEC, NULL, 0,
8359 NULL, HFILL }},
8360 { &hf_h225_messageContent_item,
8361 { "messageContent item", "h225.messageContent_item",
8362 FT_UINT32, BASE_DEC, NULL, 0,
8363 "T_messageContent_item", HFILL }},
8364 { &hf_h225_tunnellingRequired,
8365 { "tunnellingRequired", "h225.tunnellingRequired_element",
8366 FT_NONE, BASE_NONE, NULL, 0,
8367 NULL, HFILL }},
8368 { &hf_h225_provisionalRespToH245Tunnelling,
8369 { "provisionalRespToH245Tunnelling", "h225.provisionalRespToH245Tunnelling_element",
8370 FT_NONE, BASE_NONE, NULL, 0,
8371 NULL, HFILL }},
8372 { &hf_h225_stimulusControl,
8373 { "stimulusControl", "h225.stimulusControl_element",
8374 FT_NONE, BASE_NONE, NULL, 0,
8375 NULL, HFILL }},
8376 { &hf_h225_genericData,
8377 { "genericData", "h225.genericData",
8378 FT_UINT32, BASE_DEC, NULL, 0,
8379 "SEQUENCE_OF_GenericData", HFILL }},
8380 { &hf_h225_genericData_item,
8381 { "GenericData", "h225.GenericData_element",
8382 FT_NONE, BASE_NONE, NULL, 0,
8383 NULL, HFILL }},
8384 { &hf_h225_nonStandard,
8385 { "nonStandard", "h225.nonStandard_element",
8386 FT_NONE, BASE_NONE, NULL, 0,
8387 "NonStandardParameter", HFILL }},
8388 { &hf_h225_isText,
8389 { "isText", "h225.isText_element",
8390 FT_NONE, BASE_NONE, NULL, 0,
8391 NULL, HFILL }},
8392 { &hf_h225_h248Message,
8393 { "h248Message", "h225.h248Message",
8394 FT_BYTES, BASE_NONE, NULL, 0,
8395 "OCTET_STRING", HFILL }},
8396 { &hf_h225_protocolIdentifier,
8397 { "protocolIdentifier", "h225.protocolIdentifier",
8398 FT_OID, BASE_NONE, NULL, 0,
8399 NULL, HFILL }},
8400 { &hf_h225_uUIE_destinationInfo,
8401 { "destinationInfo", "h225.destinationInfo_element",
8402 FT_NONE, BASE_NONE, NULL, 0,
8403 "EndpointType", HFILL }},
8404 { &hf_h225_h245Address,
8405 { "h245Address", "h225.h245Address",
8406 FT_UINT32, BASE_DEC, VALS(h225_H245TransportAddress_vals), 0,
8407 "H245TransportAddress", HFILL }},
8408 { &hf_h225_callIdentifier,
8409 { "callIdentifier", "h225.callIdentifier_element",
8410 FT_NONE, BASE_NONE, NULL, 0,
8411 NULL, HFILL }},
8412 { &hf_h225_h245SecurityMode,
8413 { "h245SecurityMode", "h225.h245SecurityMode",
8414 FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8415 "H245Security", HFILL }},
8416 { &hf_h225_tokens,
8417 { "tokens", "h225.tokens",
8418 FT_UINT32, BASE_DEC, NULL, 0,
8419 "SEQUENCE_OF_ClearToken", HFILL }},
8420 { &hf_h225_tokens_item,
8421 { "ClearToken", "h225.ClearToken_element",
8422 FT_NONE, BASE_NONE, NULL, 0,
8423 NULL, HFILL }},
8424 { &hf_h225_cryptoTokens,
8425 { "cryptoTokens", "h225.cryptoTokens",
8426 FT_UINT32, BASE_DEC, NULL, 0,
8427 "SEQUENCE_OF_CryptoH323Token", HFILL }},
8428 { &hf_h225_cryptoTokens_item,
8429 { "CryptoH323Token", "h225.CryptoH323Token",
8430 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
8431 NULL, HFILL }},
8432 { &hf_h225_fastStart,
8433 { "fastStart", "h225.fastStart",
8434 FT_UINT32, BASE_DEC, NULL, 0,
8435 NULL, HFILL }},
8436 { &hf_h225_multipleCalls,
8437 { "multipleCalls", "h225.multipleCalls",
8438 FT_BOOLEAN, BASE_NONE, NULL, 0,
8439 "BOOLEAN", HFILL }},
8440 { &hf_h225_maintainConnection,
8441 { "maintainConnection", "h225.maintainConnection",
8442 FT_BOOLEAN, BASE_NONE, NULL, 0,
8443 "BOOLEAN", HFILL }},
8444 { &hf_h225_alertingAddress,
8445 { "alertingAddress", "h225.alertingAddress",
8446 FT_UINT32, BASE_DEC, NULL, 0,
8447 "SEQUENCE_OF_AliasAddress", HFILL }},
8448 { &hf_h225_alertingAddress_item,
8449 { "AliasAddress", "h225.AliasAddress",
8450 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8451 NULL, HFILL }},
8452 { &hf_h225_presentationIndicator,
8453 { "presentationIndicator", "h225.presentationIndicator",
8454 FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
8455 NULL, HFILL }},
8456 { &hf_h225_screeningIndicator,
8457 { "screeningIndicator", "h225.screeningIndicator",
8458 FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
8459 NULL, HFILL }},
8460 { &hf_h225_fastConnectRefused,
8461 { "fastConnectRefused", "h225.fastConnectRefused_element",
8462 FT_NONE, BASE_NONE, NULL, 0,
8463 NULL, HFILL }},
8464 { &hf_h225_serviceControl,
8465 { "serviceControl", "h225.serviceControl",
8466 FT_UINT32, BASE_DEC, NULL, 0,
8467 "SEQUENCE_OF_ServiceControlSession", HFILL }},
8468 { &hf_h225_serviceControl_item,
8469 { "ServiceControlSession", "h225.ServiceControlSession_element",
8470 FT_NONE, BASE_NONE, NULL, 0,
8471 NULL, HFILL }},
8472 { &hf_h225_capacity,
8473 { "capacity", "h225.capacity_element",
8474 FT_NONE, BASE_NONE, NULL, 0,
8475 "CallCapacity", HFILL }},
8476 { &hf_h225_featureSet,
8477 { "featureSet", "h225.featureSet_element",
8478 FT_NONE, BASE_NONE, NULL, 0,
8479 NULL, HFILL }},
8480 { &hf_h225_displayName,
8481 { "displayName", "h225.displayName",
8482 FT_UINT32, BASE_DEC, NULL, 0,
8483 "SEQUENCE_OF_DisplayName", HFILL }},
8484 { &hf_h225_displayName_item,
8485 { "DisplayName", "h225.DisplayName_element",
8486 FT_NONE, BASE_NONE, NULL, 0,
8487 NULL, HFILL }},
8488 { &hf_h225_conferenceID,
8489 { "conferenceID", "h225.conferenceID",
8490 FT_GUID, BASE_NONE, NULL, 0,
8491 "ConferenceIdentifier", HFILL }},
8492 { &hf_h225_language,
8493 { "language", "h225.language",
8494 FT_UINT32, BASE_DEC, NULL, 0,
8495 NULL, HFILL }},
8496 { &hf_h225_connectedAddress,
8497 { "connectedAddress", "h225.connectedAddress",
8498 FT_UINT32, BASE_DEC, NULL, 0,
8499 "SEQUENCE_OF_AliasAddress", HFILL }},
8500 { &hf_h225_connectedAddress_item,
8501 { "AliasAddress", "h225.AliasAddress",
8502 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8503 NULL, HFILL }},
8504 { &hf_h225_circuitInfo,
8505 { "circuitInfo", "h225.circuitInfo_element",
8506 FT_NONE, BASE_NONE, NULL, 0,
8507 NULL, HFILL }},
8508 { &hf_h225_releaseCompleteReason,
8509 { "reason", "h225.reason",
8510 FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
8511 "ReleaseCompleteReason", HFILL }},
8512 { &hf_h225_busyAddress,
8513 { "busyAddress", "h225.busyAddress",
8514 FT_UINT32, BASE_DEC, NULL, 0,
8515 "SEQUENCE_OF_AliasAddress", HFILL }},
8516 { &hf_h225_busyAddress_item,
8517 { "AliasAddress", "h225.AliasAddress",
8518 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8519 NULL, HFILL }},
8520 { &hf_h225_destinationInfo,
8521 { "destinationInfo", "h225.destinationInfo_element",
8522 FT_NONE, BASE_NONE, NULL, 0,
8523 "EndpointType", HFILL }},
8524 { &hf_h225_noBandwidth,
8525 { "noBandwidth", "h225.noBandwidth_element",
8526 FT_NONE, BASE_NONE, NULL, 0,
8527 NULL, HFILL }},
8528 { &hf_h225_gatekeeperResources,
8529 { "gatekeeperResources", "h225.gatekeeperResources_element",
8530 FT_NONE, BASE_NONE, NULL, 0,
8531 NULL, HFILL }},
8532 { &hf_h225_unreachableDestination,
8533 { "unreachableDestination", "h225.unreachableDestination_element",
8534 FT_NONE, BASE_NONE, NULL, 0,
8535 NULL, HFILL }},
8536 { &hf_h225_destinationRejection,
8537 { "destinationRejection", "h225.destinationRejection_element",
8538 FT_NONE, BASE_NONE, NULL, 0,
8539 NULL, HFILL }},
8540 { &hf_h225_invalidRevision,
8541 { "invalidRevision", "h225.invalidRevision_element",
8542 FT_NONE, BASE_NONE, NULL, 0,
8543 NULL, HFILL }},
8544 { &hf_h225_noPermission,
8545 { "noPermission", "h225.noPermission_element",
8546 FT_NONE, BASE_NONE, NULL, 0,
8547 NULL, HFILL }},
8548 { &hf_h225_unreachableGatekeeper,
8549 { "unreachableGatekeeper", "h225.unreachableGatekeeper_element",
8550 FT_NONE, BASE_NONE, NULL, 0,
8551 NULL, HFILL }},
8552 { &hf_h225_gatewayResources,
8553 { "gatewayResources", "h225.gatewayResources_element",
8554 FT_NONE, BASE_NONE, NULL, 0,
8555 NULL, HFILL }},
8556 { &hf_h225_badFormatAddress,
8557 { "badFormatAddress", "h225.badFormatAddress_element",
8558 FT_NONE, BASE_NONE, NULL, 0,
8559 NULL, HFILL }},
8560 { &hf_h225_adaptiveBusy,
8561 { "adaptiveBusy", "h225.adaptiveBusy_element",
8562 FT_NONE, BASE_NONE, NULL, 0,
8563 NULL, HFILL }},
8564 { &hf_h225_inConf,
8565 { "inConf", "h225.inConf_element",
8566 FT_NONE, BASE_NONE, NULL, 0,
8567 NULL, HFILL }},
8568 { &hf_h225_undefinedReason,
8569 { "undefinedReason", "h225.undefinedReason_element",
8570 FT_NONE, BASE_NONE, NULL, 0,
8571 NULL, HFILL }},
8572 { &hf_h225_facilityCallDeflection,
8573 { "facilityCallDeflection", "h225.facilityCallDeflection_element",
8574 FT_NONE, BASE_NONE, NULL, 0,
8575 NULL, HFILL }},
8576 { &hf_h225_securityDenied,
8577 { "securityDenied", "h225.securityDenied_element",
8578 FT_NONE, BASE_NONE, NULL, 0,
8579 NULL, HFILL }},
8580 { &hf_h225_calledPartyNotRegistered,
8581 { "calledPartyNotRegistered", "h225.calledPartyNotRegistered_element",
8582 FT_NONE, BASE_NONE, NULL, 0,
8583 NULL, HFILL }},
8584 { &hf_h225_callerNotRegistered,
8585 { "callerNotRegistered", "h225.callerNotRegistered_element",
8586 FT_NONE, BASE_NONE, NULL, 0,
8587 NULL, HFILL }},
8588 { &hf_h225_newConnectionNeeded,
8589 { "newConnectionNeeded", "h225.newConnectionNeeded_element",
8590 FT_NONE, BASE_NONE, NULL, 0,
8591 NULL, HFILL }},
8592 { &hf_h225_nonStandardReason,
8593 { "nonStandardReason", "h225.nonStandardReason_element",
8594 FT_NONE, BASE_NONE, NULL, 0,
8595 "NonStandardParameter", HFILL }},
8596 { &hf_h225_replaceWithConferenceInvite,
8597 { "replaceWithConferenceInvite", "h225.replaceWithConferenceInvite",
8598 FT_GUID, BASE_NONE, NULL, 0,
8599 "ConferenceIdentifier", HFILL }},
8600 { &hf_h225_genericDataReason,
8601 { "genericDataReason", "h225.genericDataReason_element",
8602 FT_NONE, BASE_NONE, NULL, 0,
8603 NULL, HFILL }},
8604 { &hf_h225_neededFeatureNotSupported,
8605 { "neededFeatureNotSupported", "h225.neededFeatureNotSupported_element",
8606 FT_NONE, BASE_NONE, NULL, 0,
8607 NULL, HFILL }},
8608 { &hf_h225_tunnelledSignallingRejected,
8609 { "tunnelledSignallingRejected", "h225.tunnelledSignallingRejected_element",
8610 FT_NONE, BASE_NONE, NULL, 0,
8611 NULL, HFILL }},
8612 { &hf_h225_invalidCID,
8613 { "invalidCID", "h225.invalidCID_element",
8614 FT_NONE, BASE_NONE, NULL, 0,
8615 NULL, HFILL }},
8616 { &hf_h225_rLC_securityError,
8617 { "securityError", "h225.securityError",
8618 FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
8619 "SecurityErrors", HFILL }},
8620 { &hf_h225_hopCountExceeded,
8621 { "hopCountExceeded", "h225.hopCountExceeded_element",
8622 FT_NONE, BASE_NONE, NULL, 0,
8623 NULL, HFILL }},
8624 { &hf_h225_sourceAddress,
8625 { "sourceAddress", "h225.sourceAddress",
8626 FT_UINT32, BASE_DEC, NULL, 0,
8627 "SEQUENCE_OF_AliasAddress", HFILL }},
8628 { &hf_h225_sourceAddress_item,
8629 { "AliasAddress", "h225.AliasAddress",
8630 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8631 NULL, HFILL }},
8632 { &hf_h225_setup_UUIE_sourceInfo,
8633 { "sourceInfo", "h225.sourceInfo_element",
8634 FT_NONE, BASE_NONE, NULL, 0,
8635 "EndpointType", HFILL }},
8636 { &hf_h225_destinationAddress,
8637 { "destinationAddress", "h225.destinationAddress",
8638 FT_UINT32, BASE_DEC, NULL, 0,
8639 "SEQUENCE_OF_AliasAddress", HFILL }},
8640 { &hf_h225_destinationAddress_item,
8641 { "AliasAddress", "h225.AliasAddress",
8642 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8643 NULL, HFILL }},
8644 { &hf_h225_destCallSignalAddress,
8645 { "destCallSignalAddress", "h225.destCallSignalAddress",
8646 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8647 "TransportAddress", HFILL }},
8648 { &hf_h225_destExtraCallInfo,
8649 { "destExtraCallInfo", "h225.destExtraCallInfo",
8650 FT_UINT32, BASE_DEC, NULL, 0,
8651 "SEQUENCE_OF_AliasAddress", HFILL }},
8652 { &hf_h225_destExtraCallInfo_item,
8653 { "AliasAddress", "h225.AliasAddress",
8654 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8655 NULL, HFILL }},
8656 { &hf_h225_destExtraCRV,
8657 { "destExtraCRV", "h225.destExtraCRV",
8658 FT_UINT32, BASE_DEC, NULL, 0,
8659 "SEQUENCE_OF_CallReferenceValue", HFILL }},
8660 { &hf_h225_destExtraCRV_item,
8661 { "CallReferenceValue", "h225.CallReferenceValue",
8662 FT_UINT32, BASE_DEC, NULL, 0,
8663 NULL, HFILL }},
8664 { &hf_h225_activeMC,
8665 { "activeMC", "h225.activeMC",
8666 FT_BOOLEAN, BASE_NONE, NULL, 0,
8667 "BOOLEAN", HFILL }},
8668 { &hf_h225_conferenceGoal,
8669 { "conferenceGoal", "h225.conferenceGoal",
8670 FT_UINT32, BASE_DEC, VALS(h225_T_conferenceGoal_vals), 0,
8671 NULL, HFILL }},
8672 { &hf_h225_create,
8673 { "create", "h225.create_element",
8674 FT_NONE, BASE_NONE, NULL, 0,
8675 NULL, HFILL }},
8676 { &hf_h225_join,
8677 { "join", "h225.join_element",
8678 FT_NONE, BASE_NONE, NULL, 0,
8679 NULL, HFILL }},
8680 { &hf_h225_invite,
8681 { "invite", "h225.invite_element",
8682 FT_NONE, BASE_NONE, NULL, 0,
8683 NULL, HFILL }},
8684 { &hf_h225_capability_negotiation,
8685 { "capability-negotiation", "h225.capability_negotiation_element",
8686 FT_NONE, BASE_NONE, NULL, 0,
8687 NULL, HFILL }},
8688 { &hf_h225_callIndependentSupplementaryService,
8689 { "callIndependentSupplementaryService", "h225.callIndependentSupplementaryService_element",
8690 FT_NONE, BASE_NONE, NULL, 0,
8691 NULL, HFILL }},
8692 { &hf_h225_callServices,
8693 { "callServices", "h225.callServices_element",
8694 FT_NONE, BASE_NONE, NULL, 0,
8695 "QseriesOptions", HFILL }},
8696 { &hf_h225_callType,
8697 { "callType", "h225.callType",
8698 FT_UINT32, BASE_DEC, VALS(h225_CallType_vals), 0,
8699 NULL, HFILL }},
8700 { &hf_h225_sourceCallSignalAddress,
8701 { "sourceCallSignalAddress", "h225.sourceCallSignalAddress",
8702 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8703 "TransportAddress", HFILL }},
8704 { &hf_h225_uUIE_remoteExtensionAddress,
8705 { "remoteExtensionAddress", "h225.remoteExtensionAddress",
8706 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8707 "AliasAddress", HFILL }},
8708 { &hf_h225_h245SecurityCapability,
8709 { "h245SecurityCapability", "h225.h245SecurityCapability",
8710 FT_UINT32, BASE_DEC, NULL, 0,
8711 "SEQUENCE_OF_H245Security", HFILL }},
8712 { &hf_h225_h245SecurityCapability_item,
8713 { "H245Security", "h225.H245Security",
8714 FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8715 NULL, HFILL }},
8716 { &hf_h225_FastStart_item,
8717 { "FastStart item", "h225.FastStart_item",
8718 FT_UINT32, BASE_DEC, NULL, 0,
8719 NULL, HFILL }},
8720 { &hf_h225_mediaWaitForConnect,
8721 { "mediaWaitForConnect", "h225.mediaWaitForConnect",
8722 FT_BOOLEAN, BASE_NONE, NULL, 0,
8723 "BOOLEAN", HFILL }},
8724 { &hf_h225_canOverlapSend,
8725 { "canOverlapSend", "h225.canOverlapSend",
8726 FT_BOOLEAN, BASE_NONE, NULL, 0,
8727 "BOOLEAN", HFILL }},
8728 { &hf_h225_endpointIdentifier,
8729 { "endpointIdentifier", "h225.endpointIdentifier",
8730 FT_STRING, BASE_NONE, NULL, 0,
8731 NULL, HFILL }},
8732 { &hf_h225_connectionParameters,
8733 { "connectionParameters", "h225.connectionParameters_element",
8734 FT_NONE, BASE_NONE, NULL, 0,
8735 NULL, HFILL }},
8736 { &hf_h225_connectionType,
8737 { "connectionType", "h225.connectionType",
8738 FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionType_vals), 0,
8739 "ScnConnectionType", HFILL }},
8740 { &hf_h225_numberOfScnConnections,
8741 { "numberOfScnConnections", "h225.numberOfScnConnections",
8742 FT_UINT32, BASE_DEC, NULL, 0,
8743 "INTEGER_0_65535", HFILL }},
8744 { &hf_h225_connectionAggregation,
8745 { "connectionAggregation", "h225.connectionAggregation",
8746 FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0,
8747 "ScnConnectionAggregation", HFILL }},
8748 { &hf_h225_Language_item,
8749 { "Language item", "h225.Language_item",
8750 FT_STRING, BASE_NONE, NULL, 0,
8751 "IA5String_SIZE_1_32", HFILL }},
8752 { &hf_h225_symmetricOperationRequired,
8753 { "symmetricOperationRequired", "h225.symmetricOperationRequired_element",
8754 FT_NONE, BASE_NONE, NULL, 0,
8755 NULL, HFILL }},
8756 { &hf_h225_desiredProtocols,
8757 { "desiredProtocols", "h225.desiredProtocols",
8758 FT_UINT32, BASE_DEC, NULL, 0,
8759 "SEQUENCE_OF_SupportedProtocols", HFILL }},
8760 { &hf_h225_desiredProtocols_item,
8761 { "SupportedProtocols", "h225.SupportedProtocols",
8762 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
8763 NULL, HFILL }},
8764 { &hf_h225_neededFeatures,
8765 { "neededFeatures", "h225.neededFeatures",
8766 FT_UINT32, BASE_DEC, NULL, 0,
8767 "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8768 { &hf_h225_neededFeatures_item,
8769 { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8770 FT_NONE, BASE_NONE, NULL, 0,
8771 NULL, HFILL }},
8772 { &hf_h225_desiredFeatures,
8773 { "desiredFeatures", "h225.desiredFeatures",
8774 FT_UINT32, BASE_DEC, NULL, 0,
8775 "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8776 { &hf_h225_desiredFeatures_item,
8777 { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8778 FT_NONE, BASE_NONE, NULL, 0,
8779 NULL, HFILL }},
8780 { &hf_h225_supportedFeatures,
8781 { "supportedFeatures", "h225.supportedFeatures",
8782 FT_UINT32, BASE_DEC, NULL, 0,
8783 "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8784 { &hf_h225_supportedFeatures_item,
8785 { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8786 FT_NONE, BASE_NONE, NULL, 0,
8787 NULL, HFILL }},
8788 { &hf_h225_ParallelH245Control_item,
8789 { "ParallelH245Control item", "h225.ParallelH245Control_item",
8790 FT_UINT32, BASE_DEC, NULL, 0,
8791 NULL, HFILL }},
8792 { &hf_h225_parallelH245Control,
8793 { "parallelH245Control", "h225.parallelH245Control",
8794 FT_UINT32, BASE_DEC, NULL, 0,
8795 NULL, HFILL }},
8796 { &hf_h225_additionalSourceAddresses,
8797 { "additionalSourceAddresses", "h225.additionalSourceAddresses",
8798 FT_UINT32, BASE_DEC, NULL, 0,
8799 "SEQUENCE_OF_ExtendedAliasAddress", HFILL }},
8800 { &hf_h225_additionalSourceAddresses_item,
8801 { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8802 FT_NONE, BASE_NONE, NULL, 0,
8803 NULL, HFILL }},
8804 { &hf_h225_hopCount_1_31,
8805 { "hopCount", "h225.hopCount",
8806 FT_UINT32, BASE_DEC, NULL, 0,
8807 "INTEGER_1_31", HFILL }},
8808 { &hf_h225_unknown,
8809 { "unknown", "h225.unknown_element",
8810 FT_NONE, BASE_NONE, NULL, 0,
8811 NULL, HFILL }},
8812 { &hf_h225_bChannel,
8813 { "bChannel", "h225.bChannel_element",
8814 FT_NONE, BASE_NONE, NULL, 0,
8815 NULL, HFILL }},
8816 { &hf_h225_hybrid2x64,
8817 { "hybrid2x64", "h225.hybrid2x64_element",
8818 FT_NONE, BASE_NONE, NULL, 0,
8819 NULL, HFILL }},
8820 { &hf_h225_hybrid384,
8821 { "hybrid384", "h225.hybrid384_element",
8822 FT_NONE, BASE_NONE, NULL, 0,
8823 NULL, HFILL }},
8824 { &hf_h225_hybrid1536,
8825 { "hybrid1536", "h225.hybrid1536_element",
8826 FT_NONE, BASE_NONE, NULL, 0,
8827 NULL, HFILL }},
8828 { &hf_h225_hybrid1920,
8829 { "hybrid1920", "h225.hybrid1920_element",
8830 FT_NONE, BASE_NONE, NULL, 0,
8831 NULL, HFILL }},
8832 { &hf_h225_multirate,
8833 { "multirate", "h225.multirate_element",
8834 FT_NONE, BASE_NONE, NULL, 0,
8835 NULL, HFILL }},
8836 { &hf_h225_auto,
8837 { "auto", "h225.auto_element",
8838 FT_NONE, BASE_NONE, NULL, 0,
8839 NULL, HFILL }},
8840 { &hf_h225_none,
8841 { "none", "h225.none_element",
8842 FT_NONE, BASE_NONE, NULL, 0,
8843 NULL, HFILL }},
8844 { &hf_h225_h221,
8845 { "h221", "h225.h221_element",
8846 FT_NONE, BASE_NONE, NULL, 0,
8847 NULL, HFILL }},
8848 { &hf_h225_bonded_mode1,
8849 { "bonded-mode1", "h225.bonded_mode1_element",
8850 FT_NONE, BASE_NONE, NULL, 0,
8851 NULL, HFILL }},
8852 { &hf_h225_bonded_mode2,
8853 { "bonded-mode2", "h225.bonded_mode2_element",
8854 FT_NONE, BASE_NONE, NULL, 0,
8855 NULL, HFILL }},
8856 { &hf_h225_bonded_mode3,
8857 { "bonded-mode3", "h225.bonded_mode3_element",
8858 FT_NONE, BASE_NONE, NULL, 0,
8859 NULL, HFILL }},
8860 { &hf_h225_presentationAllowed,
8861 { "presentationAllowed", "h225.presentationAllowed_element",
8862 FT_NONE, BASE_NONE, NULL, 0,
8863 NULL, HFILL }},
8864 { &hf_h225_presentationRestricted,
8865 { "presentationRestricted", "h225.presentationRestricted_element",
8866 FT_NONE, BASE_NONE, NULL, 0,
8867 NULL, HFILL }},
8868 { &hf_h225_addressNotAvailable,
8869 { "addressNotAvailable", "h225.addressNotAvailable_element",
8870 FT_NONE, BASE_NONE, NULL, 0,
8871 NULL, HFILL }},
8872 { &hf_h225_alternativeAddress,
8873 { "alternativeAddress", "h225.alternativeAddress",
8874 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8875 "TransportAddress", HFILL }},
8876 { &hf_h225_alternativeAliasAddress,
8877 { "alternativeAliasAddress", "h225.alternativeAliasAddress",
8878 FT_UINT32, BASE_DEC, NULL, 0,
8879 "SEQUENCE_OF_AliasAddress", HFILL }},
8880 { &hf_h225_alternativeAliasAddress_item,
8881 { "AliasAddress", "h225.AliasAddress",
8882 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8883 NULL, HFILL }},
8884 { &hf_h225_facilityReason,
8885 { "reason", "h225.reason",
8886 FT_UINT32, BASE_DEC, VALS(FacilityReason_vals), 0,
8887 "FacilityReason", HFILL }},
8888 { &hf_h225_conferences,
8889 { "conferences", "h225.conferences",
8890 FT_UINT32, BASE_DEC, NULL, 0,
8891 "SEQUENCE_OF_ConferenceList", HFILL }},
8892 { &hf_h225_conferences_item,
8893 { "ConferenceList", "h225.ConferenceList_element",
8894 FT_NONE, BASE_NONE, NULL, 0,
8895 NULL, HFILL }},
8896 { &hf_h225_conferenceAlias,
8897 { "conferenceAlias", "h225.conferenceAlias",
8898 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8899 "AliasAddress", HFILL }},
8900 { &hf_h225_routeCallToGatekeeper,
8901 { "routeCallToGatekeeper", "h225.routeCallToGatekeeper_element",
8902 FT_NONE, BASE_NONE, NULL, 0,
8903 NULL, HFILL }},
8904 { &hf_h225_callForwarded,
8905 { "callForwarded", "h225.callForwarded_element",
8906 FT_NONE, BASE_NONE, NULL, 0,
8907 NULL, HFILL }},
8908 { &hf_h225_routeCallToMC,
8909 { "routeCallToMC", "h225.routeCallToMC_element",
8910 FT_NONE, BASE_NONE, NULL, 0,
8911 NULL, HFILL }},
8912 { &hf_h225_conferenceListChoice,
8913 { "conferenceListChoice", "h225.conferenceListChoice_element",
8914 FT_NONE, BASE_NONE, NULL, 0,
8915 NULL, HFILL }},
8916 { &hf_h225_startH245,
8917 { "startH245", "h225.startH245_element",
8918 FT_NONE, BASE_NONE, NULL, 0,
8919 NULL, HFILL }},
8920 { &hf_h225_noH245,
8921 { "noH245", "h225.noH245_element",
8922 FT_NONE, BASE_NONE, NULL, 0,
8923 NULL, HFILL }},
8924 { &hf_h225_newTokens,
8925 { "newTokens", "h225.newTokens_element",
8926 FT_NONE, BASE_NONE, NULL, 0,
8927 NULL, HFILL }},
8928 { &hf_h225_featureSetUpdate,
8929 { "featureSetUpdate", "h225.featureSetUpdate_element",
8930 FT_NONE, BASE_NONE, NULL, 0,
8931 NULL, HFILL }},
8932 { &hf_h225_forwardedElements,
8933 { "forwardedElements", "h225.forwardedElements_element",
8934 FT_NONE, BASE_NONE, NULL, 0,
8935 NULL, HFILL }},
8936 { &hf_h225_transportedInformation,
8937 { "transportedInformation", "h225.transportedInformation_element",
8938 FT_NONE, BASE_NONE, NULL, 0,
8939 NULL, HFILL }},
8940 { &hf_h225_h245IpAddress,
8941 { "ipAddress", "h225.ipAddress_element",
8942 FT_NONE, BASE_NONE, NULL, 0,
8943 "T_h245IpAddress", HFILL }},
8944 { &hf_h225_h245Ip,
8945 { "ip", "h225.h245Ip",
8946 FT_IPv4, BASE_NONE, NULL, 0,
8947 "T_h245Ip", HFILL }},
8948 { &hf_h225_h245IpPort,
8949 { "port", "h225.h245IpPort",
8950 FT_UINT32, BASE_DEC, NULL, 0,
8951 "T_h245IpPort", HFILL }},
8952 { &hf_h225_h245IpSourceRoute,
8953 { "ipSourceRoute", "h225.ipSourceRoute_element",
8954 FT_NONE, BASE_NONE, NULL, 0,
8955 "T_h245IpSourceRoute", HFILL }},
8956 { &hf_h225_ip,
8957 { "ip", "h225.ip",
8958 FT_BYTES, BASE_NONE, NULL, 0,
8959 "OCTET_STRING_SIZE_4", HFILL }},
8960 { &hf_h225_port,
8961 { "port", "h225.port",
8962 FT_UINT32, BASE_DEC, NULL, 0,
8963 "INTEGER_0_65535", HFILL }},
8964 { &hf_h225_h245Route,
8965 { "route", "h225.route",
8966 FT_UINT32, BASE_DEC, NULL, 0,
8967 "T_h245Route", HFILL }},
8968 { &hf_h225_h245Route_item,
8969 { "route item", "h225.route_item",
8970 FT_BYTES, BASE_NONE, NULL, 0,
8971 "OCTET_STRING_SIZE_4", HFILL }},
8972 { &hf_h225_h245Routing,
8973 { "routing", "h225.routing",
8974 FT_UINT32, BASE_DEC, VALS(h225_T_h245Routing_vals), 0,
8975 "T_h245Routing", HFILL }},
8976 { &hf_h225_strict,
8977 { "strict", "h225.strict_element",
8978 FT_NONE, BASE_NONE, NULL, 0,
8979 NULL, HFILL }},
8980 { &hf_h225_loose,
8981 { "loose", "h225.loose_element",
8982 FT_NONE, BASE_NONE, NULL, 0,
8983 NULL, HFILL }},
8984 { &hf_h225_h245IpxAddress,
8985 { "ipxAddress", "h225.ipxAddress_element",
8986 FT_NONE, BASE_NONE, NULL, 0,
8987 "T_h245IpxAddress", HFILL }},
8988 { &hf_h225_node,
8989 { "node", "h225.node",
8990 FT_BYTES, BASE_NONE, NULL, 0,
8991 "OCTET_STRING_SIZE_6", HFILL }},
8992 { &hf_h225_netnum,
8993 { "netnum", "h225.netnum",
8994 FT_BYTES, BASE_NONE, NULL, 0,
8995 "OCTET_STRING_SIZE_4", HFILL }},
8996 { &hf_h225_h245IpxPort,
8997 { "port", "h225.h245IpxPort",
8998 FT_BYTES, BASE_NONE, NULL, 0,
8999 "OCTET_STRING_SIZE_2", HFILL }},
9000 { &hf_h225_h245Ip6Address,
9001 { "ip6Address", "h225.ip6Address_element",
9002 FT_NONE, BASE_NONE, NULL, 0,
9003 "T_h245Ip6Address", HFILL }},
9004 { &hf_h225_h245Ip6,
9005 { "ip", "h225.h245Ip6",
9006 FT_IPv6, BASE_NONE, NULL, 0,
9007 "T_h245Ip6", HFILL }},
9008 { &hf_h225_h245Ip6port,
9009 { "port", "h225.h245Ip6port",
9010 FT_UINT32, BASE_DEC, NULL, 0,
9011 "T_h245Ip6port", HFILL }},
9012 { &hf_h225_netBios,
9013 { "netBios", "h225.netBios",
9014 FT_BYTES, BASE_NONE, NULL, 0,
9015 "OCTET_STRING_SIZE_16", HFILL }},
9016 { &hf_h225_nsap,
9017 { "nsap", "h225.nsap",
9018 FT_BYTES, BASE_NONE, NULL, 0,
9019 "OCTET_STRING_SIZE_1_20", HFILL }},
9020 { &hf_h225_nonStandardAddress,
9021 { "nonStandardAddress", "h225.nonStandardAddress_element",
9022 FT_NONE, BASE_NONE, NULL, 0,
9023 "NonStandardParameter", HFILL }},
9024 { &hf_h225_ipAddress,
9025 { "ipAddress", "h225.ipAddress_element",
9026 FT_NONE, BASE_NONE, NULL, 0,
9027 NULL, HFILL }},
9028 { &hf_h225_ipV4,
9029 { "ip", "h225.ipV4",
9030 FT_IPv4, BASE_NONE, NULL, 0,
9031 "IpV4", HFILL }},
9032 { &hf_h225_ipV4_port,
9033 { "port", "h225.ipV4_port",
9034 FT_UINT32, BASE_DEC, NULL, 0,
9035 "INTEGER_0_65535", HFILL }},
9036 { &hf_h225_ipSourceRoute,
9037 { "ipSourceRoute", "h225.ipSourceRoute_element",
9038 FT_NONE, BASE_NONE, NULL, 0,
9039 NULL, HFILL }},
9040 { &hf_h225_src_route_ipV4,
9041 { "ip", "h225.src_route_ipV4",
9042 FT_BYTES, BASE_NONE, NULL, 0,
9043 "OCTET_STRING_SIZE_4", HFILL }},
9044 { &hf_h225_ipV4_src_port,
9045 { "port", "h225.ipV4_src_port",
9046 FT_UINT32, BASE_DEC, NULL, 0,
9047 "INTEGER_0_65535", HFILL }},
9048 { &hf_h225_route,
9049 { "route", "h225.route",
9050 FT_UINT32, BASE_DEC, NULL, 0,
9051 NULL, HFILL }},
9052 { &hf_h225_route_item,
9053 { "route item", "h225.route_item",
9054 FT_BYTES, BASE_NONE, NULL, 0,
9055 "OCTET_STRING_SIZE_4", HFILL }},
9056 { &hf_h225_routing,
9057 { "routing", "h225.routing",
9058 FT_UINT32, BASE_DEC, VALS(h225_T_routing_vals), 0,
9059 NULL, HFILL }},
9060 { &hf_h225_ipxAddress,
9061 { "ipxAddress", "h225.ipxAddress_element",
9062 FT_NONE, BASE_NONE, NULL, 0,
9063 NULL, HFILL }},
9064 { &hf_h225_ipx_port,
9065 { "port", "h225.ipx_port",
9066 FT_BYTES, BASE_NONE, NULL, 0,
9067 "OCTET_STRING_SIZE_2", HFILL }},
9068 { &hf_h225_ip6Address,
9069 { "ip6Address", "h225.ip6Address_element",
9070 FT_NONE, BASE_NONE, NULL, 0,
9071 NULL, HFILL }},
9072 { &hf_h225_ipV6,
9073 { "ip", "h225.ipV6",
9074 FT_IPv6, BASE_NONE, NULL, 0,
9075 "OCTET_STRING_SIZE_16", HFILL }},
9076 { &hf_h225_ipV6_port,
9077 { "port", "h225.ipV6_port",
9078 FT_UINT32, BASE_DEC, NULL, 0,
9079 "INTEGER_0_65535", HFILL }},
9080 { &hf_h225_vendor,
9081 { "vendor", "h225.vendor_element",
9082 FT_NONE, BASE_NONE, NULL, 0,
9083 "VendorIdentifier", HFILL }},
9084 { &hf_h225_gatekeeper,
9085 { "gatekeeper", "h225.gatekeeper_element",
9086 FT_NONE, BASE_NONE, NULL, 0,
9087 "GatekeeperInfo", HFILL }},
9088 { &hf_h225_gateway,
9089 { "gateway", "h225.gateway_element",
9090 FT_NONE, BASE_NONE, NULL, 0,
9091 "GatewayInfo", HFILL }},
9092 { &hf_h225_mcu,
9093 { "mcu", "h225.mcu_element",
9094 FT_NONE, BASE_NONE, NULL, 0,
9095 "McuInfo", HFILL }},
9096 { &hf_h225_terminal,
9097 { "terminal", "h225.terminal_element",
9098 FT_NONE, BASE_NONE, NULL, 0,
9099 "TerminalInfo", HFILL }},
9100 { &hf_h225_mc,
9101 { "mc", "h225.mc",
9102 FT_BOOLEAN, BASE_NONE, NULL, 0,
9103 "BOOLEAN", HFILL }},
9104 { &hf_h225_undefinedNode,
9105 { "undefinedNode", "h225.undefinedNode",
9106 FT_BOOLEAN, BASE_NONE, NULL, 0,
9107 "BOOLEAN", HFILL }},
9108 { &hf_h225_set,
9109 { "set", "h225.set",
9110 FT_BYTES, BASE_NONE, NULL, 0,
9111 "BIT_STRING_SIZE_32", HFILL }},
9112 { &hf_h225_supportedTunnelledProtocols,
9113 { "supportedTunnelledProtocols", "h225.supportedTunnelledProtocols",
9114 FT_UINT32, BASE_DEC, NULL, 0,
9115 "SEQUENCE_OF_TunnelledProtocol", HFILL }},
9116 { &hf_h225_supportedTunnelledProtocols_item,
9117 { "TunnelledProtocol", "h225.TunnelledProtocol_element",
9118 FT_NONE, BASE_NONE, NULL, 0,
9119 NULL, HFILL }},
9120 { &hf_h225_protocol,
9121 { "protocol", "h225.protocol",
9122 FT_UINT32, BASE_DEC, NULL, 0,
9123 "SEQUENCE_OF_SupportedProtocols", HFILL }},
9124 { &hf_h225_protocol_item,
9125 { "SupportedProtocols", "h225.SupportedProtocols",
9126 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
9127 NULL, HFILL }},
9128 { &hf_h225_h310,
9129 { "h310", "h225.h310_element",
9130 FT_NONE, BASE_NONE, NULL, 0,
9131 "H310Caps", HFILL }},
9132 { &hf_h225_h320,
9133 { "h320", "h225.h320_element",
9134 FT_NONE, BASE_NONE, NULL, 0,
9135 "H320Caps", HFILL }},
9136 { &hf_h225_h321,
9137 { "h321", "h225.h321_element",
9138 FT_NONE, BASE_NONE, NULL, 0,
9139 "H321Caps", HFILL }},
9140 { &hf_h225_h322,
9141 { "h322", "h225.h322_element",
9142 FT_NONE, BASE_NONE, NULL, 0,
9143 "H322Caps", HFILL }},
9144 { &hf_h225_h323,
9145 { "h323", "h225.h323_element",
9146 FT_NONE, BASE_NONE, NULL, 0,
9147 "H323Caps", HFILL }},
9148 { &hf_h225_h324,
9149 { "h324", "h225.h324_element",
9150 FT_NONE, BASE_NONE, NULL, 0,
9151 "H324Caps", HFILL }},
9152 { &hf_h225_voice,
9153 { "voice", "h225.voice_element",
9154 FT_NONE, BASE_NONE, NULL, 0,
9155 "VoiceCaps", HFILL }},
9156 { &hf_h225_t120_only,
9157 { "t120-only", "h225.t120_only_element",
9158 FT_NONE, BASE_NONE, NULL, 0,
9159 "T120OnlyCaps", HFILL }},
9160 { &hf_h225_nonStandardProtocol,
9161 { "nonStandardProtocol", "h225.nonStandardProtocol_element",
9162 FT_NONE, BASE_NONE, NULL, 0,
9163 NULL, HFILL }},
9164 { &hf_h225_t38FaxAnnexbOnly,
9165 { "t38FaxAnnexbOnly", "h225.t38FaxAnnexbOnly_element",
9166 FT_NONE, BASE_NONE, NULL, 0,
9167 "T38FaxAnnexbOnlyCaps", HFILL }},
9168 { &hf_h225_sip,
9169 { "sip", "h225.sip_element",
9170 FT_NONE, BASE_NONE, NULL, 0,
9171 "SIPCaps", HFILL }},
9172 { &hf_h225_dataRatesSupported,
9173 { "dataRatesSupported", "h225.dataRatesSupported",
9174 FT_UINT32, BASE_DEC, NULL, 0,
9175 "SEQUENCE_OF_DataRate", HFILL }},
9176 { &hf_h225_dataRatesSupported_item,
9177 { "DataRate", "h225.DataRate_element",
9178 FT_NONE, BASE_NONE, NULL, 0,
9179 NULL, HFILL }},
9180 { &hf_h225_supportedPrefixes,
9181 { "supportedPrefixes", "h225.supportedPrefixes",
9182 FT_UINT32, BASE_DEC, NULL, 0,
9183 "SEQUENCE_OF_SupportedPrefix", HFILL }},
9184 { &hf_h225_supportedPrefixes_item,
9185 { "SupportedPrefix", "h225.SupportedPrefix_element",
9186 FT_NONE, BASE_NONE, NULL, 0,
9187 NULL, HFILL }},
9188 { &hf_h225_t38FaxProtocol,
9189 { "t38FaxProtocol", "h225.t38FaxProtocol",
9190 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
9191 "DataProtocolCapability", HFILL }},
9192 { &hf_h225_t38FaxProfile,
9193 { "t38FaxProfile", "h225.t38FaxProfile_element",
9194 FT_NONE, BASE_NONE, NULL, 0,
9195 NULL, HFILL }},
9196 { &hf_h225_vendorIdentifier_vendor,
9197 { "vendor", "h225.vendor_element",
9198 FT_NONE, BASE_NONE, NULL, 0,
9199 "H221NonStandard", HFILL }},
9200 { &hf_h225_productId,
9201 { "productId", "h225.productId",
9202 FT_STRING, BASE_NONE, NULL, 0,
9203 "OCTET_STRING_SIZE_1_256", HFILL }},
9204 { &hf_h225_versionId,
9205 { "versionId", "h225.versionId",
9206 FT_STRING, BASE_NONE, NULL, 0,
9207 "OCTET_STRING_SIZE_1_256", HFILL }},
9208 { &hf_h225_enterpriseNumber,
9209 { "enterpriseNumber", "h225.enterpriseNumber",
9210 FT_OID, BASE_NONE, NULL, 0,
9211 "OBJECT_IDENTIFIER", HFILL }},
9212 { &hf_h225_t35CountryCode,
9213 { "t35CountryCode", "h225.t35CountryCode",
9214 FT_UINT32, BASE_DEC, VALS(T35CountryCode_vals), 0,
9215 NULL, HFILL }},
9216 { &hf_h225_t35Extension,
9217 { "t35Extension", "h225.t35Extension",
9218 FT_UINT32, BASE_DEC, NULL, 0,
9219 NULL, HFILL }},
9220 { &hf_h225_manufacturerCode,
9221 { "manufacturerCode", "h225.manufacturerCode",
9222 FT_UINT32, BASE_DEC, NULL, 0,
9223 NULL, HFILL }},
9224 { &hf_h225_tunnelledProtocol_id,
9225 { "id", "h225.id",
9226 FT_UINT32, BASE_DEC, VALS(h225_TunnelledProtocol_id_vals), 0,
9227 "TunnelledProtocol_id", HFILL }},
9228 { &hf_h225_tunnelledProtocolObjectID,
9229 { "tunnelledProtocolObjectID", "h225.tunnelledProtocolObjectID",
9230 FT_OID, BASE_NONE, NULL, 0,
9231 NULL, HFILL }},
9232 { &hf_h225_tunnelledProtocolAlternateID,
9233 { "tunnelledProtocolAlternateID", "h225.tunnelledProtocolAlternateID_element",
9234 FT_NONE, BASE_NONE, NULL, 0,
9235 "TunnelledProtocolAlternateIdentifier", HFILL }},
9236 { &hf_h225_subIdentifier,
9237 { "subIdentifier", "h225.subIdentifier",
9238 FT_STRING, BASE_NONE, NULL, 0,
9239 "IA5String_SIZE_1_64", HFILL }},
9240 { &hf_h225_protocolType,
9241 { "protocolType", "h225.protocolType",
9242 FT_STRING, BASE_NONE, NULL, 0,
9243 "IA5String_SIZE_1_64", HFILL }},
9244 { &hf_h225_protocolVariant,
9245 { "protocolVariant", "h225.protocolVariant",
9246 FT_STRING, BASE_NONE, NULL, 0,
9247 "IA5String_SIZE_1_64", HFILL }},
9248 { &hf_h225_nonStandardIdentifier,
9249 { "nonStandardIdentifier", "h225.nonStandardIdentifier",
9250 FT_UINT32, BASE_DEC, VALS(h225_NonStandardIdentifier_vals), 0,
9251 NULL, HFILL }},
9252 { &hf_h225_nsp_data,
9253 { "data", "h225.data",
9254 FT_UINT32, BASE_DEC, NULL, 0,
9255 "T_nsp_data", HFILL }},
9256 { &hf_h225_nsiOID,
9257 { "object", "h225.object",
9258 FT_OID, BASE_NONE, NULL, 0,
9259 "T_nsiOID", HFILL }},
9260 { &hf_h225_h221NonStandard,
9261 { "h221NonStandard", "h225.h221NonStandard_element",
9262 FT_NONE, BASE_NONE, NULL, 0,
9263 NULL, HFILL }},
9264 { &hf_h225_dialledDigits,
9265 { "dialledDigits", "h225.dialledDigits",
9266 FT_STRING, BASE_NONE, NULL, 0,
9267 "DialedDigits", HFILL }},
9268 { &hf_h225_h323_ID,
9269 { "h323-ID", "h225.h323_ID",
9270 FT_STRING, BASE_NONE, NULL, 0,
9271 "BMPString_SIZE_1_256", HFILL }},
9272 { &hf_h225_url_ID,
9273 { "url-ID", "h225.url_ID",
9274 FT_STRING, BASE_NONE, NULL, 0,
9275 "IA5String_SIZE_1_512", HFILL }},
9276 { &hf_h225_transportID,
9277 { "transportID", "h225.transportID",
9278 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9279 "TransportAddress", HFILL }},
9280 { &hf_h225_email_ID,
9281 { "email-ID", "h225.email_ID",
9282 FT_STRING, BASE_NONE, NULL, 0,
9283 "IA5String_SIZE_1_512", HFILL }},
9284 { &hf_h225_partyNumber,
9285 { "partyNumber", "h225.partyNumber",
9286 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9287 NULL, HFILL }},
9288 { &hf_h225_mobileUIM,
9289 { "mobileUIM", "h225.mobileUIM",
9290 FT_UINT32, BASE_DEC, VALS(h225_MobileUIM_vals), 0,
9291 NULL, HFILL }},
9292 { &hf_h225_isupNumber,
9293 { "isupNumber", "h225.isupNumber",
9294 FT_UINT32, BASE_DEC, VALS(h225_IsupNumber_vals), 0,
9295 NULL, HFILL }},
9296 { &hf_h225_wildcard,
9297 { "wildcard", "h225.wildcard",
9298 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9299 "AliasAddress", HFILL }},
9300 { &hf_h225_range,
9301 { "range", "h225.range_element",
9302 FT_NONE, BASE_NONE, NULL, 0,
9303 NULL, HFILL }},
9304 { &hf_h225_startOfRange,
9305 { "startOfRange", "h225.startOfRange",
9306 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9307 "PartyNumber", HFILL }},
9308 { &hf_h225_endOfRange,
9309 { "endOfRange", "h225.endOfRange",
9310 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9311 "PartyNumber", HFILL }},
9312 { &hf_h225_e164Number,
9313 { "e164Number", "h225.e164Number_element",
9314 FT_NONE, BASE_NONE, NULL, 0,
9315 "PublicPartyNumber", HFILL }},
9316 { &hf_h225_dataPartyNumber,
9317 { "dataPartyNumber", "h225.dataPartyNumber",
9318 FT_STRING, BASE_NONE, NULL, 0,
9319 "NumberDigits", HFILL }},
9320 { &hf_h225_telexPartyNumber,
9321 { "telexPartyNumber", "h225.telexPartyNumber",
9322 FT_STRING, BASE_NONE, NULL, 0,
9323 "NumberDigits", HFILL }},
9324 { &hf_h225_privateNumber,
9325 { "privateNumber", "h225.privateNumber_element",
9326 FT_NONE, BASE_NONE, NULL, 0,
9327 "PrivatePartyNumber", HFILL }},
9328 { &hf_h225_nationalStandardPartyNumber,
9329 { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9330 FT_STRING, BASE_NONE, NULL, 0,
9331 "NumberDigits", HFILL }},
9332 { &hf_h225_publicTypeOfNumber,
9333 { "publicTypeOfNumber", "h225.publicTypeOfNumber",
9334 FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
9335 NULL, HFILL }},
9336 { &hf_h225_publicNumberDigits,
9337 { "publicNumberDigits", "h225.publicNumberDigits",
9338 FT_STRING, BASE_NONE, NULL, 0,
9339 "NumberDigits", HFILL }},
9340 { &hf_h225_privateTypeOfNumber,
9341 { "privateTypeOfNumber", "h225.privateTypeOfNumber",
9342 FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
9343 NULL, HFILL }},
9344 { &hf_h225_privateNumberDigits,
9345 { "privateNumberDigits", "h225.privateNumberDigits",
9346 FT_STRING, BASE_NONE, NULL, 0,
9347 "NumberDigits", HFILL }},
9348 { &hf_h225_displayName_language,
9349 { "language", "h225.displayName_language",
9350 FT_STRING, BASE_NONE, NULL, 0,
9351 "IA5String", HFILL }},
9352 { &hf_h225_name,
9353 { "name", "h225.name",
9354 FT_STRING, BASE_NONE, NULL, 0,
9355 "BMPString_SIZE_1_80", HFILL }},
9356 { &hf_h225_internationalNumber,
9357 { "internationalNumber", "h225.internationalNumber_element",
9358 FT_NONE, BASE_NONE, NULL, 0,
9359 NULL, HFILL }},
9360 { &hf_h225_nationalNumber,
9361 { "nationalNumber", "h225.nationalNumber_element",
9362 FT_NONE, BASE_NONE, NULL, 0,
9363 NULL, HFILL }},
9364 { &hf_h225_networkSpecificNumber,
9365 { "networkSpecificNumber", "h225.networkSpecificNumber_element",
9366 FT_NONE, BASE_NONE, NULL, 0,
9367 NULL, HFILL }},
9368 { &hf_h225_subscriberNumber,
9369 { "subscriberNumber", "h225.subscriberNumber_element",
9370 FT_NONE, BASE_NONE, NULL, 0,
9371 NULL, HFILL }},
9372 { &hf_h225_abbreviatedNumber,
9373 { "abbreviatedNumber", "h225.abbreviatedNumber_element",
9374 FT_NONE, BASE_NONE, NULL, 0,
9375 NULL, HFILL }},
9376 { &hf_h225_level2RegionalNumber,
9377 { "level2RegionalNumber", "h225.level2RegionalNumber_element",
9378 FT_NONE, BASE_NONE, NULL, 0,
9379 NULL, HFILL }},
9380 { &hf_h225_level1RegionalNumber,
9381 { "level1RegionalNumber", "h225.level1RegionalNumber_element",
9382 FT_NONE, BASE_NONE, NULL, 0,
9383 NULL, HFILL }},
9384 { &hf_h225_pISNSpecificNumber,
9385 { "pISNSpecificNumber", "h225.pISNSpecificNumber_element",
9386 FT_NONE, BASE_NONE, NULL, 0,
9387 NULL, HFILL }},
9388 { &hf_h225_localNumber,
9389 { "localNumber", "h225.localNumber_element",
9390 FT_NONE, BASE_NONE, NULL, 0,
9391 NULL, HFILL }},
9392 { &hf_h225_ansi_41_uim,
9393 { "ansi-41-uim", "h225.ansi_41_uim_element",
9394 FT_NONE, BASE_NONE, NULL, 0,
9395 NULL, HFILL }},
9396 { &hf_h225_gsm_uim,
9397 { "gsm-uim", "h225.gsm_uim_element",
9398 FT_NONE, BASE_NONE, NULL, 0,
9399 NULL, HFILL }},
9400 { &hf_h225_imsi,
9401 { "imsi", "h225.imsi",
9402 FT_STRING, BASE_NONE, NULL, 0,
9403 "TBCD_STRING_SIZE_3_16", HFILL }},
9404 { &hf_h225_min,
9405 { "min", "h225.min",
9406 FT_STRING, BASE_NONE, NULL, 0,
9407 "TBCD_STRING_SIZE_3_16", HFILL }},
9408 { &hf_h225_mdn,
9409 { "mdn", "h225.mdn",
9410 FT_STRING, BASE_NONE, NULL, 0,
9411 "TBCD_STRING_SIZE_3_16", HFILL }},
9412 { &hf_h225_msisdn,
9413 { "msisdn", "h225.msisdn",
9414 FT_STRING, BASE_NONE, NULL, 0,
9415 "TBCD_STRING_SIZE_3_16", HFILL }},
9416 { &hf_h225_esn,
9417 { "esn", "h225.esn",
9418 FT_STRING, BASE_NONE, NULL, 0,
9419 "TBCD_STRING_SIZE_16", HFILL }},
9420 { &hf_h225_mscid,
9421 { "mscid", "h225.mscid",
9422 FT_STRING, BASE_NONE, NULL, 0,
9423 "TBCD_STRING_SIZE_3_16", HFILL }},
9424 { &hf_h225_system_id,
9425 { "system-id", "h225.system_id",
9426 FT_UINT32, BASE_DEC, VALS(h225_T_system_id_vals), 0,
9427 NULL, HFILL }},
9428 { &hf_h225_sid,
9429 { "sid", "h225.sid",
9430 FT_STRING, BASE_NONE, NULL, 0,
9431 "TBCD_STRING_SIZE_1_4", HFILL }},
9432 { &hf_h225_mid,
9433 { "mid", "h225.mid",
9434 FT_STRING, BASE_NONE, NULL, 0,
9435 "TBCD_STRING_SIZE_1_4", HFILL }},
9436 { &hf_h225_systemMyTypeCode,
9437 { "systemMyTypeCode", "h225.systemMyTypeCode",
9438 FT_BYTES, BASE_NONE, NULL, 0,
9439 "OCTET_STRING_SIZE_1", HFILL }},
9440 { &hf_h225_systemAccessType,
9441 { "systemAccessType", "h225.systemAccessType",
9442 FT_BYTES, BASE_NONE, NULL, 0,
9443 "OCTET_STRING_SIZE_1", HFILL }},
9444 { &hf_h225_qualificationInformationCode,
9445 { "qualificationInformationCode", "h225.qualificationInformationCode",
9446 FT_BYTES, BASE_NONE, NULL, 0,
9447 "OCTET_STRING_SIZE_1", HFILL }},
9448 { &hf_h225_sesn,
9449 { "sesn", "h225.sesn",
9450 FT_STRING, BASE_NONE, NULL, 0,
9451 "TBCD_STRING_SIZE_16", HFILL }},
9452 { &hf_h225_soc,
9453 { "soc", "h225.soc",
9454 FT_STRING, BASE_NONE, NULL, 0,
9455 "TBCD_STRING_SIZE_3_16", HFILL }},
9456 { &hf_h225_tmsi,
9457 { "tmsi", "h225.tmsi",
9458 FT_BYTES, BASE_NONE, NULL, 0,
9459 "OCTET_STRING_SIZE_1_4", HFILL }},
9460 { &hf_h225_imei,
9461 { "imei", "h225.imei",
9462 FT_STRING, BASE_NONE, NULL, 0,
9463 "TBCD_STRING_SIZE_15_16", HFILL }},
9464 { &hf_h225_hplmn,
9465 { "hplmn", "h225.hplmn",
9466 FT_STRING, BASE_NONE, NULL, 0,
9467 "TBCD_STRING_SIZE_1_4", HFILL }},
9468 { &hf_h225_vplmn,
9469 { "vplmn", "h225.vplmn",
9470 FT_STRING, BASE_NONE, NULL, 0,
9471 "TBCD_STRING_SIZE_1_4", HFILL }},
9472 { &hf_h225_isupE164Number,
9473 { "e164Number", "h225.e164Number_element",
9474 FT_NONE, BASE_NONE, NULL, 0,
9475 "IsupPublicPartyNumber", HFILL }},
9476 { &hf_h225_isupDataPartyNumber,
9477 { "dataPartyNumber", "h225.dataPartyNumber",
9478 FT_STRING, BASE_NONE, NULL, 0,
9479 "IsupDigits", HFILL }},
9480 { &hf_h225_isupTelexPartyNumber,
9481 { "telexPartyNumber", "h225.telexPartyNumber",
9482 FT_STRING, BASE_NONE, NULL, 0,
9483 "IsupDigits", HFILL }},
9484 { &hf_h225_isupPrivateNumber,
9485 { "privateNumber", "h225.privateNumber_element",
9486 FT_NONE, BASE_NONE, NULL, 0,
9487 "IsupPrivatePartyNumber", HFILL }},
9488 { &hf_h225_isupNationalStandardPartyNumber,
9489 { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9490 FT_STRING, BASE_NONE, NULL, 0,
9491 "IsupDigits", HFILL }},
9492 { &hf_h225_natureOfAddress,
9493 { "natureOfAddress", "h225.natureOfAddress",
9494 FT_UINT32, BASE_DEC, VALS(h225_NatureOfAddress_vals), 0,
9495 NULL, HFILL }},
9496 { &hf_h225_address,
9497 { "address", "h225.address",
9498 FT_STRING, BASE_NONE, NULL, 0,
9499 "IsupDigits", HFILL }},
9500 { &hf_h225_routingNumberNationalFormat,
9501 { "routingNumberNationalFormat", "h225.routingNumberNationalFormat_element",
9502 FT_NONE, BASE_NONE, NULL, 0,
9503 NULL, HFILL }},
9504 { &hf_h225_routingNumberNetworkSpecificFormat,
9505 { "routingNumberNetworkSpecificFormat", "h225.routingNumberNetworkSpecificFormat_element",
9506 FT_NONE, BASE_NONE, NULL, 0,
9507 NULL, HFILL }},
9508 { &hf_h225_routingNumberWithCalledDirectoryNumber,
9509 { "routingNumberWithCalledDirectoryNumber", "h225.routingNumberWithCalledDirectoryNumber_element",
9510 FT_NONE, BASE_NONE, NULL, 0,
9511 NULL, HFILL }},
9512 { &hf_h225_extAliasAddress,
9513 { "address", "h225.extAliasAddress",
9514 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9515 "AliasAddress", HFILL }},
9516 { &hf_h225_aliasAddress,
9517 { "aliasAddress", "h225.aliasAddress",
9518 FT_UINT32, BASE_DEC, NULL, 0,
9519 "SEQUENCE_OF_AliasAddress", HFILL }},
9520 { &hf_h225_aliasAddress_item,
9521 { "AliasAddress", "h225.AliasAddress",
9522 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9523 NULL, HFILL }},
9524 { &hf_h225_callSignalAddress,
9525 { "callSignalAddress", "h225.callSignalAddress",
9526 FT_UINT32, BASE_DEC, NULL, 0,
9527 "SEQUENCE_OF_TransportAddress", HFILL }},
9528 { &hf_h225_callSignalAddress_item,
9529 { "TransportAddress", "h225.TransportAddress",
9530 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9531 NULL, HFILL }},
9532 { &hf_h225_rasAddress,
9533 { "rasAddress", "h225.rasAddress",
9534 FT_UINT32, BASE_DEC, NULL, 0,
9535 "SEQUENCE_OF_TransportAddress", HFILL }},
9536 { &hf_h225_rasAddress_item,
9537 { "TransportAddress", "h225.TransportAddress",
9538 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9539 NULL, HFILL }},
9540 { &hf_h225_endpointType,
9541 { "endpointType", "h225.endpointType_element",
9542 FT_NONE, BASE_NONE, NULL, 0,
9543 NULL, HFILL }},
9544 { &hf_h225_priority,
9545 { "priority", "h225.priority",
9546 FT_UINT32, BASE_DEC, NULL, 0,
9547 "INTEGER_0_127", HFILL }},
9548 { &hf_h225_remoteExtensionAddress,
9549 { "remoteExtensionAddress", "h225.remoteExtensionAddress",
9550 FT_UINT32, BASE_DEC, NULL, 0,
9551 "SEQUENCE_OF_AliasAddress", HFILL }},
9552 { &hf_h225_ep_remoteExtensionAddress_item,
9553 { "AliasAddress", "h225.remoteExtensionAddress.item",
9554 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9555 NULL, HFILL }},
9556 { &hf_h225_alternateTransportAddresses,
9557 { "alternateTransportAddresses", "h225.alternateTransportAddresses_element",
9558 FT_NONE, BASE_NONE, NULL, 0,
9559 NULL, HFILL }},
9560 { &hf_h225_annexE,
9561 { "annexE", "h225.annexE",
9562 FT_UINT32, BASE_DEC, NULL, 0,
9563 "SEQUENCE_OF_TransportAddress", HFILL }},
9564 { &hf_h225_annexE_item,
9565 { "TransportAddress", "h225.TransportAddress",
9566 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9567 NULL, HFILL }},
9568 { &hf_h225_sctp,
9569 { "sctp", "h225.sctp",
9570 FT_UINT32, BASE_DEC, NULL, 0,
9571 "SEQUENCE_OF_TransportAddress", HFILL }},
9572 { &hf_h225_sctp_item,
9573 { "TransportAddress", "h225.TransportAddress",
9574 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9575 NULL, HFILL }},
9576 { &hf_h225_tcp,
9577 { "tcp", "h225.tcp_element",
9578 FT_NONE, BASE_NONE, NULL, 0,
9579 NULL, HFILL }},
9580 { &hf_h225_annexE_flg,
9581 { "annexE", "h225.annexE_element",
9582 FT_NONE, BASE_NONE, NULL, 0,
9583 NULL, HFILL }},
9584 { &hf_h225_sctp_flg,
9585 { "sctp", "h225.sctp_element",
9586 FT_NONE, BASE_NONE, NULL, 0,
9587 NULL, HFILL }},
9588 { &hf_h225_alternateGK_rasAddress,
9589 { "rasAddress", "h225.rasAddress",
9590 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9591 "TransportAddress", HFILL }},
9592 { &hf_h225_gatekeeperIdentifier,
9593 { "gatekeeperIdentifier", "h225.gatekeeperIdentifier",
9594 FT_STRING, BASE_NONE, NULL, 0,
9595 NULL, HFILL }},
9596 { &hf_h225_needToRegister,
9597 { "needToRegister", "h225.needToRegister",
9598 FT_BOOLEAN, BASE_NONE, NULL, 0,
9599 "BOOLEAN", HFILL }},
9600 { &hf_h225_alternateGatekeeper,
9601 { "alternateGatekeeper", "h225.alternateGatekeeper",
9602 FT_UINT32, BASE_DEC, NULL, 0,
9603 "SEQUENCE_OF_AlternateGK", HFILL }},
9604 { &hf_h225_alternateGatekeeper_item,
9605 { "AlternateGK", "h225.AlternateGK_element",
9606 FT_NONE, BASE_NONE, NULL, 0,
9607 NULL, HFILL }},
9608 { &hf_h225_altGKisPermanent,
9609 { "altGKisPermanent", "h225.altGKisPermanent",
9610 FT_BOOLEAN, BASE_NONE, NULL, 0,
9611 "BOOLEAN", HFILL }},
9612 { &hf_h225_default,
9613 { "default", "h225.default_element",
9614 FT_NONE, BASE_NONE, NULL, 0,
9615 NULL, HFILL }},
9616 { &hf_h225_encryption,
9617 { "encryption", "h225.encryption",
9618 FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9619 "SecurityServiceMode", HFILL }},
9620 { &hf_h225_authenticaton,
9621 { "authenticaton", "h225.authenticaton",
9622 FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9623 "SecurityServiceMode", HFILL }},
9624 { &hf_h225_securityCapabilities_integrity,
9625 { "integrity", "h225.integrity",
9626 FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9627 "SecurityServiceMode", HFILL }},
9628 { &hf_h225_securityWrongSyncTime,
9629 { "securityWrongSyncTime", "h225.securityWrongSyncTime_element",
9630 FT_NONE, BASE_NONE, NULL, 0,
9631 NULL, HFILL }},
9632 { &hf_h225_securityReplay,
9633 { "securityReplay", "h225.securityReplay_element",
9634 FT_NONE, BASE_NONE, NULL, 0,
9635 NULL, HFILL }},
9636 { &hf_h225_securityWrongGeneralID,
9637 { "securityWrongGeneralID", "h225.securityWrongGeneralID_element",
9638 FT_NONE, BASE_NONE, NULL, 0,
9639 NULL, HFILL }},
9640 { &hf_h225_securityWrongSendersID,
9641 { "securityWrongSendersID", "h225.securityWrongSendersID_element",
9642 FT_NONE, BASE_NONE, NULL, 0,
9643 NULL, HFILL }},
9644 { &hf_h225_securityIntegrityFailed,
9645 { "securityIntegrityFailed", "h225.securityIntegrityFailed_element",
9646 FT_NONE, BASE_NONE, NULL, 0,
9647 NULL, HFILL }},
9648 { &hf_h225_securityWrongOID,
9649 { "securityWrongOID", "h225.securityWrongOID_element",
9650 FT_NONE, BASE_NONE, NULL, 0,
9651 NULL, HFILL }},
9652 { &hf_h225_securityDHmismatch,
9653 { "securityDHmismatch", "h225.securityDHmismatch_element",
9654 FT_NONE, BASE_NONE, NULL, 0,
9655 NULL, HFILL }},
9656 { &hf_h225_securityCertificateExpired,
9657 { "securityCertificateExpired", "h225.securityCertificateExpired_element",
9658 FT_NONE, BASE_NONE, NULL, 0,
9659 NULL, HFILL }},
9660 { &hf_h225_securityCertificateDateInvalid,
9661 { "securityCertificateDateInvalid", "h225.securityCertificateDateInvalid_element",
9662 FT_NONE, BASE_NONE, NULL, 0,
9663 NULL, HFILL }},
9664 { &hf_h225_securityCertificateRevoked,
9665 { "securityCertificateRevoked", "h225.securityCertificateRevoked_element",
9666 FT_NONE, BASE_NONE, NULL, 0,
9667 NULL, HFILL }},
9668 { &hf_h225_securityCertificateNotReadable,
9669 { "securityCertificateNotReadable", "h225.securityCertificateNotReadable_element",
9670 FT_NONE, BASE_NONE, NULL, 0,
9671 NULL, HFILL }},
9672 { &hf_h225_securityCertificateSignatureInvalid,
9673 { "securityCertificateSignatureInvalid", "h225.securityCertificateSignatureInvalid_element",
9674 FT_NONE, BASE_NONE, NULL, 0,
9675 NULL, HFILL }},
9676 { &hf_h225_securityCertificateMissing,
9677 { "securityCertificateMissing", "h225.securityCertificateMissing_element",
9678 FT_NONE, BASE_NONE, NULL, 0,
9679 NULL, HFILL }},
9680 { &hf_h225_securityCertificateIncomplete,
9681 { "securityCertificateIncomplete", "h225.securityCertificateIncomplete_element",
9682 FT_NONE, BASE_NONE, NULL, 0,
9683 NULL, HFILL }},
9684 { &hf_h225_securityUnsupportedCertificateAlgOID,
9685 { "securityUnsupportedCertificateAlgOID", "h225.securityUnsupportedCertificateAlgOID_element",
9686 FT_NONE, BASE_NONE, NULL, 0,
9687 NULL, HFILL }},
9688 { &hf_h225_securityUnknownCA,
9689 { "securityUnknownCA", "h225.securityUnknownCA_element",
9690 FT_NONE, BASE_NONE, NULL, 0,
9691 NULL, HFILL }},
9692 { &hf_h225_noSecurity,
9693 { "noSecurity", "h225.noSecurity_element",
9694 FT_NONE, BASE_NONE, NULL, 0,
9695 NULL, HFILL }},
9696 { &hf_h225_tls,
9697 { "tls", "h225.tls_element",
9698 FT_NONE, BASE_NONE, NULL, 0,
9699 "SecurityCapabilities", HFILL }},
9700 { &hf_h225_ipsec,
9701 { "ipsec", "h225.ipsec_element",
9702 FT_NONE, BASE_NONE, NULL, 0,
9703 "SecurityCapabilities", HFILL }},
9704 { &hf_h225_q932Full,
9705 { "q932Full", "h225.q932Full",
9706 FT_BOOLEAN, BASE_NONE, NULL, 0,
9707 "BOOLEAN", HFILL }},
9708 { &hf_h225_q951Full,
9709 { "q951Full", "h225.q951Full",
9710 FT_BOOLEAN, BASE_NONE, NULL, 0,
9711 "BOOLEAN", HFILL }},
9712 { &hf_h225_q952Full,
9713 { "q952Full", "h225.q952Full",
9714 FT_BOOLEAN, BASE_NONE, NULL, 0,
9715 "BOOLEAN", HFILL }},
9716 { &hf_h225_q953Full,
9717 { "q953Full", "h225.q953Full",
9718 FT_BOOLEAN, BASE_NONE, NULL, 0,
9719 "BOOLEAN", HFILL }},
9720 { &hf_h225_q955Full,
9721 { "q955Full", "h225.q955Full",
9722 FT_BOOLEAN, BASE_NONE, NULL, 0,
9723 "BOOLEAN", HFILL }},
9724 { &hf_h225_q956Full,
9725 { "q956Full", "h225.q956Full",
9726 FT_BOOLEAN, BASE_NONE, NULL, 0,
9727 "BOOLEAN", HFILL }},
9728 { &hf_h225_q957Full,
9729 { "q957Full", "h225.q957Full",
9730 FT_BOOLEAN, BASE_NONE, NULL, 0,
9731 "BOOLEAN", HFILL }},
9732 { &hf_h225_q954Info,
9733 { "q954Info", "h225.q954Info_element",
9734 FT_NONE, BASE_NONE, NULL, 0,
9735 "Q954Details", HFILL }},
9736 { &hf_h225_conferenceCalling,
9737 { "conferenceCalling", "h225.conferenceCalling",
9738 FT_BOOLEAN, BASE_NONE, NULL, 0,
9739 "BOOLEAN", HFILL }},
9740 { &hf_h225_threePartyService,
9741 { "threePartyService", "h225.threePartyService",
9742 FT_BOOLEAN, BASE_NONE, NULL, 0,
9743 "BOOLEAN", HFILL }},
9744 { &hf_h225_guid,
9745 { "guid", "h225.guid",
9746 FT_GUID, BASE_NONE, NULL, 0,
9747 NULL, HFILL }},
9748 { &hf_h225_isoAlgorithm,
9749 { "isoAlgorithm", "h225.isoAlgorithm",
9750 FT_OID, BASE_NONE, NULL, 0,
9751 "OBJECT_IDENTIFIER", HFILL }},
9752 { &hf_h225_hMAC_MD5,
9753 { "hMAC-MD5", "h225.hMAC_MD5_element",
9754 FT_NONE, BASE_NONE, NULL, 0,
9755 NULL, HFILL }},
9756 { &hf_h225_hMAC_iso10118_2_s,
9757 { "hMAC-iso10118-2-s", "h225.hMAC_iso10118_2_s",
9758 FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9759 "EncryptIntAlg", HFILL }},
9760 { &hf_h225_hMAC_iso10118_2_l,
9761 { "hMAC-iso10118-2-l", "h225.hMAC_iso10118_2_l",
9762 FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9763 "EncryptIntAlg", HFILL }},
9764 { &hf_h225_hMAC_iso10118_3,
9765 { "hMAC-iso10118-3", "h225.hMAC_iso10118_3",
9766 FT_OID, BASE_NONE, NULL, 0,
9767 "OBJECT_IDENTIFIER", HFILL }},
9768 { &hf_h225_digSig,
9769 { "digSig", "h225.digSig_element",
9770 FT_NONE, BASE_NONE, NULL, 0,
9771 NULL, HFILL }},
9772 { &hf_h225_iso9797,
9773 { "iso9797", "h225.iso9797",
9774 FT_OID, BASE_NONE, NULL, 0,
9775 "OBJECT_IDENTIFIER", HFILL }},
9776 { &hf_h225_nonIsoIM,
9777 { "nonIsoIM", "h225.nonIsoIM",
9778 FT_UINT32, BASE_DEC, VALS(h225_NonIsoIntegrityMechanism_vals), 0,
9779 "NonIsoIntegrityMechanism", HFILL }},
9780 { &hf_h225_algorithmOID,
9781 { "algorithmOID", "h225.algorithmOID",
9782 FT_OID, BASE_NONE, NULL, 0,
9783 "OBJECT_IDENTIFIER", HFILL }},
9784 { &hf_h225_icv,
9785 { "icv", "h225.icv",
9786 FT_BYTES, BASE_NONE, NULL, 0,
9787 "BIT_STRING", HFILL }},
9788 { &hf_h225_cryptoEPPwdHash,
9789 { "cryptoEPPwdHash", "h225.cryptoEPPwdHash_element",
9790 FT_NONE, BASE_NONE, NULL, 0,
9791 NULL, HFILL }},
9792 { &hf_h225_alias,
9793 { "alias", "h225.alias",
9794 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9795 "AliasAddress", HFILL }},
9796 { &hf_h225_timeStamp,
9797 { "timeStamp", "h225.timeStamp",
9798 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
9799 NULL, HFILL }},
9800 { &hf_h225_token,
9801 { "token", "h225.token_element",
9802 FT_NONE, BASE_NONE, NULL, 0,
9803 "HASHED", HFILL }},
9804 { &hf_h225_cryptoGKPwdHash,
9805 { "cryptoGKPwdHash", "h225.cryptoGKPwdHash_element",
9806 FT_NONE, BASE_NONE, NULL, 0,
9807 NULL, HFILL }},
9808 { &hf_h225_gatekeeperId,
9809 { "gatekeeperId", "h225.gatekeeperId",
9810 FT_STRING, BASE_NONE, NULL, 0,
9811 "GatekeeperIdentifier", HFILL }},
9812 { &hf_h225_cryptoEPPwdEncr,
9813 { "cryptoEPPwdEncr", "h225.cryptoEPPwdEncr_element",
9814 FT_NONE, BASE_NONE, NULL, 0,
9815 "ENCRYPTED", HFILL }},
9816 { &hf_h225_cryptoGKPwdEncr,
9817 { "cryptoGKPwdEncr", "h225.cryptoGKPwdEncr_element",
9818 FT_NONE, BASE_NONE, NULL, 0,
9819 "ENCRYPTED", HFILL }},
9820 { &hf_h225_cryptoEPCert,
9821 { "cryptoEPCert", "h225.cryptoEPCert_element",
9822 FT_NONE, BASE_NONE, NULL, 0,
9823 "SIGNED", HFILL }},
9824 { &hf_h225_cryptoGKCert,
9825 { "cryptoGKCert", "h225.cryptoGKCert_element",
9826 FT_NONE, BASE_NONE, NULL, 0,
9827 "SIGNED", HFILL }},
9828 { &hf_h225_cryptoFastStart,
9829 { "cryptoFastStart", "h225.cryptoFastStart_element",
9830 FT_NONE, BASE_NONE, NULL, 0,
9831 "SIGNED", HFILL }},
9832 { &hf_h225_nestedcryptoToken,
9833 { "nestedcryptoToken", "h225.nestedcryptoToken",
9834 FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
9835 "CryptoToken", HFILL }},
9836 { &hf_h225_channelRate,
9837 { "channelRate", "h225.channelRate",
9838 FT_UINT32, BASE_DEC, NULL, 0,
9839 "BandWidth", HFILL }},
9840 { &hf_h225_channelMultiplier,
9841 { "channelMultiplier", "h225.channelMultiplier",
9842 FT_UINT32, BASE_DEC, NULL, 0,
9843 "INTEGER_1_256", HFILL }},
9844 { &hf_h225_globalCallId,
9845 { "globalCallId", "h225.globalCallId",
9846 FT_GUID, BASE_NONE, NULL, 0,
9847 "GloballyUniqueID", HFILL }},
9848 { &hf_h225_threadId,
9849 { "threadId", "h225.threadId",
9850 FT_GUID, BASE_NONE, NULL, 0,
9851 "GloballyUniqueID", HFILL }},
9852 { &hf_h225_prefix,
9853 { "prefix", "h225.prefix",
9854 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9855 "AliasAddress", HFILL }},
9856 { &hf_h225_canReportCallCapacity,
9857 { "canReportCallCapacity", "h225.canReportCallCapacity",
9858 FT_BOOLEAN, BASE_NONE, NULL, 0,
9859 "BOOLEAN", HFILL }},
9860 { &hf_h225_capacityReportingSpecification_when,
9861 { "when", "h225.when_element",
9862 FT_NONE, BASE_NONE, NULL, 0,
9863 "CapacityReportingSpecification_when", HFILL }},
9864 { &hf_h225_callStart,
9865 { "callStart", "h225.callStart_element",
9866 FT_NONE, BASE_NONE, NULL, 0,
9867 NULL, HFILL }},
9868 { &hf_h225_callEnd,
9869 { "callEnd", "h225.callEnd_element",
9870 FT_NONE, BASE_NONE, NULL, 0,
9871 NULL, HFILL }},
9872 { &hf_h225_maximumCallCapacity,
9873 { "maximumCallCapacity", "h225.maximumCallCapacity_element",
9874 FT_NONE, BASE_NONE, NULL, 0,
9875 "CallCapacityInfo", HFILL }},
9876 { &hf_h225_currentCallCapacity,
9877 { "currentCallCapacity", "h225.currentCallCapacity_element",
9878 FT_NONE, BASE_NONE, NULL, 0,
9879 "CallCapacityInfo", HFILL }},
9880 { &hf_h225_voiceGwCallsAvailable,
9881 { "voiceGwCallsAvailable", "h225.voiceGwCallsAvailable",
9882 FT_UINT32, BASE_DEC, NULL, 0,
9883 "SEQUENCE_OF_CallsAvailable", HFILL }},
9884 { &hf_h225_voiceGwCallsAvailable_item,
9885 { "CallsAvailable", "h225.CallsAvailable_element",
9886 FT_NONE, BASE_NONE, NULL, 0,
9887 NULL, HFILL }},
9888 { &hf_h225_h310GwCallsAvailable,
9889 { "h310GwCallsAvailable", "h225.h310GwCallsAvailable",
9890 FT_UINT32, BASE_DEC, NULL, 0,
9891 "SEQUENCE_OF_CallsAvailable", HFILL }},
9892 { &hf_h225_h310GwCallsAvailable_item,
9893 { "CallsAvailable", "h225.CallsAvailable_element",
9894 FT_NONE, BASE_NONE, NULL, 0,
9895 NULL, HFILL }},
9896 { &hf_h225_h320GwCallsAvailable,
9897 { "h320GwCallsAvailable", "h225.h320GwCallsAvailable",
9898 FT_UINT32, BASE_DEC, NULL, 0,
9899 "SEQUENCE_OF_CallsAvailable", HFILL }},
9900 { &hf_h225_h320GwCallsAvailable_item,
9901 { "CallsAvailable", "h225.CallsAvailable_element",
9902 FT_NONE, BASE_NONE, NULL, 0,
9903 NULL, HFILL }},
9904 { &hf_h225_h321GwCallsAvailable,
9905 { "h321GwCallsAvailable", "h225.h321GwCallsAvailable",
9906 FT_UINT32, BASE_DEC, NULL, 0,
9907 "SEQUENCE_OF_CallsAvailable", HFILL }},
9908 { &hf_h225_h321GwCallsAvailable_item,
9909 { "CallsAvailable", "h225.CallsAvailable_element",
9910 FT_NONE, BASE_NONE, NULL, 0,
9911 NULL, HFILL }},
9912 { &hf_h225_h322GwCallsAvailable,
9913 { "h322GwCallsAvailable", "h225.h322GwCallsAvailable",
9914 FT_UINT32, BASE_DEC, NULL, 0,
9915 "SEQUENCE_OF_CallsAvailable", HFILL }},
9916 { &hf_h225_h322GwCallsAvailable_item,
9917 { "CallsAvailable", "h225.CallsAvailable_element",
9918 FT_NONE, BASE_NONE, NULL, 0,
9919 NULL, HFILL }},
9920 { &hf_h225_h323GwCallsAvailable,
9921 { "h323GwCallsAvailable", "h225.h323GwCallsAvailable",
9922 FT_UINT32, BASE_DEC, NULL, 0,
9923 "SEQUENCE_OF_CallsAvailable", HFILL }},
9924 { &hf_h225_h323GwCallsAvailable_item,
9925 { "CallsAvailable", "h225.CallsAvailable_element",
9926 FT_NONE, BASE_NONE, NULL, 0,
9927 NULL, HFILL }},
9928 { &hf_h225_h324GwCallsAvailable,
9929 { "h324GwCallsAvailable", "h225.h324GwCallsAvailable",
9930 FT_UINT32, BASE_DEC, NULL, 0,
9931 "SEQUENCE_OF_CallsAvailable", HFILL }},
9932 { &hf_h225_h324GwCallsAvailable_item,
9933 { "CallsAvailable", "h225.CallsAvailable_element",
9934 FT_NONE, BASE_NONE, NULL, 0,
9935 NULL, HFILL }},
9936 { &hf_h225_t120OnlyGwCallsAvailable,
9937 { "t120OnlyGwCallsAvailable", "h225.t120OnlyGwCallsAvailable",
9938 FT_UINT32, BASE_DEC, NULL, 0,
9939 "SEQUENCE_OF_CallsAvailable", HFILL }},
9940 { &hf_h225_t120OnlyGwCallsAvailable_item,
9941 { "CallsAvailable", "h225.CallsAvailable_element",
9942 FT_NONE, BASE_NONE, NULL, 0,
9943 NULL, HFILL }},
9944 { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable,
9945 { "t38FaxAnnexbOnlyGwCallsAvailable", "h225.t38FaxAnnexbOnlyGwCallsAvailable",
9946 FT_UINT32, BASE_DEC, NULL, 0,
9947 "SEQUENCE_OF_CallsAvailable", HFILL }},
9948 { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item,
9949 { "CallsAvailable", "h225.CallsAvailable_element",
9950 FT_NONE, BASE_NONE, NULL, 0,
9951 NULL, HFILL }},
9952 { &hf_h225_terminalCallsAvailable,
9953 { "terminalCallsAvailable", "h225.terminalCallsAvailable",
9954 FT_UINT32, BASE_DEC, NULL, 0,
9955 "SEQUENCE_OF_CallsAvailable", HFILL }},
9956 { &hf_h225_terminalCallsAvailable_item,
9957 { "CallsAvailable", "h225.CallsAvailable_element",
9958 FT_NONE, BASE_NONE, NULL, 0,
9959 NULL, HFILL }},
9960 { &hf_h225_mcuCallsAvailable,
9961 { "mcuCallsAvailable", "h225.mcuCallsAvailable",
9962 FT_UINT32, BASE_DEC, NULL, 0,
9963 "SEQUENCE_OF_CallsAvailable", HFILL }},
9964 { &hf_h225_mcuCallsAvailable_item,
9965 { "CallsAvailable", "h225.CallsAvailable_element",
9966 FT_NONE, BASE_NONE, NULL, 0,
9967 NULL, HFILL }},
9968 { &hf_h225_sipGwCallsAvailable,
9969 { "sipGwCallsAvailable", "h225.sipGwCallsAvailable",
9970 FT_UINT32, BASE_DEC, NULL, 0,
9971 "SEQUENCE_OF_CallsAvailable", HFILL }},
9972 { &hf_h225_sipGwCallsAvailable_item,
9973 { "CallsAvailable", "h225.CallsAvailable_element",
9974 FT_NONE, BASE_NONE, NULL, 0,
9975 NULL, HFILL }},
9976 { &hf_h225_calls,
9977 { "calls", "h225.calls",
9978 FT_UINT32, BASE_DEC, NULL, 0,
9979 "INTEGER_0_4294967295", HFILL }},
9980 { &hf_h225_group_IA5String,
9981 { "group", "h225.group",
9982 FT_STRING, BASE_NONE, NULL, 0,
9983 "IA5String_SIZE_1_128", HFILL }},
9984 { &hf_h225_carrier,
9985 { "carrier", "h225.carrier_element",
9986 FT_NONE, BASE_NONE, NULL, 0,
9987 "CarrierInfo", HFILL }},
9988 { &hf_h225_sourceCircuitID,
9989 { "sourceCircuitID", "h225.sourceCircuitID_element",
9990 FT_NONE, BASE_NONE, NULL, 0,
9991 "CircuitIdentifier", HFILL }},
9992 { &hf_h225_destinationCircuitID,
9993 { "destinationCircuitID", "h225.destinationCircuitID_element",
9994 FT_NONE, BASE_NONE, NULL, 0,
9995 "CircuitIdentifier", HFILL }},
9996 { &hf_h225_cic,
9997 { "cic", "h225.cic_element",
9998 FT_NONE, BASE_NONE, NULL, 0,
9999 "CicInfo", HFILL }},
10000 { &hf_h225_group,
10001 { "group", "h225.group_element",
10002 FT_NONE, BASE_NONE, NULL, 0,
10003 "GroupID", HFILL }},
10004 { &hf_h225_cic_2_4,
10005 { "cic", "h225.cic",
10006 FT_UINT32, BASE_DEC, NULL, 0,
10007 "T_cic_2_4", HFILL }},
10008 { &hf_h225_cic_2_4_item,
10009 { "cic item", "h225.cic_item",
10010 FT_BYTES, BASE_NONE, NULL, 0,
10011 "OCTET_STRING_SIZE_2_4", HFILL }},
10012 { &hf_h225_pointCode,
10013 { "pointCode", "h225.pointCode",
10014 FT_BYTES, BASE_NONE, NULL, 0,
10015 "OCTET_STRING_SIZE_2_5", HFILL }},
10016 { &hf_h225_member,
10017 { "member", "h225.member",
10018 FT_UINT32, BASE_DEC, NULL, 0,
10019 NULL, HFILL }},
10020 { &hf_h225_member_item,
10021 { "member item", "h225.member_item",
10022 FT_UINT32, BASE_DEC, NULL, 0,
10023 "INTEGER_0_65535", HFILL }},
10024 { &hf_h225_carrierIdentificationCode,
10025 { "carrierIdentificationCode", "h225.carrierIdentificationCode",
10026 FT_BYTES, BASE_NONE, NULL, 0,
10027 "OCTET_STRING_SIZE_3_4", HFILL }},
10028 { &hf_h225_carrierName,
10029 { "carrierName", "h225.carrierName",
10030 FT_STRING, BASE_NONE, NULL, 0,
10031 "IA5String_SIZE_1_128", HFILL }},
10032 { &hf_h225_url,
10033 { "url", "h225.url",
10034 FT_STRING, BASE_NONE, NULL, 0,
10035 "IA5String_SIZE_0_512", HFILL }},
10036 { &hf_h225_signal,
10037 { "signal", "h225.signal",
10038 FT_BYTES, BASE_NONE, NULL, 0,
10039 "H248SignalsDescriptor", HFILL }},
10040 { &hf_h225_callCreditServiceControl,
10041 { "callCreditServiceControl", "h225.callCreditServiceControl_element",
10042 FT_NONE, BASE_NONE, NULL, 0,
10043 NULL, HFILL }},
10044 { &hf_h225_sessionId_0_255,
10045 { "sessionId", "h225.sessionId",
10046 FT_UINT32, BASE_DEC, NULL, 0,
10047 "INTEGER_0_255", HFILL }},
10048 { &hf_h225_contents,
10049 { "contents", "h225.contents",
10050 FT_UINT32, BASE_DEC, VALS(h225_ServiceControlDescriptor_vals), 0,
10051 "ServiceControlDescriptor", HFILL }},
10052 { &hf_h225_reason,
10053 { "reason", "h225.reason",
10054 FT_UINT32, BASE_DEC, VALS(h225_ServiceControlSession_reason_vals), 0,
10055 "ServiceControlSession_reason", HFILL }},
10056 { &hf_h225_open,
10057 { "open", "h225.open_element",
10058 FT_NONE, BASE_NONE, NULL, 0,
10059 NULL, HFILL }},
10060 { &hf_h225_refresh,
10061 { "refresh", "h225.refresh_element",
10062 FT_NONE, BASE_NONE, NULL, 0,
10063 NULL, HFILL }},
10064 { &hf_h225_close,
10065 { "close", "h225.close_element",
10066 FT_NONE, BASE_NONE, NULL, 0,
10067 NULL, HFILL }},
10068 { &hf_h225_nonStandardUsageTypes,
10069 { "nonStandardUsageTypes", "h225.nonStandardUsageTypes",
10070 FT_UINT32, BASE_DEC, NULL, 0,
10071 "SEQUENCE_OF_NonStandardParameter", HFILL }},
10072 { &hf_h225_nonStandardUsageTypes_item,
10073 { "NonStandardParameter", "h225.NonStandardParameter_element",
10074 FT_NONE, BASE_NONE, NULL, 0,
10075 NULL, HFILL }},
10076 { &hf_h225_startTime,
10077 { "startTime", "h225.startTime_element",
10078 FT_NONE, BASE_NONE, NULL, 0,
10079 NULL, HFILL }},
10080 { &hf_h225_endTime_flg,
10081 { "endTime", "h225.endTime_element",
10082 FT_NONE, BASE_NONE, NULL, 0,
10083 NULL, HFILL }},
10084 { &hf_h225_terminationCause_flg,
10085 { "terminationCause", "h225.terminationCause_element",
10086 FT_NONE, BASE_NONE, NULL, 0,
10087 NULL, HFILL }},
10088 { &hf_h225_when,
10089 { "when", "h225.when_element",
10090 FT_NONE, BASE_NONE, NULL, 0,
10091 "RasUsageSpecification_when", HFILL }},
10092 { &hf_h225_start,
10093 { "start", "h225.start_element",
10094 FT_NONE, BASE_NONE, NULL, 0,
10095 NULL, HFILL }},
10096 { &hf_h225_end,
10097 { "end", "h225.end_element",
10098 FT_NONE, BASE_NONE, NULL, 0,
10099 NULL, HFILL }},
10100 { &hf_h225_inIrr,
10101 { "inIrr", "h225.inIrr_element",
10102 FT_NONE, BASE_NONE, NULL, 0,
10103 NULL, HFILL }},
10104 { &hf_h225_ras_callStartingPoint,
10105 { "callStartingPoint", "h225.callStartingPoint_element",
10106 FT_NONE, BASE_NONE, NULL, 0,
10107 "RasUsageSpecificationcallStartingPoint", HFILL }},
10108 { &hf_h225_alerting_flg,
10109 { "alerting", "h225.alerting_element",
10110 FT_NONE, BASE_NONE, NULL, 0,
10111 NULL, HFILL }},
10112 { &hf_h225_connect_flg,
10113 { "connect", "h225.connect_element",
10114 FT_NONE, BASE_NONE, NULL, 0,
10115 NULL, HFILL }},
10116 { &hf_h225_required,
10117 { "required", "h225.required_element",
10118 FT_NONE, BASE_NONE, NULL, 0,
10119 "RasUsageInfoTypes", HFILL }},
10120 { &hf_h225_nonStandardUsageFields,
10121 { "nonStandardUsageFields", "h225.nonStandardUsageFields",
10122 FT_UINT32, BASE_DEC, NULL, 0,
10123 "SEQUENCE_OF_NonStandardParameter", HFILL }},
10124 { &hf_h225_nonStandardUsageFields_item,
10125 { "NonStandardParameter", "h225.NonStandardParameter_element",
10126 FT_NONE, BASE_NONE, NULL, 0,
10127 NULL, HFILL }},
10128 { &hf_h225_alertingTime,
10129 { "alertingTime", "h225.alertingTime",
10130 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10131 "TimeStamp", HFILL }},
10132 { &hf_h225_connectTime,
10133 { "connectTime", "h225.connectTime",
10134 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10135 "TimeStamp", HFILL }},
10136 { &hf_h225_endTime,
10137 { "endTime", "h225.endTime",
10138 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10139 "TimeStamp", HFILL }},
10140 { &hf_h225_releaseCompleteCauseIE,
10141 { "releaseCompleteCauseIE", "h225.releaseCompleteCauseIE",
10142 FT_BYTES, BASE_NONE, NULL, 0,
10143 "OCTET_STRING_SIZE_2_32", HFILL }},
10144 { &hf_h225_sender,
10145 { "sender", "h225.sender",
10146 FT_BOOLEAN, BASE_NONE, NULL, 0,
10147 "BOOLEAN", HFILL }},
10148 { &hf_h225_multicast,
10149 { "multicast", "h225.multicast",
10150 FT_BOOLEAN, BASE_NONE, NULL, 0,
10151 "BOOLEAN", HFILL }},
10152 { &hf_h225_bandwidth,
10153 { "bandwidth", "h225.bandwidth",
10154 FT_UINT32, BASE_DEC, NULL, 0,
10155 NULL, HFILL }},
10156 { &hf_h225_rtcpAddresses,
10157 { "rtcpAddresses", "h225.rtcpAddresses_element",
10158 FT_NONE, BASE_NONE, NULL, 0,
10159 "TransportChannelInfo", HFILL }},
10160 { &hf_h225_canDisplayAmountString,
10161 { "canDisplayAmountString", "h225.canDisplayAmountString",
10162 FT_BOOLEAN, BASE_NONE, NULL, 0,
10163 "BOOLEAN", HFILL }},
10164 { &hf_h225_canEnforceDurationLimit,
10165 { "canEnforceDurationLimit", "h225.canEnforceDurationLimit",
10166 FT_BOOLEAN, BASE_NONE, NULL, 0,
10167 "BOOLEAN", HFILL }},
10168 { &hf_h225_amountString,
10169 { "amountString", "h225.amountString",
10170 FT_STRING, BASE_NONE, NULL, 0,
10171 "BMPString_SIZE_1_512", HFILL }},
10172 { &hf_h225_billingMode,
10173 { "billingMode", "h225.billingMode",
10174 FT_UINT32, BASE_DEC, VALS(h225_T_billingMode_vals), 0,
10175 NULL, HFILL }},
10176 { &hf_h225_credit,
10177 { "credit", "h225.credit_element",
10178 FT_NONE, BASE_NONE, NULL, 0,
10179 NULL, HFILL }},
10180 { &hf_h225_debit,
10181 { "debit", "h225.debit_element",
10182 FT_NONE, BASE_NONE, NULL, 0,
10183 NULL, HFILL }},
10184 { &hf_h225_callDurationLimit,
10185 { "callDurationLimit", "h225.callDurationLimit",
10186 FT_UINT32, BASE_DEC, NULL, 0,
10187 "INTEGER_1_4294967295", HFILL }},
10188 { &hf_h225_enforceCallDurationLimit,
10189 { "enforceCallDurationLimit", "h225.enforceCallDurationLimit",
10190 FT_BOOLEAN, BASE_NONE, NULL, 0,
10191 "BOOLEAN", HFILL }},
10192 { &hf_h225_callStartingPoint,
10193 { "callStartingPoint", "h225.callStartingPoint",
10194 FT_UINT32, BASE_DEC, VALS(h225_CallCreditServiceControl_callStartingPoint_vals), 0,
10195 "CallCreditServiceControl_callStartingPoint", HFILL }},
10196 { &hf_h225_id,
10197 { "id", "h225.id",
10198 FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
10199 "GenericIdentifier", HFILL }},
10200 { &hf_h225_parameters,
10201 { "parameters", "h225.parameters",
10202 FT_UINT32, BASE_DEC, NULL, 0,
10203 "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10204 { &hf_h225_parameters_item,
10205 { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10206 FT_NONE, BASE_NONE, NULL, 0,
10207 NULL, HFILL }},
10208 { &hf_h225_standard,
10209 { "standard", "h225.standard",
10210 FT_UINT32, BASE_DEC, NULL, 0,
10211 NULL, HFILL }},
10212 { &hf_h225_oid,
10213 { "oid", "h225.oid",
10214 FT_OID, BASE_NONE, NULL, 0,
10215 NULL, HFILL }},
10216 { &hf_h225_genericIdentifier_nonStandard,
10217 { "nonStandard", "h225.nonStandard",
10218 FT_GUID, BASE_NONE, NULL, 0,
10219 "GloballyUniqueID", HFILL }},
10220 { &hf_h225_content,
10221 { "content", "h225.content",
10222 FT_UINT32, BASE_DEC, VALS(h225_Content_vals), 0,
10223 NULL, HFILL }},
10224 { &hf_h225_raw,
10225 { "raw", "h225.raw",
10226 FT_BYTES, BASE_NONE, NULL, 0,
10227 NULL, HFILL }},
10228 { &hf_h225_text,
10229 { "text", "h225.text",
10230 FT_STRING, BASE_NONE, NULL, 0,
10231 "IA5String", HFILL }},
10232 { &hf_h225_unicode,
10233 { "unicode", "h225.unicode",
10234 FT_STRING, BASE_NONE, NULL, 0,
10235 "BMPString", HFILL }},
10236 { &hf_h225_bool,
10237 { "bool", "h225.bool",
10238 FT_BOOLEAN, BASE_NONE, NULL, 0,
10239 "BOOLEAN", HFILL }},
10240 { &hf_h225_number8,
10241 { "number8", "h225.number8",
10242 FT_UINT32, BASE_DEC, NULL, 0,
10243 "INTEGER_0_255", HFILL }},
10244 { &hf_h225_number16,
10245 { "number16", "h225.number16",
10246 FT_UINT32, BASE_DEC, NULL, 0,
10247 "INTEGER_0_65535", HFILL }},
10248 { &hf_h225_number32,
10249 { "number32", "h225.number32",
10250 FT_UINT32, BASE_DEC, NULL, 0,
10251 "INTEGER_0_4294967295", HFILL }},
10252 { &hf_h225_transport,
10253 { "transport", "h225.transport",
10254 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10255 "TransportAddress", HFILL }},
10256 { &hf_h225_compound,
10257 { "compound", "h225.compound",
10258 FT_UINT32, BASE_DEC, NULL, 0,
10259 "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10260 { &hf_h225_compound_item,
10261 { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10262 FT_NONE, BASE_NONE, NULL, 0,
10263 NULL, HFILL }},
10264 { &hf_h225_nested,
10265 { "nested", "h225.nested",
10266 FT_UINT32, BASE_DEC, NULL, 0,
10267 "SEQUENCE_SIZE_1_16_OF_GenericData", HFILL }},
10268 { &hf_h225_nested_item,
10269 { "GenericData", "h225.GenericData_element",
10270 FT_NONE, BASE_NONE, NULL, 0,
10271 NULL, HFILL }},
10272 { &hf_h225_replacementFeatureSet,
10273 { "replacementFeatureSet", "h225.replacementFeatureSet",
10274 FT_BOOLEAN, BASE_NONE, NULL, 0,
10275 "BOOLEAN", HFILL }},
10276 { &hf_h225_sendAddress,
10277 { "sendAddress", "h225.sendAddress",
10278 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10279 "TransportAddress", HFILL }},
10280 { &hf_h225_recvAddress,
10281 { "recvAddress", "h225.recvAddress",
10282 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10283 "TransportAddress", HFILL }},
10284 { &hf_h225_rtpAddress,
10285 { "rtpAddress", "h225.rtpAddress_element",
10286 FT_NONE, BASE_NONE, NULL, 0,
10287 "TransportChannelInfo", HFILL }},
10288 { &hf_h225_rtcpAddress,
10289 { "rtcpAddress", "h225.rtcpAddress_element",
10290 FT_NONE, BASE_NONE, NULL, 0,
10291 "TransportChannelInfo", HFILL }},
10292 { &hf_h225_cname,
10293 { "cname", "h225.cname",
10294 FT_STRING, BASE_NONE, NULL, 0,
10295 "PrintableString", HFILL }},
10296 { &hf_h225_ssrc,
10297 { "ssrc", "h225.ssrc",
10298 FT_UINT32, BASE_DEC, NULL, 0,
10299 "INTEGER_1_4294967295", HFILL }},
10300 { &hf_h225_sessionId,
10301 { "sessionId", "h225.sessionId",
10302 FT_UINT32, BASE_DEC, NULL, 0,
10303 "INTEGER_1_255", HFILL }},
10304 { &hf_h225_associatedSessionIds,
10305 { "associatedSessionIds", "h225.associatedSessionIds",
10306 FT_UINT32, BASE_DEC, NULL, 0,
10307 NULL, HFILL }},
10308 { &hf_h225_associatedSessionIds_item,
10309 { "associatedSessionIds item", "h225.associatedSessionIds_item",
10310 FT_UINT32, BASE_DEC, NULL, 0,
10311 "INTEGER_1_255", HFILL }},
10312 { &hf_h225_multicast_flg,
10313 { "multicast", "h225.multicast_element",
10314 FT_NONE, BASE_NONE, NULL, 0,
10315 NULL, HFILL }},
10316 { &hf_h225_gatekeeperBased,
10317 { "gatekeeperBased", "h225.gatekeeperBased_element",
10318 FT_NONE, BASE_NONE, NULL, 0,
10319 NULL, HFILL }},
10320 { &hf_h225_endpointBased,
10321 { "endpointBased", "h225.endpointBased_element",
10322 FT_NONE, BASE_NONE, NULL, 0,
10323 NULL, HFILL }},
10324 { &hf_h225_gatekeeperRequest,
10325 { "gatekeeperRequest", "h225.gatekeeperRequest_element",
10326 FT_NONE, BASE_NONE, NULL, 0,
10327 NULL, HFILL }},
10328 { &hf_h225_gatekeeperConfirm,
10329 { "gatekeeperConfirm", "h225.gatekeeperConfirm_element",
10330 FT_NONE, BASE_NONE, NULL, 0,
10331 NULL, HFILL }},
10332 { &hf_h225_gatekeeperReject,
10333 { "gatekeeperReject", "h225.gatekeeperReject_element",
10334 FT_NONE, BASE_NONE, NULL, 0,
10335 NULL, HFILL }},
10336 { &hf_h225_registrationRequest,
10337 { "registrationRequest", "h225.registrationRequest_element",
10338 FT_NONE, BASE_NONE, NULL, 0,
10339 NULL, HFILL }},
10340 { &hf_h225_registrationConfirm,
10341 { "registrationConfirm", "h225.registrationConfirm_element",
10342 FT_NONE, BASE_NONE, NULL, 0,
10343 NULL, HFILL }},
10344 { &hf_h225_registrationReject,
10345 { "registrationReject", "h225.registrationReject_element",
10346 FT_NONE, BASE_NONE, NULL, 0,
10347 NULL, HFILL }},
10348 { &hf_h225_unregistrationRequest,
10349 { "unregistrationRequest", "h225.unregistrationRequest_element",
10350 FT_NONE, BASE_NONE, NULL, 0,
10351 NULL, HFILL }},
10352 { &hf_h225_unregistrationConfirm,
10353 { "unregistrationConfirm", "h225.unregistrationConfirm_element",
10354 FT_NONE, BASE_NONE, NULL, 0,
10355 NULL, HFILL }},
10356 { &hf_h225_unregistrationReject,
10357 { "unregistrationReject", "h225.unregistrationReject_element",
10358 FT_NONE, BASE_NONE, NULL, 0,
10359 NULL, HFILL }},
10360 { &hf_h225_admissionRequest,
10361 { "admissionRequest", "h225.admissionRequest_element",
10362 FT_NONE, BASE_NONE, NULL, 0,
10363 NULL, HFILL }},
10364 { &hf_h225_admissionConfirm,
10365 { "admissionConfirm", "h225.admissionConfirm_element",
10366 FT_NONE, BASE_NONE, NULL, 0,
10367 NULL, HFILL }},
10368 { &hf_h225_admissionReject,
10369 { "admissionReject", "h225.admissionReject_element",
10370 FT_NONE, BASE_NONE, NULL, 0,
10371 NULL, HFILL }},
10372 { &hf_h225_bandwidthRequest,
10373 { "bandwidthRequest", "h225.bandwidthRequest_element",
10374 FT_NONE, BASE_NONE, NULL, 0,
10375 NULL, HFILL }},
10376 { &hf_h225_bandwidthConfirm,
10377 { "bandwidthConfirm", "h225.bandwidthConfirm_element",
10378 FT_NONE, BASE_NONE, NULL, 0,
10379 NULL, HFILL }},
10380 { &hf_h225_bandwidthReject,
10381 { "bandwidthReject", "h225.bandwidthReject_element",
10382 FT_NONE, BASE_NONE, NULL, 0,
10383 NULL, HFILL }},
10384 { &hf_h225_disengageRequest,
10385 { "disengageRequest", "h225.disengageRequest_element",
10386 FT_NONE, BASE_NONE, NULL, 0,
10387 NULL, HFILL }},
10388 { &hf_h225_disengageConfirm,
10389 { "disengageConfirm", "h225.disengageConfirm_element",
10390 FT_NONE, BASE_NONE, NULL, 0,
10391 NULL, HFILL }},
10392 { &hf_h225_disengageReject,
10393 { "disengageReject", "h225.disengageReject_element",
10394 FT_NONE, BASE_NONE, NULL, 0,
10395 NULL, HFILL }},
10396 { &hf_h225_locationRequest,
10397 { "locationRequest", "h225.locationRequest_element",
10398 FT_NONE, BASE_NONE, NULL, 0,
10399 NULL, HFILL }},
10400 { &hf_h225_locationConfirm,
10401 { "locationConfirm", "h225.locationConfirm_element",
10402 FT_NONE, BASE_NONE, NULL, 0,
10403 NULL, HFILL }},
10404 { &hf_h225_locationReject,
10405 { "locationReject", "h225.locationReject_element",
10406 FT_NONE, BASE_NONE, NULL, 0,
10407 NULL, HFILL }},
10408 { &hf_h225_infoRequest,
10409 { "infoRequest", "h225.infoRequest_element",
10410 FT_NONE, BASE_NONE, NULL, 0,
10411 NULL, HFILL }},
10412 { &hf_h225_infoRequestResponse,
10413 { "infoRequestResponse", "h225.infoRequestResponse_element",
10414 FT_NONE, BASE_NONE, NULL, 0,
10415 NULL, HFILL }},
10416 { &hf_h225_nonStandardMessage,
10417 { "nonStandardMessage", "h225.nonStandardMessage_element",
10418 FT_NONE, BASE_NONE, NULL, 0,
10419 NULL, HFILL }},
10420 { &hf_h225_unknownMessageResponse,
10421 { "unknownMessageResponse", "h225.unknownMessageResponse_element",
10422 FT_NONE, BASE_NONE, NULL, 0,
10423 NULL, HFILL }},
10424 { &hf_h225_requestInProgress,
10425 { "requestInProgress", "h225.requestInProgress_element",
10426 FT_NONE, BASE_NONE, NULL, 0,
10427 NULL, HFILL }},
10428 { &hf_h225_resourcesAvailableIndicate,
10429 { "resourcesAvailableIndicate", "h225.resourcesAvailableIndicate_element",
10430 FT_NONE, BASE_NONE, NULL, 0,
10431 NULL, HFILL }},
10432 { &hf_h225_resourcesAvailableConfirm,
10433 { "resourcesAvailableConfirm", "h225.resourcesAvailableConfirm_element",
10434 FT_NONE, BASE_NONE, NULL, 0,
10435 NULL, HFILL }},
10436 { &hf_h225_infoRequestAck,
10437 { "infoRequestAck", "h225.infoRequestAck_element",
10438 FT_NONE, BASE_NONE, NULL, 0,
10439 NULL, HFILL }},
10440 { &hf_h225_infoRequestNak,
10441 { "infoRequestNak", "h225.infoRequestNak_element",
10442 FT_NONE, BASE_NONE, NULL, 0,
10443 NULL, HFILL }},
10444 { &hf_h225_serviceControlIndication,
10445 { "serviceControlIndication", "h225.serviceControlIndication_element",
10446 FT_NONE, BASE_NONE, NULL, 0,
10447 NULL, HFILL }},
10448 { &hf_h225_serviceControlResponse,
10449 { "serviceControlResponse", "h225.serviceControlResponse_element",
10450 FT_NONE, BASE_NONE, NULL, 0,
10451 NULL, HFILL }},
10452 { &hf_h225_admissionConfirmSequence,
10453 { "admissionConfirmSequence", "h225.admissionConfirmSequence",
10454 FT_UINT32, BASE_DEC, NULL, 0,
10455 "SEQUENCE_OF_AdmissionConfirm", HFILL }},
10456 { &hf_h225_admissionConfirmSequence_item,
10457 { "AdmissionConfirm", "h225.AdmissionConfirm_element",
10458 FT_NONE, BASE_NONE, NULL, 0,
10459 NULL, HFILL }},
10460 { &hf_h225_requestSeqNum,
10461 { "requestSeqNum", "h225.requestSeqNum",
10462 FT_UINT32, BASE_DEC, NULL, 0,
10463 NULL, HFILL }},
10464 { &hf_h225_gatekeeperRequest_rasAddress,
10465 { "rasAddress", "h225.rasAddress",
10466 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10467 "TransportAddress", HFILL }},
10468 { &hf_h225_endpointAlias,
10469 { "endpointAlias", "h225.endpointAlias",
10470 FT_UINT32, BASE_DEC, NULL, 0,
10471 "SEQUENCE_OF_AliasAddress", HFILL }},
10472 { &hf_h225_endpointAlias_item,
10473 { "AliasAddress", "h225.AliasAddress",
10474 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10475 NULL, HFILL }},
10476 { &hf_h225_alternateEndpoints,
10477 { "alternateEndpoints", "h225.alternateEndpoints",
10478 FT_UINT32, BASE_DEC, NULL, 0,
10479 "SEQUENCE_OF_Endpoint", HFILL }},
10480 { &hf_h225_alternateEndpoints_item,
10481 { "Endpoint", "h225.Endpoint_element",
10482 FT_NONE, BASE_NONE, NULL, 0,
10483 NULL, HFILL }},
10484 { &hf_h225_authenticationCapability,
10485 { "authenticationCapability", "h225.authenticationCapability",
10486 FT_UINT32, BASE_DEC, NULL, 0,
10487 "SEQUENCE_OF_AuthenticationMechanism", HFILL }},
10488 { &hf_h225_authenticationCapability_item,
10489 { "AuthenticationMechanism", "h225.AuthenticationMechanism",
10490 FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10491 NULL, HFILL }},
10492 { &hf_h225_algorithmOIDs,
10493 { "algorithmOIDs", "h225.algorithmOIDs",
10494 FT_UINT32, BASE_DEC, NULL, 0,
10495 NULL, HFILL }},
10496 { &hf_h225_algorithmOIDs_item,
10497 { "algorithmOIDs item", "h225.algorithmOIDs_item",
10498 FT_OID, BASE_NONE, NULL, 0,
10499 "OBJECT_IDENTIFIER", HFILL }},
10500 { &hf_h225_integrity,
10501 { "integrity", "h225.integrity",
10502 FT_UINT32, BASE_DEC, NULL, 0,
10503 "SEQUENCE_OF_IntegrityMechanism", HFILL }},
10504 { &hf_h225_integrity_item,
10505 { "IntegrityMechanism", "h225.IntegrityMechanism",
10506 FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
10507 NULL, HFILL }},
10508 { &hf_h225_integrityCheckValue,
10509 { "integrityCheckValue", "h225.integrityCheckValue_element",
10510 FT_NONE, BASE_NONE, NULL, 0,
10511 "ICV", HFILL }},
10512 { &hf_h225_supportsAltGK,
10513 { "supportsAltGK", "h225.supportsAltGK_element",
10514 FT_NONE, BASE_NONE, NULL, 0,
10515 NULL, HFILL }},
10516 { &hf_h225_supportsAssignedGK,
10517 { "supportsAssignedGK", "h225.supportsAssignedGK",
10518 FT_BOOLEAN, BASE_NONE, NULL, 0,
10519 "BOOLEAN", HFILL }},
10520 { &hf_h225_assignedGatekeeper,
10521 { "assignedGatekeeper", "h225.assignedGatekeeper_element",
10522 FT_NONE, BASE_NONE, NULL, 0,
10523 "AlternateGK", HFILL }},
10524 { &hf_h225_gatekeeperConfirm_rasAddress,
10525 { "rasAddress", "h225.rasAddress",
10526 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10527 "TransportAddress", HFILL }},
10528 { &hf_h225_authenticationMode,
10529 { "authenticationMode", "h225.authenticationMode",
10530 FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10531 "AuthenticationMechanism", HFILL }},
10532 { &hf_h225_rehomingModel,
10533 { "rehomingModel", "h225.rehomingModel",
10534 FT_UINT32, BASE_DEC, VALS(h225_RehomingModel_vals), 0,
10535 NULL, HFILL }},
10536 { &hf_h225_gatekeeperRejectReason,
10537 { "rejectReason", "h225.rejectReason",
10538 FT_UINT32, BASE_DEC, VALS(GatekeeperRejectReason_vals), 0,
10539 "GatekeeperRejectReason", HFILL }},
10540 { &hf_h225_altGKInfo,
10541 { "altGKInfo", "h225.altGKInfo_element",
10542 FT_NONE, BASE_NONE, NULL, 0,
10543 NULL, HFILL }},
10544 { &hf_h225_resourceUnavailable,
10545 { "resourceUnavailable", "h225.resourceUnavailable_element",
10546 FT_NONE, BASE_NONE, NULL, 0,
10547 NULL, HFILL }},
10548 { &hf_h225_terminalExcluded,
10549 { "terminalExcluded", "h225.terminalExcluded_element",
10550 FT_NONE, BASE_NONE, NULL, 0,
10551 NULL, HFILL }},
10552 { &hf_h225_securityDenial,
10553 { "securityDenial", "h225.securityDenial_element",
10554 FT_NONE, BASE_NONE, NULL, 0,
10555 NULL, HFILL }},
10556 { &hf_h225_gkRej_securityError,
10557 { "securityError", "h225.securityError",
10558 FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10559 "SecurityErrors", HFILL }},
10560 { &hf_h225_discoveryComplete,
10561 { "discoveryComplete", "h225.discoveryComplete",
10562 FT_BOOLEAN, BASE_NONE, NULL, 0,
10563 "BOOLEAN", HFILL }},
10564 { &hf_h225_terminalType,
10565 { "terminalType", "h225.terminalType_element",
10566 FT_NONE, BASE_NONE, NULL, 0,
10567 "EndpointType", HFILL }},
10568 { &hf_h225_terminalAlias,
10569 { "terminalAlias", "h225.terminalAlias",
10570 FT_UINT32, BASE_DEC, NULL, 0,
10571 "SEQUENCE_OF_AliasAddress", HFILL }},
10572 { &hf_h225_terminalAlias_item,
10573 { "AliasAddress", "h225.AliasAddress",
10574 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10575 NULL, HFILL }},
10576 { &hf_h225_endpointVendor,
10577 { "endpointVendor", "h225.endpointVendor_element",
10578 FT_NONE, BASE_NONE, NULL, 0,
10579 "VendorIdentifier", HFILL }},
10580 { &hf_h225_timeToLive,
10581 { "timeToLive", "h225.timeToLive",
10582 FT_UINT32, BASE_DEC, NULL, 0,
10583 NULL, HFILL }},
10584 { &hf_h225_keepAlive,
10585 { "keepAlive", "h225.keepAlive",
10586 FT_BOOLEAN, BASE_NONE, NULL, 0,
10587 "BOOLEAN", HFILL }},
10588 { &hf_h225_willSupplyUUIEs,
10589 { "willSupplyUUIEs", "h225.willSupplyUUIEs",
10590 FT_BOOLEAN, BASE_NONE, NULL, 0,
10591 "BOOLEAN", HFILL }},
10592 { &hf_h225_additiveRegistration,
10593 { "additiveRegistration", "h225.additiveRegistration_element",
10594 FT_NONE, BASE_NONE, NULL, 0,
10595 NULL, HFILL }},
10596 { &hf_h225_terminalAliasPattern,
10597 { "terminalAliasPattern", "h225.terminalAliasPattern",
10598 FT_UINT32, BASE_DEC, NULL, 0,
10599 "SEQUENCE_OF_AddressPattern", HFILL }},
10600 { &hf_h225_terminalAliasPattern_item,
10601 { "AddressPattern", "h225.AddressPattern",
10602 FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10603 NULL, HFILL }},
10604 { &hf_h225_usageReportingCapability,
10605 { "usageReportingCapability", "h225.usageReportingCapability_element",
10606 FT_NONE, BASE_NONE, NULL, 0,
10607 "RasUsageInfoTypes", HFILL }},
10608 { &hf_h225_supportedH248Packages,
10609 { "supportedH248Packages", "h225.supportedH248Packages",
10610 FT_UINT32, BASE_DEC, NULL, 0,
10611 "SEQUENCE_OF_H248PackagesDescriptor", HFILL }},
10612 { &hf_h225_supportedH248Packages_item,
10613 { "H248PackagesDescriptor", "h225.H248PackagesDescriptor",
10614 FT_BYTES, BASE_NONE, NULL, 0,
10615 NULL, HFILL }},
10616 { &hf_h225_callCreditCapability,
10617 { "callCreditCapability", "h225.callCreditCapability_element",
10618 FT_NONE, BASE_NONE, NULL, 0,
10619 NULL, HFILL }},
10620 { &hf_h225_capacityReportingCapability,
10621 { "capacityReportingCapability", "h225.capacityReportingCapability_element",
10622 FT_NONE, BASE_NONE, NULL, 0,
10623 NULL, HFILL }},
10624 { &hf_h225_restart,
10625 { "restart", "h225.restart_element",
10626 FT_NONE, BASE_NONE, NULL, 0,
10627 NULL, HFILL }},
10628 { &hf_h225_supportsACFSequences,
10629 { "supportsACFSequences", "h225.supportsACFSequences_element",
10630 FT_NONE, BASE_NONE, NULL, 0,
10631 NULL, HFILL }},
10632 { &hf_h225_transportQOS,
10633 { "transportQOS", "h225.transportQOS",
10634 FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
10635 NULL, HFILL }},
10636 { &hf_h225_willRespondToIRR,
10637 { "willRespondToIRR", "h225.willRespondToIRR",
10638 FT_BOOLEAN, BASE_NONE, NULL, 0,
10639 "BOOLEAN", HFILL }},
10640 { &hf_h225_preGrantedARQ,
10641 { "preGrantedARQ", "h225.preGrantedARQ_element",
10642 FT_NONE, BASE_NONE, NULL, 0,
10643 NULL, HFILL }},
10644 { &hf_h225_makeCall,
10645 { "makeCall", "h225.makeCall",
10646 FT_BOOLEAN, BASE_NONE, NULL, 0,
10647 "BOOLEAN", HFILL }},
10648 { &hf_h225_useGKCallSignalAddressToMakeCall,
10649 { "useGKCallSignalAddressToMakeCall", "h225.useGKCallSignalAddressToMakeCall",
10650 FT_BOOLEAN, BASE_NONE, NULL, 0,
10651 "BOOLEAN", HFILL }},
10652 { &hf_h225_answerCall,
10653 { "answerCall", "h225.answerCall",
10654 FT_BOOLEAN, BASE_NONE, NULL, 0,
10655 "BOOLEAN", HFILL }},
10656 { &hf_h225_useGKCallSignalAddressToAnswer,
10657 { "useGKCallSignalAddressToAnswer", "h225.useGKCallSignalAddressToAnswer",
10658 FT_BOOLEAN, BASE_NONE, NULL, 0,
10659 "BOOLEAN", HFILL }},
10660 { &hf_h225_irrFrequencyInCall,
10661 { "irrFrequencyInCall", "h225.irrFrequencyInCall",
10662 FT_UINT32, BASE_DEC, NULL, 0,
10663 "INTEGER_1_65535", HFILL }},
10664 { &hf_h225_totalBandwidthRestriction,
10665 { "totalBandwidthRestriction", "h225.totalBandwidthRestriction",
10666 FT_UINT32, BASE_DEC, NULL, 0,
10667 "BandWidth", HFILL }},
10668 { &hf_h225_useSpecifiedTransport,
10669 { "useSpecifiedTransport", "h225.useSpecifiedTransport",
10670 FT_UINT32, BASE_DEC, VALS(h225_UseSpecifiedTransport_vals), 0,
10671 NULL, HFILL }},
10672 { &hf_h225_supportsAdditiveRegistration,
10673 { "supportsAdditiveRegistration", "h225.supportsAdditiveRegistration_element",
10674 FT_NONE, BASE_NONE, NULL, 0,
10675 NULL, HFILL }},
10676 { &hf_h225_usageSpec,
10677 { "usageSpec", "h225.usageSpec",
10678 FT_UINT32, BASE_DEC, NULL, 0,
10679 "SEQUENCE_OF_RasUsageSpecification", HFILL }},
10680 { &hf_h225_usageSpec_item,
10681 { "RasUsageSpecification", "h225.RasUsageSpecification_element",
10682 FT_NONE, BASE_NONE, NULL, 0,
10683 NULL, HFILL }},
10684 { &hf_h225_featureServerAlias,
10685 { "featureServerAlias", "h225.featureServerAlias",
10686 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10687 "AliasAddress", HFILL }},
10688 { &hf_h225_capacityReportingSpec,
10689 { "capacityReportingSpec", "h225.capacityReportingSpec_element",
10690 FT_NONE, BASE_NONE, NULL, 0,
10691 "CapacityReportingSpecification", HFILL }},
10692 { &hf_h225_registrationRejectReason,
10693 { "rejectReason", "h225.rejectReason",
10694 FT_UINT32, BASE_DEC, VALS(RegistrationRejectReason_vals), 0,
10695 "RegistrationRejectReason", HFILL }},
10696 { &hf_h225_discoveryRequired,
10697 { "discoveryRequired", "h225.discoveryRequired_element",
10698 FT_NONE, BASE_NONE, NULL, 0,
10699 NULL, HFILL }},
10700 { &hf_h225_invalidCallSignalAddress,
10701 { "invalidCallSignalAddress", "h225.invalidCallSignalAddress_element",
10702 FT_NONE, BASE_NONE, NULL, 0,
10703 NULL, HFILL }},
10704 { &hf_h225_invalidRASAddress,
10705 { "invalidRASAddress", "h225.invalidRASAddress_element",
10706 FT_NONE, BASE_NONE, NULL, 0,
10707 NULL, HFILL }},
10708 { &hf_h225_duplicateAlias,
10709 { "duplicateAlias", "h225.duplicateAlias",
10710 FT_UINT32, BASE_DEC, NULL, 0,
10711 "SEQUENCE_OF_AliasAddress", HFILL }},
10712 { &hf_h225_duplicateAlias_item,
10713 { "AliasAddress", "h225.AliasAddress",
10714 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10715 NULL, HFILL }},
10716 { &hf_h225_invalidTerminalType,
10717 { "invalidTerminalType", "h225.invalidTerminalType_element",
10718 FT_NONE, BASE_NONE, NULL, 0,
10719 NULL, HFILL }},
10720 { &hf_h225_transportNotSupported,
10721 { "transportNotSupported", "h225.transportNotSupported_element",
10722 FT_NONE, BASE_NONE, NULL, 0,
10723 NULL, HFILL }},
10724 { &hf_h225_transportQOSNotSupported,
10725 { "transportQOSNotSupported", "h225.transportQOSNotSupported_element",
10726 FT_NONE, BASE_NONE, NULL, 0,
10727 NULL, HFILL }},
10728 { &hf_h225_invalidAlias,
10729 { "invalidAlias", "h225.invalidAlias_element",
10730 FT_NONE, BASE_NONE, NULL, 0,
10731 NULL, HFILL }},
10732 { &hf_h225_fullRegistrationRequired,
10733 { "fullRegistrationRequired", "h225.fullRegistrationRequired_element",
10734 FT_NONE, BASE_NONE, NULL, 0,
10735 NULL, HFILL }},
10736 { &hf_h225_additiveRegistrationNotSupported,
10737 { "additiveRegistrationNotSupported", "h225.additiveRegistrationNotSupported_element",
10738 FT_NONE, BASE_NONE, NULL, 0,
10739 NULL, HFILL }},
10740 { &hf_h225_invalidTerminalAliases,
10741 { "invalidTerminalAliases", "h225.invalidTerminalAliases_element",
10742 FT_NONE, BASE_NONE, NULL, 0,
10743 NULL, HFILL }},
10744 { &hf_h225_reg_securityError,
10745 { "securityError", "h225.securityError",
10746 FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10747 "SecurityErrors", HFILL }},
10748 { &hf_h225_registerWithAssignedGK,
10749 { "registerWithAssignedGK", "h225.registerWithAssignedGK_element",
10750 FT_NONE, BASE_NONE, NULL, 0,
10751 NULL, HFILL }},
10752 { &hf_h225_unregRequestReason,
10753 { "reason", "h225.reason",
10754 FT_UINT32, BASE_DEC, VALS(UnregRequestReason_vals), 0,
10755 "UnregRequestReason", HFILL }},
10756 { &hf_h225_endpointAliasPattern,
10757 { "endpointAliasPattern", "h225.endpointAliasPattern",
10758 FT_UINT32, BASE_DEC, NULL, 0,
10759 "SEQUENCE_OF_AddressPattern", HFILL }},
10760 { &hf_h225_endpointAliasPattern_item,
10761 { "AddressPattern", "h225.AddressPattern",
10762 FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10763 NULL, HFILL }},
10764 { &hf_h225_reregistrationRequired,
10765 { "reregistrationRequired", "h225.reregistrationRequired_element",
10766 FT_NONE, BASE_NONE, NULL, 0,
10767 NULL, HFILL }},
10768 { &hf_h225_ttlExpired,
10769 { "ttlExpired", "h225.ttlExpired_element",
10770 FT_NONE, BASE_NONE, NULL, 0,
10771 NULL, HFILL }},
10772 { &hf_h225_maintenance,
10773 { "maintenance", "h225.maintenance_element",
10774 FT_NONE, BASE_NONE, NULL, 0,
10775 NULL, HFILL }},
10776 { &hf_h225_securityError,
10777 { "securityError", "h225.securityError",
10778 FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors2_vals), 0,
10779 "SecurityErrors2", HFILL }},
10780 { &hf_h225_unregRejectReason,
10781 { "rejectReason", "h225.rejectReason",
10782 FT_UINT32, BASE_DEC, VALS(UnregRejectReason_vals), 0,
10783 "UnregRejectReason", HFILL }},
10784 { &hf_h225_notCurrentlyRegistered,
10785 { "notCurrentlyRegistered", "h225.notCurrentlyRegistered_element",
10786 FT_NONE, BASE_NONE, NULL, 0,
10787 NULL, HFILL }},
10788 { &hf_h225_callInProgress,
10789 { "callInProgress", "h225.callInProgress_element",
10790 FT_NONE, BASE_NONE, NULL, 0,
10791 NULL, HFILL }},
10792 { &hf_h225_permissionDenied,
10793 { "permissionDenied", "h225.permissionDenied_element",
10794 FT_NONE, BASE_NONE, NULL, 0,
10795 NULL, HFILL }},
10796 { &hf_h225_callModel,
10797 { "callModel", "h225.callModel",
10798 FT_UINT32, BASE_DEC, VALS(h225_CallModel_vals), 0,
10799 NULL, HFILL }},
10800 { &hf_h225_DestinationInfo_item,
10801 { "DestinationInfo item", "h225.DestinationInfo_item",
10802 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10803 NULL, HFILL }},
10804 { &hf_h225_destinationInfo_01,
10805 { "destinationInfo", "h225.destinationInfo",
10806 FT_UINT32, BASE_DEC, NULL, 0,
10807 NULL, HFILL }},
10808 { &hf_h225_srcInfo,
10809 { "srcInfo", "h225.srcInfo",
10810 FT_UINT32, BASE_DEC, NULL, 0,
10811 "SEQUENCE_OF_AliasAddress", HFILL }},
10812 { &hf_h225_srcInfo_item,
10813 { "AliasAddress", "h225.AliasAddress",
10814 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10815 NULL, HFILL }},
10816 { &hf_h225_srcCallSignalAddress,
10817 { "srcCallSignalAddress", "h225.srcCallSignalAddress",
10818 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10819 "TransportAddress", HFILL }},
10820 { &hf_h225_bandWidth,
10821 { "bandWidth", "h225.bandWidth",
10822 FT_UINT32, BASE_DEC, NULL, 0,
10823 NULL, HFILL }},
10824 { &hf_h225_callReferenceValue,
10825 { "callReferenceValue", "h225.callReferenceValue",
10826 FT_UINT32, BASE_DEC, NULL, 0,
10827 NULL, HFILL }},
10828 { &hf_h225_canMapAlias,
10829 { "canMapAlias", "h225.canMapAlias",
10830 FT_BOOLEAN, BASE_NONE, NULL, 0,
10831 "BOOLEAN", HFILL }},
10832 { &hf_h225_srcAlternatives,
10833 { "srcAlternatives", "h225.srcAlternatives",
10834 FT_UINT32, BASE_DEC, NULL, 0,
10835 "SEQUENCE_OF_Endpoint", HFILL }},
10836 { &hf_h225_srcAlternatives_item,
10837 { "Endpoint", "h225.Endpoint_element",
10838 FT_NONE, BASE_NONE, NULL, 0,
10839 NULL, HFILL }},
10840 { &hf_h225_destAlternatives,
10841 { "destAlternatives", "h225.destAlternatives",
10842 FT_UINT32, BASE_DEC, NULL, 0,
10843 "SEQUENCE_OF_Endpoint", HFILL }},
10844 { &hf_h225_destAlternatives_item,
10845 { "Endpoint", "h225.Endpoint_element",
10846 FT_NONE, BASE_NONE, NULL, 0,
10847 NULL, HFILL }},
10848 { &hf_h225_gatewayDataRate,
10849 { "gatewayDataRate", "h225.gatewayDataRate_element",
10850 FT_NONE, BASE_NONE, NULL, 0,
10851 "DataRate", HFILL }},
10852 { &hf_h225_desiredTunnelledProtocol,
10853 { "desiredTunnelledProtocol", "h225.desiredTunnelledProtocol_element",
10854 FT_NONE, BASE_NONE, NULL, 0,
10855 "TunnelledProtocol", HFILL }},
10856 { &hf_h225_canMapSrcAlias,
10857 { "canMapSrcAlias", "h225.canMapSrcAlias",
10858 FT_BOOLEAN, BASE_NONE, NULL, 0,
10859 "BOOLEAN", HFILL }},
10860 { &hf_h225_pointToPoint,
10861 { "pointToPoint", "h225.pointToPoint_element",
10862 FT_NONE, BASE_NONE, NULL, 0,
10863 NULL, HFILL }},
10864 { &hf_h225_oneToN,
10865 { "oneToN", "h225.oneToN_element",
10866 FT_NONE, BASE_NONE, NULL, 0,
10867 NULL, HFILL }},
10868 { &hf_h225_nToOne,
10869 { "nToOne", "h225.nToOne_element",
10870 FT_NONE, BASE_NONE, NULL, 0,
10871 NULL, HFILL }},
10872 { &hf_h225_nToN,
10873 { "nToN", "h225.nToN_element",
10874 FT_NONE, BASE_NONE, NULL, 0,
10875 NULL, HFILL }},
10876 { &hf_h225_direct,
10877 { "direct", "h225.direct_element",
10878 FT_NONE, BASE_NONE, NULL, 0,
10879 NULL, HFILL }},
10880 { &hf_h225_gatekeeperRouted,
10881 { "gatekeeperRouted", "h225.gatekeeperRouted_element",
10882 FT_NONE, BASE_NONE, NULL, 0,
10883 NULL, HFILL }},
10884 { &hf_h225_endpointControlled,
10885 { "endpointControlled", "h225.endpointControlled_element",
10886 FT_NONE, BASE_NONE, NULL, 0,
10887 NULL, HFILL }},
10888 { &hf_h225_gatekeeperControlled,
10889 { "gatekeeperControlled", "h225.gatekeeperControlled_element",
10890 FT_NONE, BASE_NONE, NULL, 0,
10891 NULL, HFILL }},
10892 { &hf_h225_noControl,
10893 { "noControl", "h225.noControl_element",
10894 FT_NONE, BASE_NONE, NULL, 0,
10895 NULL, HFILL }},
10896 { &hf_h225_qOSCapabilities,
10897 { "qOSCapabilities", "h225.qOSCapabilities",
10898 FT_UINT32, BASE_DEC, NULL, 0,
10899 "SEQUENCE_SIZE_1_256_OF_QOSCapability", HFILL }},
10900 { &hf_h225_qOSCapabilities_item,
10901 { "QOSCapability", "h225.QOSCapability_element",
10902 FT_NONE, BASE_NONE, NULL, 0,
10903 NULL, HFILL }},
10904 { &hf_h225_irrFrequency,
10905 { "irrFrequency", "h225.irrFrequency",
10906 FT_UINT32, BASE_DEC, NULL, 0,
10907 "INTEGER_1_65535", HFILL }},
10908 { &hf_h225_destinationType,
10909 { "destinationType", "h225.destinationType_element",
10910 FT_NONE, BASE_NONE, NULL, 0,
10911 "EndpointType", HFILL }},
10912 { &hf_h225_ac_remoteExtensionAddress_item,
10913 { "AliasAddress", "h225.ac_remoteExtensionAddress_item",
10914 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10915 NULL, HFILL }},
10916 { &hf_h225_uuiesRequested,
10917 { "uuiesRequested", "h225.uuiesRequested_element",
10918 FT_NONE, BASE_NONE, NULL, 0,
10919 NULL, HFILL }},
10920 { &hf_h225_supportedProtocols,
10921 { "supportedProtocols", "h225.supportedProtocols",
10922 FT_UINT32, BASE_DEC, NULL, 0,
10923 "SEQUENCE_OF_SupportedProtocols", HFILL }},
10924 { &hf_h225_supportedProtocols_item,
10925 { "SupportedProtocols", "h225.SupportedProtocols",
10926 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
10927 NULL, HFILL }},
10928 { &hf_h225_modifiedSrcInfo,
10929 { "modifiedSrcInfo", "h225.modifiedSrcInfo",
10930 FT_UINT32, BASE_DEC, NULL, 0,
10931 "SEQUENCE_OF_AliasAddress", HFILL }},
10932 { &hf_h225_modifiedSrcInfo_item,
10933 { "AliasAddress", "h225.AliasAddress",
10934 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10935 NULL, HFILL }},
10936 { &hf_h225_setup_bool,
10937 { "setup", "h225.setup",
10938 FT_BOOLEAN, BASE_NONE, NULL, 0,
10939 "BOOLEAN", HFILL }},
10940 { &hf_h225_callProceeding_flg,
10941 { "callProceeding", "h225.callProceeding",
10942 FT_BOOLEAN, BASE_NONE, NULL, 0,
10943 "BOOLEAN", HFILL }},
10944 { &hf_h225_connect_bool,
10945 { "connect", "h225.connect",
10946 FT_BOOLEAN, BASE_NONE, NULL, 0,
10947 "BOOLEAN", HFILL }},
10948 { &hf_h225_alerting_bool,
10949 { "alerting", "h225.alerting",
10950 FT_BOOLEAN, BASE_NONE, NULL, 0,
10951 "BOOLEAN", HFILL }},
10952 { &hf_h225_information_bool,
10953 { "information", "h225.information",
10954 FT_BOOLEAN, BASE_NONE, NULL, 0,
10955 "BOOLEAN", HFILL }},
10956 { &hf_h225_releaseComplete_bool,
10957 { "releaseComplete", "h225.releaseComplete",
10958 FT_BOOLEAN, BASE_NONE, NULL, 0,
10959 "BOOLEAN", HFILL }},
10960 { &hf_h225_facility_bool,
10961 { "facility", "h225.facility",
10962 FT_BOOLEAN, BASE_NONE, NULL, 0,
10963 "BOOLEAN", HFILL }},
10964 { &hf_h225_progress_bool,
10965 { "progress", "h225.progress",
10966 FT_BOOLEAN, BASE_NONE, NULL, 0,
10967 "BOOLEAN", HFILL }},
10968 { &hf_h225_empty,
10969 { "empty", "h225.empty",
10970 FT_BOOLEAN, BASE_NONE, NULL, 0,
10971 "BOOLEAN", HFILL }},
10972 { &hf_h225_status_bool,
10973 { "status", "h225.status",
10974 FT_BOOLEAN, BASE_NONE, NULL, 0,
10975 "BOOLEAN", HFILL }},
10976 { &hf_h225_statusInquiry_bool,
10977 { "statusInquiry", "h225.statusInquiry",
10978 FT_BOOLEAN, BASE_NONE, NULL, 0,
10979 "BOOLEAN", HFILL }},
10980 { &hf_h225_setupAcknowledge_bool,
10981 { "setupAcknowledge", "h225.setupAcknowledge",
10982 FT_BOOLEAN, BASE_NONE, NULL, 0,
10983 "BOOLEAN", HFILL }},
10984 { &hf_h225_notify_bool,
10985 { "notify", "h225.notify",
10986 FT_BOOLEAN, BASE_NONE, NULL, 0,
10987 "BOOLEAN", HFILL }},
10988 { &hf_h225_rejectReason,
10989 { "rejectReason", "h225.rejectReason",
10990 FT_UINT32, BASE_DEC, VALS(AdmissionRejectReason_vals), 0,
10991 "AdmissionRejectReason", HFILL }},
10992 { &hf_h225_invalidPermission,
10993 { "invalidPermission", "h225.invalidPermission_element",
10994 FT_NONE, BASE_NONE, NULL, 0,
10995 NULL, HFILL }},
10996 { &hf_h225_requestDenied,
10997 { "requestDenied", "h225.requestDenied_element",
10998 FT_NONE, BASE_NONE, NULL, 0,
10999 NULL, HFILL }},
11000 { &hf_h225_invalidEndpointIdentifier,
11001 { "invalidEndpointIdentifier", "h225.invalidEndpointIdentifier_element",
11002 FT_NONE, BASE_NONE, NULL, 0,
11003 NULL, HFILL }},
11004 { &hf_h225_qosControlNotSupported,
11005 { "qosControlNotSupported", "h225.qosControlNotSupported_element",
11006 FT_NONE, BASE_NONE, NULL, 0,
11007 NULL, HFILL }},
11008 { &hf_h225_incompleteAddress,
11009 { "incompleteAddress", "h225.incompleteAddress_element",
11010 FT_NONE, BASE_NONE, NULL, 0,
11011 NULL, HFILL }},
11012 { &hf_h225_aliasesInconsistent,
11013 { "aliasesInconsistent", "h225.aliasesInconsistent_element",
11014 FT_NONE, BASE_NONE, NULL, 0,
11015 NULL, HFILL }},
11016 { &hf_h225_routeCallToSCN,
11017 { "routeCallToSCN", "h225.routeCallToSCN",
11018 FT_UINT32, BASE_DEC, NULL, 0,
11019 "SEQUENCE_OF_PartyNumber", HFILL }},
11020 { &hf_h225_routeCallToSCN_item,
11021 { "PartyNumber", "h225.PartyNumber",
11022 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11023 NULL, HFILL }},
11024 { &hf_h225_exceedsCallCapacity,
11025 { "exceedsCallCapacity", "h225.exceedsCallCapacity_element",
11026 FT_NONE, BASE_NONE, NULL, 0,
11027 NULL, HFILL }},
11028 { &hf_h225_collectDestination,
11029 { "collectDestination", "h225.collectDestination_element",
11030 FT_NONE, BASE_NONE, NULL, 0,
11031 NULL, HFILL }},
11032 { &hf_h225_collectPIN,
11033 { "collectPIN", "h225.collectPIN_element",
11034 FT_NONE, BASE_NONE, NULL, 0,
11035 NULL, HFILL }},
11036 { &hf_h225_noRouteToDestination,
11037 { "noRouteToDestination", "h225.noRouteToDestination_element",
11038 FT_NONE, BASE_NONE, NULL, 0,
11039 NULL, HFILL }},
11040 { &hf_h225_unallocatedNumber,
11041 { "unallocatedNumber", "h225.unallocatedNumber_element",
11042 FT_NONE, BASE_NONE, NULL, 0,
11043 NULL, HFILL }},
11044 { &hf_h225_answeredCall,
11045 { "answeredCall", "h225.answeredCall",
11046 FT_BOOLEAN, BASE_NONE, NULL, 0,
11047 "BOOLEAN", HFILL }},
11048 { &hf_h225_usageInformation,
11049 { "usageInformation", "h225.usageInformation_element",
11050 FT_NONE, BASE_NONE, NULL, 0,
11051 "RasUsageInformation", HFILL }},
11052 { &hf_h225_bandwidthDetails,
11053 { "bandwidthDetails", "h225.bandwidthDetails",
11054 FT_UINT32, BASE_DEC, NULL, 0,
11055 "SEQUENCE_OF_BandwidthDetails", HFILL }},
11056 { &hf_h225_bandwidthDetails_item,
11057 { "BandwidthDetails", "h225.BandwidthDetails_element",
11058 FT_NONE, BASE_NONE, NULL, 0,
11059 NULL, HFILL }},
11060 { &hf_h225_bandRejectReason,
11061 { "rejectReason", "h225.rejectReason",
11062 FT_UINT32, BASE_DEC, VALS(BandRejectReason_vals), 0,
11063 "BandRejectReason", HFILL }},
11064 { &hf_h225_allowedBandWidth,
11065 { "allowedBandWidth", "h225.allowedBandWidth",
11066 FT_UINT32, BASE_DEC, NULL, 0,
11067 "BandWidth", HFILL }},
11068 { &hf_h225_notBound,
11069 { "notBound", "h225.notBound_element",
11070 FT_NONE, BASE_NONE, NULL, 0,
11071 NULL, HFILL }},
11072 { &hf_h225_invalidConferenceID,
11073 { "invalidConferenceID", "h225.invalidConferenceID_element",
11074 FT_NONE, BASE_NONE, NULL, 0,
11075 NULL, HFILL }},
11076 { &hf_h225_insufficientResources,
11077 { "insufficientResources", "h225.insufficientResources_element",
11078 FT_NONE, BASE_NONE, NULL, 0,
11079 NULL, HFILL }},
11080 { &hf_h225_replyAddress,
11081 { "replyAddress", "h225.replyAddress",
11082 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11083 "TransportAddress", HFILL }},
11084 { &hf_h225_sourceInfo,
11085 { "sourceInfo", "h225.sourceInfo",
11086 FT_UINT32, BASE_DEC, NULL, 0,
11087 "SEQUENCE_OF_AliasAddress", HFILL }},
11088 { &hf_h225_sourceInfo_item,
11089 { "AliasAddress", "h225.AliasAddress",
11090 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11091 NULL, HFILL }},
11092 { &hf_h225_hopCount,
11093 { "hopCount", "h225.hopCount",
11094 FT_UINT32, BASE_DEC, NULL, 0,
11095 "INTEGER_1_255", HFILL }},
11096 { &hf_h225_sourceEndpointInfo,
11097 { "sourceEndpointInfo", "h225.sourceEndpointInfo",
11098 FT_UINT32, BASE_DEC, NULL, 0,
11099 "SEQUENCE_OF_AliasAddress", HFILL }},
11100 { &hf_h225_sourceEndpointInfo_item,
11101 { "AliasAddress", "h225.AliasAddress",
11102 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11103 NULL, HFILL }},
11104 { &hf_h225_locationConfirm_callSignalAddress,
11105 { "callSignalAddress", "h225.callSignalAddress",
11106 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11107 "TransportAddress", HFILL }},
11108 { &hf_h225_locationConfirm_rasAddress,
11109 { "rasAddress", "h225.rasAddress",
11110 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11111 "TransportAddress", HFILL }},
11112 { &hf_h225_remoteExtensionAddress_item,
11113 { "AliasAddress", "h225.AliasAddress",
11114 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11115 NULL, HFILL }},
11116 { &hf_h225_locationRejectReason,
11117 { "rejectReason", "h225.rejectReason",
11118 FT_UINT32, BASE_DEC, VALS(LocationRejectReason_vals), 0,
11119 "LocationRejectReason", HFILL }},
11120 { &hf_h225_notRegistered,
11121 { "notRegistered", "h225.notRegistered_element",
11122 FT_NONE, BASE_NONE, NULL, 0,
11123 NULL, HFILL }},
11124 { &hf_h225_routeCalltoSCN,
11125 { "routeCalltoSCN", "h225.routeCalltoSCN",
11126 FT_UINT32, BASE_DEC, NULL, 0,
11127 "SEQUENCE_OF_PartyNumber", HFILL }},
11128 { &hf_h225_routeCalltoSCN_item,
11129 { "PartyNumber", "h225.PartyNumber",
11130 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11131 NULL, HFILL }},
11132 { &hf_h225_disengageReason,
11133 { "disengageReason", "h225.disengageReason",
11134 FT_UINT32, BASE_DEC, VALS(DisengageReason_vals), 0,
11135 NULL, HFILL }},
11136 { &hf_h225_terminationCause,
11137 { "terminationCause", "h225.terminationCause",
11138 FT_UINT32, BASE_DEC, VALS(h225_CallTerminationCause_vals), 0,
11139 "CallTerminationCause", HFILL }},
11140 { &hf_h225_forcedDrop,
11141 { "forcedDrop", "h225.forcedDrop_element",
11142 FT_NONE, BASE_NONE, NULL, 0,
11143 NULL, HFILL }},
11144 { &hf_h225_normalDrop,
11145 { "normalDrop", "h225.normalDrop_element",
11146 FT_NONE, BASE_NONE, NULL, 0,
11147 NULL, HFILL }},
11148 { &hf_h225_disengageRejectReason,
11149 { "rejectReason", "h225.rejectReason",
11150 FT_UINT32, BASE_DEC, VALS(DisengageRejectReason_vals), 0,
11151 "DisengageRejectReason", HFILL }},
11152 { &hf_h225_requestToDropOther,
11153 { "requestToDropOther", "h225.requestToDropOther_element",
11154 FT_NONE, BASE_NONE, NULL, 0,
11155 NULL, HFILL }},
11156 { &hf_h225_usageInfoRequested,
11157 { "usageInfoRequested", "h225.usageInfoRequested_element",
11158 FT_NONE, BASE_NONE, NULL, 0,
11159 "RasUsageInfoTypes", HFILL }},
11160 { &hf_h225_segmentedResponseSupported,
11161 { "segmentedResponseSupported", "h225.segmentedResponseSupported_element",
11162 FT_NONE, BASE_NONE, NULL, 0,
11163 NULL, HFILL }},
11164 { &hf_h225_nextSegmentRequested,
11165 { "nextSegmentRequested", "h225.nextSegmentRequested",
11166 FT_UINT32, BASE_DEC, NULL, 0,
11167 "INTEGER_0_65535", HFILL }},
11168 { &hf_h225_capacityInfoRequested,
11169 { "capacityInfoRequested", "h225.capacityInfoRequested_element",
11170 FT_NONE, BASE_NONE, NULL, 0,
11171 NULL, HFILL }},
11172 { &hf_h225_infoRequestResponse_rasAddress,
11173 { "rasAddress", "h225.rasAddress",
11174 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11175 "TransportAddress", HFILL }},
11176 { &hf_h225_perCallInfo,
11177 { "perCallInfo", "h225.perCallInfo",
11178 FT_UINT32, BASE_DEC, NULL, 0,
11179 NULL, HFILL }},
11180 { &hf_h225_perCallInfo_item,
11181 { "perCallInfo item", "h225.perCallInfo_item_element",
11182 FT_NONE, BASE_NONE, NULL, 0,
11183 NULL, HFILL }},
11184 { &hf_h225_originator,
11185 { "originator", "h225.originator",
11186 FT_BOOLEAN, BASE_NONE, NULL, 0,
11187 "BOOLEAN", HFILL }},
11188 { &hf_h225_audio,
11189 { "audio", "h225.audio",
11190 FT_UINT32, BASE_DEC, NULL, 0,
11191 "SEQUENCE_OF_RTPSession", HFILL }},
11192 { &hf_h225_audio_item,
11193 { "RTPSession", "h225.RTPSession_element",
11194 FT_NONE, BASE_NONE, NULL, 0,
11195 NULL, HFILL }},
11196 { &hf_h225_video,
11197 { "video", "h225.video",
11198 FT_UINT32, BASE_DEC, NULL, 0,
11199 "SEQUENCE_OF_RTPSession", HFILL }},
11200 { &hf_h225_video_item,
11201 { "RTPSession", "h225.RTPSession_element",
11202 FT_NONE, BASE_NONE, NULL, 0,
11203 NULL, HFILL }},
11204 { &hf_h225_data,
11205 { "data", "h225.data",
11206 FT_UINT32, BASE_DEC, NULL, 0,
11207 "SEQUENCE_OF_TransportChannelInfo", HFILL }},
11208 { &hf_h225_data_item,
11209 { "TransportChannelInfo", "h225.TransportChannelInfo_element",
11210 FT_NONE, BASE_NONE, NULL, 0,
11211 NULL, HFILL }},
11212 { &hf_h225_h245,
11213 { "h245", "h225.h245_element",
11214 FT_NONE, BASE_NONE, NULL, 0,
11215 "TransportChannelInfo", HFILL }},
11216 { &hf_h225_callSignalling,
11217 { "callSignalling", "h225.callSignalling_element",
11218 FT_NONE, BASE_NONE, NULL, 0,
11219 "TransportChannelInfo", HFILL }},
11220 { &hf_h225_substituteConfIDs,
11221 { "substituteConfIDs", "h225.substituteConfIDs",
11222 FT_UINT32, BASE_DEC, NULL, 0,
11223 "SEQUENCE_OF_ConferenceIdentifier", HFILL }},
11224 { &hf_h225_substituteConfIDs_item,
11225 { "ConferenceIdentifier", "h225.ConferenceIdentifier",
11226 FT_GUID, BASE_NONE, NULL, 0,
11227 NULL, HFILL }},
11228 { &hf_h225_pdu,
11229 { "pdu", "h225.pdu",
11230 FT_UINT32, BASE_DEC, NULL, 0,
11231 NULL, HFILL }},
11232 { &hf_h225_pdu_item,
11233 { "pdu item", "h225.pdu_item_element",
11234 FT_NONE, BASE_NONE, NULL, 0,
11235 NULL, HFILL }},
11236 { &hf_h225_h323pdu,
11237 { "h323pdu", "h225.h323pdu_element",
11238 FT_NONE, BASE_NONE, NULL, 0,
11239 "H323_UU_PDU", HFILL }},
11240 { &hf_h225_sent,
11241 { "sent", "h225.sent",
11242 FT_BOOLEAN, BASE_NONE, NULL, 0,
11243 "BOOLEAN", HFILL }},
11244 { &hf_h225_needResponse,
11245 { "needResponse", "h225.needResponse",
11246 FT_BOOLEAN, BASE_NONE, NULL, 0,
11247 "BOOLEAN", HFILL }},
11248 { &hf_h225_irrStatus,
11249 { "irrStatus", "h225.irrStatus",
11250 FT_UINT32, BASE_DEC, VALS(h225_InfoRequestResponseStatus_vals), 0,
11251 "InfoRequestResponseStatus", HFILL }},
11252 { &hf_h225_unsolicited,
11253 { "unsolicited", "h225.unsolicited",
11254 FT_BOOLEAN, BASE_NONE, NULL, 0,
11255 "BOOLEAN", HFILL }},
11256 { &hf_h225_complete,
11257 { "complete", "h225.complete_element",
11258 FT_NONE, BASE_NONE, NULL, 0,
11259 NULL, HFILL }},
11260 { &hf_h225_incomplete,
11261 { "incomplete", "h225.incomplete_element",
11262 FT_NONE, BASE_NONE, NULL, 0,
11263 NULL, HFILL }},
11264 { &hf_h225_segment,
11265 { "segment", "h225.segment",
11266 FT_UINT32, BASE_DEC, NULL, 0,
11267 "INTEGER_0_65535", HFILL }},
11268 { &hf_h225_invalidCall,
11269 { "invalidCall", "h225.invalidCall_element",
11270 FT_NONE, BASE_NONE, NULL, 0,
11271 NULL, HFILL }},
11272 { &hf_h225_nakReason,
11273 { "nakReason", "h225.nakReason",
11274 FT_UINT32, BASE_DEC, VALS(InfoRequestNakReason_vals), 0,
11275 "InfoRequestNakReason", HFILL }},
11276 { &hf_h225_messageNotUnderstood,
11277 { "messageNotUnderstood", "h225.messageNotUnderstood",
11278 FT_BYTES, BASE_NONE, NULL, 0,
11279 "OCTET_STRING", HFILL }},
11280 { &hf_h225_delay,
11281 { "delay", "h225.delay",
11282 FT_UINT32, BASE_DEC, NULL, 0,
11283 "INTEGER_1_65535", HFILL }},
11284 { &hf_h225_protocols,
11285 { "protocols", "h225.protocols",
11286 FT_UINT32, BASE_DEC, NULL, 0,
11287 "SEQUENCE_OF_SupportedProtocols", HFILL }},
11288 { &hf_h225_protocols_item,
11289 { "SupportedProtocols", "h225.SupportedProtocols",
11290 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
11291 NULL, HFILL }},
11292 { &hf_h225_almostOutOfResources,
11293 { "almostOutOfResources", "h225.almostOutOfResources",
11294 FT_BOOLEAN, BASE_NONE, NULL, 0,
11295 "BOOLEAN", HFILL }},
11296 { &hf_h225_callSpecific,
11297 { "callSpecific", "h225.callSpecific_element",
11298 FT_NONE, BASE_NONE, NULL, 0,
11299 NULL, HFILL }},
11300 { &hf_h225_result,
11301 { "result", "h225.result",
11302 FT_UINT32, BASE_DEC, VALS(h225_T_result_vals), 0,
11303 NULL, HFILL }},
11304 { &hf_h225_started,
11305 { "started", "h225.started_element",
11306 FT_NONE, BASE_NONE, NULL, 0,
11307 NULL, HFILL }},
11308 { &hf_h225_failed,
11309 { "failed", "h225.failed_element",
11310 FT_NONE, BASE_NONE, NULL, 0,
11311 NULL, HFILL }},
11312 { &hf_h225_stopped,
11313 { "stopped", "h225.stopped_element",
11314 FT_NONE, BASE_NONE, NULL, 0,
11315 NULL, HFILL }},
11316 { &hf_h225_notAvailable,
11317 { "notAvailable", "h225.notAvailable_element",
11318 FT_NONE, BASE_NONE, NULL, 0,
11319 NULL, HFILL }},
11322 /* List of subtrees */
11323 static int *ett[] = {
11324 &ett_h225,
11325 &ett_h225_H323_UserInformation,
11326 &ett_h225_T_user_data,
11327 &ett_h225_H323_UU_PDU,
11328 &ett_h225_T_h323_message_body,
11329 &ett_h225_T_h4501SupplementaryService,
11330 &ett_h225_H245Control,
11331 &ett_h225_SEQUENCE_OF_NonStandardParameter,
11332 &ett_h225_T_tunnelledSignallingMessage,
11333 &ett_h225_T_messageContent,
11334 &ett_h225_SEQUENCE_OF_GenericData,
11335 &ett_h225_StimulusControl,
11336 &ett_h225_Alerting_UUIE,
11337 &ett_h225_SEQUENCE_OF_ClearToken,
11338 &ett_h225_SEQUENCE_OF_CryptoH323Token,
11339 &ett_h225_SEQUENCE_OF_AliasAddress,
11340 &ett_h225_SEQUENCE_OF_ServiceControlSession,
11341 &ett_h225_SEQUENCE_OF_DisplayName,
11342 &ett_h225_CallProceeding_UUIE,
11343 &ett_h225_Connect_UUIE,
11344 &ett_h225_Information_UUIE,
11345 &ett_h225_ReleaseComplete_UUIE,
11346 &ett_h225_ReleaseCompleteReason,
11347 &ett_h225_Setup_UUIE,
11348 &ett_h225_SEQUENCE_OF_CallReferenceValue,
11349 &ett_h225_T_conferenceGoal,
11350 &ett_h225_SEQUENCE_OF_H245Security,
11351 &ett_h225_FastStart,
11352 &ett_h225_T_connectionParameters,
11353 &ett_h225_Language,
11354 &ett_h225_SEQUENCE_OF_SupportedProtocols,
11355 &ett_h225_SEQUENCE_OF_FeatureDescriptor,
11356 &ett_h225_ParallelH245Control,
11357 &ett_h225_SEQUENCE_OF_ExtendedAliasAddress,
11358 &ett_h225_ScnConnectionType,
11359 &ett_h225_ScnConnectionAggregation,
11360 &ett_h225_PresentationIndicator,
11361 &ett_h225_Facility_UUIE,
11362 &ett_h225_SEQUENCE_OF_ConferenceList,
11363 &ett_h225_ConferenceList,
11364 &ett_h225_FacilityReason,
11365 &ett_h225_Progress_UUIE,
11366 &ett_h225_TransportAddress,
11367 &ett_h225_H245TransportAddress,
11368 &ett_h225_T_h245IpAddress,
11369 &ett_h225_T_h245IpSourceRoute,
11370 &ett_h225_T_h245Route,
11371 &ett_h225_T_h245Routing,
11372 &ett_h225_T_h245IpxAddress,
11373 &ett_h225_T_h245Ip6Address,
11374 &ett_h225_T_ipAddress,
11375 &ett_h225_T_ipSourceRoute,
11376 &ett_h225_T_route,
11377 &ett_h225_T_routing,
11378 &ett_h225_T_ipxAddress,
11379 &ett_h225_T_ip6Address,
11380 &ett_h225_Status_UUIE,
11381 &ett_h225_StatusInquiry_UUIE,
11382 &ett_h225_SetupAcknowledge_UUIE,
11383 &ett_h225_Notify_UUIE,
11384 &ett_h225_EndpointType,
11385 &ett_h225_SEQUENCE_OF_TunnelledProtocol,
11386 &ett_h225_GatewayInfo,
11387 &ett_h225_SupportedProtocols,
11388 &ett_h225_H310Caps,
11389 &ett_h225_SEQUENCE_OF_DataRate,
11390 &ett_h225_SEQUENCE_OF_SupportedPrefix,
11391 &ett_h225_H320Caps,
11392 &ett_h225_H321Caps,
11393 &ett_h225_H322Caps,
11394 &ett_h225_H323Caps,
11395 &ett_h225_H324Caps,
11396 &ett_h225_VoiceCaps,
11397 &ett_h225_T120OnlyCaps,
11398 &ett_h225_NonStandardProtocol,
11399 &ett_h225_T38FaxAnnexbOnlyCaps,
11400 &ett_h225_SIPCaps,
11401 &ett_h225_McuInfo,
11402 &ett_h225_TerminalInfo,
11403 &ett_h225_GatekeeperInfo,
11404 &ett_h225_VendorIdentifier,
11405 &ett_h225_H221NonStandard,
11406 &ett_h225_TunnelledProtocol,
11407 &ett_h225_TunnelledProtocol_id,
11408 &ett_h225_TunnelledProtocolAlternateIdentifier,
11409 &ett_h225_NonStandardParameter,
11410 &ett_h225_NonStandardIdentifier,
11411 &ett_h225_AliasAddress,
11412 &ett_h225_AddressPattern,
11413 &ett_h225_T_range,
11414 &ett_h225_PartyNumber,
11415 &ett_h225_PublicPartyNumber,
11416 &ett_h225_PrivatePartyNumber,
11417 &ett_h225_DisplayName,
11418 &ett_h225_PublicTypeOfNumber,
11419 &ett_h225_PrivateTypeOfNumber,
11420 &ett_h225_MobileUIM,
11421 &ett_h225_ANSI_41_UIM,
11422 &ett_h225_T_system_id,
11423 &ett_h225_GSM_UIM,
11424 &ett_h225_IsupNumber,
11425 &ett_h225_IsupPublicPartyNumber,
11426 &ett_h225_IsupPrivatePartyNumber,
11427 &ett_h225_NatureOfAddress,
11428 &ett_h225_ExtendedAliasAddress,
11429 &ett_h225_Endpoint,
11430 &ett_h225_SEQUENCE_OF_TransportAddress,
11431 &ett_h225_AlternateTransportAddresses,
11432 &ett_h225_UseSpecifiedTransport,
11433 &ett_h225_AlternateGK,
11434 &ett_h225_AltGKInfo,
11435 &ett_h225_SEQUENCE_OF_AlternateGK,
11436 &ett_h225_SecurityServiceMode,
11437 &ett_h225_SecurityCapabilities,
11438 &ett_h225_SecurityErrors,
11439 &ett_h225_SecurityErrors2,
11440 &ett_h225_H245Security,
11441 &ett_h225_QseriesOptions,
11442 &ett_h225_Q954Details,
11443 &ett_h225_CallIdentifier,
11444 &ett_h225_EncryptIntAlg,
11445 &ett_h225_NonIsoIntegrityMechanism,
11446 &ett_h225_IntegrityMechanism,
11447 &ett_h225_ICV,
11448 &ett_h225_CryptoH323Token,
11449 &ett_h225_T_cryptoEPPwdHash,
11450 &ett_h225_T_cryptoGKPwdHash,
11451 &ett_h225_DataRate,
11452 &ett_h225_CallLinkage,
11453 &ett_h225_SupportedPrefix,
11454 &ett_h225_CapacityReportingCapability,
11455 &ett_h225_CapacityReportingSpecification,
11456 &ett_h225_CapacityReportingSpecification_when,
11457 &ett_h225_CallCapacity,
11458 &ett_h225_CallCapacityInfo,
11459 &ett_h225_SEQUENCE_OF_CallsAvailable,
11460 &ett_h225_CallsAvailable,
11461 &ett_h225_CircuitInfo,
11462 &ett_h225_CircuitIdentifier,
11463 &ett_h225_CicInfo,
11464 &ett_h225_T_cic_2_4,
11465 &ett_h225_GroupID,
11466 &ett_h225_T_member,
11467 &ett_h225_CarrierInfo,
11468 &ett_h225_ServiceControlDescriptor,
11469 &ett_h225_ServiceControlSession,
11470 &ett_h225_ServiceControlSession_reason,
11471 &ett_h225_RasUsageInfoTypes,
11472 &ett_h225_RasUsageSpecification,
11473 &ett_h225_RasUsageSpecification_when,
11474 &ett_h225_RasUsageSpecificationcallStartingPoint,
11475 &ett_h225_RasUsageInformation,
11476 &ett_h225_CallTerminationCause,
11477 &ett_h225_BandwidthDetails,
11478 &ett_h225_CallCreditCapability,
11479 &ett_h225_CallCreditServiceControl,
11480 &ett_h225_T_billingMode,
11481 &ett_h225_CallCreditServiceControl_callStartingPoint,
11482 &ett_h225_GenericData,
11483 &ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter,
11484 &ett_h225_GenericIdentifier,
11485 &ett_h225_EnumeratedParameter,
11486 &ett_h225_Content,
11487 &ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData,
11488 &ett_h225_FeatureSet,
11489 &ett_h225_TransportChannelInfo,
11490 &ett_h225_RTPSession,
11491 &ett_h225_T_associatedSessionIds,
11492 &ett_h225_RehomingModel,
11493 &ett_h225_RasMessage,
11494 &ett_h225_SEQUENCE_OF_AdmissionConfirm,
11495 &ett_h225_GatekeeperRequest,
11496 &ett_h225_SEQUENCE_OF_Endpoint,
11497 &ett_h225_SEQUENCE_OF_AuthenticationMechanism,
11498 &ett_h225_T_algorithmOIDs,
11499 &ett_h225_SEQUENCE_OF_IntegrityMechanism,
11500 &ett_h225_GatekeeperConfirm,
11501 &ett_h225_GatekeeperReject,
11502 &ett_h225_GatekeeperRejectReason,
11503 &ett_h225_RegistrationRequest,
11504 &ett_h225_SEQUENCE_OF_AddressPattern,
11505 &ett_h225_SEQUENCE_OF_H248PackagesDescriptor,
11506 &ett_h225_RegistrationConfirm,
11507 &ett_h225_T_preGrantedARQ,
11508 &ett_h225_SEQUENCE_OF_RasUsageSpecification,
11509 &ett_h225_RegistrationReject,
11510 &ett_h225_RegistrationRejectReason,
11511 &ett_h225_T_invalidTerminalAliases,
11512 &ett_h225_UnregistrationRequest,
11513 &ett_h225_UnregRequestReason,
11514 &ett_h225_UnregistrationConfirm,
11515 &ett_h225_UnregistrationReject,
11516 &ett_h225_UnregRejectReason,
11517 &ett_h225_AdmissionRequest,
11518 &ett_h225_DestinationInfo,
11519 &ett_h225_CallType,
11520 &ett_h225_CallModel,
11521 &ett_h225_TransportQOS,
11522 &ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability,
11523 &ett_h225_AdmissionConfirm,
11524 &ett_h225_UUIEsRequested,
11525 &ett_h225_AdmissionReject,
11526 &ett_h225_AdmissionRejectReason,
11527 &ett_h225_SEQUENCE_OF_PartyNumber,
11528 &ett_h225_BandwidthRequest,
11529 &ett_h225_SEQUENCE_OF_BandwidthDetails,
11530 &ett_h225_BandwidthConfirm,
11531 &ett_h225_BandwidthReject,
11532 &ett_h225_BandRejectReason,
11533 &ett_h225_LocationRequest,
11534 &ett_h225_LocationConfirm,
11535 &ett_h225_LocationReject,
11536 &ett_h225_LocationRejectReason,
11537 &ett_h225_DisengageRequest,
11538 &ett_h225_DisengageReason,
11539 &ett_h225_DisengageConfirm,
11540 &ett_h225_DisengageReject,
11541 &ett_h225_DisengageRejectReason,
11542 &ett_h225_InfoRequest,
11543 &ett_h225_InfoRequestResponse,
11544 &ett_h225_T_perCallInfo,
11545 &ett_h225_T_perCallInfo_item,
11546 &ett_h225_SEQUENCE_OF_RTPSession,
11547 &ett_h225_SEQUENCE_OF_TransportChannelInfo,
11548 &ett_h225_SEQUENCE_OF_ConferenceIdentifier,
11549 &ett_h225_T_pdu,
11550 &ett_h225_T_pdu_item,
11551 &ett_h225_InfoRequestResponseStatus,
11552 &ett_h225_InfoRequestAck,
11553 &ett_h225_InfoRequestNak,
11554 &ett_h225_InfoRequestNakReason,
11555 &ett_h225_NonStandardMessage,
11556 &ett_h225_UnknownMessageResponse,
11557 &ett_h225_RequestInProgress,
11558 &ett_h225_ResourcesAvailableIndicate,
11559 &ett_h225_ResourcesAvailableConfirm,
11560 &ett_h225_ServiceControlIndication,
11561 &ett_h225_T_callSpecific,
11562 &ett_h225_ServiceControlResponse,
11563 &ett_h225_T_result,
11566 static tap_param h225_stat_params[] = {
11567 { PARAM_FILTER, "filter", "Filter", NULL, true }
11570 static stat_tap_table_ui h225_stat_table = {
11571 REGISTER_TELEPHONY_GROUP_UNSORTED,
11572 "H.225",
11573 PFNAME,
11574 "h225,counter",
11575 h225_stat_init,
11576 h225_stat_packet,
11577 h225_stat_reset,
11578 NULL,
11579 NULL,
11580 array_length(h225_stat_fields), h225_stat_fields,
11581 array_length(h225_stat_params), h225_stat_params,
11582 NULL,
11586 module_t *h225_module;
11587 int i, proto_h225_ras;
11589 /* Register protocol */
11590 proto_h225 = proto_register_protocol(PNAME, PSNAME, PFNAME);
11592 /* Create a "fake" protocol to get proper display strings for SRT dialogs */
11593 proto_h225_ras = proto_register_protocol("H.225 RAS", "H.225 RAS", "h225_ras");
11595 /* Register fields and subtrees */
11596 proto_register_field_array(proto_h225, hf, array_length(hf));
11597 proto_register_subtree_array(ett, array_length(ett));
11599 h225_module = prefs_register_protocol(proto_h225, proto_reg_handoff_h225);
11600 prefs_register_uint_preference(h225_module, "tls.port",
11601 "H.225 TLS Port",
11602 "H.225 Server TLS Port",
11603 10, &h225_tls_port);
11604 prefs_register_bool_preference(h225_module, "reassembly",
11605 "Reassemble H.225 messages spanning multiple TCP segments",
11606 "Whether the H.225 dissector should reassemble messages spanning multiple TCP segments."
11607 " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
11608 &h225_reassembly);
11609 prefs_register_bool_preference(h225_module, "h245_in_tree",
11610 "Display tunnelled H.245 inside H.225.0 tree",
11611 "ON - display tunnelled H.245 inside H.225.0 tree, OFF - display tunnelled H.245 in root tree after H.225.0",
11612 &h225_h245_in_tree);
11613 prefs_register_bool_preference(h225_module, "tp_in_tree",
11614 "Display tunnelled protocols inside H.225.0 tree",
11615 "ON - display tunnelled protocols inside H.225.0 tree, OFF - display tunnelled protocols in root tree after H.225.0",
11616 &h225_tp_in_tree);
11618 register_dissector(PFNAME, dissect_h225_H323UserInformation, proto_h225);
11619 register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
11620 h225ras_handle = register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
11622 nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter Object", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11623 nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter h221", proto_h225, FT_UINT32, BASE_HEX);
11624 tp_dissector_table = register_dissector_table("h225.tp", "H.225 Tunnelled Protocol", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11625 gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework Name", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11626 gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework Content", proto_h225, FT_STRING, STRING_CASE_SENSITIVE);
11628 for(i=0;i<7;i++) {
11629 ras_calls[i] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), h225ras_call_hash, h225ras_call_equal);
11632 h225_tap = register_tap(PFNAME);
11634 register_rtd_table(proto_h225_ras, PFNAME, NUM_RAS_STATS, 1, ras_message_category, h225rassrt_packet, NULL);
11636 register_stat_tap_table_ui(&h225_stat_table);
11638 oid_add_from_string("Version 1","0.0.8.2250.0.1");
11639 oid_add_from_string("Version 2","0.0.8.2250.0.2");
11640 oid_add_from_string("Version 3","0.0.8.2250.0.3");
11641 oid_add_from_string("Version 4","0.0.8.2250.0.4");
11642 oid_add_from_string("Version 5","0.0.8.2250.0.5");
11643 oid_add_from_string("Version 6","0.0.8.2250.0.6");
11647 /*--- proto_reg_handoff_h225 ---------------------------------------*/
11648 void
11649 proto_reg_handoff_h225(void)
11651 static bool h225_prefs_initialized = false;
11652 static dissector_handle_t q931_tpkt_handle;
11653 static unsigned saved_h225_tls_port;
11655 if (!h225_prefs_initialized) {
11656 dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
11658 h245_handle = find_dissector("h245");
11659 h245dg_handle = find_dissector("h245dg");
11660 h4501_handle = find_dissector_add_dependency("h4501", proto_h225);
11661 data_handle = find_dissector("data");
11662 h225_prefs_initialized = true;
11663 q931_tpkt_handle = find_dissector("q931.tpkt");
11664 } else {
11665 ssl_dissector_delete(saved_h225_tls_port, q931_tpkt_handle);
11668 saved_h225_tls_port = h225_tls_port;
11669 ssl_dissector_add(saved_h225_tls_port, q931_tpkt_handle);
11672 static h225_packet_info* create_h225_packet_info(packet_info *pinfo)
11674 h225_packet_info* pi = wmem_new0(pinfo->pool, h225_packet_info);
11676 pi->msg_type = H225_OTHERS;
11677 pi->cs_type = H225_OTHER;
11678 pi->msg_tag = -1;
11679 pi->reason = -1;
11681 return pi;
11685 The following function contains the routines for RAS request/response matching.
11686 A RAS response matches with a request, if both messages have the same
11687 RequestSequenceNumber, belong to the same IP conversation and belong to the same
11688 RAS "category" (e.g. Admission, Registration).
11690 We use hashtables to access the lists of RAS calls (request/response pairs).
11691 We have one hashtable for each RAS category. The hashkeys consist of the
11692 non-unique 16-bit RequestSequenceNumber and values representing the conversation.
11694 In big capture files, we might get different requests with identical keys.
11695 These requests aren't necessarily duplicates. They might be valid new requests.
11696 At the moment we just use the timedelta between the last valid and the new request
11697 to decide if the new request is a duplicate or not. There might be better ways.
11698 Two thresholds are defined below.
11700 However the decision is made, another problem arises. We can't just add those
11701 requests to our hashtables. Instead we create lists of RAS calls with identical keys.
11702 The hashtables for RAS calls contain now pointers to the first RAS call in a list of
11703 RAS calls with identical keys.
11704 These lists aren't expected to contain more than 3 items and are usually single item
11705 lists. So we don't need an expensive but intelligent way to access these lists
11706 (e.g. hashtables). Just walk through such a list.
11709 #define THRESHOLD_REPEATED_RESPONDED_CALL 300
11710 #define THRESHOLD_REPEATED_NOT_RESPONDED_CALL 1800
11712 static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi)
11714 proto_item *hidden_item;
11715 conversation_t* conversation = NULL;
11716 h225ras_call_info_key h225ras_call_key;
11717 h225ras_call_t *h225ras_call = NULL;
11718 nstime_t delta;
11719 unsigned msg_category;
11721 if(pi->msg_type == H225_RAS && pi->msg_tag < 21) {
11722 /* make RAS request/response matching only for tags from 0 to 20 for now */
11724 msg_category = pi->msg_tag / 3;
11725 if(pi->msg_tag % 3 == 0) { /* Request Message */
11726 conversation = find_or_create_conversation(pinfo);
11728 /* prepare the key data */
11729 h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11730 h225ras_call_key.conversation = conversation;
11732 /* look up the request */
11733 h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11735 if (h225ras_call != NULL) {
11736 /* We've seen requests with this reqSeqNum, with the same
11737 source and destination, before - do we have
11738 *this* request already? */
11739 /* Walk through list of ras requests with identical keys */
11740 do {
11741 if (pinfo->num == h225ras_call->req_num) {
11742 /* We have seen this request before -> do nothing */
11743 break;
11746 /* if end of list is reached, exit loop and decide if request is duplicate or not. */
11747 if (h225ras_call->next_call == NULL) {
11748 if ( (pinfo->num > h225ras_call->rsp_num && h225ras_call->rsp_num != 0
11749 && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_RESPONDED_CALL) )
11750 ||(pinfo->num > h225ras_call->req_num && h225ras_call->rsp_num == 0
11751 && pinfo->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_NOT_RESPONDED_CALL) ) )
11753 /* if last request has been responded
11754 and this request appears after last response (has bigger frame number)
11755 and last request occurred more than 300 seconds ago,
11756 or if last request hasn't been responded
11757 and this request appears after last request (has bigger frame number)
11758 and last request occurred more than 1800 seconds ago,
11759 we decide that we have a new request */
11760 /* Append new ras call to list */
11761 h225ras_call = append_h225ras_call(h225ras_call, pinfo, &pi->guid, msg_category);
11762 } else {
11763 /* No, so it's a duplicate request.
11764 Mark it as such. */
11765 pi->is_duplicate = true;
11766 hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11767 proto_item_set_hidden(hidden_item);
11769 break;
11771 h225ras_call = h225ras_call->next_call;
11772 } while (h225ras_call != NULL );
11774 else {
11775 h225ras_call = new_h225ras_call(&h225ras_call_key, pinfo, &pi->guid, msg_category);
11778 /* add link to response frame, if available */
11779 if(h225ras_call && h225ras_call->rsp_num != 0){
11780 proto_item *ti =
11781 proto_tree_add_uint_format(tree, hf_h225_ras_rsp_frame, tvb, 0, 0, h225ras_call->rsp_num,
11782 "The response to this request is in frame %u",
11783 h225ras_call->rsp_num);
11784 proto_item_set_generated(ti);
11787 /* end of request message handling*/
11789 else { /* Confirm or Reject Message */
11790 conversation = find_conversation_pinfo(pinfo, 0);
11791 if (conversation != NULL) {
11792 /* look only for matching request, if
11793 matching conversation is available. */
11794 h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11795 h225ras_call_key.conversation = conversation;
11796 h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11797 if(h225ras_call) {
11798 /* find matching ras_call in list of ras calls with identical keys */
11799 do {
11800 if (pinfo->num == h225ras_call->rsp_num) {
11801 /* We have seen this response before -> stop now with matching ras call */
11802 break;
11805 /* Break when list end is reached */
11806 if(h225ras_call->next_call == NULL) {
11807 break;
11809 h225ras_call = h225ras_call->next_call;
11810 } while (h225ras_call != NULL) ;
11812 if (!h225ras_call) {
11813 return;
11816 /* if this is an ACF, ARJ or DCF, DRJ, give guid to tap and make it filterable */
11817 if (msg_category == 3 || msg_category == 5) {
11818 pi->guid = h225ras_call->guid;
11819 hidden_item = proto_tree_add_guid(tree, hf_h225_guid, tvb, 0, GUID_LEN, &pi->guid);
11820 proto_item_set_hidden(hidden_item);
11823 if (h225ras_call->rsp_num == 0) {
11824 /* We have not yet seen a response to that call, so
11825 this must be the first response; remember its
11826 frame number. */
11827 h225ras_call->rsp_num = pinfo->num;
11829 else {
11830 /* We have seen a response to this call - but was it
11831 *this* response? */
11832 if (h225ras_call->rsp_num != pinfo->num) {
11833 /* No, so it's a duplicate response.
11834 Mark it as such. */
11835 pi->is_duplicate = true;
11836 hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11837 proto_item_set_hidden(hidden_item);
11841 if(h225ras_call->req_num != 0){
11842 proto_item *ti;
11843 h225ras_call->responded = true;
11844 pi->request_available = true;
11846 /* Indicate the frame to which this is a reply. */
11847 ti = proto_tree_add_uint_format(tree, hf_h225_ras_req_frame, tvb, 0, 0, h225ras_call->req_num,
11848 "This is a response to a request in frame %u", h225ras_call->req_num);
11849 proto_item_set_generated(ti);
11851 /* Calculate RAS Service Response Time */
11852 nstime_delta(&delta, &pinfo->abs_ts, &h225ras_call->req_time);
11853 pi->delta_time = delta; /* give it to tap */
11855 /* display Ras Service Response Time and make it filterable */
11856 ti = proto_tree_add_time(tree, hf_h225_ras_deltatime, tvb, 0, 0, &(pi->delta_time));
11857 proto_item_set_generated(ti);
11866 * Editor modelines - https://www.wireshark.org/tools/modelines.html
11868 * Local Variables:
11869 * c-basic-offset: 2
11870 * tab-width: 8
11871 * indent-tabs-mode: nil
11872 * End:
11874 * vi: set shiftwidth=2 tabstop=8 expandtab:
11875 * :indentSize=2:tabSize=8:noTabs=true: