[muji/master] Update to document a race-free way of joining the conference

Sjoerd Simons 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
--- a/xep/muji.xml
+++ b/xep/muji.xml
@@ -12,7 +12,7 @@
     managing multiparty voice and video conferences within an XMPP MUC
   </abstract>
   &LEGALNOTICE;
-  <number>proto-muji0.1</number>
+  <number>proto-muji0.2</number>
   <status>ProtoXep</status>
   <type>Extension</type>
   <sig>Standards</sig>
@@ -66,11 +66,40 @@ streams.
 </section1>
 
 <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>
+
+<section1 topic='Joining a conference' anchor='starting'>
+  <p>
+  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.
+
+  <code><![CDATA[
+    <presence from='wiccarocks at shakespeare.lit/laptop'
+      to='darkcave at chat.shakespeare.lit/oldhag'>
+      <c xmlns="http://jabber.org/protocol/caps"
+        node="http://telepathy.freedesktop.org/wiki/Muji"
+        ver="48QdBuXRCJFb8qIzgy1FOHSGO0U="
+        hash="sha-1" />
+      <muji xmlns='http://telepathy.freedesktop.org/muji>
+        <preparing />
+      </muji>
+    </presence>
+  ]]></code>
+
+  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.
+
   <code><![CDATA[
     <presence from='wiccarocks at shakespeare.lit/laptop'
       to='darkcave at chat.shakespeare.lit/oldhag'>
@@ -81,7 +110,7 @@ streams.
       <muji xmlns='http://telepathy.freedesktop.org/muji'>
         <content name='video'>
           <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'/>
           </description>
         </content>
         <content creator='initiator' name='voice'>
@@ -93,24 +122,6 @@ streams.
        </muji>
     </presence>
   ]]></code>
-
-  This presence indicates that there is a conference available with a video
-  stream and an audio stream.
-</section1>
-
-<section1 topic='Joining a conference' anchor='starting'>
-  <p>
-  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.
-  </p>
-
-  <p>
-  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.
   </p>
 
   <p>
@@ -140,7 +151,7 @@ streams.
 
   <p>
   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'>
 <ul>
-  <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>
   <li> Describe how to add/remove contents.
   </li>
   <li> Add support for relays. Not all participants might have the necessary
-- 
1.5.6.5




More information about the telepathy-commits mailing list