draft-ietf-p2psip-disco-00.txt   draft-ietf-p2psip-disco-01.txt 
Network Working Group A. Knauf Network Working Group A. Knauf
Internet-Draft T C. Schmidt, Ed. Internet-Draft T. Schmidt, Ed.
Intended status: Standards Track HAW Hamburg Intended status: Standards Track HAW Hamburg
Expires: April 12, 2013 G. Hege Expires: January 13, 2014 G. Hege
daviko GmbH daviko GmbH
M. Waehlisch M. Waehlisch
link-lab & FU Berlin link-lab & FU Berlin
October 9, 2012 July 12, 2013
A RELOAD Usage for Distributed Conference Control (DisCo) A RELOAD Usage for Distributed Conference Control (DisCo)
draft-ietf-p2psip-disco-00 draft-ietf-p2psip-disco-01
Abstract Abstract
This document defines a RELOAD Usage for Distributed Conference This document defines a RELOAD Usage for Distributed Conference
Control (DisCo) with SIP. DisCo preserves conference addressing Control (DisCo) with SIP. DisCo preserves conference addressing
through a single SIP URI by splitting its semantic of identifier and through a single SIP URI by splitting its semantic of identifier and
locator using a new Kind data structure. Conference members are locator using a new Kind data structure. Conference members are
enabled to select conference controllers based on proximity awareness enabled to select conference controllers based on proximity awareness
and to recover from failures of individual resource instances. DisCo and to recover from failures of individual resource instances. DisCo
proposes call delegation to balance the load at focus peers. proposes call delegation to balance the load at focus peers.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 12, 2013. This Internet-Draft will expire on January 13, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview of DisCo . . . . . . . . . . . . . . . . . . . . . . 6 3. Overview of DisCo . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Reference Scenario . . . . . . . . . . . . . . . . . . . . 6 3.1. Reference Scenario . . . . . . . . . . . . . . . . . . . 4
3.2. Initiating a Distributed Conference . . . . . . . . . . . 7 3.2. Initiating a Distributed Conference . . . . . . . . . . . 6
3.3. Joining a Conference . . . . . . . . . . . . . . . . . . . 8 3.3. Joining a Conference . . . . . . . . . . . . . . . . . . 6
3.4. Conference State Synchronization . . . . . . . . . . . . . 9 3.4. Conference State Synchronization . . . . . . . . . . . . 7
3.5. Call delegation . . . . . . . . . . . . . . . . . . . . . 10 3.5. Call delegation . . . . . . . . . . . . . . . . . . . . . 8
3.6. Resilience . . . . . . . . . . . . . . . . . . . . . . . . 10 3.6. Resilience . . . . . . . . . . . . . . . . . . . . . . . 8
3.7. Topology Awareness . . . . . . . . . . . . . . . . . . . . 10 3.7. Topology Awareness . . . . . . . . . . . . . . . . . . . 8
4. RELOAD Usage for Distributed Conference Control . . . . . . . 11 4. RELOAD Usage for Distributed Conference Control . . . . . . . 8
4.1. Shared Resource DisCo-Registration . . . . . . . . . . . . 11 4.1. Shared Resource DisCo-Registration . . . . . . . . . . . 9
4.2. Kind Data Structure . . . . . . . . . . . . . . . . . . . 11 4.2. Kind Data Structure . . . . . . . . . . . . . . . . . . . 9
4.3. Variable Conference Identifier . . . . . . . . . . . . . . 12 4.3. Variable Conference Identifier . . . . . . . . . . . . . 10
4.4. Conference Creation . . . . . . . . . . . . . . . . . . . 12 4.4. Conference Creation . . . . . . . . . . . . . . . . . . . 10
4.5. Advertising Focus Ability . . . . . . . . . . . . . . . . 13 4.5. Advertising Focus Ability . . . . . . . . . . . . . . . . 11
4.6. Determining Coordinates . . . . . . . . . . . . . . . . . 14 4.6. Determining Coordinates . . . . . . . . . . . . . . . . . 12
4.7. Proximity-aware Conference Participation . . . . . . . . . 14 4.7. Proximity-aware Conference Participation . . . . . . . . 12
4.8. Configuration Document Extension . . . . . . . . . . . . . 16 4.8. Configuration Document Extension . . . . . . . . . . . . 14
5. Conference State Synchronization . . . . . . . . . . . . . . . 18 5. Conference State Synchronization . . . . . . . . . . . . . . 15
5.1. Event Package Overview . . . . . . . . . . . . . . . . . . 18 5.1. Event Package Overview . . . . . . . . . . . . . . . . . 15
5.2. <distributed-conference> . . . . . . . . . . . . . . . . . 20 5.2. <distributed-conference> . . . . . . . . . . . . . . . . 16
5.3. <version-vector>/<version> . . . . . . . . . . . . . . . . 20 5.3. <version-vector>/<version> . . . . . . . . . . . . . . . 17
5.4. <conference-description> . . . . . . . . . . . . . . . . . 21 5.4. <conference-description> . . . . . . . . . . . . . . . . 18
5.5. <focus> . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.5. <focus> . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.5.1. <focus-state> . . . . . . . . . . . . . . . . . . . . 23 5.5.1. <focus-state> . . . . . . . . . . . . . . . . . . . . 19
5.5.2. <users>/<user> . . . . . . . . . . . . . . . . . . . . 23 5.5.2. <users>/<user> . . . . . . . . . . . . . . . . . . . 20
5.5.3. <relations>/<relation> . . . . . . . . . . . . . . . . 24 5.5.3. <relations>/<relation> . . . . . . . . . . . . . . . 20
5.6. Distribution of Change Events . . . . . . . . . . . . . . 24 5.6. Distribution of Change Events . . . . . . . . . . . . . . 21
5.7. Translation to Conference-Info Event Package . . . . . . . 25 5.7. Translation to Conference-Info Event Package . . . . . . 22
5.7.1. <conference-info> . . . . . . . . . . . . . . . . . . 26 5.7.1. <conference-info> . . . . . . . . . . . . . . . . . . 22
5.7.2. <conference-description> . . . . . . . . . . . . . . . 26 5.7.2. <conference-description> . . . . . . . . . . . . . . 23
5.7.3. <host-info> . . . . . . . . . . . . . . . . . . . . . 26 5.7.3. <host-info> . . . . . . . . . . . . . . . . . . . . . 23
5.7.4. <conference-state> . . . . . . . . . . . . . . . . . . 26 5.7.4. <conference-state> . . . . . . . . . . . . . . . . . 23
5.7.5. <users>/<user> . . . . . . . . . . . . . . . . . . . . 27 5.7.5. <users>/<user> . . . . . . . . . . . . . . . . . . . 24
5.7.6. <sidebars-by-ref>/<sidebars-by-value> . . . . . . . . 27 5.7.6. <sidebars-by-ref>/<sidebars-by-value> . . . . . . . . 24
6. Distributed Conference Control with SIP . . . . . . . . . . . 28 6. Distributed Conference Control with SIP . . . . . . . . . . . 24
6.1. Call delegation . . . . . . . . . . . . . . . . . . . . . 28 6.1. Call delegation . . . . . . . . . . . . . . . . . . . . . 24
6.2. Conference Access . . . . . . . . . . . . . . . . . . . . 29 6.2. Conference Access . . . . . . . . . . . . . . . . . . . . 26
6.3. Media Negotiation and Distribution . . . . . . . . . . . . 30 6.3. Media Negotiation and Distribution . . . . . . . . . . . 26
6.3.1. Offer/Answer . . . . . . . . . . . . . . . . . . . . . 30 6.3.1. Offer/Answer . . . . . . . . . . . . . . . . . . . . 26
6.3.2. New Peers Joining . . . . . . . . . . . . . . . . . . 31 6.3.2. New Peers Joining . . . . . . . . . . . . . . . . . . 27
6.4. Restructuring a Conference . . . . . . . . . . . . . . . . 31 6.4. Restructuring a Conference . . . . . . . . . . . . . . . 27
6.4.1. On Graceful Leave . . . . . . . . . . . . . . . . . . 31 6.4.1. On Graceful Leave . . . . . . . . . . . . . . . . . . 27
6.4.2. On Unexpected Leave . . . . . . . . . . . . . . . . . 32 6.4.2. On Unexpected Leave . . . . . . . . . . . . . . . . . 28
7. DisCo Kind Definition . . . . . . . . . . . . . . . . . . . . 33 7. DisCo Kind Definition . . . . . . . . . . . . . . . . . . . . 28
8. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 29
9. Relax NG Grammar . . . . . . . . . . . . . . . . . . . . . . . 38 9. Relax NG Grammar . . . . . . . . . . . . . . . . . . . . . . 32
10. Security Considerations . . . . . . . . . . . . . . . . . . . 39 10. Security Considerations . . . . . . . . . . . . . . . . . . . 33
10.1. Trust Aspects . . . . . . . . . . . . . . . . . . . . . . 39 10.1. Trust Aspects . . . . . . . . . . . . . . . . . . . . . 33
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 41 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 42 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 33
13.1. Normative References . . . . . . . . . . . . . . . . . . . 42 13.1. Normative References . . . . . . . . . . . . . . . . . . 33
13.2. Informative References . . . . . . . . . . . . . . . . . . 43 13.2. Informative References . . . . . . . . . . . . . . . . . 34
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 44 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 46 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36
1. Introduction 1. Introduction
This document describes a RELOAD Usage for distributed conference This document describes a RELOAD Usage for distributed conference
control (DisCo) in a tightly coupled model with SIP [RFC3261]. The control (DisCo) in a tightly coupled model with SIP [RFC3261]. The
Usage provides self-organizing and scalable signaling that allows Usage provides self-organizing and scalable signaling that allows
RELOAD peers, clients and plain SIP user agents to participate in a RELOAD peers, clients and plain SIP user agents to participate in a
managed P2P conference. DisCo defines the following functions: managed P2P conference. DisCo defines the following functions:
o A SIP protocol scheme for distributed conference control o A SIP protocol scheme for distributed conference control
skipping to change at page 7, line 5 skipping to change at page 5, line 31
conference from the storing peer. In contrast to this, the user conference from the storing peer. In contrast to this, the user
agent E receives the conference URI not by RELOAD mechanisms, but agent E receives the conference URI not by RELOAD mechanisms, but
resolves the ID and joins the conference by plain SIP negotiation. resolves the ID and joins the conference by plain SIP negotiation.
Focus peers maintain a SIP signaling relation among each other used Focus peers maintain a SIP signaling relation among each other used
for notification messages that synchronize the conference focus for notification messages that synchronize the conference focus
peers' knowledge about the entire conference state. Additionally, peers' knowledge about the entire conference state. Additionally,
focus peers can transfer calls to each other by a call delegation focus peers can transfer calls to each other by a call delegation
mechanism. mechanism.
+-------------------+ +------------------+ +-------------------+ +------------------+
|Access Control List| |DisCo-Registration| |Access Control List| |DisCo-Registration|
+-------------------+ +------------------+ +-------------------+ +------------------+
\ / \ /
+-------+ +-------+
|Storing| |Storing|
# # # # # # # # # # | Peer | # # # # # # # # # # # # # # # # # # # # | Peer | # # # # # # # # # #
# | SP | # # | SP | #
# +-------+ # # +-------+ #
# # # #
# # # #
# # # #
+----+ +----+ +----+ +----+
|Peer| \ RELOAD Instance |Peer| |Peer| \ RELOAD Instance |Peer|
| C | \ | D | | C | \ | D |
+----+ \ +----+ +----+ \ +----+
# SIP # # SIP #
# \ # # \ #
# \ # # \ #
# +-------+ +-------+ #( # +-------+ +-------+ #(
# | Focus | | Focus | # ) # | Focus | | Focus | # )
# # | Peer | # # # # # # # # # # # | Peer | # # ( # # | Peer | # # # # # # # # # # # | Peer | # # (
| A | <===Conf.Events/====> | B | ) | A | <===Conf.Events/====> | B | )
+-------+ Call delegation +-------+ Overlay +-------+ Call delegation +-------+ Overlay
/ \ Comm. / \ Comm.
/ \ ( / \ (
SIP SIP ) SIP SIP )
/ \ ( / \ (
/ \ ) / \ )
+----------+ +--------+ +----------+ +--------+
|User Agent| | Client | |User Agent| | Client |
| E | | F | | E | | F |
+----------+ +--------+ +----------+ +--------+
Figure 1: Reference Scenario: Focus peers A,B maintain a distributed Figure 1: Reference Scenario: Focus peers A,B maintain a distributed
conference conference
3.2. Initiating a Distributed Conference 3.2. Initiating a Distributed Conference
To create a conference the initiating user agent announces itself as To create a conference the initiating user agent announces itself as
a focus for the conference. It stores its own contact information a focus for the conference. It stores its own contact information
(Node-ID) as a DisCo-Registration Kind (cf. Figure 2) in the RELOAD (Node-ID) as a DisCo-Registration Kind (cf. Figure 2) in the RELOAD
overlay. The hashed conference URI is used as the Resource-ID. This overlay. The hashed conference URI is used as the Resource-ID. This
skipping to change at page 9, line 5 skipping to change at page 6, line 45
used to send an INVITE to the conference applying the chosen focus as used to send an INVITE to the conference applying the chosen focus as
the contact. The selection of the focus peer can optionally be based the contact. The selection of the focus peer can optionally be based
on proximity information if available. on proximity information if available.
A conference member proposes itself as a focus for subsequent A conference member proposes itself as a focus for subsequent
participants by adding its Node-ID to the DisCo-Registration stored participants by adding its Node-ID to the DisCo-Registration stored
under the conference URI in the RELOAD overlay. The decision whether under the conference URI in the RELOAD overlay. The decision whether
a peer announces as a focus incorporates bandwidth, power, and other a peer announces as a focus incorporates bandwidth, power, and other
constraints, but details are beyond the scope of this document. constraints, but details are beyond the scope of this document.
Alice RELOAD Bob Alice RELOAD Bob
(initiating peer) (joining peer) (initiating peer) (joining peer)
-------------------------------------------------------------------- --------------------------------------------------------------------
| | | | | |
| Alice stores her mapping to register a conference | | Alice stores her mapping to register a conference |
| Store mapping(ConfURI, Alice) | | | Store mapping(ConfURI, Alice) | |
|------------------------------>| | |------------------------------>| |
| Bob requests the list of potential focus peers | | Bob requests the list of potential focus peers |
| | Lookup ConfURI | | | Lookup ConfURI |
| |<------------------------------| | |<------------------------------|
| | Result list of conf. focus | | | Result list of conf. focus |
| |------------------------------>| | |------------------------------>|
| | | | | |
| Bob establishes transport connection to Alice | | Bob establishes transport connection to Alice |
| AppAttach | | AppAttach |
|<--------------------------------------------------------------| |<--------------------------------------------------------------|
| AppAttach | | AppAttach |
|-------------------------------------------------------------->| |-------------------------------------------------------------->|
| INVITE | | INVITE |
|<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| OK | | OK |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
| ACK | | ACK |
|<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| Media | | Media |
|<=============================================================>| |<=============================================================>|
| | | | | |
| Bob stores his mapping to become a focus peer too | | Bob stores his mapping to become a focus peer too |
| | Store mapping(ConfURI, Bob) | | | Store mapping(ConfURI, Bob) |
| |<------------------------------| | |<------------------------------|
| | | | | |
Figure 2: DisCo Usage generic Call Flow Figure 2: DisCo Usage generic Call Flow
3.4. Conference State Synchronization 3.4. Conference State Synchronization
Each focus of a conference maintains signaling connections to its Each focus of a conference maintains signaling connections to its
related participants independently from other conference controllers. related participants independently from other conference controllers.
This distributed conference design effects that the entire SIP This distributed conference design effects that the entire SIP
conference state is jointly held by all focus peers. In DisCo, state conference state is jointly held by all focus peers. In DisCo, state
synchronization is based on a SIP specific event notifications synchronization is based on a SIP specific event notifications
skipping to change at page 11, line 43 skipping to change at page 9, line 40
cooperatively control the conference. Additionally, each DisCo- cooperatively control the conference. Additionally, each DisCo-
Registration provides the coordinate value, which indicates the Registration provides the coordinate value, which indicates the
relative network position of the focus peers. relative network position of the focus peers.
The data structure uses the RELOAD dictionary type. The dictionary The data structure uses the RELOAD dictionary type. The dictionary
key MUST be the Node-ID of the focus peer that is associated with the key MUST be the Node-ID of the focus peer that is associated with the
dictionary entry. This allows a focus peer to update only its own dictionary entry. This allows a focus peer to update only its own
mapping. The DisCo data structure of type DisCoRegistration is mapping. The DisCo data structure of type DisCoRegistration is
constructed as follows: constructed as follows:
struct { struct {
/* This field is optional, see documentation */ /* This field is optional, see documentation */
ResourceNameExtension res_name_ext; ResourceNameExtension res_name_ext;
opaque coordinate<0..2^16-1>; opaque coordinate<0..2^16-1>;
NodeId node_id; NodeId node_id;
} DisCoRegistration; } DisCoRegistration;
The DisCoRegistration structure is composed of the following values: The DisCoRegistration structure is composed of the following values:
res_name_ext: This field can contain the conference URI. It meets res_name_ext: This field can contain the conference URI. It meets
the requirement for the USER-CHAIN-ACL access policy defined in the requirement for the USER-CHAIN-ACL access policy defined in
[I-D.knauf-p2psip-share] to enable variable resource names. [I-D.knauf-p2psip-share] to enable variable resource names.
coordinate: This field contains a topological descriptor that coordinate: This field contains a topological descriptor that
indicates the relative position of the peer in the network. To indicates the relative position of the peer in the network. To
support different algorithms the coordinate field is represented support different algorithms the coordinate field is represented
skipping to change at page 13, line 8 skipping to change at page 11, line 8
Section 4.3) and an ACL referring to the DisCo-Registration Kind-ID. Section 4.3) and an ACL referring to the DisCo-Registration Kind-ID.
If DisCo registrations and ACL Kinds from previous conferences are If DisCo registrations and ACL Kinds from previous conferences are
still existing there are two options. First, if conference creator still existing there are two options. First, if conference creator
is aware of the indexes from previous ACL Kinds, it refreshes the is aware of the indexes from previous ACL Kinds, it refreshes the
root item of this ACL and stores its registration as focus peer as root item of this ACL and stores its registration as focus peer as
DisCo-Registration Kind. Second, If the creator is unaware of DisCo-Registration Kind. Second, If the creator is unaware of
indexes, it fetches all Access List Kinds to determine the index of indexes, it fetches all Access List Kinds to determine the index of
the root item. the root item.
Alice Peer1 Overlay PeerN Storing Peer Alice Peer1 Overlay PeerN Storing Peer
------------------------------------------------------------- -------------------------------------------------------------
| StatReq Res:Conf-URI | | | StatReq Res:Conf-URI | |
|------------>|----------->|----------->|----------->| |------------>|----------->|----------->|----------->|
| StatAns | | | | StatAns | | |
|<------------|<-----------|<-----------|<-----------| |<------------|<-----------|<-----------|<-----------|
| StoreReq Res:Conf-URI Kinds:DisCo, Access-List | | StoreReq Res:Conf-URI Kinds:DisCo, Access-List |
|------------>|----------->|----------->|----------->| |------------>|----------->|----------->|----------->|
| StoreAns | | | | StoreAns | | |
|<------------|<-----------|<-----------|<-----------| |<------------|<-----------|<-----------|<-----------|
| | | | | | | | | |
Figure 3: Initial creation of a Distributed Conference Figure 3: Initial creation of a Distributed Conference
Optionally the conference initiator (or any active focus) MAY store Optionally the conference initiator (or any active focus) MAY store
an additional RELOAD SIP-Registration in the overlay an additional RELOAD SIP-Registration in the overlay
[I-D.ietf-p2psip-sip] or even at a standard SIP registrar [RFC3261] [I-D.ietf-p2psip-sip] or even at a standard SIP registrar [RFC3261]
under a URI for which it has write permission. This allows DisCo- under a URI for which it has write permission. This allows DisCo-
unaware or even legacy SIP user agents to participate in the unaware or even legacy SIP user agents to participate in the
conference. Those registrations SHOULD always point to a currently conference. Those registrations SHOULD always point to a currently
active focus, who is prepared to accept legacy user agents. The user active focus, who is prepared to accept legacy user agents. The user
skipping to change at page 15, line 6 skipping to change at page 13, line 8
1. Resolution of the conference identifier. 1. Resolution of the conference identifier.
2. Establishment of of transport connection. 2. Establishment of of transport connection.
3. SIP signaling to join a conference. 3. SIP signaling to join a conference.
Figure 4 and the following specifications give a more detailed view Figure 4 and the following specifications give a more detailed view
on the joining procedure. on the joining procedure.
Bob Peer1 Overlay PeerN Storing Peer Alice Bob Peer1 Overlay PeerN Storing Peer Alice
-------------------------------------------------------------- --------------------------------------------------------------
| StatReq Res:Conf-URI | | | | StatReq Res:Conf-URI | | |
|--------->|--------->|--------->|--------->| | |--------->|--------->|--------->|--------->| |
| |StatAns | | | | | |StatAns | | | |
|<---------|<---------|<---------|<---------| | |<---------|<---------|<---------|<---------| |
| FetchReq Res:Conf-URI Kind:DisCo,ACL | | | FetchReq Res:Conf-URI Kind:DisCo,ACL | |
|--------->|--------->|--------->|--------->| | |--------->|--------->|--------->|--------->| |
| |FetchAns | | | | | |FetchAns | | | |
|<---------|<---------|<---------|<---------| | |<---------|<---------|<---------|<---------| |
| | | | | | | | | | | |
| Bob calculates Alice as closest Focus | | | Bob calculates Alice as closest Focus | |
| | | | | | | | | | | |
| |AppAttach application:5060 | | | |AppAttach application:5060 | |
|--------->|--------->|--------->|--------->|--------->| |--------->|--------->|--------->|--------->|--------->|
| |AppAttach application:5060 | | | |AppAttach application:5060 | |
|<---------|<---------|<---------|<---------|<---------| |<---------|<---------|<---------|<---------|<---------|
| | | | | | | | | | | |
|<-------------------ICE Checks----------------------->| |<-------------------ICE Checks----------------------->|
| | | | | | | | | | | |
| | INVITE sip:Alice | | | | INVITE sip:Alice | |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
| | 200 OK | | | | | 200 OK | | |
|<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| |<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| | ACK | | | | | ACK | | |
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>| |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>|
| | | | | | | | | | | |
Figure 4: Participation of a Distributed Conference Figure 4: Participation of a Distributed Conference
1. The joining peer MAY determine its own coordinate value (if 1. The joining peer MAY determine its own coordinate value (if
used). used).
2. The joining peer sends a StatReq message to obtain all indexes of 2. The joining peer sends a StatReq message to obtain all indexes of
the Access Control List (ACL) Kinds stored. the Access Control List (ACL) Kinds stored.
3. The joining peer sends a FetchReq message for the DisCo and ACL 3. The joining peer sends a FetchReq message for the DisCo and ACL
skipping to change at page 19, line 5 skipping to change at page 15, line 38
5.1. Event Package Overview 5.1. Event Package Overview
The 'distributed-conference' event package is designed to convey The 'distributed-conference' event package is designed to convey
information about roles and relations of the conference participants. information about roles and relations of the conference participants.
Conference controllers obtain the global state of the conference and Conference controllers obtain the global state of the conference and
use this information for load balancing or conference restructuring use this information for load balancing or conference restructuring
mechanisms in case of a focus failure. Figure Figure 5 gives a mechanisms in case of a focus failure. Figure Figure 5 gives a
general overview of the document hierarchy. general overview of the document hierarchy.
distributed-conference distributed-conference
| |
|-- version-vector |-- version-vector
| |-- version | |-- version
| |-- version | |-- version
| |
|-- conference-description |-- conference-description
| |
|-- focus |-- focus
| |-- focus-state | |-- focus-state
| | |-- user-count | | |-- user-count
| | |-- coordinate | | |-- coordinate
| | |-- maximum-user-count | | |-- maximum-user-count
| | |-- active | | |-- active
| | |-- locked | | |-- locked
| | |-- conf-uris | | |-- conf-uris
| | |-- available-media | | |-- available-media
| | | |
| |-- users | |-- users
| | |-- user | | |-- user
| | | |-- endpoint | | | |-- endpoint
| | | | |-- media | | | | |-- media
| | | | |-- call-info | | | | |-- call-info
| | | |
| |-- relations | |-- relations
| | |-- relation | | |-- relation
|-- focus |-- focus
| |-- ... | |-- ...
Figure 5: Overview of the event package for distributed conferences Figure 5: Overview of the event package for distributed conferences
The document structure is designed to allow concurrent change events The document structure is designed to allow concurrent change events
at several focus peers. To prevent race conditions each focus peer at several focus peers. To prevent race conditions each focus peer
has exclusive writing permission to the 'focus' sub element that has exclusive writing permission to the 'focus' sub element that
describes itself. It is achieved by a unique mapping from a focus describes itself. It is achieved by a unique mapping from a focus
peer to its XML element using the 'Element Keys' mechanisms for peer to its XML element using the 'Element Keys' mechanisms for
partial notification [RFC4575](sections 4.4-5.). A focus peer is partial notification [RFC4575](sections 4.4-5.). A focus peer is
only allowed to update or change that <focus> sub element, whose only allowed to update or change that <focus> sub element, whose
skipping to change at page 26, line 27 skipping to change at page 23, line 19
events of remote focus peer. events of remote focus peer.
5.7.2. <conference-description> 5.7.2. <conference-description>
The <conference-description> element exists in both event packages, The <conference-description> element exists in both event packages,
conference-info and distributed-conference. Thus, the following conference-info and distributed-conference. Thus, the following
elements are seamlessly translatable: <keywords>, <display-text>, elements are seamlessly translatable: <keywords>, <display-text>,
<subject>, <free-text> and <service-uris>. <subject>, <free-text> and <service-uris>.
The sub elements <conf-uris>, <maximum-user-count> and <available- The sub elements <conf-uris>, <maximum-user-count> and <available-
media> in conference-info have there counterparts below the media> in conference-info have there counterparts below the \focus
\focus\focus-state element of the distributed-conference event \focus-state element of the distributed-conference event package.
package. Each describes a local state of a focus peer in the Each describes a local state of a focus peer in the conference.
conference. Hence, the intersection of every disco.<conf-uris>, Hence, the intersection of every disco.<conf-uris>, disco.<available-
disco.<available-media> and the sum over each disco.<maximum-user- media> and the sum over each disco.<maximum-user-count> element of
count> element of each disco.<focus> element in distributed- each disco.<focus> element in distributed-conference, specifies the
conference, specifies the content of the corresponding conference- content of the corresponding conference-info elements.
info elements.
5.7.3. <host-info> 5.7.3. <host-info>
According to [RFC4575] the ci.<host-info> element contains According to [RFC4575] the ci.<host-info> element contains
information about the entity hosting the conference. For information about the entity hosting the conference. For
participants in a distributed conference, the hosting entity is their participants in a distributed conference, the hosting entity is their
focus peer. Thus, the ci.<host-info> element contains information focus peer. Thus, the ci.<host-info> element contains information
about a focus peer. about a focus peer.
5.7.4. <conference-state> 5.7.4. <conference-state>
The ci.<conference-state> element allows subscribers obtain The ci.<conference-state> element allows subscribers obtain
information about overall state of a conference. Its sub elements information about overall state of a conference. Its sub elements ci
ci.<user-count>, ci.<active> and ci.<locked> are reused as sub .<user-count>, ci.<active> and ci.<locked> are reused as sub elements
elements of \focus\focus-state to describe the local state of a focus of \focus\focus-state to describe the local state of a focus peer in
peer in a distributed conference. The translation rules from the a distributed conference. The translation rules from the
distributed-conference to the conference-info event package are the distributed-conference to the conference-info event package are the
following: following:
<user-count>: The sum over each value of the disco.<user-count> <user-count>: The sum over each value of the disco.<user-count>
element defines the corresponding ci.<user-count>. element defines the corresponding ci.<user-count>.
<active>: The boolean ci.<active> element is the logical <active>: The boolean ci.<active> element is the logical
concatenation over all disco.<active> elements by an OR-operator. concatenation over all disco.<active> elements by an OR-operator.
<locked> The boolean ci.<locked> element is the logical <locked> The boolean ci.<locked> element is the logical
skipping to change at page 33, line 9 skipping to change at page 28, line 39
6.4.2. On Unexpected Leave 6.4.2. On Unexpected Leave
If an unexpected leave is detected by a participant (e.g. missing If an unexpected leave is detected by a participant (e.g. missing
signaling and/or media packets) it MUST repeat the joining procedure signaling and/or media packets) it MUST repeat the joining procedure
as described in Section 4.7. as described in Section 4.7.
7. DisCo Kind Definition 7. DisCo Kind Definition
This section formally defines the DisCo kind. This section formally defines the DisCo kind.
Name Name
DISCO-REGISTRATION DISCO-REGISTRATION
Kind IDs Kind IDs
The Resource name DISCO-REGISTRATION Kind-ID is the AoR of the The Resource name DISCO-REGISTRATION Kind-ID is the AoR of the
conference. The data stored is the DisCoRegistrationData, that conference. The data stored is the DisCoRegistrationData, that
contains the Node-ID of a peer acting as a focus for the contains the Node-ID of a peer acting as a focus for the
conference and optionally a coordinates value describing a conference and optionally a coordinates value describing a
peer's relative network position. peer's relative network position.
Data Model Data Model
The data model for the DISCO-REGISTRATION Kind-ID is dictionary. The data model for the DISCO-REGISTRATION Kind-ID is dictionary.
The dictionary key is the Node-ID of the peer action as focus. The dictionary key is the Node-ID of the peer action as focus.
Access Control Access Control
USER-CHAIN-ACL USER-CHAIN-ACL
The data stored for the Kind-ID DISCO-REGISTRATION is of type The data stored for the Kind-ID DISCO-REGISTRATION is of type
DisCoRegistration. It contains a "coordinates" value, that describes DisCoRegistration. It contains a "coordinates" value, that describes
the peers relative network position and the Node-ID of the registered the peers relative network position and the Node-ID of the registered
focus peer. focus peer.
8. XML Schema 8. XML Schema
The XML schema for the event package for distributed conferences is: The XML schema for the event package for distributed conferences is:
skipping to change at page 38, line 5 skipping to change at page 32, line 30
<xs:complexType name="relation-type"> <xs:complexType name="relation-type">
<xs:simpleContent> <xs:simpleContent>
<xs:extension base="xs:string"> <xs:extension base="xs:string">
<xs:attribute name="entity" type="xs:anyURI"/> <xs:attribute name="entity" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/> <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension> </xs:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:schema> </xs:schema>
Figure 7
9. Relax NG Grammar 9. Relax NG Grammar
The grammar for the Landmark configuration document extension is: The grammar for the Landmark configuration document extension is:
<!-- <!--
LANDMARKS ELEMENT LANDMARKS ELEMENT
--> -->
parameter &= element landmarks { parameter &= element landmarks {
attribute version { xsd:int } attribute version { xsd:int }
<!-- <!--
LANDMARK-HOST ELEMENT LANDMARK-HOST ELEMENT
--> -->
element landmark-host { element landmark-host {
attribute address { xsd:string }, attribute address { xsd:string },
attribute port { xsd:int } attribute port { xsd:int }
}* }*
}? }?
Figure 8
10. Security Considerations 10. Security Considerations
10.1. Trust Aspects 10.1. Trust Aspects
TODO TODO
11. IANA Considerations 11. IANA Considerations
TODO: register Kind-ID code point at the IANA TODO: register Kind-ID code point at the IANA
skipping to change at page 42, line 12 skipping to change at page 33, line 31
David Bryan, Toerless Eckert, Lothar Grimm, Cullen Jennings, Peter David Bryan, Toerless Eckert, Lothar Grimm, Cullen Jennings, Peter
Musgrave, Joerg Ott, Peter Pogrzeba, Brian Rosen, and Jan Seedorf. Musgrave, Joerg Ott, Peter Pogrzeba, Brian Rosen, and Jan Seedorf.
13. References 13. References
13.1. Normative References 13.1. Normative References
[I-D.ietf-p2psip-base] [I-D.ietf-p2psip-base]
Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
H. Schulzrinne, "REsource LOcation And Discovery (RELOAD) H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
Base Protocol", draft-ietf-p2psip-base-22 (work in Base Protocol", draft-ietf-p2psip-base-26 (work in
progress), July 2012. progress), February 2013.
[I-D.knauf-p2psip-share] [I-D.knauf-p2psip-share]
Knauf, A., Hege, G., Schmidt, T., and M. Waehlisch, "A Knauf, A., Hege, G., Schmidt, T., and M. Waehlisch, "A
Usage for Shared Resources in RELOAD (ShaRe)", Usage for Shared Resources in RELOAD (ShaRe)", draft-
draft-knauf-p2psip-share-03 (work in progress), knauf-p2psip-share-03 (work in progress), April 2012.
April 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264, with Session Description Protocol (SDP)", RFC 3264, June
June 2002. 2002.
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, June 2002. Event Notification", RFC 3265, June 2002.
[RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer [RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer
Method", RFC 3515, April 2003. Method", RFC 3515, April 2003.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description [RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006. Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session [RFC4575] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference Initiation Protocol (SIP) Event Package for Conference
State", RFC 4575, August 2006. State", RFC 4575, August 2006.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, October 2006. Encodings", RFC 4648, October 2006.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT) (ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245, Traversal for Offer/Answer Protocols", RFC 5245, April
April 2010. 2010.
13.2. Informative References 13.2. Informative References
[I-D.ietf-p2psip-concepts] [I-D.ietf-p2psip-concepts]
Bryan, D., Willis, D., Shim, E., Matthews, P., and S. Bryan, D., Willis, D., Shim, E., Matthews, P., and S.
Dawkins, "Concepts and Terminology for Peer to Peer SIP", Dawkins, "Concepts and Terminology for Peer to Peer SIP",
draft-ietf-p2psip-concepts-04 (work in progress), draft-ietf-p2psip-concepts-04 (work in progress), October
October 2011. 2011.
[I-D.ietf-p2psip-sip] [I-D.ietf-p2psip-sip]
Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and Jennings, C., Lowekamp, B., Rescorla, E., Baset, S.,
H. Schulzrinne, "A SIP Usage for RELOAD", Schulzrinne, H., and T. Schmidt, "A SIP Usage for RELOAD",
draft-ietf-p2psip-sip-07 (work in progress), January 2012. draft-ietf-p2psip-sip-09 (work in progress), February
2013.
[RFC4353] Rosenberg, J., "A Framework for Conferencing with the [RFC4353] Rosenberg, J., "A Framework for Conferencing with the
Session Initiation Protocol (SIP)", RFC 4353, Session Initiation Protocol (SIP)", RFC 4353, February
February 2006. 2006.
[landmarks-infocomm02] [landmarks-infocomm02]
Ratnasamy, Handley, Karp, and Shenker, "Topologically- Ratnasamy, ., Handley, ., Karp, ., and . Shenker,
Aware Overlay Construction and Server Selection", Proc. of "Topologically-Aware Overlay Construction and Server
21st Annual Joint Conference of the IEEE Computer and Selection", Proc. of 21st Annual Joint Conference of the
Communications Societies (INFOCOM '02) pp. 1190-1199, IEEE Computer and Communications Societies (INFOCOM '02)
2002. pp. 1190-1199, 2002.
[timestamps-acsc88] [timestamps-acsc88]
Fidge, C., "Timestamps in Message-Passing Systems that Fidge, C., "Timestamps in Message-Passing Systems that
Preserve the Partial Ordering", Proceedings of 11th Preserve the Partial Ordering", Proceedings of 11th
Australian Computer Science Conference, pp. 56-66, Australian Computer Science Conference, pp. 56-66,
February 1988. February 1988.
Appendix A. Change Log Appendix A. Change Log
The following changes have been made from version The following changes have been made from version draft-knauf-p2psip-
draft-knauf-p2psip-disco-04. disco-04.
1. Editorial improvements. 1. Editorial improvements.
2. Updated references. 2. Updated references.
The following changes have been made from version The following changes have been made from version draft-knauf-p2psip-
draft-knauf-p2psip-disco-03. disco-03.
1. Adapted mechanisms for storing DisCo-Registrations to new 1. Adapted mechanisms for storing DisCo-Registrations to new
requirements of Shared Resources draft [I-D.knauf-p2psip-share] requirements of Shared Resources draft [I-D.knauf-p2psip-share]
The following changes have been made from version The following changes have been made from version draft-knauf-p2psip-
draft-knauf-p2psip-disco-02. disco-02.
1. DisCo-Registration uses now only the USER-CHAIN-ACL access 1. DisCo-Registration uses now only the USER-CHAIN-ACL access
control policy. control policy.
2. Adapted mechanisms for storing DisCo-Registrations to new 2. Adapted mechanisms for storing DisCo-Registrations to new
requirements of Shared Resources draft [I-D.knauf-p2psip-share] requirements of Shared Resources draft [I-D.knauf-p2psip-share]
The following changes have been made from version The following changes have been made from version draft-knauf-p2psip-
draft-knauf-p2psip-disco-01. disco-01.
1. The conference registration is now based on the Shared Resources 1. The conference registration is now based on the Shared Resources
draft [I-D.knauf-p2psip-share]: draft [I-D.knauf-p2psip-share]:
* DisCo-Registration Kind now meets the requirements for ShaRe. * DisCo-Registration Kind now meets the requirements for ShaRe.
* Conference creation procedure now uses the ShaRe Access List. * Conference creation procedure now uses the ShaRe Access List.
* Replaced USER-CHAIN-MATCH access policy for DisCo- * Replaced USER-CHAIN-MATCH access policy for DisCo-
Registration. Now uses USER-CHAIN-ACL or USER-PATTERN-MATCH. Registration. Now uses USER-CHAIN-ACL or USER-PATTERN-MATCH.
skipping to change at page 45, line 7 skipping to change at page 36, line 7
element. element.
4. Added a 'node-id' attribute to the event package XML <focus> 4. Added a 'node-id' attribute to the event package XML <focus>
element. element.
5. Added a 'coordinate' child element to the event package XML 5. Added a 'coordinate' child element to the event package XML
<focus> element. <focus> element.
6. Corrected typos/wording 6. Corrected typos/wording
The following changes have been made from version The following changes have been made from version draft-knauf-p2psip-
draft-knauf-p2psip-disco-00. disco-00.
1. Updated references. 1. Updated references.
2. Corrected typos. 2. Corrected typos.
3. New Section: Conference State Synchronization 3. New Section: Conference State Synchronization
4. XML Event Package for Distributed Conferences 4. XML Event Package for Distributed Conferences
5. New mechanism for generating chained conference certificates 5. New mechanism for generating chained conference certificates
skipping to change at page 46, line 15 skipping to change at page 36, line 37
Authors' Addresses Authors' Addresses
Alexander Knauf Alexander Knauf
HAW Hamburg HAW Hamburg
Berliner Tor 7 Berliner Tor 7
Hamburg D-20099 Hamburg D-20099
Germany Germany
Phone: +4940428758067 Phone: +4940428758067
Email: alexanderknauf@gmail.com Email: alexanderknauf@gmail.com
URI:
Thomas C. Schmidt Thomas C. Schmidt
HAW Hamburg HAW Hamburg
Berliner Tor 7 Berliner Tor 7
Hamburg D-20099 Hamburg D-20099
Germany Germany
Email: schmidt@informatik.haw-hamburg.de Email: schmidt@informatik.haw-hamburg.de
URI: http://inet.cpt.haw-hamburg.de/members/schmidt URI: http://inet.cpt.haw-hamburg.de/members/schmidt
Gabriel Hege Gabriel Hege
daviko GmbH daviko GmbH
Am Borsigturm 50 Am Borsigturm 50
Berlin D-13507 Berlin D-13507
Germany Germany
Phone: +493043004344 Phone: +493043004344
Email: hege@daviko.com Email: hege@daviko.com
URI:
Matthias Waehlisch Matthias Waehlisch
link-lab & FU Berlin link-lab & FU Berlin
Hoenower Str. 35 Hoenower Str. 35
Berlin D-10318 Berlin D-10318
Germany Germany
Email: mw@link-lab.net Email: mw@link-lab.net
URI: http://www.inf.fu-berlin.de/~waehl URI: http://www.inf.fu-berlin.de/~waehl
 End of changes. 38 change blocks. 
259 lines changed or deleted 259 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/