Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1084 lines
48 KiB

--#comment "Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved."--
--#comment "ASN.1 definitions for Generic Conference Control (GCC)"--
--#SS.basic slinked-- -- set of and sequence of w/o size constraint
--#SS.sized slinked-- -- set of and sequence of w/ size constraint
GCC-PROTOCOL DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- Export all symbols
-- ==========================================================================
-- Part 1: Elements of which messages are composed
-- ==========================================================================
ChannelID ::= INTEGER (1..65535)
StaticChannelID ::= INTEGER (1..1000) -- Those assigned by specifications
DynamicChannelID ::= INTEGER (1001..65535)-- Those created and deleted by MCS
UserID ::= DynamicChannelID
TokenID ::= INTEGER (1..65535)
StaticTokenID ::= INTEGER (1..16383) -- Those assigned by specifications
DynamicTokenID ::= INTEGER (16384..65535) -- Those assigned by the registry
Time ::= INTEGER (-2147483648..2147483647) -- Time in seconds
Handle ::= INTEGER (0..4294967295) -- 32-bit value
H221NonStandardIdentifier ::= OCTET STRING (SIZE (4..255))
-- First four octets shall be country code and
-- Manufacturer code, assigned as specified in
-- H.221 Annex A for NS-cap and NS-comm
Key ::= CHOICE -- Identifier of a standard or non-standard object
{
object OBJECT IDENTIFIER,
h221NonStandard H221NonStandardIdentifier --#field "h221_non_standard"--
}
t124identifier Key ::= object : {itu-t recommendation t(20) 124 version(0) 1}
NonStandardParameter ::= SEQUENCE
{
key Key,
data OCTET STRING
}
TextString ::= BMPString (SIZE (0..255)) -- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode)
simpleTextFirstCharacter UniversalString ::= {0, 0, 0, 0}
simpleTextLastCharacter UniversalString ::= {0, 0, 0, 255}
SimpleTextString ::= BMPString (SIZE (0..255)) (FROM (simpleTextFirstCharacter..simpleTextLastCharacter))
SimpleNumericString ::= NumericString (SIZE (1..255)) (FROM ("0123456789"))
DialingString ::= NumericString (SIZE (1..16)) (FROM ("0123456789"))
SubAddressString ::= NumericString (SIZE (1..40)) (FROM ("0123456789"))
ExtraDialingString ::= TextString (SIZE (1..255)) (FROM ("0123456789#*,"))
UserData ::= SET --#type "PSetOfUserData"-- --#value "user_data_element"-- OF SEQUENCE
{
key Key,
value OCTET STRING --#field "user_data_field"-- OPTIONAL
}
Password ::= SEQUENCE
{
numeric SimpleNumericString,
text SimpleTextString --#field "password_text"-- OPTIONAL,
...
}
PasswordSelector ::= CHOICE
{
numeric SimpleNumericString --#field "password_selector_numeric"--,
text SimpleTextString --#field "password_selector_text"--,
...
}
ChallengeResponseItem ::= CHOICE
{
passwordString PasswordSelector --#field "password_string"--,
responseData UserData --#field "set_of_response_data"--,
...
}
ChallengeResponseAlgorithm ::= CHOICE
{
passwordInTheClear NULL --#field "algorithm_clear_password"--,
nonStandardAlgorithm NonStandardParameter --#field "non_standard_algorithm"--,
...
}
ChallengeItem ::= SEQUENCE
{
responseAlgorithm ChallengeResponseAlgorithm --#field "response_algorithm"--,
challengeData UserData --#field "set_of_challenge_data"--,
...
}
ChallengeRequest ::= SEQUENCE
{
challenge-tag INTEGER,
challenge-set SET --#type "SetOfChallengeItems"-- --#field "set_of_challenge_items"-- OF ChallengeItem, -- Set of algorithms offered for response
...
}
ChallengeResponse ::= SEQUENCE
{
challengeTag INTEGER --#field "challenge_tag"--,
responseAlgorithm ChallengeResponseAlgorithm --#field "response_algorithm"--,
-- Specific algorithm selected from the set of
-- items presented in the ChallengeRequest
responseItem ChallengeResponseItem --#field "response_item"--,
...
}
PasswordChallengeRequestResponse ::= CHOICE
{
passwordInTheClear PasswordSelector --#field "challenge_clear_password"--,
challengeRequestResponse SEQUENCE
{
challengeRequest ChallengeRequest --#field "challenge_request"-- OPTIONAL,
challengeResponse ChallengeResponse --#field "challenge_response"-- OPTIONAL,
...
} --#type "ChallengeRequestResponse"-- --#field "challenge_request_response"--,
...
} --#type "PasswordChallengeRequestResponse"--
ConferenceName ::= SEQUENCE
{
numeric SimpleNumericString,
text SimpleTextString --#field "conference_name_text"-- OPTIONAL,
...
}
ConferenceNameSelector ::= CHOICE
{
numeric SimpleNumericString --#field "name_selector_numeric"--,
text SimpleTextString --#field "name_selector_text"--,
...
}
ConferenceNameModifier ::= SimpleNumericString
Privilege ::= ENUMERATED
{
terminate (0),
ejectUser (1),
add (2),
lockUnlock (3),
transfer (4),
...
}
TerminationMethod ::= ENUMERATED
{
automatic (0),
manual (1),
...
}
NetworkAddress ::= SEQUENCE --#type "PSetOfNetworkAddresses"-- (SIZE (1..64)) OF CHOICE -- Listed in order of use
{
aggregatedChannel SEQUENCE
{
transferModes SEQUENCE -- One or more
{
speech BOOLEAN,
voice-band BOOLEAN,
digital-56k BOOLEAN,
digital-64k BOOLEAN,
digital-128k BOOLEAN,
digital-192k BOOLEAN,
digital-256k BOOLEAN,
digital-320k BOOLEAN,
digital-384k BOOLEAN,
digital-512k BOOLEAN,
digital-768k BOOLEAN,
digital-1152k BOOLEAN,
digital-1472k BOOLEAN,
digital-1536k BOOLEAN,
digital-1920k BOOLEAN,
packet-mode BOOLEAN,
frame-mode BOOLEAN,
atm BOOLEAN,
...
} --#type "TransferModes"-- --#field "transfer_modes"--,
internationalNumber DialingString --#field "international_number"--,
subAddress SubAddressString --#field "sub_address"-- OPTIONAL,
extraDialing ExtraDialingString --#field "extra_dialing_string"-- OPTIONAL,
highLayerCompatibility SEQUENCE
{
telephony3kHz BOOLEAN,
telephony7kHz BOOLEAN,
videotelephony BOOLEAN,
videoconference BOOLEAN,
audiographic BOOLEAN,
audiovisual BOOLEAN,
multimedia BOOLEAN,
...
} --#type "HighLayerCompatibility"-- --#field "high_layer_compatibility"-- OPTIONAL,
...
} --#type "AggregateChannel"-- --#field "aggregated_channel"--,
transportConnection SEQUENCE
{
nsapAddress OCTET STRING (SIZE (1..20)) --#type "NsapAddress"-- --#field "nsap_address"--,
transportSelector OCTET STRING --#type "TransportSelector"-- --#field "transport_selector"-- OPTIONAL
} --#type "TransportConnectionType"-- --#field "transport_connection"--,
nonStandard NonStandardParameter --#field "address_non_standard"--,
...
} --#type "NetworkAddress"--
NodeType ::= ENUMERATED
{
terminal (0),
multiportTerminal (1),
mcu (2),
...
}
NodeProperties ::= SEQUENCE
{
managementDevice BOOLEAN --#field "device_is_manager"--,
peripheralDevice BOOLEAN --#field "device_is_peripheral"--,
...
}
AsymmetryIndicator ::= CHOICE
{
callingNode NULL --#field "calling_node"--,
calledNode NULL --#field "called_node"--,
unknown INTEGER (0..4294967295) -- Uniformly distributed 32-bit random number
}
AlternativeNodeID ::= CHOICE
{
h243NodeID OCTET STRING --#type "H243NodeID"-- --#field "h243_node_id"#-- (SIZE (2)),
...
}
ConferenceDescriptor ::= SEQUENCE
{
conferenceName ConferenceName --#field "conference_name"--,
conferenceNameModifier ConferenceNameModifier --#field "conference_name_modifier"-- OPTIONAL,
conferenceDescription TextString --#field "conference_description"-- OPTIONAL,
lockedConference BOOLEAN --#field "conference_is_locked"--,
passwordInTheClearRequired BOOLEAN --#field "clear_password_required"--,
networkAddress NetworkAddress --#field "descriptor_net_address"-- OPTIONAL,
...
}
NodeRecord ::= SEQUENCE
{
superiorNode UserID --#field "superior_node"-- OPTIONAL, -- Not present only for the Top GCC Provider
nodeType NodeType --#field "node_type"-- ,
nodeProperties NodeProperties --#field "node_properties"--,
nodeName TextString --#field "node_name"-- OPTIONAL,
participantsList SEQUENCE --#type "ParticipantsList"-- --#field "participants_list"-- OF TextString OPTIONAL,
siteInformation TextString --#field "site_information"-- OPTIONAL,
networkAddress NetworkAddress --#field "record_net_address"-- OPTIONAL,
alternativeNodeID AlternativeNodeID --#field "alternative_node_id"-- OPTIONAL,
userData UserData --#field "record_user_data"-- OPTIONAL,
...
}
SessionKey ::= SEQUENCE
{
applicationProtocolKey Key --#field "application_protocol_key"--,
sessionID ChannelID --#field "session_id"-- OPTIONAL
}
ChannelType ::= ENUMERATED
{
static (0),
dynamicMulticast (1),
dynamicPrivate (2),
dynamicUserId (3)
}
ApplicationRecord ::= SEQUENCE
{
applicationActive BOOLEAN --#field "application_is_active"--, -- Active/Inactive flag
conductingOperationCapable BOOLEAN --#field "is_conducting_capable"--, -- Maximum one per node per session
startupChannel ChannelType --#field "record_startup_channel"-- OPTIONAL,
applicationUserID UserID --#field "application_user_id"-- OPTIONAL, -- User ID assigned to the Application Protocol Entity
nonCollapsingCapabilities SET --#type "SetOfNonCollapsingCapabilities"-- --#field "non_collapsing_capabilities"-- OF SEQUENCE
{
capabilityID CapabilityID --#field "capability_id"--,
applicationData OCTET STRING --#field "application_data"--OPTIONAL
} OPTIONAL,
...
}
CapabilityID ::= CHOICE
{
standard INTEGER (0..65535), -- Assigned by Application Protocol specifications
nonStandard Key --#field "capability_non_standard"--
}
CapabilityClass ::= CHOICE
{
logical NULL,
unsignedMin INTEGER (0..MAX) --#field "unsigned_minimum"--, -- Capability value
unsignedMax INTEGER (0..MAX) --#field "unsigned_maximum"--, -- Capability value
...
}
EntityID ::= INTEGER (0..65535)
ApplicationInvokeSpecifier ::= SEQUENCE
{
sessionKey SessionKey --#field "session_key"--,
expectedCapabilitySet SET --#type "SetOfExpectedCapabilities"-- --#field "expected_capability_set"-- OF SEQUENCE
{
capabilityID CapabilityID --#field "capability_id"--,
capabilityClass CapabilityClass --#field "capability_class"--,
...
} OPTIONAL,
startupChannel ChannelType --#field "invoke_startup_channel"-- OPTIONAL,
mandatoryFlag BOOLEAN --#field "invoke_is_mandatory"--, -- TRUE indicates required Application Protocol Entity
...
}
RegistryKey ::= SEQUENCE
{
sessionKey SessionKey --#field "session_key"--,
resourceID OCTET STRING --#field "resource_id"-- (SIZE (0..64))
}
RegistryItem ::= CHOICE
{
channelID DynamicChannelID --#field "channel_id"--,
tokenID DynamicTokenID --#field "token_id"--,
parameter OCTET STRING --#type "RegistryItemParameter"-- (SIZE (0..64)),
vacant NULL,
...
}
RegistryEntryOwner ::= CHOICE
{
owned SEQUENCE
{
nodeID UserID --#field "node_id"--,
-- Node ID of the owning node
entityID EntityID --#field "entity_id"--
-- Entity ID of the owning
} --#type "RegistryEntryOwnerOwned"--, -- Appliction Protocol Entity
notOwned NULL --#field "not_owned"--
-- There is no current owner
}
RegistryModificationRights ::= ENUMERATED
{
owner (0),
session (1),
public (2)
}
-- ==========================================================================
-- Part 2: PDU Messages
-- ==========================================================================
UserIDIndication ::= SEQUENCE
{
tag INTEGER,
...
}
-- DataBeam modification: pull out SetOfPrivileges structure
SetOfPrivileges ::= SET --#type "PSetOfPrivileges"-- OF Privilege
ConferenceCreateRequest ::= SEQUENCE
{ -- MCS-Connect-Provider request user data
conferenceName ConferenceName --#field "conference_name"--,
convenerPassword Password --#field "ccrq_convener_password"-- OPTIONAL,
password Password --#field "ccrq_password"-- OPTIONAL,
lockedConference BOOLEAN --#field "conference_is_locked"--,
listedConference BOOLEAN --#field "conference_is_listed"--,
conductibleConference BOOLEAN --#field "conference_is_conductible"--,
terminationMethod TerminationMethod --#field "termination_method"--,
conductorPrivileges SetOfPrivileges --#field "ccrq_conductor_privs"-- OPTIONAL,
conductedPrivileges SetOfPrivileges --#field "ccrq_conducted_privs"-- OPTIONAL,
nonConductedPrivileges SetOfPrivileges --#field "ccrq_non_conducted_privs"-- OPTIONAL,
conferenceDescription TextString --#field "ccrq_description"-- OPTIONAL,
callerIdentifier TextString --#field "ccrq_caller_id"-- OPTIONAL,
userData UserData --#field "ccrq_user_data"-- OPTIONAL,
...
}
ConferenceCreateResponse ::= SEQUENCE
{ -- MCS-Connect-Provider response user data
nodeID UserID --#field "node_id"--, -- Node ID of the sending node
tag INTEGER,
result ENUMERATED
{
success (0),
userRejected (1),
resourcesNotAvailable (2),
rejectedForSymmetryBreaking (3),
lockedConferenceNotSupported (4),
...
} --#type "ConferenceCreateResult"--,
userData UserData --#field "ccrs_user_data"-- OPTIONAL,
...
}
ConferenceQueryRequest ::= SEQUENCE
{ -- MCS-Connect-Provider request user data
nodeType NodeType --#field "node_type"--,
asymmetryIndicator AsymmetryIndicator --#field "cqrq_asymmetry_indicator"-- OPTIONAL,
userData UserData --#field "cqrq_user_data"-- OPTIONAL,
...
}
ConferenceQueryResponse ::= SEQUENCE
{ -- MCS-Connect-Provider response user data
nodeType NodeType --#field "node_type"--,
asymmetryIndicator AsymmetryIndicator --#field "cqrs_asymmetry_indicator"-- OPTIONAL,
conferenceList SET --#type "SetOfConferenceDescriptors"-- --#field "conference_list"-- OF ConferenceDescriptor,
result ENUMERATED
{
success (0),
userRejected (1),
...
} --#type "ConferenceQueryResult"--,
userData UserData --#field "cqrs_user_data"-- OPTIONAL,
...
}
ConferenceJoinRequest ::= SEQUENCE
{ -- MCS-Connect-Provider request user data as well as
-- MCS-Send-Data on Node ID Channel of Top GCC sent
-- by the receiver of the MCS-Connect-Provider
conferenceName ConferenceNameSelector --#field "conference_name"-- OPTIONAL,
-- Required when part of MCS-Connect-Provider
conferenceNameModifier ConferenceNameModifier--#field "cjrq_conference_modifier"-- OPTIONAL,
tag INTEGER OPTIONAL, -- Filled in when sent on Node ID Channel of Top GCC
password PasswordChallengeRequestResponse --#field "cjrq_password"-- OPTIONAL,
convenerPassword PasswordSelector --#field "cjrq_convener_password"-- OPTIONAL,
callerIdentifier TextString --#field "cjrq_caller_id"-- OPTIONAL,
userData UserData --#field "cjrq_user_data"-- OPTIONAL,
...
}
ConferenceJoinResponse ::= SEQUENCE
{ -- MCS-Connect-Provider response user data as well as
-- MCS-Send-Data on Node ID Channel of
-- the receiver of the MCS-Connect-Provider
nodeID UserID --#field "cjrs_node_id"-- OPTIONAL, -- Node ID of directly connected node only
topNodeID UserID--#field "top_node_id"-- , -- Node ID of Top GCC Provider
tag INTEGER,
conferenceNameAlias ConferenceNameSelector --#field "conference_name_alias"-- OPTIONAL,
passwordInTheClearRequired BOOLEAN --#field "clear_password_required"-- ,
lockedConference BOOLEAN --#field "conference_is_locked"--,
listedConference BOOLEAN --#field "conference_is_listed"--,
conductibleConference BOOLEAN --#field "conference_is_conductible"--,
terminationMethod TerminationMethod --#field "termination_method"--,
conductorPrivileges SetOfPrivileges --#field "cjrs_conductor_privs"-- OPTIONAL,
conductedPrivileges SetOfPrivileges --#field "cjrs_conducted_privs"-- OPTIONAL,
nonConductedPrivileges SetOfPrivileges --#field "cjrs_non_conducted_privs"-- OPTIONAL,
conferenceDescription TextString --#field "cjrs_description"-- OPTIONAL,
password PasswordChallengeRequestResponse --#field "cjrs_password"-- OPTIONAL,
result ENUMERATED
{
success (0),
userRejected (1),
invalidConference (2),
invalidPassword (3),
invalidConvenerPassword (4),
challengeResponseRequired (5),
invalidChallengeResponse (6),
...
} --#type "ConferenceJoinResult"--,
userData UserData --#field "cjrs_user_data"-- OPTIONAL,
...
}
ConferenceInviteRequest ::= SEQUENCE
{ -- MCS-Connect-Provider request user data
conferenceName ConferenceName --#field "conference_name"--,
nodeID UserID --#field "node_id"--, -- Node ID of the sending node
topNodeID UserID --#field "top_node_id"--, -- Node ID of Top GCC Provider
tag INTEGER,
passwordInTheClearRequired BOOLEAN --#field "clear_password_required"--,
lockedConference BOOLEAN --#field "conference_is_locked"--,
listedConference BOOLEAN --#field "conference_is_listed"--,
conductibleConference BOOLEAN --#field "conference_is_conductible"--,
terminationMethod TerminationMethod --#field "termination_method"--,
conductorPrivileges SetOfPrivileges --#field "cirq_conductor_privs"-- OPTIONAL,
conductedPrivileges SetOfPrivileges --#field "cirq_conducted_privs"-- OPTIONAL,
nonConductedPrivileges SetOfPrivileges --#field "cirq_non_conducted_privs"-- OPTIONAL,
conferenceDescription TextString --#field "cirq_description"-- OPTIONAL,
callerIdentifier TextString --#field "cirq_caller_id"-- OPTIONAL,
userData UserData --#field "cirq_user_data"-- OPTIONAL,
...
}
ConferenceInviteResponse ::= SEQUENCE
{ -- MCS-Connect-Provider response user data
result ENUMERATED
{
success (0),
userRejected (1),
...
} --#type "ConferenceInviteResult"--,
userData UserData --#field "cirs_user_data"-- OPTIONAL,
...
}
ConferenceAddRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC or
-- Node ID Channel of Adding MCU if specified
networkAddress NetworkAddress --#field "add_request_net_address"--,
requestingNode UserID --#field "requesting_node"--,
tag INTEGER,
addingMCU UserID --#field "adding_mcu"-- OPTIONAL,
userData UserData --#field "carq_user_data"-- OPTIONAL,
...
}
ConferenceAddResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
tag INTEGER,
result ENUMERATED
{
success (0),
invalidRequester (1),
invalidNetworkType (2),
invalidNetworkAddress (3),
addedNodeBusy (4),
networkBusy (5),
noPortsAvailable (6),
connectionUnsuccessful (7),
...
} --#type "ConferenceAddResult"--,
userData UserData --#field "cars_user_data"-- OPTIONAL,
...
}
ConferenceLockRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
-- No parameters
...
}
ConferenceLockResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
result ENUMERATED
{
success (0),
invalidRequester (1),
alreadyLocked (2),
...
} --#type "ConferenceLockResult"--,
...
}
ConferenceLockIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
-- or MCS-Send-Data on Node ID Channel
-- No parameters
...
}
ConferenceUnlockRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
-- No parameters
...
}
ConferenceUnlockResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
result ENUMERATED
{
success (0),
invalidRequester (1),
alreadyUnlocked (2),
...
} --#type "ConferenceUnlockResult"--,
...
}
ConferenceUnlockIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
-- or MCS-Send-Data on Node ID Channel
-- No parameters
...
}
ConferenceTerminateRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
reason ENUMERATED
{
userInitiated (0),
timedConferenceTermination (1),
...
} --#type "ConferenceTerminateRequestReason"--,
...
}
ConferenceTerminateResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
result ENUMERATED
{
success (0),
invalidRequester (1),
...
} --#type "ConferenceTerminateResult"--,
...
}
ConferenceTerminateIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
reason ENUMERATED
{
userInitiated (0),
timedConferenceTermination (1),
...
} --#type "ConferenceTerminateIndicationReason"--,
...
}
ConferenceEjectUserRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
nodeToEject UserID --#field "node_to_eject"--, -- Node ID of the node to eject
reason ENUMERATED
{
userInitiated (0),
...
} --#type "ConferenceEjectRequestReason"--,
...
}
ConferenceEjectUserResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
nodeToEject UserID --#field "node_to_eject"--, -- Node ID of the node to eject
result ENUMERATED
{
success (0),
invalidRequester (1),
invalidNode (2),
...
} --#type "ConferenceEjectResult"--,
...
}
ConferenceEjectUserIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
nodeToEject UserID --#field "node_to_eject"--, -- Node ID of the node to eject
reason ENUMERATED
{
userInitiated (0),
higherNodeDisconnected (1),
higherNodeEjected (2),
...
} --#type "ConferenceEjectIndicationReason"--,
...
}
ConferenceTransferRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
conferenceName ConferenceNameSelector --#field "conference_name"--, -- Name of conference to transfer to
conferenceNameModifier ConferenceNameModifier --#field "ctrq_conference_modifier"-- OPTIONAL,
networkAddress NetworkAddress --#field "ctrq_net_address"-- OPTIONAL,
transferringNodes SET --#type "SetOfTransferringNodesRq"-- --#field "ctrq_transferring_nodes"-- (SIZE (1..65536)) OF UserID OPTIONAL,
password PasswordSelector --#field "ctrq_password"-- OPTIONAL,
...
}
ConferenceTransferResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
conferenceName ConferenceNameSelector --#field "conference_name"--, -- Name of conference to transfer to
conferenceNameModifier ConferenceNameModifier --#field "ctrs_conference_modifier"-- OPTIONAL,
transferringNodes SET --#type "SetOfTransferringNodesRs"-- --#field "ctrs_transferring_nodes"-- (SIZE (1..65536)) OF UserID OPTIONAL,
result ENUMERATED
{
success (0),
invalidRequester (1),
...
} --#type "ConferenceTransferResult"--,
...
}
ConferenceTransferIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
conferenceName ConferenceNameSelector --#field "conference_name"--, -- Name of conference to transfer to
conferenceNameModifier ConferenceNameModifier --#field "ctin_conference_modifier"-- OPTIONAL,
networkAddress NetworkAddress --#field "ctin_net_address"-- OPTIONAL,
transferringNodes SET --#type "SetOfTransferringNodesIn"-- --#field "ctin_transferring_nodes"-- (SIZE (1..65536)) OF UserID OPTIONAL,
-- List of Node IDs,
-- not present if destined for all nodes
password PasswordSelector --#field "ctin_password"-- OPTIONAL,
...
}
-- DataBeam modification: change constraints on SetOfApplicationRecordRefreshes
RosterUpdateIndication ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel or
-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
fullRefresh BOOLEAN --#field "refresh_is_full"--, -- Conference Roster and all
-- ApplicationProtocol Sessions refreshed
nodeInformation SEQUENCE
{
nodeRecordList CHOICE
{
noChange NULL --#field "node_no_change"--,
refresh SET --#type "SetOfNodeRecordRefreshes"-- --#field "node_record_refresh"-- (SIZE (1..65536)) OF SEQUENCE
-- One for each node in the conference;
-- no node shall be listed more than once
{
nodeID UserID --#field "node_id"--, -- Node ID of the node
nodeRecord NodeRecord --#field "node_record"--
},
update SET --#type "SetOfNodeRecordUpdates"-- --#field "node_record_update"-- (SIZE (1..65536)) OF SEQUENCE
-- One for each node changing its node record;
-- no node shall be listed more than once
{
nodeID UserID --#field "node_id"-- , -- Node ID of the node
nodeUpdate CHOICE
{
addRecord NodeRecord --#field "node_add_record"--,
replaceRecord NodeRecord --#field "node_replace_record"--,
removeRecord NULL --#field "node_remove_record"--,
...
} --#type "NodeUpdate"-- --#field "node_update"--
},
...
} --#type "NodeRecordList"-- --#field "node_record_list"--,
rosterInstanceNumber INTEGER --#field "roster_instance_number"-- (0..65535),
nodesAdded BOOLEAN --#field "nodes_are_added"--, -- Nodes have been added since last instance
nodesRemoved BOOLEAN --#field "nodes_are_removed"--, -- Nodes have been removed since last instance
...
} --#type "NodeInformation"-- --#field "node_information"-- ,
applicationInformation SET --#type "SetOfApplicationInformation"-- --#field "application_information"-- (SIZE (0..65535)) OF SEQUENCE
-- One for each Application Protocol Session;
-- all Application Protocol Sessions if full refresh;
-- no Application Protocol Session shall be
-- listed more than once
{
sessionKey SessionKey --#field "session_key"--,
applicationRecordList CHOICE
{
noChange NULL --#field "application_no_change"--,
refresh SET --#type "SetOfApplicationRecordRefreshes"-- --#field "application_record_refresh"-- (SIZE (0..65535)) OF SEQUENCE
-- One for each node with the
-- Application Protocol Session enrolled;
-- no node shall be listed more than once
{
nodeID UserID --#field "node_id"--, -- Node ID of node
entityID EntityID --#field "entity_id"--, -- ID for this Application Protocol Entity at this node
applicationRecord ApplicationRecord --#field "application_record"--
},
update SET --#type "SetOfApplicationRecordUpdates"-- --#field "application_record_update"-- (SIZE (1..65536)) OF SEQUENCE
-- One for each node modifying its Application Record;
-- no node shall be listed more than once
{
nodeID UserID --#field "node_id"-- , -- Node ID of node
entityID EntityID --#field "entity_id"-- , -- ID for this Application Protocol Entity at this node
applicationUpdate CHOICE
{
addRecord ApplicationRecord --#field "application_add_record"--,
replaceRecord ApplicationRecord --#field "application_replace_record"--,
removeRecord NULL --#field "application_remove_record"--,
...
} --#type "ApplicationUpdate"-- --#field "application_update"--
},
...
} --#type "ApplicationRecordList"-- --#field "application_record_list"--,
applicationCapabilitiesList CHOICE
{
noChange NULL --#field "capability_no_change"--,
refresh SET --#type "SetOfApplicationCapabilityRefreshes"-- --#field "application_capability_refresh"-- OF SEQUENCE
{
capabilityID CapabilityID --#field "capability_id"--,
capabilityClass CapabilityClass --#field "capability_class"--,
numberOfEntities INTEGER --#field "number_of_entities"-- (1..65536),
-- Number of Application Protocol Entities
-- which issued the capability
...
},
...
} --#type "ApplicationCapabilitiesList"-- --#field "application_capabilities_list"--,
rosterInstanceNumber INTEGER --#field "roster_instance_number"-- (0..65535),
peerEntitiesAdded BOOLEAN --#field "peer_entities_are_added"--, -- Peer Entities have been added since last instance
peerEntitiesRemoved BOOLEAN --#field "peer_entities_are_removed"--, -- Peer Entities have been removed since last instance
...
},
...
}
ApplicationInvokeIndication ::= SEQUENCE
{ -- MCS-Send-Data or MCS-Uniform-Send-Data
-- on GCC-Broadcast-Channel or Node ID Channel
applicationProtocolEntityList SET --#type "ApplicationProtocolEntityList"-- --#field "application_protocol_entity_list"-- (SIZE (1..65536)) OF ApplicationInvokeSpecifier,
destinationNodes SET --#type "SetOfDestinationNodes"-- --#field "destination_nodes"-- (SIZE (1..65536)) OF UserID OPTIONAL,
-- List of Node IDs,
-- not present if destined for all nodes
...
}
RegistryRegisterChannelRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "key"--,
channelID DynamicChannelID --#field "channel_id"--,
...
}
RegistryAssignTokenRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "registry_key"--,
...
}
RegistrySetParameterRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "key"--,
parameter OCTET STRING --#field "registry_set_parameter"-- (SIZE (0..64)),
modificationRights RegistryModificationRights --#field "parameter_modify_rights"-- OPTIONAL,
...
}
RegistryRetrieveEntryRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "key"--,
...
}
RegistryDeleteEntryRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "key"--,
...
}
RegistryMonitorEntryRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
key RegistryKey --#field "key"--,
...
}
RegistryMonitorEntryIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
key RegistryKey --#field "key"--,
item RegistryItem --#field "item"--, -- Contents: channel, token, parameter, or empty
owner RegistryEntryOwner --#field "owner"--,
modificationRights RegistryModificationRights --#field "entry_modify_rights"-- OPTIONAL,
...
}
RegistryAllocateHandleRequest ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of Top GCC
entityID EntityID --#field "entity_id"--,
numberOfHandles INTEGER --#field "number_of_handles"-- (1..1024),
...
}
RegistryAllocateHandleResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
entityID EntityID --#field "entity_id"--,
numberOfHandles INTEGER --#field "number_of_handles"-- (1..1024),
firstHandle Handle --#field "first_handle"--,
result ENUMERATED
{
successful (0),
noHandlesAvailable (1),
...
} --#type "RegistryAllocateHandleResult"--,
...
}
RegistryResponse ::= SEQUENCE
{ -- MCS-Send-Data on Node ID Channel of requester
entityID EntityID --#field "entity_id"--, -- Entity ID of the requesting Application Protocol Entity
primitiveType ENUMERATED
{
registerChannel (0),
assignToken (1),
setParameter (2),
retrieveEntry (3),
deleteEntry (4),
monitorEntry (5),
...
} --#type "RegistryResponsePrimitiveType"-- --#field "primitive_type"--,
key RegistryKey --#field "key"--, -- Database index
item RegistryItem --#field "item"--, -- Contents: channel, token, parameter, or vacant
owner RegistryEntryOwner --#field "owner"--,
modificationRights RegistryModificationRights --#field "response_modify_rights"-- OPTIONAL,
result ENUMERATED
{
successful (0),
belongsToOther (1),
tooManyEntries (2),
inconsistentType (3),
entryNotFound (4),
entryAlreadyExists (5),
invalidRequester (6),
...
} --#type "RegistryResponseResult"--,
...
}
ConductorAssignIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
conductingNode UserID --#field "user_id"--,
...
}
ConductorReleaseIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
-- No parameters
...
}
ConductorPermissionAskIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
grantFlag BOOLEAN --#field "permission_is_granted"--, -- TRUE to request permission grant, FALSE to release
...
} --#type "ConductorPermissionAskIndication"--
ConductorPermissionGrantIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
permissionList SEQUENCE --#type "PermissionList"-- --#field "permission_list"-- (SIZE (0..65535)) OF UserID,
-- Node ID of nodes granted permission
waitingList SEQUENCE --#type "WaitingList"-- --#field "waiting_list"-- (SIZE (1..65536)) OF UserID OPTIONAL,
-- Node ID of nodes waiting form permission
...
} --#type "ConductorPermissionGrantIndication"--
ConferenceTimeRemainingIndication ::= SEQUENCE
{ -- MCS-Send-Data on GCC-Broadcast-Channel
timeRemaining Time --#field "time_remaining"--,
nodeID UserID --#field "time_remaining_node_id"-- OPTIONAL,
...
} --#type "ConferenceTimeRemainingIndication"--
ConferenceTimeInquireIndication ::= SEQUENCE
{ -- MCS-Send-Data on GCC-Convener-Channel
nodeSpecificTimeFlag BOOLEAN --#field "time_is_node_specific"--, -- FALSE for conference-wide, TRUE for node-specific
...
}
ConferenceTimeExtendIndication ::= SEQUENCE
{ -- MCS-Send-Data on GCC-Convener-Channel
timeToExtend Time --#field "time_to_extend"--,
nodeSpecificTimeFlag BOOLEAN --#field "time_is_node_specific"--, -- FALSE for conference-wide, TRUE for node-specific
...
}
ConferenceAssistanceIndication ::= SEQUENCE
{ -- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
userData UserData --#field "cain_user_data"-- OPTIONAL,
...
}
TextMessageIndication ::= SEQUENCE
{ -- MCS-Send-Data or MCS-Uniform-Send-Data
message TextString, -- on GCC-Broadcast-Channel or Node ID Channel
...
}
FunctionNotSupportedResponse ::= SEQUENCE
{
request RequestPDU
}
NonStandardPDU ::= SEQUENCE
{
data NonStandardParameter,
...
}
-- ==========================================================================
-- Part 3: Messages sent as MCS-Connect-Provider user data
-- ==========================================================================
ConnectData ::= SEQUENCE
{
t124Identifier Key --#field "t124_identifier"--, -- This shall be set to the value {itu recommendation t 124 version(0) 1}
connectPDU OCTET STRING --#field "connect_pdu"--
}
ConnectGCCPDU ::= CHOICE
{
conferenceCreateRequest ConferenceCreateRequest --#field "conference_create_request"--,
conferenceCreateResponse ConferenceCreateResponse --#field "conference_create_response"--,
conferenceQueryRequest ConferenceQueryRequest --#field "conference_query_request"--,
conferenceQueryResponse ConferenceQueryResponse --#field "conference_query_response"--,
conferenceJoinRequest ConferenceJoinRequest --#field "connect_join_request"--,
conferenceJoinResponse ConferenceJoinResponse --#field "connect_join_response"--,
conferenceInviteRequest ConferenceInviteRequest --#field "conference_invite_request"--,
conferenceInviteResponse ConferenceInviteResponse --#field "conference_invite_response"--,
...
}
-- ==========================================================================
-- Part 4: Messages sent using MCS-Send-Data or MCS-Uniform-Send-Data
-- ==========================================================================
GCCPDU ::= CHOICE
{
request RequestPDU,
response ResponsePDU,
indication IndicationPDU
}
RequestPDU ::= CHOICE
{
conferenceJoinRequest ConferenceJoinRequest --#field "conference_join_request"--,
conferenceAddRequest ConferenceAddRequest --#field "conference_add_request"--,
conferenceLockRequest ConferenceLockRequest --#field "conference_lock_request"--,
conferenceUnlockRequest ConferenceUnlockRequest --#field "conference_unlock_request"--,
conferenceTerminateRequest ConferenceTerminateRequest --#field "conference_terminate_request"--,
conferenceEjectUserRequest ConferenceEjectUserRequest --#field "conference_eject_user_request"--,
conferenceTransferRequest ConferenceTransferRequest --#field "conference_transfer_request"--,
registryRegisterChannelRequest RegistryRegisterChannelRequest --#field "registry_register_channel_request"--,
registryAssignTokenRequest RegistryAssignTokenRequest --#field "registry_assign_token_request"--,
registrySetParameterRequest RegistrySetParameterRequest --#field "registry_set_parameter_request"--,
registryRetrieveEntryRequest RegistryRetrieveEntryRequest --#field "registry_retrieve_entry_request"--,
registryDeleteEntryRequest RegistryDeleteEntryRequest --#field "registry_delete_entry_request"--,
registryMonitorEntryRequest RegistryMonitorEntryRequest --#field "registry_monitor_entry_request"--,
registryAllocateHandleRequest RegistryAllocateHandleRequest --#field "registry_allocate_handle_request"--,
nonStandardRequest NonStandardPDU --#field "non_standard_request"--,
...
}
ResponsePDU ::= CHOICE
{
conferenceJoinResponse ConferenceJoinResponse --#field "conference_join_response"--,
conferenceAddResponse ConferenceAddResponse --#field "conference_add_response"--,
conferenceLockResponse ConferenceLockResponse --#field "conference_lock_response"--,
conferenceUnlockResponse ConferenceUnlockResponse --#field "conference_unlock_response"--,
conferenceTerminateResponse ConferenceTerminateResponse --#field "conference_terminate_response"--,
conferenceEjectUserResponse ConferenceEjectUserResponse --#field "conference_eject_user_response"--,
conferenceTransferResponse ConferenceTransferResponse --#field "conference_transfer_response"--,
registryResponse RegistryResponse --#field "registry_response"--,
registryAllocateHandleResponse RegistryAllocateHandleResponse --#field "registry_allocate_handle_response"--,
functionNotSupportedResponse FunctionNotSupportedResponse --#field "function_not_supported_response"--,
nonStandardResponse NonStandardPDU --#field "non_standard_response"--,
...
}
IndicationPDU ::= CHOICE
{
userIDIndication UserIDIndication --#field "user_id_indication"--,
conferenceLockIndication ConferenceLockIndication --#field "conference_lock_indication"--,
conferenceUnlockIndication ConferenceUnlockIndication --#field "conference_unlock_indication"--,
conferenceTerminateIndication ConferenceTerminateIndication --#field "conference_terminate_indication"--,
conferenceEjectUserIndication ConferenceEjectUserIndication --#field "conference_eject_user_indication"--,
conferenceTransferIndication ConferenceTransferIndication --#field "conference_transfer_indication"--,
rosterUpdateIndication RosterUpdateIndication --#field "roster_update_indication"--,
applicationInvokeIndication ApplicationInvokeIndication --#field "application_invoke_indication"--,
registryMonitorEntryIndication RegistryMonitorEntryIndication --#field "registry_monitor_entry_indication"--,
conductorAssignIndication ConductorAssignIndication --#field "conductor_assign_indication"--,
conductorReleaseIndication ConductorReleaseIndication --#field "conductor_release_indication"--,
conductorPermissionAskIndication ConductorPermissionAskIndication --#field "conductor_permission_ask_indication"--,
conductorPermissionGrantIndication ConductorPermissionGrantIndication --#field "conductor_permission_grant_indication"--,
conferenceTimeRemainingIndication ConferenceTimeRemainingIndication --#field "conference_time_remaining_indication"--,
conferenceTimeInquireIndication ConferenceTimeInquireIndication --#field "conference_time_inquire_indication"--,
conferenceTimeExtendIndication ConferenceTimeExtendIndication --#field "conference_time_extend_indication"--,
conferenceAssistanceIndication ConferenceAssistanceIndication --#field "conference_assistance_indication"--,
textMessageIndication TextMessageIndication --#field "text_message_indication"--,
nonStandardIndication NonStandardPDU --#field "non_standard_indication"--,
...
}
END