1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* asn2wrs.py -q -L -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../.. GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
7 * Routines for t124 packet dissection
8 * Copyright 2010, Graeme Lunt
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
20 #include <epan/packet.h>
21 #include <epan/exceptions.h>
22 #include <epan/conversation.h>
23 #include <wsutil/array.h>
25 #include <epan/asn1.h>
26 #include "packet-per.h"
27 #include "packet-ber.h"
28 #include "packet-t124.h"
31 /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
32 #pragma warning(disable:4146)
35 #define PNAME "GENERIC-CONFERENCE-CONTROL T.124"
36 #define PSNAME "T.124"
39 void proto_register_t124(void);
40 void proto_reg_handoff_t124(void);
42 /* Initialize the protocol and registered fields */
43 static int proto_t124
;
44 static proto_tree
*top_tree
;
46 static int hf_t124_object
; /* T_object */
47 static int hf_t124_h221NonStandard
; /* H221NonStandardIdentifier */
48 static int hf_t124_key
; /* Key */
49 static int hf_t124_data
; /* OCTET_STRING */
50 static int hf_t124_UserData_item
; /* UserData_item */
51 static int hf_t124_value
; /* T_value */
52 static int hf_t124_numeric
; /* SimpleNumericString */
53 static int hf_t124_text
; /* SimpleTextString */
54 static int hf_t124_unicodeText
; /* TextString */
55 static int hf_t124_passwordString
; /* PasswordSelector */
56 static int hf_t124_responseData
; /* UserData */
57 static int hf_t124_passwordInTheClear
; /* NULL */
58 static int hf_t124_nonStandardAlgorithm
; /* NonStandardParameter */
59 static int hf_t124_responseAlgorithm
; /* ChallengeResponseAlgorithm */
60 static int hf_t124_challengeData
; /* UserData */
61 static int hf_t124_challengeTag
; /* INTEGER */
62 static int hf_t124_challengeSet
; /* SET_OF_ChallengeItem */
63 static int hf_t124_challengeSet_item
; /* ChallengeItem */
64 static int hf_t124_responseItem
; /* ChallengeResponseItem */
65 static int hf_t124_passwordInTheClear_01
; /* PasswordSelector */
66 static int hf_t124_challengeRequestResponse
; /* T_challengeRequestResponse */
67 static int hf_t124_challengeRequest
; /* ChallengeRequest */
68 static int hf_t124_challengeResponse
; /* ChallengeResponse */
69 static int hf_t124_nonStandardScheme
; /* NonStandardParameter */
70 static int hf_t124_priority
; /* INTEGER_0_65535 */
71 static int hf_t124_scheme
; /* ConferencePriorityScheme */
72 static int hf_t124_conventional
; /* NULL */
73 static int hf_t124_counted
; /* NULL */
74 static int hf_t124_anonymous
; /* NULL */
75 static int hf_t124_nonStandardCategory
; /* NonStandardParameter */
76 static int hf_t124_conventional_only
; /* NULL */
77 static int hf_t124_counted_only
; /* NULL */
78 static int hf_t124_anonymous_only
; /* NULL */
79 static int hf_t124_conventional_control
; /* NULL */
80 static int hf_t124_unrestricted_mode
; /* NULL */
81 static int hf_t124_non_standard_mode
; /* NonStandardParameter */
82 static int hf_t124_NetworkAddress_item
; /* NetworkAddress_item */
83 static int hf_t124_aggregatedChannel
; /* T_aggregatedChannel */
84 static int hf_t124_transferModes
; /* T_transferModes */
85 static int hf_t124_speech
; /* BOOLEAN */
86 static int hf_t124_voice_band
; /* BOOLEAN */
87 static int hf_t124_digital_56k
; /* BOOLEAN */
88 static int hf_t124_digital_64k
; /* BOOLEAN */
89 static int hf_t124_digital_128k
; /* BOOLEAN */
90 static int hf_t124_digital_192k
; /* BOOLEAN */
91 static int hf_t124_digital_256k
; /* BOOLEAN */
92 static int hf_t124_digital_320k
; /* BOOLEAN */
93 static int hf_t124_digital_384k
; /* BOOLEAN */
94 static int hf_t124_digital_512k
; /* BOOLEAN */
95 static int hf_t124_digital_768k
; /* BOOLEAN */
96 static int hf_t124_digital_1152k
; /* BOOLEAN */
97 static int hf_t124_digital_1472k
; /* BOOLEAN */
98 static int hf_t124_digital_1536k
; /* BOOLEAN */
99 static int hf_t124_digital_1920k
; /* BOOLEAN */
100 static int hf_t124_packet_mode
; /* BOOLEAN */
101 static int hf_t124_frame_mode
; /* BOOLEAN */
102 static int hf_t124_atm
; /* BOOLEAN */
103 static int hf_t124_internationalNumber
; /* DiallingString */
104 static int hf_t124_subAddress
; /* SubAddressString */
105 static int hf_t124_extraDialling
; /* ExtraDiallingString */
106 static int hf_t124_highLayerCompatibility
; /* T_highLayerCompatibility */
107 static int hf_t124_telephony3kHz
; /* BOOLEAN */
108 static int hf_t124_telephony7kHz
; /* BOOLEAN */
109 static int hf_t124_videotelephony
; /* BOOLEAN */
110 static int hf_t124_videoconference
; /* BOOLEAN */
111 static int hf_t124_audiographic
; /* BOOLEAN */
112 static int hf_t124_audiovisual
; /* BOOLEAN */
113 static int hf_t124_multimedia
; /* BOOLEAN */
114 static int hf_t124_transportConnection
; /* T_transportConnection */
115 static int hf_t124_nsapAddress
; /* OCTET_STRING_SIZE_1_20 */
116 static int hf_t124_transportSelector
; /* OCTET_STRING */
117 static int hf_t124_nonStandard
; /* NonStandardParameter */
118 static int hf_t124_callingNode
; /* NULL */
119 static int hf_t124_calledNode
; /* NULL */
120 static int hf_t124_unknown
; /* INTEGER_0_4294967295 */
121 static int hf_t124_conferenceName
; /* ConferenceName */
122 static int hf_t124_conferenceNameModifier
; /* ConferenceNameModifier */
123 static int hf_t124_conferenceDescription
; /* TextString */
124 static int hf_t124_lockedConference
; /* BOOLEAN */
125 static int hf_t124_passwordInTheClearRequired
; /* BOOLEAN */
126 static int hf_t124_networkAddress
; /* NetworkAddress */
127 static int hf_t124_defaultConferenceFlag
; /* BOOLEAN */
128 static int hf_t124_conferenceMode
; /* ConferenceMode */
129 static int hf_t124_convenerPassword
; /* Password */
130 static int hf_t124_password
; /* Password */
131 static int hf_t124_listedConference
; /* BOOLEAN */
132 static int hf_t124_conductibleConference
; /* BOOLEAN */
133 static int hf_t124_terminationMethod
; /* TerminationMethod */
134 static int hf_t124_conductorPrivileges
; /* SET_OF_Privilege */
135 static int hf_t124_conductorPrivileges_item
; /* Privilege */
136 static int hf_t124_conductedPrivileges
; /* SET_OF_Privilege */
137 static int hf_t124_conductedPrivileges_item
; /* Privilege */
138 static int hf_t124_nonConductedPrivileges
; /* SET_OF_Privilege */
139 static int hf_t124_nonConductedPrivileges_item
; /* Privilege */
140 static int hf_t124_callerIdentifier
; /* TextString */
141 static int hf_t124_userData
; /* UserData */
142 static int hf_t124_conferencePriority
; /* ConferencePriority */
143 static int hf_t124_nodeID
; /* UserID */
144 static int hf_t124_tag
; /* INTEGER */
145 static int hf_t124_result
; /* T_result */
146 static int hf_t124_nodeType
; /* NodeType */
147 static int hf_t124_asymmetryIndicator
; /* AsymmetryIndicator */
148 static int hf_t124_conferenceList
; /* SET_OF_ConferenceDescriptor */
149 static int hf_t124_conferenceList_item
; /* ConferenceDescriptor */
150 static int hf_t124_queryResponseResult
; /* QueryResponseResult */
151 static int hf_t124_waitForInvitationFlag
; /* BOOLEAN */
152 static int hf_t124_noUnlistedConferenceFlag
; /* BOOLEAN */
153 static int hf_t124_conferenceName_01
; /* ConferenceNameSelector */
154 static int hf_t124_password_01
; /* PasswordChallengeRequestResponse */
155 static int hf_t124_convenerPassword_01
; /* PasswordSelector */
156 static int hf_t124_nodeCategory
; /* NodeCategory */
157 static int hf_t124_topNodeID
; /* UserID */
158 static int hf_t124_conferenceNameAlias
; /* ConferenceNameSelector */
159 static int hf_t124_joinResponseResult
; /* JoinResponseResult */
160 static int hf_t124_inviteResponseResult
; /* InviteResponseResult */
161 static int hf_t124_t124Identifier
; /* Key */
162 static int hf_t124_connectPDU
; /* T_connectPDU */
163 static int hf_t124_conferenceCreateRequest
; /* ConferenceCreateRequest */
164 static int hf_t124_conferenceCreateResponse
; /* ConferenceCreateResponse */
165 static int hf_t124_conferenceQueryRequest
; /* ConferenceQueryRequest */
166 static int hf_t124_conferenceQueryResponse
; /* ConferenceQueryResponse */
167 static int hf_t124_conferenceJoinRequest
; /* ConferenceJoinRequest */
168 static int hf_t124_conferenceJoinResponse
; /* ConferenceJoinResponse */
169 static int hf_t124_conferenceInviteRequest
; /* ConferenceInviteRequest */
170 static int hf_t124_conferenceInviteResponse
; /* ConferenceInviteResponse */
171 static int hf_t124_heightLimit
; /* INTEGER_0_MAX */
172 static int hf_t124_subHeight
; /* INTEGER_0_MAX */
173 static int hf_t124_subInterval
; /* INTEGER_0_MAX */
174 static int hf_t124_static
; /* T_static */
175 static int hf_t124_channelId
; /* StaticChannelId */
176 static int hf_t124_userId
; /* T_userId */
177 static int hf_t124_joined
; /* BOOLEAN */
178 static int hf_t124_userId_01
; /* UserId */
179 static int hf_t124_private
; /* T_private */
180 static int hf_t124_channelId_01
; /* PrivateChannelId */
181 static int hf_t124_manager
; /* UserId */
182 static int hf_t124_admitted
; /* SET_OF_UserId */
183 static int hf_t124_admitted_item
; /* UserId */
184 static int hf_t124_assigned
; /* T_assigned */
185 static int hf_t124_channelId_02
; /* AssignedChannelId */
186 static int hf_t124_mergeChannels
; /* SET_OF_ChannelAttributes */
187 static int hf_t124_mergeChannels_item
; /* ChannelAttributes */
188 static int hf_t124_purgeChannelIds
; /* SET_OF_ChannelId */
189 static int hf_t124_purgeChannelIds_item
; /* ChannelId */
190 static int hf_t124_detachUserIds
; /* SET_OF_UserId */
191 static int hf_t124_detachUserIds_item
; /* UserId */
192 static int hf_t124_grabbed
; /* T_grabbed */
193 static int hf_t124_tokenId
; /* TokenId */
194 static int hf_t124_grabber
; /* UserId */
195 static int hf_t124_inhibited
; /* T_inhibited */
196 static int hf_t124_inhibitors
; /* SET_OF_UserId */
197 static int hf_t124_inhibitors_item
; /* UserId */
198 static int hf_t124_giving
; /* T_giving */
199 static int hf_t124_recipient
; /* UserId */
200 static int hf_t124_ungivable
; /* T_ungivable */
201 static int hf_t124_given
; /* T_given */
202 static int hf_t124_mergeTokens
; /* SET_OF_TokenAttributes */
203 static int hf_t124_mergeTokens_item
; /* TokenAttributes */
204 static int hf_t124_purgeTokenIds
; /* SET_OF_TokenId */
205 static int hf_t124_purgeTokenIds_item
; /* TokenId */
206 static int hf_t124_reason
; /* Reason */
207 static int hf_t124_diagnostic
; /* Diagnostic */
208 static int hf_t124_initialOctets
; /* OCTET_STRING */
209 static int hf_t124_result_01
; /* Result */
210 static int hf_t124_initiator
; /* UserId */
211 static int hf_t124_userIds
; /* SET_OF_UserId */
212 static int hf_t124_userIds_item
; /* UserId */
213 static int hf_t124_channelId_03
; /* ChannelId */
214 static int hf_t124_requested
; /* ChannelId */
215 static int hf_t124_channelIds
; /* SET_OF_ChannelId */
216 static int hf_t124_channelIds_item
; /* ChannelId */
217 static int hf_t124_dataPriority
; /* DataPriority */
218 static int hf_t124_segmentation
; /* Segmentation */
219 static int hf_t124_userData_01
; /* T_userData */
220 static int hf_t124_userData_02
; /* T_userData_01 */
221 static int hf_t124_userData_03
; /* OCTET_STRING */
222 static int hf_t124_tokenStatus
; /* TokenStatus */
223 static int hf_t124_plumbDomainIndication
; /* PlumbDomainIndication */
224 static int hf_t124_erectDomainRequest
; /* ErectDomainRequest */
225 static int hf_t124_mergeChannelsRequest
; /* MergeChannelsRequest */
226 static int hf_t124_mergeChannelsConfirm
; /* MergeChannelsConfirm */
227 static int hf_t124_purgeChannelsIndication
; /* PurgeChannelsIndication */
228 static int hf_t124_mergeTokensRequest
; /* MergeTokensRequest */
229 static int hf_t124_mergeTokensConfirm
; /* MergeTokensConfirm */
230 static int hf_t124_purgeTokensIndication
; /* PurgeTokensIndication */
231 static int hf_t124_disconnectProviderUltimatum
; /* DisconnectProviderUltimatum */
232 static int hf_t124_rejectMCSPDUUltimatum
; /* RejectMCSPDUUltimatum */
233 static int hf_t124_attachUserRequest
; /* AttachUserRequest */
234 static int hf_t124_attachUserConfirm
; /* AttachUserConfirm */
235 static int hf_t124_detachUserRequest
; /* DetachUserRequest */
236 static int hf_t124_detachUserIndication
; /* DetachUserIndication */
237 static int hf_t124_channelJoinRequest
; /* ChannelJoinRequest */
238 static int hf_t124_channelJoinConfirm
; /* ChannelJoinConfirm */
239 static int hf_t124_channelLeaveRequest
; /* ChannelLeaveRequest */
240 static int hf_t124_channelConveneRequest
; /* ChannelConveneRequest */
241 static int hf_t124_channelConveneConfirm
; /* ChannelConveneConfirm */
242 static int hf_t124_channelDisbandRequest
; /* ChannelDisbandRequest */
243 static int hf_t124_channelDisbandIndication
; /* ChannelDisbandIndication */
244 static int hf_t124_channelAdmitRequest
; /* ChannelAdmitRequest */
245 static int hf_t124_channelAdmitIndication
; /* ChannelAdmitIndication */
246 static int hf_t124_channelExpelRequest
; /* ChannelExpelRequest */
247 static int hf_t124_channelExpelIndication
; /* ChannelExpelIndication */
248 static int hf_t124_sendDataRequest
; /* SendDataRequest */
249 static int hf_t124_sendDataIndication
; /* SendDataIndication */
250 static int hf_t124_uniformSendDataRequest
; /* UniformSendDataRequest */
251 static int hf_t124_uniformSendDataIndication
; /* UniformSendDataIndication */
252 static int hf_t124_tokenGrabRequest
; /* TokenGrabRequest */
253 static int hf_t124_tokenGrabConfirm
; /* TokenGrabConfirm */
254 static int hf_t124_tokenInhibitRequest
; /* TokenInhibitRequest */
255 static int hf_t124_tokenInhibitConfirm
; /* TokenInhibitConfirm */
256 static int hf_t124_tokenGiveRequest
; /* TokenGiveRequest */
257 static int hf_t124_tokenGiveIndication
; /* TokenGiveIndication */
258 static int hf_t124_tokenGiveResponse
; /* TokenGiveResponse */
259 static int hf_t124_tokenGiveConfirm
; /* TokenGiveConfirm */
260 static int hf_t124_tokenPleaseRequest
; /* TokenPleaseRequest */
261 static int hf_t124_tokenPleaseIndication
; /* TokenPleaseIndication */
262 static int hf_t124_tokenReleaseRequest
; /* TokenReleaseRequest */
263 static int hf_t124_tokenReleaseConfirm
; /* TokenReleaseConfirm */
264 static int hf_t124_tokenTestRequest
; /* TokenTestRequest */
265 static int hf_t124_tokenTestConfirm
; /* TokenTestConfirm */
267 static int hf_t124_Segmentation_begin
;
268 static int hf_t124_Segmentation_end
;
270 /* Initialize the subtree pointers */
272 static int ett_t124_connectGCCPDU
;
274 static int hf_t124_ConnectData
;
275 static int hf_t124_connectGCCPDU
;
276 static int hf_t124_DomainMCSPDU_PDU
;
278 static uint32_t channelId
= -1;
280 static dissector_table_t t124_ns_dissector_table
;
281 static dissector_table_t t124_sd_dissector_table
;
283 static int ett_t124_Key
;
284 static int ett_t124_NonStandardParameter
;
285 static int ett_t124_UserData
;
286 static int ett_t124_UserData_item
;
287 static int ett_t124_Password
;
288 static int ett_t124_PasswordSelector
;
289 static int ett_t124_ChallengeResponseItem
;
290 static int ett_t124_ChallengeResponseAlgorithm
;
291 static int ett_t124_ChallengeItem
;
292 static int ett_t124_ChallengeRequest
;
293 static int ett_t124_SET_OF_ChallengeItem
;
294 static int ett_t124_ChallengeResponse
;
295 static int ett_t124_PasswordChallengeRequestResponse
;
296 static int ett_t124_T_challengeRequestResponse
;
297 static int ett_t124_ConferenceName
;
298 static int ett_t124_ConferenceNameSelector
;
299 static int ett_t124_ConferencePriorityScheme
;
300 static int ett_t124_ConferencePriority
;
301 static int ett_t124_NodeCategory
;
302 static int ett_t124_ConferenceMode
;
303 static int ett_t124_NetworkAddress
;
304 static int ett_t124_NetworkAddress_item
;
305 static int ett_t124_T_aggregatedChannel
;
306 static int ett_t124_T_transferModes
;
307 static int ett_t124_T_highLayerCompatibility
;
308 static int ett_t124_T_transportConnection
;
309 static int ett_t124_AsymmetryIndicator
;
310 static int ett_t124_ConferenceDescriptor
;
311 static int ett_t124_ConferenceCreateRequest
;
312 static int ett_t124_SET_OF_Privilege
;
313 static int ett_t124_ConferenceCreateResponse
;
314 static int ett_t124_ConferenceQueryRequest
;
315 static int ett_t124_ConferenceQueryResponse
;
316 static int ett_t124_SET_OF_ConferenceDescriptor
;
317 static int ett_t124_ConferenceJoinRequest
;
318 static int ett_t124_ConferenceJoinResponse
;
319 static int ett_t124_ConferenceInviteRequest
;
320 static int ett_t124_ConferenceInviteResponse
;
321 static int ett_t124_ConnectData
;
322 static int ett_t124_ConnectGCCPDU
;
323 static int ett_t124_Segmentation
;
324 static int ett_t124_PlumbDomainIndication
;
325 static int ett_t124_ErectDomainRequest
;
326 static int ett_t124_ChannelAttributes
;
327 static int ett_t124_T_static
;
328 static int ett_t124_T_userId
;
329 static int ett_t124_T_private
;
330 static int ett_t124_SET_OF_UserId
;
331 static int ett_t124_T_assigned
;
332 static int ett_t124_MergeChannelsRequest
;
333 static int ett_t124_SET_OF_ChannelAttributes
;
334 static int ett_t124_SET_OF_ChannelId
;
335 static int ett_t124_MergeChannelsConfirm
;
336 static int ett_t124_PurgeChannelsIndication
;
337 static int ett_t124_TokenAttributes
;
338 static int ett_t124_T_grabbed
;
339 static int ett_t124_T_inhibited
;
340 static int ett_t124_T_giving
;
341 static int ett_t124_T_ungivable
;
342 static int ett_t124_T_given
;
343 static int ett_t124_MergeTokensRequest
;
344 static int ett_t124_SET_OF_TokenAttributes
;
345 static int ett_t124_SET_OF_TokenId
;
346 static int ett_t124_MergeTokensConfirm
;
347 static int ett_t124_PurgeTokensIndication
;
348 static int ett_t124_DisconnectProviderUltimatum
;
349 static int ett_t124_RejectMCSPDUUltimatum
;
350 static int ett_t124_AttachUserRequest
;
351 static int ett_t124_AttachUserConfirm
;
352 static int ett_t124_DetachUserRequest
;
353 static int ett_t124_DetachUserIndication
;
354 static int ett_t124_ChannelJoinRequest
;
355 static int ett_t124_ChannelJoinConfirm
;
356 static int ett_t124_ChannelLeaveRequest
;
357 static int ett_t124_ChannelConveneRequest
;
358 static int ett_t124_ChannelConveneConfirm
;
359 static int ett_t124_ChannelDisbandRequest
;
360 static int ett_t124_ChannelDisbandIndication
;
361 static int ett_t124_ChannelAdmitRequest
;
362 static int ett_t124_ChannelAdmitIndication
;
363 static int ett_t124_ChannelExpelRequest
;
364 static int ett_t124_ChannelExpelIndication
;
365 static int ett_t124_SendDataRequest
;
366 static int ett_t124_SendDataIndication
;
367 static int ett_t124_UniformSendDataRequest
;
368 static int ett_t124_UniformSendDataIndication
;
369 static int ett_t124_TokenGrabRequest
;
370 static int ett_t124_TokenGrabConfirm
;
371 static int ett_t124_TokenInhibitRequest
;
372 static int ett_t124_TokenInhibitConfirm
;
373 static int ett_t124_TokenGiveRequest
;
374 static int ett_t124_TokenGiveIndication
;
375 static int ett_t124_TokenGiveResponse
;
376 static int ett_t124_TokenGiveConfirm
;
377 static int ett_t124_TokenPleaseRequest
;
378 static int ett_t124_TokenPleaseIndication
;
379 static int ett_t124_TokenReleaseRequest
;
380 static int ett_t124_TokenReleaseConfirm
;
381 static int ett_t124_TokenTestRequest
;
382 static int ett_t124_TokenTestConfirm
;
383 static int ett_t124_DomainMCSPDU
;
388 dissect_t124_DynamicChannelID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
389 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
390 1001U, 65535U, NULL
, false);
398 dissect_t124_UserID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
399 offset
= dissect_t124_DynamicChannelID(tvb
, offset
, actx
, tree
, hf_index
);
407 dissect_t124_H221NonStandardIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
409 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
410 4, 255, false, (tvbuff_t
**)&actx
->private_data
);
421 dissect_t124_T_object(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
422 offset
= dissect_per_object_identifier_str(tvb
, offset
, actx
, tree
, hf_index
, &actx
->external
.direct_reference
);
428 static const value_string t124_Key_vals
[] = {
430 { 1, "h221NonStandard" },
434 static const per_choice_t Key_choice
[] = {
435 { 0, &hf_t124_object
, ASN1_NO_EXTENSIONS
, dissect_t124_T_object
},
436 { 1, &hf_t124_h221NonStandard
, ASN1_NO_EXTENSIONS
, dissect_t124_H221NonStandardIdentifier
},
441 dissect_t124_Key(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
442 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
443 ett_t124_Key
, Key_choice
,
452 dissect_t124_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
453 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
454 NO_BOUND
, NO_BOUND
, false, NULL
);
460 static const per_sequence_t NonStandardParameter_sequence
[] = {
461 { &hf_t124_key
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Key
},
462 { &hf_t124_data
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_OCTET_STRING
},
467 dissect_t124_NonStandardParameter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
468 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
469 ett_t124_NonStandardParameter
, NonStandardParameter_sequence
);
477 dissect_t124_TextString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
478 offset
= dissect_per_BMPString(tvb
, offset
, actx
, tree
, hf_index
,
487 dissect_t124_SimpleTextString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
488 offset
= dissect_per_BMPString(tvb
, offset
, actx
, tree
, hf_index
,
497 dissect_t124_SimpleNumericString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
498 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
499 1, 255, false, "0123456789", 10,
508 dissect_t124_DiallingString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
509 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
510 1, 16, false, "0123456789", 10,
519 dissect_t124_SubAddressString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
520 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
521 1, 40, false, "0123456789", 10,
530 dissect_t124_ExtraDiallingString(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
531 offset
= dissect_per_size_constrained_type(tvb
, offset
, actx
, tree
, hf_index
, dissect_t124_TextString
,
532 "TextString", 1, 255, false);
540 dissect_t124_T_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
541 tvbuff_t
*next_tvb
= NULL
;
542 tvbuff_t
*t124NSIdentifier
= (tvbuff_t
*)actx
->private_data
;
545 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
546 NO_BOUND
, NO_BOUND
, false, &next_tvb
);
549 if(next_tvb
&& t124NSIdentifier
) {
551 ns
= tvb_get_string_enc(actx
->pinfo
->pool
, t124NSIdentifier
, 0, tvb_reported_length(t124NSIdentifier
), ENC_ASCII
|ENC_NA
);
553 dissector_try_string_with_data(t124_ns_dissector_table
, ns
, next_tvb
, actx
->pinfo
, top_tree
, false, NULL
);
562 static const per_sequence_t UserData_item_sequence
[] = {
563 { &hf_t124_key
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Key
},
564 { &hf_t124_value
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_t124_T_value
},
569 dissect_t124_UserData_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
570 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
571 ett_t124_UserData_item
, UserData_item_sequence
);
577 static const per_sequence_t UserData_set_of
[1] = {
578 { &hf_t124_UserData_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserData_item
},
582 dissect_t124_UserData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
583 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
584 ett_t124_UserData
, UserData_set_of
);
590 static const per_sequence_t Password_sequence
[] = {
591 { &hf_t124_numeric
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_SimpleNumericString
},
592 { &hf_t124_text
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SimpleTextString
},
593 { &hf_t124_unicodeText
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
598 dissect_t124_Password(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
599 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
600 ett_t124_Password
, Password_sequence
);
606 static const value_string t124_PasswordSelector_vals
[] = {
609 { 2, "unicodeText" },
613 static const per_choice_t PasswordSelector_choice
[] = {
614 { 0, &hf_t124_numeric
, ASN1_EXTENSION_ROOT
, dissect_t124_SimpleNumericString
},
615 { 1, &hf_t124_text
, ASN1_EXTENSION_ROOT
, dissect_t124_SimpleTextString
},
616 { 2, &hf_t124_unicodeText
, ASN1_NOT_EXTENSION_ROOT
, dissect_t124_TextString
},
621 dissect_t124_PasswordSelector(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
622 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
623 ett_t124_PasswordSelector
, PasswordSelector_choice
,
630 static const value_string t124_ChallengeResponseItem_vals
[] = {
631 { 0, "passwordString" },
632 { 1, "responseData" },
636 static const per_choice_t ChallengeResponseItem_choice
[] = {
637 { 0, &hf_t124_passwordString
, ASN1_EXTENSION_ROOT
, dissect_t124_PasswordSelector
},
638 { 1, &hf_t124_responseData
, ASN1_EXTENSION_ROOT
, dissect_t124_UserData
},
643 dissect_t124_ChallengeResponseItem(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
644 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
645 ett_t124_ChallengeResponseItem
, ChallengeResponseItem_choice
,
654 dissect_t124_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
655 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
661 static const value_string t124_ChallengeResponseAlgorithm_vals
[] = {
662 { 0, "passwordInTheClear" },
663 { 1, "nonStandardAlgorithm" },
667 static const per_choice_t ChallengeResponseAlgorithm_choice
[] = {
668 { 0, &hf_t124_passwordInTheClear
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
669 { 1, &hf_t124_nonStandardAlgorithm
, ASN1_EXTENSION_ROOT
, dissect_t124_NonStandardParameter
},
674 dissect_t124_ChallengeResponseAlgorithm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
675 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
676 ett_t124_ChallengeResponseAlgorithm
, ChallengeResponseAlgorithm_choice
,
683 static const per_sequence_t ChallengeItem_sequence
[] = {
684 { &hf_t124_responseAlgorithm
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ChallengeResponseAlgorithm
},
685 { &hf_t124_challengeData
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_UserData
},
690 dissect_t124_ChallengeItem(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
691 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
692 ett_t124_ChallengeItem
, ChallengeItem_sequence
);
700 dissect_t124_INTEGER(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
701 offset
= dissect_per_integer(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
707 static const per_sequence_t SET_OF_ChallengeItem_set_of
[1] = {
708 { &hf_t124_challengeSet_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChallengeItem
},
712 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_
) {
713 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
714 ett_t124_SET_OF_ChallengeItem
, SET_OF_ChallengeItem_set_of
);
720 static const per_sequence_t ChallengeRequest_sequence
[] = {
721 { &hf_t124_challengeTag
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER
},
722 { &hf_t124_challengeSet
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChallengeItem
},
727 dissect_t124_ChallengeRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
728 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
729 ett_t124_ChallengeRequest
, ChallengeRequest_sequence
);
735 static const per_sequence_t ChallengeResponse_sequence
[] = {
736 { &hf_t124_challengeTag
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER
},
737 { &hf_t124_responseAlgorithm
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ChallengeResponseAlgorithm
},
738 { &hf_t124_responseItem
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ChallengeResponseItem
},
743 dissect_t124_ChallengeResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
744 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
745 ett_t124_ChallengeResponse
, ChallengeResponse_sequence
);
751 static const per_sequence_t T_challengeRequestResponse_sequence
[] = {
752 { &hf_t124_challengeRequest
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ChallengeRequest
},
753 { &hf_t124_challengeResponse
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ChallengeResponse
},
758 dissect_t124_T_challengeRequestResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
759 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
760 ett_t124_T_challengeRequestResponse
, T_challengeRequestResponse_sequence
);
766 static const value_string t124_PasswordChallengeRequestResponse_vals
[] = {
767 { 0, "passwordInTheClear" },
768 { 1, "challengeRequestResponse" },
772 static const per_choice_t PasswordChallengeRequestResponse_choice
[] = {
773 { 0, &hf_t124_passwordInTheClear_01
, ASN1_EXTENSION_ROOT
, dissect_t124_PasswordSelector
},
774 { 1, &hf_t124_challengeRequestResponse
, ASN1_EXTENSION_ROOT
, dissect_t124_T_challengeRequestResponse
},
779 dissect_t124_PasswordChallengeRequestResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
780 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
781 ett_t124_PasswordChallengeRequestResponse
, PasswordChallengeRequestResponse_choice
,
788 static const per_sequence_t ConferenceName_sequence
[] = {
789 { &hf_t124_numeric
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_SimpleNumericString
},
790 { &hf_t124_text
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SimpleTextString
},
791 { &hf_t124_unicodeText
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
796 dissect_t124_ConferenceName(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_ConferenceName
, ConferenceName_sequence
);
804 static const value_string t124_ConferenceNameSelector_vals
[] = {
807 { 2, "unicodeText" },
811 static const per_choice_t ConferenceNameSelector_choice
[] = {
812 { 0, &hf_t124_numeric
, ASN1_EXTENSION_ROOT
, dissect_t124_SimpleNumericString
},
813 { 1, &hf_t124_text
, ASN1_EXTENSION_ROOT
, dissect_t124_SimpleTextString
},
814 { 2, &hf_t124_unicodeText
, ASN1_NOT_EXTENSION_ROOT
, dissect_t124_TextString
},
819 dissect_t124_ConferenceNameSelector(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
820 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
821 ett_t124_ConferenceNameSelector
, ConferenceNameSelector_choice
,
830 dissect_t124_ConferenceNameModifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
831 offset
= dissect_t124_SimpleNumericString(tvb
, offset
, actx
, tree
, hf_index
);
837 static const value_string t124_Privilege_vals
[] = {
848 dissect_t124_Privilege(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
849 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
850 5, NULL
, true, 0, NULL
);
856 static const value_string t124_TerminationMethod_vals
[] = {
864 dissect_t124_TerminationMethod(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
865 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
866 2, NULL
, true, 0, NULL
);
872 static const value_string t124_ConferencePriorityScheme_vals
[] = {
873 { 0, "nonStandardScheme" },
877 static const per_choice_t ConferencePriorityScheme_choice
[] = {
878 { 0, &hf_t124_nonStandardScheme
, ASN1_EXTENSION_ROOT
, dissect_t124_NonStandardParameter
},
883 dissect_t124_ConferencePriorityScheme(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
884 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
885 ett_t124_ConferencePriorityScheme
, ConferencePriorityScheme_choice
,
894 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_
) {
895 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
896 0U, 65535U, NULL
, false);
902 static const per_sequence_t ConferencePriority_sequence
[] = {
903 { &hf_t124_priority
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER_0_65535
},
904 { &hf_t124_scheme
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferencePriorityScheme
},
909 dissect_t124_ConferencePriority(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
910 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
911 ett_t124_ConferencePriority
, ConferencePriority_sequence
);
917 static const value_string t124_NodeCategory_vals
[] = {
918 { 0, "conventional" },
921 { 3, "nonStandardCategory" },
925 static const per_choice_t NodeCategory_choice
[] = {
926 { 0, &hf_t124_conventional
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
927 { 1, &hf_t124_counted
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
928 { 2, &hf_t124_anonymous
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
929 { 3, &hf_t124_nonStandardCategory
, ASN1_EXTENSION_ROOT
, dissect_t124_NonStandardParameter
},
934 dissect_t124_NodeCategory(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
935 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
936 ett_t124_NodeCategory
, NodeCategory_choice
,
943 static const value_string t124_ConferenceMode_vals
[] = {
944 { 0, "conventional-only" },
945 { 1, "counted-only" },
946 { 2, "anonymous-only" },
947 { 3, "conventional-control" },
948 { 4, "unrestricted-mode" },
949 { 5, "non-standard-mode" },
953 static const per_choice_t ConferenceMode_choice
[] = {
954 { 0, &hf_t124_conventional_only
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
955 { 1, &hf_t124_counted_only
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
956 { 2, &hf_t124_anonymous_only
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
957 { 3, &hf_t124_conventional_control
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
958 { 4, &hf_t124_unrestricted_mode
, ASN1_EXTENSION_ROOT
, dissect_t124_NULL
},
959 { 5, &hf_t124_non_standard_mode
, ASN1_EXTENSION_ROOT
, dissect_t124_NonStandardParameter
},
964 dissect_t124_ConferenceMode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
965 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
966 ett_t124_ConferenceMode
, ConferenceMode_choice
,
975 dissect_t124_BOOLEAN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
976 offset
= dissect_per_boolean(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
982 static const per_sequence_t T_transferModes_sequence
[] = {
983 { &hf_t124_speech
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
984 { &hf_t124_voice_band
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
985 { &hf_t124_digital_56k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
986 { &hf_t124_digital_64k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
987 { &hf_t124_digital_128k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
988 { &hf_t124_digital_192k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
989 { &hf_t124_digital_256k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
990 { &hf_t124_digital_320k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
991 { &hf_t124_digital_384k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
992 { &hf_t124_digital_512k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
993 { &hf_t124_digital_768k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
994 { &hf_t124_digital_1152k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
995 { &hf_t124_digital_1472k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
996 { &hf_t124_digital_1536k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
997 { &hf_t124_digital_1920k
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
998 { &hf_t124_packet_mode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
999 { &hf_t124_frame_mode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1000 { &hf_t124_atm
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1001 { NULL
, 0, 0, NULL
}
1005 dissect_t124_T_transferModes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1006 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1007 ett_t124_T_transferModes
, T_transferModes_sequence
);
1013 static const per_sequence_t T_highLayerCompatibility_sequence
[] = {
1014 { &hf_t124_telephony3kHz
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1015 { &hf_t124_telephony7kHz
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1016 { &hf_t124_videotelephony
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1017 { &hf_t124_videoconference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1018 { &hf_t124_audiographic
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1019 { &hf_t124_audiovisual
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1020 { &hf_t124_multimedia
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1021 { NULL
, 0, 0, NULL
}
1025 dissect_t124_T_highLayerCompatibility(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1026 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1027 ett_t124_T_highLayerCompatibility
, T_highLayerCompatibility_sequence
);
1033 static const per_sequence_t T_aggregatedChannel_sequence
[] = {
1034 { &hf_t124_transferModes
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_T_transferModes
},
1035 { &hf_t124_internationalNumber
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_DiallingString
},
1036 { &hf_t124_subAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SubAddressString
},
1037 { &hf_t124_extraDialling
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ExtraDiallingString
},
1038 { &hf_t124_highLayerCompatibility
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_T_highLayerCompatibility
},
1039 { NULL
, 0, 0, NULL
}
1043 dissect_t124_T_aggregatedChannel(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_aggregatedChannel
, T_aggregatedChannel_sequence
);
1053 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_
) {
1054 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1055 1, 20, false, NULL
);
1061 static const per_sequence_t T_transportConnection_sequence
[] = {
1062 { &hf_t124_nsapAddress
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_OCTET_STRING_SIZE_1_20
},
1063 { &hf_t124_transportSelector
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_t124_OCTET_STRING
},
1064 { NULL
, 0, 0, NULL
}
1068 dissect_t124_T_transportConnection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1069 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1070 ett_t124_T_transportConnection
, T_transportConnection_sequence
);
1076 static const value_string t124_NetworkAddress_item_vals
[] = {
1077 { 0, "aggregatedChannel" },
1078 { 1, "transportConnection" },
1079 { 2, "nonStandard" },
1083 static const per_choice_t NetworkAddress_item_choice
[] = {
1084 { 0, &hf_t124_aggregatedChannel
, ASN1_EXTENSION_ROOT
, dissect_t124_T_aggregatedChannel
},
1085 { 1, &hf_t124_transportConnection
, ASN1_EXTENSION_ROOT
, dissect_t124_T_transportConnection
},
1086 { 2, &hf_t124_nonStandard
, ASN1_EXTENSION_ROOT
, dissect_t124_NonStandardParameter
},
1087 { 0, NULL
, 0, NULL
}
1091 dissect_t124_NetworkAddress_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1092 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1093 ett_t124_NetworkAddress_item
, NetworkAddress_item_choice
,
1100 static const per_sequence_t NetworkAddress_sequence_of
[1] = {
1101 { &hf_t124_NetworkAddress_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_NetworkAddress_item
},
1105 dissect_t124_NetworkAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1106 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1107 ett_t124_NetworkAddress
, NetworkAddress_sequence_of
,
1114 static const value_string t124_NodeType_vals
[] = {
1116 { 1, "multiportTerminal" },
1123 dissect_t124_NodeType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1124 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1125 3, NULL
, true, 0, NULL
);
1133 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_
) {
1134 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1135 0U, 4294967295U, NULL
, false);
1141 static const value_string t124_AsymmetryIndicator_vals
[] = {
1142 { 0, "callingNode" },
1143 { 1, "calledNode" },
1148 static const per_choice_t AsymmetryIndicator_choice
[] = {
1149 { 0, &hf_t124_callingNode
, ASN1_NO_EXTENSIONS
, dissect_t124_NULL
},
1150 { 1, &hf_t124_calledNode
, ASN1_NO_EXTENSIONS
, dissect_t124_NULL
},
1151 { 2, &hf_t124_unknown
, ASN1_NO_EXTENSIONS
, dissect_t124_INTEGER_0_4294967295
},
1152 { 0, NULL
, 0, NULL
}
1156 dissect_t124_AsymmetryIndicator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1157 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1158 ett_t124_AsymmetryIndicator
, AsymmetryIndicator_choice
,
1165 static const per_sequence_t ConferenceDescriptor_sequence
[] = {
1166 { &hf_t124_conferenceName
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferenceName
},
1167 { &hf_t124_conferenceNameModifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceNameModifier
},
1168 { &hf_t124_conferenceDescription
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1169 { &hf_t124_lockedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1170 { &hf_t124_passwordInTheClearRequired
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1171 { &hf_t124_networkAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_NetworkAddress
},
1172 { &hf_t124_defaultConferenceFlag
, ASN1_NOT_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1173 { &hf_t124_conferenceMode
, ASN1_NOT_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferenceMode
},
1174 { NULL
, 0, 0, NULL
}
1178 dissect_t124_ConferenceDescriptor(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1179 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1180 ett_t124_ConferenceDescriptor
, ConferenceDescriptor_sequence
);
1186 static const per_sequence_t SET_OF_Privilege_set_of
[1] = {
1187 { &hf_t124_conductorPrivileges_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Privilege
},
1191 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_
) {
1192 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1193 ett_t124_SET_OF_Privilege
, SET_OF_Privilege_set_of
);
1199 static const per_sequence_t ConferenceCreateRequest_sequence
[] = {
1200 { &hf_t124_conferenceName
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferenceName
},
1201 { &hf_t124_convenerPassword
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_Password
},
1202 { &hf_t124_password
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_Password
},
1203 { &hf_t124_lockedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1204 { &hf_t124_listedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1205 { &hf_t124_conductibleConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1206 { &hf_t124_terminationMethod
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_TerminationMethod
},
1207 { &hf_t124_conductorPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1208 { &hf_t124_conductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1209 { &hf_t124_nonConductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1210 { &hf_t124_conferenceDescription
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1211 { &hf_t124_callerIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1212 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1213 { &hf_t124_conferencePriority
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferencePriority
},
1214 { &hf_t124_conferenceMode
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceMode
},
1215 { NULL
, 0, 0, NULL
}
1219 dissect_t124_ConferenceCreateRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1220 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1221 ett_t124_ConferenceCreateRequest
, ConferenceCreateRequest_sequence
);
1227 static const value_string t124_T_result_vals
[] = {
1229 { 1, "userRejected" },
1230 { 2, "resourcesNotAvailable" },
1231 { 3, "rejectedForSymmetryBreaking" },
1232 { 4, "lockedConferenceNotSupported" },
1238 dissect_t124_T_result(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1239 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1240 5, NULL
, true, 0, NULL
);
1246 static const per_sequence_t ConferenceCreateResponse_sequence
[] = {
1247 { &hf_t124_nodeID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_UserID
},
1248 { &hf_t124_tag
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER
},
1249 { &hf_t124_result
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_T_result
},
1250 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1251 { NULL
, 0, 0, NULL
}
1255 dissect_t124_ConferenceCreateResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1256 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1257 ett_t124_ConferenceCreateResponse
, ConferenceCreateResponse_sequence
);
1263 static const per_sequence_t ConferenceQueryRequest_sequence
[] = {
1264 { &hf_t124_nodeType
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_NodeType
},
1265 { &hf_t124_asymmetryIndicator
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_AsymmetryIndicator
},
1266 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1267 { NULL
, 0, 0, NULL
}
1271 dissect_t124_ConferenceQueryRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1272 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1273 ett_t124_ConferenceQueryRequest
, ConferenceQueryRequest_sequence
);
1279 static const per_sequence_t SET_OF_ConferenceDescriptor_set_of
[1] = {
1280 { &hf_t124_conferenceList_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferenceDescriptor
},
1284 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_
) {
1285 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1286 ett_t124_SET_OF_ConferenceDescriptor
, SET_OF_ConferenceDescriptor_set_of
);
1292 static const value_string t124_QueryResponseResult_vals
[] = {
1294 { 1, "userRejected" },
1300 dissect_t124_QueryResponseResult(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1301 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1302 2, NULL
, true, 0, NULL
);
1308 static const per_sequence_t ConferenceQueryResponse_sequence
[] = {
1309 { &hf_t124_nodeType
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_NodeType
},
1310 { &hf_t124_asymmetryIndicator
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_AsymmetryIndicator
},
1311 { &hf_t124_conferenceList
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ConferenceDescriptor
},
1312 { &hf_t124_queryResponseResult
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_QueryResponseResult
},
1313 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1314 { &hf_t124_waitForInvitationFlag
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_BOOLEAN
},
1315 { &hf_t124_noUnlistedConferenceFlag
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_BOOLEAN
},
1316 { NULL
, 0, 0, NULL
}
1320 dissect_t124_ConferenceQueryResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1321 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1322 ett_t124_ConferenceQueryResponse
, ConferenceQueryResponse_sequence
);
1328 static const per_sequence_t ConferenceJoinRequest_sequence
[] = {
1329 { &hf_t124_conferenceName_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceNameSelector
},
1330 { &hf_t124_conferenceNameModifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceNameModifier
},
1331 { &hf_t124_tag
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_INTEGER
},
1332 { &hf_t124_password_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_PasswordChallengeRequestResponse
},
1333 { &hf_t124_convenerPassword_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_PasswordSelector
},
1334 { &hf_t124_callerIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1335 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1336 { &hf_t124_nodeCategory
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_NodeCategory
},
1337 { NULL
, 0, 0, NULL
}
1341 dissect_t124_ConferenceJoinRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1342 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1343 ett_t124_ConferenceJoinRequest
, ConferenceJoinRequest_sequence
);
1349 static const value_string t124_JoinResponseResult_vals
[] = {
1351 { 1, "userRejected" },
1352 { 2, "invalidConference" },
1353 { 3, "invalidPassword" },
1354 { 4, "invalidConvenerPassword" },
1355 { 5, "challengeResponseRequired" },
1356 { 6, "invalidChallengeResponse" },
1362 dissect_t124_JoinResponseResult(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1363 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1364 7, NULL
, true, 0, NULL
);
1370 static const per_sequence_t ConferenceJoinResponse_sequence
[] = {
1371 { &hf_t124_nodeID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserID
},
1372 { &hf_t124_topNodeID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_UserID
},
1373 { &hf_t124_tag
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER
},
1374 { &hf_t124_conferenceNameAlias
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceNameSelector
},
1375 { &hf_t124_passwordInTheClearRequired
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1376 { &hf_t124_lockedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1377 { &hf_t124_listedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1378 { &hf_t124_conductibleConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1379 { &hf_t124_terminationMethod
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_TerminationMethod
},
1380 { &hf_t124_conductorPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1381 { &hf_t124_conductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1382 { &hf_t124_nonConductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1383 { &hf_t124_conferenceDescription
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1384 { &hf_t124_password_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_PasswordChallengeRequestResponse
},
1385 { &hf_t124_joinResponseResult
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_JoinResponseResult
},
1386 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1387 { &hf_t124_nodeCategory
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_NodeCategory
},
1388 { &hf_t124_conferenceMode
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceMode
},
1389 { NULL
, 0, 0, NULL
}
1393 dissect_t124_ConferenceJoinResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1394 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1395 ett_t124_ConferenceJoinResponse
, ConferenceJoinResponse_sequence
);
1401 static const per_sequence_t ConferenceInviteRequest_sequence
[] = {
1402 { &hf_t124_conferenceName
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_ConferenceName
},
1403 { &hf_t124_nodeID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_UserID
},
1404 { &hf_t124_topNodeID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_UserID
},
1405 { &hf_t124_tag
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER
},
1406 { &hf_t124_passwordInTheClearRequired
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1407 { &hf_t124_lockedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1408 { &hf_t124_listedConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1409 { &hf_t124_conductibleConference
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1410 { &hf_t124_terminationMethod
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_TerminationMethod
},
1411 { &hf_t124_conductorPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1412 { &hf_t124_conductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1413 { &hf_t124_nonConductedPrivileges
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_SET_OF_Privilege
},
1414 { &hf_t124_conferenceDescription
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1415 { &hf_t124_callerIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_TextString
},
1416 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1417 { &hf_t124_conferencePriority
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferencePriority
},
1418 { &hf_t124_nodeCategory
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_NodeCategory
},
1419 { &hf_t124_conferenceMode
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_ConferenceMode
},
1420 { NULL
, 0, 0, NULL
}
1424 dissect_t124_ConferenceInviteRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1425 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1426 ett_t124_ConferenceInviteRequest
, ConferenceInviteRequest_sequence
);
1432 static const value_string t124_InviteResponseResult_vals
[] = {
1434 { 1, "userRejected" },
1440 dissect_t124_InviteResponseResult(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1441 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1442 2, NULL
, true, 0, NULL
);
1448 static const per_sequence_t ConferenceInviteResponse_sequence
[] = {
1449 { &hf_t124_inviteResponseResult
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_t124_InviteResponseResult
},
1450 { &hf_t124_userData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_t124_UserData
},
1451 { NULL
, 0, 0, NULL
}
1455 dissect_t124_ConferenceInviteResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1456 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1457 ett_t124_ConferenceInviteResponse
, ConferenceInviteResponse_sequence
);
1465 dissect_t124_T_connectPDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1466 tvbuff_t
*next_tvb
= NULL
;
1467 proto_tree
*next_tree
= NULL
;
1470 old_offset
= offset
;
1471 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1472 NO_BOUND
, NO_BOUND
, false, &next_tvb
);
1475 /* "2a -> ConnectData::connectPDU length = 42 bytes */
1476 /* This length MUST be ignored by the client." */
1478 /* Not sure why - but lets ignore the length. */
1479 /* We assume the OCTET STRING is all of the remaining bytes */
1481 if(tvb_reported_length(next_tvb
) == 42) {
1482 /* this is perhaps a naive ... */
1483 next_tvb
= tvb_new_subset_remaining(tvb
, (old_offset
>>3)+1);
1486 next_tree
= proto_item_add_subtree(actx
->created_item
, ett_t124_connectGCCPDU
);
1488 dissect_t124_ConnectGCCPDU(next_tvb
, 0, actx
, next_tree
, hf_t124_connectGCCPDU
);
1496 static const per_sequence_t ConnectData_sequence
[] = {
1497 { &hf_t124_t124Identifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Key
},
1498 { &hf_t124_connectPDU
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_T_connectPDU
},
1499 { NULL
, 0, 0, NULL
}
1503 dissect_t124_ConnectData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1504 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1505 ett_t124_ConnectData
, ConnectData_sequence
);
1511 const value_string t124_ConnectGCCPDU_vals
[] = {
1512 { 0, "conferenceCreateRequest" },
1513 { 1, "conferenceCreateResponse" },
1514 { 2, "conferenceQueryRequest" },
1515 { 3, "conferenceQueryResponse" },
1516 { 4, "conferenceJoinRequest" },
1517 { 5, "conferenceJoinResponse" },
1518 { 6, "conferenceInviteRequest" },
1519 { 7, "conferenceInviteResponse" },
1523 static const per_choice_t ConnectGCCPDU_choice
[] = {
1524 { 0, &hf_t124_conferenceCreateRequest
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceCreateRequest
},
1525 { 1, &hf_t124_conferenceCreateResponse
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceCreateResponse
},
1526 { 2, &hf_t124_conferenceQueryRequest
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceQueryRequest
},
1527 { 3, &hf_t124_conferenceQueryResponse
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceQueryResponse
},
1528 { 4, &hf_t124_conferenceJoinRequest
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceJoinRequest
},
1529 { 5, &hf_t124_conferenceJoinResponse
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceJoinResponse
},
1530 { 6, &hf_t124_conferenceInviteRequest
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceInviteRequest
},
1531 { 7, &hf_t124_conferenceInviteResponse
, ASN1_EXTENSION_ROOT
, dissect_t124_ConferenceInviteResponse
},
1532 { 0, NULL
, 0, NULL
}
1536 dissect_t124_ConnectGCCPDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1537 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1538 ett_t124_ConnectGCCPDU
, ConnectGCCPDU_choice
,
1547 dissect_t124_ChannelId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1549 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1550 0U, 65535U, &channelId
, false);
1553 if(hf_index
== hf_t124_channelId_03
)
1554 col_append_fstr(actx
->pinfo
->cinfo
, COL_INFO
, "%d", channelId
);
1564 dissect_t124_StaticChannelId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1565 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1566 1U, 1000U, NULL
, false);
1574 dissect_t124_DynamicChannelId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1575 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1576 1001U, 65535U, NULL
, false);
1584 dissect_t124_UserId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1585 offset
= dissect_t124_DynamicChannelId(tvb
, offset
, actx
, tree
, hf_index
);
1593 dissect_t124_PrivateChannelId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1594 offset
= dissect_t124_DynamicChannelId(tvb
, offset
, actx
, tree
, hf_index
);
1602 dissect_t124_AssignedChannelId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1603 offset
= dissect_t124_DynamicChannelId(tvb
, offset
, actx
, tree
, hf_index
);
1611 dissect_t124_TokenId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1612 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1613 1U, 65535U, NULL
, false);
1619 static const value_string t124_TokenStatus_vals
[] = {
1621 { 1, "selfGrabbed" },
1622 { 2, "otherGrabbed" },
1623 { 3, "selfInhibited" },
1624 { 4, "otherInhibited" },
1625 { 5, "selfRecipient" },
1626 { 6, "selfGiving" },
1627 { 7, "otherGiving" },
1633 dissect_t124_TokenStatus(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1634 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1635 8, NULL
, false, 0, NULL
);
1641 static const value_string t124_DataPriority_vals
[] = {
1651 dissect_t124_DataPriority(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1652 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1653 4, NULL
, false, 0, NULL
);
1659 static int * const Segmentation_bits
[] = {
1660 &hf_t124_Segmentation_begin
,
1661 &hf_t124_Segmentation_end
,
1666 dissect_t124_Segmentation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1667 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
1668 2, 2, false, Segmentation_bits
, 2, NULL
, NULL
);
1676 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_
) {
1677 offset
= dissect_per_constrained_integer_64b(tvb
, offset
, actx
, tree
, hf_index
,
1678 0U, NO_BOUND
, NULL
, false);
1684 static const per_sequence_t PlumbDomainIndication_sequence
[] = {
1685 { &hf_t124_heightLimit
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER_0_MAX
},
1686 { NULL
, 0, 0, NULL
}
1690 dissect_t124_PlumbDomainIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1691 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1692 ett_t124_PlumbDomainIndication
, PlumbDomainIndication_sequence
);
1698 static const per_sequence_t ErectDomainRequest_sequence
[] = {
1699 { &hf_t124_subHeight
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER_0_MAX
},
1700 { &hf_t124_subInterval
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_INTEGER_0_MAX
},
1701 { NULL
, 0, 0, NULL
}
1705 dissect_t124_ErectDomainRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1706 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1707 ett_t124_ErectDomainRequest
, ErectDomainRequest_sequence
);
1713 static const per_sequence_t T_static_sequence
[] = {
1714 { &hf_t124_channelId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_StaticChannelId
},
1715 { NULL
, 0, 0, NULL
}
1719 dissect_t124_T_static(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1720 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1721 ett_t124_T_static
, T_static_sequence
);
1727 static const per_sequence_t T_userId_sequence
[] = {
1728 { &hf_t124_joined
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1729 { &hf_t124_userId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1730 { NULL
, 0, 0, NULL
}
1734 dissect_t124_T_userId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1735 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1736 ett_t124_T_userId
, T_userId_sequence
);
1742 static const per_sequence_t SET_OF_UserId_set_of
[1] = {
1743 { &hf_t124_admitted_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1747 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_
) {
1748 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1749 ett_t124_SET_OF_UserId
, SET_OF_UserId_set_of
);
1755 static const per_sequence_t T_private_sequence
[] = {
1756 { &hf_t124_joined
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_BOOLEAN
},
1757 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
1758 { &hf_t124_manager
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1759 { &hf_t124_admitted
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
1760 { NULL
, 0, 0, NULL
}
1764 dissect_t124_T_private(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1765 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1766 ett_t124_T_private
, T_private_sequence
);
1772 static const per_sequence_t T_assigned_sequence
[] = {
1773 { &hf_t124_channelId_02
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_AssignedChannelId
},
1774 { NULL
, 0, 0, NULL
}
1778 dissect_t124_T_assigned(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1779 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1780 ett_t124_T_assigned
, T_assigned_sequence
);
1786 static const value_string t124_ChannelAttributes_vals
[] = {
1794 static const per_choice_t ChannelAttributes_choice
[] = {
1795 { 0, &hf_t124_static
, ASN1_NO_EXTENSIONS
, dissect_t124_T_static
},
1796 { 1, &hf_t124_userId
, ASN1_NO_EXTENSIONS
, dissect_t124_T_userId
},
1797 { 2, &hf_t124_private
, ASN1_NO_EXTENSIONS
, dissect_t124_T_private
},
1798 { 3, &hf_t124_assigned
, ASN1_NO_EXTENSIONS
, dissect_t124_T_assigned
},
1799 { 0, NULL
, 0, NULL
}
1803 dissect_t124_ChannelAttributes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1804 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1805 ett_t124_ChannelAttributes
, ChannelAttributes_choice
,
1812 static const per_sequence_t SET_OF_ChannelAttributes_set_of
[1] = {
1813 { &hf_t124_mergeChannels_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelAttributes
},
1817 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_
) {
1818 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1819 ett_t124_SET_OF_ChannelAttributes
, SET_OF_ChannelAttributes_set_of
);
1825 static const per_sequence_t SET_OF_ChannelId_set_of
[1] = {
1826 { &hf_t124_purgeChannelIds_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
1830 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_
) {
1831 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1832 ett_t124_SET_OF_ChannelId
, SET_OF_ChannelId_set_of
);
1838 static const per_sequence_t MergeChannelsRequest_sequence
[] = {
1839 { &hf_t124_mergeChannels
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelAttributes
},
1840 { &hf_t124_purgeChannelIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelId
},
1841 { NULL
, 0, 0, NULL
}
1845 dissect_t124_MergeChannelsRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1846 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1847 ett_t124_MergeChannelsRequest
, MergeChannelsRequest_sequence
);
1853 static const per_sequence_t MergeChannelsConfirm_sequence
[] = {
1854 { &hf_t124_mergeChannels
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelAttributes
},
1855 { &hf_t124_purgeChannelIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelId
},
1856 { NULL
, 0, 0, NULL
}
1860 dissect_t124_MergeChannelsConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1861 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1862 ett_t124_MergeChannelsConfirm
, MergeChannelsConfirm_sequence
);
1868 static const per_sequence_t PurgeChannelsIndication_sequence
[] = {
1869 { &hf_t124_detachUserIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
1870 { &hf_t124_purgeChannelIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelId
},
1871 { NULL
, 0, 0, NULL
}
1875 dissect_t124_PurgeChannelsIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1876 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1877 ett_t124_PurgeChannelsIndication
, PurgeChannelsIndication_sequence
);
1883 static const per_sequence_t T_grabbed_sequence
[] = {
1884 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
1885 { &hf_t124_grabber
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1886 { NULL
, 0, 0, NULL
}
1890 dissect_t124_T_grabbed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1891 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1892 ett_t124_T_grabbed
, T_grabbed_sequence
);
1898 static const per_sequence_t T_inhibited_sequence
[] = {
1899 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
1900 { &hf_t124_inhibitors
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
1901 { NULL
, 0, 0, NULL
}
1905 dissect_t124_T_inhibited(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1906 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1907 ett_t124_T_inhibited
, T_inhibited_sequence
);
1913 static const per_sequence_t T_giving_sequence
[] = {
1914 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
1915 { &hf_t124_grabber
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1916 { &hf_t124_recipient
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1917 { NULL
, 0, 0, NULL
}
1921 dissect_t124_T_giving(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1922 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1923 ett_t124_T_giving
, T_giving_sequence
);
1929 static const per_sequence_t T_ungivable_sequence
[] = {
1930 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
1931 { &hf_t124_grabber
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1932 { NULL
, 0, 0, NULL
}
1936 dissect_t124_T_ungivable(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1937 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1938 ett_t124_T_ungivable
, T_ungivable_sequence
);
1944 static const per_sequence_t T_given_sequence
[] = {
1945 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
1946 { &hf_t124_recipient
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
1947 { NULL
, 0, 0, NULL
}
1951 dissect_t124_T_given(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1952 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1953 ett_t124_T_given
, T_given_sequence
);
1959 static const value_string t124_TokenAttributes_vals
[] = {
1968 static const per_choice_t TokenAttributes_choice
[] = {
1969 { 0, &hf_t124_grabbed
, ASN1_NO_EXTENSIONS
, dissect_t124_T_grabbed
},
1970 { 1, &hf_t124_inhibited
, ASN1_NO_EXTENSIONS
, dissect_t124_T_inhibited
},
1971 { 2, &hf_t124_giving
, ASN1_NO_EXTENSIONS
, dissect_t124_T_giving
},
1972 { 3, &hf_t124_ungivable
, ASN1_NO_EXTENSIONS
, dissect_t124_T_ungivable
},
1973 { 4, &hf_t124_given
, ASN1_NO_EXTENSIONS
, dissect_t124_T_given
},
1974 { 0, NULL
, 0, NULL
}
1978 dissect_t124_TokenAttributes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1979 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1980 ett_t124_TokenAttributes
, TokenAttributes_choice
,
1987 static const per_sequence_t SET_OF_TokenAttributes_set_of
[1] = {
1988 { &hf_t124_mergeTokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenAttributes
},
1992 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_
) {
1993 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
1994 ett_t124_SET_OF_TokenAttributes
, SET_OF_TokenAttributes_set_of
);
2000 static const per_sequence_t SET_OF_TokenId_set_of
[1] = {
2001 { &hf_t124_purgeTokenIds_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2005 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_
) {
2006 offset
= dissect_per_set_of(tvb
, offset
, actx
, tree
, hf_index
,
2007 ett_t124_SET_OF_TokenId
, SET_OF_TokenId_set_of
);
2013 static const per_sequence_t MergeTokensRequest_sequence
[] = {
2014 { &hf_t124_mergeTokens
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_TokenAttributes
},
2015 { &hf_t124_purgeTokenIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_TokenId
},
2016 { NULL
, 0, 0, NULL
}
2020 dissect_t124_MergeTokensRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2021 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2022 ett_t124_MergeTokensRequest
, MergeTokensRequest_sequence
);
2028 static const per_sequence_t MergeTokensConfirm_sequence
[] = {
2029 { &hf_t124_mergeTokens
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_TokenAttributes
},
2030 { &hf_t124_purgeTokenIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_TokenId
},
2031 { NULL
, 0, 0, NULL
}
2035 dissect_t124_MergeTokensConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2036 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2037 ett_t124_MergeTokensConfirm
, MergeTokensConfirm_sequence
);
2043 static const per_sequence_t PurgeTokensIndication_sequence
[] = {
2044 { &hf_t124_purgeTokenIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_TokenId
},
2045 { NULL
, 0, 0, NULL
}
2049 dissect_t124_PurgeTokensIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2050 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2051 ett_t124_PurgeTokensIndication
, PurgeTokensIndication_sequence
);
2057 static const value_string t124_Reason_vals
[] = {
2058 { 0, "rn-domain-disconnected" },
2059 { 1, "rn-provider-initiated" },
2060 { 2, "rn-token-purged" },
2061 { 3, "rn-user-requested" },
2062 { 4, "rn-channel-purged" },
2068 dissect_t124_Reason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2069 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2070 5, NULL
, false, 0, NULL
);
2076 static const per_sequence_t DisconnectProviderUltimatum_sequence
[] = {
2077 { &hf_t124_reason
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Reason
},
2078 { NULL
, 0, 0, NULL
}
2082 dissect_t124_DisconnectProviderUltimatum(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2083 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2084 ett_t124_DisconnectProviderUltimatum
, DisconnectProviderUltimatum_sequence
);
2090 static const value_string t124_Diagnostic_vals
[] = {
2091 { 0, "dc-inconsistent-merge" },
2092 { 1, "dc-forbidden-PDU-downward" },
2093 { 2, "dc-forbidden-PDU-upward" },
2094 { 3, "dc-invalid-BER-encoding" },
2095 { 4, "dc-invalid-PER-encoding" },
2096 { 5, "dc-misrouted-user" },
2097 { 6, "dc-unrequested-confirm" },
2098 { 7, "dc-wrong-transport-priority" },
2099 { 8, "dc-channel-id-conflict" },
2100 { 9, "dc-token-id-conflict" },
2101 { 10, "dc-not-user-id-channel" },
2102 { 11, "dc-too-many-channels" },
2103 { 12, "dc-too-many-tokens" },
2104 { 13, "dc-too-many-users" },
2110 dissect_t124_Diagnostic(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2111 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2112 14, NULL
, false, 0, NULL
);
2118 static const per_sequence_t RejectMCSPDUUltimatum_sequence
[] = {
2119 { &hf_t124_diagnostic
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Diagnostic
},
2120 { &hf_t124_initialOctets
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_OCTET_STRING
},
2121 { NULL
, 0, 0, NULL
}
2125 dissect_t124_RejectMCSPDUUltimatum(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2126 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2127 ett_t124_RejectMCSPDUUltimatum
, RejectMCSPDUUltimatum_sequence
);
2133 static const per_sequence_t AttachUserRequest_sequence
[] = {
2134 { NULL
, 0, 0, NULL
}
2138 dissect_t124_AttachUserRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2139 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2140 ett_t124_AttachUserRequest
, AttachUserRequest_sequence
);
2146 static const value_string t124_Result_vals
[] = {
2147 { 0, "rt-successful" },
2148 { 1, "rt-domain-merging" },
2149 { 2, "rt-domain-not-hierarchical" },
2150 { 3, "rt-no-such-channel" },
2151 { 4, "rt-no-such-domain" },
2152 { 5, "rt-no-such-user" },
2153 { 6, "rt-not-admitted" },
2154 { 7, "rt-other-user-id" },
2155 { 8, "rt-parameters-unacceptable" },
2156 { 9, "rt-token-not-available" },
2157 { 10, "rt-token-not-possessed" },
2158 { 11, "rt-too-many-channels" },
2159 { 12, "rt-too-many-tokens" },
2160 { 13, "rt-too-many-users" },
2161 { 14, "rt-unspecified-failure" },
2162 { 15, "rt-user-rejected" },
2168 dissect_t124_Result(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2169 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2170 16, NULL
, false, 0, NULL
);
2176 static const per_sequence_t AttachUserConfirm_sequence
[] = {
2177 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2178 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_t124_UserId
},
2179 { NULL
, 0, 0, NULL
}
2183 dissect_t124_AttachUserConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2184 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2185 ett_t124_AttachUserConfirm
, AttachUserConfirm_sequence
);
2191 static const per_sequence_t DetachUserRequest_sequence
[] = {
2192 { &hf_t124_reason
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Reason
},
2193 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2194 { NULL
, 0, 0, NULL
}
2198 dissect_t124_DetachUserRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2199 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2200 ett_t124_DetachUserRequest
, DetachUserRequest_sequence
);
2206 static const per_sequence_t DetachUserIndication_sequence
[] = {
2207 { &hf_t124_reason
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Reason
},
2208 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2209 { NULL
, 0, 0, NULL
}
2213 dissect_t124_DetachUserIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2214 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2215 ett_t124_DetachUserIndication
, DetachUserIndication_sequence
);
2221 static const per_sequence_t ChannelJoinRequest_sequence
[] = {
2222 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2223 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2224 { NULL
, 0, 0, NULL
}
2228 dissect_t124_ChannelJoinRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2229 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2230 ett_t124_ChannelJoinRequest
, ChannelJoinRequest_sequence
);
2236 static const per_sequence_t ChannelJoinConfirm_sequence
[] = {
2237 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2238 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2239 { &hf_t124_requested
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2240 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_t124_ChannelId
},
2241 { NULL
, 0, 0, NULL
}
2245 dissect_t124_ChannelJoinConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2246 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2247 ett_t124_ChannelJoinConfirm
, ChannelJoinConfirm_sequence
);
2253 static const per_sequence_t ChannelLeaveRequest_sequence
[] = {
2254 { &hf_t124_channelIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_ChannelId
},
2255 { NULL
, 0, 0, NULL
}
2259 dissect_t124_ChannelLeaveRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2260 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2261 ett_t124_ChannelLeaveRequest
, ChannelLeaveRequest_sequence
);
2267 static const per_sequence_t ChannelConveneRequest_sequence
[] = {
2268 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2269 { NULL
, 0, 0, NULL
}
2273 dissect_t124_ChannelConveneRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2274 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2275 ett_t124_ChannelConveneRequest
, ChannelConveneRequest_sequence
);
2281 static const per_sequence_t ChannelConveneConfirm_sequence
[] = {
2282 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2283 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2284 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_t124_PrivateChannelId
},
2285 { NULL
, 0, 0, NULL
}
2289 dissect_t124_ChannelConveneConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2290 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2291 ett_t124_ChannelConveneConfirm
, ChannelConveneConfirm_sequence
);
2297 static const per_sequence_t ChannelDisbandRequest_sequence
[] = {
2298 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2299 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2300 { NULL
, 0, 0, NULL
}
2304 dissect_t124_ChannelDisbandRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2305 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2306 ett_t124_ChannelDisbandRequest
, ChannelDisbandRequest_sequence
);
2312 static const per_sequence_t ChannelDisbandIndication_sequence
[] = {
2313 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2314 { NULL
, 0, 0, NULL
}
2318 dissect_t124_ChannelDisbandIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2319 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2320 ett_t124_ChannelDisbandIndication
, ChannelDisbandIndication_sequence
);
2326 static const per_sequence_t ChannelAdmitRequest_sequence
[] = {
2327 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2328 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2329 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2330 { NULL
, 0, 0, NULL
}
2334 dissect_t124_ChannelAdmitRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2335 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2336 ett_t124_ChannelAdmitRequest
, ChannelAdmitRequest_sequence
);
2342 static const per_sequence_t ChannelAdmitIndication_sequence
[] = {
2343 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2344 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2345 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2346 { NULL
, 0, 0, NULL
}
2350 dissect_t124_ChannelAdmitIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2351 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2352 ett_t124_ChannelAdmitIndication
, ChannelAdmitIndication_sequence
);
2358 static const per_sequence_t ChannelExpelRequest_sequence
[] = {
2359 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2360 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2361 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2362 { NULL
, 0, 0, NULL
}
2366 dissect_t124_ChannelExpelRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2367 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2368 ett_t124_ChannelExpelRequest
, ChannelExpelRequest_sequence
);
2374 static const per_sequence_t ChannelExpelIndication_sequence
[] = {
2375 { &hf_t124_channelId_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_PrivateChannelId
},
2376 { &hf_t124_userIds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_SET_OF_UserId
},
2377 { NULL
, 0, 0, NULL
}
2381 dissect_t124_ChannelExpelIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2382 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2383 ett_t124_ChannelExpelIndication
, ChannelExpelIndication_sequence
);
2391 dissect_t124_T_userData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2392 tvbuff_t
*next_tvb
= NULL
;
2394 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2395 NO_BOUND
, NO_BOUND
, false, &next_tvb
);
2400 dissector_try_uint_with_data(t124_sd_dissector_table
, channelId
, next_tvb
, actx
->pinfo
, top_tree
, false, NULL
);
2409 static const per_sequence_t SendDataRequest_sequence
[] = {
2410 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2411 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2412 { &hf_t124_dataPriority
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_DataPriority
},
2413 { &hf_t124_segmentation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Segmentation
},
2414 { &hf_t124_userData_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_T_userData
},
2415 { NULL
, 0, 0, NULL
}
2419 dissect_t124_SendDataRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2420 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2421 ett_t124_SendDataRequest
, SendDataRequest_sequence
);
2429 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_
) {
2430 tvbuff_t
*next_tvb
= NULL
;
2432 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2433 NO_BOUND
, NO_BOUND
, false, &next_tvb
);
2438 dissector_try_uint(t124_sd_dissector_table
, channelId
, next_tvb
, actx
->pinfo
, top_tree
);
2447 static const per_sequence_t SendDataIndication_sequence
[] = {
2448 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2449 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2450 { &hf_t124_dataPriority
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_DataPriority
},
2451 { &hf_t124_segmentation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Segmentation
},
2452 { &hf_t124_userData_02
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_T_userData_01
},
2453 { NULL
, 0, 0, NULL
}
2457 dissect_t124_SendDataIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2458 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2459 ett_t124_SendDataIndication
, SendDataIndication_sequence
);
2465 static const per_sequence_t UniformSendDataRequest_sequence
[] = {
2466 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2467 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2468 { &hf_t124_dataPriority
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_DataPriority
},
2469 { &hf_t124_segmentation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Segmentation
},
2470 { &hf_t124_userData_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_OCTET_STRING
},
2471 { NULL
, 0, 0, NULL
}
2475 dissect_t124_UniformSendDataRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2476 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2477 ett_t124_UniformSendDataRequest
, UniformSendDataRequest_sequence
);
2483 static const per_sequence_t UniformSendDataIndication_sequence
[] = {
2484 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2485 { &hf_t124_channelId_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_ChannelId
},
2486 { &hf_t124_dataPriority
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_DataPriority
},
2487 { &hf_t124_segmentation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Segmentation
},
2488 { &hf_t124_userData_03
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_OCTET_STRING
},
2489 { NULL
, 0, 0, NULL
}
2493 dissect_t124_UniformSendDataIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2494 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2495 ett_t124_UniformSendDataIndication
, UniformSendDataIndication_sequence
);
2501 static const per_sequence_t TokenGrabRequest_sequence
[] = {
2502 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2503 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2504 { NULL
, 0, 0, NULL
}
2508 dissect_t124_TokenGrabRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2509 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2510 ett_t124_TokenGrabRequest
, TokenGrabRequest_sequence
);
2516 static const per_sequence_t TokenGrabConfirm_sequence
[] = {
2517 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2518 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2519 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2520 { &hf_t124_tokenStatus
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenStatus
},
2521 { NULL
, 0, 0, NULL
}
2525 dissect_t124_TokenGrabConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2526 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2527 ett_t124_TokenGrabConfirm
, TokenGrabConfirm_sequence
);
2533 static const per_sequence_t TokenInhibitRequest_sequence
[] = {
2534 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2535 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2536 { NULL
, 0, 0, NULL
}
2540 dissect_t124_TokenInhibitRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2541 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2542 ett_t124_TokenInhibitRequest
, TokenInhibitRequest_sequence
);
2548 static const per_sequence_t TokenInhibitConfirm_sequence
[] = {
2549 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2550 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2551 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2552 { &hf_t124_tokenStatus
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenStatus
},
2553 { NULL
, 0, 0, NULL
}
2557 dissect_t124_TokenInhibitConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2558 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2559 ett_t124_TokenInhibitConfirm
, TokenInhibitConfirm_sequence
);
2565 static const per_sequence_t TokenGiveRequest_sequence
[] = {
2566 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2567 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2568 { &hf_t124_recipient
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2569 { NULL
, 0, 0, NULL
}
2573 dissect_t124_TokenGiveRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2574 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2575 ett_t124_TokenGiveRequest
, TokenGiveRequest_sequence
);
2581 static const per_sequence_t TokenGiveIndication_sequence
[] = {
2582 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2583 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2584 { &hf_t124_recipient
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2585 { NULL
, 0, 0, NULL
}
2589 dissect_t124_TokenGiveIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2590 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2591 ett_t124_TokenGiveIndication
, TokenGiveIndication_sequence
);
2597 static const per_sequence_t TokenGiveResponse_sequence
[] = {
2598 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2599 { &hf_t124_recipient
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2600 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2601 { NULL
, 0, 0, NULL
}
2605 dissect_t124_TokenGiveResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2606 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2607 ett_t124_TokenGiveResponse
, TokenGiveResponse_sequence
);
2613 static const per_sequence_t TokenGiveConfirm_sequence
[] = {
2614 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2615 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2616 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2617 { &hf_t124_tokenStatus
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenStatus
},
2618 { NULL
, 0, 0, NULL
}
2622 dissect_t124_TokenGiveConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2623 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2624 ett_t124_TokenGiveConfirm
, TokenGiveConfirm_sequence
);
2630 static const per_sequence_t TokenPleaseRequest_sequence
[] = {
2631 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2632 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2633 { NULL
, 0, 0, NULL
}
2637 dissect_t124_TokenPleaseRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2638 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2639 ett_t124_TokenPleaseRequest
, TokenPleaseRequest_sequence
);
2645 static const per_sequence_t TokenPleaseIndication_sequence
[] = {
2646 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2647 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2648 { NULL
, 0, 0, NULL
}
2652 dissect_t124_TokenPleaseIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2653 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2654 ett_t124_TokenPleaseIndication
, TokenPleaseIndication_sequence
);
2660 static const per_sequence_t TokenReleaseRequest_sequence
[] = {
2661 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2662 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2663 { NULL
, 0, 0, NULL
}
2667 dissect_t124_TokenReleaseRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2668 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2669 ett_t124_TokenReleaseRequest
, TokenReleaseRequest_sequence
);
2675 static const per_sequence_t TokenReleaseConfirm_sequence
[] = {
2676 { &hf_t124_result_01
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Result
},
2677 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2678 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2679 { &hf_t124_tokenStatus
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenStatus
},
2680 { NULL
, 0, 0, NULL
}
2684 dissect_t124_TokenReleaseConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2685 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2686 ett_t124_TokenReleaseConfirm
, TokenReleaseConfirm_sequence
);
2692 static const per_sequence_t TokenTestRequest_sequence
[] = {
2693 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2694 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2695 { NULL
, 0, 0, NULL
}
2699 dissect_t124_TokenTestRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2700 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2701 ett_t124_TokenTestRequest
, TokenTestRequest_sequence
);
2707 static const per_sequence_t TokenTestConfirm_sequence
[] = {
2708 { &hf_t124_initiator
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_UserId
},
2709 { &hf_t124_tokenId
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenId
},
2710 { &hf_t124_tokenStatus
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_TokenStatus
},
2711 { NULL
, 0, 0, NULL
}
2715 dissect_t124_TokenTestConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2716 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2717 ett_t124_TokenTestConfirm
, TokenTestConfirm_sequence
);
2723 static const value_string t124_DomainMCSPDU_vals
[] = {
2724 { 0, "plumbDomainIndication" },
2725 { 1, "erectDomainRequest" },
2726 { 2, "mergeChannelsRequest" },
2727 { 3, "mergeChannelsConfirm" },
2728 { 4, "purgeChannelsIndication" },
2729 { 5, "mergeTokensRequest" },
2730 { 6, "mergeTokensConfirm" },
2731 { 7, "purgeTokensIndication" },
2732 { 8, "disconnectProviderUltimatum" },
2733 { 9, "rejectMCSPDUUltimatum" },
2734 { 10, "attachUserRequest" },
2735 { 11, "attachUserConfirm" },
2736 { 12, "detachUserRequest" },
2737 { 13, "detachUserIndication" },
2738 { 14, "channelJoinRequest" },
2739 { 15, "channelJoinConfirm" },
2740 { 16, "channelLeaveRequest" },
2741 { 17, "channelConveneRequest" },
2742 { 18, "channelConveneConfirm" },
2743 { 19, "channelDisbandRequest" },
2744 { 20, "channelDisbandIndication" },
2745 { 21, "channelAdmitRequest" },
2746 { 22, "channelAdmitIndication" },
2747 { 23, "channelExpelRequest" },
2748 { 24, "channelExpelIndication" },
2749 { 25, "sendDataRequest" },
2750 { 26, "sendDataIndication" },
2751 { 27, "uniformSendDataRequest" },
2752 { 28, "uniformSendDataIndication" },
2753 { 29, "tokenGrabRequest" },
2754 { 30, "tokenGrabConfirm" },
2755 { 31, "tokenInhibitRequest" },
2756 { 32, "tokenInhibitConfirm" },
2757 { 33, "tokenGiveRequest" },
2758 { 34, "tokenGiveIndication" },
2759 { 35, "tokenGiveResponse" },
2760 { 36, "tokenGiveConfirm" },
2761 { 37, "tokenPleaseRequest" },
2762 { 38, "tokenPleaseIndication" },
2763 { 39, "tokenReleaseRequest" },
2764 { 40, "tokenReleaseConfirm" },
2765 { 41, "tokenTestRequest" },
2766 { 42, "tokenTestConfirm" },
2770 static const per_choice_t DomainMCSPDU_choice
[] = {
2771 { 0, &hf_t124_plumbDomainIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_PlumbDomainIndication
},
2772 { 1, &hf_t124_erectDomainRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ErectDomainRequest
},
2773 { 2, &hf_t124_mergeChannelsRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_MergeChannelsRequest
},
2774 { 3, &hf_t124_mergeChannelsConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_MergeChannelsConfirm
},
2775 { 4, &hf_t124_purgeChannelsIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_PurgeChannelsIndication
},
2776 { 5, &hf_t124_mergeTokensRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_MergeTokensRequest
},
2777 { 6, &hf_t124_mergeTokensConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_MergeTokensConfirm
},
2778 { 7, &hf_t124_purgeTokensIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_PurgeTokensIndication
},
2779 { 8, &hf_t124_disconnectProviderUltimatum
, ASN1_NO_EXTENSIONS
, dissect_t124_DisconnectProviderUltimatum
},
2780 { 9, &hf_t124_rejectMCSPDUUltimatum
, ASN1_NO_EXTENSIONS
, dissect_t124_RejectMCSPDUUltimatum
},
2781 { 10, &hf_t124_attachUserRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_AttachUserRequest
},
2782 { 11, &hf_t124_attachUserConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_AttachUserConfirm
},
2783 { 12, &hf_t124_detachUserRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_DetachUserRequest
},
2784 { 13, &hf_t124_detachUserIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_DetachUserIndication
},
2785 { 14, &hf_t124_channelJoinRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelJoinRequest
},
2786 { 15, &hf_t124_channelJoinConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelJoinConfirm
},
2787 { 16, &hf_t124_channelLeaveRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelLeaveRequest
},
2788 { 17, &hf_t124_channelConveneRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelConveneRequest
},
2789 { 18, &hf_t124_channelConveneConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelConveneConfirm
},
2790 { 19, &hf_t124_channelDisbandRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelDisbandRequest
},
2791 { 20, &hf_t124_channelDisbandIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelDisbandIndication
},
2792 { 21, &hf_t124_channelAdmitRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelAdmitRequest
},
2793 { 22, &hf_t124_channelAdmitIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelAdmitIndication
},
2794 { 23, &hf_t124_channelExpelRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelExpelRequest
},
2795 { 24, &hf_t124_channelExpelIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_ChannelExpelIndication
},
2796 { 25, &hf_t124_sendDataRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_SendDataRequest
},
2797 { 26, &hf_t124_sendDataIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_SendDataIndication
},
2798 { 27, &hf_t124_uniformSendDataRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_UniformSendDataRequest
},
2799 { 28, &hf_t124_uniformSendDataIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_UniformSendDataIndication
},
2800 { 29, &hf_t124_tokenGrabRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGrabRequest
},
2801 { 30, &hf_t124_tokenGrabConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGrabConfirm
},
2802 { 31, &hf_t124_tokenInhibitRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenInhibitRequest
},
2803 { 32, &hf_t124_tokenInhibitConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenInhibitConfirm
},
2804 { 33, &hf_t124_tokenGiveRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGiveRequest
},
2805 { 34, &hf_t124_tokenGiveIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGiveIndication
},
2806 { 35, &hf_t124_tokenGiveResponse
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGiveResponse
},
2807 { 36, &hf_t124_tokenGiveConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenGiveConfirm
},
2808 { 37, &hf_t124_tokenPleaseRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenPleaseRequest
},
2809 { 38, &hf_t124_tokenPleaseIndication
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenPleaseIndication
},
2810 { 39, &hf_t124_tokenReleaseRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenReleaseRequest
},
2811 { 40, &hf_t124_tokenReleaseConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenReleaseConfirm
},
2812 { 41, &hf_t124_tokenTestRequest
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenTestRequest
},
2813 { 42, &hf_t124_tokenTestConfirm
, ASN1_NO_EXTENSIONS
, dissect_t124_TokenTestConfirm
},
2814 { 0, NULL
, 0, NULL
}
2818 dissect_t124_DomainMCSPDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2819 int domainmcs_value
;
2821 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2822 ett_t124_DomainMCSPDU
, DomainMCSPDU_choice
,
2825 switch(domainmcs_value
) {
2826 case 25: /* sendDataRequest */
2827 case 26: /* sendDataIndication */
2828 case 27: /* uniformSendDataRequest */
2829 case 28: /* uniformSendDataIndication */
2833 col_prepend_fstr(actx
->pinfo
->cinfo
, COL_INFO
, "%s ",
2834 val_to_str_const(domainmcs_value
, t124_DomainMCSPDU_vals
, "Unknown"));
2843 static const per_sequence_t t124Heur_sequence
[] = {
2844 { &hf_t124_t124Identifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_t124_Key
},
2845 { NULL
, 0, 0, NULL
}
2849 register_t124_ns_dissector(const char *nsKey
, dissector_t dissector
, int proto
)
2851 dissector_handle_t dissector_handle
;
2853 dissector_handle
=create_dissector_handle(dissector
, proto
);
2854 dissector_add_string("t124.ns", nsKey
, dissector_handle
);
2857 void register_t124_sd_dissector(packet_info
*pinfo _U_
, uint32_t channelId_param
, dissector_t dissector
, int proto
)
2859 /* XXX: we should keep the sub-dissectors list per conversation
2860 as the same channels may be used.
2861 While we are just using RDP over T.124, then we can get away with it.
2864 dissector_handle_t dissector_handle
;
2866 dissector_handle
=create_dissector_handle(dissector
, proto
);
2867 dissector_add_uint("t124.sd", channelId_param
, dissector_handle
);
2871 uint32_t t124_get_last_channelId(void)
2876 void t124_set_top_tree(proto_tree
*tree
)
2881 int dissect_DomainMCSPDU_PDU(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
) {
2883 asn1_ctx_t asn1_ctx
;
2884 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2886 offset
= dissect_t124_DomainMCSPDU(tvb
, offset
, &asn1_ctx
, tree
, hf_t124_DomainMCSPDU_PDU
);
2887 offset
+= 7; offset
>>= 3;
2892 dissect_t124(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void *data _U_
)
2894 proto_item
*item
= NULL
;
2895 proto_tree
*tree
= NULL
;
2896 asn1_ctx_t asn1_ctx
;
2898 top_tree
= parent_tree
;
2900 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "T.124");
2901 col_clear(pinfo
->cinfo
, COL_INFO
);
2903 item
= proto_tree_add_item(parent_tree
, proto_t124
, tvb
, 0, tvb_captured_length(tvb
), ENC_NA
);
2904 tree
= proto_item_add_subtree(item
, ett_t124
);
2906 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2907 dissect_t124_ConnectData(tvb
, 0, &asn1_ctx
, tree
, hf_t124_ConnectData
);
2909 return tvb_captured_length(tvb
);
2913 dissect_t124_heur(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void *data
)
2915 asn1_ctx_t asn1_ctx
;
2916 volatile bool failed
= false;
2918 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2921 * We must catch all the "ran past the end of the packet" exceptions
2922 * here and, if we catch one, just return false. It's too painful
2923 * to have a version of dissect_per_sequence() that checks all
2924 * references to the tvbuff before making them and returning "no"
2925 * if they would fail.
2927 * We (ab)use hf_t124_connectGCCPDU here just to give a valid entry...
2930 (void) dissect_per_sequence(tvb
, 0, &asn1_ctx
, NULL
, hf_t124_connectGCCPDU
, -1, t124Heur_sequence
);
2931 } CATCH_BOUNDS_ERRORS
{
2935 if (!failed
&& ((asn1_ctx
.external
.direct_reference
!= NULL
) &&
2936 (strcmp(asn1_ctx
.external
.direct_reference
, "0.0.20.124.0.1") == 0))) {
2937 dissect_t124(tvb
, pinfo
, parent_tree
, data
);
2945 /*--- proto_register_t124 -------------------------------------------*/
2946 void proto_register_t124(void) {
2948 /* List of fields */
2949 static hf_register_info hf
[] = {
2950 { &hf_t124_ConnectData
,
2951 { "ConnectData", "t124.ConnectData",
2952 FT_NONE
, BASE_NONE
, NULL
, 0,
2954 { &hf_t124_connectGCCPDU
,
2955 { "connectGCCPDU", "t124.connectGCCPDU",
2956 FT_UINT32
, BASE_DEC
, VALS(t124_ConnectGCCPDU_vals
), 0,
2958 { &hf_t124_DomainMCSPDU_PDU
,
2959 { "DomainMCSPDU", "t124.DomainMCSPDU",
2960 FT_UINT32
, BASE_DEC
, VALS(t124_DomainMCSPDU_vals
), 0,
2963 { "object", "t124.object",
2964 FT_OID
, BASE_NONE
, NULL
, 0,
2966 { &hf_t124_h221NonStandard
,
2967 { "h221NonStandard", "t124.h221NonStandard",
2968 FT_BYTES
, BASE_NONE
, NULL
, 0,
2969 "H221NonStandardIdentifier", HFILL
}},
2971 { "key", "t124.key",
2972 FT_UINT32
, BASE_DEC
, VALS(t124_Key_vals
), 0,
2975 { "data", "t124.data",
2976 FT_BYTES
, BASE_NONE
, NULL
, 0,
2977 "OCTET_STRING", HFILL
}},
2978 { &hf_t124_UserData_item
,
2979 { "UserData item", "t124.UserData_item_element",
2980 FT_NONE
, BASE_NONE
, NULL
, 0,
2983 { "value", "t124.value",
2984 FT_BYTES
, BASE_NONE
, NULL
, 0,
2987 { "numeric", "t124.numeric",
2988 FT_STRING
, BASE_NONE
, NULL
, 0,
2989 "SimpleNumericString", HFILL
}},
2991 { "text", "t124.text",
2992 FT_STRING
, BASE_NONE
, NULL
, 0,
2993 "SimpleTextString", HFILL
}},
2994 { &hf_t124_unicodeText
,
2995 { "unicodeText", "t124.unicodeText",
2996 FT_STRING
, BASE_NONE
, NULL
, 0,
2997 "TextString", HFILL
}},
2998 { &hf_t124_passwordString
,
2999 { "passwordString", "t124.passwordString",
3000 FT_UINT32
, BASE_DEC
, VALS(t124_PasswordSelector_vals
), 0,
3001 "PasswordSelector", HFILL
}},
3002 { &hf_t124_responseData
,
3003 { "responseData", "t124.responseData",
3004 FT_UINT32
, BASE_DEC
, NULL
, 0,
3005 "UserData", HFILL
}},
3006 { &hf_t124_passwordInTheClear
,
3007 { "passwordInTheClear", "t124.passwordInTheClear_element",
3008 FT_NONE
, BASE_NONE
, NULL
, 0,
3010 { &hf_t124_nonStandardAlgorithm
,
3011 { "nonStandardAlgorithm", "t124.nonStandardAlgorithm_element",
3012 FT_NONE
, BASE_NONE
, NULL
, 0,
3013 "NonStandardParameter", HFILL
}},
3014 { &hf_t124_responseAlgorithm
,
3015 { "responseAlgorithm", "t124.responseAlgorithm",
3016 FT_UINT32
, BASE_DEC
, VALS(t124_ChallengeResponseAlgorithm_vals
), 0,
3017 "ChallengeResponseAlgorithm", HFILL
}},
3018 { &hf_t124_challengeData
,
3019 { "challengeData", "t124.challengeData",
3020 FT_UINT32
, BASE_DEC
, NULL
, 0,
3021 "UserData", HFILL
}},
3022 { &hf_t124_challengeTag
,
3023 { "challengeTag", "t124.challengeTag",
3024 FT_INT32
, BASE_DEC
, NULL
, 0,
3025 "INTEGER", HFILL
}},
3026 { &hf_t124_challengeSet
,
3027 { "challengeSet", "t124.challengeSet",
3028 FT_UINT32
, BASE_DEC
, NULL
, 0,
3029 "SET_OF_ChallengeItem", HFILL
}},
3030 { &hf_t124_challengeSet_item
,
3031 { "ChallengeItem", "t124.ChallengeItem_element",
3032 FT_NONE
, BASE_NONE
, NULL
, 0,
3034 { &hf_t124_responseItem
,
3035 { "responseItem", "t124.responseItem",
3036 FT_UINT32
, BASE_DEC
, VALS(t124_ChallengeResponseItem_vals
), 0,
3037 "ChallengeResponseItem", HFILL
}},
3038 { &hf_t124_passwordInTheClear_01
,
3039 { "passwordInTheClear", "t124.passwordInTheClear",
3040 FT_UINT32
, BASE_DEC
, VALS(t124_PasswordSelector_vals
), 0,
3041 "PasswordSelector", HFILL
}},
3042 { &hf_t124_challengeRequestResponse
,
3043 { "challengeRequestResponse", "t124.challengeRequestResponse_element",
3044 FT_NONE
, BASE_NONE
, NULL
, 0,
3046 { &hf_t124_challengeRequest
,
3047 { "challengeRequest", "t124.challengeRequest_element",
3048 FT_NONE
, BASE_NONE
, NULL
, 0,
3050 { &hf_t124_challengeResponse
,
3051 { "challengeResponse", "t124.challengeResponse_element",
3052 FT_NONE
, BASE_NONE
, NULL
, 0,
3054 { &hf_t124_nonStandardScheme
,
3055 { "nonStandardScheme", "t124.nonStandardScheme_element",
3056 FT_NONE
, BASE_NONE
, NULL
, 0,
3057 "NonStandardParameter", HFILL
}},
3058 { &hf_t124_priority
,
3059 { "priority", "t124.priority",
3060 FT_UINT32
, BASE_DEC
, NULL
, 0,
3061 "INTEGER_0_65535", HFILL
}},
3063 { "scheme", "t124.scheme",
3064 FT_UINT32
, BASE_DEC
, VALS(t124_ConferencePriorityScheme_vals
), 0,
3065 "ConferencePriorityScheme", HFILL
}},
3066 { &hf_t124_conventional
,
3067 { "conventional", "t124.conventional_element",
3068 FT_NONE
, BASE_NONE
, NULL
, 0,
3071 { "counted", "t124.counted_element",
3072 FT_NONE
, BASE_NONE
, NULL
, 0,
3074 { &hf_t124_anonymous
,
3075 { "anonymous", "t124.anonymous_element",
3076 FT_NONE
, BASE_NONE
, NULL
, 0,
3078 { &hf_t124_nonStandardCategory
,
3079 { "nonStandardCategory", "t124.nonStandardCategory_element",
3080 FT_NONE
, BASE_NONE
, NULL
, 0,
3081 "NonStandardParameter", HFILL
}},
3082 { &hf_t124_conventional_only
,
3083 { "conventional-only", "t124.conventional_only_element",
3084 FT_NONE
, BASE_NONE
, NULL
, 0,
3086 { &hf_t124_counted_only
,
3087 { "counted-only", "t124.counted_only_element",
3088 FT_NONE
, BASE_NONE
, NULL
, 0,
3090 { &hf_t124_anonymous_only
,
3091 { "anonymous-only", "t124.anonymous_only_element",
3092 FT_NONE
, BASE_NONE
, NULL
, 0,
3094 { &hf_t124_conventional_control
,
3095 { "conventional-control", "t124.conventional_control_element",
3096 FT_NONE
, BASE_NONE
, NULL
, 0,
3098 { &hf_t124_unrestricted_mode
,
3099 { "unrestricted-mode", "t124.unrestricted_mode_element",
3100 FT_NONE
, BASE_NONE
, NULL
, 0,
3102 { &hf_t124_non_standard_mode
,
3103 { "non-standard-mode", "t124.non_standard_mode_element",
3104 FT_NONE
, BASE_NONE
, NULL
, 0,
3105 "NonStandardParameter", HFILL
}},
3106 { &hf_t124_NetworkAddress_item
,
3107 { "NetworkAddress item", "t124.NetworkAddress_item",
3108 FT_UINT32
, BASE_DEC
, VALS(t124_NetworkAddress_item_vals
), 0,
3110 { &hf_t124_aggregatedChannel
,
3111 { "aggregatedChannel", "t124.aggregatedChannel_element",
3112 FT_NONE
, BASE_NONE
, NULL
, 0,
3114 { &hf_t124_transferModes
,
3115 { "transferModes", "t124.transferModes_element",
3116 FT_NONE
, BASE_NONE
, NULL
, 0,
3119 { "speech", "t124.speech",
3120 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3121 "BOOLEAN", HFILL
}},
3122 { &hf_t124_voice_band
,
3123 { "voice-band", "t124.voice_band",
3124 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3125 "BOOLEAN", HFILL
}},
3126 { &hf_t124_digital_56k
,
3127 { "digital-56k", "t124.digital_56k",
3128 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3129 "BOOLEAN", HFILL
}},
3130 { &hf_t124_digital_64k
,
3131 { "digital-64k", "t124.digital_64k",
3132 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3133 "BOOLEAN", HFILL
}},
3134 { &hf_t124_digital_128k
,
3135 { "digital-128k", "t124.digital_128k",
3136 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3137 "BOOLEAN", HFILL
}},
3138 { &hf_t124_digital_192k
,
3139 { "digital-192k", "t124.digital_192k",
3140 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3141 "BOOLEAN", HFILL
}},
3142 { &hf_t124_digital_256k
,
3143 { "digital-256k", "t124.digital_256k",
3144 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3145 "BOOLEAN", HFILL
}},
3146 { &hf_t124_digital_320k
,
3147 { "digital-320k", "t124.digital_320k",
3148 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3149 "BOOLEAN", HFILL
}},
3150 { &hf_t124_digital_384k
,
3151 { "digital-384k", "t124.digital_384k",
3152 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3153 "BOOLEAN", HFILL
}},
3154 { &hf_t124_digital_512k
,
3155 { "digital-512k", "t124.digital_512k",
3156 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3157 "BOOLEAN", HFILL
}},
3158 { &hf_t124_digital_768k
,
3159 { "digital-768k", "t124.digital_768k",
3160 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3161 "BOOLEAN", HFILL
}},
3162 { &hf_t124_digital_1152k
,
3163 { "digital-1152k", "t124.digital_1152k",
3164 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3165 "BOOLEAN", HFILL
}},
3166 { &hf_t124_digital_1472k
,
3167 { "digital-1472k", "t124.digital_1472k",
3168 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3169 "BOOLEAN", HFILL
}},
3170 { &hf_t124_digital_1536k
,
3171 { "digital-1536k", "t124.digital_1536k",
3172 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3173 "BOOLEAN", HFILL
}},
3174 { &hf_t124_digital_1920k
,
3175 { "digital-1920k", "t124.digital_1920k",
3176 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3177 "BOOLEAN", HFILL
}},
3178 { &hf_t124_packet_mode
,
3179 { "packet-mode", "t124.packet_mode",
3180 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3181 "BOOLEAN", HFILL
}},
3182 { &hf_t124_frame_mode
,
3183 { "frame-mode", "t124.frame_mode",
3184 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3185 "BOOLEAN", HFILL
}},
3187 { "atm", "t124.atm",
3188 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3189 "BOOLEAN", HFILL
}},
3190 { &hf_t124_internationalNumber
,
3191 { "internationalNumber", "t124.internationalNumber",
3192 FT_STRING
, BASE_NONE
, NULL
, 0,
3193 "DiallingString", HFILL
}},
3194 { &hf_t124_subAddress
,
3195 { "subAddress", "t124.subAddress",
3196 FT_STRING
, BASE_NONE
, NULL
, 0,
3197 "SubAddressString", HFILL
}},
3198 { &hf_t124_extraDialling
,
3199 { "extraDialling", "t124.extraDialling",
3200 FT_STRING
, BASE_NONE
, NULL
, 0,
3201 "ExtraDiallingString", HFILL
}},
3202 { &hf_t124_highLayerCompatibility
,
3203 { "highLayerCompatibility", "t124.highLayerCompatibility_element",
3204 FT_NONE
, BASE_NONE
, NULL
, 0,
3206 { &hf_t124_telephony3kHz
,
3207 { "telephony3kHz", "t124.telephony3kHz",
3208 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3209 "BOOLEAN", HFILL
}},
3210 { &hf_t124_telephony7kHz
,
3211 { "telephony7kHz", "t124.telephony7kHz",
3212 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3213 "BOOLEAN", HFILL
}},
3214 { &hf_t124_videotelephony
,
3215 { "videotelephony", "t124.videotelephony",
3216 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3217 "BOOLEAN", HFILL
}},
3218 { &hf_t124_videoconference
,
3219 { "videoconference", "t124.videoconference",
3220 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3221 "BOOLEAN", HFILL
}},
3222 { &hf_t124_audiographic
,
3223 { "audiographic", "t124.audiographic",
3224 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3225 "BOOLEAN", HFILL
}},
3226 { &hf_t124_audiovisual
,
3227 { "audiovisual", "t124.audiovisual",
3228 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3229 "BOOLEAN", HFILL
}},
3230 { &hf_t124_multimedia
,
3231 { "multimedia", "t124.multimedia",
3232 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3233 "BOOLEAN", HFILL
}},
3234 { &hf_t124_transportConnection
,
3235 { "transportConnection", "t124.transportConnection_element",
3236 FT_NONE
, BASE_NONE
, NULL
, 0,
3238 { &hf_t124_nsapAddress
,
3239 { "nsapAddress", "t124.nsapAddress",
3240 FT_BYTES
, BASE_NONE
, NULL
, 0,
3241 "OCTET_STRING_SIZE_1_20", HFILL
}},
3242 { &hf_t124_transportSelector
,
3243 { "transportSelector", "t124.transportSelector",
3244 FT_BYTES
, BASE_NONE
, NULL
, 0,
3245 "OCTET_STRING", HFILL
}},
3246 { &hf_t124_nonStandard
,
3247 { "nonStandard", "t124.nonStandard_element",
3248 FT_NONE
, BASE_NONE
, NULL
, 0,
3249 "NonStandardParameter", HFILL
}},
3250 { &hf_t124_callingNode
,
3251 { "callingNode", "t124.callingNode_element",
3252 FT_NONE
, BASE_NONE
, NULL
, 0,
3254 { &hf_t124_calledNode
,
3255 { "calledNode", "t124.calledNode_element",
3256 FT_NONE
, BASE_NONE
, NULL
, 0,
3259 { "unknown", "t124.unknown",
3260 FT_UINT32
, BASE_DEC
, NULL
, 0,
3261 "INTEGER_0_4294967295", HFILL
}},
3262 { &hf_t124_conferenceName
,
3263 { "conferenceName", "t124.conferenceName_element",
3264 FT_NONE
, BASE_NONE
, NULL
, 0,
3266 { &hf_t124_conferenceNameModifier
,
3267 { "conferenceNameModifier", "t124.conferenceNameModifier",
3268 FT_STRING
, BASE_NONE
, NULL
, 0,
3270 { &hf_t124_conferenceDescription
,
3271 { "conferenceDescription", "t124.conferenceDescription",
3272 FT_STRING
, BASE_NONE
, NULL
, 0,
3273 "TextString", HFILL
}},
3274 { &hf_t124_lockedConference
,
3275 { "lockedConference", "t124.lockedConference",
3276 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3277 "BOOLEAN", HFILL
}},
3278 { &hf_t124_passwordInTheClearRequired
,
3279 { "passwordInTheClearRequired", "t124.passwordInTheClearRequired",
3280 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3281 "BOOLEAN", HFILL
}},
3282 { &hf_t124_networkAddress
,
3283 { "networkAddress", "t124.networkAddress",
3284 FT_UINT32
, BASE_DEC
, NULL
, 0,
3286 { &hf_t124_defaultConferenceFlag
,
3287 { "defaultConferenceFlag", "t124.defaultConferenceFlag",
3288 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3289 "BOOLEAN", HFILL
}},
3290 { &hf_t124_conferenceMode
,
3291 { "conferenceMode", "t124.conferenceMode",
3292 FT_UINT32
, BASE_DEC
, VALS(t124_ConferenceMode_vals
), 0,
3294 { &hf_t124_convenerPassword
,
3295 { "convenerPassword", "t124.convenerPassword_element",
3296 FT_NONE
, BASE_NONE
, NULL
, 0,
3297 "Password", HFILL
}},
3298 { &hf_t124_password
,
3299 { "password", "t124.password_element",
3300 FT_NONE
, BASE_NONE
, NULL
, 0,
3302 { &hf_t124_listedConference
,
3303 { "listedConference", "t124.listedConference",
3304 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3305 "BOOLEAN", HFILL
}},
3306 { &hf_t124_conductibleConference
,
3307 { "conductibleConference", "t124.conductibleConference",
3308 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3309 "BOOLEAN", HFILL
}},
3310 { &hf_t124_terminationMethod
,
3311 { "terminationMethod", "t124.terminationMethod",
3312 FT_UINT32
, BASE_DEC
, VALS(t124_TerminationMethod_vals
), 0,
3314 { &hf_t124_conductorPrivileges
,
3315 { "conductorPrivileges", "t124.conductorPrivileges",
3316 FT_UINT32
, BASE_DEC
, NULL
, 0,
3317 "SET_OF_Privilege", HFILL
}},
3318 { &hf_t124_conductorPrivileges_item
,
3319 { "Privilege", "t124.Privilege",
3320 FT_UINT32
, BASE_DEC
, VALS(t124_Privilege_vals
), 0,
3322 { &hf_t124_conductedPrivileges
,
3323 { "conductedPrivileges", "t124.conductedPrivileges",
3324 FT_UINT32
, BASE_DEC
, NULL
, 0,
3325 "SET_OF_Privilege", HFILL
}},
3326 { &hf_t124_conductedPrivileges_item
,
3327 { "Privilege", "t124.Privilege",
3328 FT_UINT32
, BASE_DEC
, VALS(t124_Privilege_vals
), 0,
3330 { &hf_t124_nonConductedPrivileges
,
3331 { "nonConductedPrivileges", "t124.nonConductedPrivileges",
3332 FT_UINT32
, BASE_DEC
, NULL
, 0,
3333 "SET_OF_Privilege", HFILL
}},
3334 { &hf_t124_nonConductedPrivileges_item
,
3335 { "Privilege", "t124.Privilege",
3336 FT_UINT32
, BASE_DEC
, VALS(t124_Privilege_vals
), 0,
3338 { &hf_t124_callerIdentifier
,
3339 { "callerIdentifier", "t124.callerIdentifier",
3340 FT_STRING
, BASE_NONE
, NULL
, 0,
3341 "TextString", HFILL
}},
3342 { &hf_t124_userData
,
3343 { "userData", "t124.userData",
3344 FT_UINT32
, BASE_DEC
, NULL
, 0,
3346 { &hf_t124_conferencePriority
,
3347 { "conferencePriority", "t124.conferencePriority_element",
3348 FT_NONE
, BASE_NONE
, NULL
, 0,
3351 { "nodeID", "t124.nodeID",
3352 FT_UINT32
, BASE_DEC
, NULL
, 0,
3355 { "tag", "t124.tag",
3356 FT_INT32
, BASE_DEC
, NULL
, 0,
3357 "INTEGER", HFILL
}},
3359 { "result", "t124.result",
3360 FT_UINT32
, BASE_DEC
, VALS(t124_T_result_vals
), 0,
3362 { &hf_t124_nodeType
,
3363 { "nodeType", "t124.nodeType",
3364 FT_UINT32
, BASE_DEC
, VALS(t124_NodeType_vals
), 0,
3366 { &hf_t124_asymmetryIndicator
,
3367 { "asymmetryIndicator", "t124.asymmetryIndicator",
3368 FT_UINT32
, BASE_DEC
, VALS(t124_AsymmetryIndicator_vals
), 0,
3370 { &hf_t124_conferenceList
,
3371 { "conferenceList", "t124.conferenceList",
3372 FT_UINT32
, BASE_DEC
, NULL
, 0,
3373 "SET_OF_ConferenceDescriptor", HFILL
}},
3374 { &hf_t124_conferenceList_item
,
3375 { "ConferenceDescriptor", "t124.ConferenceDescriptor_element",
3376 FT_NONE
, BASE_NONE
, NULL
, 0,
3378 { &hf_t124_queryResponseResult
,
3379 { "result", "t124.result",
3380 FT_UINT32
, BASE_DEC
, VALS(t124_QueryResponseResult_vals
), 0,
3381 "QueryResponseResult", HFILL
}},
3382 { &hf_t124_waitForInvitationFlag
,
3383 { "waitForInvitationFlag", "t124.waitForInvitationFlag",
3384 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3385 "BOOLEAN", HFILL
}},
3386 { &hf_t124_noUnlistedConferenceFlag
,
3387 { "noUnlistedConferenceFlag", "t124.noUnlistedConferenceFlag",
3388 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3389 "BOOLEAN", HFILL
}},
3390 { &hf_t124_conferenceName_01
,
3391 { "conferenceName", "t124.conferenceName",
3392 FT_UINT32
, BASE_DEC
, VALS(t124_ConferenceNameSelector_vals
), 0,
3393 "ConferenceNameSelector", HFILL
}},
3394 { &hf_t124_password_01
,
3395 { "password", "t124.password",
3396 FT_UINT32
, BASE_DEC
, VALS(t124_PasswordChallengeRequestResponse_vals
), 0,
3397 "PasswordChallengeRequestResponse", HFILL
}},
3398 { &hf_t124_convenerPassword_01
,
3399 { "convenerPassword", "t124.convenerPassword",
3400 FT_UINT32
, BASE_DEC
, VALS(t124_PasswordSelector_vals
), 0,
3401 "PasswordSelector", HFILL
}},
3402 { &hf_t124_nodeCategory
,
3403 { "nodeCategory", "t124.nodeCategory",
3404 FT_UINT32
, BASE_DEC
, VALS(t124_NodeCategory_vals
), 0,
3406 { &hf_t124_topNodeID
,
3407 { "topNodeID", "t124.topNodeID",
3408 FT_UINT32
, BASE_DEC
, NULL
, 0,
3410 { &hf_t124_conferenceNameAlias
,
3411 { "conferenceNameAlias", "t124.conferenceNameAlias",
3412 FT_UINT32
, BASE_DEC
, VALS(t124_ConferenceNameSelector_vals
), 0,
3413 "ConferenceNameSelector", HFILL
}},
3414 { &hf_t124_joinResponseResult
,
3415 { "result", "t124.result",
3416 FT_UINT32
, BASE_DEC
, VALS(t124_JoinResponseResult_vals
), 0,
3417 "JoinResponseResult", HFILL
}},
3418 { &hf_t124_inviteResponseResult
,
3419 { "result", "t124.result",
3420 FT_UINT32
, BASE_DEC
, VALS(t124_InviteResponseResult_vals
), 0,
3421 "InviteResponseResult", HFILL
}},
3422 { &hf_t124_t124Identifier
,
3423 { "t124Identifier", "t124.t124Identifier",
3424 FT_UINT32
, BASE_DEC
, VALS(t124_Key_vals
), 0,
3426 { &hf_t124_connectPDU
,
3427 { "connectPDU", "t124.connectPDU",
3428 FT_BYTES
, BASE_NONE
, NULL
, 0,
3430 { &hf_t124_conferenceCreateRequest
,
3431 { "conferenceCreateRequest", "t124.conferenceCreateRequest_element",
3432 FT_NONE
, BASE_NONE
, NULL
, 0,
3434 { &hf_t124_conferenceCreateResponse
,
3435 { "conferenceCreateResponse", "t124.conferenceCreateResponse_element",
3436 FT_NONE
, BASE_NONE
, NULL
, 0,
3438 { &hf_t124_conferenceQueryRequest
,
3439 { "conferenceQueryRequest", "t124.conferenceQueryRequest_element",
3440 FT_NONE
, BASE_NONE
, NULL
, 0,
3442 { &hf_t124_conferenceQueryResponse
,
3443 { "conferenceQueryResponse", "t124.conferenceQueryResponse_element",
3444 FT_NONE
, BASE_NONE
, NULL
, 0,
3446 { &hf_t124_conferenceJoinRequest
,
3447 { "conferenceJoinRequest", "t124.conferenceJoinRequest_element",
3448 FT_NONE
, BASE_NONE
, NULL
, 0,
3450 { &hf_t124_conferenceJoinResponse
,
3451 { "conferenceJoinResponse", "t124.conferenceJoinResponse_element",
3452 FT_NONE
, BASE_NONE
, NULL
, 0,
3454 { &hf_t124_conferenceInviteRequest
,
3455 { "conferenceInviteRequest", "t124.conferenceInviteRequest_element",
3456 FT_NONE
, BASE_NONE
, NULL
, 0,
3458 { &hf_t124_conferenceInviteResponse
,
3459 { "conferenceInviteResponse", "t124.conferenceInviteResponse_element",
3460 FT_NONE
, BASE_NONE
, NULL
, 0,
3462 { &hf_t124_heightLimit
,
3463 { "heightLimit", "t124.heightLimit",
3464 FT_UINT64
, BASE_DEC
, NULL
, 0,
3465 "INTEGER_0_MAX", HFILL
}},
3466 { &hf_t124_subHeight
,
3467 { "subHeight", "t124.subHeight",
3468 FT_UINT64
, BASE_DEC
, NULL
, 0,
3469 "INTEGER_0_MAX", HFILL
}},
3470 { &hf_t124_subInterval
,
3471 { "subInterval", "t124.subInterval",
3472 FT_UINT64
, BASE_DEC
, NULL
, 0,
3473 "INTEGER_0_MAX", HFILL
}},
3475 { "static", "t124.static_element",
3476 FT_NONE
, BASE_NONE
, NULL
, 0,
3478 { &hf_t124_channelId
,
3479 { "channelId", "t124.channelId",
3480 FT_UINT32
, BASE_DEC
, NULL
, 0,
3481 "StaticChannelId", HFILL
}},
3483 { "userId", "t124.userId_element",
3484 FT_NONE
, BASE_NONE
, NULL
, 0,
3487 { "joined", "t124.joined",
3488 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3489 "BOOLEAN", HFILL
}},
3490 { &hf_t124_userId_01
,
3491 { "userId", "t124.userId",
3492 FT_UINT32
, BASE_DEC
, NULL
, 0,
3495 { "private", "t124.private_element",
3496 FT_NONE
, BASE_NONE
, NULL
, 0,
3498 { &hf_t124_channelId_01
,
3499 { "channelId", "t124.channelId",
3500 FT_UINT32
, BASE_DEC
, NULL
, 0,
3501 "PrivateChannelId", HFILL
}},
3503 { "manager", "t124.manager",
3504 FT_UINT32
, BASE_DEC
, NULL
, 0,
3506 { &hf_t124_admitted
,
3507 { "admitted", "t124.admitted",
3508 FT_UINT32
, BASE_DEC
, NULL
, 0,
3509 "SET_OF_UserId", HFILL
}},
3510 { &hf_t124_admitted_item
,
3511 { "UserId", "t124.UserId",
3512 FT_UINT32
, BASE_DEC
, NULL
, 0,
3514 { &hf_t124_assigned
,
3515 { "assigned", "t124.assigned_element",
3516 FT_NONE
, BASE_NONE
, NULL
, 0,
3518 { &hf_t124_channelId_02
,
3519 { "channelId", "t124.channelId",
3520 FT_UINT32
, BASE_DEC
, NULL
, 0,
3521 "AssignedChannelId", HFILL
}},
3522 { &hf_t124_mergeChannels
,
3523 { "mergeChannels", "t124.mergeChannels",
3524 FT_UINT32
, BASE_DEC
, NULL
, 0,
3525 "SET_OF_ChannelAttributes", HFILL
}},
3526 { &hf_t124_mergeChannels_item
,
3527 { "ChannelAttributes", "t124.ChannelAttributes",
3528 FT_UINT32
, BASE_DEC
, VALS(t124_ChannelAttributes_vals
), 0,
3530 { &hf_t124_purgeChannelIds
,
3531 { "purgeChannelIds", "t124.purgeChannelIds",
3532 FT_UINT32
, BASE_DEC
, NULL
, 0,
3533 "SET_OF_ChannelId", HFILL
}},
3534 { &hf_t124_purgeChannelIds_item
,
3535 { "ChannelId", "t124.ChannelId",
3536 FT_UINT32
, BASE_DEC
, NULL
, 0,
3538 { &hf_t124_detachUserIds
,
3539 { "detachUserIds", "t124.detachUserIds",
3540 FT_UINT32
, BASE_DEC
, NULL
, 0,
3541 "SET_OF_UserId", HFILL
}},
3542 { &hf_t124_detachUserIds_item
,
3543 { "UserId", "t124.UserId",
3544 FT_UINT32
, BASE_DEC
, NULL
, 0,
3547 { "grabbed", "t124.grabbed_element",
3548 FT_NONE
, BASE_NONE
, NULL
, 0,
3551 { "tokenId", "t124.tokenId",
3552 FT_UINT32
, BASE_DEC
, NULL
, 0,
3555 { "grabber", "t124.grabber",
3556 FT_UINT32
, BASE_DEC
, NULL
, 0,
3558 { &hf_t124_inhibited
,
3559 { "inhibited", "t124.inhibited_element",
3560 FT_NONE
, BASE_NONE
, NULL
, 0,
3562 { &hf_t124_inhibitors
,
3563 { "inhibitors", "t124.inhibitors",
3564 FT_UINT32
, BASE_DEC
, NULL
, 0,
3565 "SET_OF_UserId", HFILL
}},
3566 { &hf_t124_inhibitors_item
,
3567 { "UserId", "t124.UserId",
3568 FT_UINT32
, BASE_DEC
, NULL
, 0,
3571 { "giving", "t124.giving_element",
3572 FT_NONE
, BASE_NONE
, NULL
, 0,
3574 { &hf_t124_recipient
,
3575 { "recipient", "t124.recipient",
3576 FT_UINT32
, BASE_DEC
, NULL
, 0,
3578 { &hf_t124_ungivable
,
3579 { "ungivable", "t124.ungivable_element",
3580 FT_NONE
, BASE_NONE
, NULL
, 0,
3583 { "given", "t124.given_element",
3584 FT_NONE
, BASE_NONE
, NULL
, 0,
3586 { &hf_t124_mergeTokens
,
3587 { "mergeTokens", "t124.mergeTokens",
3588 FT_UINT32
, BASE_DEC
, NULL
, 0,
3589 "SET_OF_TokenAttributes", HFILL
}},
3590 { &hf_t124_mergeTokens_item
,
3591 { "TokenAttributes", "t124.TokenAttributes",
3592 FT_UINT32
, BASE_DEC
, VALS(t124_TokenAttributes_vals
), 0,
3594 { &hf_t124_purgeTokenIds
,
3595 { "purgeTokenIds", "t124.purgeTokenIds",
3596 FT_UINT32
, BASE_DEC
, NULL
, 0,
3597 "SET_OF_TokenId", HFILL
}},
3598 { &hf_t124_purgeTokenIds_item
,
3599 { "TokenId", "t124.TokenId",
3600 FT_UINT32
, BASE_DEC
, NULL
, 0,
3603 { "reason", "t124.reason",
3604 FT_UINT32
, BASE_DEC
, VALS(t124_Reason_vals
), 0,
3606 { &hf_t124_diagnostic
,
3607 { "diagnostic", "t124.diagnostic",
3608 FT_UINT32
, BASE_DEC
, VALS(t124_Diagnostic_vals
), 0,
3610 { &hf_t124_initialOctets
,
3611 { "initialOctets", "t124.initialOctets",
3612 FT_BYTES
, BASE_NONE
, NULL
, 0,
3613 "OCTET_STRING", HFILL
}},
3614 { &hf_t124_result_01
,
3615 { "result", "t124.result",
3616 FT_UINT32
, BASE_DEC
, VALS(t124_Result_vals
), 0,
3618 { &hf_t124_initiator
,
3619 { "initiator", "t124.initiator",
3620 FT_UINT32
, BASE_DEC
, NULL
, 0,
3623 { "userIds", "t124.userIds",
3624 FT_UINT32
, BASE_DEC
, NULL
, 0,
3625 "SET_OF_UserId", HFILL
}},
3626 { &hf_t124_userIds_item
,
3627 { "UserId", "t124.UserId",
3628 FT_UINT32
, BASE_DEC
, NULL
, 0,
3630 { &hf_t124_channelId_03
,
3631 { "channelId", "t124.channelId",
3632 FT_UINT32
, BASE_DEC
, NULL
, 0,
3634 { &hf_t124_requested
,
3635 { "requested", "t124.requested",
3636 FT_UINT32
, BASE_DEC
, NULL
, 0,
3637 "ChannelId", HFILL
}},
3638 { &hf_t124_channelIds
,
3639 { "channelIds", "t124.channelIds",
3640 FT_UINT32
, BASE_DEC
, NULL
, 0,
3641 "SET_OF_ChannelId", HFILL
}},
3642 { &hf_t124_channelIds_item
,
3643 { "ChannelId", "t124.ChannelId",
3644 FT_UINT32
, BASE_DEC
, NULL
, 0,
3646 { &hf_t124_dataPriority
,
3647 { "dataPriority", "t124.dataPriority",
3648 FT_UINT32
, BASE_DEC
, VALS(t124_DataPriority_vals
), 0,
3650 { &hf_t124_segmentation
,
3651 { "segmentation", "t124.segmentation",
3652 FT_BYTES
, BASE_NONE
, NULL
, 0,
3654 { &hf_t124_userData_01
,
3655 { "userData", "t124.userData",
3656 FT_BYTES
, BASE_NONE
, NULL
, 0,
3658 { &hf_t124_userData_02
,
3659 { "userData", "t124.userData",
3660 FT_BYTES
, BASE_NONE
, NULL
, 0,
3661 "T_userData_01", HFILL
}},
3662 { &hf_t124_userData_03
,
3663 { "userData", "t124.userData",
3664 FT_BYTES
, BASE_NONE
, NULL
, 0,
3665 "OCTET_STRING", HFILL
}},
3666 { &hf_t124_tokenStatus
,
3667 { "tokenStatus", "t124.tokenStatus",
3668 FT_UINT32
, BASE_DEC
, VALS(t124_TokenStatus_vals
), 0,
3670 { &hf_t124_plumbDomainIndication
,
3671 { "plumbDomainIndication", "t124.plumbDomainIndication_element",
3672 FT_NONE
, BASE_NONE
, NULL
, 0,
3674 { &hf_t124_erectDomainRequest
,
3675 { "erectDomainRequest", "t124.erectDomainRequest_element",
3676 FT_NONE
, BASE_NONE
, NULL
, 0,
3678 { &hf_t124_mergeChannelsRequest
,
3679 { "mergeChannelsRequest", "t124.mergeChannelsRequest_element",
3680 FT_NONE
, BASE_NONE
, NULL
, 0,
3682 { &hf_t124_mergeChannelsConfirm
,
3683 { "mergeChannelsConfirm", "t124.mergeChannelsConfirm_element",
3684 FT_NONE
, BASE_NONE
, NULL
, 0,
3686 { &hf_t124_purgeChannelsIndication
,
3687 { "purgeChannelsIndication", "t124.purgeChannelsIndication_element",
3688 FT_NONE
, BASE_NONE
, NULL
, 0,
3690 { &hf_t124_mergeTokensRequest
,
3691 { "mergeTokensRequest", "t124.mergeTokensRequest_element",
3692 FT_NONE
, BASE_NONE
, NULL
, 0,
3694 { &hf_t124_mergeTokensConfirm
,
3695 { "mergeTokensConfirm", "t124.mergeTokensConfirm_element",
3696 FT_NONE
, BASE_NONE
, NULL
, 0,
3698 { &hf_t124_purgeTokensIndication
,
3699 { "purgeTokensIndication", "t124.purgeTokensIndication_element",
3700 FT_NONE
, BASE_NONE
, NULL
, 0,
3702 { &hf_t124_disconnectProviderUltimatum
,
3703 { "disconnectProviderUltimatum", "t124.disconnectProviderUltimatum_element",
3704 FT_NONE
, BASE_NONE
, NULL
, 0,
3706 { &hf_t124_rejectMCSPDUUltimatum
,
3707 { "rejectMCSPDUUltimatum", "t124.rejectMCSPDUUltimatum_element",
3708 FT_NONE
, BASE_NONE
, NULL
, 0,
3710 { &hf_t124_attachUserRequest
,
3711 { "attachUserRequest", "t124.attachUserRequest_element",
3712 FT_NONE
, BASE_NONE
, NULL
, 0,
3714 { &hf_t124_attachUserConfirm
,
3715 { "attachUserConfirm", "t124.attachUserConfirm_element",
3716 FT_NONE
, BASE_NONE
, NULL
, 0,
3718 { &hf_t124_detachUserRequest
,
3719 { "detachUserRequest", "t124.detachUserRequest_element",
3720 FT_NONE
, BASE_NONE
, NULL
, 0,
3722 { &hf_t124_detachUserIndication
,
3723 { "detachUserIndication", "t124.detachUserIndication_element",
3724 FT_NONE
, BASE_NONE
, NULL
, 0,
3726 { &hf_t124_channelJoinRequest
,
3727 { "channelJoinRequest", "t124.channelJoinRequest_element",
3728 FT_NONE
, BASE_NONE
, NULL
, 0,
3730 { &hf_t124_channelJoinConfirm
,
3731 { "channelJoinConfirm", "t124.channelJoinConfirm_element",
3732 FT_NONE
, BASE_NONE
, NULL
, 0,
3734 { &hf_t124_channelLeaveRequest
,
3735 { "channelLeaveRequest", "t124.channelLeaveRequest_element",
3736 FT_NONE
, BASE_NONE
, NULL
, 0,
3738 { &hf_t124_channelConveneRequest
,
3739 { "channelConveneRequest", "t124.channelConveneRequest_element",
3740 FT_NONE
, BASE_NONE
, NULL
, 0,
3742 { &hf_t124_channelConveneConfirm
,
3743 { "channelConveneConfirm", "t124.channelConveneConfirm_element",
3744 FT_NONE
, BASE_NONE
, NULL
, 0,
3746 { &hf_t124_channelDisbandRequest
,
3747 { "channelDisbandRequest", "t124.channelDisbandRequest_element",
3748 FT_NONE
, BASE_NONE
, NULL
, 0,
3750 { &hf_t124_channelDisbandIndication
,
3751 { "channelDisbandIndication", "t124.channelDisbandIndication_element",
3752 FT_NONE
, BASE_NONE
, NULL
, 0,
3754 { &hf_t124_channelAdmitRequest
,
3755 { "channelAdmitRequest", "t124.channelAdmitRequest_element",
3756 FT_NONE
, BASE_NONE
, NULL
, 0,
3758 { &hf_t124_channelAdmitIndication
,
3759 { "channelAdmitIndication", "t124.channelAdmitIndication_element",
3760 FT_NONE
, BASE_NONE
, NULL
, 0,
3762 { &hf_t124_channelExpelRequest
,
3763 { "channelExpelRequest", "t124.channelExpelRequest_element",
3764 FT_NONE
, BASE_NONE
, NULL
, 0,
3766 { &hf_t124_channelExpelIndication
,
3767 { "channelExpelIndication", "t124.channelExpelIndication_element",
3768 FT_NONE
, BASE_NONE
, NULL
, 0,
3770 { &hf_t124_sendDataRequest
,
3771 { "sendDataRequest", "t124.sendDataRequest_element",
3772 FT_NONE
, BASE_NONE
, NULL
, 0,
3774 { &hf_t124_sendDataIndication
,
3775 { "sendDataIndication", "t124.sendDataIndication_element",
3776 FT_NONE
, BASE_NONE
, NULL
, 0,
3778 { &hf_t124_uniformSendDataRequest
,
3779 { "uniformSendDataRequest", "t124.uniformSendDataRequest_element",
3780 FT_NONE
, BASE_NONE
, NULL
, 0,
3782 { &hf_t124_uniformSendDataIndication
,
3783 { "uniformSendDataIndication", "t124.uniformSendDataIndication_element",
3784 FT_NONE
, BASE_NONE
, NULL
, 0,
3786 { &hf_t124_tokenGrabRequest
,
3787 { "tokenGrabRequest", "t124.tokenGrabRequest_element",
3788 FT_NONE
, BASE_NONE
, NULL
, 0,
3790 { &hf_t124_tokenGrabConfirm
,
3791 { "tokenGrabConfirm", "t124.tokenGrabConfirm_element",
3792 FT_NONE
, BASE_NONE
, NULL
, 0,
3794 { &hf_t124_tokenInhibitRequest
,
3795 { "tokenInhibitRequest", "t124.tokenInhibitRequest_element",
3796 FT_NONE
, BASE_NONE
, NULL
, 0,
3798 { &hf_t124_tokenInhibitConfirm
,
3799 { "tokenInhibitConfirm", "t124.tokenInhibitConfirm_element",
3800 FT_NONE
, BASE_NONE
, NULL
, 0,
3802 { &hf_t124_tokenGiveRequest
,
3803 { "tokenGiveRequest", "t124.tokenGiveRequest_element",
3804 FT_NONE
, BASE_NONE
, NULL
, 0,
3806 { &hf_t124_tokenGiveIndication
,
3807 { "tokenGiveIndication", "t124.tokenGiveIndication_element",
3808 FT_NONE
, BASE_NONE
, NULL
, 0,
3810 { &hf_t124_tokenGiveResponse
,
3811 { "tokenGiveResponse", "t124.tokenGiveResponse_element",
3812 FT_NONE
, BASE_NONE
, NULL
, 0,
3814 { &hf_t124_tokenGiveConfirm
,
3815 { "tokenGiveConfirm", "t124.tokenGiveConfirm_element",
3816 FT_NONE
, BASE_NONE
, NULL
, 0,
3818 { &hf_t124_tokenPleaseRequest
,
3819 { "tokenPleaseRequest", "t124.tokenPleaseRequest_element",
3820 FT_NONE
, BASE_NONE
, NULL
, 0,
3822 { &hf_t124_tokenPleaseIndication
,
3823 { "tokenPleaseIndication", "t124.tokenPleaseIndication_element",
3824 FT_NONE
, BASE_NONE
, NULL
, 0,
3826 { &hf_t124_tokenReleaseRequest
,
3827 { "tokenReleaseRequest", "t124.tokenReleaseRequest_element",
3828 FT_NONE
, BASE_NONE
, NULL
, 0,
3830 { &hf_t124_tokenReleaseConfirm
,
3831 { "tokenReleaseConfirm", "t124.tokenReleaseConfirm_element",
3832 FT_NONE
, BASE_NONE
, NULL
, 0,
3834 { &hf_t124_tokenTestRequest
,
3835 { "tokenTestRequest", "t124.tokenTestRequest_element",
3836 FT_NONE
, BASE_NONE
, NULL
, 0,
3838 { &hf_t124_tokenTestConfirm
,
3839 { "tokenTestConfirm", "t124.tokenTestConfirm_element",
3840 FT_NONE
, BASE_NONE
, NULL
, 0,
3842 { &hf_t124_Segmentation_begin
,
3843 { "begin", "t124.Segmentation.begin",
3844 FT_BOOLEAN
, 8, NULL
, 0x80,
3846 { &hf_t124_Segmentation_end
,
3847 { "end", "t124.Segmentation.end",
3848 FT_BOOLEAN
, 8, NULL
, 0x40,
3852 /* List of subtrees */
3853 static int *ett
[] = {
3855 &ett_t124_connectGCCPDU
,
3857 &ett_t124_NonStandardParameter
,
3859 &ett_t124_UserData_item
,
3861 &ett_t124_PasswordSelector
,
3862 &ett_t124_ChallengeResponseItem
,
3863 &ett_t124_ChallengeResponseAlgorithm
,
3864 &ett_t124_ChallengeItem
,
3865 &ett_t124_ChallengeRequest
,
3866 &ett_t124_SET_OF_ChallengeItem
,
3867 &ett_t124_ChallengeResponse
,
3868 &ett_t124_PasswordChallengeRequestResponse
,
3869 &ett_t124_T_challengeRequestResponse
,
3870 &ett_t124_ConferenceName
,
3871 &ett_t124_ConferenceNameSelector
,
3872 &ett_t124_ConferencePriorityScheme
,
3873 &ett_t124_ConferencePriority
,
3874 &ett_t124_NodeCategory
,
3875 &ett_t124_ConferenceMode
,
3876 &ett_t124_NetworkAddress
,
3877 &ett_t124_NetworkAddress_item
,
3878 &ett_t124_T_aggregatedChannel
,
3879 &ett_t124_T_transferModes
,
3880 &ett_t124_T_highLayerCompatibility
,
3881 &ett_t124_T_transportConnection
,
3882 &ett_t124_AsymmetryIndicator
,
3883 &ett_t124_ConferenceDescriptor
,
3884 &ett_t124_ConferenceCreateRequest
,
3885 &ett_t124_SET_OF_Privilege
,
3886 &ett_t124_ConferenceCreateResponse
,
3887 &ett_t124_ConferenceQueryRequest
,
3888 &ett_t124_ConferenceQueryResponse
,
3889 &ett_t124_SET_OF_ConferenceDescriptor
,
3890 &ett_t124_ConferenceJoinRequest
,
3891 &ett_t124_ConferenceJoinResponse
,
3892 &ett_t124_ConferenceInviteRequest
,
3893 &ett_t124_ConferenceInviteResponse
,
3894 &ett_t124_ConnectData
,
3895 &ett_t124_ConnectGCCPDU
,
3896 &ett_t124_Segmentation
,
3897 &ett_t124_PlumbDomainIndication
,
3898 &ett_t124_ErectDomainRequest
,
3899 &ett_t124_ChannelAttributes
,
3902 &ett_t124_T_private
,
3903 &ett_t124_SET_OF_UserId
,
3904 &ett_t124_T_assigned
,
3905 &ett_t124_MergeChannelsRequest
,
3906 &ett_t124_SET_OF_ChannelAttributes
,
3907 &ett_t124_SET_OF_ChannelId
,
3908 &ett_t124_MergeChannelsConfirm
,
3909 &ett_t124_PurgeChannelsIndication
,
3910 &ett_t124_TokenAttributes
,
3911 &ett_t124_T_grabbed
,
3912 &ett_t124_T_inhibited
,
3914 &ett_t124_T_ungivable
,
3916 &ett_t124_MergeTokensRequest
,
3917 &ett_t124_SET_OF_TokenAttributes
,
3918 &ett_t124_SET_OF_TokenId
,
3919 &ett_t124_MergeTokensConfirm
,
3920 &ett_t124_PurgeTokensIndication
,
3921 &ett_t124_DisconnectProviderUltimatum
,
3922 &ett_t124_RejectMCSPDUUltimatum
,
3923 &ett_t124_AttachUserRequest
,
3924 &ett_t124_AttachUserConfirm
,
3925 &ett_t124_DetachUserRequest
,
3926 &ett_t124_DetachUserIndication
,
3927 &ett_t124_ChannelJoinRequest
,
3928 &ett_t124_ChannelJoinConfirm
,
3929 &ett_t124_ChannelLeaveRequest
,
3930 &ett_t124_ChannelConveneRequest
,
3931 &ett_t124_ChannelConveneConfirm
,
3932 &ett_t124_ChannelDisbandRequest
,
3933 &ett_t124_ChannelDisbandIndication
,
3934 &ett_t124_ChannelAdmitRequest
,
3935 &ett_t124_ChannelAdmitIndication
,
3936 &ett_t124_ChannelExpelRequest
,
3937 &ett_t124_ChannelExpelIndication
,
3938 &ett_t124_SendDataRequest
,
3939 &ett_t124_SendDataIndication
,
3940 &ett_t124_UniformSendDataRequest
,
3941 &ett_t124_UniformSendDataIndication
,
3942 &ett_t124_TokenGrabRequest
,
3943 &ett_t124_TokenGrabConfirm
,
3944 &ett_t124_TokenInhibitRequest
,
3945 &ett_t124_TokenInhibitConfirm
,
3946 &ett_t124_TokenGiveRequest
,
3947 &ett_t124_TokenGiveIndication
,
3948 &ett_t124_TokenGiveResponse
,
3949 &ett_t124_TokenGiveConfirm
,
3950 &ett_t124_TokenPleaseRequest
,
3951 &ett_t124_TokenPleaseIndication
,
3952 &ett_t124_TokenReleaseRequest
,
3953 &ett_t124_TokenReleaseConfirm
,
3954 &ett_t124_TokenTestRequest
,
3955 &ett_t124_TokenTestConfirm
,
3956 &ett_t124_DomainMCSPDU
,
3959 /* Register protocol */
3960 proto_t124
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
3961 /* Register fields and subtrees */
3962 proto_register_field_array(proto_t124
, hf
, array_length(hf
));
3963 proto_register_subtree_array(ett
, array_length(ett
));
3965 t124_ns_dissector_table
= register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124
, FT_STRING
, STRING_CASE_SENSITIVE
);
3966 t124_sd_dissector_table
= register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", proto_t124
, FT_UINT32
, BASE_HEX
);
3968 register_dissector("t124", dissect_t124
, proto_t124
);
3973 proto_reg_handoff_t124(void) {
3975 register_ber_oid_dissector("0.0.20.124.0.1", dissect_t124
, proto_t124
, "Generic Conference Control");
3977 heur_dissector_add("t125", dissect_t124_heur
, "T.124 over T.125", "t124_t125", proto_t124
, HEURISTIC_ENABLE
);