CLUE Working Group R. Presta
Internet-Draft S P. Romano
Intended status: Informational University of Napoli
Expires: March 21, 2014 September 17, 2013
CLUE protocol
draft-presta-clue-protocol-01
Abstract
ToDo.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 21, 2014.
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Presta & Romano Expires March 21, 2014 [Page 1]
Internet-Draft draft-presta-clue-protocol-01 September 2013
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Overview of the CLUE protocol messages . . . . . . . . . . . . 3
3.1. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 4
3.2. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. RESPONSE . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4. RE-ADV . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Protocol state machines . . . . . . . . . . . . . . . . . . . 9
5. Media Consumer's state machine . . . . . . . . . . . . . . . . 10
6. Media Provider's state machine . . . . . . . . . . . . . . . . 12
7. About CLUE protocol XML schema extensibility and versioning . 14
7.1. Aspect 1 - new information within existing messages . . . 15
7.2. Aspect 2 - new messages . . . . . . . . . . . . . . . . . 16
8. Diff with -00 version . . . . . . . . . . . . . . . . . . . . 16
9. Informative References . . . . . . . . . . . . . . . . . . . . 16
Presta & Romano Expires March 21, 2014 [Page 2]
Internet-Draft draft-presta-clue-protocol-01 September 2013
1. Introduction
The CLUE protocol is an application protocol used by a Media Provider
(MP) and a Media Consumer (MC) in order to establish a multimedia
telepresence session. CLUE protocol messages flow upon a DTLS/SCTP
channel established as depicted in [I-D.kyzivat-clue-signaling].
While [I-D.kyzivat-clue-signaling] focuses onto signaling details
about the protocol and its interaction with the SIP/SDP session
establishment, we herein concentrate only on the protocol in action
(?) and try to define the behavior of both the MP and the MC at the
CLUE application level. In other words, we assume the DTLS/SCTP
channel is established and discuss how the CLUE dialogue between the
MP and the MC can be exploited to successfully setup the telepresence
session according to the principles and concepts pointed out in in
[I-D.kyzivat-clue-signaling] and in [I-D.ietf-clue-framework].
In Section 3 we provide the list of the CLUE messages and an overview
of their features and functionality. MC's and MP's state machines
are introduced in Section 4 and further described in Section 5 and
Section 6 respectively.
2. Terminology
This document refers to the same terminology used in
[I-D.ietf-clue-framework] and in [I-D.kyzivat-clue-signaling].
3. Overview of the CLUE protocol messages
This section contains a bird's-eye view of the CLUE protocol
messages. For each message it is indicated who sends it, who
receives it, a brief description of the information it carries, and
how/when it is used. Besides the well-known ADVERTISEMENT and
CONFIGURE ones, new messages have been conceived in order to fulfill
the mechanisms and operations pointed out in
[I-D.kyzivat-clue-signaling].
o ADVERTISEMENT (ADV)
o CONFIGURE (CONF)
o RESPONSE
o RE-ADV
Presta & Romano Expires March 21, 2014 [Page 3]
Internet-Draft draft-presta-clue-protocol-01 September 2013
3.1. ADVERTISEMENT
+---------- ---+-----------------------------------------------------+
| | |
| FROM | MP |
| | |
+--------------+-----------------------------------------------------+
| | |
| TO | MC |
| | |
+--------------+-----------------------------------------------------+
| | |
| TYPE | Notification |
| | |
+--------------+-----------------------------------------------------+
| | |
| DESCRIPTION | This message is used by the MP to advertise the |
| | available media captures and related information |
| | to the MC. |
| | The ADV contains elements compliant with the |
| | CLUE data model and other information like the |
| | CLUE protocol version and a sequence number. |
| | |
+--------------+-----------------------------------------------------+
| | |
| USAGE | The MP sends this message as soon as the CLUE |
| | CLUE channel is ready. The MP sends an ADV to the |
| | MC each time there is a modification of the MP's |
| | telepresence capabilities. |
| | The ADV message is also sent back to the MC |
| | when the MP receives a RE-ADV request. |
+--------------+-----------------------------------------------------+
3.2. CONFIGURE
Presta & Romano Expires March 21, 2014 [Page 4]
Internet-Draft draft-presta-clue-protocol-01 September 2013
+--------------+-----------------------------------------------------+
| | |
| FROM | MC |
| | |
+--------------+-----------------------------------------------------+
| | |
| TO | MP |
| | |
+--------------+-----------------------------------------------------+
| | |
| TYPE | Request |
| | |
+--------------+-----------------------------------------------------+
| | |
| DESCRIPTION | This message allows a MC to request for the |
| | desired advertised capture. It contains capture |
| | encodings and other information like the CLUE |
| | protocol version and a sequence number. |
| | |
+--------------+-----------------------------------------------------+
| | |
| USAGE | The MC can send a CONF after the reception of |
| | an ADV or each time it wants to request other |
| | advertised captures to the MP. |
+--------------+-----------------------------------------------------+
3.3. RESPONSE
Presta & Romano Expires March 21, 2014 [Page 5]
Internet-Draft draft-presta-clue-protocol-01 September 2013
+--------------+-----------------------------------------------------+
| | |
| FROM | MP |
| | |
+--------------+-----------------------------------------------------+
| | |
| TO | MC |
| | |
+--------------+-----------------------------------------------------+
| | |
| TYPE | Response |
| | |
+--------------+-----------------------------------------------------+
| | |
| DESCRIPTION | This message allows a MP to answer to a CONF |
| | message. Besides the protocol version and a |
| | sequence number, it contains a response code with |
| | a response string indicating the success or the |
| | failure (along with failure details) of the CONF |
| | request elaboration. Example of response codes |
| | and strings are provided in a following table. |
| | |
+--------------+-----------------------------------------------------+
| | |
| USAGE | The MP sends this message in response to CONF |
| | messages. |
+--------------+-----------------------------------------------------+
Response code can be designed by following the HTTP semantics as
below.
Presta & Romano Expires March 21, 2014 [Page 6]
Internet-Draft draft-presta-clue-protocol-01 September 2013
+-----------------+----------------------+--------------------------+
| | | |
| Response code | Response string | Description |
| | | |
+-----------------+----------------------+--------------------------+
| | | |
| 410 | Bad syntax | The XML syntax of the |
| | | CONF message is not |
| | | correct. |
+-----------------+----------------------+--------------------------+
| | | |
| 411 | Invalid value | The CONF message |
| | | contains an invalid |
| | | parameter value. |
+-----------------+----------------------+--------------------------+
| | | |
| 412 | Invalid identifier | The identifier used for |
| | | requesting a capture is |
| | | not valid or unknown. |
+-----------------+----------------------+--------------------------+
| | | |
| 413 | Conflicting values | The CONF message |
| | | contains values that |
| | | cannot be used together.|
+-----------------+----------------------+--------------------------+
| | | |
| 420 | Invalid sequencing | The sequence number of |
| | | the CONF message is out |
| | | of date or corresponds |
| | | to an obsoleted ADV. |
+-----------------+----------------------+--------------------------+
| | | |
| 510 | Version not supported| The CLUE protocol |
| | | version of the CONF |
| | | message is not supported|
| | | by the MP. |
+-----------------+----------------------+--------------------------+
| | | |
| 511 | Option not supported | The option requested in |
| | | the CONF message is not |
| | | supported by the MP. |
+-----------------+----------------------+--------------------------+
... TBC.
Presta & Romano Expires March 21, 2014 [Page 7]
Internet-Draft draft-presta-clue-protocol-01 September 2013
+---------------+------------------------+
| | |
| Response code | Rescription |
| family | |
+---------------+------------------------+
| | |
| 1XX | Temporary info |
| | |
+---------------+------------------------+
| | |
| 2XX | Success |
| | |
+---------------+------------------------+
| | |
| 3XX | Redirection |
| | |
+---------------+------------------------+
| | |
| 4XX | Client error |
| | |
+---------------+------------------------+
| | |
| 5XX | Server error |
| | |
+---------------+------------------------+
3.4. RE-ADV
Presta & Romano Expires March 21, 2014 [Page 8]
Internet-Draft draft-presta-clue-protocol-01 September 2013
+---------- ---+-----------------------------------------------------+
| | |
| FROM | MC |
| | |
+--------------+-----------------------------------------------------+
| | |
| TO | MP |
| | |
+--------------+-----------------------------------------------------+
| | |
| TYPE | Request |
| | |
+--------------+-----------------------------------------------------+
| | |
| DESCRIPTION | This message allows a MC to request for the MP |
| | issuing a new copy of the ADV. This message can |
| | contain a reason string indicating the motivation |
| | for the request (e.g., refresh, missing elements |
| | in the received ADV, wrong syntax in the received |
| | ADV, invalid capture area, invalid line of |
| | capture point, etc). |
| | |
+--------------+-----------------------------------------------------+
| | |
| USAGE | The MC sends this message to the MP when the |
| | timeout for the ADV is fired, or when the ADV is |
| | not compliant with the CLUE specifications (this |
| | can be useful for interoperability testing |
| | purposes) |
| | |
+--------------+-----------------------------------------------------+
4. Protocol state machines
The CLUE protocol is an application protocol used between a Media
Provider (MP) and a Media Consumer (MC) in order to establish a
multimedia telepresence session. CLUE protocol messages flow upon a
DTLS/SCTP channel established as depicted in
[I-D.kyzivat-clue-signaling]. Over such a channel there are
typically two CLUE streams between the channel terminations flowing
in opposite directions. In other words, typically, both channel
terminations act simultaneously as a MP and as a MC. We herein
discuss the state machines associated with the MP process and with
the MC process.
Presta & Romano Expires March 21, 2014 [Page 9]
Internet-Draft draft-presta-clue-protocol-01 September 2013
5. Media Consumer's state machine
An MC in the IDLE state is waiting for an ADV coming from the MP. If
the timeout expires ("timeout"), the MC switch to the TIMEOUT state.
In the TIMEOUT state, if the number of trials is under the retry
threshold, the MC issues a RE-ADV/refresh message to the MP ("send
RE-ADV"), coming back to the IDLE state. Otherwise, the MC moves to
the TERMINATED state.
When the ADV has been received ("receive ADV"), the MC goes into the
ADV RECEIVED state. The ADV is then parsed. If something goes wrong
with the ADV (bad syntax, missing XML elements, etc.), the MC sends a
RE-ADV message to the MP specifying the encountered problem via a
proper reason phrase. By this way, the MC comes back to the IDLE
state, waiting for a new copy of the ADV. If the ADV is successfully
processed, the MC issues a CONF message to the MP ("send CONF") and
switches to the TRYING state.
When in the TRYING state, the MC is waiting for a RESPONSE message
from the MP to the issued CONF. If the timeout expires ("timeout"),
the MC moves to the TIMEOUT state and sends a RE-ADV in order to
solicit a new ADV from the MP. If a RESPONSE with an error code is
received ("receive 4xx, 5xx not supported"), then the MC comes back
to the ADV-RCVD state and produces a new CONF message to be sent to
the MP. If a successful RESPONSE arrives ("receive 200 OK"), the MC
gets the IN CALL state. If a new ADV arrives in the while, it is
ignored. Indeed, after the timeout is exceeded, the MC goes to the
TIMEOUT state and then sends a RE-ADV to the MP.
When the MC is in the IN CALL state, it means that the telepresence
session has been set up according to the MC's preferences. Both MP
and the MC have agreed on (and are aware of) the media streams to be
exchanged within the call. If the MC decides to change something in
the call settings, it issues a new CONF ("send CONF") and comes back
to the TRYING state. If a new ADV arrives from the MP ("receive
ADV"), it means that something has changed on the MP's side. The MC
then moves to the ADV-RCV state and prepares a new CONF taking into
account the received updates. When the underlying channel is closed,
the MC moves into the TERMINATED state.
The TERMINATED state is reachable from each of the aforementioned
states whenever the underlying channel is closed. The corresponding
transitions have not been reported for the sake of simplicity. This
termination condition is a temporary solution.
The TERMINATED state is reachable from each of the aforementioned
states whenever the underlying channel is closed. The corresponding
Presta & Romano Expires March 21, 2014 [Page 10]
Internet-Draft draft-presta-clue-protocol-01 September 2013
transitions have not been reported for the sake of simplicity. This
termination condition is a temporary solution.
+-----+
+--------+-------------timeout------>+----+--+ |
| IDLE +<----+ |TIMEOUT| |
+---+----+<----+--------send---------+-------+ |
| | RE-ADV(refresh) ^ |
| | | |
| | | |
receive send | |
ADV RE-ADV | |
+---receive-------+ | (missing elements, | |
| error RESP | | invalid area,...) | |
| v v | | |
+---------------++---------+ | | |
+---------------->+ ADV +----+ timeout |
| +----->| RECEIVED|<-----+ | |
| | +---+-----+ | | |
receive | | | | |
ADV | | | | |
| | | | | |
| receive send receive | |
| ADV CONF error RESP, | |
| | | retry not expired | |
| | v | | |
+-----------------+--------+-------+------------------------+ |
+---+------+ TRYING +-------+ |
| | +---+----+<----+ |
| | | | |
| | | | |
receive| | receive send retry
error RESP,| 200 OK CONF expires
retry | | | | |
expired| | | | |
| | | | |
| | v | |
| | +------+ | |
| +-------+ IN | | |
| | CALL +------+ |
| +--+---+ |
| | |
| | |
| | |
| | |
Presta & Romano Expires March 21, 2014 [Page 11]
Internet-Draft draft-presta-clue-protocol-01 September 2013
| connection |
| closed |
| | |
| | |
| | |
| | |
| | |
| v |
| +----------+<---------------------------------+
+----------->+TERMINATED|
+----------+
6. Media Provider's state machine
In the IDLE state, the MP is preparing the ADV message reflecting the
actual telepresence capabilities. After the ADV has been sent, the
MP moves to the WAIT FOR CONF state.
When in the WAIT FOR CONF state, the MP is listening the channel for
a CONF coming from the MC. If a RE-ADV is received, the MP comes
back to the IDLE state and issues an ADV again. If telepresence
settings change in the while, it comes back to the IDLE state too,
and prepare a new ADV to be sent to the MC. If a CONF arrives, the
MP switches to the CONF RECEIVED state. If nothing happens and the
timeout exceeds, than the MC falls into the TIMEOUT state.
In the TIMEOUT state, if the number of trials does not exceed the
retry threshold, the MC comes back to the IDLE state for sending a
new ADV. Otherwise, it goes to the TERMINATED state.
The MP in the CONF RECEIVED state is processing the received CONF in
order to produce a RESPONSE message. If the MP is ok with the MC's
configuration, then it sends a 200 OK successful RESPONSE and flows
to the IN CALL state. If there are errors while processing the CONF,
then the MC returns a RESPONSE carrying an error response code.
Finally, if there are changes in the telepresence settings, it goes
back to the IDLE state to issue an updated ADV.
When in the IN CALL state, the MP has successfully set up the
telepresence session according to the MC's specifications. If a new
CONF arrives, it switches to the CONF RECEIVED state to analyze the
new requests. If a RE-ADV arrives, or some modifications are applied
to the telepresence options, then it moves to the IDLE state to issue
the ADV. When the channel is terminated, the MP falls into the
TERMINATED state.
The TERMINATED state is reachable from each of the aforementioned
Presta & Romano Expires March 21, 2014 [Page 12]
Internet-Draft draft-presta-clue-protocol-01 September 2013
states whenever the underlying channel is closed. The corresponding
transitions have not been reported for the sake of simplicity. This
termination condition is a temporary solution.
+------------------->+-----+-+<----------------------------+
| +--------------->| IDLE |<-------------retry----------+---------+
| | +------->+---+---+<----+ not | |
| | | | | expired | |
| | | | | | |
| | change send receive | ++------+
| | telepresence ADV RE-ADV | |TIMEOUT|
| | settings | | | ++--+---+
| | | | | | ^ |
| | | v | | | |
| | | +-------------+---+ | | |
| | +----+ WAIT FOR +------------timeout--------+---------+ |
| | | CONF | | |
change +-------+-----+<--+ | |
telepresence | | | |
settings | | | |
| | receive CONF error, | |
| | CONF retry not expired, | |
| | | send error RESP | |
| | | | | |
| | | | | |
| | v | | |
| | +-----------+---+ | |
+---+-------------+| CONF | | |
| +----->| RECEIVED |----CONF error, | |
| | +-----+-----+ retry expired | |
| | | | | |
| | | | | |
| | | | | |
receive receive send | | |
RE-ADV CONF 200 OK | | retry|
| | | | | expired
| | | | | |
| | | | | |
| | v | | |
| | +----------+ change | |
| +-------+ IN CALL +--------telepresence-------+ |
+---------------+----+-----+ settings |
| | |
Presta & Romano Expires March 21, 2014 [Page 13]
Internet-Draft draft-presta-clue-protocol-01 September 2013
| | |
| | |
| | |
connection | |
closed | |
| | |
| | |
v | |
+------------+<-----+-----------------------------+
| TERMINATED | |
+------------+<-----+
7. About CLUE protocol XML schema extensibility and versioning
CLUE protocol messages are XML messages compliant to the CLUE
protocol XML schema. Both client and server have to test the
compliance of the received messages with the XML schema of the CLUE
protocol. If the compliance is not verified, the message cannot be
processed.
Obviously, client and server can not communicate if they do not share
exactly the same XML schema. Such schema will be the one included in
the to-be-written RFC, and associated with the CLUE URN
"urn:ietf:params:xml:ns:clue-message". If all CLUE-enabled devices
use that schema there will be no interoperability problems due to
schema issues.
It is hoped that, before the CLUE protocol XML schema reaches a
steady state, prototypes developed by different organizations would
perform some tests. In that case, in order to interoperate, they
have to be compliant to the current version of the XML schema, i.e.,
the one copied in the most up-to-date version of the draft defining
the CLUE protocol. It is up to prototype implementors to keep up to
date their products.
Although the standard version of the CLUE protocol XML schema will be
designed to thoroughly cope with the requirements emerging from the
application domain, new needs can arise in the future. A mechanism
assuring forward compatibility must be envisioned. New needs can
interest two main aspects of the protocol:
the information carried in the existing messages (for example, we
may want to add more fields within an existing message);
the meaning of the messages. This is the case if there is no a
message for a certain task, so a brand new CLUE message needs to
be defined.
Presta & Romano Expires March 21, 2014 [Page 14]
Internet-Draft draft-presta-clue-protocol-01 September 2013
7.1. Aspect 1 - new information within existing messages
CLUE messages are envelopes carrying two types of information:
XML elements defined within the CLUE protocol XML schema itself
(protocol-specific information)
other XML elements compliant to the CLUE data model schema (data
model information)
When new protocol-specific information are needed somewhere in the
protocol messages, they can be added in place of the <any> elements
and <anyAttribute> elements envisioned by the protocol schema. The
policy currently defined in the protocol schema for handling <any>
and <anyAttribute> elements is:
elementFormDefault="qualified"
attributeFormDefault="unqualified"
In that case, the new information must be qualified by namespaces
other than "urn:ietf:params:xml:ns:clue-message" (the protocol URN)
and "urn:ietf:params:xml:ns:clue-info" (the data model URN).
Elements or attributes from unknown namespaces MUST be ignored.
The other matter interests data model information. Data model
information is defined by the XML schema associated with the URN
"urn:ietf:params:xml:ns:clue-info". Also for the XML elements
defined in such schema there are extensibility issues. Those issues
are overcome by using <any> and <anyAttribute> placeholders.
Similarly to what said before, new information within data model
elements can be added in place of <any> and <anyAttribute> schema
elements, as long as they are properly namespace qualified. If brand
new data model elements are needed, then there are three options:
write down a new version of the data model schema, with the new
elements added after the existing ones. This is a possible
solution. However, we must state that telepresence applications
are forced to check the version attribute of the schema they use.
[To be discussed]
put all the new elements inside a brand new schema to be linked to
a new URN that the most up to date telepresence system must be
aware of. [To be discussed]
design a wildcard envelope for future data model elements. [To be
discussed]
Presta & Romano Expires March 21, 2014 [Page 15]
Internet-Draft draft-presta-clue-protocol-01 September 2013
7.2. Aspect 2 - new messages
New CLUE protocol messages, not envisioned in the standard version of
the schema, are needed. Also in that case we have three chances:
write down a new version of the protocol schema, with the new
messages added after the existing ones. The same considerations
of the first option above hold here. [To be discussed]
put all the new messages inside a brand new schema to be linked to
a new URN that the most up to date telepresence system must be
aware of. :( [To be discussed]
design a wildcard envelope for future messages. This is an
approach used also within the CCMP protocol (Centralized
Conferencing Manipulation Protocol, [RFC6503]). In that case, a
mechanism for the extension negotiation is also envisioned. [To
be discussed]
8. Diff with -00 version
MC and MP state diagrams have been updated for discussion in
http://www.ietf.org/mail-archive/web/clue/current/msg02650.html
Consideration about protocol extension and versioning have been
added to foster discussion.
9. Informative References
[I-D.ietf-clue-framework] Duckworth, M., Pepperell, A., and S.
Wenger, "Framework for Telepresence
Multi-Streams",
draft-ietf-clue-framework-11 (work in
progress), July 2013.
[I-D.kyzivat-clue-signaling] Kyzivat, P., Xiao, L., Groves, C., and
R. Hansen, "CLUE Signaling",
draft-kyzivat-clue-signaling-05 (work
in progress), September 2013.
[RFC6503] Barnes, M., Boulton, C., Romano, S.,
and H. Schulzrinne, "Centralized
Conferencing Manipulation Protocol",
RFC 6503, March 2012.
Presta & Romano Expires March 21, 2014 [Page 16]
Internet-Draft draft-presta-clue-protocol-01 September 2013
Authors' Addresses
Roberta Presta
University of Napoli
Via Claudio 21
Napoli 80125
Italy
EMail: roberta.presta@unina.it
Simon Pietro Romano
University of Napoli
Via Claudio 21
Napoli 80125
Italy
EMail: spromano@unina.it
Presta & Romano Expires March 21, 2014 [Page 17]