[muji/master] Update to document a race-free way of joining the conference
sjoerd.simons at collabora.co.uk
Fri Jun 5 04:37:54 PDT 2009
xep/muji.xml | 61 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 33 insertions(+), 28 deletions(-)
diff --git a/xep/muji.xml b/xep/muji.xml
index c1f092e..47fcd9e 100644
@@ -12,7 +12,7 @@
managing multiparty voice and video conferences within an XMPP MUC
@@ -66,11 +66,40 @@ streams.
<section1 topic='Starting a conference' anchor='starting'>
- <!-- TODO better conflict handling -->
Assuming there is no existing Muji conference in the <cite>XEP-0045</cite>
room a new conference can be started by a user putting a Muji stanza with
the proposed contents in its presence. As shown in the example below:
+ This presence indicates that there is a conference available with a video
+ stream and an audio stream.
+<section1 topic='Joining a conference' anchor='starting'>
+ Joining a conference is done in two stages. The first step is to
+ declare that preparations are being done to either join or start a muji
+ session inside the MUC. This is indicated by the client sending a presence
+ stanza to the MUC with a preparing element in muji section.
+ <presence from='wiccarocks at shakespeare.lit/laptop'
+ to='darkcave at chat.shakespeare.lit/oldhag'>
+ <c xmlns="http://jabber.org/protocol/caps"
+ hash="sha-1" />
+ <muji xmlns='http://telepathy.freedesktop.org/muji>
+ <preparing />
+ The client MUST then wait until the MUC rebroadcasts its presence message,
+ after which it MUST wait for all other participants that had a preparing
+ element in their presence to finish preparation. Afterwards it should finish
+ it's own preparation by updating its presence with the contents it wants to
+ take part in.
<presence from='wiccarocks at shakespeare.lit/laptop'
to='darkcave at chat.shakespeare.lit/oldhag'>
@@ -81,7 +110,7 @@ streams.
<description xmlns='urn:xmpp:jingle:apps:rtp:0' media='video'>
- <payload-type id='98' name='theora' clockrate='90000'/>
+ <payload-type id='97' name='theora' clockrate='90000'/>
<content creator='initiator' name='voice'>
@@ -93,24 +122,6 @@ streams.
- This presence indicates that there is a conference available with a video
- stream and an audio stream.
-<section1 topic='Joining a conference' anchor='starting'>
- A client that is a member of a MUC joins a Muji conference by first
- updating their MUC presence with a Muji stanza reflecting the contents
- they want to provide.
- A Muji client MUST NOT advertise Muji capabilities in their MUC presence
- before they have received MUC presence from every other participant in the
- MUC, because otherwise they cannot reliably create a payload type mapping
- that's compatible with those of the existing participants. This means that
- the initial MUC presence must not contain Muji data.
@@ -140,7 +151,7 @@ streams.
Jingle sessions are initiated between the MUC JIDs of participants. That is,
- the Jingle session-intiate stanza is sent from one MUC JID to another. This
+ the Jingle session-initiate stanza is sent from one MUC JID to another. This
allows participants to easily identify sessions as belonging to a Muji
conference. Content names inside Muji-related Jingle sessions always refer
to the content with the same name inside the Muji conference.
@@ -157,12 +168,6 @@ streams.
<section1 topic='TODO' anchor='TODO'>
- <li> There is a race when two participants try to start a new Muji
- conference at the same time. This can be solves by making the initial
- conference announceemnt two stage and relying on the fact that messages
- are ordered to be the arbiter. (Note: actually find out if presence is
- guaranteed to be ordered.)
<li> Describe how to add/remove contents.
<li> Add support for relays. Not all participants might have the necessary
More information about the telepathy-commits