When new participant joins the conference the focus sends "addsource"
notifications over jingle session to each of the participants. When a
client receives this notification it needs to know to whom this new
Currently we advertise ownership information in MUC presence, that is
every participant adds his audio/video SSRCs to presence. Then other
clients store a map of MUC JID -> SSRC and uses it to display video
for particular peers.
Sometimes it happens that "addsource" notification arrives before
presence SSRC mapping. In this case video will never be displayed for
that peer. I wanted to propose two solutions for this problem:
That's a bug. Stanzas are supposed to be delivered in-order.
Are they sent in the right order?
So prosody should guarantee stanzas order ? MUC presence is advertised
yes. Any proper xmpp server does.
by peer and "addsource" comes from the focus, so they might not be
synchronized/ordered. Also first MUC presence sent by peer does not
contain media info yet. It's added there a moment later after set
Right. So what should happen here is the following:
1) client joins, presence does not contain ssrcs
2) focus invites client with a session-initiate
3) client creates an answer
4) client updates presence, contains ssrcs (should happen in setlocaldescription.jingle)
5) client sends session-accept to focus
6) focus sends addsource jingle action to other clients
The problem you describe can happen when steps #4 and #5 are not in the right order. It might work most of the time (yay timing issues) even then. Can you check when setLocalDescription.jingle is executed relative to the session-accept?
I haven't had any problems with https://github.com/stpeter/mod_muc_focus but that sends out the presence in a sync way on the server side after receiving the session-accept so it is somewhat easier.
Am 12.08.2014 11:09, schrieb Paweł Domas:
On Tue, Aug 12, 2014 at 10:43 AM, Philipp Hancke > <firstname.lastname@example.org> wrote: