-
Notifications
You must be signed in to change notification settings - Fork 1
/
ENetUC_ClientCapabilities.asn1
152 lines (130 loc) · 6.97 KB
/
ENetUC_ClientCapabilities.asn1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
UC-Server-Access-Protocol-ClientCapabilities
{ iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) estos(10924) uc-server-access-protocol-v2(2) clientcapabilities(25) }
-- @category ClientCapabilities
-- @brief Data structures and methods to transport and notify client capabilities between clients and the server
-- @long
-- Each client has certain capabilities he is able to handle. They are used to tell other clients the kind of interactions each client is able to process.
-- If a client wants to start an audio call to another client both clients have to be able to process audio (speakers and microphone present).
-- As soon as a client is capable to handle audio it tells the server and thus other clients that the client is now ready to process audio requests.
-- Beside well known capabilities clients may exchange customs capabilities. (e.g. client is capable for some sort of sharing and the appropriate sharing resource id)
--~ Neues Interface verwendet folgende Methoden
--~ Operation IDs: 3300 - 3399
--~ 3300 asnSetClientCapabilitiesV2 - Set client capabiliites to the server
--~ 3301 asnGetClientCapabilitiesV2 - Get client capabiliites from the server
--~ 3302 asnClientCapabilitiesV2Changed - Event for changed capabilites (is sent for opened contacts towards the client, the capabilites interface has no dedicated monitor or subscribe methods)
--~ Altes Interface verwendet folgende Methoden
--~ 2134 asnSetClientCapabilities (DEPRECATED) -> asnSetClientCapabilitiesV2
--~ 2135 asnClientCapabilitiesChanged (DEPRECATED) -> asnClientCapabilitiesV2Changed
--~ 2139 asnGetClientCapabilities (DEPRECATED) -> asnGetClientCapabilitiesV2
DEFINITIONS
IMPLICIT TAGS ::=
BEGIN
IMPORTS
AsnOptionalParameters, AsnRequestError, AsnStringPairList, UTF8StringList, SEQInteger FROM UC-Server-Access-Protocol-Common
;
-- These are well known capabilities the system is aware of
-- Other implementation specific capablities are exchange using a property value list
AsnClientCapabilityEnum ::= ENUMERATED
{
bNothing(0), -- nothing, dummy value to set an empty list
bAudio(1), -- client/connection is capable to handle audio
bVideo(2), -- client/connection is capable to handle video
bScreenShare(3), -- client/connection is capable to handle desktop/screen sharing
bCalendarExchange(4), -- client/connection is capable to replicate exchange calendar data
bCalendarNotes(5), -- client/connection is capable to replicate notes calendar data
bCameraControl(6), -- client/connection is capable to control a camera for video (movement, zoom, ...)
bPublicChat(7), -- client/connection is capable to handle public group chats via LiveChat
bPublicCall(8), -- client/connection is capable to handle public audio/video calls via LiveChat
bConferencing(9), -- client/connection is capable to handle conferencing
bAudioRemoteControlServer(10), -- client/connection is capable to handle remote control server extensions for Audio (AV)
bAudioRemoteControlClient(11) -- client/connection is capable to handle remote control client extensions for Audio (AV)
}
-- @brief Data structure to transport capabilities a client/connection is capable to handle
-- @long
-- This data structure is used to transport client capabilities between the clients and the server
-- In an invoke towards the server the client tells what the client is capable to handle. This list
-- contains well known properties as well as custom properties a client wants to exchange with other clients.
-- Well known capabilites are an integer list which contains enums values of the AsnClientCapabilityEnum.
-- Additionaly clients may specify additional information they need to exchange with other clients using the customCapabilities
-- The serve builds a sum over all connected clients an notifies clients via the PresenceV2 implementation or changed events
-- within this interface.
AsnClientCapabilitiesV2 ::= SEQUENCE
{
-- List of capabilities the client or connection is capable to handle
-- @linked AsnClientCapabilityEnum
eClientCapabilities SEQInteger,
-- Custom capabilites clients share with each other as a name:value list
-- the server creates a sum over the client provided capabilites
-- if clients provide properties with same name but different values the list will containt names multiple times
customCapabilities AsnStringPairList,
...
}
-- @brief Client Capabilities with the user identifier to whom they belong
AsnClientCapabilitiesV2ByID ::= SEQUENCE
{
-- ContactID or Connection GUI the clientCaps belong to
u8sID UTF8String,
-- The client capabilities
capabilities AsnClientCapabilitiesV2,
...
}
-- @brief List of client capabilities with user identifier
AsnClientCapabilitiesV2ByIDList ::= SEQUENCE OF AsnClientCapabilitiesV2ByID
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnSetClientCapabilitiesV2 ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for the asnSetClientCapabilitiesV2 event
AsnSetClientCapabilitiesV2Argument ::= SEQUENCE
{
capabilities AsnClientCapabilitiesV2,
...
}
AsnSetClientCapabilitiesV2Result ::= SEQUENCE
{
...
}
-- @brief Event to send client capabilities to the server
asnSetClientCapabilitiesV2 OPERATION
ARGUMENT arg AsnSetClientCapabilitiesV2Argument
RESULT res AsnSetClientCapabilitiesV2Result
ERRORS {AsnRequestError}
::= 3300
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnGetClientCapabilitiesV2 ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for the asnGetClientCapabilitiesV2 event
AsnGetClientCapabilitiesV2Argument ::= SEQUENCE
{
-- ContactIDs we want to have the capabilities for
u8slistContactIDs UTF8StringList,
...
}
AsnGetClientCapabilitiesV2Result ::= SEQUENCE
{
-- List of capabilities
capabilities AsnClientCapabilitiesV2ByIDList,
...
}
-- @brief Event to send client capabilities to the server
asnGetClientCapabilitiesV2 OPERATION
ARGUMENT arg AsnGetClientCapabilitiesV2Argument
RESULT res AsnGetClientCapabilitiesV2Result
ERRORS {AsnRequestError}
::= 3301
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnClientCapabilitiesV2Changed ~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for the asnClientCapabilitiesV2Changed method
AsnClientCapabilitiesV2ChangedArgument ::= SEQUENCE
{
-- Client capabilities by user list
capabilities AsnClientCapabilitiesV2ByIDList,
...
}
-- @brief Event the server will send if client capabilites have changed
-- @long The server will dispatch events for subscribed contacts towards the clients
-- The List will contain a list of client capabiliites with the user ids the refer to
asnClientCapabilitiesV2Changed OPERATION
ARGUMENT arg AsnClientCapabilitiesV2ChangedArgument
::= 3302
END