Author Topic: XMPP Bug: You must join the room before sending presence updates  (Read 986 times)

0 Members and 1 Guest are viewing this topic.

Offline ghazan

beezle,
as for me they look pretty identical... any of <x> extensions might be simply skipped from the presence
of course, you can simply skip that <c> extension that differs and send a presence manually from XML console, but if the reaction was different, it would mean a serious problem in Prosody
 

Offline beezle

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
They are not.  Perhaps Prosody respects the xmpp.org spec for MUC and other servers do not, I really do not know but can only repeat:

7.2.1 Basic MUC Protocol
In order to participate in the discussions held in a multi-user chat room, a user MUST first become an occupant by entering the room.
MUC clients MUST signal their ability to speak the MUC protocol by including in the initial presence stanza an empty <x/> element qualified by the 'http://jabber.org/protocol/muc' namespace (note the absence of the '#user' fragment):


From XML console of the most recent miranda-ng, I can do this:

<presence to="chatroom@conference.XXX.com/USER">
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc"/>
</presence>

Which does establish a proper connection to the chatroom.   

Current versions of Miranda-ng no longer send the x stanza when trying to join in the usual way and fail to connect with the previous mentioned presence error.    I really can't add anything more - this used to work, it used to include the <x> stanza, new(er) versions no longer include the <x> stanza and now fail to work with Prosody servers.  I don't know why it was removed, but it does seem to be critical to some servers.
 

Offline ghazan

beezle,
I've patched the development version according to XEP-045, you can try it
 

Offline beezle

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
Works, thank you!