MSWSP: add two more Property Sets
[wireshark-wip.git] / epan / dissectors / packet-t124.c
blob621c1c6d9bfcc89ea61de4588bfed0d9845e20c8
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-t124.c */
4 /* ../../tools/asn2wrs.py -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../../epan/dissectors GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
6 /* Input file: packet-t124-template.c */
8 #line 1 "../../asn1/t124/packet-t124-template.c"
9 /* packet-t124.c
10 * Routines for t124 packet dissection
11 * Copyright 2010, Graeme Lunt
13 * $Id$
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
35 #include "config.h"
37 #include <glib.h>
38 #include <epan/packet.h>
39 #include <epan/exceptions.h>
40 #include <epan/conversation.h>
42 #include <epan/asn1.h>
43 #include "packet-per.h"
44 #include "packet-ber.h"
45 #include "packet-t124.h"
47 #ifdef _MSC_VER
48 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
49 #pragma warning(disable:4146)
50 #endif
52 #define PNAME "GENERIC-CONFERENCE-CONTROL T.124"
53 #define PSNAME "T.124"
54 #define PFNAME "t124"
56 void proto_register_t124(void);
57 void proto_reg_handoff_t124(void);
59 /* Initialize the protocol and registered fields */
60 static int proto_t124 = -1;
61 static proto_tree *top_tree = NULL;
64 /*--- Included file: packet-t124-hf.c ---*/
65 #line 1 "../../asn1/t124/packet-t124-hf.c"
66 static int hf_t124_object = -1; /* T_object */
67 static int hf_t124_h221NonStandard = -1; /* H221NonStandardIdentifier */
68 static int hf_t124_key = -1; /* Key */
69 static int hf_t124_data = -1; /* OCTET_STRING */
70 static int hf_t124_UserData_item = -1; /* UserData_item */
71 static int hf_t124_value = -1; /* T_value */
72 static int hf_t124_numeric = -1; /* SimpleNumericString */
73 static int hf_t124_text = -1; /* SimpleTextString */
74 static int hf_t124_unicodeText = -1; /* TextString */
75 static int hf_t124_passwordString = -1; /* PasswordSelector */
76 static int hf_t124_responseData = -1; /* UserData */
77 static int hf_t124_passwordInTheClear = -1; /* NULL */
78 static int hf_t124_nonStandardAlgorithm = -1; /* NonStandardParameter */
79 static int hf_t124_responseAlgorithm = -1; /* ChallengeResponseAlgorithm */
80 static int hf_t124_challengeData = -1; /* UserData */
81 static int hf_t124_challengeTag = -1; /* INTEGER */
82 static int hf_t124_challengeSet = -1; /* SET_OF_ChallengeItem */
83 static int hf_t124_challengeSet_item = -1; /* ChallengeItem */
84 static int hf_t124_responseItem = -1; /* ChallengeResponseItem */
85 static int hf_t124_passwordInTheClear_01 = -1; /* PasswordSelector */
86 static int hf_t124_challengeRequestResponse = -1; /* T_challengeRequestResponse */
87 static int hf_t124_challengeRequest = -1; /* ChallengeRequest */
88 static int hf_t124_challengeResponse = -1; /* ChallengeResponse */
89 static int hf_t124_nonStandardScheme = -1; /* NonStandardParameter */
90 static int hf_t124_priority = -1; /* INTEGER_0_65535 */
91 static int hf_t124_scheme = -1; /* ConferencePriorityScheme */
92 static int hf_t124_conventional = -1; /* NULL */
93 static int hf_t124_counted = -1; /* NULL */
94 static int hf_t124_anonymous = -1; /* NULL */
95 static int hf_t124_nonStandardCategory = -1; /* NonStandardParameter */
96 static int hf_t124_conventional_only = -1; /* NULL */
97 static int hf_t124_counted_only = -1; /* NULL */
98 static int hf_t124_anonymous_only = -1; /* NULL */
99 static int hf_t124_conventional_control = -1; /* NULL */
100 static int hf_t124_unrestricted_mode = -1; /* NULL */
101 static int hf_t124_non_standard_mode = -1; /* NonStandardParameter */
102 static int hf_t124_NetworkAddress_item = -1; /* NetworkAddress_item */
103 static int hf_t124_aggregatedChannel = -1; /* T_aggregatedChannel */
104 static int hf_t124_transferModes = -1; /* T_transferModes */
105 static int hf_t124_speech = -1; /* BOOLEAN */
106 static int hf_t124_voice_band = -1; /* BOOLEAN */
107 static int hf_t124_digital_56k = -1; /* BOOLEAN */
108 static int hf_t124_digital_64k = -1; /* BOOLEAN */
109 static int hf_t124_digital_128k = -1; /* BOOLEAN */
110 static int hf_t124_digital_192k = -1; /* BOOLEAN */
111 static int hf_t124_digital_256k = -1; /* BOOLEAN */
112 static int hf_t124_digital_320k = -1; /* BOOLEAN */
113 static int hf_t124_digital_384k = -1; /* BOOLEAN */
114 static int hf_t124_digital_512k = -1; /* BOOLEAN */
115 static int hf_t124_digital_768k = -1; /* BOOLEAN */
116 static int hf_t124_digital_1152k = -1; /* BOOLEAN */
117 static int hf_t124_digital_1472k = -1; /* BOOLEAN */
118 static int hf_t124_digital_1536k = -1; /* BOOLEAN */
119 static int hf_t124_digital_1920k = -1; /* BOOLEAN */
120 static int hf_t124_packet_mode = -1; /* BOOLEAN */
121 static int hf_t124_frame_mode = -1; /* BOOLEAN */
122 static int hf_t124_atm = -1; /* BOOLEAN */
123 static int hf_t124_internationalNumber = -1; /* DiallingString */
124 static int hf_t124_subAddress = -1; /* SubAddressString */
125 static int hf_t124_extraDialling = -1; /* ExtraDiallingString */
126 static int hf_t124_highLayerCompatibility = -1; /* T_highLayerCompatibility */
127 static int hf_t124_telephony3kHz = -1; /* BOOLEAN */
128 static int hf_t124_telephony7kHz = -1; /* BOOLEAN */
129 static int hf_t124_videotelephony = -1; /* BOOLEAN */
130 static int hf_t124_videoconference = -1; /* BOOLEAN */
131 static int hf_t124_audiographic = -1; /* BOOLEAN */
132 static int hf_t124_audiovisual = -1; /* BOOLEAN */
133 static int hf_t124_multimedia = -1; /* BOOLEAN */
134 static int hf_t124_transportConnection = -1; /* T_transportConnection */
135 static int hf_t124_nsapAddress = -1; /* OCTET_STRING_SIZE_1_20 */
136 static int hf_t124_transportSelector = -1; /* OCTET_STRING */
137 static int hf_t124_nonStandard = -1; /* NonStandardParameter */
138 static int hf_t124_callingNode = -1; /* NULL */
139 static int hf_t124_calledNode = -1; /* NULL */
140 static int hf_t124_unknown = -1; /* INTEGER_0_4294967295 */
141 static int hf_t124_conferenceName = -1; /* ConferenceName */
142 static int hf_t124_conferenceNameModifier = -1; /* ConferenceNameModifier */
143 static int hf_t124_conferenceDescription = -1; /* TextString */
144 static int hf_t124_lockedConference = -1; /* BOOLEAN */
145 static int hf_t124_passwordInTheClearRequired = -1; /* BOOLEAN */
146 static int hf_t124_networkAddress = -1; /* NetworkAddress */
147 static int hf_t124_defaultConferenceFlag = -1; /* BOOLEAN */
148 static int hf_t124_conferenceMode = -1; /* ConferenceMode */
149 static int hf_t124_convenerPassword = -1; /* Password */
150 static int hf_t124_password = -1; /* Password */
151 static int hf_t124_listedConference = -1; /* BOOLEAN */
152 static int hf_t124_conductibleConference = -1; /* BOOLEAN */
153 static int hf_t124_terminationMethod = -1; /* TerminationMethod */
154 static int hf_t124_conductorPrivileges = -1; /* SET_OF_Privilege */
155 static int hf_t124_conductorPrivileges_item = -1; /* Privilege */
156 static int hf_t124_conductedPrivileges = -1; /* SET_OF_Privilege */
157 static int hf_t124_conductedPrivileges_item = -1; /* Privilege */
158 static int hf_t124_nonConductedPrivileges = -1; /* SET_OF_Privilege */
159 static int hf_t124_nonConductedPrivileges_item = -1; /* Privilege */
160 static int hf_t124_callerIdentifier = -1; /* TextString */
161 static int hf_t124_userData = -1; /* UserData */
162 static int hf_t124_conferencePriority = -1; /* ConferencePriority */
163 static int hf_t124_nodeID = -1; /* UserID */
164 static int hf_t124_tag = -1; /* INTEGER */
165 static int hf_t124_result = -1; /* T_result */
166 static int hf_t124_nodeType = -1; /* NodeType */
167 static int hf_t124_asymmetryIndicator = -1; /* AsymmetryIndicator */
168 static int hf_t124_conferenceList = -1; /* SET_OF_ConferenceDescriptor */
169 static int hf_t124_conferenceList_item = -1; /* ConferenceDescriptor */
170 static int hf_t124_queryResponseResult = -1; /* QueryResponseResult */
171 static int hf_t124_waitForInvitationFlag = -1; /* BOOLEAN */
172 static int hf_t124_noUnlistedConferenceFlag = -1; /* BOOLEAN */
173 static int hf_t124_conferenceName_01 = -1; /* ConferenceNameSelector */
174 static int hf_t124_password_01 = -1; /* PasswordChallengeRequestResponse */
175 static int hf_t124_convenerPassword_01 = -1; /* PasswordSelector */
176 static int hf_t124_nodeCategory = -1; /* NodeCategory */
177 static int hf_t124_topNodeID = -1; /* UserID */
178 static int hf_t124_conferenceNameAlias = -1; /* ConferenceNameSelector */
179 static int hf_t124_joinResponseResult = -1; /* JoinResponseResult */
180 static int hf_t124_inviteResponseResult = -1; /* InviteResponseResult */
181 static int hf_t124_t124Identifier = -1; /* Key */
182 static int hf_t124_connectPDU = -1; /* T_connectPDU */
183 static int hf_t124_conferenceCreateRequest = -1; /* ConferenceCreateRequest */
184 static int hf_t124_conferenceCreateResponse = -1; /* ConferenceCreateResponse */
185 static int hf_t124_conferenceQueryRequest = -1; /* ConferenceQueryRequest */
186 static int hf_t124_conferenceQueryResponse = -1; /* ConferenceQueryResponse */
187 static int hf_t124_conferenceJoinRequest = -1; /* ConferenceJoinRequest */
188 static int hf_t124_conferenceJoinResponse = -1; /* ConferenceJoinResponse */
189 static int hf_t124_conferenceInviteRequest = -1; /* ConferenceInviteRequest */
190 static int hf_t124_conferenceInviteResponse = -1; /* ConferenceInviteResponse */
191 static int hf_t124_heightLimit = -1; /* INTEGER_0_MAX */
192 static int hf_t124_subHeight = -1; /* INTEGER_0_MAX */
193 static int hf_t124_subInterval = -1; /* INTEGER_0_MAX */
194 static int hf_t124_static = -1; /* T_static */
195 static int hf_t124_channelId = -1; /* StaticChannelId */
196 static int hf_t124_userId = -1; /* T_userId */
197 static int hf_t124_joined = -1; /* BOOLEAN */
198 static int hf_t124_userId_01 = -1; /* UserId */
199 static int hf_t124_private = -1; /* T_private */
200 static int hf_t124_channelId_01 = -1; /* PrivateChannelId */
201 static int hf_t124_manager = -1; /* UserId */
202 static int hf_t124_admitted = -1; /* SET_OF_UserId */
203 static int hf_t124_admitted_item = -1; /* UserId */
204 static int hf_t124_assigned = -1; /* T_assigned */
205 static int hf_t124_channelId_02 = -1; /* AssignedChannelId */
206 static int hf_t124_mergeChannels = -1; /* SET_OF_ChannelAttributes */
207 static int hf_t124_mergeChannels_item = -1; /* ChannelAttributes */
208 static int hf_t124_purgeChannelIds = -1; /* SET_OF_ChannelId */
209 static int hf_t124_purgeChannelIds_item = -1; /* ChannelId */
210 static int hf_t124_detachUserIds = -1; /* SET_OF_UserId */
211 static int hf_t124_detachUserIds_item = -1; /* UserId */
212 static int hf_t124_grabbed = -1; /* T_grabbed */
213 static int hf_t124_tokenId = -1; /* TokenId */
214 static int hf_t124_grabber = -1; /* UserId */
215 static int hf_t124_inhibited = -1; /* T_inhibited */
216 static int hf_t124_inhibitors = -1; /* SET_OF_UserId */
217 static int hf_t124_inhibitors_item = -1; /* UserId */
218 static int hf_t124_giving = -1; /* T_giving */
219 static int hf_t124_recipient = -1; /* UserId */
220 static int hf_t124_ungivable = -1; /* T_ungivable */
221 static int hf_t124_given = -1; /* T_given */
222 static int hf_t124_mergeTokens = -1; /* SET_OF_TokenAttributes */
223 static int hf_t124_mergeTokens_item = -1; /* TokenAttributes */
224 static int hf_t124_purgeTokenIds = -1; /* SET_OF_TokenId */
225 static int hf_t124_purgeTokenIds_item = -1; /* TokenId */
226 static int hf_t124_reason = -1; /* Reason */
227 static int hf_t124_diagnostic = -1; /* Diagnostic */
228 static int hf_t124_initialOctets = -1; /* OCTET_STRING */
229 static int hf_t124_result_01 = -1; /* Result */
230 static int hf_t124_initiator = -1; /* UserId */
231 static int hf_t124_userIds = -1; /* SET_OF_UserId */
232 static int hf_t124_userIds_item = -1; /* UserId */
233 static int hf_t124_channelId_03 = -1; /* ChannelId */
234 static int hf_t124_requested = -1; /* ChannelId */
235 static int hf_t124_channelIds = -1; /* SET_OF_ChannelId */
236 static int hf_t124_channelIds_item = -1; /* ChannelId */
237 static int hf_t124_dataPriority = -1; /* DataPriority */
238 static int hf_t124_segmentation = -1; /* Segmentation */
239 static int hf_t124_userData_01 = -1; /* T_userData */
240 static int hf_t124_userData_02 = -1; /* T_userData_01 */
241 static int hf_t124_userData_03 = -1; /* OCTET_STRING */
242 static int hf_t124_tokenStatus = -1; /* TokenStatus */
243 static int hf_t124_plumbDomainIndication = -1; /* PlumbDomainIndication */
244 static int hf_t124_erectDomainRequest = -1; /* ErectDomainRequest */
245 static int hf_t124_mergeChannelsRequest = -1; /* MergeChannelsRequest */
246 static int hf_t124_mergeChannelsConfirm = -1; /* MergeChannelsConfirm */
247 static int hf_t124_purgeChannelsIndication = -1; /* PurgeChannelsIndication */
248 static int hf_t124_mergeTokensRequest = -1; /* MergeTokensRequest */
249 static int hf_t124_mergeTokensConfirm = -1; /* MergeTokensConfirm */
250 static int hf_t124_purgeTokensIndication = -1; /* PurgeTokensIndication */
251 static int hf_t124_disconnectProviderUltimatum = -1; /* DisconnectProviderUltimatum */
252 static int hf_t124_rejectMCSPDUUltimatum = -1; /* RejectMCSPDUUltimatum */
253 static int hf_t124_attachUserRequest = -1; /* AttachUserRequest */
254 static int hf_t124_attachUserConfirm = -1; /* AttachUserConfirm */
255 static int hf_t124_detachUserRequest = -1; /* DetachUserRequest */
256 static int hf_t124_detachUserIndication = -1; /* DetachUserIndication */
257 static int hf_t124_channelJoinRequest = -1; /* ChannelJoinRequest */
258 static int hf_t124_channelJoinConfirm = -1; /* ChannelJoinConfirm */
259 static int hf_t124_channelLeaveRequest = -1; /* ChannelLeaveRequest */
260 static int hf_t124_channelConveneRequest = -1; /* ChannelConveneRequest */
261 static int hf_t124_channelConveneConfirm = -1; /* ChannelConveneConfirm */
262 static int hf_t124_channelDisbandRequest = -1; /* ChannelDisbandRequest */
263 static int hf_t124_channelDisbandIndication = -1; /* ChannelDisbandIndication */
264 static int hf_t124_channelAdmitRequest = -1; /* ChannelAdmitRequest */
265 static int hf_t124_channelAdmitIndication = -1; /* ChannelAdmitIndication */
266 static int hf_t124_channelExpelRequest = -1; /* ChannelExpelRequest */
267 static int hf_t124_channelExpelIndication = -1; /* ChannelExpelIndication */
268 static int hf_t124_sendDataRequest = -1; /* SendDataRequest */
269 static int hf_t124_sendDataIndication = -1; /* SendDataIndication */
270 static int hf_t124_uniformSendDataRequest = -1; /* UniformSendDataRequest */
271 static int hf_t124_uniformSendDataIndication = -1; /* UniformSendDataIndication */
272 static int hf_t124_tokenGrabRequest = -1; /* TokenGrabRequest */
273 static int hf_t124_tokenGrabConfirm = -1; /* TokenGrabConfirm */
274 static int hf_t124_tokenInhibitRequest = -1; /* TokenInhibitRequest */
275 static int hf_t124_tokenInhibitConfirm = -1; /* TokenInhibitConfirm */
276 static int hf_t124_tokenGiveRequest = -1; /* TokenGiveRequest */
277 static int hf_t124_tokenGiveIndication = -1; /* TokenGiveIndication */
278 static int hf_t124_tokenGiveResponse = -1; /* TokenGiveResponse */
279 static int hf_t124_tokenGiveConfirm = -1; /* TokenGiveConfirm */
280 static int hf_t124_tokenPleaseRequest = -1; /* TokenPleaseRequest */
281 static int hf_t124_tokenPleaseIndication = -1; /* TokenPleaseIndication */
282 static int hf_t124_tokenReleaseRequest = -1; /* TokenReleaseRequest */
283 static int hf_t124_tokenReleaseConfirm = -1; /* TokenReleaseConfirm */
284 static int hf_t124_tokenTestRequest = -1; /* TokenTestRequest */
285 static int hf_t124_tokenTestConfirm = -1; /* TokenTestConfirm */
286 /* named bits */
287 static int hf_t124_Segmentation_begin = -1;
288 static int hf_t124_Segmentation_end = -1;
290 /*--- End of included file: packet-t124-hf.c ---*/
291 #line 56 "../../asn1/t124/packet-t124-template.c"
293 /* Initialize the subtree pointers */
294 static int ett_t124 = -1;
295 static int ett_t124_connectGCCPDU = -1;
297 static int hf_t124_ConnectData = -1;
298 static int hf_t124_connectGCCPDU = -1;
299 static int hf_t124_DomainMCSPDU_PDU = -1;
301 static guint32 channelId = -1;
303 static const char *t124Identifier = NULL; /* extensions identifier */
304 static tvbuff_t *t124NSIdentifier = NULL; /* extensions non-standard identifier */
305 static dissector_table_t t124_ns_dissector_table=NULL;
306 static dissector_table_t t124_sd_dissector_table=NULL;
309 /*--- Included file: packet-t124-ett.c ---*/
310 #line 1 "../../asn1/t124/packet-t124-ett.c"
311 static gint ett_t124_Key = -1;
312 static gint ett_t124_NonStandardParameter = -1;
313 static gint ett_t124_UserData = -1;
314 static gint ett_t124_UserData_item = -1;
315 static gint ett_t124_Password = -1;
316 static gint ett_t124_PasswordSelector = -1;
317 static gint ett_t124_ChallengeResponseItem = -1;
318 static gint ett_t124_ChallengeResponseAlgorithm = -1;
319 static gint ett_t124_ChallengeItem = -1;
320 static gint ett_t124_ChallengeRequest = -1;
321 static gint ett_t124_SET_OF_ChallengeItem = -1;
322 static gint ett_t124_ChallengeResponse = -1;
323 static gint ett_t124_PasswordChallengeRequestResponse = -1;
324 static gint ett_t124_T_challengeRequestResponse = -1;
325 static gint ett_t124_ConferenceName = -1;
326 static gint ett_t124_ConferenceNameSelector = -1;
327 static gint ett_t124_ConferencePriorityScheme = -1;
328 static gint ett_t124_ConferencePriority = -1;
329 static gint ett_t124_NodeCategory = -1;
330 static gint ett_t124_ConferenceMode = -1;
331 static gint ett_t124_NetworkAddress = -1;
332 static gint ett_t124_NetworkAddress_item = -1;
333 static gint ett_t124_T_aggregatedChannel = -1;
334 static gint ett_t124_T_transferModes = -1;
335 static gint ett_t124_T_highLayerCompatibility = -1;
336 static gint ett_t124_T_transportConnection = -1;
337 static gint ett_t124_AsymmetryIndicator = -1;
338 static gint ett_t124_ConferenceDescriptor = -1;
339 static gint ett_t124_ConferenceCreateRequest = -1;
340 static gint ett_t124_SET_OF_Privilege = -1;
341 static gint ett_t124_ConferenceCreateResponse = -1;
342 static gint ett_t124_ConferenceQueryRequest = -1;
343 static gint ett_t124_ConferenceQueryResponse = -1;
344 static gint ett_t124_SET_OF_ConferenceDescriptor = -1;
345 static gint ett_t124_ConferenceJoinRequest = -1;
346 static gint ett_t124_ConferenceJoinResponse = -1;
347 static gint ett_t124_ConferenceInviteRequest = -1;
348 static gint ett_t124_ConferenceInviteResponse = -1;
349 static gint ett_t124_ConnectData = -1;
350 static gint ett_t124_ConnectGCCPDU = -1;
351 static gint ett_t124_Segmentation = -1;
352 static gint ett_t124_PlumbDomainIndication = -1;
353 static gint ett_t124_ErectDomainRequest = -1;
354 static gint ett_t124_ChannelAttributes = -1;
355 static gint ett_t124_T_static = -1;
356 static gint ett_t124_T_userId = -1;
357 static gint ett_t124_T_private = -1;
358 static gint ett_t124_SET_OF_UserId = -1;
359 static gint ett_t124_T_assigned = -1;
360 static gint ett_t124_MergeChannelsRequest = -1;
361 static gint ett_t124_SET_OF_ChannelAttributes = -1;
362 static gint ett_t124_SET_OF_ChannelId = -1;
363 static gint ett_t124_MergeChannelsConfirm = -1;
364 static gint ett_t124_PurgeChannelsIndication = -1;
365 static gint ett_t124_TokenAttributes = -1;
366 static gint ett_t124_T_grabbed = -1;
367 static gint ett_t124_T_inhibited = -1;
368 static gint ett_t124_T_giving = -1;
369 static gint ett_t124_T_ungivable = -1;
370 static gint ett_t124_T_given = -1;
371 static gint ett_t124_MergeTokensRequest = -1;
372 static gint ett_t124_SET_OF_TokenAttributes = -1;
373 static gint ett_t124_SET_OF_TokenId = -1;
374 static gint ett_t124_MergeTokensConfirm = -1;
375 static gint ett_t124_PurgeTokensIndication = -1;
376 static gint ett_t124_DisconnectProviderUltimatum = -1;
377 static gint ett_t124_RejectMCSPDUUltimatum = -1;
378 static gint ett_t124_AttachUserRequest = -1;
379 static gint ett_t124_AttachUserConfirm = -1;
380 static gint ett_t124_DetachUserRequest = -1;
381 static gint ett_t124_DetachUserIndication = -1;
382 static gint ett_t124_ChannelJoinRequest = -1;
383 static gint ett_t124_ChannelJoinConfirm = -1;
384 static gint ett_t124_ChannelLeaveRequest = -1;
385 static gint ett_t124_ChannelConveneRequest = -1;
386 static gint ett_t124_ChannelConveneConfirm = -1;
387 static gint ett_t124_ChannelDisbandRequest = -1;
388 static gint ett_t124_ChannelDisbandIndication = -1;
389 static gint ett_t124_ChannelAdmitRequest = -1;
390 static gint ett_t124_ChannelAdmitIndication = -1;
391 static gint ett_t124_ChannelExpelRequest = -1;
392 static gint ett_t124_ChannelExpelIndication = -1;
393 static gint ett_t124_SendDataRequest = -1;
394 static gint ett_t124_SendDataIndication = -1;
395 static gint ett_t124_UniformSendDataRequest = -1;
396 static gint ett_t124_UniformSendDataIndication = -1;
397 static gint ett_t124_TokenGrabRequest = -1;
398 static gint ett_t124_TokenGrabConfirm = -1;
399 static gint ett_t124_TokenInhibitRequest = -1;
400 static gint ett_t124_TokenInhibitConfirm = -1;
401 static gint ett_t124_TokenGiveRequest = -1;
402 static gint ett_t124_TokenGiveIndication = -1;
403 static gint ett_t124_TokenGiveResponse = -1;
404 static gint ett_t124_TokenGiveConfirm = -1;
405 static gint ett_t124_TokenPleaseRequest = -1;
406 static gint ett_t124_TokenPleaseIndication = -1;
407 static gint ett_t124_TokenReleaseRequest = -1;
408 static gint ett_t124_TokenReleaseConfirm = -1;
409 static gint ett_t124_TokenTestRequest = -1;
410 static gint ett_t124_TokenTestConfirm = -1;
411 static gint ett_t124_DomainMCSPDU = -1;
413 /*--- End of included file: packet-t124-ett.c ---*/
414 #line 73 "../../asn1/t124/packet-t124-template.c"
417 /*--- Included file: packet-t124-fn.c ---*/
418 #line 1 "../../asn1/t124/packet-t124-fn.c"
421 static int
422 dissect_t124_DynamicChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
423 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
424 1001U, 65535U, NULL, FALSE);
426 return offset;
431 static int
432 dissect_t124_UserID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
433 offset = dissect_t124_DynamicChannelID(tvb, offset, actx, tree, hf_index);
435 return offset;
440 static int
441 dissect_t124_H221NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
442 #line 218 "../../asn1/t124/t124.cnf"
444 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
445 4, 255, FALSE, &t124NSIdentifier);
451 return offset;
456 static int
457 dissect_t124_T_object(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
458 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &t124Identifier);
460 return offset;
464 static const value_string t124_Key_vals[] = {
465 { 0, "object" },
466 { 1, "h221NonStandard" },
467 { 0, NULL }
470 static const per_choice_t Key_choice[] = {
471 { 0, &hf_t124_object , ASN1_NO_EXTENSIONS , dissect_t124_T_object },
472 { 1, &hf_t124_h221NonStandard, ASN1_NO_EXTENSIONS , dissect_t124_H221NonStandardIdentifier },
473 { 0, NULL, 0, NULL }
476 static int
477 dissect_t124_Key(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
478 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
479 ett_t124_Key, Key_choice,
480 NULL);
482 return offset;
487 static int
488 dissect_t124_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
489 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
490 NO_BOUND, NO_BOUND, FALSE, NULL);
492 return offset;
496 static const per_sequence_t NonStandardParameter_sequence[] = {
497 { &hf_t124_key , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
498 { &hf_t124_data , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
499 { NULL, 0, 0, NULL }
502 static int
503 dissect_t124_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
504 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
505 ett_t124_NonStandardParameter, NonStandardParameter_sequence);
507 return offset;
512 static int
513 dissect_t124_TextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
514 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
515 0, 255, FALSE);
517 return offset;
522 static int
523 dissect_t124_SimpleTextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
524 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
525 0, 255, FALSE);
527 return offset;
532 static int
533 dissect_t124_SimpleNumericString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
534 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
535 1, 255, FALSE, "0123456789", 10,
536 NULL);
538 return offset;
543 static int
544 dissect_t124_DiallingString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
545 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
546 1, 16, FALSE, "0123456789", 10,
547 NULL);
549 return offset;
554 static int
555 dissect_t124_SubAddressString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
556 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
557 1, 40, FALSE, "0123456789", 10,
558 NULL);
560 return offset;
565 static int
566 dissect_t124_ExtraDiallingString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
567 offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_t124_TextString,
568 "TextString", 1, 255, FALSE);
570 return offset;
575 static int
576 dissect_t124_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
577 #line 150 "../../asn1/t124/t124.cnf"
578 tvbuff_t *next_tvb = NULL;
579 guint8 *ns = NULL;
581 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
582 NO_BOUND, NO_BOUND, FALSE, &next_tvb);
585 if(next_tvb) {
587 ns = tvb_get_string(NULL, t124NSIdentifier, 0, tvb_length(t124NSIdentifier));
588 if(ns != NULL) {
589 dissector_try_string(t124_ns_dissector_table, ns, next_tvb, actx->pinfo, top_tree, NULL);
590 g_free(ns);
596 return offset;
600 static const per_sequence_t UserData_item_sequence[] = {
601 { &hf_t124_key , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
602 { &hf_t124_value , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_T_value },
603 { NULL, 0, 0, NULL }
606 static int
607 dissect_t124_UserData_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
608 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
609 ett_t124_UserData_item, UserData_item_sequence);
611 return offset;
615 static const per_sequence_t UserData_set_of[1] = {
616 { &hf_t124_UserData_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserData_item },
619 static int
620 dissect_t124_UserData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
621 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
622 ett_t124_UserData, UserData_set_of);
624 return offset;
628 static const per_sequence_t Password_sequence[] = {
629 { &hf_t124_numeric , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SimpleNumericString },
630 { &hf_t124_text , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SimpleTextString },
631 { &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_TextString },
632 { NULL, 0, 0, NULL }
635 static int
636 dissect_t124_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
637 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
638 ett_t124_Password, Password_sequence);
640 return offset;
644 static const value_string t124_PasswordSelector_vals[] = {
645 { 0, "numeric" },
646 { 1, "text" },
647 { 2, "unicodeText" },
648 { 0, NULL }
651 static const per_choice_t PasswordSelector_choice[] = {
652 { 0, &hf_t124_numeric , ASN1_EXTENSION_ROOT , dissect_t124_SimpleNumericString },
653 { 1, &hf_t124_text , ASN1_EXTENSION_ROOT , dissect_t124_SimpleTextString },
654 { 2, &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, dissect_t124_TextString },
655 { 0, NULL, 0, NULL }
658 static int
659 dissect_t124_PasswordSelector(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
660 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
661 ett_t124_PasswordSelector, PasswordSelector_choice,
662 NULL);
664 return offset;
668 static const value_string t124_ChallengeResponseItem_vals[] = {
669 { 0, "passwordString" },
670 { 1, "responseData" },
671 { 0, NULL }
674 static const per_choice_t ChallengeResponseItem_choice[] = {
675 { 0, &hf_t124_passwordString , ASN1_EXTENSION_ROOT , dissect_t124_PasswordSelector },
676 { 1, &hf_t124_responseData , ASN1_EXTENSION_ROOT , dissect_t124_UserData },
677 { 0, NULL, 0, NULL }
680 static int
681 dissect_t124_ChallengeResponseItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
682 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
683 ett_t124_ChallengeResponseItem, ChallengeResponseItem_choice,
684 NULL);
686 return offset;
691 static int
692 dissect_t124_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
693 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
695 return offset;
699 static const value_string t124_ChallengeResponseAlgorithm_vals[] = {
700 { 0, "passwordInTheClear" },
701 { 1, "nonStandardAlgorithm" },
702 { 0, NULL }
705 static const per_choice_t ChallengeResponseAlgorithm_choice[] = {
706 { 0, &hf_t124_passwordInTheClear, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
707 { 1, &hf_t124_nonStandardAlgorithm, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
708 { 0, NULL, 0, NULL }
711 static int
712 dissect_t124_ChallengeResponseAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
713 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
714 ett_t124_ChallengeResponseAlgorithm, ChallengeResponseAlgorithm_choice,
715 NULL);
717 return offset;
721 static const per_sequence_t ChallengeItem_sequence[] = {
722 { &hf_t124_responseAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseAlgorithm },
723 { &hf_t124_challengeData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserData },
724 { NULL, 0, 0, NULL }
727 static int
728 dissect_t124_ChallengeItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
729 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
730 ett_t124_ChallengeItem, ChallengeItem_sequence);
732 return offset;
737 static int
738 dissect_t124_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
739 offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
741 return offset;
745 static const per_sequence_t SET_OF_ChallengeItem_set_of[1] = {
746 { &hf_t124_challengeSet_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeItem },
749 static int
750 dissect_t124_SET_OF_ChallengeItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
751 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
752 ett_t124_SET_OF_ChallengeItem, SET_OF_ChallengeItem_set_of);
754 return offset;
758 static const per_sequence_t ChallengeRequest_sequence[] = {
759 { &hf_t124_challengeTag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
760 { &hf_t124_challengeSet , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChallengeItem },
761 { NULL, 0, 0, NULL }
764 static int
765 dissect_t124_ChallengeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
766 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
767 ett_t124_ChallengeRequest, ChallengeRequest_sequence);
769 return offset;
773 static const per_sequence_t ChallengeResponse_sequence[] = {
774 { &hf_t124_challengeTag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
775 { &hf_t124_responseAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseAlgorithm },
776 { &hf_t124_responseItem , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseItem },
777 { NULL, 0, 0, NULL }
780 static int
781 dissect_t124_ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
782 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
783 ett_t124_ChallengeResponse, ChallengeResponse_sequence);
785 return offset;
789 static const per_sequence_t T_challengeRequestResponse_sequence[] = {
790 { &hf_t124_challengeRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ChallengeRequest },
791 { &hf_t124_challengeResponse, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ChallengeResponse },
792 { NULL, 0, 0, NULL }
795 static int
796 dissect_t124_T_challengeRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
797 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
798 ett_t124_T_challengeRequestResponse, T_challengeRequestResponse_sequence);
800 return offset;
804 static const value_string t124_PasswordChallengeRequestResponse_vals[] = {
805 { 0, "passwordInTheClear" },
806 { 1, "challengeRequestResponse" },
807 { 0, NULL }
810 static const per_choice_t PasswordChallengeRequestResponse_choice[] = {
811 { 0, &hf_t124_passwordInTheClear_01, ASN1_EXTENSION_ROOT , dissect_t124_PasswordSelector },
812 { 1, &hf_t124_challengeRequestResponse, ASN1_EXTENSION_ROOT , dissect_t124_T_challengeRequestResponse },
813 { 0, NULL, 0, NULL }
816 static int
817 dissect_t124_PasswordChallengeRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
818 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
819 ett_t124_PasswordChallengeRequestResponse, PasswordChallengeRequestResponse_choice,
820 NULL);
822 return offset;
826 static const per_sequence_t ConferenceName_sequence[] = {
827 { &hf_t124_numeric , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SimpleNumericString },
828 { &hf_t124_text , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SimpleTextString },
829 { &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_TextString },
830 { NULL, 0, 0, NULL }
833 static int
834 dissect_t124_ConferenceName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
835 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
836 ett_t124_ConferenceName, ConferenceName_sequence);
838 return offset;
842 static const value_string t124_ConferenceNameSelector_vals[] = {
843 { 0, "numeric" },
844 { 1, "text" },
845 { 2, "unicodeText" },
846 { 0, NULL }
849 static const per_choice_t ConferenceNameSelector_choice[] = {
850 { 0, &hf_t124_numeric , ASN1_EXTENSION_ROOT , dissect_t124_SimpleNumericString },
851 { 1, &hf_t124_text , ASN1_EXTENSION_ROOT , dissect_t124_SimpleTextString },
852 { 2, &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, dissect_t124_TextString },
853 { 0, NULL, 0, NULL }
856 static int
857 dissect_t124_ConferenceNameSelector(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
858 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
859 ett_t124_ConferenceNameSelector, ConferenceNameSelector_choice,
860 NULL);
862 return offset;
867 static int
868 dissect_t124_ConferenceNameModifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
869 offset = dissect_t124_SimpleNumericString(tvb, offset, actx, tree, hf_index);
871 return offset;
875 static const value_string t124_Privilege_vals[] = {
876 { 0, "terminate" },
877 { 1, "ejectUser" },
878 { 2, "add" },
879 { 3, "lockUnlock" },
880 { 4, "transfer" },
881 { 0, NULL }
885 static int
886 dissect_t124_Privilege(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
887 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
888 5, NULL, TRUE, 0, NULL);
890 return offset;
894 static const value_string t124_TerminationMethod_vals[] = {
895 { 0, "automatic" },
896 { 1, "manual" },
897 { 0, NULL }
901 static int
902 dissect_t124_TerminationMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
903 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
904 2, NULL, TRUE, 0, NULL);
906 return offset;
910 static const value_string t124_ConferencePriorityScheme_vals[] = {
911 { 0, "nonStandardScheme" },
912 { 0, NULL }
915 static const per_choice_t ConferencePriorityScheme_choice[] = {
916 { 0, &hf_t124_nonStandardScheme, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
917 { 0, NULL, 0, NULL }
920 static int
921 dissect_t124_ConferencePriorityScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
922 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
923 ett_t124_ConferencePriorityScheme, ConferencePriorityScheme_choice,
924 NULL);
926 return offset;
931 static int
932 dissect_t124_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
933 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
934 0U, 65535U, NULL, FALSE);
936 return offset;
940 static const per_sequence_t ConferencePriority_sequence[] = {
941 { &hf_t124_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_65535 },
942 { &hf_t124_scheme , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferencePriorityScheme },
943 { NULL, 0, 0, NULL }
946 static int
947 dissect_t124_ConferencePriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
948 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
949 ett_t124_ConferencePriority, ConferencePriority_sequence);
951 return offset;
955 static const value_string t124_NodeCategory_vals[] = {
956 { 0, "conventional" },
957 { 1, "counted" },
958 { 2, "anonymous" },
959 { 3, "nonStandardCategory" },
960 { 0, NULL }
963 static const per_choice_t NodeCategory_choice[] = {
964 { 0, &hf_t124_conventional , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
965 { 1, &hf_t124_counted , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
966 { 2, &hf_t124_anonymous , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
967 { 3, &hf_t124_nonStandardCategory, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
968 { 0, NULL, 0, NULL }
971 static int
972 dissect_t124_NodeCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
973 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
974 ett_t124_NodeCategory, NodeCategory_choice,
975 NULL);
977 return offset;
981 static const value_string t124_ConferenceMode_vals[] = {
982 { 0, "conventional-only" },
983 { 1, "counted-only" },
984 { 2, "anonymous-only" },
985 { 3, "conventional-control" },
986 { 4, "unrestricted-mode" },
987 { 5, "non-standard-mode" },
988 { 0, NULL }
991 static const per_choice_t ConferenceMode_choice[] = {
992 { 0, &hf_t124_conventional_only, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
993 { 1, &hf_t124_counted_only , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
994 { 2, &hf_t124_anonymous_only , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
995 { 3, &hf_t124_conventional_control, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
996 { 4, &hf_t124_unrestricted_mode, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
997 { 5, &hf_t124_non_standard_mode, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
998 { 0, NULL, 0, NULL }
1001 static int
1002 dissect_t124_ConferenceMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1003 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1004 ett_t124_ConferenceMode, ConferenceMode_choice,
1005 NULL);
1007 return offset;
1012 static int
1013 dissect_t124_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1014 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1016 return offset;
1020 static const per_sequence_t T_transferModes_sequence[] = {
1021 { &hf_t124_speech , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1022 { &hf_t124_voice_band , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1023 { &hf_t124_digital_56k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1024 { &hf_t124_digital_64k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1025 { &hf_t124_digital_128k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1026 { &hf_t124_digital_192k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1027 { &hf_t124_digital_256k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1028 { &hf_t124_digital_320k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1029 { &hf_t124_digital_384k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1030 { &hf_t124_digital_512k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1031 { &hf_t124_digital_768k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1032 { &hf_t124_digital_1152k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1033 { &hf_t124_digital_1472k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1034 { &hf_t124_digital_1536k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1035 { &hf_t124_digital_1920k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1036 { &hf_t124_packet_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1037 { &hf_t124_frame_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1038 { &hf_t124_atm , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1039 { NULL, 0, 0, NULL }
1042 static int
1043 dissect_t124_T_transferModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1044 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1045 ett_t124_T_transferModes, T_transferModes_sequence);
1047 return offset;
1051 static const per_sequence_t T_highLayerCompatibility_sequence[] = {
1052 { &hf_t124_telephony3kHz , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1053 { &hf_t124_telephony7kHz , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1054 { &hf_t124_videotelephony , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1055 { &hf_t124_videoconference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1056 { &hf_t124_audiographic , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1057 { &hf_t124_audiovisual , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1058 { &hf_t124_multimedia , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1059 { NULL, 0, 0, NULL }
1062 static int
1063 dissect_t124_T_highLayerCompatibility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1064 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1065 ett_t124_T_highLayerCompatibility, T_highLayerCompatibility_sequence);
1067 return offset;
1071 static const per_sequence_t T_aggregatedChannel_sequence[] = {
1072 { &hf_t124_transferModes , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_T_transferModes },
1073 { &hf_t124_internationalNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_DiallingString },
1074 { &hf_t124_subAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SubAddressString },
1075 { &hf_t124_extraDialling , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ExtraDiallingString },
1076 { &hf_t124_highLayerCompatibility, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_T_highLayerCompatibility },
1077 { NULL, 0, 0, NULL }
1080 static int
1081 dissect_t124_T_aggregatedChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1082 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1083 ett_t124_T_aggregatedChannel, T_aggregatedChannel_sequence);
1085 return offset;
1090 static int
1091 dissect_t124_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_) {
1092 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1093 1, 20, FALSE, NULL);
1095 return offset;
1099 static const per_sequence_t T_transportConnection_sequence[] = {
1100 { &hf_t124_nsapAddress , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING_SIZE_1_20 },
1101 { &hf_t124_transportSelector, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_OCTET_STRING },
1102 { NULL, 0, 0, NULL }
1105 static int
1106 dissect_t124_T_transportConnection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1107 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1108 ett_t124_T_transportConnection, T_transportConnection_sequence);
1110 return offset;
1114 static const value_string t124_NetworkAddress_item_vals[] = {
1115 { 0, "aggregatedChannel" },
1116 { 1, "transportConnection" },
1117 { 2, "nonStandard" },
1118 { 0, NULL }
1121 static const per_choice_t NetworkAddress_item_choice[] = {
1122 { 0, &hf_t124_aggregatedChannel, ASN1_EXTENSION_ROOT , dissect_t124_T_aggregatedChannel },
1123 { 1, &hf_t124_transportConnection, ASN1_EXTENSION_ROOT , dissect_t124_T_transportConnection },
1124 { 2, &hf_t124_nonStandard , ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
1125 { 0, NULL, 0, NULL }
1128 static int
1129 dissect_t124_NetworkAddress_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1130 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1131 ett_t124_NetworkAddress_item, NetworkAddress_item_choice,
1132 NULL);
1134 return offset;
1138 static const per_sequence_t NetworkAddress_sequence_of[1] = {
1139 { &hf_t124_NetworkAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_NetworkAddress_item },
1142 static int
1143 dissect_t124_NetworkAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1144 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1145 ett_t124_NetworkAddress, NetworkAddress_sequence_of,
1146 1, 64, FALSE);
1148 return offset;
1152 static const value_string t124_NodeType_vals[] = {
1153 { 0, "terminal" },
1154 { 1, "multiportTerminal" },
1155 { 2, "mcu" },
1156 { 0, NULL }
1160 static int
1161 dissect_t124_NodeType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1162 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1163 3, NULL, TRUE, 0, NULL);
1165 return offset;
1170 static int
1171 dissect_t124_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1172 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1173 0U, 4294967295U, NULL, FALSE);
1175 return offset;
1179 static const value_string t124_AsymmetryIndicator_vals[] = {
1180 { 0, "callingNode" },
1181 { 1, "calledNode" },
1182 { 2, "unknown" },
1183 { 0, NULL }
1186 static const per_choice_t AsymmetryIndicator_choice[] = {
1187 { 0, &hf_t124_callingNode , ASN1_NO_EXTENSIONS , dissect_t124_NULL },
1188 { 1, &hf_t124_calledNode , ASN1_NO_EXTENSIONS , dissect_t124_NULL },
1189 { 2, &hf_t124_unknown , ASN1_NO_EXTENSIONS , dissect_t124_INTEGER_0_4294967295 },
1190 { 0, NULL, 0, NULL }
1193 static int
1194 dissect_t124_AsymmetryIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1195 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1196 ett_t124_AsymmetryIndicator, AsymmetryIndicator_choice,
1197 NULL);
1199 return offset;
1203 static const per_sequence_t ConferenceDescriptor_sequence[] = {
1204 { &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
1205 { &hf_t124_conferenceNameModifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameModifier },
1206 { &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1207 { &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1208 { &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1209 { &hf_t124_networkAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_NetworkAddress },
1210 { &hf_t124_defaultConferenceFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1211 { &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t124_ConferenceMode },
1212 { NULL, 0, 0, NULL }
1215 static int
1216 dissect_t124_ConferenceDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1217 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1218 ett_t124_ConferenceDescriptor, ConferenceDescriptor_sequence);
1220 return offset;
1224 static const per_sequence_t SET_OF_Privilege_set_of[1] = {
1225 { &hf_t124_conductorPrivileges_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Privilege },
1228 static int
1229 dissect_t124_SET_OF_Privilege(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
1231 ett_t124_SET_OF_Privilege, SET_OF_Privilege_set_of);
1233 return offset;
1237 static const per_sequence_t ConferenceCreateRequest_sequence[] = {
1238 { &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
1239 { &hf_t124_convenerPassword, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_Password },
1240 { &hf_t124_password , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_Password },
1241 { &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1242 { &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1243 { &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1244 { &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
1245 { &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1246 { &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1247 { &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1248 { &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1249 { &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1250 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1251 { &hf_t124_conferencePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferencePriority },
1252 { &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
1253 { NULL, 0, 0, NULL }
1256 static int
1257 dissect_t124_ConferenceCreateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1258 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1259 ett_t124_ConferenceCreateRequest, ConferenceCreateRequest_sequence);
1261 return offset;
1265 static const value_string t124_T_result_vals[] = {
1266 { 0, "success" },
1267 { 1, "userRejected" },
1268 { 2, "resourcesNotAvailable" },
1269 { 3, "rejectedForSymmetryBreaking" },
1270 { 4, "lockedConferenceNotSupported" },
1271 { 0, NULL }
1275 static int
1276 dissect_t124_T_result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1277 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1278 5, NULL, TRUE, 0, NULL);
1280 return offset;
1284 static const per_sequence_t ConferenceCreateResponse_sequence[] = {
1285 { &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
1286 { &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
1287 { &hf_t124_result , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_T_result },
1288 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1289 { NULL, 0, 0, NULL }
1292 static int
1293 dissect_t124_ConferenceCreateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1294 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1295 ett_t124_ConferenceCreateResponse, ConferenceCreateResponse_sequence);
1297 return offset;
1301 static const per_sequence_t ConferenceQueryRequest_sequence[] = {
1302 { &hf_t124_nodeType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_NodeType },
1303 { &hf_t124_asymmetryIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_AsymmetryIndicator },
1304 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1305 { NULL, 0, 0, NULL }
1308 static int
1309 dissect_t124_ConferenceQueryRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1310 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1311 ett_t124_ConferenceQueryRequest, ConferenceQueryRequest_sequence);
1313 return offset;
1317 static const per_sequence_t SET_OF_ConferenceDescriptor_set_of[1] = {
1318 { &hf_t124_conferenceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceDescriptor },
1321 static int
1322 dissect_t124_SET_OF_ConferenceDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1323 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
1324 ett_t124_SET_OF_ConferenceDescriptor, SET_OF_ConferenceDescriptor_set_of);
1326 return offset;
1330 static const value_string t124_QueryResponseResult_vals[] = {
1331 { 0, "success" },
1332 { 1, "userRejected" },
1333 { 0, NULL }
1337 static int
1338 dissect_t124_QueryResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1339 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1340 2, NULL, TRUE, 0, NULL);
1342 return offset;
1346 static const per_sequence_t ConferenceQueryResponse_sequence[] = {
1347 { &hf_t124_nodeType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_NodeType },
1348 { &hf_t124_asymmetryIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_AsymmetryIndicator },
1349 { &hf_t124_conferenceList , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ConferenceDescriptor },
1350 { &hf_t124_queryResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_QueryResponseResult },
1351 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1352 { &hf_t124_waitForInvitationFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_BOOLEAN },
1353 { &hf_t124_noUnlistedConferenceFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_BOOLEAN },
1354 { NULL, 0, 0, NULL }
1357 static int
1358 dissect_t124_ConferenceQueryResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1359 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1360 ett_t124_ConferenceQueryResponse, ConferenceQueryResponse_sequence);
1362 return offset;
1366 static const per_sequence_t ConferenceJoinRequest_sequence[] = {
1367 { &hf_t124_conferenceName_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameSelector },
1368 { &hf_t124_conferenceNameModifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameModifier },
1369 { &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_INTEGER },
1370 { &hf_t124_password_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordChallengeRequestResponse },
1371 { &hf_t124_convenerPassword_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordSelector },
1372 { &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1373 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1374 { &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
1375 { NULL, 0, 0, NULL }
1378 static int
1379 dissect_t124_ConferenceJoinRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1380 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1381 ett_t124_ConferenceJoinRequest, ConferenceJoinRequest_sequence);
1383 return offset;
1387 static const value_string t124_JoinResponseResult_vals[] = {
1388 { 0, "success" },
1389 { 1, "userRejected" },
1390 { 2, "invalidConference" },
1391 { 3, "invalidPassword" },
1392 { 4, "invalidConvenerPassword" },
1393 { 5, "challengeResponseRequired" },
1394 { 6, "invalidChallengeResponse" },
1395 { 0, NULL }
1399 static int
1400 dissect_t124_JoinResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1401 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1402 7, NULL, TRUE, 0, NULL);
1404 return offset;
1408 static const per_sequence_t ConferenceJoinResponse_sequence[] = {
1409 { &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserID },
1410 { &hf_t124_topNodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
1411 { &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
1412 { &hf_t124_conferenceNameAlias, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameSelector },
1413 { &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1414 { &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1415 { &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1416 { &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1417 { &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
1418 { &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1419 { &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1420 { &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1421 { &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1422 { &hf_t124_password_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordChallengeRequestResponse },
1423 { &hf_t124_joinResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_JoinResponseResult },
1424 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1425 { &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
1426 { &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
1427 { NULL, 0, 0, NULL }
1430 static int
1431 dissect_t124_ConferenceJoinResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1432 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1433 ett_t124_ConferenceJoinResponse, ConferenceJoinResponse_sequence);
1435 return offset;
1439 static const per_sequence_t ConferenceInviteRequest_sequence[] = {
1440 { &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
1441 { &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
1442 { &hf_t124_topNodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
1443 { &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
1444 { &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1445 { &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1446 { &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1447 { &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1448 { &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
1449 { &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1450 { &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1451 { &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
1452 { &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1453 { &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
1454 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1455 { &hf_t124_conferencePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferencePriority },
1456 { &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
1457 { &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
1458 { NULL, 0, 0, NULL }
1461 static int
1462 dissect_t124_ConferenceInviteRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1463 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1464 ett_t124_ConferenceInviteRequest, ConferenceInviteRequest_sequence);
1466 return offset;
1470 static const value_string t124_InviteResponseResult_vals[] = {
1471 { 0, "success" },
1472 { 1, "userRejected" },
1473 { 0, NULL }
1477 static int
1478 dissect_t124_InviteResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1479 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1480 2, NULL, TRUE, 0, NULL);
1482 return offset;
1486 static const per_sequence_t ConferenceInviteResponse_sequence[] = {
1487 { &hf_t124_inviteResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_InviteResponseResult },
1488 { &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
1489 { NULL, 0, 0, NULL }
1492 static int
1493 dissect_t124_ConferenceInviteResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1494 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1495 ett_t124_ConferenceInviteResponse, ConferenceInviteResponse_sequence);
1497 return offset;
1502 static int
1503 dissect_t124_T_connectPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1504 #line 124 "../../asn1/t124/t124.cnf"
1505 tvbuff_t *next_tvb = NULL;
1506 proto_tree *next_tree = NULL;
1507 int old_offset = 0;
1509 old_offset = offset;
1510 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1511 NO_BOUND, NO_BOUND, FALSE, &next_tvb);
1513 if(next_tvb) {
1514 /* "2a -> ConnectData::connectPDU length = 42 bytes */
1515 /* This length MUST be ignored by the client." */
1517 /* Not sure why - but lets ignore the length. */
1518 /* We assume the OCTET STRING is all of the remaining bytes */
1520 if(tvb_length(next_tvb) == 42) {
1521 /* this is perhaps a naive ... */
1522 next_tvb = tvb_new_subset_remaining(tvb, (old_offset>>3)+1);
1525 next_tree = proto_item_add_subtree(actx->created_item, ett_t124_connectGCCPDU);
1527 dissect_t124_ConnectGCCPDU(next_tvb, 0, actx, next_tree, hf_t124_connectGCCPDU);
1532 return offset;
1536 static const per_sequence_t ConnectData_sequence[] = {
1537 { &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
1538 { &hf_t124_connectPDU , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_connectPDU },
1539 { NULL, 0, 0, NULL }
1543 dissect_t124_ConnectData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1544 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1545 ett_t124_ConnectData, ConnectData_sequence);
1547 return offset;
1551 const value_string t124_ConnectGCCPDU_vals[] = {
1552 { 0, "conferenceCreateRequest" },
1553 { 1, "conferenceCreateResponse" },
1554 { 2, "conferenceQueryRequest" },
1555 { 3, "conferenceQueryResponse" },
1556 { 4, "conferenceJoinRequest" },
1557 { 5, "conferenceJoinResponse" },
1558 { 6, "conferenceInviteRequest" },
1559 { 7, "conferenceInviteResponse" },
1560 { 0, NULL }
1563 static const per_choice_t ConnectGCCPDU_choice[] = {
1564 { 0, &hf_t124_conferenceCreateRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceCreateRequest },
1565 { 1, &hf_t124_conferenceCreateResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceCreateResponse },
1566 { 2, &hf_t124_conferenceQueryRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceQueryRequest },
1567 { 3, &hf_t124_conferenceQueryResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceQueryResponse },
1568 { 4, &hf_t124_conferenceJoinRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceJoinRequest },
1569 { 5, &hf_t124_conferenceJoinResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceJoinResponse },
1570 { 6, &hf_t124_conferenceInviteRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceInviteRequest },
1571 { 7, &hf_t124_conferenceInviteResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceInviteResponse },
1572 { 0, NULL, 0, NULL }
1576 dissect_t124_ConnectGCCPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1577 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1578 ett_t124_ConnectGCCPDU, ConnectGCCPDU_choice,
1579 NULL);
1581 return offset;
1586 static int
1587 dissect_t124_ChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1588 #line 223 "../../asn1/t124/t124.cnf"
1590 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1591 0U, 65535U, &channelId, FALSE);
1594 if(hf_index == hf_t124_channelId_03)
1595 col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%d", channelId);
1600 return offset;
1605 static int
1606 dissect_t124_StaticChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1607 offset = dissect_t124_ChannelId(tvb, offset, actx, tree, hf_index);
1609 return offset;
1614 static int
1615 dissect_t124_DynamicChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1616 offset = dissect_t124_ChannelId(tvb, offset, actx, tree, hf_index);
1618 return offset;
1623 static int
1624 dissect_t124_UserId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1625 offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
1627 return offset;
1632 static int
1633 dissect_t124_PrivateChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1634 offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
1636 return offset;
1641 static int
1642 dissect_t124_AssignedChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
1645 return offset;
1650 static int
1651 dissect_t124_TokenId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1652 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1653 1U, 65535U, NULL, FALSE);
1655 return offset;
1659 static const value_string t124_TokenStatus_vals[] = {
1660 { 0, "notInUse" },
1661 { 1, "selfGrabbed" },
1662 { 2, "otherGrabbed" },
1663 { 3, "selfInhibited" },
1664 { 4, "otherInhibited" },
1665 { 5, "selfRecipient" },
1666 { 6, "selfGiving" },
1667 { 7, "otherGiving" },
1668 { 0, NULL }
1672 static int
1673 dissect_t124_TokenStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1674 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1675 8, NULL, FALSE, 0, NULL);
1677 return offset;
1681 static const value_string t124_DataPriority_vals[] = {
1682 { 0, "top" },
1683 { 1, "high" },
1684 { 2, "medium" },
1685 { 3, "low" },
1686 { 0, NULL }
1690 static int
1691 dissect_t124_DataPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1692 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1693 4, NULL, FALSE, 0, NULL);
1695 return offset;
1700 static int
1701 dissect_t124_Segmentation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1702 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
1703 2, 2, FALSE, NULL);
1705 return offset;
1710 static int
1711 dissect_t124_INTEGER_0_MAX(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1712 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1713 0U, NO_BOUND, NULL, FALSE);
1715 return offset;
1719 static const per_sequence_t PlumbDomainIndication_sequence[] = {
1720 { &hf_t124_heightLimit , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
1721 { NULL, 0, 0, NULL }
1724 static int
1725 dissect_t124_PlumbDomainIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1726 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1727 ett_t124_PlumbDomainIndication, PlumbDomainIndication_sequence);
1729 return offset;
1733 static const per_sequence_t ErectDomainRequest_sequence[] = {
1734 { &hf_t124_subHeight , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
1735 { &hf_t124_subInterval , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
1736 { NULL, 0, 0, NULL }
1739 static int
1740 dissect_t124_ErectDomainRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1741 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1742 ett_t124_ErectDomainRequest, ErectDomainRequest_sequence);
1744 return offset;
1748 static const per_sequence_t T_static_sequence[] = {
1749 { &hf_t124_channelId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_StaticChannelId },
1750 { NULL, 0, 0, NULL }
1753 static int
1754 dissect_t124_T_static(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1755 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1756 ett_t124_T_static, T_static_sequence);
1758 return offset;
1762 static const per_sequence_t T_userId_sequence[] = {
1763 { &hf_t124_joined , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1764 { &hf_t124_userId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1765 { NULL, 0, 0, NULL }
1768 static int
1769 dissect_t124_T_userId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1770 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1771 ett_t124_T_userId, T_userId_sequence);
1773 return offset;
1777 static const per_sequence_t SET_OF_UserId_set_of[1] = {
1778 { &hf_t124_admitted_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1781 static int
1782 dissect_t124_SET_OF_UserId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1783 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
1784 ett_t124_SET_OF_UserId, SET_OF_UserId_set_of);
1786 return offset;
1790 static const per_sequence_t T_private_sequence[] = {
1791 { &hf_t124_joined , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
1792 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
1793 { &hf_t124_manager , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1794 { &hf_t124_admitted , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
1795 { NULL, 0, 0, NULL }
1798 static int
1799 dissect_t124_T_private(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1800 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1801 ett_t124_T_private, T_private_sequence);
1803 return offset;
1807 static const per_sequence_t T_assigned_sequence[] = {
1808 { &hf_t124_channelId_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_AssignedChannelId },
1809 { NULL, 0, 0, NULL }
1812 static int
1813 dissect_t124_T_assigned(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1814 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1815 ett_t124_T_assigned, T_assigned_sequence);
1817 return offset;
1821 static const value_string t124_ChannelAttributes_vals[] = {
1822 { 0, "static" },
1823 { 1, "userId" },
1824 { 2, "private" },
1825 { 3, "assigned" },
1826 { 0, NULL }
1829 static const per_choice_t ChannelAttributes_choice[] = {
1830 { 0, &hf_t124_static , ASN1_NO_EXTENSIONS , dissect_t124_T_static },
1831 { 1, &hf_t124_userId , ASN1_NO_EXTENSIONS , dissect_t124_T_userId },
1832 { 2, &hf_t124_private , ASN1_NO_EXTENSIONS , dissect_t124_T_private },
1833 { 3, &hf_t124_assigned , ASN1_NO_EXTENSIONS , dissect_t124_T_assigned },
1834 { 0, NULL, 0, NULL }
1837 static int
1838 dissect_t124_ChannelAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1839 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1840 ett_t124_ChannelAttributes, ChannelAttributes_choice,
1841 NULL);
1843 return offset;
1847 static const per_sequence_t SET_OF_ChannelAttributes_set_of[1] = {
1848 { &hf_t124_mergeChannels_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelAttributes },
1851 static int
1852 dissect_t124_SET_OF_ChannelAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1853 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
1854 ett_t124_SET_OF_ChannelAttributes, SET_OF_ChannelAttributes_set_of);
1856 return offset;
1860 static const per_sequence_t SET_OF_ChannelId_set_of[1] = {
1861 { &hf_t124_purgeChannelIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
1864 static int
1865 dissect_t124_SET_OF_ChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
1867 ett_t124_SET_OF_ChannelId, SET_OF_ChannelId_set_of);
1869 return offset;
1873 static const per_sequence_t MergeChannelsRequest_sequence[] = {
1874 { &hf_t124_mergeChannels , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelAttributes },
1875 { &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
1876 { NULL, 0, 0, NULL }
1879 static int
1880 dissect_t124_MergeChannelsRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1881 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1882 ett_t124_MergeChannelsRequest, MergeChannelsRequest_sequence);
1884 return offset;
1888 static const per_sequence_t MergeChannelsConfirm_sequence[] = {
1889 { &hf_t124_mergeChannels , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelAttributes },
1890 { &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
1891 { NULL, 0, 0, NULL }
1894 static int
1895 dissect_t124_MergeChannelsConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1896 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1897 ett_t124_MergeChannelsConfirm, MergeChannelsConfirm_sequence);
1899 return offset;
1903 static const per_sequence_t PurgeChannelsIndication_sequence[] = {
1904 { &hf_t124_detachUserIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
1905 { &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
1906 { NULL, 0, 0, NULL }
1909 static int
1910 dissect_t124_PurgeChannelsIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1911 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1912 ett_t124_PurgeChannelsIndication, PurgeChannelsIndication_sequence);
1914 return offset;
1918 static const per_sequence_t T_grabbed_sequence[] = {
1919 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
1920 { &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1921 { NULL, 0, 0, NULL }
1924 static int
1925 dissect_t124_T_grabbed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1926 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1927 ett_t124_T_grabbed, T_grabbed_sequence);
1929 return offset;
1933 static const per_sequence_t T_inhibited_sequence[] = {
1934 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
1935 { &hf_t124_inhibitors , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
1936 { NULL, 0, 0, NULL }
1939 static int
1940 dissect_t124_T_inhibited(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1941 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1942 ett_t124_T_inhibited, T_inhibited_sequence);
1944 return offset;
1948 static const per_sequence_t T_giving_sequence[] = {
1949 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
1950 { &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1951 { &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1952 { NULL, 0, 0, NULL }
1955 static int
1956 dissect_t124_T_giving(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1957 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1958 ett_t124_T_giving, T_giving_sequence);
1960 return offset;
1964 static const per_sequence_t T_ungivable_sequence[] = {
1965 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
1966 { &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1967 { NULL, 0, 0, NULL }
1970 static int
1971 dissect_t124_T_ungivable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1972 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1973 ett_t124_T_ungivable, T_ungivable_sequence);
1975 return offset;
1979 static const per_sequence_t T_given_sequence[] = {
1980 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
1981 { &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
1982 { NULL, 0, 0, NULL }
1985 static int
1986 dissect_t124_T_given(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1987 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1988 ett_t124_T_given, T_given_sequence);
1990 return offset;
1994 static const value_string t124_TokenAttributes_vals[] = {
1995 { 0, "grabbed" },
1996 { 1, "inhibited" },
1997 { 2, "giving" },
1998 { 3, "ungivable" },
1999 { 4, "given" },
2000 { 0, NULL }
2003 static const per_choice_t TokenAttributes_choice[] = {
2004 { 0, &hf_t124_grabbed , ASN1_NO_EXTENSIONS , dissect_t124_T_grabbed },
2005 { 1, &hf_t124_inhibited , ASN1_NO_EXTENSIONS , dissect_t124_T_inhibited },
2006 { 2, &hf_t124_giving , ASN1_NO_EXTENSIONS , dissect_t124_T_giving },
2007 { 3, &hf_t124_ungivable , ASN1_NO_EXTENSIONS , dissect_t124_T_ungivable },
2008 { 4, &hf_t124_given , ASN1_NO_EXTENSIONS , dissect_t124_T_given },
2009 { 0, NULL, 0, NULL }
2012 static int
2013 dissect_t124_TokenAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2014 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2015 ett_t124_TokenAttributes, TokenAttributes_choice,
2016 NULL);
2018 return offset;
2022 static const per_sequence_t SET_OF_TokenAttributes_set_of[1] = {
2023 { &hf_t124_mergeTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenAttributes },
2026 static int
2027 dissect_t124_SET_OF_TokenAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2028 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
2029 ett_t124_SET_OF_TokenAttributes, SET_OF_TokenAttributes_set_of);
2031 return offset;
2035 static const per_sequence_t SET_OF_TokenId_set_of[1] = {
2036 { &hf_t124_purgeTokenIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2039 static int
2040 dissect_t124_SET_OF_TokenId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2041 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
2042 ett_t124_SET_OF_TokenId, SET_OF_TokenId_set_of);
2044 return offset;
2048 static const per_sequence_t MergeTokensRequest_sequence[] = {
2049 { &hf_t124_mergeTokens , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenAttributes },
2050 { &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
2051 { NULL, 0, 0, NULL }
2054 static int
2055 dissect_t124_MergeTokensRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2056 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2057 ett_t124_MergeTokensRequest, MergeTokensRequest_sequence);
2059 return offset;
2063 static const per_sequence_t MergeTokensConfirm_sequence[] = {
2064 { &hf_t124_mergeTokens , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenAttributes },
2065 { &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
2066 { NULL, 0, 0, NULL }
2069 static int
2070 dissect_t124_MergeTokensConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2071 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2072 ett_t124_MergeTokensConfirm, MergeTokensConfirm_sequence);
2074 return offset;
2078 static const per_sequence_t PurgeTokensIndication_sequence[] = {
2079 { &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
2080 { NULL, 0, 0, NULL }
2083 static int
2084 dissect_t124_PurgeTokensIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2085 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2086 ett_t124_PurgeTokensIndication, PurgeTokensIndication_sequence);
2088 return offset;
2092 static const value_string t124_Reason_vals[] = {
2093 { 0, "rn-domain-disconnected" },
2094 { 1, "rn-provider-initiated" },
2095 { 2, "rn-token-purged" },
2096 { 3, "rn-user-requested" },
2097 { 4, "rn-channel-purged" },
2098 { 0, NULL }
2102 static int
2103 dissect_t124_Reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2104 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2105 5, NULL, FALSE, 0, NULL);
2107 return offset;
2111 static const per_sequence_t DisconnectProviderUltimatum_sequence[] = {
2112 { &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
2113 { NULL, 0, 0, NULL }
2116 static int
2117 dissect_t124_DisconnectProviderUltimatum(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_t124_DisconnectProviderUltimatum, DisconnectProviderUltimatum_sequence);
2121 return offset;
2125 static const value_string t124_Diagnostic_vals[] = {
2126 { 0, "dc-inconsistent-merge" },
2127 { 1, "dc-forbidden-PDU-downward" },
2128 { 2, "dc-forbidden-PDU-upward" },
2129 { 3, "dc-invalid-BER-encoding" },
2130 { 4, "dc-invalid-PER-encoding" },
2131 { 5, "dc-misrouted-user" },
2132 { 6, "dc-unrequested-confirm" },
2133 { 7, "dc-wrong-transport-priority" },
2134 { 8, "dc-channel-id-conflict" },
2135 { 9, "dc-token-id-conflict" },
2136 { 10, "dc-not-user-id-channel" },
2137 { 11, "dc-too-many-channels" },
2138 { 12, "dc-too-many-tokens" },
2139 { 13, "dc-too-many-users" },
2140 { 0, NULL }
2144 static int
2145 dissect_t124_Diagnostic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2146 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2147 14, NULL, FALSE, 0, NULL);
2149 return offset;
2153 static const per_sequence_t RejectMCSPDUUltimatum_sequence[] = {
2154 { &hf_t124_diagnostic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Diagnostic },
2155 { &hf_t124_initialOctets , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
2156 { NULL, 0, 0, NULL }
2159 static int
2160 dissect_t124_RejectMCSPDUUltimatum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2161 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2162 ett_t124_RejectMCSPDUUltimatum, RejectMCSPDUUltimatum_sequence);
2164 return offset;
2168 static const per_sequence_t AttachUserRequest_sequence[] = {
2169 { NULL, 0, 0, NULL }
2172 static int
2173 dissect_t124_AttachUserRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2174 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2175 ett_t124_AttachUserRequest, AttachUserRequest_sequence);
2177 return offset;
2181 static const value_string t124_Result_vals[] = {
2182 { 0, "rt-successful" },
2183 { 1, "rt-domain-merging" },
2184 { 2, "rt-domain-not-hierarchical" },
2185 { 3, "rt-no-such-channel" },
2186 { 4, "rt-no-such-domain" },
2187 { 5, "rt-no-such-user" },
2188 { 6, "rt-not-admitted" },
2189 { 7, "rt-other-user-id" },
2190 { 8, "rt-parameters-unacceptable" },
2191 { 9, "rt-token-not-available" },
2192 { 10, "rt-token-not-possessed" },
2193 { 11, "rt-too-many-channels" },
2194 { 12, "rt-too-many-tokens" },
2195 { 13, "rt-too-many-users" },
2196 { 14, "rt-unspecified-failure" },
2197 { 15, "rt-user-rejected" },
2198 { 0, NULL }
2202 static int
2203 dissect_t124_Result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2204 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2205 16, NULL, FALSE, 0, NULL);
2207 return offset;
2211 static const per_sequence_t AttachUserConfirm_sequence[] = {
2212 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2213 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_UserId },
2214 { NULL, 0, 0, NULL }
2217 static int
2218 dissect_t124_AttachUserConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2219 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2220 ett_t124_AttachUserConfirm, AttachUserConfirm_sequence);
2222 return offset;
2226 static const per_sequence_t DetachUserRequest_sequence[] = {
2227 { &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
2228 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2229 { NULL, 0, 0, NULL }
2232 static int
2233 dissect_t124_DetachUserRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2234 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2235 ett_t124_DetachUserRequest, DetachUserRequest_sequence);
2237 return offset;
2241 static const per_sequence_t DetachUserIndication_sequence[] = {
2242 { &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
2243 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2244 { NULL, 0, 0, NULL }
2247 static int
2248 dissect_t124_DetachUserIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2249 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2250 ett_t124_DetachUserIndication, DetachUserIndication_sequence);
2252 return offset;
2256 static const per_sequence_t ChannelJoinRequest_sequence[] = {
2257 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2258 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2259 { NULL, 0, 0, NULL }
2262 static int
2263 dissect_t124_ChannelJoinRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2264 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2265 ett_t124_ChannelJoinRequest, ChannelJoinRequest_sequence);
2267 return offset;
2271 static const per_sequence_t ChannelJoinConfirm_sequence[] = {
2272 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2273 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2274 { &hf_t124_requested , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2275 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_ChannelId },
2276 { NULL, 0, 0, NULL }
2279 static int
2280 dissect_t124_ChannelJoinConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2281 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2282 ett_t124_ChannelJoinConfirm, ChannelJoinConfirm_sequence);
2284 return offset;
2288 static const per_sequence_t ChannelLeaveRequest_sequence[] = {
2289 { &hf_t124_channelIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
2290 { NULL, 0, 0, NULL }
2293 static int
2294 dissect_t124_ChannelLeaveRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2295 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2296 ett_t124_ChannelLeaveRequest, ChannelLeaveRequest_sequence);
2298 return offset;
2302 static const per_sequence_t ChannelConveneRequest_sequence[] = {
2303 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2304 { NULL, 0, 0, NULL }
2307 static int
2308 dissect_t124_ChannelConveneRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2309 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2310 ett_t124_ChannelConveneRequest, ChannelConveneRequest_sequence);
2312 return offset;
2316 static const per_sequence_t ChannelConveneConfirm_sequence[] = {
2317 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2318 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2319 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_PrivateChannelId },
2320 { NULL, 0, 0, NULL }
2323 static int
2324 dissect_t124_ChannelConveneConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2325 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2326 ett_t124_ChannelConveneConfirm, ChannelConveneConfirm_sequence);
2328 return offset;
2332 static const per_sequence_t ChannelDisbandRequest_sequence[] = {
2333 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2334 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2335 { NULL, 0, 0, NULL }
2338 static int
2339 dissect_t124_ChannelDisbandRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2340 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2341 ett_t124_ChannelDisbandRequest, ChannelDisbandRequest_sequence);
2343 return offset;
2347 static const per_sequence_t ChannelDisbandIndication_sequence[] = {
2348 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2349 { NULL, 0, 0, NULL }
2352 static int
2353 dissect_t124_ChannelDisbandIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2354 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2355 ett_t124_ChannelDisbandIndication, ChannelDisbandIndication_sequence);
2357 return offset;
2361 static const per_sequence_t ChannelAdmitRequest_sequence[] = {
2362 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2363 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2364 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2365 { NULL, 0, 0, NULL }
2368 static int
2369 dissect_t124_ChannelAdmitRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2370 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2371 ett_t124_ChannelAdmitRequest, ChannelAdmitRequest_sequence);
2373 return offset;
2377 static const per_sequence_t ChannelAdmitIndication_sequence[] = {
2378 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2379 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2380 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2381 { NULL, 0, 0, NULL }
2384 static int
2385 dissect_t124_ChannelAdmitIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2386 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2387 ett_t124_ChannelAdmitIndication, ChannelAdmitIndication_sequence);
2389 return offset;
2393 static const per_sequence_t ChannelExpelRequest_sequence[] = {
2394 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2395 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2396 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2397 { NULL, 0, 0, NULL }
2400 static int
2401 dissect_t124_ChannelExpelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2402 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2403 ett_t124_ChannelExpelRequest, ChannelExpelRequest_sequence);
2405 return offset;
2409 static const per_sequence_t ChannelExpelIndication_sequence[] = {
2410 { &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
2411 { &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
2412 { NULL, 0, 0, NULL }
2415 static int
2416 dissect_t124_ChannelExpelIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2417 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2418 ett_t124_ChannelExpelIndication, ChannelExpelIndication_sequence);
2420 return offset;
2425 static int
2426 dissect_t124_T_userData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2427 #line 167 "../../asn1/t124/t124.cnf"
2428 tvbuff_t *next_tvb = NULL;
2430 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2431 NO_BOUND, NO_BOUND, FALSE, &next_tvb);
2434 if(next_tvb) {
2436 dissector_try_uint(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree);
2442 return offset;
2446 static const per_sequence_t SendDataRequest_sequence[] = {
2447 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2448 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2449 { &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
2450 { &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
2451 { &hf_t124_userData_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_userData },
2452 { NULL, 0, 0, NULL }
2455 static int
2456 dissect_t124_SendDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2457 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2458 ett_t124_SendDataRequest, SendDataRequest_sequence);
2460 return offset;
2465 static int
2466 dissect_t124_T_userData_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2467 #line 180 "../../asn1/t124/t124.cnf"
2468 tvbuff_t *next_tvb = NULL;
2470 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2471 NO_BOUND, NO_BOUND, FALSE, &next_tvb);
2474 if(next_tvb) {
2476 dissector_try_uint(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree);
2482 return offset;
2486 static const per_sequence_t SendDataIndication_sequence[] = {
2487 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2488 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2489 { &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
2490 { &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
2491 { &hf_t124_userData_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_userData_01 },
2492 { NULL, 0, 0, NULL }
2495 static int
2496 dissect_t124_SendDataIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2497 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2498 ett_t124_SendDataIndication, SendDataIndication_sequence);
2500 return offset;
2504 static const per_sequence_t UniformSendDataRequest_sequence[] = {
2505 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2506 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2507 { &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
2508 { &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
2509 { &hf_t124_userData_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
2510 { NULL, 0, 0, NULL }
2513 static int
2514 dissect_t124_UniformSendDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2515 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2516 ett_t124_UniformSendDataRequest, UniformSendDataRequest_sequence);
2518 return offset;
2522 static const per_sequence_t UniformSendDataIndication_sequence[] = {
2523 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2524 { &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
2525 { &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
2526 { &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
2527 { &hf_t124_userData_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
2528 { NULL, 0, 0, NULL }
2531 static int
2532 dissect_t124_UniformSendDataIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2533 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2534 ett_t124_UniformSendDataIndication, UniformSendDataIndication_sequence);
2536 return offset;
2540 static const per_sequence_t TokenGrabRequest_sequence[] = {
2541 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2542 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2543 { NULL, 0, 0, NULL }
2546 static int
2547 dissect_t124_TokenGrabRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2548 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2549 ett_t124_TokenGrabRequest, TokenGrabRequest_sequence);
2551 return offset;
2555 static const per_sequence_t TokenGrabConfirm_sequence[] = {
2556 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2557 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2558 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2559 { &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
2560 { NULL, 0, 0, NULL }
2563 static int
2564 dissect_t124_TokenGrabConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2566 ett_t124_TokenGrabConfirm, TokenGrabConfirm_sequence);
2568 return offset;
2572 static const per_sequence_t TokenInhibitRequest_sequence[] = {
2573 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2574 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2575 { NULL, 0, 0, NULL }
2578 static int
2579 dissect_t124_TokenInhibitRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2580 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2581 ett_t124_TokenInhibitRequest, TokenInhibitRequest_sequence);
2583 return offset;
2587 static const per_sequence_t TokenInhibitConfirm_sequence[] = {
2588 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2589 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2590 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2591 { &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
2592 { NULL, 0, 0, NULL }
2595 static int
2596 dissect_t124_TokenInhibitConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2597 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2598 ett_t124_TokenInhibitConfirm, TokenInhibitConfirm_sequence);
2600 return offset;
2604 static const per_sequence_t TokenGiveRequest_sequence[] = {
2605 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2606 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2607 { &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2608 { NULL, 0, 0, NULL }
2611 static int
2612 dissect_t124_TokenGiveRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2613 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2614 ett_t124_TokenGiveRequest, TokenGiveRequest_sequence);
2616 return offset;
2620 static const per_sequence_t TokenGiveIndication_sequence[] = {
2621 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2622 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2623 { &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2624 { NULL, 0, 0, NULL }
2627 static int
2628 dissect_t124_TokenGiveIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2629 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2630 ett_t124_TokenGiveIndication, TokenGiveIndication_sequence);
2632 return offset;
2636 static const per_sequence_t TokenGiveResponse_sequence[] = {
2637 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2638 { &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2639 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2640 { NULL, 0, 0, NULL }
2643 static int
2644 dissect_t124_TokenGiveResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2646 ett_t124_TokenGiveResponse, TokenGiveResponse_sequence);
2648 return offset;
2652 static const per_sequence_t TokenGiveConfirm_sequence[] = {
2653 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2654 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2655 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2656 { &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
2657 { NULL, 0, 0, NULL }
2660 static int
2661 dissect_t124_TokenGiveConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2662 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2663 ett_t124_TokenGiveConfirm, TokenGiveConfirm_sequence);
2665 return offset;
2669 static const per_sequence_t TokenPleaseRequest_sequence[] = {
2670 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2671 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2672 { NULL, 0, 0, NULL }
2675 static int
2676 dissect_t124_TokenPleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2677 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2678 ett_t124_TokenPleaseRequest, TokenPleaseRequest_sequence);
2680 return offset;
2684 static const per_sequence_t TokenPleaseIndication_sequence[] = {
2685 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2686 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2687 { NULL, 0, 0, NULL }
2690 static int
2691 dissect_t124_TokenPleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2692 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2693 ett_t124_TokenPleaseIndication, TokenPleaseIndication_sequence);
2695 return offset;
2699 static const per_sequence_t TokenReleaseRequest_sequence[] = {
2700 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2701 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2702 { NULL, 0, 0, NULL }
2705 static int
2706 dissect_t124_TokenReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2707 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2708 ett_t124_TokenReleaseRequest, TokenReleaseRequest_sequence);
2710 return offset;
2714 static const per_sequence_t TokenReleaseConfirm_sequence[] = {
2715 { &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
2716 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2717 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2718 { &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
2719 { NULL, 0, 0, NULL }
2722 static int
2723 dissect_t124_TokenReleaseConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2724 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2725 ett_t124_TokenReleaseConfirm, TokenReleaseConfirm_sequence);
2727 return offset;
2731 static const per_sequence_t TokenTestRequest_sequence[] = {
2732 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2733 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2734 { NULL, 0, 0, NULL }
2737 static int
2738 dissect_t124_TokenTestRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2739 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2740 ett_t124_TokenTestRequest, TokenTestRequest_sequence);
2742 return offset;
2746 static const per_sequence_t TokenTestConfirm_sequence[] = {
2747 { &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
2748 { &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
2749 { &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
2750 { NULL, 0, 0, NULL }
2753 static int
2754 dissect_t124_TokenTestConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2756 ett_t124_TokenTestConfirm, TokenTestConfirm_sequence);
2758 return offset;
2762 static const value_string t124_DomainMCSPDU_vals[] = {
2763 { 0, "plumbDomainIndication" },
2764 { 1, "erectDomainRequest" },
2765 { 2, "mergeChannelsRequest" },
2766 { 3, "mergeChannelsConfirm" },
2767 { 4, "purgeChannelsIndication" },
2768 { 5, "mergeTokensRequest" },
2769 { 6, "mergeTokensConfirm" },
2770 { 7, "purgeTokensIndication" },
2771 { 8, "disconnectProviderUltimatum" },
2772 { 9, "rejectMCSPDUUltimatum" },
2773 { 10, "attachUserRequest" },
2774 { 11, "attachUserConfirm" },
2775 { 12, "detachUserRequest" },
2776 { 13, "detachUserIndication" },
2777 { 14, "channelJoinRequest" },
2778 { 15, "channelJoinConfirm" },
2779 { 16, "channelLeaveRequest" },
2780 { 17, "channelConveneRequest" },
2781 { 18, "channelConveneConfirm" },
2782 { 19, "channelDisbandRequest" },
2783 { 20, "channelDisbandIndication" },
2784 { 21, "channelAdmitRequest" },
2785 { 22, "channelAdmitIndication" },
2786 { 23, "channelExpelRequest" },
2787 { 24, "channelExpelIndication" },
2788 { 25, "sendDataRequest" },
2789 { 26, "sendDataIndication" },
2790 { 27, "uniformSendDataRequest" },
2791 { 28, "uniformSendDataIndication" },
2792 { 29, "tokenGrabRequest" },
2793 { 30, "tokenGrabConfirm" },
2794 { 31, "tokenInhibitRequest" },
2795 { 32, "tokenInhibitConfirm" },
2796 { 33, "tokenGiveRequest" },
2797 { 34, "tokenGiveIndication" },
2798 { 35, "tokenGiveResponse" },
2799 { 36, "tokenGiveConfirm" },
2800 { 37, "tokenPleaseRequest" },
2801 { 38, "tokenPleaseIndication" },
2802 { 39, "tokenReleaseRequest" },
2803 { 40, "tokenReleaseConfirm" },
2804 { 41, "tokenTestRequest" },
2805 { 42, "tokenTestConfirm" },
2806 { 0, NULL }
2809 static const per_choice_t DomainMCSPDU_choice[] = {
2810 { 0, &hf_t124_plumbDomainIndication, ASN1_NO_EXTENSIONS , dissect_t124_PlumbDomainIndication },
2811 { 1, &hf_t124_erectDomainRequest, ASN1_NO_EXTENSIONS , dissect_t124_ErectDomainRequest },
2812 { 2, &hf_t124_mergeChannelsRequest, ASN1_NO_EXTENSIONS , dissect_t124_MergeChannelsRequest },
2813 { 3, &hf_t124_mergeChannelsConfirm, ASN1_NO_EXTENSIONS , dissect_t124_MergeChannelsConfirm },
2814 { 4, &hf_t124_purgeChannelsIndication, ASN1_NO_EXTENSIONS , dissect_t124_PurgeChannelsIndication },
2815 { 5, &hf_t124_mergeTokensRequest, ASN1_NO_EXTENSIONS , dissect_t124_MergeTokensRequest },
2816 { 6, &hf_t124_mergeTokensConfirm, ASN1_NO_EXTENSIONS , dissect_t124_MergeTokensConfirm },
2817 { 7, &hf_t124_purgeTokensIndication, ASN1_NO_EXTENSIONS , dissect_t124_PurgeTokensIndication },
2818 { 8, &hf_t124_disconnectProviderUltimatum, ASN1_NO_EXTENSIONS , dissect_t124_DisconnectProviderUltimatum },
2819 { 9, &hf_t124_rejectMCSPDUUltimatum, ASN1_NO_EXTENSIONS , dissect_t124_RejectMCSPDUUltimatum },
2820 { 10, &hf_t124_attachUserRequest, ASN1_NO_EXTENSIONS , dissect_t124_AttachUserRequest },
2821 { 11, &hf_t124_attachUserConfirm, ASN1_NO_EXTENSIONS , dissect_t124_AttachUserConfirm },
2822 { 12, &hf_t124_detachUserRequest, ASN1_NO_EXTENSIONS , dissect_t124_DetachUserRequest },
2823 { 13, &hf_t124_detachUserIndication, ASN1_NO_EXTENSIONS , dissect_t124_DetachUserIndication },
2824 { 14, &hf_t124_channelJoinRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelJoinRequest },
2825 { 15, &hf_t124_channelJoinConfirm, ASN1_NO_EXTENSIONS , dissect_t124_ChannelJoinConfirm },
2826 { 16, &hf_t124_channelLeaveRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelLeaveRequest },
2827 { 17, &hf_t124_channelConveneRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelConveneRequest },
2828 { 18, &hf_t124_channelConveneConfirm, ASN1_NO_EXTENSIONS , dissect_t124_ChannelConveneConfirm },
2829 { 19, &hf_t124_channelDisbandRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelDisbandRequest },
2830 { 20, &hf_t124_channelDisbandIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelDisbandIndication },
2831 { 21, &hf_t124_channelAdmitRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelAdmitRequest },
2832 { 22, &hf_t124_channelAdmitIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelAdmitIndication },
2833 { 23, &hf_t124_channelExpelRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelExpelRequest },
2834 { 24, &hf_t124_channelExpelIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelExpelIndication },
2835 { 25, &hf_t124_sendDataRequest, ASN1_NO_EXTENSIONS , dissect_t124_SendDataRequest },
2836 { 26, &hf_t124_sendDataIndication, ASN1_NO_EXTENSIONS , dissect_t124_SendDataIndication },
2837 { 27, &hf_t124_uniformSendDataRequest, ASN1_NO_EXTENSIONS , dissect_t124_UniformSendDataRequest },
2838 { 28, &hf_t124_uniformSendDataIndication, ASN1_NO_EXTENSIONS , dissect_t124_UniformSendDataIndication },
2839 { 29, &hf_t124_tokenGrabRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenGrabRequest },
2840 { 30, &hf_t124_tokenGrabConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenGrabConfirm },
2841 { 31, &hf_t124_tokenInhibitRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenInhibitRequest },
2842 { 32, &hf_t124_tokenInhibitConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenInhibitConfirm },
2843 { 33, &hf_t124_tokenGiveRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveRequest },
2844 { 34, &hf_t124_tokenGiveIndication, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveIndication },
2845 { 35, &hf_t124_tokenGiveResponse, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveResponse },
2846 { 36, &hf_t124_tokenGiveConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveConfirm },
2847 { 37, &hf_t124_tokenPleaseRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenPleaseRequest },
2848 { 38, &hf_t124_tokenPleaseIndication, ASN1_NO_EXTENSIONS , dissect_t124_TokenPleaseIndication },
2849 { 39, &hf_t124_tokenReleaseRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenReleaseRequest },
2850 { 40, &hf_t124_tokenReleaseConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenReleaseConfirm },
2851 { 41, &hf_t124_tokenTestRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenTestRequest },
2852 { 42, &hf_t124_tokenTestConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenTestConfirm },
2853 { 0, NULL, 0, NULL }
2856 static int
2857 dissect_t124_DomainMCSPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2858 #line 194 "../../asn1/t124/t124.cnf"
2859 gint domainmcs_value;
2861 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2862 ett_t124_DomainMCSPDU, DomainMCSPDU_choice,
2863 &domainmcs_value);
2865 switch(domainmcs_value) {
2866 case 25: /* sendDataRequest */
2867 case 26: /* sendDataIndication */
2868 case 27: /* uniformSendDataRequest */
2869 case 28: /* uniformSendDataIndication */
2870 /* Do nothing */
2871 break;
2872 default:
2873 col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(domainmcs_value, t124_DomainMCSPDU_vals, "Unknown"));
2874 break;
2879 return offset;
2883 /*--- End of included file: packet-t124-fn.c ---*/
2884 #line 75 "../../asn1/t124/packet-t124-template.c"
2886 static const per_sequence_t t124Heur_sequence[] = {
2887 { &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
2888 { NULL, 0, 0, NULL }
2891 void
2892 register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto)
2894 dissector_handle_t dissector_handle;
2896 dissector_handle=create_dissector_handle(dissector, proto);
2897 dissector_add_string("t124.ns", nsKey, dissector_handle);
2900 void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, dissector_t dissector, int proto)
2902 /* XXX: we should keep the sub-dissectors list per conversation
2903 as the same channels may be used.
2904 While we are just using RDP over T.124, then we can get away with it.
2907 dissector_handle_t dissector_handle;
2909 dissector_handle=create_dissector_handle(dissector, proto);
2910 dissector_add_uint("t124.sd", channelId_param, dissector_handle);
2914 guint32 t124_get_last_channelId(void)
2916 return channelId;
2919 void t124_set_top_tree(proto_tree *tree)
2921 top_tree = tree;
2924 int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2925 int offset = 0;
2926 asn1_ctx_t asn1_ctx;
2927 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2929 offset = dissect_t124_DomainMCSPDU(tvb, offset, &asn1_ctx, tree, hf_t124_DomainMCSPDU_PDU);
2930 offset += 7; offset >>= 3;
2931 return offset;
2934 static int
2935 dissect_t124_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
2937 proto_item *item = NULL;
2938 proto_tree *tree = NULL;
2939 asn1_ctx_t asn1_ctx;
2941 top_tree = parent_tree;
2943 col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.124");
2944 col_clear(pinfo->cinfo, COL_INFO);
2946 item = proto_tree_add_item(parent_tree, proto_t124, tvb, 0, tvb_length(tvb), ENC_NA);
2947 tree = proto_item_add_subtree(item, ett_t124);
2949 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2950 dissect_t124_ConnectData(tvb, 0, &asn1_ctx, tree, hf_t124_ConnectData);
2952 return tvb_length(tvb);
2955 static void
2956 dissect_t124(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2958 dissect_t124_new(tvb, pinfo, parent_tree, NULL);
2961 static gboolean
2962 dissect_t124_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
2964 asn1_ctx_t asn1_ctx;
2965 gboolean failed = FALSE;
2967 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2969 t124Identifier = NULL;
2972 * We must catch all the "ran past the end of the packet" exceptions
2973 * here and, if we catch one, just return FALSE. It's too painful
2974 * to have a version of dissect_per_sequence() that checks all
2975 * references to the tvbuff before making them and returning "no"
2976 * if they would fail.
2978 * We (ab)use hf_t124_connectGCCPDU here just to give a valid entry...
2980 TRY {
2981 (void) dissect_per_sequence(tvb, 0, &asn1_ctx, NULL, hf_t124_connectGCCPDU, -1, t124Heur_sequence);
2982 } CATCH_BOUNDS_ERRORS {
2983 failed = TRUE;
2984 } ENDTRY;
2986 if (!failed && ((t124Identifier != NULL) &&
2987 (strcmp(t124Identifier, "0.0.20.124.0.1") == 0))) {
2988 dissect_t124(tvb, pinfo, parent_tree);
2990 return TRUE;
2993 return FALSE;
2996 /*--- proto_register_t124 -------------------------------------------*/
2997 void proto_register_t124(void) {
2999 /* List of fields */
3000 static hf_register_info hf[] = {
3001 { &hf_t124_ConnectData,
3002 { "ConnectData", "t124.ConnectData",
3003 FT_NONE, BASE_NONE, NULL, 0,
3004 NULL, HFILL }},
3005 { &hf_t124_connectGCCPDU,
3006 { "connectGCCPDU", "t124.connectGCCPDU",
3007 FT_UINT32, BASE_DEC, VALS(t124_ConnectGCCPDU_vals), 0,
3008 NULL, HFILL }},
3009 { &hf_t124_DomainMCSPDU_PDU,
3010 { "DomainMCSPDU", "t124.DomainMCSPDU",
3011 FT_UINT32, BASE_DEC, VALS(t124_DomainMCSPDU_vals), 0,
3012 NULL, HFILL }},
3014 /*--- Included file: packet-t124-hfarr.c ---*/
3015 #line 1 "../../asn1/t124/packet-t124-hfarr.c"
3016 { &hf_t124_object,
3017 { "object", "t124.object",
3018 FT_OID, BASE_NONE, NULL, 0,
3019 NULL, HFILL }},
3020 { &hf_t124_h221NonStandard,
3021 { "h221NonStandard", "t124.h221NonStandard",
3022 FT_BYTES, BASE_NONE, NULL, 0,
3023 "H221NonStandardIdentifier", HFILL }},
3024 { &hf_t124_key,
3025 { "key", "t124.key",
3026 FT_UINT32, BASE_DEC, VALS(t124_Key_vals), 0,
3027 NULL, HFILL }},
3028 { &hf_t124_data,
3029 { "data", "t124.data",
3030 FT_BYTES, BASE_NONE, NULL, 0,
3031 "OCTET_STRING", HFILL }},
3032 { &hf_t124_UserData_item,
3033 { "UserData item", "t124.UserData_item_element",
3034 FT_NONE, BASE_NONE, NULL, 0,
3035 NULL, HFILL }},
3036 { &hf_t124_value,
3037 { "value", "t124.value",
3038 FT_BYTES, BASE_NONE, NULL, 0,
3039 NULL, HFILL }},
3040 { &hf_t124_numeric,
3041 { "numeric", "t124.numeric",
3042 FT_STRING, BASE_NONE, NULL, 0,
3043 "SimpleNumericString", HFILL }},
3044 { &hf_t124_text,
3045 { "text", "t124.text",
3046 FT_STRING, BASE_NONE, NULL, 0,
3047 "SimpleTextString", HFILL }},
3048 { &hf_t124_unicodeText,
3049 { "unicodeText", "t124.unicodeText",
3050 FT_STRING, BASE_NONE, NULL, 0,
3051 "TextString", HFILL }},
3052 { &hf_t124_passwordString,
3053 { "passwordString", "t124.passwordString",
3054 FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
3055 "PasswordSelector", HFILL }},
3056 { &hf_t124_responseData,
3057 { "responseData", "t124.responseData",
3058 FT_UINT32, BASE_DEC, NULL, 0,
3059 "UserData", HFILL }},
3060 { &hf_t124_passwordInTheClear,
3061 { "passwordInTheClear", "t124.passwordInTheClear_element",
3062 FT_NONE, BASE_NONE, NULL, 0,
3063 NULL, HFILL }},
3064 { &hf_t124_nonStandardAlgorithm,
3065 { "nonStandardAlgorithm", "t124.nonStandardAlgorithm_element",
3066 FT_NONE, BASE_NONE, NULL, 0,
3067 "NonStandardParameter", HFILL }},
3068 { &hf_t124_responseAlgorithm,
3069 { "responseAlgorithm", "t124.responseAlgorithm",
3070 FT_UINT32, BASE_DEC, VALS(t124_ChallengeResponseAlgorithm_vals), 0,
3071 "ChallengeResponseAlgorithm", HFILL }},
3072 { &hf_t124_challengeData,
3073 { "challengeData", "t124.challengeData",
3074 FT_UINT32, BASE_DEC, NULL, 0,
3075 "UserData", HFILL }},
3076 { &hf_t124_challengeTag,
3077 { "challengeTag", "t124.challengeTag",
3078 FT_INT32, BASE_DEC, NULL, 0,
3079 "INTEGER", HFILL }},
3080 { &hf_t124_challengeSet,
3081 { "challengeSet", "t124.challengeSet",
3082 FT_UINT32, BASE_DEC, NULL, 0,
3083 "SET_OF_ChallengeItem", HFILL }},
3084 { &hf_t124_challengeSet_item,
3085 { "ChallengeItem", "t124.ChallengeItem_element",
3086 FT_NONE, BASE_NONE, NULL, 0,
3087 NULL, HFILL }},
3088 { &hf_t124_responseItem,
3089 { "responseItem", "t124.responseItem",
3090 FT_UINT32, BASE_DEC, VALS(t124_ChallengeResponseItem_vals), 0,
3091 "ChallengeResponseItem", HFILL }},
3092 { &hf_t124_passwordInTheClear_01,
3093 { "passwordInTheClear", "t124.passwordInTheClear",
3094 FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
3095 "PasswordSelector", HFILL }},
3096 { &hf_t124_challengeRequestResponse,
3097 { "challengeRequestResponse", "t124.challengeRequestResponse_element",
3098 FT_NONE, BASE_NONE, NULL, 0,
3099 NULL, HFILL }},
3100 { &hf_t124_challengeRequest,
3101 { "challengeRequest", "t124.challengeRequest_element",
3102 FT_NONE, BASE_NONE, NULL, 0,
3103 NULL, HFILL }},
3104 { &hf_t124_challengeResponse,
3105 { "challengeResponse", "t124.challengeResponse_element",
3106 FT_NONE, BASE_NONE, NULL, 0,
3107 NULL, HFILL }},
3108 { &hf_t124_nonStandardScheme,
3109 { "nonStandardScheme", "t124.nonStandardScheme_element",
3110 FT_NONE, BASE_NONE, NULL, 0,
3111 "NonStandardParameter", HFILL }},
3112 { &hf_t124_priority,
3113 { "priority", "t124.priority",
3114 FT_UINT32, BASE_DEC, NULL, 0,
3115 "INTEGER_0_65535", HFILL }},
3116 { &hf_t124_scheme,
3117 { "scheme", "t124.scheme",
3118 FT_UINT32, BASE_DEC, VALS(t124_ConferencePriorityScheme_vals), 0,
3119 "ConferencePriorityScheme", HFILL }},
3120 { &hf_t124_conventional,
3121 { "conventional", "t124.conventional_element",
3122 FT_NONE, BASE_NONE, NULL, 0,
3123 NULL, HFILL }},
3124 { &hf_t124_counted,
3125 { "counted", "t124.counted_element",
3126 FT_NONE, BASE_NONE, NULL, 0,
3127 NULL, HFILL }},
3128 { &hf_t124_anonymous,
3129 { "anonymous", "t124.anonymous_element",
3130 FT_NONE, BASE_NONE, NULL, 0,
3131 NULL, HFILL }},
3132 { &hf_t124_nonStandardCategory,
3133 { "nonStandardCategory", "t124.nonStandardCategory_element",
3134 FT_NONE, BASE_NONE, NULL, 0,
3135 "NonStandardParameter", HFILL }},
3136 { &hf_t124_conventional_only,
3137 { "conventional-only", "t124.conventional_only_element",
3138 FT_NONE, BASE_NONE, NULL, 0,
3139 NULL, HFILL }},
3140 { &hf_t124_counted_only,
3141 { "counted-only", "t124.counted_only_element",
3142 FT_NONE, BASE_NONE, NULL, 0,
3143 NULL, HFILL }},
3144 { &hf_t124_anonymous_only,
3145 { "anonymous-only", "t124.anonymous_only_element",
3146 FT_NONE, BASE_NONE, NULL, 0,
3147 NULL, HFILL }},
3148 { &hf_t124_conventional_control,
3149 { "conventional-control", "t124.conventional_control_element",
3150 FT_NONE, BASE_NONE, NULL, 0,
3151 NULL, HFILL }},
3152 { &hf_t124_unrestricted_mode,
3153 { "unrestricted-mode", "t124.unrestricted_mode_element",
3154 FT_NONE, BASE_NONE, NULL, 0,
3155 NULL, HFILL }},
3156 { &hf_t124_non_standard_mode,
3157 { "non-standard-mode", "t124.non_standard_mode_element",
3158 FT_NONE, BASE_NONE, NULL, 0,
3159 "NonStandardParameter", HFILL }},
3160 { &hf_t124_NetworkAddress_item,
3161 { "NetworkAddress item", "t124.NetworkAddress_item",
3162 FT_UINT32, BASE_DEC, VALS(t124_NetworkAddress_item_vals), 0,
3163 NULL, HFILL }},
3164 { &hf_t124_aggregatedChannel,
3165 { "aggregatedChannel", "t124.aggregatedChannel_element",
3166 FT_NONE, BASE_NONE, NULL, 0,
3167 NULL, HFILL }},
3168 { &hf_t124_transferModes,
3169 { "transferModes", "t124.transferModes_element",
3170 FT_NONE, BASE_NONE, NULL, 0,
3171 NULL, HFILL }},
3172 { &hf_t124_speech,
3173 { "speech", "t124.speech",
3174 FT_BOOLEAN, BASE_NONE, NULL, 0,
3175 "BOOLEAN", HFILL }},
3176 { &hf_t124_voice_band,
3177 { "voice-band", "t124.voice_band",
3178 FT_BOOLEAN, BASE_NONE, NULL, 0,
3179 "BOOLEAN", HFILL }},
3180 { &hf_t124_digital_56k,
3181 { "digital-56k", "t124.digital_56k",
3182 FT_BOOLEAN, BASE_NONE, NULL, 0,
3183 "BOOLEAN", HFILL }},
3184 { &hf_t124_digital_64k,
3185 { "digital-64k", "t124.digital_64k",
3186 FT_BOOLEAN, BASE_NONE, NULL, 0,
3187 "BOOLEAN", HFILL }},
3188 { &hf_t124_digital_128k,
3189 { "digital-128k", "t124.digital_128k",
3190 FT_BOOLEAN, BASE_NONE, NULL, 0,
3191 "BOOLEAN", HFILL }},
3192 { &hf_t124_digital_192k,
3193 { "digital-192k", "t124.digital_192k",
3194 FT_BOOLEAN, BASE_NONE, NULL, 0,
3195 "BOOLEAN", HFILL }},
3196 { &hf_t124_digital_256k,
3197 { "digital-256k", "t124.digital_256k",
3198 FT_BOOLEAN, BASE_NONE, NULL, 0,
3199 "BOOLEAN", HFILL }},
3200 { &hf_t124_digital_320k,
3201 { "digital-320k", "t124.digital_320k",
3202 FT_BOOLEAN, BASE_NONE, NULL, 0,
3203 "BOOLEAN", HFILL }},
3204 { &hf_t124_digital_384k,
3205 { "digital-384k", "t124.digital_384k",
3206 FT_BOOLEAN, BASE_NONE, NULL, 0,
3207 "BOOLEAN", HFILL }},
3208 { &hf_t124_digital_512k,
3209 { "digital-512k", "t124.digital_512k",
3210 FT_BOOLEAN, BASE_NONE, NULL, 0,
3211 "BOOLEAN", HFILL }},
3212 { &hf_t124_digital_768k,
3213 { "digital-768k", "t124.digital_768k",
3214 FT_BOOLEAN, BASE_NONE, NULL, 0,
3215 "BOOLEAN", HFILL }},
3216 { &hf_t124_digital_1152k,
3217 { "digital-1152k", "t124.digital_1152k",
3218 FT_BOOLEAN, BASE_NONE, NULL, 0,
3219 "BOOLEAN", HFILL }},
3220 { &hf_t124_digital_1472k,
3221 { "digital-1472k", "t124.digital_1472k",
3222 FT_BOOLEAN, BASE_NONE, NULL, 0,
3223 "BOOLEAN", HFILL }},
3224 { &hf_t124_digital_1536k,
3225 { "digital-1536k", "t124.digital_1536k",
3226 FT_BOOLEAN, BASE_NONE, NULL, 0,
3227 "BOOLEAN", HFILL }},
3228 { &hf_t124_digital_1920k,
3229 { "digital-1920k", "t124.digital_1920k",
3230 FT_BOOLEAN, BASE_NONE, NULL, 0,
3231 "BOOLEAN", HFILL }},
3232 { &hf_t124_packet_mode,
3233 { "packet-mode", "t124.packet_mode",
3234 FT_BOOLEAN, BASE_NONE, NULL, 0,
3235 "BOOLEAN", HFILL }},
3236 { &hf_t124_frame_mode,
3237 { "frame-mode", "t124.frame_mode",
3238 FT_BOOLEAN, BASE_NONE, NULL, 0,
3239 "BOOLEAN", HFILL }},
3240 { &hf_t124_atm,
3241 { "atm", "t124.atm",
3242 FT_BOOLEAN, BASE_NONE, NULL, 0,
3243 "BOOLEAN", HFILL }},
3244 { &hf_t124_internationalNumber,
3245 { "internationalNumber", "t124.internationalNumber",
3246 FT_STRING, BASE_NONE, NULL, 0,
3247 "DiallingString", HFILL }},
3248 { &hf_t124_subAddress,
3249 { "subAddress", "t124.subAddress",
3250 FT_STRING, BASE_NONE, NULL, 0,
3251 "SubAddressString", HFILL }},
3252 { &hf_t124_extraDialling,
3253 { "extraDialling", "t124.extraDialling",
3254 FT_STRING, BASE_NONE, NULL, 0,
3255 "ExtraDiallingString", HFILL }},
3256 { &hf_t124_highLayerCompatibility,
3257 { "highLayerCompatibility", "t124.highLayerCompatibility_element",
3258 FT_NONE, BASE_NONE, NULL, 0,
3259 NULL, HFILL }},
3260 { &hf_t124_telephony3kHz,
3261 { "telephony3kHz", "t124.telephony3kHz",
3262 FT_BOOLEAN, BASE_NONE, NULL, 0,
3263 "BOOLEAN", HFILL }},
3264 { &hf_t124_telephony7kHz,
3265 { "telephony7kHz", "t124.telephony7kHz",
3266 FT_BOOLEAN, BASE_NONE, NULL, 0,
3267 "BOOLEAN", HFILL }},
3268 { &hf_t124_videotelephony,
3269 { "videotelephony", "t124.videotelephony",
3270 FT_BOOLEAN, BASE_NONE, NULL, 0,
3271 "BOOLEAN", HFILL }},
3272 { &hf_t124_videoconference,
3273 { "videoconference", "t124.videoconference",
3274 FT_BOOLEAN, BASE_NONE, NULL, 0,
3275 "BOOLEAN", HFILL }},
3276 { &hf_t124_audiographic,
3277 { "audiographic", "t124.audiographic",
3278 FT_BOOLEAN, BASE_NONE, NULL, 0,
3279 "BOOLEAN", HFILL }},
3280 { &hf_t124_audiovisual,
3281 { "audiovisual", "t124.audiovisual",
3282 FT_BOOLEAN, BASE_NONE, NULL, 0,
3283 "BOOLEAN", HFILL }},
3284 { &hf_t124_multimedia,
3285 { "multimedia", "t124.multimedia",
3286 FT_BOOLEAN, BASE_NONE, NULL, 0,
3287 "BOOLEAN", HFILL }},
3288 { &hf_t124_transportConnection,
3289 { "transportConnection", "t124.transportConnection_element",
3290 FT_NONE, BASE_NONE, NULL, 0,
3291 NULL, HFILL }},
3292 { &hf_t124_nsapAddress,
3293 { "nsapAddress", "t124.nsapAddress",
3294 FT_BYTES, BASE_NONE, NULL, 0,
3295 "OCTET_STRING_SIZE_1_20", HFILL }},
3296 { &hf_t124_transportSelector,
3297 { "transportSelector", "t124.transportSelector",
3298 FT_BYTES, BASE_NONE, NULL, 0,
3299 "OCTET_STRING", HFILL }},
3300 { &hf_t124_nonStandard,
3301 { "nonStandard", "t124.nonStandard_element",
3302 FT_NONE, BASE_NONE, NULL, 0,
3303 "NonStandardParameter", HFILL }},
3304 { &hf_t124_callingNode,
3305 { "callingNode", "t124.callingNode_element",
3306 FT_NONE, BASE_NONE, NULL, 0,
3307 NULL, HFILL }},
3308 { &hf_t124_calledNode,
3309 { "calledNode", "t124.calledNode_element",
3310 FT_NONE, BASE_NONE, NULL, 0,
3311 NULL, HFILL }},
3312 { &hf_t124_unknown,
3313 { "unknown", "t124.unknown",
3314 FT_UINT32, BASE_DEC, NULL, 0,
3315 "INTEGER_0_4294967295", HFILL }},
3316 { &hf_t124_conferenceName,
3317 { "conferenceName", "t124.conferenceName_element",
3318 FT_NONE, BASE_NONE, NULL, 0,
3319 NULL, HFILL }},
3320 { &hf_t124_conferenceNameModifier,
3321 { "conferenceNameModifier", "t124.conferenceNameModifier",
3322 FT_STRING, BASE_NONE, NULL, 0,
3323 NULL, HFILL }},
3324 { &hf_t124_conferenceDescription,
3325 { "conferenceDescription", "t124.conferenceDescription",
3326 FT_STRING, BASE_NONE, NULL, 0,
3327 "TextString", HFILL }},
3328 { &hf_t124_lockedConference,
3329 { "lockedConference", "t124.lockedConference",
3330 FT_BOOLEAN, BASE_NONE, NULL, 0,
3331 "BOOLEAN", HFILL }},
3332 { &hf_t124_passwordInTheClearRequired,
3333 { "passwordInTheClearRequired", "t124.passwordInTheClearRequired",
3334 FT_BOOLEAN, BASE_NONE, NULL, 0,
3335 "BOOLEAN", HFILL }},
3336 { &hf_t124_networkAddress,
3337 { "networkAddress", "t124.networkAddress",
3338 FT_UINT32, BASE_DEC, NULL, 0,
3339 NULL, HFILL }},
3340 { &hf_t124_defaultConferenceFlag,
3341 { "defaultConferenceFlag", "t124.defaultConferenceFlag",
3342 FT_BOOLEAN, BASE_NONE, NULL, 0,
3343 "BOOLEAN", HFILL }},
3344 { &hf_t124_conferenceMode,
3345 { "conferenceMode", "t124.conferenceMode",
3346 FT_UINT32, BASE_DEC, VALS(t124_ConferenceMode_vals), 0,
3347 NULL, HFILL }},
3348 { &hf_t124_convenerPassword,
3349 { "convenerPassword", "t124.convenerPassword_element",
3350 FT_NONE, BASE_NONE, NULL, 0,
3351 "Password", HFILL }},
3352 { &hf_t124_password,
3353 { "password", "t124.password_element",
3354 FT_NONE, BASE_NONE, NULL, 0,
3355 NULL, HFILL }},
3356 { &hf_t124_listedConference,
3357 { "listedConference", "t124.listedConference",
3358 FT_BOOLEAN, BASE_NONE, NULL, 0,
3359 "BOOLEAN", HFILL }},
3360 { &hf_t124_conductibleConference,
3361 { "conductibleConference", "t124.conductibleConference",
3362 FT_BOOLEAN, BASE_NONE, NULL, 0,
3363 "BOOLEAN", HFILL }},
3364 { &hf_t124_terminationMethod,
3365 { "terminationMethod", "t124.terminationMethod",
3366 FT_UINT32, BASE_DEC, VALS(t124_TerminationMethod_vals), 0,
3367 NULL, HFILL }},
3368 { &hf_t124_conductorPrivileges,
3369 { "conductorPrivileges", "t124.conductorPrivileges",
3370 FT_UINT32, BASE_DEC, NULL, 0,
3371 "SET_OF_Privilege", HFILL }},
3372 { &hf_t124_conductorPrivileges_item,
3373 { "Privilege", "t124.Privilege",
3374 FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
3375 NULL, HFILL }},
3376 { &hf_t124_conductedPrivileges,
3377 { "conductedPrivileges", "t124.conductedPrivileges",
3378 FT_UINT32, BASE_DEC, NULL, 0,
3379 "SET_OF_Privilege", HFILL }},
3380 { &hf_t124_conductedPrivileges_item,
3381 { "Privilege", "t124.Privilege",
3382 FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
3383 NULL, HFILL }},
3384 { &hf_t124_nonConductedPrivileges,
3385 { "nonConductedPrivileges", "t124.nonConductedPrivileges",
3386 FT_UINT32, BASE_DEC, NULL, 0,
3387 "SET_OF_Privilege", HFILL }},
3388 { &hf_t124_nonConductedPrivileges_item,
3389 { "Privilege", "t124.Privilege",
3390 FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
3391 NULL, HFILL }},
3392 { &hf_t124_callerIdentifier,
3393 { "callerIdentifier", "t124.callerIdentifier",
3394 FT_STRING, BASE_NONE, NULL, 0,
3395 "TextString", HFILL }},
3396 { &hf_t124_userData,
3397 { "userData", "t124.userData",
3398 FT_UINT32, BASE_DEC, NULL, 0,
3399 NULL, HFILL }},
3400 { &hf_t124_conferencePriority,
3401 { "conferencePriority", "t124.conferencePriority_element",
3402 FT_NONE, BASE_NONE, NULL, 0,
3403 NULL, HFILL }},
3404 { &hf_t124_nodeID,
3405 { "nodeID", "t124.nodeID",
3406 FT_UINT32, BASE_DEC, NULL, 0,
3407 "UserID", HFILL }},
3408 { &hf_t124_tag,
3409 { "tag", "t124.tag",
3410 FT_INT32, BASE_DEC, NULL, 0,
3411 "INTEGER", HFILL }},
3412 { &hf_t124_result,
3413 { "result", "t124.result",
3414 FT_UINT32, BASE_DEC, VALS(t124_T_result_vals), 0,
3415 NULL, HFILL }},
3416 { &hf_t124_nodeType,
3417 { "nodeType", "t124.nodeType",
3418 FT_UINT32, BASE_DEC, VALS(t124_NodeType_vals), 0,
3419 NULL, HFILL }},
3420 { &hf_t124_asymmetryIndicator,
3421 { "asymmetryIndicator", "t124.asymmetryIndicator",
3422 FT_UINT32, BASE_DEC, VALS(t124_AsymmetryIndicator_vals), 0,
3423 NULL, HFILL }},
3424 { &hf_t124_conferenceList,
3425 { "conferenceList", "t124.conferenceList",
3426 FT_UINT32, BASE_DEC, NULL, 0,
3427 "SET_OF_ConferenceDescriptor", HFILL }},
3428 { &hf_t124_conferenceList_item,
3429 { "ConferenceDescriptor", "t124.ConferenceDescriptor_element",
3430 FT_NONE, BASE_NONE, NULL, 0,
3431 NULL, HFILL }},
3432 { &hf_t124_queryResponseResult,
3433 { "result", "t124.result",
3434 FT_UINT32, BASE_DEC, VALS(t124_QueryResponseResult_vals), 0,
3435 "QueryResponseResult", HFILL }},
3436 { &hf_t124_waitForInvitationFlag,
3437 { "waitForInvitationFlag", "t124.waitForInvitationFlag",
3438 FT_BOOLEAN, BASE_NONE, NULL, 0,
3439 "BOOLEAN", HFILL }},
3440 { &hf_t124_noUnlistedConferenceFlag,
3441 { "noUnlistedConferenceFlag", "t124.noUnlistedConferenceFlag",
3442 FT_BOOLEAN, BASE_NONE, NULL, 0,
3443 "BOOLEAN", HFILL }},
3444 { &hf_t124_conferenceName_01,
3445 { "conferenceName", "t124.conferenceName",
3446 FT_UINT32, BASE_DEC, VALS(t124_ConferenceNameSelector_vals), 0,
3447 "ConferenceNameSelector", HFILL }},
3448 { &hf_t124_password_01,
3449 { "password", "t124.password",
3450 FT_UINT32, BASE_DEC, VALS(t124_PasswordChallengeRequestResponse_vals), 0,
3451 "PasswordChallengeRequestResponse", HFILL }},
3452 { &hf_t124_convenerPassword_01,
3453 { "convenerPassword", "t124.convenerPassword",
3454 FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
3455 "PasswordSelector", HFILL }},
3456 { &hf_t124_nodeCategory,
3457 { "nodeCategory", "t124.nodeCategory",
3458 FT_UINT32, BASE_DEC, VALS(t124_NodeCategory_vals), 0,
3459 NULL, HFILL }},
3460 { &hf_t124_topNodeID,
3461 { "topNodeID", "t124.topNodeID",
3462 FT_UINT32, BASE_DEC, NULL, 0,
3463 "UserID", HFILL }},
3464 { &hf_t124_conferenceNameAlias,
3465 { "conferenceNameAlias", "t124.conferenceNameAlias",
3466 FT_UINT32, BASE_DEC, VALS(t124_ConferenceNameSelector_vals), 0,
3467 "ConferenceNameSelector", HFILL }},
3468 { &hf_t124_joinResponseResult,
3469 { "result", "t124.result",
3470 FT_UINT32, BASE_DEC, VALS(t124_JoinResponseResult_vals), 0,
3471 "JoinResponseResult", HFILL }},
3472 { &hf_t124_inviteResponseResult,
3473 { "result", "t124.result",
3474 FT_UINT32, BASE_DEC, VALS(t124_InviteResponseResult_vals), 0,
3475 "InviteResponseResult", HFILL }},
3476 { &hf_t124_t124Identifier,
3477 { "t124Identifier", "t124.t124Identifier",
3478 FT_UINT32, BASE_DEC, VALS(t124_Key_vals), 0,
3479 "Key", HFILL }},
3480 { &hf_t124_connectPDU,
3481 { "connectPDU", "t124.connectPDU",
3482 FT_BYTES, BASE_NONE, NULL, 0,
3483 NULL, HFILL }},
3484 { &hf_t124_conferenceCreateRequest,
3485 { "conferenceCreateRequest", "t124.conferenceCreateRequest_element",
3486 FT_NONE, BASE_NONE, NULL, 0,
3487 NULL, HFILL }},
3488 { &hf_t124_conferenceCreateResponse,
3489 { "conferenceCreateResponse", "t124.conferenceCreateResponse_element",
3490 FT_NONE, BASE_NONE, NULL, 0,
3491 NULL, HFILL }},
3492 { &hf_t124_conferenceQueryRequest,
3493 { "conferenceQueryRequest", "t124.conferenceQueryRequest_element",
3494 FT_NONE, BASE_NONE, NULL, 0,
3495 NULL, HFILL }},
3496 { &hf_t124_conferenceQueryResponse,
3497 { "conferenceQueryResponse", "t124.conferenceQueryResponse_element",
3498 FT_NONE, BASE_NONE, NULL, 0,
3499 NULL, HFILL }},
3500 { &hf_t124_conferenceJoinRequest,
3501 { "conferenceJoinRequest", "t124.conferenceJoinRequest_element",
3502 FT_NONE, BASE_NONE, NULL, 0,
3503 NULL, HFILL }},
3504 { &hf_t124_conferenceJoinResponse,
3505 { "conferenceJoinResponse", "t124.conferenceJoinResponse_element",
3506 FT_NONE, BASE_NONE, NULL, 0,
3507 NULL, HFILL }},
3508 { &hf_t124_conferenceInviteRequest,
3509 { "conferenceInviteRequest", "t124.conferenceInviteRequest_element",
3510 FT_NONE, BASE_NONE, NULL, 0,
3511 NULL, HFILL }},
3512 { &hf_t124_conferenceInviteResponse,
3513 { "conferenceInviteResponse", "t124.conferenceInviteResponse_element",
3514 FT_NONE, BASE_NONE, NULL, 0,
3515 NULL, HFILL }},
3516 { &hf_t124_heightLimit,
3517 { "heightLimit", "t124.heightLimit",
3518 FT_UINT32, BASE_DEC, NULL, 0,
3519 "INTEGER_0_MAX", HFILL }},
3520 { &hf_t124_subHeight,
3521 { "subHeight", "t124.subHeight",
3522 FT_UINT32, BASE_DEC, NULL, 0,
3523 "INTEGER_0_MAX", HFILL }},
3524 { &hf_t124_subInterval,
3525 { "subInterval", "t124.subInterval",
3526 FT_UINT32, BASE_DEC, NULL, 0,
3527 "INTEGER_0_MAX", HFILL }},
3528 { &hf_t124_static,
3529 { "static", "t124.static_element",
3530 FT_NONE, BASE_NONE, NULL, 0,
3531 NULL, HFILL }},
3532 { &hf_t124_channelId,
3533 { "channelId", "t124.channelId",
3534 FT_UINT32, BASE_DEC, NULL, 0,
3535 "StaticChannelId", HFILL }},
3536 { &hf_t124_userId,
3537 { "userId", "t124.userId_element",
3538 FT_NONE, BASE_NONE, NULL, 0,
3539 NULL, HFILL }},
3540 { &hf_t124_joined,
3541 { "joined", "t124.joined",
3542 FT_BOOLEAN, BASE_NONE, NULL, 0,
3543 "BOOLEAN", HFILL }},
3544 { &hf_t124_userId_01,
3545 { "userId", "t124.userId",
3546 FT_UINT32, BASE_DEC, NULL, 0,
3547 NULL, HFILL }},
3548 { &hf_t124_private,
3549 { "private", "t124.private_element",
3550 FT_NONE, BASE_NONE, NULL, 0,
3551 NULL, HFILL }},
3552 { &hf_t124_channelId_01,
3553 { "channelId", "t124.channelId",
3554 FT_UINT32, BASE_DEC, NULL, 0,
3555 "PrivateChannelId", HFILL }},
3556 { &hf_t124_manager,
3557 { "manager", "t124.manager",
3558 FT_UINT32, BASE_DEC, NULL, 0,
3559 "UserId", HFILL }},
3560 { &hf_t124_admitted,
3561 { "admitted", "t124.admitted",
3562 FT_UINT32, BASE_DEC, NULL, 0,
3563 "SET_OF_UserId", HFILL }},
3564 { &hf_t124_admitted_item,
3565 { "UserId", "t124.UserId",
3566 FT_UINT32, BASE_DEC, NULL, 0,
3567 NULL, HFILL }},
3568 { &hf_t124_assigned,
3569 { "assigned", "t124.assigned_element",
3570 FT_NONE, BASE_NONE, NULL, 0,
3571 NULL, HFILL }},
3572 { &hf_t124_channelId_02,
3573 { "channelId", "t124.channelId",
3574 FT_UINT32, BASE_DEC, NULL, 0,
3575 "AssignedChannelId", HFILL }},
3576 { &hf_t124_mergeChannels,
3577 { "mergeChannels", "t124.mergeChannels",
3578 FT_UINT32, BASE_DEC, NULL, 0,
3579 "SET_OF_ChannelAttributes", HFILL }},
3580 { &hf_t124_mergeChannels_item,
3581 { "ChannelAttributes", "t124.ChannelAttributes",
3582 FT_UINT32, BASE_DEC, VALS(t124_ChannelAttributes_vals), 0,
3583 NULL, HFILL }},
3584 { &hf_t124_purgeChannelIds,
3585 { "purgeChannelIds", "t124.purgeChannelIds",
3586 FT_UINT32, BASE_DEC, NULL, 0,
3587 "SET_OF_ChannelId", HFILL }},
3588 { &hf_t124_purgeChannelIds_item,
3589 { "ChannelId", "t124.ChannelId",
3590 FT_UINT32, BASE_DEC, NULL, 0,
3591 NULL, HFILL }},
3592 { &hf_t124_detachUserIds,
3593 { "detachUserIds", "t124.detachUserIds",
3594 FT_UINT32, BASE_DEC, NULL, 0,
3595 "SET_OF_UserId", HFILL }},
3596 { &hf_t124_detachUserIds_item,
3597 { "UserId", "t124.UserId",
3598 FT_UINT32, BASE_DEC, NULL, 0,
3599 NULL, HFILL }},
3600 { &hf_t124_grabbed,
3601 { "grabbed", "t124.grabbed_element",
3602 FT_NONE, BASE_NONE, NULL, 0,
3603 NULL, HFILL }},
3604 { &hf_t124_tokenId,
3605 { "tokenId", "t124.tokenId",
3606 FT_UINT32, BASE_DEC, NULL, 0,
3607 NULL, HFILL }},
3608 { &hf_t124_grabber,
3609 { "grabber", "t124.grabber",
3610 FT_UINT32, BASE_DEC, NULL, 0,
3611 "UserId", HFILL }},
3612 { &hf_t124_inhibited,
3613 { "inhibited", "t124.inhibited_element",
3614 FT_NONE, BASE_NONE, NULL, 0,
3615 NULL, HFILL }},
3616 { &hf_t124_inhibitors,
3617 { "inhibitors", "t124.inhibitors",
3618 FT_UINT32, BASE_DEC, NULL, 0,
3619 "SET_OF_UserId", HFILL }},
3620 { &hf_t124_inhibitors_item,
3621 { "UserId", "t124.UserId",
3622 FT_UINT32, BASE_DEC, NULL, 0,
3623 NULL, HFILL }},
3624 { &hf_t124_giving,
3625 { "giving", "t124.giving_element",
3626 FT_NONE, BASE_NONE, NULL, 0,
3627 NULL, HFILL }},
3628 { &hf_t124_recipient,
3629 { "recipient", "t124.recipient",
3630 FT_UINT32, BASE_DEC, NULL, 0,
3631 "UserId", HFILL }},
3632 { &hf_t124_ungivable,
3633 { "ungivable", "t124.ungivable_element",
3634 FT_NONE, BASE_NONE, NULL, 0,
3635 NULL, HFILL }},
3636 { &hf_t124_given,
3637 { "given", "t124.given_element",
3638 FT_NONE, BASE_NONE, NULL, 0,
3639 NULL, HFILL }},
3640 { &hf_t124_mergeTokens,
3641 { "mergeTokens", "t124.mergeTokens",
3642 FT_UINT32, BASE_DEC, NULL, 0,
3643 "SET_OF_TokenAttributes", HFILL }},
3644 { &hf_t124_mergeTokens_item,
3645 { "TokenAttributes", "t124.TokenAttributes",
3646 FT_UINT32, BASE_DEC, VALS(t124_TokenAttributes_vals), 0,
3647 NULL, HFILL }},
3648 { &hf_t124_purgeTokenIds,
3649 { "purgeTokenIds", "t124.purgeTokenIds",
3650 FT_UINT32, BASE_DEC, NULL, 0,
3651 "SET_OF_TokenId", HFILL }},
3652 { &hf_t124_purgeTokenIds_item,
3653 { "TokenId", "t124.TokenId",
3654 FT_UINT32, BASE_DEC, NULL, 0,
3655 NULL, HFILL }},
3656 { &hf_t124_reason,
3657 { "reason", "t124.reason",
3658 FT_UINT32, BASE_DEC, VALS(t124_Reason_vals), 0,
3659 NULL, HFILL }},
3660 { &hf_t124_diagnostic,
3661 { "diagnostic", "t124.diagnostic",
3662 FT_UINT32, BASE_DEC, VALS(t124_Diagnostic_vals), 0,
3663 NULL, HFILL }},
3664 { &hf_t124_initialOctets,
3665 { "initialOctets", "t124.initialOctets",
3666 FT_BYTES, BASE_NONE, NULL, 0,
3667 "OCTET_STRING", HFILL }},
3668 { &hf_t124_result_01,
3669 { "result", "t124.result",
3670 FT_UINT32, BASE_DEC, VALS(t124_Result_vals), 0,
3671 NULL, HFILL }},
3672 { &hf_t124_initiator,
3673 { "initiator", "t124.initiator",
3674 FT_UINT32, BASE_DEC, NULL, 0,
3675 "UserId", HFILL }},
3676 { &hf_t124_userIds,
3677 { "userIds", "t124.userIds",
3678 FT_UINT32, BASE_DEC, NULL, 0,
3679 "SET_OF_UserId", HFILL }},
3680 { &hf_t124_userIds_item,
3681 { "UserId", "t124.UserId",
3682 FT_UINT32, BASE_DEC, NULL, 0,
3683 NULL, HFILL }},
3684 { &hf_t124_channelId_03,
3685 { "channelId", "t124.channelId",
3686 FT_UINT32, BASE_DEC, NULL, 0,
3687 NULL, HFILL }},
3688 { &hf_t124_requested,
3689 { "requested", "t124.requested",
3690 FT_UINT32, BASE_DEC, NULL, 0,
3691 "ChannelId", HFILL }},
3692 { &hf_t124_channelIds,
3693 { "channelIds", "t124.channelIds",
3694 FT_UINT32, BASE_DEC, NULL, 0,
3695 "SET_OF_ChannelId", HFILL }},
3696 { &hf_t124_channelIds_item,
3697 { "ChannelId", "t124.ChannelId",
3698 FT_UINT32, BASE_DEC, NULL, 0,
3699 NULL, HFILL }},
3700 { &hf_t124_dataPriority,
3701 { "dataPriority", "t124.dataPriority",
3702 FT_UINT32, BASE_DEC, VALS(t124_DataPriority_vals), 0,
3703 NULL, HFILL }},
3704 { &hf_t124_segmentation,
3705 { "segmentation", "t124.segmentation",
3706 FT_BYTES, BASE_NONE, NULL, 0,
3707 NULL, HFILL }},
3708 { &hf_t124_userData_01,
3709 { "userData", "t124.userData",
3710 FT_BYTES, BASE_NONE, NULL, 0,
3711 NULL, HFILL }},
3712 { &hf_t124_userData_02,
3713 { "userData", "t124.userData",
3714 FT_BYTES, BASE_NONE, NULL, 0,
3715 "T_userData_01", HFILL }},
3716 { &hf_t124_userData_03,
3717 { "userData", "t124.userData",
3718 FT_BYTES, BASE_NONE, NULL, 0,
3719 "OCTET_STRING", HFILL }},
3720 { &hf_t124_tokenStatus,
3721 { "tokenStatus", "t124.tokenStatus",
3722 FT_UINT32, BASE_DEC, VALS(t124_TokenStatus_vals), 0,
3723 NULL, HFILL }},
3724 { &hf_t124_plumbDomainIndication,
3725 { "plumbDomainIndication", "t124.plumbDomainIndication_element",
3726 FT_NONE, BASE_NONE, NULL, 0,
3727 NULL, HFILL }},
3728 { &hf_t124_erectDomainRequest,
3729 { "erectDomainRequest", "t124.erectDomainRequest_element",
3730 FT_NONE, BASE_NONE, NULL, 0,
3731 NULL, HFILL }},
3732 { &hf_t124_mergeChannelsRequest,
3733 { "mergeChannelsRequest", "t124.mergeChannelsRequest_element",
3734 FT_NONE, BASE_NONE, NULL, 0,
3735 NULL, HFILL }},
3736 { &hf_t124_mergeChannelsConfirm,
3737 { "mergeChannelsConfirm", "t124.mergeChannelsConfirm_element",
3738 FT_NONE, BASE_NONE, NULL, 0,
3739 NULL, HFILL }},
3740 { &hf_t124_purgeChannelsIndication,
3741 { "purgeChannelsIndication", "t124.purgeChannelsIndication_element",
3742 FT_NONE, BASE_NONE, NULL, 0,
3743 NULL, HFILL }},
3744 { &hf_t124_mergeTokensRequest,
3745 { "mergeTokensRequest", "t124.mergeTokensRequest_element",
3746 FT_NONE, BASE_NONE, NULL, 0,
3747 NULL, HFILL }},
3748 { &hf_t124_mergeTokensConfirm,
3749 { "mergeTokensConfirm", "t124.mergeTokensConfirm_element",
3750 FT_NONE, BASE_NONE, NULL, 0,
3751 NULL, HFILL }},
3752 { &hf_t124_purgeTokensIndication,
3753 { "purgeTokensIndication", "t124.purgeTokensIndication_element",
3754 FT_NONE, BASE_NONE, NULL, 0,
3755 NULL, HFILL }},
3756 { &hf_t124_disconnectProviderUltimatum,
3757 { "disconnectProviderUltimatum", "t124.disconnectProviderUltimatum_element",
3758 FT_NONE, BASE_NONE, NULL, 0,
3759 NULL, HFILL }},
3760 { &hf_t124_rejectMCSPDUUltimatum,
3761 { "rejectMCSPDUUltimatum", "t124.rejectMCSPDUUltimatum_element",
3762 FT_NONE, BASE_NONE, NULL, 0,
3763 NULL, HFILL }},
3764 { &hf_t124_attachUserRequest,
3765 { "attachUserRequest", "t124.attachUserRequest_element",
3766 FT_NONE, BASE_NONE, NULL, 0,
3767 NULL, HFILL }},
3768 { &hf_t124_attachUserConfirm,
3769 { "attachUserConfirm", "t124.attachUserConfirm_element",
3770 FT_NONE, BASE_NONE, NULL, 0,
3771 NULL, HFILL }},
3772 { &hf_t124_detachUserRequest,
3773 { "detachUserRequest", "t124.detachUserRequest_element",
3774 FT_NONE, BASE_NONE, NULL, 0,
3775 NULL, HFILL }},
3776 { &hf_t124_detachUserIndication,
3777 { "detachUserIndication", "t124.detachUserIndication_element",
3778 FT_NONE, BASE_NONE, NULL, 0,
3779 NULL, HFILL }},
3780 { &hf_t124_channelJoinRequest,
3781 { "channelJoinRequest", "t124.channelJoinRequest_element",
3782 FT_NONE, BASE_NONE, NULL, 0,
3783 NULL, HFILL }},
3784 { &hf_t124_channelJoinConfirm,
3785 { "channelJoinConfirm", "t124.channelJoinConfirm_element",
3786 FT_NONE, BASE_NONE, NULL, 0,
3787 NULL, HFILL }},
3788 { &hf_t124_channelLeaveRequest,
3789 { "channelLeaveRequest", "t124.channelLeaveRequest_element",
3790 FT_NONE, BASE_NONE, NULL, 0,
3791 NULL, HFILL }},
3792 { &hf_t124_channelConveneRequest,
3793 { "channelConveneRequest", "t124.channelConveneRequest_element",
3794 FT_NONE, BASE_NONE, NULL, 0,
3795 NULL, HFILL }},
3796 { &hf_t124_channelConveneConfirm,
3797 { "channelConveneConfirm", "t124.channelConveneConfirm_element",
3798 FT_NONE, BASE_NONE, NULL, 0,
3799 NULL, HFILL }},
3800 { &hf_t124_channelDisbandRequest,
3801 { "channelDisbandRequest", "t124.channelDisbandRequest_element",
3802 FT_NONE, BASE_NONE, NULL, 0,
3803 NULL, HFILL }},
3804 { &hf_t124_channelDisbandIndication,
3805 { "channelDisbandIndication", "t124.channelDisbandIndication_element",
3806 FT_NONE, BASE_NONE, NULL, 0,
3807 NULL, HFILL }},
3808 { &hf_t124_channelAdmitRequest,
3809 { "channelAdmitRequest", "t124.channelAdmitRequest_element",
3810 FT_NONE, BASE_NONE, NULL, 0,
3811 NULL, HFILL }},
3812 { &hf_t124_channelAdmitIndication,
3813 { "channelAdmitIndication", "t124.channelAdmitIndication_element",
3814 FT_NONE, BASE_NONE, NULL, 0,
3815 NULL, HFILL }},
3816 { &hf_t124_channelExpelRequest,
3817 { "channelExpelRequest", "t124.channelExpelRequest_element",
3818 FT_NONE, BASE_NONE, NULL, 0,
3819 NULL, HFILL }},
3820 { &hf_t124_channelExpelIndication,
3821 { "channelExpelIndication", "t124.channelExpelIndication_element",
3822 FT_NONE, BASE_NONE, NULL, 0,
3823 NULL, HFILL }},
3824 { &hf_t124_sendDataRequest,
3825 { "sendDataRequest", "t124.sendDataRequest_element",
3826 FT_NONE, BASE_NONE, NULL, 0,
3827 NULL, HFILL }},
3828 { &hf_t124_sendDataIndication,
3829 { "sendDataIndication", "t124.sendDataIndication_element",
3830 FT_NONE, BASE_NONE, NULL, 0,
3831 NULL, HFILL }},
3832 { &hf_t124_uniformSendDataRequest,
3833 { "uniformSendDataRequest", "t124.uniformSendDataRequest_element",
3834 FT_NONE, BASE_NONE, NULL, 0,
3835 NULL, HFILL }},
3836 { &hf_t124_uniformSendDataIndication,
3837 { "uniformSendDataIndication", "t124.uniformSendDataIndication_element",
3838 FT_NONE, BASE_NONE, NULL, 0,
3839 NULL, HFILL }},
3840 { &hf_t124_tokenGrabRequest,
3841 { "tokenGrabRequest", "t124.tokenGrabRequest_element",
3842 FT_NONE, BASE_NONE, NULL, 0,
3843 NULL, HFILL }},
3844 { &hf_t124_tokenGrabConfirm,
3845 { "tokenGrabConfirm", "t124.tokenGrabConfirm_element",
3846 FT_NONE, BASE_NONE, NULL, 0,
3847 NULL, HFILL }},
3848 { &hf_t124_tokenInhibitRequest,
3849 { "tokenInhibitRequest", "t124.tokenInhibitRequest_element",
3850 FT_NONE, BASE_NONE, NULL, 0,
3851 NULL, HFILL }},
3852 { &hf_t124_tokenInhibitConfirm,
3853 { "tokenInhibitConfirm", "t124.tokenInhibitConfirm_element",
3854 FT_NONE, BASE_NONE, NULL, 0,
3855 NULL, HFILL }},
3856 { &hf_t124_tokenGiveRequest,
3857 { "tokenGiveRequest", "t124.tokenGiveRequest_element",
3858 FT_NONE, BASE_NONE, NULL, 0,
3859 NULL, HFILL }},
3860 { &hf_t124_tokenGiveIndication,
3861 { "tokenGiveIndication", "t124.tokenGiveIndication_element",
3862 FT_NONE, BASE_NONE, NULL, 0,
3863 NULL, HFILL }},
3864 { &hf_t124_tokenGiveResponse,
3865 { "tokenGiveResponse", "t124.tokenGiveResponse_element",
3866 FT_NONE, BASE_NONE, NULL, 0,
3867 NULL, HFILL }},
3868 { &hf_t124_tokenGiveConfirm,
3869 { "tokenGiveConfirm", "t124.tokenGiveConfirm_element",
3870 FT_NONE, BASE_NONE, NULL, 0,
3871 NULL, HFILL }},
3872 { &hf_t124_tokenPleaseRequest,
3873 { "tokenPleaseRequest", "t124.tokenPleaseRequest_element",
3874 FT_NONE, BASE_NONE, NULL, 0,
3875 NULL, HFILL }},
3876 { &hf_t124_tokenPleaseIndication,
3877 { "tokenPleaseIndication", "t124.tokenPleaseIndication_element",
3878 FT_NONE, BASE_NONE, NULL, 0,
3879 NULL, HFILL }},
3880 { &hf_t124_tokenReleaseRequest,
3881 { "tokenReleaseRequest", "t124.tokenReleaseRequest_element",
3882 FT_NONE, BASE_NONE, NULL, 0,
3883 NULL, HFILL }},
3884 { &hf_t124_tokenReleaseConfirm,
3885 { "tokenReleaseConfirm", "t124.tokenReleaseConfirm_element",
3886 FT_NONE, BASE_NONE, NULL, 0,
3887 NULL, HFILL }},
3888 { &hf_t124_tokenTestRequest,
3889 { "tokenTestRequest", "t124.tokenTestRequest_element",
3890 FT_NONE, BASE_NONE, NULL, 0,
3891 NULL, HFILL }},
3892 { &hf_t124_tokenTestConfirm,
3893 { "tokenTestConfirm", "t124.tokenTestConfirm_element",
3894 FT_NONE, BASE_NONE, NULL, 0,
3895 NULL, HFILL }},
3896 { &hf_t124_Segmentation_begin,
3897 { "begin", "t124.begin",
3898 FT_BOOLEAN, 8, NULL, 0x80,
3899 NULL, HFILL }},
3900 { &hf_t124_Segmentation_end,
3901 { "end", "t124.end",
3902 FT_BOOLEAN, 8, NULL, 0x40,
3903 NULL, HFILL }},
3905 /*--- End of included file: packet-t124-hfarr.c ---*/
3906 #line 204 "../../asn1/t124/packet-t124-template.c"
3909 /* List of subtrees */
3910 static gint *ett[] = {
3911 &ett_t124,
3912 &ett_t124_connectGCCPDU,
3914 /*--- Included file: packet-t124-ettarr.c ---*/
3915 #line 1 "../../asn1/t124/packet-t124-ettarr.c"
3916 &ett_t124_Key,
3917 &ett_t124_NonStandardParameter,
3918 &ett_t124_UserData,
3919 &ett_t124_UserData_item,
3920 &ett_t124_Password,
3921 &ett_t124_PasswordSelector,
3922 &ett_t124_ChallengeResponseItem,
3923 &ett_t124_ChallengeResponseAlgorithm,
3924 &ett_t124_ChallengeItem,
3925 &ett_t124_ChallengeRequest,
3926 &ett_t124_SET_OF_ChallengeItem,
3927 &ett_t124_ChallengeResponse,
3928 &ett_t124_PasswordChallengeRequestResponse,
3929 &ett_t124_T_challengeRequestResponse,
3930 &ett_t124_ConferenceName,
3931 &ett_t124_ConferenceNameSelector,
3932 &ett_t124_ConferencePriorityScheme,
3933 &ett_t124_ConferencePriority,
3934 &ett_t124_NodeCategory,
3935 &ett_t124_ConferenceMode,
3936 &ett_t124_NetworkAddress,
3937 &ett_t124_NetworkAddress_item,
3938 &ett_t124_T_aggregatedChannel,
3939 &ett_t124_T_transferModes,
3940 &ett_t124_T_highLayerCompatibility,
3941 &ett_t124_T_transportConnection,
3942 &ett_t124_AsymmetryIndicator,
3943 &ett_t124_ConferenceDescriptor,
3944 &ett_t124_ConferenceCreateRequest,
3945 &ett_t124_SET_OF_Privilege,
3946 &ett_t124_ConferenceCreateResponse,
3947 &ett_t124_ConferenceQueryRequest,
3948 &ett_t124_ConferenceQueryResponse,
3949 &ett_t124_SET_OF_ConferenceDescriptor,
3950 &ett_t124_ConferenceJoinRequest,
3951 &ett_t124_ConferenceJoinResponse,
3952 &ett_t124_ConferenceInviteRequest,
3953 &ett_t124_ConferenceInviteResponse,
3954 &ett_t124_ConnectData,
3955 &ett_t124_ConnectGCCPDU,
3956 &ett_t124_Segmentation,
3957 &ett_t124_PlumbDomainIndication,
3958 &ett_t124_ErectDomainRequest,
3959 &ett_t124_ChannelAttributes,
3960 &ett_t124_T_static,
3961 &ett_t124_T_userId,
3962 &ett_t124_T_private,
3963 &ett_t124_SET_OF_UserId,
3964 &ett_t124_T_assigned,
3965 &ett_t124_MergeChannelsRequest,
3966 &ett_t124_SET_OF_ChannelAttributes,
3967 &ett_t124_SET_OF_ChannelId,
3968 &ett_t124_MergeChannelsConfirm,
3969 &ett_t124_PurgeChannelsIndication,
3970 &ett_t124_TokenAttributes,
3971 &ett_t124_T_grabbed,
3972 &ett_t124_T_inhibited,
3973 &ett_t124_T_giving,
3974 &ett_t124_T_ungivable,
3975 &ett_t124_T_given,
3976 &ett_t124_MergeTokensRequest,
3977 &ett_t124_SET_OF_TokenAttributes,
3978 &ett_t124_SET_OF_TokenId,
3979 &ett_t124_MergeTokensConfirm,
3980 &ett_t124_PurgeTokensIndication,
3981 &ett_t124_DisconnectProviderUltimatum,
3982 &ett_t124_RejectMCSPDUUltimatum,
3983 &ett_t124_AttachUserRequest,
3984 &ett_t124_AttachUserConfirm,
3985 &ett_t124_DetachUserRequest,
3986 &ett_t124_DetachUserIndication,
3987 &ett_t124_ChannelJoinRequest,
3988 &ett_t124_ChannelJoinConfirm,
3989 &ett_t124_ChannelLeaveRequest,
3990 &ett_t124_ChannelConveneRequest,
3991 &ett_t124_ChannelConveneConfirm,
3992 &ett_t124_ChannelDisbandRequest,
3993 &ett_t124_ChannelDisbandIndication,
3994 &ett_t124_ChannelAdmitRequest,
3995 &ett_t124_ChannelAdmitIndication,
3996 &ett_t124_ChannelExpelRequest,
3997 &ett_t124_ChannelExpelIndication,
3998 &ett_t124_SendDataRequest,
3999 &ett_t124_SendDataIndication,
4000 &ett_t124_UniformSendDataRequest,
4001 &ett_t124_UniformSendDataIndication,
4002 &ett_t124_TokenGrabRequest,
4003 &ett_t124_TokenGrabConfirm,
4004 &ett_t124_TokenInhibitRequest,
4005 &ett_t124_TokenInhibitConfirm,
4006 &ett_t124_TokenGiveRequest,
4007 &ett_t124_TokenGiveIndication,
4008 &ett_t124_TokenGiveResponse,
4009 &ett_t124_TokenGiveConfirm,
4010 &ett_t124_TokenPleaseRequest,
4011 &ett_t124_TokenPleaseIndication,
4012 &ett_t124_TokenReleaseRequest,
4013 &ett_t124_TokenReleaseConfirm,
4014 &ett_t124_TokenTestRequest,
4015 &ett_t124_TokenTestConfirm,
4016 &ett_t124_DomainMCSPDU,
4018 /*--- End of included file: packet-t124-ettarr.c ---*/
4019 #line 211 "../../asn1/t124/packet-t124-template.c"
4022 /* Register protocol */
4023 proto_t124 = proto_register_protocol(PNAME, PSNAME, PFNAME);
4024 /* Register fields and subtrees */
4025 proto_register_field_array(proto_t124, hf, array_length(hf));
4026 proto_register_subtree_array(ett, array_length(ett));
4028 t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", FT_STRING, BASE_NONE);
4029 t124_sd_dissector_table = register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", FT_UINT32, BASE_HEX);
4031 new_register_dissector("t124", dissect_t124_new, proto_t124);
4035 void
4036 proto_reg_handoff_t124(void) {
4038 register_ber_oid_dissector("0.0.20.124.0.1", dissect_t124, proto_t124, "Generic Conference Control");
4040 heur_dissector_add("t125", dissect_t124_heur, proto_t124);