idnits 2.17.1
draft-ietf-clue-protocol-13.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
** There are 3 instances of too long lines in the document, the longest one
being 6 characters in excess of 72.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
== Line 1017 has weird spacing: '... | sent retr...'
== Line 1019 has weird spacing: '...expired v ...'
-- The document date (February 23, 2017) is 2619 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Missing Reference: '1-9' is mentioned on line 1291, but not defined
== Missing Reference: '0-9' is mentioned on line 1291, but not defined
== Outdated reference: A later version (-18) exists of
draft-ietf-clue-datachannel-14
** Downref: Normative reference to an Experimental draft:
draft-ietf-clue-datachannel (ref. 'I-D.ietf-clue-datachannel')
== Outdated reference: A later version (-15) exists of
draft-ietf-clue-signaling-10
** Downref: Normative reference to an Experimental draft:
draft-ietf-clue-signaling (ref. 'I-D.ietf-clue-signaling')
** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126)
Summary: 4 errors (**), 0 flaws (~~), 7 warnings (==), 1 comment (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 CLUE Working Group R. Presta
3 Internet-Draft S. Romano
4 Intended status: Standards Track University of Napoli
5 Expires: August 27, 2017 February 23, 2017
7 CLUE protocol
8 draft-ietf-clue-protocol-13
10 Abstract
12 The CLUE protocol is an application protocol conceived for the
13 description and negotiation of a telepresence session. The design of
14 the CLUE protocol takes into account the requirements and the
15 framework defined within the IETF CLUE working group. A companion
16 document delves into CLUE signaling details, as well as on the SIP/
17 SDP session establishment phase. CLUE messages flow over the CLUE
18 data channel, based on reliable and ordered SCTP over DTLS transport.
19 Message details, together with the behavior of CLUE Participants
20 acting as Media Providers and/or Media Consumers, are herein
21 discussed.
23 Status of This Memo
25 This Internet-Draft is submitted in full conformance with the
26 provisions of BCP 78 and BCP 79.
28 Internet-Drafts are working documents of the Internet Engineering
29 Task Force (IETF). Note that other groups may also distribute
30 working documents as Internet-Drafts. The list of current Internet-
31 Drafts is at http://datatracker.ietf.org/drafts/current/.
33 Internet-Drafts are draft documents valid for a maximum of six months
34 and may be updated, replaced, or obsoleted by other documents at any
35 time. It is inappropriate to use Internet-Drafts as reference
36 material or to cite them other than as "work in progress."
38 This Internet-Draft will expire on August 27, 2017.
40 Copyright Notice
42 Copyright (c) 2017 IETF Trust and the persons identified as the
43 document authors. All rights reserved.
45 This document is subject to BCP 78 and the IETF Trust's Legal
46 Provisions Relating to IETF Documents
47 (http://trustee.ietf.org/license-info) in effect on the date of
48 publication of this document. Please review these documents
49 carefully, as they describe your rights and restrictions with respect
50 to this document. Code Components extracted from this document must
51 include Simplified BSD License text as described in Section 4.e of
52 the Trust Legal Provisions and are provided without warranty as
53 described in the Simplified BSD License.
55 Table of Contents
57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
59 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4
60 4. Overview of the CLUE protocol . . . . . . . . . . . . . . . . 4
61 5. Protocol messages . . . . . . . . . . . . . . . . . . . . . . 7
62 5.1. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 9
63 5.2. OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . 11
64 5.3. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 12
65 5.4. ADVERTISEMENT ACKNOWLEDGEMENT . . . . . . . . . . . . . . 13
66 5.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 13
67 5.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . 14
68 5.7. Response codes and reason strings . . . . . . . . . . . . 15
69 6. Protocol state machines . . . . . . . . . . . . . . . . . . . 17
70 6.1. Media Provider's state machine . . . . . . . . . . . . . 19
71 6.2. Media Consumer's state machine . . . . . . . . . . . . . 23
72 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . 26
73 8. Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 26
74 8.1. Extension example . . . . . . . . . . . . . . . . . . . . 28
75 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 30
76 10. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 34
77 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . 35
78 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . 42
79 11. Security Considerations . . . . . . . . . . . . . . . . . . . 52
80 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54
81 12.1. URN Sub-Namespace Registration . . . . . . . . . . . . . 54
82 12.2. XML Schema registration . . . . . . . . . . . . . . . . 54
83 12.3. MIME Media Type Registration for 'application/clue+xml' 55
84 12.4. CLUE Protocol Registry . . . . . . . . . . . . . . . . . 56
85 12.4.1. CLUE Message Types . . . . . . . . . . . . . . . . . 56
86 12.4.2. CLUE Response Codes . . . . . . . . . . . . . . . . 57
87 13. Diff with draft-ietf-clue-protocol-12 . . . . . . . . . . . . 59
88 14. Diff with draft-ietf-clue-protocol-06 . . . . . . . . . . . . 59
89 15. Diff with draft-ietf-clue-protocol-05 . . . . . . . . . . . . 59
90 16. Diff with draft-ietf-clue-protocol-04 . . . . . . . . . . . . 59
91 17. Diff with draft-ietf-clue-protocol-03 . . . . . . . . . . . . 59
92 18. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 59
93 19. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 60
94 20. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 60
95 21. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 60
96 22. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 61
97 23. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 61
98 24. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 61
99 25. References . . . . . . . . . . . . . . . . . . . . . . . . . 61
100 25.1. Normative References . . . . . . . . . . . . . . . . . . 61
101 25.2. Informative References . . . . . . . . . . . . . . . . . 62
102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 63
104 1. Introduction
106 The CLUE protocol is an application protocol used by two CLUE
107 Participants to enhance the experience of a multimedia telepresence
108 session. The main goals of the CLUE protocol are:
110 1. enabling a Media Provider (MP) to properly announce its current
111 telepresence capabilities to a Media Consumer (MC) in terms of
112 available media captures, groups of encodings, simultaneity
113 constraints and other information defined in
114 [I-D.ietf-clue-framework];
116 2. enabling an MC to request the desired multimedia streams from the
117 offering MP.
119 CLUE-capable endpoints are connected by means of the CLUE data
120 channel, an SCTP over DTLS channel which is opened and established as
121 described in [I-D.ietf-clue-signaling] and
122 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing over
123 such a channel are detailed in this document, both syntactically and
124 semantically.
126 In Section 4 we provide a general overview of the CLUE protocol.
127 CLUE protocol messages are detailed in Section 5. The CLUE Protocol
128 state machines are introduced in Section 6. Versioning and
129 extensions are discussed in Section 7 and Section 8, respectively.
130 The XML schema defining the CLUE messages is reported in Section 9.
132 2. Terminology
134 This document refers to the same terminology used in
135 [I-D.ietf-clue-framework] and in [RFC7262]. We briefly recall herein
136 some of the main terms used in the document. The definition of "CLUE
137 Participant" herein proposed is not imported from any of the above
138 documents.
140 CLUE Participant (CP): An entity able to use the CLUE protocol
141 within a telepresence session. It can be an endpoint or an MCU
142 able to use the CLUE protocol.
144 CLUE-capable device: A device that supports the CLUE data channel
145 [I-D.ietf-clue-datachannel], the CLUE protocol and the principles
146 of CLUE negotiation, and seeks CLUE-enabled calls.
148 Endpoint: The logical point of final termination through receiving,
149 decoding and rendering, and/or initiation through capturing,
150 encoding, and sending of media streams. An endpoint consists of
151 one or more physical devices which source and sink media streams,
152 and exactly one Participant (e.g., a [RFC4353] participant).
153 Endpoints can be anything from multiscreen/multicamera room
154 controllers to handheld devices.
156 MCU: Multipoint Control Unit (MCU) - a device that connects two or
157 more endpoints together into one single multimedia conference
158 [RFC7667]. An MCU may include a Mixer [RFC4353].
160 Media: Any data that, after suitable encoding, can be conveyed over
161 RTP, including audio, video or timed text.
163 Media Capture: A "Media Capture", or simply "Capture", is a source
164 of Media.
166 Media Consumer (MC): A CLUE Participant (i.e., an Endpoint or an
167 MCU) able to receive Media Streams.
169 Capture Encoding: A specific encoding of a Media Capture, to be sent
170 via RTP [RFC3550].
172 Media Provider (MP): A CLUE Participant (i.e., an Endpoint or an
173 MCU) able to send Media Streams.
175 Media Stream: The term "Media Stream", or simply "Stream", is used
176 as a synonym of Capture Encoding.
178 3. Conventions
180 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
181 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
182 document are to be interpreted as described in BCP 14, RFC 2119
183 [RFC2119].
185 4. Overview of the CLUE protocol
187 The CLUE protocol is conceived to enable CLUE telepresence sessions.
188 It is designed in order to address SDP limitations in terms of the
189 description of some information about the multimedia streams that are
190 involved in a real-time multimedia conference. Indeed, by simply
191 using SDP it is not possible to convey information about the features
192 of the flowing multimedia streams that are needed to enable a "being
193 there" rendering experience. Such information is contained in the
194 CLUE framework document and formally defined and described in the
195 CLUE data model document. The CLUE protocol represents the mechanism
196 for the exchange of CLUE information between CLUE Participants. It
197 mainly provides the messages to enable a Media Provider to advertise
198 its telepresence capabilities and to enable a Media Consumer to
199 select the desired telepresence options.
201 The CLUE protocol, as defined in the following, is a stateful,
202 client-server, XML-based application protocol. CLUE protocol
203 messages flow on a reliable and ordered SCTP over DTLS transport
204 channel connecting two CLUE Participants. Messages carry information
205 taken from the XML-based CLUE data model
206 ([I-D.ietf-clue-data-model-schema]). Three main communication phases
207 can be identified:
209 1. Establishment of the CLUE data channel: in this phase, the CLUE
210 data channel setup takes place. If it completes successfully,
211 the CPs are able to communicate and start the initiation phase.
213 2. Negotiation of the CLUE protocol version and extensions
214 (initiation phase): the CPs connected via the CLUE data channel
215 agree on the version and on the extensions to be used during the
216 telepresence session. Special CLUE messages are used for such a
217 task (OPTIONS and OPTIONS RESPONSE). The version and extensions
218 negotiation can be performed once during the CLUE session and
219 only at this stage. At the end of that basic negotiation, each
220 CP starts its activity as a CLUE MP and/or CLUE MC.
222 3. CLUE telepresence capabilities description and negotiation: in
223 this phase, the MP-MC dialogues take place on the data channel by
224 means of the CLUE protocol messages.
226 As soon as the channel is ready, the CLUE Participants must agree on
227 the protocol version and extensions to be used within the
228 telepresence session. CLUE protocol version numbers are
229 characterized by a major version number (single digit) and a minor
230 version number (single digit), both unsigned integers, separated by a
231 dot. While minor version numbers denote backward compatible changes
232 in the context of a given major version, different major version
233 numbers generally indicate a lack of interoperability between the
234 protocol implementations. In order to correctly establish a CLUE
235 dialogue, the involved CPs MUST have in common a major version number
236 (see Section 7 for further details). The subset of the extensions
237 that are allowed within the CLUE session is also determined in the
238 initiation phase, such subset being the one including only the
239 extensions that are supported by both parties. A mechanism for the
240 negotiation of the CLUE protocol version and extensions is part of
241 the initial phase. According to such a solution, the CP which is the
242 CLUE Channel initiator (CI) issues a proper CLUE message (OPTIONS) to
243 the CP which is the Channel Receiver (CR) specifying the supported
244 version and extensions. The CR then answers by selecting the subset
245 of the CI extensions that it is able to support and determines the
246 protocol version to be used.
248 After the negotiation phase is completed, CLUE Participants describe
249 and agree on the media flows to be exchanged. In many cases CPs will
250 seek to both transmit and receive media. Hence in a call between two
251 CPs, A and B, there would be two separate dialogs, as follows:
253 1. the one needed to describe and set up the media streams sent from
254 A to B, i.e., the dialogue between A's Media Provider side and
255 B's Media Consumer side
257 2. the one needed to describe and set up the media streams sent from
258 B to A, i.e., the dialogue between B's Media Provider side and
259 A's Media Consumer side
261 CLUE messages for the media session description and negotiation are
262 designed by considering the MP side as the server side of the
263 protocol, since it produces and provides media streams, and the MC
264 side as the client side of the protocol, since it requests and
265 receives media streams. The messages that are exchanged to set up
266 the telepresence media session are described by focusing on a single
267 MP-MC dialogue.
269 The MP first advertises its available media captures and encoding
270 capabilities to the MC, as well as its simultaneity constraints,
271 according to the information model defined in
272 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's
273 multimedia offer is the ADVERTISEMENT message. Such message
274 leverages the XML data model definitions provided in
275 [I-D.ietf-clue-data-model-schema].
277 The MC selects the desired streams of the MP by using the CONFIGURE
278 message, which makes reference to the information carried in the
279 previously received ADVERTISEMENT.
281 Besides ADVERTISEMENT and CONFIGURE, other messages have been
282 conceived in order to provide all the needed mechanisms and
283 operations. Such messages are detailed in the following sections.
285 5. Protocol messages
287 CLUE protocol messages are textual, XML-based messages that enable
288 the configuration of the telepresence session. The formal definition
289 of such messages is provided in the XML Schema provided at the end of
290 this document (Section 9).
292 The XML definitions of the CLUE information provided in
293 [I-D.ietf-clue-data-model-schema] are included within some CLUE
294 protocol messages (namely the ADVERTISEMENT and the CONFIGURE
295 messages), in order to use the concepts defined in
296 [I-D.ietf-clue-framework].
298 The CLUE protocol messages are the following:
300 o OPTIONS
302 o OPTIONS RESPONSE
304 o ADVERTISEMENT (ADV)
306 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK)
308 o CONFIGURE (CONF)
310 o CONFIGURE RESPONSE (CONF RESPONSE)
312 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the
313 initiation phase between the CPs, the other messages are involved in
314 MP-MC dialogues.
316 Each CLUE message inherits a basic structure depicted in the
317 following excerpt:
319
320
321
322
323
324
325
327
328
330
331
332
333
334
335
337 The information contained in each CLUE message is:
339 o clueId: an optional XML element containing the identifier (in the
340 form of a generic string) of the CP within the telepresence
341 system;
343 o sequenceNr: an XML element containing the local message sequence
344 number. The sender must increment the sequence numbers by one for
345 each new message sent, the receiver must remember the most recent
346 sequence number received and send back a 402 error if it receives
347 a message with an unexpected sequence number. The initial
348 sequence number can be chosen randomly by each party;
350 o protocol: a mandatory attribute set to "CLUE", identifying the
351 procotol the messages refer to;
353 o v: a mandatory attribute carrying the version of the protocol.
354 The content of the "v" attribute is composed by the major version
355 number followed by a dot and then by the minor version number of
356 the CLUE protocol in use. Allowed values are of this kind are,
357 e.g., "1.3", "2.4" etc.
359 Each CP is responsible for creating and updating up to three
360 independent streams of sequence numbers in messages it sends: (i) one
361 for the messages sent in the initiation phase, (ii) one for the
362 messages sent as MP (if it is acting as a MP), and (iii) one for the
363 messages sent as MC (if it is acting as a MC).
365 5.1. OPTIONS
367 The OPTIONS message is sent by the CP which is the CI to the CP which
368 is the CR as soon as the CLUE data channel is ready. Besides the
369 information envisioned in the basic structure, it specifies:
371 o mediaProvider: a mandatory boolean field set to "true" if the CP
372 is able to act as a MP
374 o mediaConsumer: a mandatory boolean field set to "true" if the CP
375 is able to act as a MC
377 o supportedVersions: the list of the supported versions
379 o supportedExtensions: the list of the supported extensions
381 The XML Schema of such a message is reported below:
383
384
385
386
387
388
389
390
392
394
395
396
397
398
399
401
402
403
404
406
407
408
409
411
412
413
414
416
417
418
419
421
422
423
424
425
426
427
428
429
430
432 contains the list of the versions that are
433 supported by the CI, each one represented in a child
434 element. The content of each element is a string made by
435 the major version number followed by a dot and then by the minor
436 version number (e.g., 1.3 or 2.4). Exactly one element
437 MUST be provided for each major version supported, containing the
438 maximum minor version number of such a version, since all minor
439 versions are backward compatible. If no is
440 carried within the OPTIONS message, the CI supports only the version
441 declared in the "v" attribute and all the versions having the same
442 major version number and lower minor version number. For example, if
443 the "v" attribute has a value of "3.4" and there is no
444 tag in the OPTIONS message, it means the CI
445 supports only major version 3 with all the minor versions comprised
446 between 3.0 and 3.4, with version 3.4 included. If a
447 is provided, at least one tag MUST be
448 included.
450 The element specifies the list of extensions
451 supported by the CI. If there is no in the
452 OPTIONS message, the CI does not support anything other than what is
453 envisioned in the versions it supports. For each extension, an
454 element is provided. An extension is characterized by a
455 name, an XML schema of reference where the extension is defined, and
456 the version of the protocol which the extension refers to.
458 5.2. OPTIONS RESPONSE
460 The OPTIONS RESPONSE is sent by a CR to a CI as a reply to the
461 OPTIONS message. As depicted in the figure below, the OPTIONS
462 RESPONSE contains a mandatory response code and a reason string
463 indicating the processing result of the OPTIONS message. If the
464 responseCode is of the type 2xx the response MUST also include
465 , , and
466 elements; it MAY include them for any other response code.
467 and elements are associated with the
468 supported roles (in terms of, respectively MP and MC), similarly to
469 what the CI does in the OPTIONS message. The field
470 indicates the highest commonly supported version number. The content
471 of the element MUST be a string made of the major version
472 number followed by a dot and then by the minor version number (e.g.,
473 1.3 or 2.4). Finally, the commonly supported extensions are copied
474 in the field.
476
477
478
479
480
481
482
483
484
485
486
487
489
490
491
492
493
495 Upon reception of the OPTIONS RESPONSE the version to be used is
496 provided in the tag of the message. The following CLUE
497 messages MUST use such a version number in the "v" attribute. The
498 allowed extensions in the CLUE dialogue are those indicated in the
499 of the OPTIONS RESPONSE message.
501 5.3. ADVERTISEMENT
503 The ADVERTISEMENT message (ADV) is used by the MP to advertise the
504 available media captures and related information to the MC. The MP
505 sends an ADV to the MC as soon as it is ready after the successful
506 completion of the initiation phase, i.e., as soon as the version and
507 the extensions of the CLUE protocol are agreed between the CPs.
508 During a single CLUE session, an MP may send new ADV messages to
509 replace the previous advertisement, if, for instance, its CLUE
510 telepresence media capabilities change mid-call. A new ADV
511 completely replaces the previous ADV.
513 The ADV structure is defined in the schema excerpt below. The ADV
514 contains elements compliant with the CLUE data model that
515 characterize the MP's telepresence offer. Namely, such elements are:
516 the list of the media captures (), of the encoding
517 groups (), of the capture scenes (),
518 of the simultaneous sets (), of the global views
519 (), and of the represented participants ().
520 Each of them is fully described in the CLUE framework document and
521 formally defined in the CLUE data model document.
523
524
525
526
527
528
529
530
531
532
533
535
537
538
539
540
541
542
543
545 5.4. ADVERTISEMENT ACKNOWLEDGEMENT
547 The ADVERTISEMENT ACKNOWLEDGEMENT message (ACK) is sent by a MC to a
548 MP to acknowledge an ADV message. As it can be seen from the message
549 schema provided in the following, the ACK contains a response code
550 and a reason string for describing the processing result of the ADV.
551 The carries the sequence number of the ADV the ACK
552 refers to.
554
555
556
557
558
559
560
561
562
563
564
565
566
567
569 5.5. CONFIGURE
571 The CONFIGURE message (CONF) is sent from a MC to a MP to list the
572 advertised captures the MC wants to receive. The MC can send a CONF
573 after the reception of an ADV or each time it wants to request other
574 captures that have been previously advertised by the MP. The content
575 of the CONF message is shown below.
577
578
579
580
581
582
583
584
585
587
588
589
590
591
592
594 The element contains the sequence number of the ADV
595 message the CONF refers to.
597 The optional boolean element, set to "true" when present,
598 indicates that the CONF message also acknowledges with success the
599 referred advertisement (CONF + ACK message), by applying in that way
600 a piggybacking mechanism for simultaneously acknowledging and
601 replying to the ADV message. The element MUST NOT be present
602 if an ACK message has been already sent back to the MP.
604 The most important content of the CONFIGURE message is the list of
605 the capture encodings provided in the element.
606 Such an element contains a sequence of capture encodings,
607 representing the streams to be instantiated.
609 5.6. CONFIGURE RESPONSE
610
611
612
613
614
615
616
617
618
619
620
621
622
623
625 The CONFIGURE RESPONSE message (CONF RESPONSE) is sent from the MP to
626 the MC to communicate the processing result of requests carried in
627 the previously received CONF message. It contains a response code
628 with a reason string indicating either the success or the failure
629 (along with failure details) of a CONF request processing.
630 Following, the field contains the sequence number of
631 the CONF message the response refers to. There is no partial
632 execution of commands. As an example, if a MP is able to understand
633 all the selected capture encodings except one, then the whole command
634 fails and nothing is instantiated.
636 5.7. Response codes and reason strings
638 Response codes are defined as a sequence of three digits. A well-
639 defined meaning is associated with the first digit. Response codes
640 beginning with "2" are associated with successful responses.
641 Response codes beginning with "1" will represent a delayed or
642 incomplete response. Response codes that do not begin with either
643 "2" or "1" indicate an error response, i.e., that an error occurred
644 while processing a CLUE request. In particular, response codes
645 beginning with "3" indicate problems with the XML content of the
646 message (""Bad syntax", "Invalid value", etc.), while response codes
647 beginning with "4" refer to problems related to CLUE protocol
648 semantics ("Invalid sequencing", "Version not supported", etc.).
649 100, 200, 300 and 400 codes are considered catch-alls. Further
650 response codes can be either defined in future versions of the
651 protocol (by adding them to the related IANA registry), or defined by
652 leveraging the extension mechanism. In both cases, the new response
653 codes MUST be registered with IANA. Such new response codes MUST NOT
654 overwrite the ones here defined and they MUST respect the semantics
655 of the first code digit.
657 The response codes and strings defined for use with CLUE are as
658 follows:
660 +-----------------+----------------------+--------------------------+
661 | | | |
662 | Response code | Reason string | Description |
663 | | | |
664 +-----------------+----------------------+--------------------------+
665 | | | |
666 | 200 | Success | The request has been |
667 | | | successfully processed. |
668 | | | |
669 +-----------------+----------------------+--------------------------+
670 | | | |
671 | 300 | Syntax errors or | The XML syntax of the |
672 | | inconsistencies | message is not correct |
673 | | | or there are invalid |
674 | | | values. |
675 +-----------------+----------------------+--------------------------+
676 | | | |
677 | 301 | Bad syntax | The XML syntax of the |
678 | | | message is not correct. |
679 +-----------------+----------------------+--------------------------+
680 | | | |
681 | 302 | Invalid value | The message |
682 | | | contains an invalid |
683 | | | parameter value. |
684 +-----------------+----------------------+--------------------------+
685 | | | |
686 | 303 | Conflicting values | The message |
687 | | | contains values that |
688 | | | cannot be used together.|
689 +-----------------+----------------------+--------------------------+
690 | | | |
691 | 400 | Semantic errors | Semantic errors in the |
692 | | | received CLUE protocol |
693 | | | message. |
694 | | | |
695 +-----------------+----------------------+--------------------------+
696 | | | |
697 | 401 | Version not supported| The protocol version |
698 | | | used in the message |
699 | | | is not supported. |
700 | | | |
701 +-----------------+----------------------+--------------------------+
702 | | | |
703 | 402 | Invalid sequencing | The sequence number of |
704 | | | the message is out |
705 | | | of date. |
706 +-----------------+----------------------+--------------------------+
707 | | | |
708 | 403 | Invalid identifier | The identifier used in |
709 | | | the message is |
710 | | | not valid or unknown. |
711 +-----------------+----------------------+--------------------------+
712 | | | |
713 | 404 | ADV Expired | The number of the ADV |
714 | | | the CONF refers to is |
715 | | | out of date. |
716 +-----------------+----------------------+--------------------------+
717 | | | |
718 | 405 | Subset choice not | The subset choice is not|
719 | | allowed | allowed for the specified|
720 | | | MCC |
721 +-----------------+----------------------+--------------------------+
723 6. Protocol state machines
725 The CLUE protocol is an application protocol used between two CPs in
726 order to properly configure a multimedia telepresence session. CLUE
727 protocol messages flow over the CLUE Data Channel, a DTLS/SCTP
728 channel established as depicted in [I-D.ietf-clue-datachannel]. We
729 herein discuss the state machines associated, respectively, with the
730 CLUE Participant, with the MC process and with the MP process.
731 Endpoints often wish to both send and receive media, i.e., act as
732 both MP and MC. As such there will often be two sets of messages
733 flowing in opposite directions; the state machines of these two flows
734 do not interact with each other. Only the CLUE application logic is
735 considered. The interaction of CLUE protocol and SDP negotiations
736 for the media streams exchanged is treated in
737 [I-D.ietf-clue-signaling].
739 The main state machines focus on the behavior of the CLUE Participant
740 (CP) acting as a CLUE channel initiator/receiver (CI/CR).
742 The initial state is the IDLE one. When in the IDLE state, the CLUE
743 data channel is not established and no CLUE-controlled media are
744 exchanged between the two considered CLUE-capable devices (if there
745 is an ongoing exchange of media streams, such media streams are not
746 currently CLUE-controlled).
748 When the CLUE data channel set up starts ("start channel"), the CP
749 moves from the IDLE state to the CHANNEL SETUP state.
751 If the CLUE data channel is successfully set up ("channel
752 established"), the CP moves from the CHANNEL SETUP state to the
753 OPTIONS state. Otherwise if "channel error", it moves back to the
754 IDLE state. The same transition happens if the CLUE-enabled
755 telepresence session ends ("session ends"), i.e., when an SDP
756 negotiation for removing the CLUE channel is performed.
758 When in the OPTIONS state, the CP addresses the initiation phase
759 where both parts agree on the version and on the extensions to be
760 used in the subsequent CLUE messages exchange phase. If the CP is
761 the Channel Initiator (CI), it sends an OPTIONS message and waits for
762 the OPTIONS RESPONSE message. If the CP is the Channel Receiver
763 (CR), it waits for the OPTIONS message and, as soon as it arrives,
764 replies with the OPTIONS RESPONSE message. If the negotiation is
765 successfully completed ("OPTIONS phase success"), the CP moves from
766 the OPTIONS state to the ACTIVE state. If the initiation phase fails
767 ("OPTIONS phase failure"), the CP moves from the OPTIONS state to the
768 IDLE state. The initiation phase might fail because of one of the
769 following reasons:
771 1. the CI receives an OPTIONS RESPONSE with an error response code
773 2. the CI does not receive any OPTIONS RESPONSE and a timeout error
774 is raised
776 3. the CR does not receive any OPTIONS and a timeout error is raised
778 When in the ACTIVE state, the CP starts the envisioned sub-state
779 machines (i.e., the MP state machine and the MC state machine)
780 according to the roles it plays in the telepresence sessions. Such
781 roles have been previously declared in the OPTIONS and OPTIONS
782 RESPONSE messages involved in the initiation phase (see OPTIONS
783 sections Section 5.1 and Section 5.2 for the details). When in the
784 ACTIVE state, the CP delegates the sending and the processing of the
785 CLUE messages to the appropriate MP/MC sub-state machines. If the CP
786 receives a further OPTIONS/OPTIONS RESPONSE message, it MUST ignore
787 the message and stay in the ACTIVE state.
789 The CP moves from the ACTIVE state to the IDLE one when the sub-state
790 machines that have been activated are (both) in the relative
791 TERMINATED state (see sections Section 6.1 and Section 6.2).
793 +----+
794 +---------------------->|IDLE|<----------------------------+
795 | +-+--+ |
796 | | |
797 | | start |
798 | | channel |
799 | v |
800 | channel error/ +--------+ |
801 | session ends | CHANNEL| |
802 +----------------------+ SETUP | |
803 | +--+-----+ |
804 | | |
805 | | channel |
806 | | established |
807 | channel error/ v OPTIONS phase |
808 | session ends +-------+ failure |
809 +-----------------------+OPTIONS+--------------------------+
810 | +-+-----+ |
811 | | |
812 | | OPTIONS phase |
813 | | success |
814 | v |
815 | channel error/ +---------+ |
816 | session ends | ACTIVE | |
817 +----------------------+ | |
818 | +----+ +------------------+ |
819 | | MP | | send/receive | |
820 | +----+ | CLUE messages | |
821 | |<-----------------+ |
822 | +----+ | |
823 | | MC | |both sub state machines |
824 | +----+ |terminated |
825 | | |
826 +---------+-------------------------+
828 6.1. Media Provider's state machine
830 As soon as the sub-state machine of the MP is activated, it is in the
831 ADV state. In the ADV state, the MP prepares the ADV message
832 reflecting its actual telepresence capabilities.
834 After the ADV has been sent ("ADV sent"), the MP moves from the ADV
835 state to the WAIT FOR ACK state. If an ACK message with a successful
836 response code arrives ("ACK received"), the MP moves to the WAIT FOR
837 CONF state. If a NACK arrives (i.e., an ACK message with an error
838 response code), and the number of NACKs for the issued ADV is under
839 the retry threshold ("NACK received && retry not expired"), the MP
840 moves back to the ADV state for preparing a new ADV. If a NACK
841 arrives and the number of received NACKs for that ADV overcomes the
842 threshold ("NACK received && retry expired"), the MP goes to the MP-
843 TERMINATED state. The same happens if the waiting time for the ACK
844 is fired a number of times under the retry threshold ("timeout &&
845 retry not expired"): also in this case, the MP goes back to the ADV
846 state to send a new copy of the ADV. If the number of retries
847 overcomes the threshold ("timeout && retry expired"), the MP moves
848 from the WAIT FOR ACK state to the MP-TERMINATED state. When in the
849 WAIT FOR ACK state, if a CONFIGURE message with the element set
850 to TRUE arrives ("CONF+ACK received"), the MP goes directly to the
851 CONF RESPONSE state. CONF+ACK messages referring to out-of-date
852 (i.e., having a sequence number equal to or less than the highest
853 seen so far) ADVs MUST be ignored, i.e., they do not trigger any
854 state transition. If the telepresence settings of the MP change
855 while in the WAIT FOR ACK state ("changed telepresence settings"),
856 the MP switches from the WAIT FOR ACK state to the ADV state to
857 create a new ADV.
859 When in the WAIT FOR CONF state, the MP listens to the channel for a
860 CONF request coming from the MC. If a CONF arrives ("CONF
861 received"), the MP switches to the CONF RESPONSE state. If the CONF
862 does not arrive within the timeout interval and the retry threshold
863 has not been overcome ("timeout && retry not expired"), the MP moves
864 back to the ADV state. When the retry expires ("timeout && retry
865 expired") the MP moves to the MP TERMINATED state. If the
866 telepresence settings change in the meanwhile ("changed telepresence
867 settings"), the MP moves from the WAIT FOR CONF back to the ADV state
868 to create the new ADV to be sent to the MC.
870 The MP in the CONF RESPONSE state processes the received CONF in
871 order to produce a CONF RESPONSE message. If the MP successfully
872 processes the MC's configuration, then it sends a 200 CONF RESPONSE
873 ("success CONF RESPONSE sent") and moves to the ESTABLISHED state.
874 If there are errors in the CONF processing, then the MP issues a CONF
875 RESPONSE carrying an error response code and, if under the retry
876 treshold ("error CONF RESPONSE sent && retry not expired"), it goes
877 back to the WAIT FOR CONF state to wait for a new configuration
878 request. If the number of trials exceeds the retry threshold ("error
879 CONF RESPONSE sent && retry expired"), the state MP TERMINATED is
880 reached. Finally, if there are changes in the MP's telepresence
881 settings ("changed telepresence settings"), the MP switches to the
882 ADV state.
884 The MP in the ESTABLISHED state has successfully negotiated the media
885 streams with the MC by means of the CLUE messages. If there are
886 changes in the MP's telepresence settings ("changed telepresence
887 settings"), the MP moves back to the ADV state. In the ESTABLISHED
888 state, the CLUE-controlled media streams of the session are those
889 described in the last successfully processed CONF message.
891 +------------------------->+-----+<---------------------------+
892 | +------------>| ADV |<-------------------+ |
893 | | +-+---+ | |timeout
894 | | | NACK received | |&&
895 | | ADV sent| && | |retry
896 | | v retry not expired| |not
897 | changed| +--------+ | |expired
898 |telepresence+-------------+WAIT FOR+-----------------+ |
899 | settings| +---------+ ACK +-------------------------+
900 | | |CONF+ACK +-+------+----------------------------------+
901 | | |received | NACK received && |
902 | | | |ACK received retry expired,|
903 | | | v timeout && retry expired|
904 +------------|-------------+--------+ |
905 timeout +-------------+WAIT FOR| timeout && retry expired |
906 && | | | CONF +----------------------------------+
907 retry | | +-+------+<-----------------------------+ |
908 not expired | | | | |
909 | | |CONF received | |
910 | | v error CONF RESPONSE sent| |
911 | +-------->+---------+ && retry not expired | |
912 +-------------+CONF |-----------------------------+ |
913 +--------------------->|RESPONSE +---------------------------------+
914 | | +-+-------+ error CONF RESPONSE sent|
915 | | | && retry expired|
916 | | | success |
917 | | | CONF RESPONSE |
918 | | | sent |
919 | | | |
920 | | | |
921 |CONF | | |
922 |received| v |
923 | | +------------+ |
924 | +-------------+ESTABLISHED | |
925 +----------------------+------------+ |
926 |
927 |
928 |
929 +-----------+ |
930 ! MP | |
931 |TERMINATED | |
932 +-----------+<------------------------------+
934 6.2. Media Consumer's state machine
936 As soon as the sub-state machine of the MC is activated, it is in the
937 WAIT FOR ADV state. An MC in the WAIT FOR ADV state is waiting for
938 an ADV coming from the MP. If the ADV arrives ("ADV received"), the
939 MC reaches the ADV PROCESSING state. Otherwise, the MC stays in the
940 WAIT FOR ADV state.
942 In the ADV PROCESSING state, the ADV is parsed by the MC. If the ADV
943 is successfully processed, there are two possibilities. According to
944 the first one, the MC issues a successful ACK message to the MP ("ACK
945 sent") and moves to the CONF state. In the second one, the MC
946 prepares and sends a CONF message with the field set to "true"
947 ("CONF+ACK sent") and goes directly to the WAIT FOR CONF RESPONSE
948 state.
950 If the ADV processing is unsuccessful (bad syntax, missing XML
951 elements, etc.), and the number of times this has happened is under
952 the retry threshold, the MC sends a NACK message (i.e., an ACK with
953 an error response code) to the MP and optionally further describes
954 the problem via a proper reason phrase. In this way ("NACK sent &&
955 retry not expired"), the MC switches back to the WAIT FOR ADV state,
956 waiting for a new ADV. If the NACK retry expires ("NACK sent &&
957 retry expired"), the MC moves to the MC TERMINATED state.
959 When in the CONF state, the MC prepares the CONF request to be issued
960 to the MP on the basis of the previously ACK-ed ADV. When the CONF
961 has been sent ("CONF sent"), the MC moves to the WAIT FOR CONF
962 RESPONSE state. If a new ADV arrives in the meanwhile ("ADV
963 received"), the MC goes back to the ADV PROCESSING state.
965 In the WAIT FOR CONF RESPONSE state, the MC waits for the MP's
966 response to the issued CONF or CONF+ACK. If a 200 CONF RESPONSE
967 message is received ("successful CONF RESPONSE received"), it means
968 that the MP and the MC have successfully agreed on the media streams
969 to be shared. Then, the MC can move to the ESTABLISHED state. On
970 the other hand, if an error response is received and the associated
971 retry counter does not overcome the threshold ("error CONF RESPONSE
972 received && retry not expired"), the MC moves back to the CONF state
973 to prepare a new CONF request. In case of "error CONF RESPONSE
974 received && retry expired", the MC moves to the MC TERMINATED state.
975 If no CONF RESPONSE arrives and the number of timeouts is under the
976 threshold ("timeout && retry not expired"), the MC moves to the CONF
977 state and sends again the CONF message. If no CONF RESPONSE arrives
978 and the number of timeouts is over the threshold ("timeout && retry
979 expired"), the MC moves to the MC TERMINATED state. If a new ADV is
980 received in the WAIT FOR CONF RESPONSE state, the MC switches to the
981 ADV PROCESSING state.
983 When the MC is in the ESTABLISHED state, the telepresence session
984 configuration has been set up at the CLUE application level according
985 to the MC's preferences. Both the MP and the MC have agreed on (and
986 are aware of) the CLUE-controlled media streams to be exchanged
987 within the call. While in the ESTABLISHED state, it might happen
988 that the MC decides to change something in the call settings. The MC
989 then issues a new CONF ("CONF sent") and goes to wait for the new
990 CONF RESPONSE in the WAIT FOR CONF RESPONSE state. On the other
991 hand, in the ESTABLISHED state, if a new ADV arrives from the MP
992 ("ADV received"), it means that something has changed on the MP's
993 side. The MC then moves to the ADV PROCESSING state.
995 +----------+
996 | WAIT FOR |
997 | ADV |
998 +----+-----+<--------+
999 | |
1000 ADV | NACK sent|
1001 received| && retry |
1002 v not expired| NACK sent &&
1003 +-----------+--------+ retry expired
1004 | ADV +---------------------------+
1005 | PROCESSING|<-----------------------+ |
1006 +-+-----+---+ | |
1007 | | | |
1008 CONF+ACK | | ACK | |
1009 sent | | sent | |
1010 | v | |
1011 | +-----+ | |
1012 | |CONF | ADV received | |
1013 +----------------------->| +-------------------------+ |
1014 | | +--+--+ | |
1015 |error CONF RESPONSE | | error CONF RESPONSE | |
1016 |received && | | CONF received && | |
1017 |retry not expired, | | sent retry expired | |
1018 |timeout && | | +------------------------+
1019 |retry not expired v v | | |
1020 +------------------+---------------+ ADV received | |
1021 +--------->| WAIT FOR +---------------------+ |
1022 | | CONF RESPONSE+------------------------+
1023 | +-------+-------+ timeout&& | |
1024 | | retry expired | |
1025 | | | |
1026 | |successful | |
1027 | |CONF RESPONSE | |
1028 | |received | |
1029 | v | |
1030 |CONF sent +-----------+ ADV received| |
1031 +------------+ESTABLISHED+-----------------------+ |
1032 +-----------+ |
1033 |
1034 |
1035 |
1036 +-----------+ |
1037 | MC |<------------------------+
1038 |TERMINATED |
1039 +-----------+
1041 7. Versioning
1043 CLUE protocol messages are XML messages compliant to the CLUE
1044 protocol XML schema [I-D.ietf-clue-data-model-schema]. The version
1045 of the protocol corresponds to the version of the schema. Both
1046 client and server have to test the compliance of the received
1047 messages with the XML schema of the CLUE protocol. If the compliance
1048 is not verified, the message cannot be processed further.
1050 Obviously, client and server cannot communicate if they do not share
1051 exactly the same XML schema. Such a schema associated with the CLUE
1052 URN "urn:ietf:params:xml:ns:clue-protocol". If all CLUE-enabled
1053 devices use that schema there will be no interoperability problems
1054 due to schema issues.
1056 This document defines XML schema version 1.0. The version usage is
1057 similar in philosophy to XMPP ([RFC6120]). A version number has
1058 major and minor components, each a non-negative integer. Major
1059 version changes denote non-interoperable changes. Minor version
1060 changes denote schema changes that are backward compatible by
1061 ignoring unknown XML elements, or other backward compatible changes.
1063 The minor versions of the XML schema MUST be backward compatible, not
1064 only in terms of schema but also semantically and procedurally as
1065 well. This means that they should define further features and
1066 functionality besides those defined in the previous versions, in an
1067 incremental way, without impacting the basic rules defined in the
1068 previous version of the schema. In this way, if a MP is able to
1069 speak, e.g., version 1.5 of the protocol while the MC only
1070 understands version 1.4, the MP should have no problem in reverting
1071 the dialogue back to version 1.4 without exploiting 1.5 features and
1072 functionality. Version 1.4 is the one to be spoken and has to appear
1073 in the "v" attribute of the subsequent CLUE messages. In other
1074 words, in this example, the MP MUST use version 1.4 and downgrade to
1075 the lower version. This said, and coherently with the general IETF
1076 "protocol robustness principle" stating that "an implementation must
1077 be conservative in its sending behavior, and liberal in its receiving
1078 behavior" [RFC1122], Clue Participants MUST ignore unknown elements
1079 or attributes that are not envisioned in the negotiated protocol
1080 version and related extensions.
1082 8. Extensions
1084 Although the standard version of the CLUE protocol XML schema is
1085 designed to thoroughly cope with the requirements emerging from the
1086 application domain, new needs might arise and extensions can be
1087 designed. Extensions specify information and behaviors that are not
1088 described in a certain version of the protocol and specified in the
1089 related RFC document. Such information and behaviors can be
1090 optionally used in a CLUE dialogue and MUST be negotiated in the CLUE
1091 initiation phase. They can relate to:
1093 1. new information, to be carried in the existing messages. For
1094 example, more fields may be added within an existing message;
1096 2. new messages. This is the case if there is no proper message for
1097 a certain task, so a brand new CLUE message needs to be defined.
1099 As to the first type of extensions, it is possible to distinguish
1100 between protocol-specific and data model information. Indeed, CLUE
1101 messages are envelopes carrying both:
1103 o (i) XML elements defined within the CLUE protocol XML schema
1104 itself (protocol-specific information)
1106 o (ii) other XML elements compliant to the CLUE data model schema
1107 (data model information)
1109 When new protocol-specific information is needed somewhere in the
1110 protocol messages, it can be added in place of the elements and
1111 elements envisioned by the protocol schema. The
1112 policy currently defined in the protocol schema for handling
1113 and elements is:
1115 o elementFormDefault="qualified"
1117 o attributeFormDefault="unqualified"
1119 In that case, the new information must be qualified by namespaces
1120 other than "urn:ietf:params:xml:ns:clue-protocol" (the protocol URN)
1121 and "urn:ietf:params:xml:ns:clue-info" (the data model URN).
1122 Elements or attributes from unknown namespaces MUST be ignored.
1124 The other matter concerns data model information. Data model
1125 information is defined by the XML schema associated with the URN
1126 "urn:ietf:params:xml:ns:clue-info". Also for the XML elements
1127 defined in such a schema there are extensibility issues. Those
1128 issues are overcome by using and placeholders.
1129 Similarly to what said before, new information within data model
1130 elements can be added in place of and schema
1131 elements, as long as they are properly namespace qualified.
1133 On the other hand (second type of extensions), "extra" CLUE protocol
1134 messages, i.e., messages not envisioned in the latest standard
1135 version of the schema, can be needed. In that case, the messages and
1136 the associated behavior should be defined in external documents that
1137 both communication parties must be aware of.
1139 Both types of extensions, i.e., new information and new messages, can
1140 be characterized by:
1142 o a name;
1144 o an external XML Schema defining the XML information and/or the XML
1145 messages representing the extension;
1147 o the standard version of the protocol the extension refers to.
1149 For that reason, the extensions are represented by means of the
1150 element as defined below, which is carried within the
1151 OPTIONS and OPTIONS RESPONSE messages to represent the extensions
1152 supported by the CI and by the CR.
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1165 8.1. Extension example
1167 An example of extension might be a "new" capture attribute (i.e., a
1168 capture attribute which is not envisioned in the current standard
1169 defining the CLUE data model in [I-D.ietf-clue-data-model-schema])
1170 needed to further describe a video capture. Such a new attribute
1171 MUST be defined in a separated XML schema file and SHOULD be provided
1172 with a companion document describing its semantics and use.
1174 The CLUE data model document ([I-D.ietf-clue-data-model-schema])
1175 envisions the possibility of adding this kind of "extra" information
1176 in the description of a video capture by keeping the compatibility
1177 with the CLUE data model schema. This is made possible thanks to the
1178 presence of the element in the XML definition of the video
1179 capture, allowing for the introduction of a new XML field in the XML
1180 description. For the sake of convenience, the XML definition of a
1181 video capture taken from [I-D.ietf-clue-data-model-schema] is
1182 reported below.
1184
1185
1186
1187
1188
1189
1191
1192
1193
1194
1195
1197 According to such a definition, a video capture might have, after the
1198 set of the generic media capture attributes, a set of new attributes
1199 defined elsewhere, i.e., in an XML schema defining an extension. The
1200 XML schema defining the extension might look like the following:
1202
1203
1211
1215
1216
1217
1218
1219
1220
1221
1222
1224
1225
1227
1228
1230
1232 By using the extension above, a video capture can be further
1233 described in the advertisement using the element
1234 containing two extra information ( and
1235 ) besides using the attributes envisioned for a
1236 generic media capture. As stated in this document, both participants
1237 MUST be aware of the extension schema and related semantics to use
1238 such an extension and MUST negotiate it via the OPTIONS and OPTIONS
1239 RESPONSE mechanism.
1241 9. XML Schema
1243 In this section, the XML schema defining the CLUE messages is
1244 provided.
1246
1247
1257
1258
1261
1262
1263
1264
1265
1266
1267
1270
1271
1272
1273
1274
1275
1276
1278
1279
1281
1282
1283
1284
1285
1286
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1303
1305
1306
1307
1308
1309
1310
1312
1313
1314
1315
1317
1318
1319
1320
1322
1323
1324
1325
1327
1328
1329
1330
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1355
1356
1357
1358
1359
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1373
1375
1376
1377
1378
1379
1380
1381
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1398
1399
1400
1401
1402
1403
1404
1406
1408
1409
1410
1411
1412
1413
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1430
1432 10. Examples
1434 In the following we provide an example of ADVERTISEMENT representing
1435 the telepresence environment described in
1437 [I-D.ietf-clue-data-model-schema], Section "Sample XML file" and
1438 Section "MCC example" respectively.
1440 10.1. Simple ADV
1442 The associated Media Provider's telepresence capabilities are
1443 described in [I-D.ietf-clue-data-model-schema], Section "Sample XML
1444 file".
1446
1447
1450 Napoli CLUE Endpoint
1451 34
1452
1453
1456 CS1
1457
1458
1459
1460 0.0
1461 0.0
1462 10.0
1463
1464
1465 0.0
1466 1.0
1467 10.0
1468
1469
1470
1471 true
1472 EG1
1473 main audio from the room
1474
1475 1
1476 it
1477 static
1478 room
1479
1480 alice
1481 bob
1482 ciccio
1483
1485
1486
1489 CS1
1490
1491
1492
1493 -2.0
1494 0.0
1495 10.0
1496
1497
1498
1499
1500 -3.0
1501 20.0
1502 9.0
1503
1504
1505 -1.0
1506 20.0
1507 9.0
1508
1509
1510 -3.0
1511 20.0
1512 11.0
1513
1514
1515 -1.0
1516 20.0
1517 11.0
1518
1519
1520
1521 true
1522 EG0
1523 left camera video capture
1524
1525 1
1526 it
1527 static
1528 individual
1529
1530 ciccio
1531
1532
1533
1536 CS1
1537
1538
1539
1540 0.0
1541 0.0
1542 10.0
1543
1544
1545
1546
1547 -1.0
1548 20.0
1549 9.0
1550
1551
1552 1.0
1553 20.0
1554 9.0
1555
1556
1557 -1.0
1558 20.0
1559 11.0
1560
1561
1562 1.0
1563 20.0
1564 11.0
1565
1566
1567
1568 true
1569 EG0
1570 central camera video capture
1571
1572 1
1573 it
1574 static
1575 individual
1576
1577 alice
1578
1579
1580
1583 CS1
1584
1585
1586
1587 2.0
1588 0.0
1589 10.0
1590
1591
1592
1593
1594 1.0
1595 20.0
1596 9.0
1597
1598
1599 3.0
1600 20.0
1601 9.0
1602
1603
1604 1.0
1605 20.0
1606 11.0
1607
1608
1609 3.0
1610 20.0
1611 11.0
1612
1613
1614
1615 true
1616 EG0
1617 right camera video capture
1618
1619 1
1620 it
1621 static
1622 individual
1623
1624 bob
1625
1626
1627
1630 CS1
1631
1632
1633
1634 -3.0
1635 20.0
1636 9.0
1637
1638
1639 3.0
1640 20.0
1641 9.0
1642
1643
1644 -3.0
1645 20.0
1646 11.0
1647
1648
1649 3.0
1650 20.0
1651 11.0
1652
1653
1654
1655
1656 SE1
1657
1658 SoundLevel:0
1659 EG0
1660 loudest room segment
1661 2
1662 it
1663 static
1664 individual
1665
1666
1669 CS1
1670
1671
1672
1673 0.0
1674 0.0
1675 10.0
1676
1678
1679
1680
1681 -3.0
1682 20.0
1683 7.0
1684
1685
1686 3.0
1687 20.0
1688 7.0
1689
1690
1691 -3.0
1692 20.0
1693 13.0
1694
1695
1696 3.0
1697 20.0
1698 13.0
1699
1700
1701
1702 true
1703 EG0
1704 zoomed out view of all people in the
1705 room
1706 2
1707 it
1708 static
1709 room
1710
1711 alice
1712 bob
1713 ciccio
1714
1715
1716
1717
1718
1719 600000
1720
1721 ENC1
1722 ENC2
1723 ENC3
1724
1725
1726
1727 300000
1728
1729 ENC4
1730 ENC5
1731
1732
1733
1734
1735
1736
1737
1738
1739 VC0
1740 VC1
1741 VC2
1742
1743
1744
1745
1746 VC3
1747
1748
1749
1750
1751 VC4
1752
1753
1754
1755
1756 AC0
1757
1758
1759
1760
1761
1762
1763
1764 VC3
1765 SE1
1766
1767
1768 VC0
1769 VC2
1770 VC4
1771
1772
1773
1774
1775
1776
1777 Bob
1778
1779
1780 minute taker
1781
1782
1783
1784
1785 Alice
1786
1787
1788 presenter
1789
1790
1791
1792
1793 Ciccio
1794
1795
1796 chairman
1797 timekeeper
1798
1799
1800
1802 10.2. ADV with MCCs
1804 The associated Media Provider's telepresence capabilities are
1805 described in [I-D.ietf-clue-data-model-schema], Section "MCC
1806 example".
1808
1809
1812 Napoli CLUE Endpoint
1813 34
1814
1815
1818 CS1
1819
1820
1821
1822 0.0
1823 0.0
1824 10.0
1825
1826
1827 0.0
1828 1.0
1829 10.0
1830
1831
1832
1833 true
1834 EG1
1835 main audio from the room
1836
1837 1
1838 it
1839 static
1840 room
1841
1842 alice
1843 bob
1844 ciccio
1845
1846
1847
1850 CS1
1851
1852
1853
1854 0.5
1855 1.0
1856 0.5
1857
1858
1859 0.5
1860 0.0
1861 0.5
1862
1863
1864
1865 true
1866 EG0
1867 left camera video capture
1868
1869 1
1870 it
1871 static
1872 individual
1873
1874 ciccio
1875
1876
1877
1880 CS1
1881
1882
1883
1884 0.0
1885 0.0
1886 10.0
1887
1888
1889
1890
1891 -1.0
1892 20.0
1893 9.0
1894
1895
1896 1.0
1897 20.0
1898 9.0
1899
1900
1901 -1.0
1902 20.0
1903 11.0
1904
1905
1906 1.0
1907 20.0
1908 11.0
1909
1910
1911
1912 true
1913 EG0
1914 central camera video capture
1915
1916 1
1917 it
1918 static
1919 individual
1920
1921 alice
1922
1923
1924
1927 CS1
1928
1929
1930
1931 2.0
1932 0.0
1933 10.0
1934
1935
1936
1937
1938 1.0
1939 20.0
1940 9.0
1941
1942
1943 3.0
1944 20.0
1945 9.0
1946
1947
1948 1.0
1949 20.0
1950 11.0
1951
1952
1953 3.0
1954 20.0
1955 11.0
1956
1957
1958
1959 true
1960 EG0
1961 right camera video capture
1962
1963 1
1964 it
1965 static
1966 individual
1967
1968 bob
1969
1970
1971
1974 CS1
1975
1976
1977
1978 -3.0
1979 20.0
1980 9.0
1981
1982
1983 3.0
1984 20.0
1985 9.0
1986
1987
1988 -3.0
1989 20.0
1990 11.0
1991
1992
1993 3.0
1994 20.0
1995 11.0
1996
1997
1998
1999
2000 SE1
2001
2002 SoundLevel:0
2003 EG0
2004 loudest room segment
2005 2
2006 it
2007 static
2008 individual
2009
2010
2013 CS1
2014
2015
2016
2017 0.0
2018 0.0
2019 10.0
2020
2021
2022
2023
2024 -3.0
2025 20.0
2026 7.0
2027
2028
2029 3.0
2030 20.0
2031 7.0
2032
2033
2034 -3.0
2035 20.0
2036 13.0
2037
2038
2039 3.0
2040 20.0
2041 13.0
2042
2043
2044
2045 true
2046 EG0
2047
2048 zoomed out view of all people in the room
2049
2050 2
2051 it
2052 static
2053 room
2054
2055 alice
2056 bob
2057 ciccio
2058
2059
2060
2063 CS1
2064
2065
2066
2067 -3.0
2068 20.0
2069 9.0
2070
2071
2072 3.0
2073 20.0
2074 9.0
2075
2076
2077 -3.0
2078 20.0
2079 11.0
2080
2081
2082 3.0
2083 20.0
2084 11.0
2085
2086
2087
2088
2089 SE1
2090
2091 SoundLevel:1
2092 penultimate loudest room segment
2093
2094 it
2095 static
2096 individual
2097
2098
2101 CS1
2102
2103
2104
2105 -3.0
2106 20.0
2107 9.0
2108
2109
2110 3.0
2111 20.0
2112 9.0
2113
2114
2115 -3.0
2116 20.0
2117 11.0
2118
2119
2120 3.0
2121 20.0
2122 11.0
2123
2124
2125
2126
2127 SE1
2128
2129 SoundLevel:2
2130 last but two loudest room segment
2131
2132 it
2133 static
2134 individual
2135
2136
2139 CS1
2140
2141
2142
2143 -3.0
2144 20.0
2145 9.0
2146
2147
2148 3.0
2149 20.0
2150 9.0
2151
2152
2153 -3.0
2154 20.0
2155 11.0
2156
2157
2158 3.0
2159 20.0
2160 11.0
2161
2162
2163
2164
2165 VC3
2166 VC5
2167 VC6
2168
2169 3
2170 EG0
2171 big picture of the current speaker +
2172 pips about previous speakers
2173 3
2174 it
2175 static
2176 individual
2177
2178
2179
2180
2181 600000
2182
2183 ENC1
2184 ENC2
2185 ENC3
2186
2187
2188
2189 300000
2190
2191 ENC4
2192 ENC5
2193
2194
2195
2196
2197
2198
2199
2200 participants' individual
2201 videos
2202
2203 VC0
2204 VC1
2205 VC2
2206
2207
2208
2209 loudest segment of the
2210 room
2211
2212 VC3
2213
2214
2215
2216 loudest segment of the
2217 room + pips
2218
2219 VC7
2220
2221
2222
2223 room audio
2224
2225 AC0
2226
2227
2228
2229 room video
2230
2231 VC4
2232
2233
2234
2235
2236
2237
2238
2239 VC3
2240 VC7
2241 SE1
2242
2243
2244 VC0
2245 VC2
2246 VC4
2247
2248
2249
2250
2251
2252
2253 Bob
2254
2255
2256 minute taker
2257
2258
2259
2260
2261 Alice
2262
2263
2264 presenter
2265
2266
2267
2268
2269 Ciccio
2270
2271
2272 chairman
2273 timekeeper
2274
2275
2276
2278 11. Security Considerations
2280 As a general consideration, we remark that the CLUE framework (and
2281 related protocol) has been conceived at the outset by embracing the
2282 security-by-design paradigm. This entails that a number of
2283 requirements have been identified and properly standardized as
2284 mandatory within the entire set of documents associated with the CLUE
2285 architecture. Requirements include: (i) the use of cryptography and
2286 authentication; (ii) protection of all sensitive fields; (iii) mutual
2287 authentication between CLUE endpoints; (iv) the presence of
2288 authorization mechanisms; (v) the presence of native defence
2289 mechanisms against malicious activities such as eavesdropping,
2290 selective modification, deletion, replay (and related combinations
2291 thereof). Hence, security of the single components of the CLUE
2292 solution cannot be evaluated independently of the integrated view of
2293 the final architecture.
2295 The CLUE protocol is an application-level protocol allowing a Media
2296 Producer and a Media Consumer to negotiate a variegated set of
2297 parameters associated with the establishment of a telepresence
2298 session. This unavoidably exposes a CLUE-enabled telepresence system
2299 to a number of potential threats, most of which are extensively
2300 discussed in the framework document [I-D.ietf-clue-framework]. The
2301 security considerations section of the mentioned document actually
2302 discusses issues associated with the setup and management of a
2303 telepresence session both in the basic case involving two CLUE
2304 endpoints acting, respectively, as MP and MC, and in the more
2305 advanced scenario envisaging the presence of an MCU.
2307 The framework document also mentions that the information carried
2308 within CLUE protocol messages might contain sensitive data, which
2309 SHOULD hence be accessed only by authenticated endpoints. Security
2310 issues associated with the CLUE data model schema are discussed in
2311 [I-D.ietf-clue-data-model-schema].
2313 There is extra information carried by the CLUE protocol which is not
2314 associated with the CLUE data model schema and which exposes
2315 information that might be of concern. This information is primarily
2316 exchanged during the negotiation phase via the OPTIONS and OPTIONS
2317 RESPONSE messages. In the Clue Participant state machine OPTIONS
2318 state, both parties agree on the version and on the extensions to be
2319 used in the subsequent CLUE messages exchange phase. A malicious
2320 participant might either try to retrieve a detailed footprint of a
2321 specific CLUE protocol implementation during this initial setup
2322 phase, or force the communicating party to use a non-up-to-date
2323 version of the protocol which they know how to break. Indeed,
2324 exposing all of the supported versions and extensions could
2325 conceivably leak information about the specific implementation of the
2326 protocol. In theory an implementation could choose not to announce
2327 all of the versions it supports if it wants to avoid such leakage,
2328 though at the expenses of interoperability. With respect to the
2329 above considerations, it is noted that the OPTIONS state is only
2330 reached after the CLUE data channel has been successfully set up.
2331 This ensures that only authenticated parties can exchange OPTIONS and
2332 related OPTIONS RESPONSE messages and hence drastically reduces the
2333 attack surface which is exposed to malicious parties.
2335 The CLUE framework clearly states the requirement to protect CLUE
2336 protocol messages against threats deriving from the presence of a
2337 malicious agent capable to gain access to the CLUE data channel.
2338 Such a requirement is met by the CLUE data channel solution described
2339 in [I-D.ietf-clue-datachannel], which ensures protection from both
2340 message recovery and message tampering. With respect to this last
2341 point, any implementation of the CLUE protocol compliant with the
2342 CLUE specification MUST rely on the exchange of messages which flow
2343 on top of a reliable and ordered SCTP over DTLS transport channel
2344 connecting two CLUE Participants.
2346 12. IANA Considerations
2348 This document registers a new XML namespace, a new XML schema and the
2349 MIME type for the schema. This document also registers the "CLUE"
2350 Application Service tag and the "CLUE" Application Protocol tag and
2351 defines registries for the CLUE messages and response codes.
2353 12.1. URN Sub-Namespace Registration
2355 This section registers a new XML namespace,
2356 ""urn:ietf:params:xml:ns:clue-protocol"".
2358 URI: urn:ietf:params:xml:ns:clue-protocol
2360 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
2361 Pietro Romano (spromano@unina.it).
2363 XML:
2365 BEGIN
2366
2367
2369
2370
2371 CLUE Messages
2372
2373
2374 Namespace for CLUE Messages
2375 urn:ietf:params:xml:ns:clue-protocol
2376 [[NOTE TO IANA/RFC-EDITOR: Please update RFC URL and replace XXXX
2377 with the RFC number for this specification.]]
2378 See
2379 RFCXXXX.
2380
2381
2382 END
2384 12.2. XML Schema registration
2386 This section registers an XML schema per the guidelines in [RFC3688].
2388 URI: urn:ietf:params:xml:schema:clue-protocol
2390 Registrant Contact: CLUE working group (clue@ietf.org), Simon Pietro
2391 Romano (spromano@unina.it).
2393 Schema: The XML for this schema can be found as the entirety of
2394 Section 9 of this document.
2396 12.3. MIME Media Type Registration for 'application/clue+xml'
2398 This section registers the ""application/clue+xml"" MIME type.
2400 To: ietf-types@iana.org
2402 Subject: Registration of MIME media type application/clue+xml
2404 MIME media type name: application
2406 MIME subtype name: clue+xml
2408 Required parameters: (none)
2410 Optional parameters: charset
2411 Same as the charset parameter of "application/xml" as specified in
2412 [RFC7303], Section 3.2.
2414 Encoding considerations: Same as the encoding considerations of
2415 "application/xml" as specified in [RFC7303], Section 3.2.
2417 Security considerations: This content type is designed to carry
2418 protocol data related to telepresence session control. Some of the
2419 data could be considered private. This media type does not provide
2420 any protection and thus other mechanisms such as those described in
2421 Section Security are required to protect the data. This media type
2422 does not contain executable content.
2424 Interoperability considerations: None.
2426 Published specification: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please
2427 replace XXXX with the RFC number for this specification.]]
2429 Applications that use this media type: CLUE participants.
2431 Additional Information: Magic Number(s): (none),
2432 File extension(s): .xml,
2433 Macintosh File Type Code(s): TEXT.
2435 Person & email address to contact for further information: Simon
2436 Pietro Romano (spromano@unina.it).
2438 Intended usage: LIMITED USE
2440 Author/Change controller: The IETF
2441 Other information: This media type is a specialization of
2442 application/xml [RFC7303], and many of the considerations described
2443 there also apply to application/clue+xml.
2445 12.4. CLUE Protocol Registry
2447 The document requests that the IANA creates new registries for CLUE
2448 messages and response codes.
2450 12.4.1. CLUE Message Types
2452 The following summarizes the registry for CLUE messages:
2454 Related Registry: CLUE Message Types Registry
2456 Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX
2457 with the RFC number for this specification.]]
2459 Registration/Assignment Procedures: Following the policies outlined
2460 in [RFC5226], the IANA policy for assigning new values for the CLUE
2461 message types for the CLUE protocol is Specification Required.
2463 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
2464 Pietro Romano (spromano@unina.it).
2466 The initial Message table is populated using the CLUE messages
2467 described in Section 5 and defined in the XML schema in Section 9.
2469 +-------------------+-----------------------------------+-----------+
2470 | Message | Description | Reference |
2471 +-------------------+-----------------------------------+-----------+
2472 | options | "OPTIONS" in this document. Sent | RFCXXXX |
2473 | | by the CI to the CR in the | |
2474 | | initiation phase to specify the | |
2475 | | roles played by the CI, the | |
2476 | | supported versions and the | |
2477 | | supported extensions. | |
2478 | optionsResponse | "OPTIONS RESPONSE" in this | RFCXXXX |
2479 | | document. Sent by the CI to the | |
2480 | | CR in reply to an OPTIONS message | |
2481 | | to finally estabilsh the version | |
2482 | | and the extensions to be used in | |
2483 | | the following CLUE messages | |
2484 | | exchange. | |
2485 | advertisement | "ADVERTISEMENT" or "ADV" in this | RFCXXXX |
2486 | | document. Sent by the MP to the | |
2487 | | MC to specify the telepresence | |
2488 | | capabilities of the MP expressed | |
2489 | | according to the CLUE framework. | |
2490 | ack | "ACK" in this document. Sent by | RFCXXXX |
2491 | | the MC to the MP to acknowledge | |
2492 | | the reception of an ADVERTISEMENT | |
2493 | | message. | |
2494 | configure | "CONFIGURE" or "CONF" in this | RFCXXXX |
2495 | | document. Sent by the MC to the | |
2496 | | MP to specify the desired media | |
2497 | | captures among those specified in | |
2498 | | the ADVERTISEMENT. | |
2499 | configureResponse | "CONFIGURE RESPONSE" or "CONF | RFCXXXX |
2500 | | RESPONSE" in this document. Sent | |
2501 | | by the MP to the MC in reply to a | |
2502 | | CONFIGURE message to communicate | |
2503 | | if the configuration request has | |
2504 | | been successfully processed or | |
2505 | | not. | |
2506 +-------------------+-----------------------------------+-----------+
2508 IANA-CLUE
2510 12.4.2. CLUE Response Codes
2512 The following summarizes the requested registry for CLUE response
2513 codes:
2515 Related Registry: CLUE Response Code Registry
2516 Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX
2517 with the RFC number for this specification.]]
2519 Registration/Assignment Procedures: Following the policies outlined
2520 in [RFC5226], the IANA policy for assigning new values for the
2521 Response codes for CLUE shall be Specification Required.
2523 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
2524 Pietro Romano (spromano@unina.it).
2526 The initial Response-code table is populated using the Response codes
2527 defined in Section 5.7 as follows:
2529 +--------+-----------------+----------------------------+-----------+
2530 | Number | Default | Description | Reference |
2531 | | Response String | | |
2532 +--------+-----------------+----------------------------+-----------+
2533 | 200 | Success | The request has been | RFCXXXX |
2534 | | | successfully processed. | |
2535 | 300 | Syntax errors | The XML syntax of the | RFCXXXX |
2536 | | and | message is not correct or | |
2537 | | inconsistencies | there are invalid values. | |
2538 | 301 | Bad syntax | The XML syntax of the | RFCXXXX |
2539 | | | message is not correct. | |
2540 | 302 | Invalid value | The message contains an | RFCXXXX |
2541 | | | invalid parameter value. | |
2542 | 303 | Conficting | The message contains | RFCXXXX |
2543 | | values | values that cannot be used | |
2544 | | | together. | |
2545 | 400 | Semantic errors | Semantic errors in the | RFCXXXX |
2546 | | | received CLUE protocol | |
2547 | | | message. | |
2548 | 401 | Version not | The protocol version used | RFCXXXX |
2549 | | supported | in the message is not | |
2550 | | | supported. | |
2551 | 402 | Invalid | The sequence number of the | RFCXXXX |
2552 | | sequencing | message is out of date. | |
2553 | 403 | Invalid | The identifier used in the | RFCXXXX |
2554 | | identifier | message is no valid or | |
2555 | | | unknown. | |
2556 | 404 | ADV Expired | The number of the ADV the | RFCXXXX |
2557 | | | CONF refers to is out of | |
2558 | | | date. | |
2559 | 405 | Subset choice | The subset choice is not | RFCXXXX |
2560 | | not allowed | allowed for the specified | |
2561 | | | MCC. | |
2562 +--------+-----------------+----------------------------+-----------+
2564 13. Diff with draft-ietf-clue-protocol-12
2566 o Section 6: brackets removed from "Otherwise if ("channel error"),"
2568 o Section 5.7: new response codes MUST always be registered with
2569 IANA (i.e., in case of both new versions and extensions).
2571 o Section 5: clueId has been made optional.
2573 14. Diff with draft-ietf-clue-protocol-06
2575 o XML schema definition of has been changed to match
2576 pattern "X.Y", where X and Y are single digits.
2578 o 100, 200, 300, 400 defined as catch-all response codes.
2580 o Updates in IANA section.
2582 15. Diff with draft-ietf-clue-protocol-05
2584 o This document corrects some versioning errors of draft-ietf-clue-
2585 protocol-05.
2587 16. Diff with draft-ietf-clue-protocol-04
2589 o The document has been revised based on feedback recevied on the
2590 ML. No major modification is included in this version.
2592 17. Diff with draft-ietf-clue-protocol-03
2594 o Response codes section updated.
2596 o maxCaptureEncodings removed from examples, allowSubsetChoice
2597 added.
2599 o State machines descriptions aligned with pictures.
2601 o Applied recommended updates indicated in Christian's review
2602 (2015-03-19).
2604 18. Diff with draft-ietf-clue-protocol-02
2606 o CLUE Participant state machine: TERMINATED state replaced with
2607 IDLE.
2609 o MP and MC state machines: SDP O/A state removed.
2611 o Diff mechanism (and related example) removed.
2613 o Schema updates: versionType used as the data type for all versions
2614 fields, xs:unsignedInt used as the data type for all sequence
2615 number fields, diff support removed from the ADV definition.
2617 19. Diff with draft-ietf-clue-protocol-01
2619 o The diff mechanism for the ADV message has been introduced.
2621 o READV and READV RESPONSE message have been both removed.
2623 o The state machines have been deeply reviewed and changed.
2625 o References: references have been updated and splitted into
2626 Informative references and Normative references as in framework
2627 v17.
2629 o Schema: changed in ,
2630 in
2632 o Terminology: many definitions added.
2634 o Response codes updated.
2636 20. Diff with draft-ietf-clue-protocol-00
2638 1. The XML schema of the ADVERTISEMENT and of the READV have been
2639 aligned with the current definitions in
2640 [I-D.ietf-clue-data-model-schema] (example of updates:
2641 --> , -->
2642 )
2644 2. Text has been added to clarify that, in the OPTIONS RESPONSE,
2645 when the response code is not an error response code, both
2646 and are mandatory.
2648 3. The content of the "v" attribute and of the elements
2649 carried in the OPTIONS and OPTIONS RESPONSE messages has been
2650 described more precisely.
2652 4. Advertisement examples have been added.
2654 21. Diff with draft-presta-clue-protocol-04
2656 1. The response code type error in the OPTIONS response (and in
2657 other parts) has been corrected.
2659 22. Diff with draft-presta-clue-protocol-03
2661 1. The XML Schema has been deeply revised and completed.
2663 2. The descriptions of the CLUE messages have been added.
2665 3. The distinction between major version numbers and minor version
2666 numbers has been cut and pasted from [I-D.ietf-clue-signaling].
2668 4. Besides the two way one, a three way mechanism for the options
2669 negotiation has been proposed and provided to foster discussion.
2671 23. Diff with draft-presta-clue-protocol-02
2673 1. "Terminology" section added.
2675 2. Introduced the concept of "CLUE Participant" - an Endpoint or a
2676 MCU able to use the CLUE protocol within a telepresence session.
2677 A CLUE Participant can act as a Media Provider and/or as a Media
2678 Consumer.
2680 3. Introduced the ACK/NACK mechanism for the ADVERTISEMENT.
2682 4. MP and MC state machines have been updated. The CP state machine
2683 has been added.
2685 24. Acknowledgments
2687 The authors thank all the CLUErs for their precious feedbacks and
2688 support, in particular Paul Kyzivat, Christian Groves and Scarlett
2689 Liuyan.
2691 25. References
2693 25.1. Normative References
2695 [I-D.ietf-clue-data-model-schema]
2696 Presta, R. and S. Romano, "An XML Schema for the CLUE data
2697 model", draft-ietf-clue-data-model-schema-17 (work in
2698 progress), August 2016.
2700 [I-D.ietf-clue-datachannel]
2701 Holmberg, C., "CLUE Protocol data channel", draft-ietf-
2702 clue-datachannel-14 (work in progress), August 2016.
2704 [I-D.ietf-clue-framework]
2705 Duckworth, M., Pepperell, A., and S. Wenger, "Framework
2706 for Telepresence Multi-Streams", draft-ietf-clue-
2707 framework-25 (work in progress), January 2016.
2709 [I-D.ietf-clue-signaling]
2710 Kyzivat, P., Xiao, L., Groves, C., and R. Hansen, "CLUE
2711 Signaling", draft-ietf-clue-signaling-10 (work in
2712 progress), January 2017.
2714 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2715 Requirement Levels", BCP 14, RFC 2119,
2716 DOI 10.17487/RFC2119, March 1997,
2717 .
2719 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
2720 Jacobson, "RTP: A Transport Protocol for Real-Time
2721 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
2722 July 2003, .
2724 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
2725 DOI 10.17487/RFC3688, January 2004,
2726 .
2728 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
2729 IANA Considerations Section in RFCs", BCP 26, RFC 5226,
2730 DOI 10.17487/RFC5226, May 2008,
2731 .
2733 [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303,
2734 DOI 10.17487/RFC7303, July 2014,
2735 .
2737 25.2. Informative References
2739 [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts -
2740 Communication Layers", STD 3, RFC 1122,
2741 DOI 10.17487/RFC1122, October 1989,
2742 .
2744 [RFC4353] Rosenberg, J., "A Framework for Conferencing with the
2745 Session Initiation Protocol (SIP)", RFC 4353,
2746 DOI 10.17487/RFC4353, February 2006,
2747 .
2749 [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence
2750 Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
2751 March 2011, .
2753 [RFC7262] Romanow, A., Botzko, S., and M. Barnes, "Requirements for
2754 Telepresence Multistreams", RFC 7262,
2755 DOI 10.17487/RFC7262, June 2014,
2756 .
2758 [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667,
2759 DOI 10.17487/RFC7667, November 2015,
2760 .
2762 Authors' Addresses
2764 Roberta Presta
2765 University of Napoli
2766 Via Claudio 21
2767 Napoli 80125
2768 Italy
2770 EMail: roberta.presta@unina.it
2772 Simon Pietro Romano
2773 University of Napoli
2774 Via Claudio 21
2775 Napoli 80125
2776 Italy
2778 EMail: spromano@unina.it