wireshark/epan/dissectors/packet-t124.c

3976 lines
161 KiB
C

/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-t124.c */
/* asn2wrs.py -L -p t124 -c ./t124.cnf -s ./packet-t124-template -D . -O ../.. GCC-PROTOCOL.asn ../t125/MCS-PROTOCOL.asn */
/* packet-t124.c
* Routines for t124 packet dissection
* Copyright 2010, Graeme Lunt
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "config.h"
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/conversation.h>
#include <epan/asn1.h>
#include "packet-per.h"
#include "packet-ber.h"
#include "packet-t124.h"
#ifdef _MSC_VER
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
#pragma warning(disable:4146)
#endif
#define PNAME "GENERIC-CONFERENCE-CONTROL T.124"
#define PSNAME "T.124"
#define PFNAME "t124"
void proto_register_t124(void);
void proto_reg_handoff_t124(void);
/* Initialize the protocol and registered fields */
static int proto_t124 = -1;
static proto_tree *top_tree = NULL;
static int hf_t124_object = -1; /* T_object */
static int hf_t124_h221NonStandard = -1; /* H221NonStandardIdentifier */
static int hf_t124_key = -1; /* Key */
static int hf_t124_data = -1; /* OCTET_STRING */
static int hf_t124_UserData_item = -1; /* UserData_item */
static int hf_t124_value = -1; /* T_value */
static int hf_t124_numeric = -1; /* SimpleNumericString */
static int hf_t124_text = -1; /* SimpleTextString */
static int hf_t124_unicodeText = -1; /* TextString */
static int hf_t124_passwordString = -1; /* PasswordSelector */
static int hf_t124_responseData = -1; /* UserData */
static int hf_t124_passwordInTheClear = -1; /* NULL */
static int hf_t124_nonStandardAlgorithm = -1; /* NonStandardParameter */
static int hf_t124_responseAlgorithm = -1; /* ChallengeResponseAlgorithm */
static int hf_t124_challengeData = -1; /* UserData */
static int hf_t124_challengeTag = -1; /* INTEGER */
static int hf_t124_challengeSet = -1; /* SET_OF_ChallengeItem */
static int hf_t124_challengeSet_item = -1; /* ChallengeItem */
static int hf_t124_responseItem = -1; /* ChallengeResponseItem */
static int hf_t124_passwordInTheClear_01 = -1; /* PasswordSelector */
static int hf_t124_challengeRequestResponse = -1; /* T_challengeRequestResponse */
static int hf_t124_challengeRequest = -1; /* ChallengeRequest */
static int hf_t124_challengeResponse = -1; /* ChallengeResponse */
static int hf_t124_nonStandardScheme = -1; /* NonStandardParameter */
static int hf_t124_priority = -1; /* INTEGER_0_65535 */
static int hf_t124_scheme = -1; /* ConferencePriorityScheme */
static int hf_t124_conventional = -1; /* NULL */
static int hf_t124_counted = -1; /* NULL */
static int hf_t124_anonymous = -1; /* NULL */
static int hf_t124_nonStandardCategory = -1; /* NonStandardParameter */
static int hf_t124_conventional_only = -1; /* NULL */
static int hf_t124_counted_only = -1; /* NULL */
static int hf_t124_anonymous_only = -1; /* NULL */
static int hf_t124_conventional_control = -1; /* NULL */
static int hf_t124_unrestricted_mode = -1; /* NULL */
static int hf_t124_non_standard_mode = -1; /* NonStandardParameter */
static int hf_t124_NetworkAddress_item = -1; /* NetworkAddress_item */
static int hf_t124_aggregatedChannel = -1; /* T_aggregatedChannel */
static int hf_t124_transferModes = -1; /* T_transferModes */
static int hf_t124_speech = -1; /* BOOLEAN */
static int hf_t124_voice_band = -1; /* BOOLEAN */
static int hf_t124_digital_56k = -1; /* BOOLEAN */
static int hf_t124_digital_64k = -1; /* BOOLEAN */
static int hf_t124_digital_128k = -1; /* BOOLEAN */
static int hf_t124_digital_192k = -1; /* BOOLEAN */
static int hf_t124_digital_256k = -1; /* BOOLEAN */
static int hf_t124_digital_320k = -1; /* BOOLEAN */
static int hf_t124_digital_384k = -1; /* BOOLEAN */
static int hf_t124_digital_512k = -1; /* BOOLEAN */
static int hf_t124_digital_768k = -1; /* BOOLEAN */
static int hf_t124_digital_1152k = -1; /* BOOLEAN */
static int hf_t124_digital_1472k = -1; /* BOOLEAN */
static int hf_t124_digital_1536k = -1; /* BOOLEAN */
static int hf_t124_digital_1920k = -1; /* BOOLEAN */
static int hf_t124_packet_mode = -1; /* BOOLEAN */
static int hf_t124_frame_mode = -1; /* BOOLEAN */
static int hf_t124_atm = -1; /* BOOLEAN */
static int hf_t124_internationalNumber = -1; /* DiallingString */
static int hf_t124_subAddress = -1; /* SubAddressString */
static int hf_t124_extraDialling = -1; /* ExtraDiallingString */
static int hf_t124_highLayerCompatibility = -1; /* T_highLayerCompatibility */
static int hf_t124_telephony3kHz = -1; /* BOOLEAN */
static int hf_t124_telephony7kHz = -1; /* BOOLEAN */
static int hf_t124_videotelephony = -1; /* BOOLEAN */
static int hf_t124_videoconference = -1; /* BOOLEAN */
static int hf_t124_audiographic = -1; /* BOOLEAN */
static int hf_t124_audiovisual = -1; /* BOOLEAN */
static int hf_t124_multimedia = -1; /* BOOLEAN */
static int hf_t124_transportConnection = -1; /* T_transportConnection */
static int hf_t124_nsapAddress = -1; /* OCTET_STRING_SIZE_1_20 */
static int hf_t124_transportSelector = -1; /* OCTET_STRING */
static int hf_t124_nonStandard = -1; /* NonStandardParameter */
static int hf_t124_callingNode = -1; /* NULL */
static int hf_t124_calledNode = -1; /* NULL */
static int hf_t124_unknown = -1; /* INTEGER_0_4294967295 */
static int hf_t124_conferenceName = -1; /* ConferenceName */
static int hf_t124_conferenceNameModifier = -1; /* ConferenceNameModifier */
static int hf_t124_conferenceDescription = -1; /* TextString */
static int hf_t124_lockedConference = -1; /* BOOLEAN */
static int hf_t124_passwordInTheClearRequired = -1; /* BOOLEAN */
static int hf_t124_networkAddress = -1; /* NetworkAddress */
static int hf_t124_defaultConferenceFlag = -1; /* BOOLEAN */
static int hf_t124_conferenceMode = -1; /* ConferenceMode */
static int hf_t124_convenerPassword = -1; /* Password */
static int hf_t124_password = -1; /* Password */
static int hf_t124_listedConference = -1; /* BOOLEAN */
static int hf_t124_conductibleConference = -1; /* BOOLEAN */
static int hf_t124_terminationMethod = -1; /* TerminationMethod */
static int hf_t124_conductorPrivileges = -1; /* SET_OF_Privilege */
static int hf_t124_conductorPrivileges_item = -1; /* Privilege */
static int hf_t124_conductedPrivileges = -1; /* SET_OF_Privilege */
static int hf_t124_conductedPrivileges_item = -1; /* Privilege */
static int hf_t124_nonConductedPrivileges = -1; /* SET_OF_Privilege */
static int hf_t124_nonConductedPrivileges_item = -1; /* Privilege */
static int hf_t124_callerIdentifier = -1; /* TextString */
static int hf_t124_userData = -1; /* UserData */
static int hf_t124_conferencePriority = -1; /* ConferencePriority */
static int hf_t124_nodeID = -1; /* UserID */
static int hf_t124_tag = -1; /* INTEGER */
static int hf_t124_result = -1; /* T_result */
static int hf_t124_nodeType = -1; /* NodeType */
static int hf_t124_asymmetryIndicator = -1; /* AsymmetryIndicator */
static int hf_t124_conferenceList = -1; /* SET_OF_ConferenceDescriptor */
static int hf_t124_conferenceList_item = -1; /* ConferenceDescriptor */
static int hf_t124_queryResponseResult = -1; /* QueryResponseResult */
static int hf_t124_waitForInvitationFlag = -1; /* BOOLEAN */
static int hf_t124_noUnlistedConferenceFlag = -1; /* BOOLEAN */
static int hf_t124_conferenceName_01 = -1; /* ConferenceNameSelector */
static int hf_t124_password_01 = -1; /* PasswordChallengeRequestResponse */
static int hf_t124_convenerPassword_01 = -1; /* PasswordSelector */
static int hf_t124_nodeCategory = -1; /* NodeCategory */
static int hf_t124_topNodeID = -1; /* UserID */
static int hf_t124_conferenceNameAlias = -1; /* ConferenceNameSelector */
static int hf_t124_joinResponseResult = -1; /* JoinResponseResult */
static int hf_t124_inviteResponseResult = -1; /* InviteResponseResult */
static int hf_t124_t124Identifier = -1; /* Key */
static int hf_t124_connectPDU = -1; /* T_connectPDU */
static int hf_t124_conferenceCreateRequest = -1; /* ConferenceCreateRequest */
static int hf_t124_conferenceCreateResponse = -1; /* ConferenceCreateResponse */
static int hf_t124_conferenceQueryRequest = -1; /* ConferenceQueryRequest */
static int hf_t124_conferenceQueryResponse = -1; /* ConferenceQueryResponse */
static int hf_t124_conferenceJoinRequest = -1; /* ConferenceJoinRequest */
static int hf_t124_conferenceJoinResponse = -1; /* ConferenceJoinResponse */
static int hf_t124_conferenceInviteRequest = -1; /* ConferenceInviteRequest */
static int hf_t124_conferenceInviteResponse = -1; /* ConferenceInviteResponse */
static int hf_t124_heightLimit = -1; /* INTEGER_0_MAX */
static int hf_t124_subHeight = -1; /* INTEGER_0_MAX */
static int hf_t124_subInterval = -1; /* INTEGER_0_MAX */
static int hf_t124_static = -1; /* T_static */
static int hf_t124_channelId = -1; /* StaticChannelId */
static int hf_t124_userId = -1; /* T_userId */
static int hf_t124_joined = -1; /* BOOLEAN */
static int hf_t124_userId_01 = -1; /* UserId */
static int hf_t124_private = -1; /* T_private */
static int hf_t124_channelId_01 = -1; /* PrivateChannelId */
static int hf_t124_manager = -1; /* UserId */
static int hf_t124_admitted = -1; /* SET_OF_UserId */
static int hf_t124_admitted_item = -1; /* UserId */
static int hf_t124_assigned = -1; /* T_assigned */
static int hf_t124_channelId_02 = -1; /* AssignedChannelId */
static int hf_t124_mergeChannels = -1; /* SET_OF_ChannelAttributes */
static int hf_t124_mergeChannels_item = -1; /* ChannelAttributes */
static int hf_t124_purgeChannelIds = -1; /* SET_OF_ChannelId */
static int hf_t124_purgeChannelIds_item = -1; /* ChannelId */
static int hf_t124_detachUserIds = -1; /* SET_OF_UserId */
static int hf_t124_detachUserIds_item = -1; /* UserId */
static int hf_t124_grabbed = -1; /* T_grabbed */
static int hf_t124_tokenId = -1; /* TokenId */
static int hf_t124_grabber = -1; /* UserId */
static int hf_t124_inhibited = -1; /* T_inhibited */
static int hf_t124_inhibitors = -1; /* SET_OF_UserId */
static int hf_t124_inhibitors_item = -1; /* UserId */
static int hf_t124_giving = -1; /* T_giving */
static int hf_t124_recipient = -1; /* UserId */
static int hf_t124_ungivable = -1; /* T_ungivable */
static int hf_t124_given = -1; /* T_given */
static int hf_t124_mergeTokens = -1; /* SET_OF_TokenAttributes */
static int hf_t124_mergeTokens_item = -1; /* TokenAttributes */
static int hf_t124_purgeTokenIds = -1; /* SET_OF_TokenId */
static int hf_t124_purgeTokenIds_item = -1; /* TokenId */
static int hf_t124_reason = -1; /* Reason */
static int hf_t124_diagnostic = -1; /* Diagnostic */
static int hf_t124_initialOctets = -1; /* OCTET_STRING */
static int hf_t124_result_01 = -1; /* Result */
static int hf_t124_initiator = -1; /* UserId */
static int hf_t124_userIds = -1; /* SET_OF_UserId */
static int hf_t124_userIds_item = -1; /* UserId */
static int hf_t124_channelId_03 = -1; /* ChannelId */
static int hf_t124_requested = -1; /* ChannelId */
static int hf_t124_channelIds = -1; /* SET_OF_ChannelId */
static int hf_t124_channelIds_item = -1; /* ChannelId */
static int hf_t124_dataPriority = -1; /* DataPriority */
static int hf_t124_segmentation = -1; /* Segmentation */
static int hf_t124_userData_01 = -1; /* T_userData */
static int hf_t124_userData_02 = -1; /* T_userData_01 */
static int hf_t124_userData_03 = -1; /* OCTET_STRING */
static int hf_t124_tokenStatus = -1; /* TokenStatus */
static int hf_t124_plumbDomainIndication = -1; /* PlumbDomainIndication */
static int hf_t124_erectDomainRequest = -1; /* ErectDomainRequest */
static int hf_t124_mergeChannelsRequest = -1; /* MergeChannelsRequest */
static int hf_t124_mergeChannelsConfirm = -1; /* MergeChannelsConfirm */
static int hf_t124_purgeChannelsIndication = -1; /* PurgeChannelsIndication */
static int hf_t124_mergeTokensRequest = -1; /* MergeTokensRequest */
static int hf_t124_mergeTokensConfirm = -1; /* MergeTokensConfirm */
static int hf_t124_purgeTokensIndication = -1; /* PurgeTokensIndication */
static int hf_t124_disconnectProviderUltimatum = -1; /* DisconnectProviderUltimatum */
static int hf_t124_rejectMCSPDUUltimatum = -1; /* RejectMCSPDUUltimatum */
static int hf_t124_attachUserRequest = -1; /* AttachUserRequest */
static int hf_t124_attachUserConfirm = -1; /* AttachUserConfirm */
static int hf_t124_detachUserRequest = -1; /* DetachUserRequest */
static int hf_t124_detachUserIndication = -1; /* DetachUserIndication */
static int hf_t124_channelJoinRequest = -1; /* ChannelJoinRequest */
static int hf_t124_channelJoinConfirm = -1; /* ChannelJoinConfirm */
static int hf_t124_channelLeaveRequest = -1; /* ChannelLeaveRequest */
static int hf_t124_channelConveneRequest = -1; /* ChannelConveneRequest */
static int hf_t124_channelConveneConfirm = -1; /* ChannelConveneConfirm */
static int hf_t124_channelDisbandRequest = -1; /* ChannelDisbandRequest */
static int hf_t124_channelDisbandIndication = -1; /* ChannelDisbandIndication */
static int hf_t124_channelAdmitRequest = -1; /* ChannelAdmitRequest */
static int hf_t124_channelAdmitIndication = -1; /* ChannelAdmitIndication */
static int hf_t124_channelExpelRequest = -1; /* ChannelExpelRequest */
static int hf_t124_channelExpelIndication = -1; /* ChannelExpelIndication */
static int hf_t124_sendDataRequest = -1; /* SendDataRequest */
static int hf_t124_sendDataIndication = -1; /* SendDataIndication */
static int hf_t124_uniformSendDataRequest = -1; /* UniformSendDataRequest */
static int hf_t124_uniformSendDataIndication = -1; /* UniformSendDataIndication */
static int hf_t124_tokenGrabRequest = -1; /* TokenGrabRequest */
static int hf_t124_tokenGrabConfirm = -1; /* TokenGrabConfirm */
static int hf_t124_tokenInhibitRequest = -1; /* TokenInhibitRequest */
static int hf_t124_tokenInhibitConfirm = -1; /* TokenInhibitConfirm */
static int hf_t124_tokenGiveRequest = -1; /* TokenGiveRequest */
static int hf_t124_tokenGiveIndication = -1; /* TokenGiveIndication */
static int hf_t124_tokenGiveResponse = -1; /* TokenGiveResponse */
static int hf_t124_tokenGiveConfirm = -1; /* TokenGiveConfirm */
static int hf_t124_tokenPleaseRequest = -1; /* TokenPleaseRequest */
static int hf_t124_tokenPleaseIndication = -1; /* TokenPleaseIndication */
static int hf_t124_tokenReleaseRequest = -1; /* TokenReleaseRequest */
static int hf_t124_tokenReleaseConfirm = -1; /* TokenReleaseConfirm */
static int hf_t124_tokenTestRequest = -1; /* TokenTestRequest */
static int hf_t124_tokenTestConfirm = -1; /* TokenTestConfirm */
/* named bits */
static int hf_t124_Segmentation_begin = -1;
static int hf_t124_Segmentation_end = -1;
/* Initialize the subtree pointers */
static int ett_t124 = -1;
static int ett_t124_connectGCCPDU = -1;
static int hf_t124_ConnectData = -1;
static int hf_t124_connectGCCPDU = -1;
static int hf_t124_DomainMCSPDU_PDU = -1;
static guint32 channelId = -1;
static dissector_table_t t124_ns_dissector_table=NULL;
static dissector_table_t t124_sd_dissector_table=NULL;
static gint ett_t124_Key = -1;
static gint ett_t124_NonStandardParameter = -1;
static gint ett_t124_UserData = -1;
static gint ett_t124_UserData_item = -1;
static gint ett_t124_Password = -1;
static gint ett_t124_PasswordSelector = -1;
static gint ett_t124_ChallengeResponseItem = -1;
static gint ett_t124_ChallengeResponseAlgorithm = -1;
static gint ett_t124_ChallengeItem = -1;
static gint ett_t124_ChallengeRequest = -1;
static gint ett_t124_SET_OF_ChallengeItem = -1;
static gint ett_t124_ChallengeResponse = -1;
static gint ett_t124_PasswordChallengeRequestResponse = -1;
static gint ett_t124_T_challengeRequestResponse = -1;
static gint ett_t124_ConferenceName = -1;
static gint ett_t124_ConferenceNameSelector = -1;
static gint ett_t124_ConferencePriorityScheme = -1;
static gint ett_t124_ConferencePriority = -1;
static gint ett_t124_NodeCategory = -1;
static gint ett_t124_ConferenceMode = -1;
static gint ett_t124_NetworkAddress = -1;
static gint ett_t124_NetworkAddress_item = -1;
static gint ett_t124_T_aggregatedChannel = -1;
static gint ett_t124_T_transferModes = -1;
static gint ett_t124_T_highLayerCompatibility = -1;
static gint ett_t124_T_transportConnection = -1;
static gint ett_t124_AsymmetryIndicator = -1;
static gint ett_t124_ConferenceDescriptor = -1;
static gint ett_t124_ConferenceCreateRequest = -1;
static gint ett_t124_SET_OF_Privilege = -1;
static gint ett_t124_ConferenceCreateResponse = -1;
static gint ett_t124_ConferenceQueryRequest = -1;
static gint ett_t124_ConferenceQueryResponse = -1;
static gint ett_t124_SET_OF_ConferenceDescriptor = -1;
static gint ett_t124_ConferenceJoinRequest = -1;
static gint ett_t124_ConferenceJoinResponse = -1;
static gint ett_t124_ConferenceInviteRequest = -1;
static gint ett_t124_ConferenceInviteResponse = -1;
static gint ett_t124_ConnectData = -1;
static gint ett_t124_ConnectGCCPDU = -1;
static gint ett_t124_Segmentation = -1;
static gint ett_t124_PlumbDomainIndication = -1;
static gint ett_t124_ErectDomainRequest = -1;
static gint ett_t124_ChannelAttributes = -1;
static gint ett_t124_T_static = -1;
static gint ett_t124_T_userId = -1;
static gint ett_t124_T_private = -1;
static gint ett_t124_SET_OF_UserId = -1;
static gint ett_t124_T_assigned = -1;
static gint ett_t124_MergeChannelsRequest = -1;
static gint ett_t124_SET_OF_ChannelAttributes = -1;
static gint ett_t124_SET_OF_ChannelId = -1;
static gint ett_t124_MergeChannelsConfirm = -1;
static gint ett_t124_PurgeChannelsIndication = -1;
static gint ett_t124_TokenAttributes = -1;
static gint ett_t124_T_grabbed = -1;
static gint ett_t124_T_inhibited = -1;
static gint ett_t124_T_giving = -1;
static gint ett_t124_T_ungivable = -1;
static gint ett_t124_T_given = -1;
static gint ett_t124_MergeTokensRequest = -1;
static gint ett_t124_SET_OF_TokenAttributes = -1;
static gint ett_t124_SET_OF_TokenId = -1;
static gint ett_t124_MergeTokensConfirm = -1;
static gint ett_t124_PurgeTokensIndication = -1;
static gint ett_t124_DisconnectProviderUltimatum = -1;
static gint ett_t124_RejectMCSPDUUltimatum = -1;
static gint ett_t124_AttachUserRequest = -1;
static gint ett_t124_AttachUserConfirm = -1;
static gint ett_t124_DetachUserRequest = -1;
static gint ett_t124_DetachUserIndication = -1;
static gint ett_t124_ChannelJoinRequest = -1;
static gint ett_t124_ChannelJoinConfirm = -1;
static gint ett_t124_ChannelLeaveRequest = -1;
static gint ett_t124_ChannelConveneRequest = -1;
static gint ett_t124_ChannelConveneConfirm = -1;
static gint ett_t124_ChannelDisbandRequest = -1;
static gint ett_t124_ChannelDisbandIndication = -1;
static gint ett_t124_ChannelAdmitRequest = -1;
static gint ett_t124_ChannelAdmitIndication = -1;
static gint ett_t124_ChannelExpelRequest = -1;
static gint ett_t124_ChannelExpelIndication = -1;
static gint ett_t124_SendDataRequest = -1;
static gint ett_t124_SendDataIndication = -1;
static gint ett_t124_UniformSendDataRequest = -1;
static gint ett_t124_UniformSendDataIndication = -1;
static gint ett_t124_TokenGrabRequest = -1;
static gint ett_t124_TokenGrabConfirm = -1;
static gint ett_t124_TokenInhibitRequest = -1;
static gint ett_t124_TokenInhibitConfirm = -1;
static gint ett_t124_TokenGiveRequest = -1;
static gint ett_t124_TokenGiveIndication = -1;
static gint ett_t124_TokenGiveResponse = -1;
static gint ett_t124_TokenGiveConfirm = -1;
static gint ett_t124_TokenPleaseRequest = -1;
static gint ett_t124_TokenPleaseIndication = -1;
static gint ett_t124_TokenReleaseRequest = -1;
static gint ett_t124_TokenReleaseConfirm = -1;
static gint ett_t124_TokenTestRequest = -1;
static gint ett_t124_TokenTestConfirm = -1;
static gint ett_t124_DomainMCSPDU = -1;
static int
dissect_t124_DynamicChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1001U, 65535U, NULL, FALSE);
return offset;
}
static int
dissect_t124_UserID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_DynamicChannelID(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_H221NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 255, FALSE, (tvbuff_t**)&actx->private_data);
return offset;
}
static int
dissect_t124_T_object(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &actx->external.direct_reference);
return offset;
}
static const value_string t124_Key_vals[] = {
{ 0, "object" },
{ 1, "h221NonStandard" },
{ 0, NULL }
};
static const per_choice_t Key_choice[] = {
{ 0, &hf_t124_object , ASN1_NO_EXTENSIONS , dissect_t124_T_object },
{ 1, &hf_t124_h221NonStandard, ASN1_NO_EXTENSIONS , dissect_t124_H221NonStandardIdentifier },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_Key(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_Key, Key_choice,
NULL);
return offset;
}
static int
dissect_t124_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, NULL);
return offset;
}
static const per_sequence_t NonStandardParameter_sequence[] = {
{ &hf_t124_key , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
{ &hf_t124_data , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_NonStandardParameter, NonStandardParameter_sequence);
return offset;
}
static int
dissect_t124_TextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
0, 255, FALSE);
return offset;
}
static int
dissect_t124_SimpleTextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
0, 255, FALSE);
return offset;
}
static int
dissect_t124_SimpleNumericString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "0123456789", 10,
NULL);
return offset;
}
static int
dissect_t124_DiallingString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 16, FALSE, "0123456789", 10,
NULL);
return offset;
}
static int
dissect_t124_SubAddressString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 40, FALSE, "0123456789", 10,
NULL);
return offset;
}
static int
dissect_t124_ExtraDiallingString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_t124_TextString,
"TextString", 1, 255, FALSE);
return offset;
}
static int
dissect_t124_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *next_tvb = NULL;
tvbuff_t *t124NSIdentifier = (tvbuff_t*)actx->private_data;
guint8 *ns = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if(next_tvb && t124NSIdentifier) {
ns = tvb_get_string_enc(actx->pinfo->pool, t124NSIdentifier, 0, tvb_reported_length(t124NSIdentifier), ENC_ASCII|ENC_NA);
if(ns != NULL) {
dissector_try_string_new(t124_ns_dissector_table, ns, next_tvb, actx->pinfo, top_tree, FALSE, NULL);
}
}
return offset;
}
static const per_sequence_t UserData_item_sequence[] = {
{ &hf_t124_key , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
{ &hf_t124_value , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_T_value },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_UserData_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_UserData_item, UserData_item_sequence);
return offset;
}
static const per_sequence_t UserData_set_of[1] = {
{ &hf_t124_UserData_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserData_item },
};
static int
dissect_t124_UserData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_UserData, UserData_set_of);
return offset;
}
static const per_sequence_t Password_sequence[] = {
{ &hf_t124_numeric , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SimpleNumericString },
{ &hf_t124_text , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SimpleTextString },
{ &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_TextString },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_Password, Password_sequence);
return offset;
}
static const value_string t124_PasswordSelector_vals[] = {
{ 0, "numeric" },
{ 1, "text" },
{ 2, "unicodeText" },
{ 0, NULL }
};
static const per_choice_t PasswordSelector_choice[] = {
{ 0, &hf_t124_numeric , ASN1_EXTENSION_ROOT , dissect_t124_SimpleNumericString },
{ 1, &hf_t124_text , ASN1_EXTENSION_ROOT , dissect_t124_SimpleTextString },
{ 2, &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, dissect_t124_TextString },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_PasswordSelector(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_PasswordSelector, PasswordSelector_choice,
NULL);
return offset;
}
static const value_string t124_ChallengeResponseItem_vals[] = {
{ 0, "passwordString" },
{ 1, "responseData" },
{ 0, NULL }
};
static const per_choice_t ChallengeResponseItem_choice[] = {
{ 0, &hf_t124_passwordString , ASN1_EXTENSION_ROOT , dissect_t124_PasswordSelector },
{ 1, &hf_t124_responseData , ASN1_EXTENSION_ROOT , dissect_t124_UserData },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ChallengeResponseItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ChallengeResponseItem, ChallengeResponseItem_choice,
NULL);
return offset;
}
static int
dissect_t124_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
return offset;
}
static const value_string t124_ChallengeResponseAlgorithm_vals[] = {
{ 0, "passwordInTheClear" },
{ 1, "nonStandardAlgorithm" },
{ 0, NULL }
};
static const per_choice_t ChallengeResponseAlgorithm_choice[] = {
{ 0, &hf_t124_passwordInTheClear, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 1, &hf_t124_nonStandardAlgorithm, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ChallengeResponseAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ChallengeResponseAlgorithm, ChallengeResponseAlgorithm_choice,
NULL);
return offset;
}
static const per_sequence_t ChallengeItem_sequence[] = {
{ &hf_t124_responseAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseAlgorithm },
{ &hf_t124_challengeData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserData },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChallengeItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChallengeItem, ChallengeItem_sequence);
return offset;
}
static int
dissect_t124_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
return offset;
}
static const per_sequence_t SET_OF_ChallengeItem_set_of[1] = {
{ &hf_t124_challengeSet_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeItem },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_ChallengeItem, SET_OF_ChallengeItem_set_of);
return offset;
}
static const per_sequence_t ChallengeRequest_sequence[] = {
{ &hf_t124_challengeTag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
{ &hf_t124_challengeSet , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChallengeItem },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChallengeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChallengeRequest, ChallengeRequest_sequence);
return offset;
}
static const per_sequence_t ChallengeResponse_sequence[] = {
{ &hf_t124_challengeTag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
{ &hf_t124_responseAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseAlgorithm },
{ &hf_t124_responseItem , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ChallengeResponseItem },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChallengeResponse, ChallengeResponse_sequence);
return offset;
}
static const per_sequence_t T_challengeRequestResponse_sequence[] = {
{ &hf_t124_challengeRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ChallengeRequest },
{ &hf_t124_challengeResponse, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ChallengeResponse },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_challengeRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_challengeRequestResponse, T_challengeRequestResponse_sequence);
return offset;
}
static const value_string t124_PasswordChallengeRequestResponse_vals[] = {
{ 0, "passwordInTheClear" },
{ 1, "challengeRequestResponse" },
{ 0, NULL }
};
static const per_choice_t PasswordChallengeRequestResponse_choice[] = {
{ 0, &hf_t124_passwordInTheClear_01, ASN1_EXTENSION_ROOT , dissect_t124_PasswordSelector },
{ 1, &hf_t124_challengeRequestResponse, ASN1_EXTENSION_ROOT , dissect_t124_T_challengeRequestResponse },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_PasswordChallengeRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_PasswordChallengeRequestResponse, PasswordChallengeRequestResponse_choice,
NULL);
return offset;
}
static const per_sequence_t ConferenceName_sequence[] = {
{ &hf_t124_numeric , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SimpleNumericString },
{ &hf_t124_text , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SimpleTextString },
{ &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_TextString },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceName, ConferenceName_sequence);
return offset;
}
static const value_string t124_ConferenceNameSelector_vals[] = {
{ 0, "numeric" },
{ 1, "text" },
{ 2, "unicodeText" },
{ 0, NULL }
};
static const per_choice_t ConferenceNameSelector_choice[] = {
{ 0, &hf_t124_numeric , ASN1_EXTENSION_ROOT , dissect_t124_SimpleNumericString },
{ 1, &hf_t124_text , ASN1_EXTENSION_ROOT , dissect_t124_SimpleTextString },
{ 2, &hf_t124_unicodeText , ASN1_NOT_EXTENSION_ROOT, dissect_t124_TextString },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ConferenceNameSelector(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceNameSelector, ConferenceNameSelector_choice,
NULL);
return offset;
}
static int
dissect_t124_ConferenceNameModifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_SimpleNumericString(tvb, offset, actx, tree, hf_index);
return offset;
}
static const value_string t124_Privilege_vals[] = {
{ 0, "terminate" },
{ 1, "ejectUser" },
{ 2, "add" },
{ 3, "lockUnlock" },
{ 4, "transfer" },
{ 0, NULL }
};
static int
dissect_t124_Privilege(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, NULL, TRUE, 0, NULL);
return offset;
}
static const value_string t124_TerminationMethod_vals[] = {
{ 0, "automatic" },
{ 1, "manual" },
{ 0, NULL }
};
static int
dissect_t124_TerminationMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, NULL, TRUE, 0, NULL);
return offset;
}
static const value_string t124_ConferencePriorityScheme_vals[] = {
{ 0, "nonStandardScheme" },
{ 0, NULL }
};
static const per_choice_t ConferencePriorityScheme_choice[] = {
{ 0, &hf_t124_nonStandardScheme, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ConferencePriorityScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ConferencePriorityScheme, ConferencePriorityScheme_choice,
NULL);
return offset;
}
static int
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_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, NULL, FALSE);
return offset;
}
static const per_sequence_t ConferencePriority_sequence[] = {
{ &hf_t124_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_65535 },
{ &hf_t124_scheme , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferencePriorityScheme },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferencePriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferencePriority, ConferencePriority_sequence);
return offset;
}
static const value_string t124_NodeCategory_vals[] = {
{ 0, "conventional" },
{ 1, "counted" },
{ 2, "anonymous" },
{ 3, "nonStandardCategory" },
{ 0, NULL }
};
static const per_choice_t NodeCategory_choice[] = {
{ 0, &hf_t124_conventional , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 1, &hf_t124_counted , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 2, &hf_t124_anonymous , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 3, &hf_t124_nonStandardCategory, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_NodeCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_NodeCategory, NodeCategory_choice,
NULL);
return offset;
}
static const value_string t124_ConferenceMode_vals[] = {
{ 0, "conventional-only" },
{ 1, "counted-only" },
{ 2, "anonymous-only" },
{ 3, "conventional-control" },
{ 4, "unrestricted-mode" },
{ 5, "non-standard-mode" },
{ 0, NULL }
};
static const per_choice_t ConferenceMode_choice[] = {
{ 0, &hf_t124_conventional_only, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 1, &hf_t124_counted_only , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 2, &hf_t124_anonymous_only , ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 3, &hf_t124_conventional_control, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 4, &hf_t124_unrestricted_mode, ASN1_EXTENSION_ROOT , dissect_t124_NULL },
{ 5, &hf_t124_non_standard_mode, ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ConferenceMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceMode, ConferenceMode_choice,
NULL);
return offset;
}
static int
dissect_t124_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
return offset;
}
static const per_sequence_t T_transferModes_sequence[] = {
{ &hf_t124_speech , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_voice_band , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_56k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_64k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_128k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_192k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_256k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_320k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_384k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_512k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_768k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_1152k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_1472k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_1536k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_digital_1920k , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_packet_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_frame_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_atm , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_transferModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_transferModes, T_transferModes_sequence);
return offset;
}
static const per_sequence_t T_highLayerCompatibility_sequence[] = {
{ &hf_t124_telephony3kHz , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_telephony7kHz , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_videotelephony , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_videoconference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_audiographic , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_audiovisual , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_multimedia , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_highLayerCompatibility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_highLayerCompatibility, T_highLayerCompatibility_sequence);
return offset;
}
static const per_sequence_t T_aggregatedChannel_sequence[] = {
{ &hf_t124_transferModes , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_T_transferModes },
{ &hf_t124_internationalNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_DiallingString },
{ &hf_t124_subAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SubAddressString },
{ &hf_t124_extraDialling , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ExtraDiallingString },
{ &hf_t124_highLayerCompatibility, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_T_highLayerCompatibility },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_aggregatedChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_aggregatedChannel, T_aggregatedChannel_sequence);
return offset;
}
static int
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_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1, 20, FALSE, NULL);
return offset;
}
static const per_sequence_t T_transportConnection_sequence[] = {
{ &hf_t124_nsapAddress , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING_SIZE_1_20 },
{ &hf_t124_transportSelector, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_OCTET_STRING },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_transportConnection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_transportConnection, T_transportConnection_sequence);
return offset;
}
static const value_string t124_NetworkAddress_item_vals[] = {
{ 0, "aggregatedChannel" },
{ 1, "transportConnection" },
{ 2, "nonStandard" },
{ 0, NULL }
};
static const per_choice_t NetworkAddress_item_choice[] = {
{ 0, &hf_t124_aggregatedChannel, ASN1_EXTENSION_ROOT , dissect_t124_T_aggregatedChannel },
{ 1, &hf_t124_transportConnection, ASN1_EXTENSION_ROOT , dissect_t124_T_transportConnection },
{ 2, &hf_t124_nonStandard , ASN1_EXTENSION_ROOT , dissect_t124_NonStandardParameter },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_NetworkAddress_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_NetworkAddress_item, NetworkAddress_item_choice,
NULL);
return offset;
}
static const per_sequence_t NetworkAddress_sequence_of[1] = {
{ &hf_t124_NetworkAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_NetworkAddress_item },
};
static int
dissect_t124_NetworkAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
ett_t124_NetworkAddress, NetworkAddress_sequence_of,
1, 64, FALSE);
return offset;
}
static const value_string t124_NodeType_vals[] = {
{ 0, "terminal" },
{ 1, "multiportTerminal" },
{ 2, "mcu" },
{ 0, NULL }
};
static int
dissect_t124_NodeType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3, NULL, TRUE, 0, NULL);
return offset;
}
static int
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_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 4294967295U, NULL, FALSE);
return offset;
}
static const value_string t124_AsymmetryIndicator_vals[] = {
{ 0, "callingNode" },
{ 1, "calledNode" },
{ 2, "unknown" },
{ 0, NULL }
};
static const per_choice_t AsymmetryIndicator_choice[] = {
{ 0, &hf_t124_callingNode , ASN1_NO_EXTENSIONS , dissect_t124_NULL },
{ 1, &hf_t124_calledNode , ASN1_NO_EXTENSIONS , dissect_t124_NULL },
{ 2, &hf_t124_unknown , ASN1_NO_EXTENSIONS , dissect_t124_INTEGER_0_4294967295 },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_AsymmetryIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_AsymmetryIndicator, AsymmetryIndicator_choice,
NULL);
return offset;
}
static const per_sequence_t ConferenceDescriptor_sequence[] = {
{ &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
{ &hf_t124_conferenceNameModifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameModifier },
{ &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_networkAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_NetworkAddress },
{ &hf_t124_defaultConferenceFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t124_ConferenceMode },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceDescriptor, ConferenceDescriptor_sequence);
return offset;
}
static const per_sequence_t SET_OF_Privilege_set_of[1] = {
{ &hf_t124_conductorPrivileges_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Privilege },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_Privilege, SET_OF_Privilege_set_of);
return offset;
}
static const per_sequence_t ConferenceCreateRequest_sequence[] = {
{ &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
{ &hf_t124_convenerPassword, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_Password },
{ &hf_t124_password , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_Password },
{ &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
{ &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ &hf_t124_conferencePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferencePriority },
{ &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceCreateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceCreateRequest, ConferenceCreateRequest_sequence);
return offset;
}
static const value_string t124_T_result_vals[] = {
{ 0, "success" },
{ 1, "userRejected" },
{ 2, "resourcesNotAvailable" },
{ 3, "rejectedForSymmetryBreaking" },
{ 4, "lockedConferenceNotSupported" },
{ 0, NULL }
};
static int
dissect_t124_T_result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, NULL, TRUE, 0, NULL);
return offset;
}
static const per_sequence_t ConferenceCreateResponse_sequence[] = {
{ &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
{ &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
{ &hf_t124_result , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_T_result },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceCreateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceCreateResponse, ConferenceCreateResponse_sequence);
return offset;
}
static const per_sequence_t ConferenceQueryRequest_sequence[] = {
{ &hf_t124_nodeType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_NodeType },
{ &hf_t124_asymmetryIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_AsymmetryIndicator },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceQueryRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceQueryRequest, ConferenceQueryRequest_sequence);
return offset;
}
static const per_sequence_t SET_OF_ConferenceDescriptor_set_of[1] = {
{ &hf_t124_conferenceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceDescriptor },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_ConferenceDescriptor, SET_OF_ConferenceDescriptor_set_of);
return offset;
}
static const value_string t124_QueryResponseResult_vals[] = {
{ 0, "success" },
{ 1, "userRejected" },
{ 0, NULL }
};
static int
dissect_t124_QueryResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, NULL, TRUE, 0, NULL);
return offset;
}
static const per_sequence_t ConferenceQueryResponse_sequence[] = {
{ &hf_t124_nodeType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_NodeType },
{ &hf_t124_asymmetryIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_AsymmetryIndicator },
{ &hf_t124_conferenceList , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ConferenceDescriptor },
{ &hf_t124_queryResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_QueryResponseResult },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ &hf_t124_waitForInvitationFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_BOOLEAN },
{ &hf_t124_noUnlistedConferenceFlag, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_BOOLEAN },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceQueryResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceQueryResponse, ConferenceQueryResponse_sequence);
return offset;
}
static const per_sequence_t ConferenceJoinRequest_sequence[] = {
{ &hf_t124_conferenceName_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameSelector },
{ &hf_t124_conferenceNameModifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameModifier },
{ &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_INTEGER },
{ &hf_t124_password_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordChallengeRequestResponse },
{ &hf_t124_convenerPassword_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordSelector },
{ &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceJoinRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceJoinRequest, ConferenceJoinRequest_sequence);
return offset;
}
static const value_string t124_JoinResponseResult_vals[] = {
{ 0, "success" },
{ 1, "userRejected" },
{ 2, "invalidConference" },
{ 3, "invalidPassword" },
{ 4, "invalidConvenerPassword" },
{ 5, "challengeResponseRequired" },
{ 6, "invalidChallengeResponse" },
{ 0, NULL }
};
static int
dissect_t124_JoinResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, NULL, TRUE, 0, NULL);
return offset;
}
static const per_sequence_t ConferenceJoinResponse_sequence[] = {
{ &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserID },
{ &hf_t124_topNodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
{ &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
{ &hf_t124_conferenceNameAlias, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_ConferenceNameSelector },
{ &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
{ &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_password_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_PasswordChallengeRequestResponse },
{ &hf_t124_joinResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_JoinResponseResult },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
{ &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceJoinResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceJoinResponse, ConferenceJoinResponse_sequence);
return offset;
}
static const per_sequence_t ConferenceInviteRequest_sequence[] = {
{ &hf_t124_conferenceName , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_ConferenceName },
{ &hf_t124_nodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
{ &hf_t124_topNodeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_UserID },
{ &hf_t124_tag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER },
{ &hf_t124_passwordInTheClearRequired, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_lockedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_listedConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_conductibleConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_terminationMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_TerminationMethod },
{ &hf_t124_conductorPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_nonConductedPrivileges, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_SET_OF_Privilege },
{ &hf_t124_conferenceDescription, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_callerIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_TextString },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ &hf_t124_conferencePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferencePriority },
{ &hf_t124_nodeCategory , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_NodeCategory },
{ &hf_t124_conferenceMode , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_t124_ConferenceMode },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceInviteRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceInviteRequest, ConferenceInviteRequest_sequence);
return offset;
}
static const value_string t124_InviteResponseResult_vals[] = {
{ 0, "success" },
{ 1, "userRejected" },
{ 0, NULL }
};
static int
dissect_t124_InviteResponseResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, NULL, TRUE, 0, NULL);
return offset;
}
static const per_sequence_t ConferenceInviteResponse_sequence[] = {
{ &hf_t124_inviteResponseResult, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_t124_InviteResponseResult },
{ &hf_t124_userData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_t124_UserData },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ConferenceInviteResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConferenceInviteResponse, ConferenceInviteResponse_sequence);
return offset;
}
static int
dissect_t124_T_connectPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *next_tvb = NULL;
proto_tree *next_tree = NULL;
int old_offset = 0;
old_offset = offset;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if(next_tvb) {
/* "2a -> ConnectData::connectPDU length = 42 bytes */
/* This length MUST be ignored by the client." */
/* Not sure why - but lets ignore the length. */
/* We assume the OCTET STRING is all of the remaining bytes */
if(tvb_reported_length(next_tvb) == 42) {
/* this is perhaps a naive ... */
next_tvb = tvb_new_subset_remaining(tvb, (old_offset>>3)+1);
}
next_tree = proto_item_add_subtree(actx->created_item, ett_t124_connectGCCPDU);
dissect_t124_ConnectGCCPDU(next_tvb, 0, actx, next_tree, hf_t124_connectGCCPDU);
}
return offset;
}
static const per_sequence_t ConnectData_sequence[] = {
{ &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
{ &hf_t124_connectPDU , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_connectPDU },
{ NULL, 0, 0, NULL }
};
int
dissect_t124_ConnectData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ConnectData, ConnectData_sequence);
return offset;
}
const value_string t124_ConnectGCCPDU_vals[] = {
{ 0, "conferenceCreateRequest" },
{ 1, "conferenceCreateResponse" },
{ 2, "conferenceQueryRequest" },
{ 3, "conferenceQueryResponse" },
{ 4, "conferenceJoinRequest" },
{ 5, "conferenceJoinResponse" },
{ 6, "conferenceInviteRequest" },
{ 7, "conferenceInviteResponse" },
{ 0, NULL }
};
static const per_choice_t ConnectGCCPDU_choice[] = {
{ 0, &hf_t124_conferenceCreateRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceCreateRequest },
{ 1, &hf_t124_conferenceCreateResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceCreateResponse },
{ 2, &hf_t124_conferenceQueryRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceQueryRequest },
{ 3, &hf_t124_conferenceQueryResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceQueryResponse },
{ 4, &hf_t124_conferenceJoinRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceJoinRequest },
{ 5, &hf_t124_conferenceJoinResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceJoinResponse },
{ 6, &hf_t124_conferenceInviteRequest, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceInviteRequest },
{ 7, &hf_t124_conferenceInviteResponse, ASN1_EXTENSION_ROOT , dissect_t124_ConferenceInviteResponse },
{ 0, NULL, 0, NULL }
};
int
dissect_t124_ConnectGCCPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ConnectGCCPDU, ConnectGCCPDU_choice,
NULL);
return offset;
}
static int
dissect_t124_ChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &channelId, FALSE);
if(hf_index == hf_t124_channelId_03)
col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%d", channelId);
return offset;
}
static int
dissect_t124_StaticChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_ChannelId(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_DynamicChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_ChannelId(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_UserId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_PrivateChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_AssignedChannelId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_t124_DynamicChannelId(tvb, offset, actx, tree, hf_index);
return offset;
}
static int
dissect_t124_TokenId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 65535U, NULL, FALSE);
return offset;
}
static const value_string t124_TokenStatus_vals[] = {
{ 0, "notInUse" },
{ 1, "selfGrabbed" },
{ 2, "otherGrabbed" },
{ 3, "selfInhibited" },
{ 4, "otherInhibited" },
{ 5, "selfRecipient" },
{ 6, "selfGiving" },
{ 7, "otherGiving" },
{ 0, NULL }
};
static int
dissect_t124_TokenStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
8, NULL, FALSE, 0, NULL);
return offset;
}
static const value_string t124_DataPriority_vals[] = {
{ 0, "top" },
{ 1, "high" },
{ 2, "medium" },
{ 3, "low" },
{ 0, NULL }
};
static int
dissect_t124_DataPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, NULL, FALSE, 0, NULL);
return offset;
}
static int * const Segmentation_bits[] = {
&hf_t124_Segmentation_begin,
&hf_t124_Segmentation_end,
NULL
};
static int
dissect_t124_Segmentation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2, 2, FALSE, Segmentation_bits, 2, NULL, NULL);
return offset;
}
static int
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_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
0U, NO_BOUND, NULL, FALSE);
return offset;
}
static const per_sequence_t PlumbDomainIndication_sequence[] = {
{ &hf_t124_heightLimit , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_PlumbDomainIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_PlumbDomainIndication, PlumbDomainIndication_sequence);
return offset;
}
static const per_sequence_t ErectDomainRequest_sequence[] = {
{ &hf_t124_subHeight , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
{ &hf_t124_subInterval , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_INTEGER_0_MAX },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ErectDomainRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ErectDomainRequest, ErectDomainRequest_sequence);
return offset;
}
static const per_sequence_t T_static_sequence[] = {
{ &hf_t124_channelId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_StaticChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_static(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_static, T_static_sequence);
return offset;
}
static const per_sequence_t T_userId_sequence[] = {
{ &hf_t124_joined , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_userId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_userId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_userId, T_userId_sequence);
return offset;
}
static const per_sequence_t SET_OF_UserId_set_of[1] = {
{ &hf_t124_admitted_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_UserId, SET_OF_UserId_set_of);
return offset;
}
static const per_sequence_t T_private_sequence[] = {
{ &hf_t124_joined , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_BOOLEAN },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ &hf_t124_manager , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_admitted , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_private(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_private, T_private_sequence);
return offset;
}
static const per_sequence_t T_assigned_sequence[] = {
{ &hf_t124_channelId_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_AssignedChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_assigned(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_assigned, T_assigned_sequence);
return offset;
}
static const value_string t124_ChannelAttributes_vals[] = {
{ 0, "static" },
{ 1, "userId" },
{ 2, "private" },
{ 3, "assigned" },
{ 0, NULL }
};
static const per_choice_t ChannelAttributes_choice[] = {
{ 0, &hf_t124_static , ASN1_NO_EXTENSIONS , dissect_t124_T_static },
{ 1, &hf_t124_userId , ASN1_NO_EXTENSIONS , dissect_t124_T_userId },
{ 2, &hf_t124_private , ASN1_NO_EXTENSIONS , dissect_t124_T_private },
{ 3, &hf_t124_assigned , ASN1_NO_EXTENSIONS , dissect_t124_T_assigned },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_ChannelAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelAttributes, ChannelAttributes_choice,
NULL);
return offset;
}
static const per_sequence_t SET_OF_ChannelAttributes_set_of[1] = {
{ &hf_t124_mergeChannels_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelAttributes },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_ChannelAttributes, SET_OF_ChannelAttributes_set_of);
return offset;
}
static const per_sequence_t SET_OF_ChannelId_set_of[1] = {
{ &hf_t124_purgeChannelIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_ChannelId, SET_OF_ChannelId_set_of);
return offset;
}
static const per_sequence_t MergeChannelsRequest_sequence[] = {
{ &hf_t124_mergeChannels , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelAttributes },
{ &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_MergeChannelsRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_MergeChannelsRequest, MergeChannelsRequest_sequence);
return offset;
}
static const per_sequence_t MergeChannelsConfirm_sequence[] = {
{ &hf_t124_mergeChannels , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelAttributes },
{ &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_MergeChannelsConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_MergeChannelsConfirm, MergeChannelsConfirm_sequence);
return offset;
}
static const per_sequence_t PurgeChannelsIndication_sequence[] = {
{ &hf_t124_detachUserIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ &hf_t124_purgeChannelIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_PurgeChannelsIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_PurgeChannelsIndication, PurgeChannelsIndication_sequence);
return offset;
}
static const per_sequence_t T_grabbed_sequence[] = {
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_grabbed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_grabbed, T_grabbed_sequence);
return offset;
}
static const per_sequence_t T_inhibited_sequence[] = {
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_inhibitors , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_inhibited(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_inhibited, T_inhibited_sequence);
return offset;
}
static const per_sequence_t T_giving_sequence[] = {
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_giving(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_giving, T_giving_sequence);
return offset;
}
static const per_sequence_t T_ungivable_sequence[] = {
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_grabber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_ungivable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_ungivable, T_ungivable_sequence);
return offset;
}
static const per_sequence_t T_given_sequence[] = {
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_T_given(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_T_given, T_given_sequence);
return offset;
}
static const value_string t124_TokenAttributes_vals[] = {
{ 0, "grabbed" },
{ 1, "inhibited" },
{ 2, "giving" },
{ 3, "ungivable" },
{ 4, "given" },
{ 0, NULL }
};
static const per_choice_t TokenAttributes_choice[] = {
{ 0, &hf_t124_grabbed , ASN1_NO_EXTENSIONS , dissect_t124_T_grabbed },
{ 1, &hf_t124_inhibited , ASN1_NO_EXTENSIONS , dissect_t124_T_inhibited },
{ 2, &hf_t124_giving , ASN1_NO_EXTENSIONS , dissect_t124_T_giving },
{ 3, &hf_t124_ungivable , ASN1_NO_EXTENSIONS , dissect_t124_T_ungivable },
{ 4, &hf_t124_given , ASN1_NO_EXTENSIONS , dissect_t124_T_given },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_TokenAttributes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_TokenAttributes, TokenAttributes_choice,
NULL);
return offset;
}
static const per_sequence_t SET_OF_TokenAttributes_set_of[1] = {
{ &hf_t124_mergeTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenAttributes },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_TokenAttributes, SET_OF_TokenAttributes_set_of);
return offset;
}
static const per_sequence_t SET_OF_TokenId_set_of[1] = {
{ &hf_t124_purgeTokenIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
};
static int
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_) {
offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
ett_t124_SET_OF_TokenId, SET_OF_TokenId_set_of);
return offset;
}
static const per_sequence_t MergeTokensRequest_sequence[] = {
{ &hf_t124_mergeTokens , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenAttributes },
{ &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_MergeTokensRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_MergeTokensRequest, MergeTokensRequest_sequence);
return offset;
}
static const per_sequence_t MergeTokensConfirm_sequence[] = {
{ &hf_t124_mergeTokens , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenAttributes },
{ &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_MergeTokensConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_MergeTokensConfirm, MergeTokensConfirm_sequence);
return offset;
}
static const per_sequence_t PurgeTokensIndication_sequence[] = {
{ &hf_t124_purgeTokenIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_PurgeTokensIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_PurgeTokensIndication, PurgeTokensIndication_sequence);
return offset;
}
static const value_string t124_Reason_vals[] = {
{ 0, "rn-domain-disconnected" },
{ 1, "rn-provider-initiated" },
{ 2, "rn-token-purged" },
{ 3, "rn-user-requested" },
{ 4, "rn-channel-purged" },
{ 0, NULL }
};
static int
dissect_t124_Reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, NULL, FALSE, 0, NULL);
return offset;
}
static const per_sequence_t DisconnectProviderUltimatum_sequence[] = {
{ &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_DisconnectProviderUltimatum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_DisconnectProviderUltimatum, DisconnectProviderUltimatum_sequence);
return offset;
}
static const value_string t124_Diagnostic_vals[] = {
{ 0, "dc-inconsistent-merge" },
{ 1, "dc-forbidden-PDU-downward" },
{ 2, "dc-forbidden-PDU-upward" },
{ 3, "dc-invalid-BER-encoding" },
{ 4, "dc-invalid-PER-encoding" },
{ 5, "dc-misrouted-user" },
{ 6, "dc-unrequested-confirm" },
{ 7, "dc-wrong-transport-priority" },
{ 8, "dc-channel-id-conflict" },
{ 9, "dc-token-id-conflict" },
{ 10, "dc-not-user-id-channel" },
{ 11, "dc-too-many-channels" },
{ 12, "dc-too-many-tokens" },
{ 13, "dc-too-many-users" },
{ 0, NULL }
};
static int
dissect_t124_Diagnostic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
14, NULL, FALSE, 0, NULL);
return offset;
}
static const per_sequence_t RejectMCSPDUUltimatum_sequence[] = {
{ &hf_t124_diagnostic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Diagnostic },
{ &hf_t124_initialOctets , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_RejectMCSPDUUltimatum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_RejectMCSPDUUltimatum, RejectMCSPDUUltimatum_sequence);
return offset;
}
static const per_sequence_t AttachUserRequest_sequence[] = {
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_AttachUserRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_AttachUserRequest, AttachUserRequest_sequence);
return offset;
}
static const value_string t124_Result_vals[] = {
{ 0, "rt-successful" },
{ 1, "rt-domain-merging" },
{ 2, "rt-domain-not-hierarchical" },
{ 3, "rt-no-such-channel" },
{ 4, "rt-no-such-domain" },
{ 5, "rt-no-such-user" },
{ 6, "rt-not-admitted" },
{ 7, "rt-other-user-id" },
{ 8, "rt-parameters-unacceptable" },
{ 9, "rt-token-not-available" },
{ 10, "rt-token-not-possessed" },
{ 11, "rt-too-many-channels" },
{ 12, "rt-too-many-tokens" },
{ 13, "rt-too-many-users" },
{ 14, "rt-unspecified-failure" },
{ 15, "rt-user-rejected" },
{ 0, NULL }
};
static int
dissect_t124_Result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
16, NULL, FALSE, 0, NULL);
return offset;
}
static const per_sequence_t AttachUserConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_AttachUserConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_AttachUserConfirm, AttachUserConfirm_sequence);
return offset;
}
static const per_sequence_t DetachUserRequest_sequence[] = {
{ &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_DetachUserRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_DetachUserRequest, DetachUserRequest_sequence);
return offset;
}
static const per_sequence_t DetachUserIndication_sequence[] = {
{ &hf_t124_reason , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Reason },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_DetachUserIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_DetachUserIndication, DetachUserIndication_sequence);
return offset;
}
static const per_sequence_t ChannelJoinRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelJoinRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelJoinRequest, ChannelJoinRequest_sequence);
return offset;
}
static const per_sequence_t ChannelJoinConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_requested , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelJoinConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelJoinConfirm, ChannelJoinConfirm_sequence);
return offset;
}
static const per_sequence_t ChannelLeaveRequest_sequence[] = {
{ &hf_t124_channelIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_ChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelLeaveRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelLeaveRequest, ChannelLeaveRequest_sequence);
return offset;
}
static const per_sequence_t ChannelConveneRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelConveneRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelConveneRequest, ChannelConveneRequest_sequence);
return offset;
}
static const per_sequence_t ChannelConveneConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_t124_PrivateChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelConveneConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelConveneConfirm, ChannelConveneConfirm_sequence);
return offset;
}
static const per_sequence_t ChannelDisbandRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelDisbandRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelDisbandRequest, ChannelDisbandRequest_sequence);
return offset;
}
static const per_sequence_t ChannelDisbandIndication_sequence[] = {
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelDisbandIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelDisbandIndication, ChannelDisbandIndication_sequence);
return offset;
}
static const per_sequence_t ChannelAdmitRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelAdmitRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelAdmitRequest, ChannelAdmitRequest_sequence);
return offset;
}
static const per_sequence_t ChannelAdmitIndication_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelAdmitIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelAdmitIndication, ChannelAdmitIndication_sequence);
return offset;
}
static const per_sequence_t ChannelExpelRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelExpelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelExpelRequest, ChannelExpelRequest_sequence);
return offset;
}
static const per_sequence_t ChannelExpelIndication_sequence[] = {
{ &hf_t124_channelId_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_PrivateChannelId },
{ &hf_t124_userIds , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_SET_OF_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_ChannelExpelIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_ChannelExpelIndication, ChannelExpelIndication_sequence);
return offset;
}
static int
dissect_t124_T_userData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if(next_tvb) {
dissector_try_uint_new(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree, FALSE, NULL);
}
return offset;
}
static const per_sequence_t SendDataRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
{ &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
{ &hf_t124_userData_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_userData },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_SendDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_SendDataRequest, SendDataRequest_sequence);
return offset;
}
static int
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_) {
tvbuff_t *next_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &next_tvb);
if(next_tvb) {
dissector_try_uint(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree);
}
return offset;
}
static const per_sequence_t SendDataIndication_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
{ &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
{ &hf_t124_userData_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_T_userData_01 },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_SendDataIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_SendDataIndication, SendDataIndication_sequence);
return offset;
}
static const per_sequence_t UniformSendDataRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
{ &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
{ &hf_t124_userData_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_UniformSendDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_UniformSendDataRequest, UniformSendDataRequest_sequence);
return offset;
}
static const per_sequence_t UniformSendDataIndication_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_channelId_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_ChannelId },
{ &hf_t124_dataPriority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_DataPriority },
{ &hf_t124_segmentation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Segmentation },
{ &hf_t124_userData_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_OCTET_STRING },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_UniformSendDataIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_UniformSendDataIndication, UniformSendDataIndication_sequence);
return offset;
}
static const per_sequence_t TokenGrabRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGrabRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGrabRequest, TokenGrabRequest_sequence);
return offset;
}
static const per_sequence_t TokenGrabConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGrabConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGrabConfirm, TokenGrabConfirm_sequence);
return offset;
}
static const per_sequence_t TokenInhibitRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenInhibitRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenInhibitRequest, TokenInhibitRequest_sequence);
return offset;
}
static const per_sequence_t TokenInhibitConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenInhibitConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenInhibitConfirm, TokenInhibitConfirm_sequence);
return offset;
}
static const per_sequence_t TokenGiveRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGiveRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGiveRequest, TokenGiveRequest_sequence);
return offset;
}
static const per_sequence_t TokenGiveIndication_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGiveIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGiveIndication, TokenGiveIndication_sequence);
return offset;
}
static const per_sequence_t TokenGiveResponse_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_recipient , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGiveResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGiveResponse, TokenGiveResponse_sequence);
return offset;
}
static const per_sequence_t TokenGiveConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenGiveConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenGiveConfirm, TokenGiveConfirm_sequence);
return offset;
}
static const per_sequence_t TokenPleaseRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenPleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenPleaseRequest, TokenPleaseRequest_sequence);
return offset;
}
static const per_sequence_t TokenPleaseIndication_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenPleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenPleaseIndication, TokenPleaseIndication_sequence);
return offset;
}
static const per_sequence_t TokenReleaseRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenReleaseRequest, TokenReleaseRequest_sequence);
return offset;
}
static const per_sequence_t TokenReleaseConfirm_sequence[] = {
{ &hf_t124_result_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Result },
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenReleaseConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenReleaseConfirm, TokenReleaseConfirm_sequence);
return offset;
}
static const per_sequence_t TokenTestRequest_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenTestRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenTestRequest, TokenTestRequest_sequence);
return offset;
}
static const per_sequence_t TokenTestConfirm_sequence[] = {
{ &hf_t124_initiator , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_UserId },
{ &hf_t124_tokenId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenId },
{ &hf_t124_tokenStatus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_TokenStatus },
{ NULL, 0, 0, NULL }
};
static int
dissect_t124_TokenTestConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_t124_TokenTestConfirm, TokenTestConfirm_sequence);
return offset;
}
static const value_string t124_DomainMCSPDU_vals[] = {
{ 0, "plumbDomainIndication" },
{ 1, "erectDomainRequest" },
{ 2, "mergeChannelsRequest" },
{ 3, "mergeChannelsConfirm" },
{ 4, "purgeChannelsIndication" },
{ 5, "mergeTokensRequest" },
{ 6, "mergeTokensConfirm" },
{ 7, "purgeTokensIndication" },
{ 8, "disconnectProviderUltimatum" },
{ 9, "rejectMCSPDUUltimatum" },
{ 10, "attachUserRequest" },
{ 11, "attachUserConfirm" },
{ 12, "detachUserRequest" },
{ 13, "detachUserIndication" },
{ 14, "channelJoinRequest" },
{ 15, "channelJoinConfirm" },
{ 16, "channelLeaveRequest" },
{ 17, "channelConveneRequest" },
{ 18, "channelConveneConfirm" },
{ 19, "channelDisbandRequest" },
{ 20, "channelDisbandIndication" },
{ 21, "channelAdmitRequest" },
{ 22, "channelAdmitIndication" },
{ 23, "channelExpelRequest" },
{ 24, "channelExpelIndication" },
{ 25, "sendDataRequest" },
{ 26, "sendDataIndication" },
{ 27, "uniformSendDataRequest" },
{ 28, "uniformSendDataIndication" },
{ 29, "tokenGrabRequest" },
{ 30, "tokenGrabConfirm" },
{ 31, "tokenInhibitRequest" },
{ 32, "tokenInhibitConfirm" },
{ 33, "tokenGiveRequest" },
{ 34, "tokenGiveIndication" },
{ 35, "tokenGiveResponse" },
{ 36, "tokenGiveConfirm" },
{ 37, "tokenPleaseRequest" },
{ 38, "tokenPleaseIndication" },
{ 39, "tokenReleaseRequest" },
{ 40, "tokenReleaseConfirm" },
{ 41, "tokenTestRequest" },
{ 42, "tokenTestConfirm" },
{ 0, NULL }
};
static const per_choice_t DomainMCSPDU_choice[] = {
{ 0, &hf_t124_plumbDomainIndication, ASN1_NO_EXTENSIONS , dissect_t124_PlumbDomainIndication },
{ 1, &hf_t124_erectDomainRequest, ASN1_NO_EXTENSIONS , dissect_t124_ErectDomainRequest },
{ 2, &hf_t124_mergeChannelsRequest, ASN1_NO_EXTENSIONS , dissect_t124_MergeChannelsRequest },
{ 3, &hf_t124_mergeChannelsConfirm, ASN1_NO_EXTENSIONS , dissect_t124_MergeChannelsConfirm },
{ 4, &hf_t124_purgeChannelsIndication, ASN1_NO_EXTENSIONS , dissect_t124_PurgeChannelsIndication },
{ 5, &hf_t124_mergeTokensRequest, ASN1_NO_EXTENSIONS , dissect_t124_MergeTokensRequest },
{ 6, &hf_t124_mergeTokensConfirm, ASN1_NO_EXTENSIONS , dissect_t124_MergeTokensConfirm },
{ 7, &hf_t124_purgeTokensIndication, ASN1_NO_EXTENSIONS , dissect_t124_PurgeTokensIndication },
{ 8, &hf_t124_disconnectProviderUltimatum, ASN1_NO_EXTENSIONS , dissect_t124_DisconnectProviderUltimatum },
{ 9, &hf_t124_rejectMCSPDUUltimatum, ASN1_NO_EXTENSIONS , dissect_t124_RejectMCSPDUUltimatum },
{ 10, &hf_t124_attachUserRequest, ASN1_NO_EXTENSIONS , dissect_t124_AttachUserRequest },
{ 11, &hf_t124_attachUserConfirm, ASN1_NO_EXTENSIONS , dissect_t124_AttachUserConfirm },
{ 12, &hf_t124_detachUserRequest, ASN1_NO_EXTENSIONS , dissect_t124_DetachUserRequest },
{ 13, &hf_t124_detachUserIndication, ASN1_NO_EXTENSIONS , dissect_t124_DetachUserIndication },
{ 14, &hf_t124_channelJoinRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelJoinRequest },
{ 15, &hf_t124_channelJoinConfirm, ASN1_NO_EXTENSIONS , dissect_t124_ChannelJoinConfirm },
{ 16, &hf_t124_channelLeaveRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelLeaveRequest },
{ 17, &hf_t124_channelConveneRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelConveneRequest },
{ 18, &hf_t124_channelConveneConfirm, ASN1_NO_EXTENSIONS , dissect_t124_ChannelConveneConfirm },
{ 19, &hf_t124_channelDisbandRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelDisbandRequest },
{ 20, &hf_t124_channelDisbandIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelDisbandIndication },
{ 21, &hf_t124_channelAdmitRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelAdmitRequest },
{ 22, &hf_t124_channelAdmitIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelAdmitIndication },
{ 23, &hf_t124_channelExpelRequest, ASN1_NO_EXTENSIONS , dissect_t124_ChannelExpelRequest },
{ 24, &hf_t124_channelExpelIndication, ASN1_NO_EXTENSIONS , dissect_t124_ChannelExpelIndication },
{ 25, &hf_t124_sendDataRequest, ASN1_NO_EXTENSIONS , dissect_t124_SendDataRequest },
{ 26, &hf_t124_sendDataIndication, ASN1_NO_EXTENSIONS , dissect_t124_SendDataIndication },
{ 27, &hf_t124_uniformSendDataRequest, ASN1_NO_EXTENSIONS , dissect_t124_UniformSendDataRequest },
{ 28, &hf_t124_uniformSendDataIndication, ASN1_NO_EXTENSIONS , dissect_t124_UniformSendDataIndication },
{ 29, &hf_t124_tokenGrabRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenGrabRequest },
{ 30, &hf_t124_tokenGrabConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenGrabConfirm },
{ 31, &hf_t124_tokenInhibitRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenInhibitRequest },
{ 32, &hf_t124_tokenInhibitConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenInhibitConfirm },
{ 33, &hf_t124_tokenGiveRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveRequest },
{ 34, &hf_t124_tokenGiveIndication, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveIndication },
{ 35, &hf_t124_tokenGiveResponse, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveResponse },
{ 36, &hf_t124_tokenGiveConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenGiveConfirm },
{ 37, &hf_t124_tokenPleaseRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenPleaseRequest },
{ 38, &hf_t124_tokenPleaseIndication, ASN1_NO_EXTENSIONS , dissect_t124_TokenPleaseIndication },
{ 39, &hf_t124_tokenReleaseRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenReleaseRequest },
{ 40, &hf_t124_tokenReleaseConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenReleaseConfirm },
{ 41, &hf_t124_tokenTestRequest, ASN1_NO_EXTENSIONS , dissect_t124_TokenTestRequest },
{ 42, &hf_t124_tokenTestConfirm, ASN1_NO_EXTENSIONS , dissect_t124_TokenTestConfirm },
{ 0, NULL, 0, NULL }
};
static int
dissect_t124_DomainMCSPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
gint domainmcs_value;
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
ett_t124_DomainMCSPDU, DomainMCSPDU_choice,
&domainmcs_value);
switch(domainmcs_value) {
case 25: /* sendDataRequest */
case 26: /* sendDataIndication */
case 27: /* uniformSendDataRequest */
case 28: /* uniformSendDataIndication */
/* Do nothing */
break;
default:
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str(domainmcs_value, t124_DomainMCSPDU_vals, "Unknown"));
break;
}
return offset;
}
static const per_sequence_t t124Heur_sequence[] = {
{ &hf_t124_t124Identifier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_t124_Key },
{ NULL, 0, 0, NULL }
};
void
register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int proto)
{
dissector_handle_t dissector_handle;
dissector_handle=create_dissector_handle(dissector, proto);
dissector_add_string("t124.ns", nsKey, dissector_handle);
}
void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param, dissector_t dissector, int proto)
{
/* XXX: we should keep the sub-dissectors list per conversation
as the same channels may be used.
While we are just using RDP over T.124, then we can get away with it.
*/
dissector_handle_t dissector_handle;
dissector_handle=create_dissector_handle(dissector, proto);
dissector_add_uint("t124.sd", channelId_param, dissector_handle);
}
guint32 t124_get_last_channelId(void)
{
return channelId;
}
void t124_set_top_tree(proto_tree *tree)
{
top_tree = tree;
}
int dissect_DomainMCSPDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
offset = dissect_t124_DomainMCSPDU(tvb, offset, &asn1_ctx, tree, hf_t124_DomainMCSPDU_PDU);
offset += 7; offset >>= 3;
return offset;
}
static int
dissect_t124(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
asn1_ctx_t asn1_ctx;
top_tree = parent_tree;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.124");
col_clear(pinfo->cinfo, COL_INFO);
item = proto_tree_add_item(parent_tree, proto_t124, tvb, 0, tvb_captured_length(tvb), ENC_NA);
tree = proto_item_add_subtree(item, ett_t124);
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
dissect_t124_ConnectData(tvb, 0, &asn1_ctx, tree, hf_t124_ConnectData);
return tvb_captured_length(tvb);
}
static gboolean
dissect_t124_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
{
asn1_ctx_t asn1_ctx;
volatile gboolean failed = FALSE;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
/*
* We must catch all the "ran past the end of the packet" exceptions
* here and, if we catch one, just return FALSE. It's too painful
* to have a version of dissect_per_sequence() that checks all
* references to the tvbuff before making them and returning "no"
* if they would fail.
*
* We (ab)use hf_t124_connectGCCPDU here just to give a valid entry...
*/
TRY {
(void) dissect_per_sequence(tvb, 0, &asn1_ctx, NULL, hf_t124_connectGCCPDU, -1, t124Heur_sequence);
} CATCH_BOUNDS_ERRORS {
failed = TRUE;
} ENDTRY;
if (!failed && ((asn1_ctx.external.direct_reference != NULL) &&
(strcmp(asn1_ctx.external.direct_reference, "0.0.20.124.0.1") == 0))) {
dissect_t124(tvb, pinfo, parent_tree, data);
return TRUE;
}
return FALSE;
}
/*--- proto_register_t124 -------------------------------------------*/
void proto_register_t124(void) {
/* List of fields */
static hf_register_info hf[] = {
{ &hf_t124_ConnectData,
{ "ConnectData", "t124.ConnectData",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_connectGCCPDU,
{ "connectGCCPDU", "t124.connectGCCPDU",
FT_UINT32, BASE_DEC, VALS(t124_ConnectGCCPDU_vals), 0,
NULL, HFILL }},
{ &hf_t124_DomainMCSPDU_PDU,
{ "DomainMCSPDU", "t124.DomainMCSPDU",
FT_UINT32, BASE_DEC, VALS(t124_DomainMCSPDU_vals), 0,
NULL, HFILL }},
{ &hf_t124_object,
{ "object", "t124.object",
FT_OID, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_h221NonStandard,
{ "h221NonStandard", "t124.h221NonStandard",
FT_BYTES, BASE_NONE, NULL, 0,
"H221NonStandardIdentifier", HFILL }},
{ &hf_t124_key,
{ "key", "t124.key",
FT_UINT32, BASE_DEC, VALS(t124_Key_vals), 0,
NULL, HFILL }},
{ &hf_t124_data,
{ "data", "t124.data",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
{ &hf_t124_UserData_item,
{ "UserData item", "t124.UserData_item_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_value,
{ "value", "t124.value",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_numeric,
{ "numeric", "t124.numeric",
FT_STRING, BASE_NONE, NULL, 0,
"SimpleNumericString", HFILL }},
{ &hf_t124_text,
{ "text", "t124.text",
FT_STRING, BASE_NONE, NULL, 0,
"SimpleTextString", HFILL }},
{ &hf_t124_unicodeText,
{ "unicodeText", "t124.unicodeText",
FT_STRING, BASE_NONE, NULL, 0,
"TextString", HFILL }},
{ &hf_t124_passwordString,
{ "passwordString", "t124.passwordString",
FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
"PasswordSelector", HFILL }},
{ &hf_t124_responseData,
{ "responseData", "t124.responseData",
FT_UINT32, BASE_DEC, NULL, 0,
"UserData", HFILL }},
{ &hf_t124_passwordInTheClear,
{ "passwordInTheClear", "t124.passwordInTheClear_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_nonStandardAlgorithm,
{ "nonStandardAlgorithm", "t124.nonStandardAlgorithm_element",
FT_NONE, BASE_NONE, NULL, 0,
"NonStandardParameter", HFILL }},
{ &hf_t124_responseAlgorithm,
{ "responseAlgorithm", "t124.responseAlgorithm",
FT_UINT32, BASE_DEC, VALS(t124_ChallengeResponseAlgorithm_vals), 0,
"ChallengeResponseAlgorithm", HFILL }},
{ &hf_t124_challengeData,
{ "challengeData", "t124.challengeData",
FT_UINT32, BASE_DEC, NULL, 0,
"UserData", HFILL }},
{ &hf_t124_challengeTag,
{ "challengeTag", "t124.challengeTag",
FT_INT32, BASE_DEC, NULL, 0,
"INTEGER", HFILL }},
{ &hf_t124_challengeSet,
{ "challengeSet", "t124.challengeSet",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_ChallengeItem", HFILL }},
{ &hf_t124_challengeSet_item,
{ "ChallengeItem", "t124.ChallengeItem_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_responseItem,
{ "responseItem", "t124.responseItem",
FT_UINT32, BASE_DEC, VALS(t124_ChallengeResponseItem_vals), 0,
"ChallengeResponseItem", HFILL }},
{ &hf_t124_passwordInTheClear_01,
{ "passwordInTheClear", "t124.passwordInTheClear",
FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
"PasswordSelector", HFILL }},
{ &hf_t124_challengeRequestResponse,
{ "challengeRequestResponse", "t124.challengeRequestResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_challengeRequest,
{ "challengeRequest", "t124.challengeRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_challengeResponse,
{ "challengeResponse", "t124.challengeResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_nonStandardScheme,
{ "nonStandardScheme", "t124.nonStandardScheme_element",
FT_NONE, BASE_NONE, NULL, 0,
"NonStandardParameter", HFILL }},
{ &hf_t124_priority,
{ "priority", "t124.priority",
FT_UINT32, BASE_DEC, NULL, 0,
"INTEGER_0_65535", HFILL }},
{ &hf_t124_scheme,
{ "scheme", "t124.scheme",
FT_UINT32, BASE_DEC, VALS(t124_ConferencePriorityScheme_vals), 0,
"ConferencePriorityScheme", HFILL }},
{ &hf_t124_conventional,
{ "conventional", "t124.conventional_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_counted,
{ "counted", "t124.counted_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_anonymous,
{ "anonymous", "t124.anonymous_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_nonStandardCategory,
{ "nonStandardCategory", "t124.nonStandardCategory_element",
FT_NONE, BASE_NONE, NULL, 0,
"NonStandardParameter", HFILL }},
{ &hf_t124_conventional_only,
{ "conventional-only", "t124.conventional_only_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_counted_only,
{ "counted-only", "t124.counted_only_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_anonymous_only,
{ "anonymous-only", "t124.anonymous_only_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conventional_control,
{ "conventional-control", "t124.conventional_control_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_unrestricted_mode,
{ "unrestricted-mode", "t124.unrestricted_mode_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_non_standard_mode,
{ "non-standard-mode", "t124.non_standard_mode_element",
FT_NONE, BASE_NONE, NULL, 0,
"NonStandardParameter", HFILL }},
{ &hf_t124_NetworkAddress_item,
{ "NetworkAddress item", "t124.NetworkAddress_item",
FT_UINT32, BASE_DEC, VALS(t124_NetworkAddress_item_vals), 0,
NULL, HFILL }},
{ &hf_t124_aggregatedChannel,
{ "aggregatedChannel", "t124.aggregatedChannel_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_transferModes,
{ "transferModes", "t124.transferModes_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_speech,
{ "speech", "t124.speech",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_voice_band,
{ "voice-band", "t124.voice_band",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_56k,
{ "digital-56k", "t124.digital_56k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_64k,
{ "digital-64k", "t124.digital_64k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_128k,
{ "digital-128k", "t124.digital_128k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_192k,
{ "digital-192k", "t124.digital_192k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_256k,
{ "digital-256k", "t124.digital_256k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_320k,
{ "digital-320k", "t124.digital_320k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_384k,
{ "digital-384k", "t124.digital_384k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_512k,
{ "digital-512k", "t124.digital_512k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_768k,
{ "digital-768k", "t124.digital_768k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_1152k,
{ "digital-1152k", "t124.digital_1152k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_1472k,
{ "digital-1472k", "t124.digital_1472k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_1536k,
{ "digital-1536k", "t124.digital_1536k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_digital_1920k,
{ "digital-1920k", "t124.digital_1920k",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_packet_mode,
{ "packet-mode", "t124.packet_mode",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_frame_mode,
{ "frame-mode", "t124.frame_mode",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_atm,
{ "atm", "t124.atm",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_internationalNumber,
{ "internationalNumber", "t124.internationalNumber",
FT_STRING, BASE_NONE, NULL, 0,
"DiallingString", HFILL }},
{ &hf_t124_subAddress,
{ "subAddress", "t124.subAddress",
FT_STRING, BASE_NONE, NULL, 0,
"SubAddressString", HFILL }},
{ &hf_t124_extraDialling,
{ "extraDialling", "t124.extraDialling",
FT_STRING, BASE_NONE, NULL, 0,
"ExtraDiallingString", HFILL }},
{ &hf_t124_highLayerCompatibility,
{ "highLayerCompatibility", "t124.highLayerCompatibility_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_telephony3kHz,
{ "telephony3kHz", "t124.telephony3kHz",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_telephony7kHz,
{ "telephony7kHz", "t124.telephony7kHz",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_videotelephony,
{ "videotelephony", "t124.videotelephony",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_videoconference,
{ "videoconference", "t124.videoconference",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_audiographic,
{ "audiographic", "t124.audiographic",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_audiovisual,
{ "audiovisual", "t124.audiovisual",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_multimedia,
{ "multimedia", "t124.multimedia",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_transportConnection,
{ "transportConnection", "t124.transportConnection_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_nsapAddress,
{ "nsapAddress", "t124.nsapAddress",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING_SIZE_1_20", HFILL }},
{ &hf_t124_transportSelector,
{ "transportSelector", "t124.transportSelector",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
{ &hf_t124_nonStandard,
{ "nonStandard", "t124.nonStandard_element",
FT_NONE, BASE_NONE, NULL, 0,
"NonStandardParameter", HFILL }},
{ &hf_t124_callingNode,
{ "callingNode", "t124.callingNode_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_calledNode,
{ "calledNode", "t124.calledNode_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_unknown,
{ "unknown", "t124.unknown",
FT_UINT32, BASE_DEC, NULL, 0,
"INTEGER_0_4294967295", HFILL }},
{ &hf_t124_conferenceName,
{ "conferenceName", "t124.conferenceName_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceNameModifier,
{ "conferenceNameModifier", "t124.conferenceNameModifier",
FT_STRING, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceDescription,
{ "conferenceDescription", "t124.conferenceDescription",
FT_STRING, BASE_NONE, NULL, 0,
"TextString", HFILL }},
{ &hf_t124_lockedConference,
{ "lockedConference", "t124.lockedConference",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_passwordInTheClearRequired,
{ "passwordInTheClearRequired", "t124.passwordInTheClearRequired",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_networkAddress,
{ "networkAddress", "t124.networkAddress",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_defaultConferenceFlag,
{ "defaultConferenceFlag", "t124.defaultConferenceFlag",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_conferenceMode,
{ "conferenceMode", "t124.conferenceMode",
FT_UINT32, BASE_DEC, VALS(t124_ConferenceMode_vals), 0,
NULL, HFILL }},
{ &hf_t124_convenerPassword,
{ "convenerPassword", "t124.convenerPassword_element",
FT_NONE, BASE_NONE, NULL, 0,
"Password", HFILL }},
{ &hf_t124_password,
{ "password", "t124.password_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_listedConference,
{ "listedConference", "t124.listedConference",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_conductibleConference,
{ "conductibleConference", "t124.conductibleConference",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_terminationMethod,
{ "terminationMethod", "t124.terminationMethod",
FT_UINT32, BASE_DEC, VALS(t124_TerminationMethod_vals), 0,
NULL, HFILL }},
{ &hf_t124_conductorPrivileges,
{ "conductorPrivileges", "t124.conductorPrivileges",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_Privilege", HFILL }},
{ &hf_t124_conductorPrivileges_item,
{ "Privilege", "t124.Privilege",
FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
NULL, HFILL }},
{ &hf_t124_conductedPrivileges,
{ "conductedPrivileges", "t124.conductedPrivileges",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_Privilege", HFILL }},
{ &hf_t124_conductedPrivileges_item,
{ "Privilege", "t124.Privilege",
FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
NULL, HFILL }},
{ &hf_t124_nonConductedPrivileges,
{ "nonConductedPrivileges", "t124.nonConductedPrivileges",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_Privilege", HFILL }},
{ &hf_t124_nonConductedPrivileges_item,
{ "Privilege", "t124.Privilege",
FT_UINT32, BASE_DEC, VALS(t124_Privilege_vals), 0,
NULL, HFILL }},
{ &hf_t124_callerIdentifier,
{ "callerIdentifier", "t124.callerIdentifier",
FT_STRING, BASE_NONE, NULL, 0,
"TextString", HFILL }},
{ &hf_t124_userData,
{ "userData", "t124.userData",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferencePriority,
{ "conferencePriority", "t124.conferencePriority_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_nodeID,
{ "nodeID", "t124.nodeID",
FT_UINT32, BASE_DEC, NULL, 0,
"UserID", HFILL }},
{ &hf_t124_tag,
{ "tag", "t124.tag",
FT_INT32, BASE_DEC, NULL, 0,
"INTEGER", HFILL }},
{ &hf_t124_result,
{ "result", "t124.result",
FT_UINT32, BASE_DEC, VALS(t124_T_result_vals), 0,
NULL, HFILL }},
{ &hf_t124_nodeType,
{ "nodeType", "t124.nodeType",
FT_UINT32, BASE_DEC, VALS(t124_NodeType_vals), 0,
NULL, HFILL }},
{ &hf_t124_asymmetryIndicator,
{ "asymmetryIndicator", "t124.asymmetryIndicator",
FT_UINT32, BASE_DEC, VALS(t124_AsymmetryIndicator_vals), 0,
NULL, HFILL }},
{ &hf_t124_conferenceList,
{ "conferenceList", "t124.conferenceList",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_ConferenceDescriptor", HFILL }},
{ &hf_t124_conferenceList_item,
{ "ConferenceDescriptor", "t124.ConferenceDescriptor_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_queryResponseResult,
{ "result", "t124.result",
FT_UINT32, BASE_DEC, VALS(t124_QueryResponseResult_vals), 0,
"QueryResponseResult", HFILL }},
{ &hf_t124_waitForInvitationFlag,
{ "waitForInvitationFlag", "t124.waitForInvitationFlag",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_noUnlistedConferenceFlag,
{ "noUnlistedConferenceFlag", "t124.noUnlistedConferenceFlag",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_conferenceName_01,
{ "conferenceName", "t124.conferenceName",
FT_UINT32, BASE_DEC, VALS(t124_ConferenceNameSelector_vals), 0,
"ConferenceNameSelector", HFILL }},
{ &hf_t124_password_01,
{ "password", "t124.password",
FT_UINT32, BASE_DEC, VALS(t124_PasswordChallengeRequestResponse_vals), 0,
"PasswordChallengeRequestResponse", HFILL }},
{ &hf_t124_convenerPassword_01,
{ "convenerPassword", "t124.convenerPassword",
FT_UINT32, BASE_DEC, VALS(t124_PasswordSelector_vals), 0,
"PasswordSelector", HFILL }},
{ &hf_t124_nodeCategory,
{ "nodeCategory", "t124.nodeCategory",
FT_UINT32, BASE_DEC, VALS(t124_NodeCategory_vals), 0,
NULL, HFILL }},
{ &hf_t124_topNodeID,
{ "topNodeID", "t124.topNodeID",
FT_UINT32, BASE_DEC, NULL, 0,
"UserID", HFILL }},
{ &hf_t124_conferenceNameAlias,
{ "conferenceNameAlias", "t124.conferenceNameAlias",
FT_UINT32, BASE_DEC, VALS(t124_ConferenceNameSelector_vals), 0,
"ConferenceNameSelector", HFILL }},
{ &hf_t124_joinResponseResult,
{ "result", "t124.result",
FT_UINT32, BASE_DEC, VALS(t124_JoinResponseResult_vals), 0,
"JoinResponseResult", HFILL }},
{ &hf_t124_inviteResponseResult,
{ "result", "t124.result",
FT_UINT32, BASE_DEC, VALS(t124_InviteResponseResult_vals), 0,
"InviteResponseResult", HFILL }},
{ &hf_t124_t124Identifier,
{ "t124Identifier", "t124.t124Identifier",
FT_UINT32, BASE_DEC, VALS(t124_Key_vals), 0,
"Key", HFILL }},
{ &hf_t124_connectPDU,
{ "connectPDU", "t124.connectPDU",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceCreateRequest,
{ "conferenceCreateRequest", "t124.conferenceCreateRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceCreateResponse,
{ "conferenceCreateResponse", "t124.conferenceCreateResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceQueryRequest,
{ "conferenceQueryRequest", "t124.conferenceQueryRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceQueryResponse,
{ "conferenceQueryResponse", "t124.conferenceQueryResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceJoinRequest,
{ "conferenceJoinRequest", "t124.conferenceJoinRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceJoinResponse,
{ "conferenceJoinResponse", "t124.conferenceJoinResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceInviteRequest,
{ "conferenceInviteRequest", "t124.conferenceInviteRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_conferenceInviteResponse,
{ "conferenceInviteResponse", "t124.conferenceInviteResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_heightLimit,
{ "heightLimit", "t124.heightLimit",
FT_UINT64, BASE_DEC, NULL, 0,
"INTEGER_0_MAX", HFILL }},
{ &hf_t124_subHeight,
{ "subHeight", "t124.subHeight",
FT_UINT64, BASE_DEC, NULL, 0,
"INTEGER_0_MAX", HFILL }},
{ &hf_t124_subInterval,
{ "subInterval", "t124.subInterval",
FT_UINT64, BASE_DEC, NULL, 0,
"INTEGER_0_MAX", HFILL }},
{ &hf_t124_static,
{ "static", "t124.static_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelId,
{ "channelId", "t124.channelId",
FT_UINT32, BASE_DEC, NULL, 0,
"StaticChannelId", HFILL }},
{ &hf_t124_userId,
{ "userId", "t124.userId_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_joined,
{ "joined", "t124.joined",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
{ &hf_t124_userId_01,
{ "userId", "t124.userId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_private,
{ "private", "t124.private_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelId_01,
{ "channelId", "t124.channelId",
FT_UINT32, BASE_DEC, NULL, 0,
"PrivateChannelId", HFILL }},
{ &hf_t124_manager,
{ "manager", "t124.manager",
FT_UINT32, BASE_DEC, NULL, 0,
"UserId", HFILL }},
{ &hf_t124_admitted,
{ "admitted", "t124.admitted",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_UserId", HFILL }},
{ &hf_t124_admitted_item,
{ "UserId", "t124.UserId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_assigned,
{ "assigned", "t124.assigned_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelId_02,
{ "channelId", "t124.channelId",
FT_UINT32, BASE_DEC, NULL, 0,
"AssignedChannelId", HFILL }},
{ &hf_t124_mergeChannels,
{ "mergeChannels", "t124.mergeChannels",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_ChannelAttributes", HFILL }},
{ &hf_t124_mergeChannels_item,
{ "ChannelAttributes", "t124.ChannelAttributes",
FT_UINT32, BASE_DEC, VALS(t124_ChannelAttributes_vals), 0,
NULL, HFILL }},
{ &hf_t124_purgeChannelIds,
{ "purgeChannelIds", "t124.purgeChannelIds",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_ChannelId", HFILL }},
{ &hf_t124_purgeChannelIds_item,
{ "ChannelId", "t124.ChannelId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_detachUserIds,
{ "detachUserIds", "t124.detachUserIds",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_UserId", HFILL }},
{ &hf_t124_detachUserIds_item,
{ "UserId", "t124.UserId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_grabbed,
{ "grabbed", "t124.grabbed_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenId,
{ "tokenId", "t124.tokenId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_grabber,
{ "grabber", "t124.grabber",
FT_UINT32, BASE_DEC, NULL, 0,
"UserId", HFILL }},
{ &hf_t124_inhibited,
{ "inhibited", "t124.inhibited_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_inhibitors,
{ "inhibitors", "t124.inhibitors",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_UserId", HFILL }},
{ &hf_t124_inhibitors_item,
{ "UserId", "t124.UserId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_giving,
{ "giving", "t124.giving_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_recipient,
{ "recipient", "t124.recipient",
FT_UINT32, BASE_DEC, NULL, 0,
"UserId", HFILL }},
{ &hf_t124_ungivable,
{ "ungivable", "t124.ungivable_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_given,
{ "given", "t124.given_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_mergeTokens,
{ "mergeTokens", "t124.mergeTokens",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_TokenAttributes", HFILL }},
{ &hf_t124_mergeTokens_item,
{ "TokenAttributes", "t124.TokenAttributes",
FT_UINT32, BASE_DEC, VALS(t124_TokenAttributes_vals), 0,
NULL, HFILL }},
{ &hf_t124_purgeTokenIds,
{ "purgeTokenIds", "t124.purgeTokenIds",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_TokenId", HFILL }},
{ &hf_t124_purgeTokenIds_item,
{ "TokenId", "t124.TokenId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_reason,
{ "reason", "t124.reason",
FT_UINT32, BASE_DEC, VALS(t124_Reason_vals), 0,
NULL, HFILL }},
{ &hf_t124_diagnostic,
{ "diagnostic", "t124.diagnostic",
FT_UINT32, BASE_DEC, VALS(t124_Diagnostic_vals), 0,
NULL, HFILL }},
{ &hf_t124_initialOctets,
{ "initialOctets", "t124.initialOctets",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
{ &hf_t124_result_01,
{ "result", "t124.result",
FT_UINT32, BASE_DEC, VALS(t124_Result_vals), 0,
NULL, HFILL }},
{ &hf_t124_initiator,
{ "initiator", "t124.initiator",
FT_UINT32, BASE_DEC, NULL, 0,
"UserId", HFILL }},
{ &hf_t124_userIds,
{ "userIds", "t124.userIds",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_UserId", HFILL }},
{ &hf_t124_userIds_item,
{ "UserId", "t124.UserId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelId_03,
{ "channelId", "t124.channelId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_requested,
{ "requested", "t124.requested",
FT_UINT32, BASE_DEC, NULL, 0,
"ChannelId", HFILL }},
{ &hf_t124_channelIds,
{ "channelIds", "t124.channelIds",
FT_UINT32, BASE_DEC, NULL, 0,
"SET_OF_ChannelId", HFILL }},
{ &hf_t124_channelIds_item,
{ "ChannelId", "t124.ChannelId",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_t124_dataPriority,
{ "dataPriority", "t124.dataPriority",
FT_UINT32, BASE_DEC, VALS(t124_DataPriority_vals), 0,
NULL, HFILL }},
{ &hf_t124_segmentation,
{ "segmentation", "t124.segmentation",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_userData_01,
{ "userData", "t124.userData",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_userData_02,
{ "userData", "t124.userData",
FT_BYTES, BASE_NONE, NULL, 0,
"T_userData_01", HFILL }},
{ &hf_t124_userData_03,
{ "userData", "t124.userData",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
{ &hf_t124_tokenStatus,
{ "tokenStatus", "t124.tokenStatus",
FT_UINT32, BASE_DEC, VALS(t124_TokenStatus_vals), 0,
NULL, HFILL }},
{ &hf_t124_plumbDomainIndication,
{ "plumbDomainIndication", "t124.plumbDomainIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_erectDomainRequest,
{ "erectDomainRequest", "t124.erectDomainRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_mergeChannelsRequest,
{ "mergeChannelsRequest", "t124.mergeChannelsRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_mergeChannelsConfirm,
{ "mergeChannelsConfirm", "t124.mergeChannelsConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_purgeChannelsIndication,
{ "purgeChannelsIndication", "t124.purgeChannelsIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_mergeTokensRequest,
{ "mergeTokensRequest", "t124.mergeTokensRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_mergeTokensConfirm,
{ "mergeTokensConfirm", "t124.mergeTokensConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_purgeTokensIndication,
{ "purgeTokensIndication", "t124.purgeTokensIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_disconnectProviderUltimatum,
{ "disconnectProviderUltimatum", "t124.disconnectProviderUltimatum_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_rejectMCSPDUUltimatum,
{ "rejectMCSPDUUltimatum", "t124.rejectMCSPDUUltimatum_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_attachUserRequest,
{ "attachUserRequest", "t124.attachUserRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_attachUserConfirm,
{ "attachUserConfirm", "t124.attachUserConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_detachUserRequest,
{ "detachUserRequest", "t124.detachUserRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_detachUserIndication,
{ "detachUserIndication", "t124.detachUserIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelJoinRequest,
{ "channelJoinRequest", "t124.channelJoinRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelJoinConfirm,
{ "channelJoinConfirm", "t124.channelJoinConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelLeaveRequest,
{ "channelLeaveRequest", "t124.channelLeaveRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelConveneRequest,
{ "channelConveneRequest", "t124.channelConveneRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelConveneConfirm,
{ "channelConveneConfirm", "t124.channelConveneConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelDisbandRequest,
{ "channelDisbandRequest", "t124.channelDisbandRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelDisbandIndication,
{ "channelDisbandIndication", "t124.channelDisbandIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelAdmitRequest,
{ "channelAdmitRequest", "t124.channelAdmitRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelAdmitIndication,
{ "channelAdmitIndication", "t124.channelAdmitIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelExpelRequest,
{ "channelExpelRequest", "t124.channelExpelRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_channelExpelIndication,
{ "channelExpelIndication", "t124.channelExpelIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_sendDataRequest,
{ "sendDataRequest", "t124.sendDataRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_sendDataIndication,
{ "sendDataIndication", "t124.sendDataIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_uniformSendDataRequest,
{ "uniformSendDataRequest", "t124.uniformSendDataRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_uniformSendDataIndication,
{ "uniformSendDataIndication", "t124.uniformSendDataIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGrabRequest,
{ "tokenGrabRequest", "t124.tokenGrabRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGrabConfirm,
{ "tokenGrabConfirm", "t124.tokenGrabConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenInhibitRequest,
{ "tokenInhibitRequest", "t124.tokenInhibitRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenInhibitConfirm,
{ "tokenInhibitConfirm", "t124.tokenInhibitConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGiveRequest,
{ "tokenGiveRequest", "t124.tokenGiveRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGiveIndication,
{ "tokenGiveIndication", "t124.tokenGiveIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGiveResponse,
{ "tokenGiveResponse", "t124.tokenGiveResponse_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenGiveConfirm,
{ "tokenGiveConfirm", "t124.tokenGiveConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenPleaseRequest,
{ "tokenPleaseRequest", "t124.tokenPleaseRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenPleaseIndication,
{ "tokenPleaseIndication", "t124.tokenPleaseIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenReleaseRequest,
{ "tokenReleaseRequest", "t124.tokenReleaseRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenReleaseConfirm,
{ "tokenReleaseConfirm", "t124.tokenReleaseConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenTestRequest,
{ "tokenTestRequest", "t124.tokenTestRequest_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_tokenTestConfirm,
{ "tokenTestConfirm", "t124.tokenTestConfirm_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_t124_Segmentation_begin,
{ "begin", "t124.Segmentation.begin",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
{ &hf_t124_Segmentation_end,
{ "end", "t124.Segmentation.end",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
};
/* List of subtrees */
static gint *ett[] = {
&ett_t124,
&ett_t124_connectGCCPDU,
&ett_t124_Key,
&ett_t124_NonStandardParameter,
&ett_t124_UserData,
&ett_t124_UserData_item,
&ett_t124_Password,
&ett_t124_PasswordSelector,
&ett_t124_ChallengeResponseItem,
&ett_t124_ChallengeResponseAlgorithm,
&ett_t124_ChallengeItem,
&ett_t124_ChallengeRequest,
&ett_t124_SET_OF_ChallengeItem,
&ett_t124_ChallengeResponse,
&ett_t124_PasswordChallengeRequestResponse,
&ett_t124_T_challengeRequestResponse,
&ett_t124_ConferenceName,
&ett_t124_ConferenceNameSelector,
&ett_t124_ConferencePriorityScheme,
&ett_t124_ConferencePriority,
&ett_t124_NodeCategory,
&ett_t124_ConferenceMode,
&ett_t124_NetworkAddress,
&ett_t124_NetworkAddress_item,
&ett_t124_T_aggregatedChannel,
&ett_t124_T_transferModes,
&ett_t124_T_highLayerCompatibility,
&ett_t124_T_transportConnection,
&ett_t124_AsymmetryIndicator,
&ett_t124_ConferenceDescriptor,
&ett_t124_ConferenceCreateRequest,
&ett_t124_SET_OF_Privilege,
&ett_t124_ConferenceCreateResponse,
&ett_t124_ConferenceQueryRequest,
&ett_t124_ConferenceQueryResponse,
&ett_t124_SET_OF_ConferenceDescriptor,
&ett_t124_ConferenceJoinRequest,
&ett_t124_ConferenceJoinResponse,
&ett_t124_ConferenceInviteRequest,
&ett_t124_ConferenceInviteResponse,
&ett_t124_ConnectData,
&ett_t124_ConnectGCCPDU,
&ett_t124_Segmentation,
&ett_t124_PlumbDomainIndication,
&ett_t124_ErectDomainRequest,
&ett_t124_ChannelAttributes,
&ett_t124_T_static,
&ett_t124_T_userId,
&ett_t124_T_private,
&ett_t124_SET_OF_UserId,
&ett_t124_T_assigned,
&ett_t124_MergeChannelsRequest,
&ett_t124_SET_OF_ChannelAttributes,
&ett_t124_SET_OF_ChannelId,
&ett_t124_MergeChannelsConfirm,
&ett_t124_PurgeChannelsIndication,
&ett_t124_TokenAttributes,
&ett_t124_T_grabbed,
&ett_t124_T_inhibited,
&ett_t124_T_giving,
&ett_t124_T_ungivable,
&ett_t124_T_given,
&ett_t124_MergeTokensRequest,
&ett_t124_SET_OF_TokenAttributes,
&ett_t124_SET_OF_TokenId,
&ett_t124_MergeTokensConfirm,
&ett_t124_PurgeTokensIndication,
&ett_t124_DisconnectProviderUltimatum,
&ett_t124_RejectMCSPDUUltimatum,
&ett_t124_AttachUserRequest,
&ett_t124_AttachUserConfirm,
&ett_t124_DetachUserRequest,
&ett_t124_DetachUserIndication,
&ett_t124_ChannelJoinRequest,
&ett_t124_ChannelJoinConfirm,
&ett_t124_ChannelLeaveRequest,
&ett_t124_ChannelConveneRequest,
&ett_t124_ChannelConveneConfirm,
&ett_t124_ChannelDisbandRequest,
&ett_t124_ChannelDisbandIndication,
&ett_t124_ChannelAdmitRequest,
&ett_t124_ChannelAdmitIndication,
&ett_t124_ChannelExpelRequest,
&ett_t124_ChannelExpelIndication,
&ett_t124_SendDataRequest,
&ett_t124_SendDataIndication,
&ett_t124_UniformSendDataRequest,
&ett_t124_UniformSendDataIndication,
&ett_t124_TokenGrabRequest,
&ett_t124_TokenGrabConfirm,
&ett_t124_TokenInhibitRequest,
&ett_t124_TokenInhibitConfirm,
&ett_t124_TokenGiveRequest,
&ett_t124_TokenGiveIndication,
&ett_t124_TokenGiveResponse,
&ett_t124_TokenGiveConfirm,
&ett_t124_TokenPleaseRequest,
&ett_t124_TokenPleaseIndication,
&ett_t124_TokenReleaseRequest,
&ett_t124_TokenReleaseConfirm,
&ett_t124_TokenTestRequest,
&ett_t124_TokenTestConfirm,
&ett_t124_DomainMCSPDU,
};
/* Register protocol */
proto_t124 = proto_register_protocol(PNAME, PSNAME, PFNAME);
/* Register fields and subtrees */
proto_register_field_array(proto_t124, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
t124_ns_dissector_table = register_dissector_table("t124.ns", "T.124 H.221 Non Standard Dissectors", proto_t124, FT_STRING, BASE_NONE);
t124_sd_dissector_table = register_dissector_table("t124.sd", "T.124 H.221 Send Data Dissectors", proto_t124, FT_UINT32, BASE_HEX);
register_dissector("t124", dissect_t124, proto_t124);
}
void
proto_reg_handoff_t124(void) {
register_ber_oid_dissector("0.0.20.124.0.1", dissect_t124, proto_t124, "Generic Conference Control");
heur_dissector_add("t125", dissect_t124_heur, "T.124 over T.125", "t124_t125", proto_t124, HEURISTIC_ENABLE);
}