I just created an entirely new Jitsi instance using packages from jitsi/unstable:
jicofo/unstable,now 1.0-755-1
jitsi-meet-prosody/unstable,now 1.0.5043-1
jitsi-meet-turnserver/unstable,now 1.0.5043-1
jitsi-meet-web-config/unstable,now 1.0.5043-1
jitsi-meet-web/unstable,now 1.0.5043-1
jitsi-meet/unstable,now 2.0.5947-1
jitsi-videobridge2/unstable,now 2.1-506-g77c79fd8-1
prosody/unknown,now 0.11.9-1~focal1
and yet I’m getting the same results (full log):
DEBUG MUC presence from call@conference.domain/b0b1430d : OrderedDict([('lang', ''), ('affiliation', 'owner'), ('jid', 'rdaomoqzsbnfka0_@domain/ZvgK2bSP'), ('role', 'moderator'), ('nick', 'b0b1430d'), ('room', 'call@conference.domain'), ('show', ''), ('status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
DEBUG Event triggered: groupchat_presence
DEBUG Event triggered: muc::call@conference.domain::presence
DEBUG Event triggered: muc::call@conference.domain::got_online
DEBUG Event triggered: presence
DEBUG Event triggered: presence_available
DEBUG MUC presence from call@conference.domain/focus : OrderedDict([('lang', ''), ('affiliation', 'owner'), ('jid', 'focus@auth.domain/focus'), ('role', 'moderator'), ('nick', 'focus'), ('room', 'call@conference.domain'), ('show', ''), ('status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
DEBUG Event triggered: groupchat_presence
DEBUG Event triggered: muc::call@conference.domain::presence
DEBUG Event triggered: muc::call@conference.domain::got_online
DEBUG Event triggered: presence
DEBUG Event triggered: presence_available
DEBUG MUC presence from call@conference.domain/focus@auth.domain : OrderedDict([('lang', 'en'), ('affiliation', 'owner'), ('jid', 'focus@auth.domain/ZZfOBJmW'), ('role', 'moderator'), ('nick', 'focus@auth.domain'), ('room', 'call@conference.domain'), ('show', ''), ('status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
DEBUG Event triggered: groupchat_presence
DEBUG Event triggered: muc::call@conference.domain::presence
DEBUG Event triggered: muc::call@conference.domain::got_online
DEBUG Event triggered: groupchat_subject
DEBUG Event triggered: got_online
DEBUG Event triggered: changed_status
DEBUG Event triggered: changed_status
DEBUG Event triggered: changed_status
DEBUG SEND: <iq id="da37a0af-c506-4e58-88f3-fa5fddf9fcbd-4" type="get"><query xmlns="jabber:iq:roster" ver="" /></iq>
DEBUG SEND: <presence type="unavailable" to="call@conference.domain/b0b1430d" from="rdaomoqzsbnfka0_@domain/ZvgK2bSP]@2124609133" xml:lang="en" />
DEBUG SEND: <presence type="unavailable" to="call@conference.domain/b0b1430d" from="rdaomoqzsbnfka0_@domain/ZvgK2bSP]@2124609133" xml:lang="en" />
DEBUG SEND: <presence type="unavailable" to="call@conference.domain/b0b1430d" from="rdaomoqzsbnfka0_@domain/ZvgK2bSP]@2124609133" xml:lang="en" />
DEBUG RECV: <iq type="result" to="focus@auth.domain/ZZfOBJmW" id="da37a0af-c506-4e58-88f3-fa5fddf9fcbd-4"><query xmlns="jabber:iq:roster" ver="2"><item subscription="from" jid="focus.domain" /></query></iq>
DEBUG RECV: <presence xml:lang="en" from="call@conference.domain/focus@auth.domain" to="focus@auth.domain/ZZfOBJmW" type="unavailable"><x xmlns="http://jabber.org/protocol/muc#user"><item affiliation="owner" role="none" jid="focus@auth.domain/ZZfOBJmW" /><status code="110" /></x></presence>
DEBUG Event triggered: roster_update
DEBUG got response: <iq type="result" to="focus@auth.domain/ZZfOBJmW" id="da37a0af-c506-4e58-88f3-fa5fddf9fcbd-4"><query xmlns="jabber:iq:roster" ver="2"><item subscription="from" jid="focus.domain" /></query></iq>
DEBUG Event triggered: presence
DEBUG Event triggered: presence_unavailable
DEBUG I got kicked :( from call@conference.domain
DEBUG MUC presence from call@conference.domain/focus@auth.domain : OrderedDict([('lang', 'en'), ('affiliation', 'owner'), ('jid', 'focus@auth.domain/ZZfOBJmW'), ('role', 'none'), ('nick', 'focus@auth.domain'), ('room', 'call@conference.domain'), ('show', ''), ('status', ''), ('alt_nick', <nick xmlns="http://jabber.org/protocol/nick" />)])
DEBUG Event triggered: groupchat_presence
DEBUG Event triggered: muc::call@conference.domain::presence
DEBUG Event triggered: muc::call@conference.domain::got_offline
DEBUG Event triggered: changed_status
DEBUG SEND: <presence type="unavailable" to="call@conference.domain/b0b1430d" from="rdaomoqzsbnfka0_@domain/ZvgK2bSP]@2124609133" xml:lang="en" />
I have tried both, destroying a room and removing user (per XEP-0045: Multi-User Chat) as well as exiting room as a user (per XEP-0045: Multi-User Chat) both of which didn’t end the call but left it in a “zombie”…
What seems odd to me is the following line:
DEBUG I got kicked :( from call@conference.domain
which I presume is from jicofo / focus@conference being kicked instead of the user I was intending to kick.
My question is - since I’m originally connecting to the service as focus@conference JID and later sending and that includes “from=” field with a different user JID - does it work to use a different “from” JID than the JID of the currently user (focuss@conference)? Do I need to “impersonate” the correct JID in order to be able to send a stanza originating from that JID?
EDIT: To simplify my question above, it all probably just boils down to: can focus@conference JID remove other users from a room, including room’s owner (the first user who created the room) and the room itself?
Thanks in advance for any clues.