Focus user visible in meet conference

Hello,

I have a weird issue. In my jitsi-meet conferences there is always a “default” user “fellow jitser” visible, some digging revealed that it is the focus user, it looks like:

I am alone in the conference here.

This is how I found out it is the focus user:

~ $ ejabberdctl get_room_occupants test conference.e-xmpp
focus@e-auth-xmpp/focus1402438290412613 focus   moderator
kevin@e-auth-xmpp/9880390591102528886547        ca1b7861        moderator

My main question would be: How do I get rid of seeing the focus user?
My secondary question is: How does the jtisi-meet client usually decides to hide this user in particular?

thanks in advance,
Kevin

Are you using lib-jitsi-meet?

The library does not emit an event that focus had joined: https://github.com/jitsi/lib-jitsi-meet/blob/1c3b3c18e1a3a8c5c9c11cc93e61a4b3c720cfd9/modules/xmpp/ChatRoom.js#L495
And so no visual representation is available for this muc occupant.

Maybe when using ejabberd the library cannot detect which occupant is focus, for some reason …

Thank you for your answer.

Yes we are using lib-jitsi-meet. I did some debugging and it seems that the focus user detection is working.

I will keep digging for a bit, to see if I can find the issue.

Check whether this is fired for focus user: https://github.com/jitsi/lib-jitsi-meet/blob/1c3b3c18e1a3a8c5c9c11cc93e61a4b3c720cfd9/modules/xmpp/ChatRoom.js#L496

And you are running lib-jitsi-meet with no modifications, what about jitsi-meet?

Thank you very much @damencho,

Yes until now we ran an unmodified version of lib-jitsi-meet

With your hints I was able to identify the issue:

Especially at the beginning of the conference I received “empty” presence stanzas:

This did not trigger the focus filter and https://github.com/jitsi/lib-jitsi-meet/blob/1c3b3c18e1a3a8c5c9c11cc93e61a4b3c720cfd9/modules/xmpp/ChatRoom.js#L483

added the undefined jid as member, then with the default nick.

I ended up adding https://github.com/karrieretutor/lib-jitsi-meet/blob/ignore-undefined-from/modules/xmpp/ChatRoom.js#L483

I am not sure if this is the ‘correct’ approach but adding a member with an undefined jid to the members list makes no sense imo.

regards,
Kevin

It is interesting to understand where is this coming from as you may have and other problems later, which now you had masked with the check …

Ok, you are probably right that I should not just mask away the problem.

However the stanza in question is a XEP-0115 presence stanza, which looks like

<presence to=\"receiver\" from=\"test5@conference.e-xmpp\" id=\"id\" xmlns=\"jabber:client\">
<c ver=\"someverificationstring\" node=\"http://www.process-one.net/en/ejabberd/\" hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\"/>
</presence>

which then gets misinterpreted by lib-jitsi-meet and added to the members list…

So it is not the focus user I am seeing, it is some weird artifact when processing the presence stanzas which do not send a jid. Currently I am unsure how to fix this properly.

I just looked into how prosody handles this (yes I have access to both :slight_smile: ) and the XEP-0115 presence contain a jid which may circumvent the issue with the ‘fellow-jitser’
eg:

<presence xmlns=\"jabber:client\" from=\"test@muc-xmpp/c6e6fa93\" to=\"u5k_tgk2cezf-rpu@xmpp/fZ4DjlZR\">
<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" node=\"http://jitsi.org/jitsimeet\" ver=\"12a0JlElgsvtkqcjvfNtayNtIdw=\"/>
<avatar-id>8b2351059cc833c0e6b161b80e65d898</avatar-id>
<nick xmlns=\"http://jabber.org/protocol/nick\">Kevin</nick><audiomuted xmlns=\"http://jitsi.org/jitmeet/audio\">false</audiomuted><videoType xmlns=\"http://jitsi.org/jitmeet/video\">camera</videoType><videomuted xmlns=\"http://jitsi.org/jitmeet/video\">false</videomuted>

<!-- the important stuff --> 
<x xmlns=\"http://jabber.org/protocol/muc#user\"><status code=\"100\"/>
<item role=\"participant\" affiliation=\"none\" jid=\"u5k_tgk2cezf-rpu@xmpp/fZ4DjlZR\"/><status code=\"110\"/>
</x></presence>

So here I see a few problems here. First according to xep-0045 https://xmpp.org/extensions/xep-0045.html#enter-pres
it MUST send presence....including extended presence information about roles in a single <x/> element
But I don’t see this <x element here in the presence you show.
The second, I suppose lib-jitsi-meet should ignore such presences …
And I see that the presence from is coming directly from the room, if it is not edit mistake, while masking addresses maybe we also need to ignore those … I’m just brainstorming here.

It is not problem… the presence stanza in question is a valid capability advertisement as described here it has nothing to do with XEP-0045 (MUC), that is why it does not contain the muc presence extension (x tag). I came to the conclusion that it should be a viable approach to ignore presences in ChatRoom.js with undefined jids and will open a PR to discuss it there.