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

0 Members and 3 Guests are viewing this topic.

Offline Tragen

I installed the latest update from today and now XMPP connects, but I get this error multiple times.

Code: [Select]
---------------------------
Jabber Error
---------------------------
Error 0: Unknown error

You must join the room before sending presence updates
---------------------------
OK   
---------------------------

 

Offline ghazan

means that a room is private, i.e. you need to be invited into it, you can't join it yourself on your wish
also a piece of network log would be appreciated
 

Offline Tragen

It's a public room.
prosody@conference.prosody.im
I was connected automatically before the last update.
Now it's just an entry in my list. When I try to "Join chat" I get the error

 

Offline Tragen

I tried to delete the room and add it again. I also get this message.
 

Offline ghazan

Tragen,
using development or stable version?
 

Offline Tragen

I'm using the latest stable version.
I will try to get a network log.
 

Offline Tragen

I just installed the latest stable version. Now I can connect to my own server rooms again, but the prosody@conference.prosody.im not.
Here is the output of the xml console:

Code: [Select]
<presence to="prosody@conference.prosody.im/Tragen">
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc">
<password>Tragen</password>
</x>
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://miranda-ng.org/caps" ver="EMplRpI1ZVUMDeRT/EnvNaIUIcA=" ext="mirotr x64 mood activity mir_notes" />
<x xmlns="vcard-temp:x:update">
<photo />
</x>
<status>Yep, I'm here.</status>
</presence>
­
<presence from="prosody@conference.prosody.im/Tragen" to="name@domain.com/Miranda" type="error">
<error type="cancel" code="409">
<conflict xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</error>
<x xmlns="http://jabber.org/protocol/muc" />
</presence>

I don't know why it tries to send a password which is wrong.
 

Offline Tragen

The network log for the xmpp connection shows the same info. No difference.
 

Offline ghazan

I don't know why it tries to send a password which is wrong.
because it's specified in a bookmark and might be transferred into a contact. open a contact of that room in dbeditor++ and wipe Password field
 

Offline Tragen

I will do that, but I still cannot join this room.
 

Offline Tragen

I don't know why but after the latest update where only Miranda, Discord and one other file was updated, it's working again.

 ???
 

Offline ghazan

I don't know why but after the latest update where only Miranda, Discord and one other file was updated, it's working again.
because chat engine is located into the core :)
 

Offline beezle

  • Newbie
  • *
  • Posts: 4
Hi - just updated my prosody server (long, long overdue) and can no longer connect to muc.  I've copied  the console output below.   No expert in this, but from what I can find at xmpp.org, presence should NOT be sent prior to joining and it seems that Miranda is not following that req?   Note - I can join conferences on non-prosody servers so its quite possible that other servers are not enforcing that requirement.   Clearly the prior, quite old, version of prosody I had been using did not either.

console output:

<presence to="CHATROOM@conference.XXX.com/MYNICK">
<priority>
0
</priority>
<status>
Yo!
</status>
</presence>
­
<presence type="error" to="MYNICK@XXX.com/Miranda" from="CHATROOM@conference.XXX.com/MYNICK">
<error type="cancel">
<item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">
You must join the room before sending presence updates
</text>
</error>
</presence>


from xmpp.org:

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):
 

Offline ghazan

beezle,
you shall be a room participant to enter it, or this room does not exists.
XMPP clients do join chatrooms by sending the presence packet to them, these matters are non-separatable
 

Offline beezle

  • Newbie
  • *
  • Posts: 4
I have another machine I use that has 1) a very old version of the original Miranda and 2) an slightly older version of Miranda-NG.   Both connect to Prosody server chatrooms with no issue.   

Below is the XML console from each, you can compare to my prior post showing the current release Miranda-NG.   Again - I am not an XMPP expert or serious coder, but clearly something has changed between 0.95.9.1 and 0.95.10.3 - I'm guessing the missing <x xlmns...> lines?  Perhaps unfortuantely, I do not always stay current on Mirana-NG and can't better pin-point what version had this connection issue first.   

OLD MIRANDA:

<presence to="XXX@conference.YYY.com/ME">
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc" />
<c xmlns="http://jabber.org/protocol/caps" node="http://miranda-im.org/caps" ver="0.10.11.0" ext="mood activity mir_notes" />
<x xmlns="vcard-temp:x:update">
<photo>c457c394be108c312a7d7a8d3af2e3eac8c1d739</photo>
</x>
<status>Present and misaccounted for</status>
</presence>

MIRANDA-NG v0.95.9.1 build #20741 x64
<presence to="XXX@conference.YYY.com/ME">
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc" />
<c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://miranda-ng.org/caps" ver="bVXgVJQucA8cFLmkVmD+lVxsaQI=" ext="x64 mood activity mir_notes" />
<x xmlns="vcard-temp:x:update">
<photo>c457c394be108c312a7d7a8d3af2e3eac8c1d739</photo>
</x>
<status>Present and misaccounted for</status>
</presence>