Internet DRAFT - draft-romano-dcon-framework
draft-romano-dcon-framework
Network Working Group S P. Romano
Internet-Draft A. Amirante
Expires: June 17, 2013 University of Napoli
T. Castaldi
L. Miniero
Meetecho
A. Buono
Ansaldo Trasporti e Sistemi
Ferroviari
December 14, 2012
A Framework for Distributed Conferencing
draft-romano-dcon-framework-12
Abstract
This document defines the framework for Distributed Conferencing
(DCON). The framework draws inspiration from the work carried out in
the XCON working group, which has defined a complete architecture for
centralized conferencing. DCON is based on the idea that a
distributed conference can be setup by appropriately orchestrating
the operation of a number of XCON focus elements, each in charge of
managing a certain number of participants. Interaction between each
participant and the corresponding conference focus is based on the
standard XCON framework, whereas inter-focus interaction is defined
in this document.
Status of this Memo
This Internet-Draft is submitted to IETF 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 June 17, 2013.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
Romano, et al. Expires June 17, 2013 [Page 1]
Internet-Draft Distributed Conferencing Framework December 2012
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Towards Distributed Conferencing . . . . . . . . . . . . . . . 6
5.1. Setting up a distributed conferencing environment . . . . 8
5.2. Use-case scenarios and examples . . . . . . . . . . . . . 10
5.2.1. Creating a new distributed conference . . . . . . . . 10
5.2.2. Retrieving information about available conferences . . 11
5.2.3. Joining a conference hosted by a foreign island . . . 12
5.2.4. Dispatching XCON protocols in DCON . . . . . . . . . . 16
6. Security Considerations . . . . . . . . . . . . . . . . . . . 21
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22
Romano, et al. Expires June 17, 2013 [Page 2]
Internet-Draft Distributed Conferencing Framework December 2012
1. Introduction
This document presents an architecture capable to move the XCON
scenario towards a distributed framework. The requirements for DCON
are presented in a separate document [I-D.romano-dcon-requirements].
In such an architecture a number of entities are used to manage
conference setup in the presence of clients which are distributed
across a geographical network. Each managing entity plays the role
of a conference focus as defined in the XCON working group documents
[RFC5239].
Indeed, an XCON focus is in charge of managing a certain number of
clients falling under its own "realm". In order to move the XCON
scope towards a distributed environment, we introduce inter-focus
coordination, which is needed to effectively setup and manage
conference instantiation and coordination. As in the centralized
case, we define logical entities and naming conventions. An
appropriate data model for distributed conferencing will be defined
in a subsequent document and will extend, when needed, the XCON data
model [I-D.ietf-xcon-common-data-model]. Furthermore, we propose the
adoption of a suitable set of protocols which are complementary to
the call signaling protocols and are needed to support advanced
conferencing applications.
2. Conventions
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14, RFC 2119 [RFC2119] and indicate requirement
levels for compliant implementations.
3. Terminology
Distributed conferencing uses, when appropriate, and expands on the
terminology introduced in the both the SIPPING [RFC4353] and XCON
conferencing frameworks. The following additional terms are defined
for specific use within the distributed conferencing context.
Conferencing Cloud:
A specific pair composed of a centralized focus entity (XCON) and
its associated distributed focus (DCON). We will herein
indifferently use both "cloud" and "island" to refer to a
conferencing cloud.
Romano, et al. Expires June 17, 2013 [Page 3]
Internet-Draft Distributed Conferencing Framework December 2012
DCON Focus:
A specific entity enabling communication of a centralized
conferencing system with the outside world. A DCON focus allows
for the construction of a distributed conferencing system as a
federation of centralized conferencing components.
Focus Discovery:
The capability to detect the presence of new focus entities in a
distributed conferencing framework.
Information Spreading:
The spreading of conference related information among the focus
entities in a distributed environment.
Protocol Dispatching:
The capabilty to appropriately forward/distribute messages of a
natively centralized protocol in order to let them spread across a
distributed environment.
Label Swapping:
The opportune swap of labels assigned to a specific resource,
needed to avoid conflicts in the assignment of labels across
several point-to-point communications regarding the same resource.
4. Overview
In order to build distributed conferencing on top of the already
available centralized conferencing framework, we basically need to
introduce two major functions: (i) a coordination level among
conference focus entities; (ii) a way to effectively distribute
conference state information. As to the first point above, the
coordination level is needed in order to manage a distributed
conference along its entire life-cycle. For instance, once a user
decides to create a new conference, the corresponding conference
focus has to distribute conference information to all other foci, in
such a way as to enable other potential participants to retrieve the
needed data and possibly subscribe to the event. We herein assume
that all the operations needed inside a single conference cloud are
managed via the protocols and interfaces defined inside the XCON
working group. Hence, each single cloud keeps on being based on a
star-topology graph for all what concerns the call signaling part.
The various available stars are then connected through an upper-layer
Romano, et al. Expires June 17, 2013 [Page 4]
Internet-Draft Distributed Conferencing Framework December 2012
mesh-based topology providing inter-focus communication. As depicted
in Figure 1, the overall topology of the distributed conferencing
scenario thus looks like an overlay network of focus entities, each
managing an underlying "centralized" conferencing island. In the
most general case, we envisage to exploit extended Instant Messaging
(IM) protocols for inter-focus communication.
o o o
\ | /
\ | /
+------+
o---| XCON |---o
+---^--+
|
+---v--+
| DCON |
+------+
// \\
// \\
// \\
// \\
// \\
// \\
// \\
// \\
// \\
+------+ +------+
| DCON |===================| DCON |
+---^--+ +---^--+
| |
+---v--+ +---v--+
o---| XCON |---o o---| XCON |---o
+------+ +------+
/ | \ / | \
/ | \ / | \
o o o o o o
Figure 1: DCON architecture overview
As to the second point mentioned above, it looks clear that a way to
propagate information about conferences is needed when switching the
view from a centralized to a distributed perspective. Indeed,
whenever a new conference is created (or an active conference changes
its state) such an event has to be communicated to all interested (or
Romano, et al. Expires June 17, 2013 [Page 5]
Internet-Draft Distributed Conferencing Framework December 2012
active) participants. Given the intrinsic nature of the distributed
framework (which actually expands the centralized one through the
introduction of an overlay network of focus entities), the actual
flow of information will always foresee the interaction among
conference focus entities for both conference information exchanging
and state changes notifications. The same obviously applies also to
the involved natively centralized protocols defined in the XCON
framework. A suitable mechanism has to be defined allowing for the
dispatching of such centralized messages across the DCON network.
The mechanism in question must be fully compliant with the existing
operation of XCON clouds, which must keep their local participants
totally unaware of the potential distributed nature of conferences.
Conference state propagation can take place in a number of
alternative ways. For instance, each focus might flood the received
information across the inter-focus communication mesh, thus
guaranteeing that potential participants belonging to heterogeneous
islands can be reached. In such case, focus entities are "stateful",
i.e. each of them stores information about current sessions and
forwards such information to all peering entities in order to get
them up-to-date with respect to available conference sessions.
On the other hand, a distributed repository might be employed for the
sake of storing conference information. Focus entities would access
such repository, both to publish (either upon creation of a new
conference, or to notify a change in the state of an active
conference) and to retrieve information about active conferences
(e.g. when a new participant wants to access the list of ongoing/
scheduled conference sessions he might be interested to join). In
this last case, focus entities are "stateless".
Finally, a pure peer-to-peer approach can also be exploited for the
purpose of conference state information spreading.
5. Towards Distributed Conferencing
In this section we first describe the overall architecture of a
distributed conferencing framework, by highlighting both the involved
entities and their interrelations. Then, we delve into the details
of some key use cases which help understand the typical interaction
paradigm of a decentralized environment.
As to the architecture, Figure 2 depicts how various XCON islands
(just two in the picture to avoid confusion) can interact through the
exchanging of synchronization messages between each pair of
conferencing systems. Such messages are needed in order to circulate
conference information among all involved entities. A dedicated
Romano, et al. Expires June 17, 2013 [Page 6]
Internet-Draft Distributed Conferencing Framework December 2012
protocol is obviously needed to take care of the communication
between each pair: since its task is to synchronize the XCON and DCON
pair, it will from now on be called XCON-DCON Synchronization
Protocol (XDSP). The requirements for this protocol are further
analyzed in a companion draft [I-D.romano-dcon-xdsp-reqs].
Inter-island coordination can be achieved via a number of available
solutions (e.g. SIP/SIMPLE, XMPP). In this document we propose the
exploitation of IM-based interaction. More precisely, we think that
the Server-to-Server (S2S) module based on the XMPP protocol
perfectly satisfies the requirements imposed by the new architecture.
Finally, media streams will directly flow between the XCON clouds
once a distributed conference has been setup. Distributed mixing,
however, will be only marginally discussed in this draft, in favour
of the distribution of signaling and control messages.
+-DCON-----------+ +-DCON-----------+
| +------------+ | | +------------+ |
| | Dispatcher | <=== Inter-focus communication ===> | Dispatcher | |
| +------------+ | | +------------+ |
+----------^-----+ +----^-----------+
^ | | ^
| | XDSP XDSP | |
| | | |
+---|-------|----XCON-+ +-XCON---|--------|---+
| | +-v-------+ | | +------v--+ | |
| | | Gateway | | | | Gateway | | |
| | +--^---^--+ | | +--^---^--+ | |
| | BFCP| |CCP | | CCP| |BFCP | |
| | | | | | | | | |
| | +--v---v--+ | | +--v---v--+ | |
| +-----o Conf. | | | | Conf. o-----+ |
| Notify | Object |<======= Media Flow ========>| Object | Notify |
| | | | | | | |
| +---------+ | | +---------+ |
+---------------------+ +---------------------+
XCON Cloud 1 XCON Cloud 2
Figure 2: Distributed conferencing framework
Romano, et al. Expires June 17, 2013 [Page 7]
Internet-Draft Distributed Conferencing Framework December 2012
5.1. Setting up a distributed conferencing environment
In the following we are going to describe the typically required
steps to setup a distributed conferencing environment. As described
in the introductory sections, an overlay network of focus entities,
each managing an underlying "centralized" conferencing island, will
be needed, and the following points will help clarify how to
effectively setup a distributed conferencing and manage it.
1. Overlay Creation and Management
To enable effective operation of the distributed conferencing
framework, an overlay network made of all interconnected
conferencing clouds MUST be created. As an example, the
mentioned overlay MAY be built by interconnecting all focus
entities (with each such entity being the root of a local
centralized conferencing cloud) through a full-meshed topology.
Once the overlay is created, appropriate management of its
structure SHOULD be envisaged; this includes, for example,
dynamic updating of the topology information at the occurrence
of relevant events (grafting/pruning of new centralized
conferencing islands, etc.).
2. Focus Discovery
An appropriate mechanism for the discovery of peering focus
entities SHOULD be provided. Given the sensitive nature of the
shared information, an appropriate authentication mechanism
SHOULD be adopted. The trigger of the discovery process MAY be
related to the concept of "presence"; in such case, an Instant
Messaging (IM) based paradigm is RECOMMENDED. Alternatively, a
logically centralized, physically distributed repository (e.g.
UDDI) MAY be employed as a single reference point for the
discovery of peering entities. A pure peer-to-peer approach can
also be exploited for the same purpose.
3. Self-configuration
At the occurrence of events like the grafting of a new cloud
onto the overlay distributed conferencing network, the needed
configuration steps SHOULD be performed in an automated fashion.
This entails that all the news are appropriately exchanged
across the overlay and, if needed, notified to the underlying
centralized clouds as well.
Romano, et al. Expires June 17, 2013 [Page 8]
Internet-Draft Distributed Conferencing Framework December 2012
4. Information Sharing
The core of the operation of a distributed conferencing
framework resides in the possibility to exchange information
among all involved entities. The information sharing process
SHOULD be made as effective as possible, e.g. by limiting the
information that is forwarded outside a single centralized
conferencing cloud to the data that are strictly necessary in
order to guarantee that the overall state of the overaly is
consistent, yet not redundant. Information sharing MAY be
achieved either by exploiting a request/response paradigm, or
through the adoption of asynchronous notification messages. A
combined use of both the aforementioned paradigms is
RECOMMENDED.
5. Dynamic Update
All the clouds participating in the distributed overlay MUST
keep the peers updated with respect to worth-noting events
happening in their local realm. This MAY be achieved either by
exploiting a request/response paradigm, or through the adoption
of asynchronous notification messages. A combined use of both
the aforementioned paradigms is RECOMMENDED. A pure peer-to-
peer approach can also be exploited for the same purpose.
6. Distributed Conference Management
In order to allow users' access to remotely created conferences,
appropriate mechanisms MUST be provided by the framework. Such
mechanisms SHOULD enable transparent management of both locally-
and remotely-created conference instances. A pure peer-to-peer
approach can be exploited for the same purpose.
7. Centralized Protocols Routing and Dispatching
Focus entities MUST forward any centralized protocol message to
their related peer in the distributed overlay whenever the
message is directed to a receiver who does not belong to the
local centralized system. Natively centralized protocol
messages include, but are not limited to, any protocol defined
and specified in the XCON framework (e.g. conference control
management and floor control) as well as DTMF messages
propagation. An example could be BFCP [RFC4582] messages the
local floor control server might need to send to a user who is
remotely participating in the conference (because she/he does
not belong to the current XCON cloud). Another example concerns
BFCP messages a local user might send to the remote floor
control server handling the remote distributed conference she/he
Romano, et al. Expires June 17, 2013 [Page 9]
Internet-Draft Distributed Conferencing Framework December 2012
is involved in. Any message sent by local entities to local
entities has to be treated in the usual centralized way
according to the relative protocol specifications (i.e.
dispatching shall not be involved).
8. Distributed Mixing
As soon as two or more centralized conferencing islands get
connected in order to provide for a distributed conferencing
scenario, the need arises to cope with the issue of mixing media
flows generated by the conference participants. This
challenging issue is currently considered out-of-scope in this
document, which mainly focuses on the distribution of conference
signalling/control information rather than addressing media
management.
5.2. Use-case scenarios and examples
In this subsection we provide some examples of the operation of the
distributed conferencing framework.
5.2.1. Creating a new distributed conference
Figure 3 illustrates how a distributed conference can be created and
managed in a distributed environment. A participant contacts its
corresponding focus entity in order to request the creation of a new
conference instance. With respect to the centralized scenario, upon
conference instantiation, in this case the focus has to publish
conference information by notifying its related DCON focus. This is
done in order to allow other remote focus entities to get up-to-date
information about available conferencing sessions.
Romano, et al. Expires June 17, 2013 [Page 10]
Internet-Draft Distributed Conferencing Framework December 2012
Client XCON DCON
| | |
| Request creation of | |
| a new XCON conference | |
|------------------------>| |
| |--+ Schedule |
| | | new XCON |
| |<-+ conference |
| | |
| | Notify scheduling |
| | of new conference |
| |---------------------->|
| | |--+ Manage
| | | | new XCON
| | |<-+ conference
| | |
| | | Spread new
| | | information
| | |--------> ~~~
. . .
. . .
Figure 3: Creating a new conference
5.2.2. Retrieving information about available conferences
Figure 4 illustrates how information about available centralized and
distributed conferences can be retrieved. A participant contacts its
corresponding focus entity in order to request the above information.
With respect to the centralized scenario, upon reception of a
participant's request, the XCON focus has to forward the request to
the related DCON focus. It will be up to the distributed focus
entity to provide such information, which will include the list of
both centralized (local) and distributed (remote) conferences. This
way, a participant will be able to transparently keep on contacting
the XCON focus to get all the information she/he needs in both cases.
Romano, et al. Expires June 17, 2013 [Page 11]
Internet-Draft Distributed Conferencing Framework December 2012
Client XCON DCON
| | |
| Request list of | |
| available conferences | |
|------------------------>| |
| |--+ Process |
| | | client's |
| |<-+ request |
| | |
| | Forward request |
| | to DCON focus |
| |----------------------->|
| | |--+ Process
| | | | forwarded
| | |<-+ request
| | Send conferences list |
| Send conferences list |<-----------------------|
|<------------------------| |
. . .
. . .
Figure 4: Retrieving information about available conferences
5.2.3. Joining a conference hosted by a foreign island
Figure 5 illustrates how a participant can join a conference which is
managed by a focus entity belonging to a foreign centralized island.
The whole sequence diagram has been split in three parts to better
help understanding all the required steps. A participant contacts
its corresponding focus entity in order to send the join request.
With respect to the centralized scenario, upon reception of the
participant's request, the local focus has to forward join
information to the focus entity belonging to the island in which the
conference in question was created.
The following steps are performed in sequence:
1. once the client has locally joined the distributed conference by
placing a SIP call to the focus she/he belongs to (XCON (A)), the
focus chooses a new label for the client (A) which will be needed
to opportunely dispatch all the messages related to her/him;
2. XCON (A) at this point forwards the join request to its related
DCON focus entity (DCON (A)); in this example this is done by
sending, through the XDSP protocol, a message called AddUser
Romano, et al. Expires June 17, 2013 [Page 12]
Internet-Draft Distributed Conferencing Framework December 2012
containing the newly assigned client's label A;
3. DCON (A) receives the join request; since it regards a new
client, the DCON focus entity chooses a new label (e.g. XYZ) and
associates it with the just received label A; depending on the
distributed conference the client wants to join, it associates
the label (XYZ) with the DCON focus entity managing the XCON
focus physically hosting the conference (DCON (B)) and forwards
the join request to it;
4. DCON (B) receives the forwarded message through the XMPP-based
S2S channel; since it regards a new client, DCON (B) chooses a
new label (e.g. B) and associates it with the just received
label XYZ; since the conference the remote client (A) wants to
join is physically hosted by XCON (B), the join request is
forwarded there using the XDSP protocol, with an AddUser message
containing the newly assigned label B which identifies the remote
client;
5. XCON (B) receives the request, and thus associates the received
label B with the remote Client (A); all the operations needed to
add the new user to the conference are performed, and the new
information is sent back to the client through the same path.
All the involved labels (B, XYZ, A) will be opportunely swapped
to route all the XCON protocols messages between the two
entities.
Once XCON (A) receives the confirmation that the user has been
successfully added to the remote conference, together with the needed
information, the client (A) is updated through a SIP REINVITE
containing the BFCP information she/he will need to communicate with
the Floor Control Server. All BFCP messages sent from now on by the
client to the Floor Control Server will be intercepted by the
gateway, and then forwarded to the Floor Control Server of XCON (B).
This case will be furtherly presented and discussed in the next
section.
Client(A) XCON(A) DCON(A) DCON(B)
| | | |
| SIP INVITE | | |
|-------------------->| | |
| SIP Trying | | |
|<--------------------| | |
| SIP OK | | |
|<--------------------| | |
Romano, et al. Expires June 17, 2013 [Page 13]
Internet-Draft Distributed Conferencing Framework December 2012
| SIP ACK | | |
|-------------------->| | |
| |--+ Choose a | |
| | | Label (A) | |
| |<-+ for new user | |
| | | |
| | AddUser (A) | |
| |---------------->| |
| | |--+ Choose a Label |
| | | | (XYZ) and find |
| | | | destination |
| | |<-+ (DCON (B)) |
| | | |
| | |--+ Label |
| | | | Swap |
| | |<-+ (A=>XYZ) |
| | | |
| | | XMPP (AddUser) |
| | |---- ~~(S2S)~~ ---->|
| | | |
. . . .
. . . .
DCON(A) DCON(B) XCON(B)
. . .
. . .
| | |
|--+ Label | |
| | Swap | |
|<-+ (A=>XYZ) | |
| | |
| XMPP (AddUser) | |
|--- ~~(S2S)~~ --->| |
| |--+ Choose a |
| | | Label (B) |
| |<-+ for new user |
| | |
| | AddUser |
| |------------------->|
| | |--+ Assign new
| | | | User ID
| | | | to remote
| | |<-+ participant
| | UserAdded (B) |
| |<-------------------|
| Label +--| |
Romano, et al. Expires June 17, 2013 [Page 14]
Internet-Draft Distributed Conferencing Framework December 2012
| Swap | | |
| (B=>XYZ) +->| |
| | |
| XMPP (UserAdded) | |
|<--- ~~(S2S)~~ ---| |
Label +--| | |
Swap | | | |
(XYZ=>A) +->| | |
| | |
. . .
. . .
Client(A) XCON(A) DCON(A) DCON(B)
. . . .
. . . .
| | | |
| | | XMPP (UserAdded) |
| | |<---- ~~(S2S)~~ ----|
| | Label +--| |
| | Swap | | |
| | (XYZ=>A) +->| |
| | | |
| | UserAdded (A) | |
| |<----------------| |
| Manage received +--| | |
| info on new user | | | |
| (e.g. IDs) +->| | |
| | | |
| | | |
|SIP REINVITE (+BFCP) | | |
|<--------------------| | |
| SIP Trying | | |
|-------------------->| | |
| SIP OK | | |
|-------------------->| | |
| SIP ACK | | |
|<--------------------| | |
| | | |
. . . .
. . . .
. . . .
Figure 5: Joining a foreign conference
Romano, et al. Expires June 17, 2013 [Page 15]
Internet-Draft Distributed Conferencing Framework December 2012
5.2.4. Dispatching XCON protocols in DCON
Figure 6 illustrates how natively centralized XCON protocols (BFCP,
in the figure) can be opportunely dispatched in order to let them
spread across a distributed environment. Such mechanism would allow
users participating in distributed conferences to avoid knowing the
transport addresses needed to communicate with remote focus entities,
and to keep transparently referring to the local focus entity
instead.
In order to understand who the actual receiver of a message shall be,
all messages are intercepted by a logical entity, called Gateway,
belonging to the XCON focus. The Gateway will understand whether a
message is directed to a local entity (e.g. a user belonging to the
XCON focus, or the local Floor Control Server) or to a remote entity
belonging to another focus (e.g. a remotely participating user, or a
remote Floor Control Server).
Romano, et al. Expires June 17, 2013 [Page 16]
Internet-Draft Distributed Conferencing Framework December 2012
+---------------------------------------------------------+
| Client 1: Label A (Server Leg: FCS) |
| Client 2: Label B (Server Leg: Remote FCS-->Dispatcher) |
| Client 3: Label C (Server Leg: FCS) |
+---------------------------------------------------------+
+--DCON-------------+
| |
| +------------+ |
| | Dispatcher |<=== (BFCP: Label Swap) ===...>
| +------------+ |
+-------------^-----+
|
| XDSP Message: Label B
| (BFCP encoded in Base64)
|
+-----|-------------------XCON--+
| | |
| +--- Notify (B) ---+ |
| | | |
+----------+ | v v |
| Client 1 |<---+ | +---------+ +---------+ |
+----------+ | | | Floor |<--A-->| Floor | |
+-A------>| Control | | Control | |
+~~~~~~~~~~+ | | Server |<--C-->| Server | |
i Client 2 i<------B----->| Gateway | +---------+ |
+~~~~~~~~~~+ | +---------+ |
+---^---------------------------+
+----------+ |
| Client 3 |<-------C-------+
+----------+
Figure 6: Centralized protocols dispatching
To make the whole thing clearer, the example in figure Figure 7 will
be used. As in the previous case, the whole sequence diagram has
been split in three parts to better help understand all the required
steps. In this example, a user (Client (A)) belonging to XCON (A) is
remotely participating to a distributed conference hosted by XCON
(B). Since XCON (B) is physically hosting the conference, floor
control will be entirely managed by its Floor Control Server. To
allow Client (A) to communicate with Floor Control Server (B) and
viceversa, appropriate dispatching of BFCP messages between the two
peers will be needed. We have already seen how labels are assigned
and swapped: the same labels will be used for dispatching.
Romano, et al. Expires June 17, 2013 [Page 17]
Internet-Draft Distributed Conferencing Framework December 2012
The flow of a typical message exchange can be seen as follows:
1. The Client (A) sends a BFCP message to the Floor Control Server;
the message is intercepted by XCON (A)'s gateway; the label
assigned to client (A) is retrieved, and used to forward the BFCP
message to the DCON (A) Dispatcher; of course, since BFCP
messages are binary, an opportune treatment (e.g. through Base64
encoding) should be done to encapsulate the message in a text-
based protocol message (as XDSP will probably be);
2. Once DCON (A) receives the encapsulated BFCP message, the labels
are opportunely swapped (in this case, A=>XYZ) and the message is
routed to the right destination (DCON (B));
3. DCON (B) will receive the message and swap labels again (XYZ=>B);
at this point, the encapsulated message will be forwarded to the
underlying XCON (B) Gateway to be further processed there;
4. The XCON (B) Gateway will receive the encapsulated (and probably
Base64-encoded) BFCP message; after decoding it (if needed), the
Gateway will analyze the label marked in the message (B, in this
case), and will understand it is a message sent by a remote user
(Client (A)) to the local Floor Control Server. It will forward
the (now 'natively' binary) message there, where it will be
processed;
5. In case the FCS (B) needs to send a message to Client (A),
exactly the same operations will be performed, and the same path
will be followed through the needed label swaps among the
involved peers. FCS (A), while not actually managing the floors
related to the remote conference Client (A) is participanting in,
will however be notified upon each floor status change, so to
opportunely update the local media mixes when needed (e.g. to
mute Client (A) excluding her/him from XCON (A)'s local mix if
FCS (B) has decided so).
Client(A) XCON(A) DCON(A) DCON(B)
| (Gateway) | |
| | | |
| BFCP Message | | |
|------------------->| | |
| |--+ Get Label (A) | |
| | | assigned to | |
| |<-+ client/FCS | |
Romano, et al. Expires June 17, 2013 [Page 18]
Internet-Draft Distributed Conferencing Framework December 2012
| | | |
| | BFCP encoded | |
| | in Base64 | |
| |--(Label A)-------->| |
| | |--+ Label |
| | | | Swap |
| | |<-+ (A=>XYZ) |
| | | |
| | |--+ Get destination |
| | | | from label XYZ |
| | |<-+ (DCON B) |
| | | |
| | | XMPP |
| | | (BFCP in Base64) |
| | |---- ~~(S2S)~~ --->|
| | | |
. . . .
. . . .
DCON(A) DCON(B) XCON(B) XCON(B)
| | (Gateway) (FCS)
. . . .
. . . .
| XMPP | | |
| (BFCP in Base64) | | |
|--- ~~(S2S)~~ ---->| | |
| | | |
| |--+ Label | |
| | | Swap | |
| |<-+ (XYZ=>B) | |
| | | |
| | BFCP encoded | |
| | in Base64 | |
| |-----(Label B)---->| |
| | |--+ Check Label (B)|
| | | | assigned to |
| | |<-+ FCS/client |
| | | |
| | | BFCP Message |
| | |------------------>|
. . . .
. . . .
| | | BFCP Message |
| | |<------------------|
| | Get Label (B) +--| |
| | assigned to | | |
Romano, et al. Expires June 17, 2013 [Page 19]
Internet-Draft Distributed Conferencing Framework December 2012
| | FCS/client +->| |
| | | |
| | BFCP encoded | |
| | in Base64 | |
| |<-----(Label B)----| |
| Label +--| | |
| Swap | | | |
| (B=>XYZ) +->| | |
| | | |
| Get destination +--| | |
| from label XYZ | | | |
| (DCON A) +->| | |
| | | |
| XMPP | | |
| (BFCP in Base64) | | |
|<--- ~~(S2S)~~ ----| | |
| | | |
. . . .
. . . .
Client(A) XCON(A) DCON(A) DCON(B)
| (Gateway) | |
| | | |
| | | XMPP |
| | | (BFCP in Base64) |
| | |<---- ~~(S2S)~~ ---|
| | Label +--| |
| | Swap | | |
| | (XYZ=>A) +->| |
| | | |
| | BFCP encoded | |
| | in Base64 | |
| |<---------(Label A)-| |
| Check Label (A) +--| | |
| assigned to | | | |
| client/FCS +->| | |
| | | |
| BFCP Message | | |
|<-------------------| | |
| | | |
. . . .
. . . .
. . . .
Romano, et al. Expires June 17, 2013 [Page 20]
Internet-Draft Distributed Conferencing Framework December 2012
Figure 7: An example: dispatching a BFCP message
6. Security Considerations
TBD...
7. References
[RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
[RFC4353] Rosenberg, J., "A Framework for Conferencing with the
Session Initiation Protocol (SIP)", RFC 4353,
February 2006.
[RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
Control Protocol (BFCP)", RFC 4582, November 2006.
[I-D.romano-dcon-requirements]
Romano, S., Amirante, A., Castaldi, T., Miniero, L., and
A. Buono, "Requirements for Distributed Conferencing",
draft-romano-dcon-requirements-11 (work in progress),
June 2012.
[I-D.romano-dcon-xdsp-reqs]
Romano, S., Amirante, A., Castaldi, T., Miniero, L., and
A. Buono, "Requirements for the XCON-DCON Synchronization
Protocol", draft-romano-dcon-xdsp-reqs-11 (work in
progress), June 2012.
[RFC5239] Barnes, M., Boulton, C., and O. Levin, "A Framework for
Centralized Conferencing", RFC 5239, June 2008.
[I-D.ietf-xcon-common-data-model]
Morgan, D., Camarillo, G., Urpalainen, J., and O. Novo,
"Conference Information Data Model for Centralized
Conferencing (XCON)", draft-ietf-xcon-common-data-model-32
(work in progress), September 2011.
Romano, et al. Expires June 17, 2013 [Page 21]
Internet-Draft Distributed Conferencing Framework December 2012
Authors' Addresses
Simon Pietro Romano
University of Napoli
Via Claudio 21
Napoli 80125
Italy
Email: spromano@unina.it
Alessandro Amirante
University of Napoli
Via Claudio 21
Napoli 80125
Italy
Email: alessandro.amirante@unina.it
Tobia Castaldi
Meetecho
Via Carlo Poerio 89
Napoli 80100
Italy
Email: tcastaldi@meetecho.com
Lorenzo Miniero
Meetecho
Via Carlo Poerio 89
Napoli 80100
Italy
Email: lorenzo@meetecho.com
Alfonso Buono
Ansaldo Trasporti e Sistemi Ferroviari
Via Argine, 425
Napoli 80147
Italy
Email: alfonso.buono@atsf.it
Romano, et al. Expires June 17, 2013 [Page 22]