Projects tigase _server server-core Issues #1390
vCard problem in MUC Rooms (#1390)
Unknown opened 5 years ago

On a Tigase MUC Room, when we look the user information, we obtain:

1/ Using "Multi User Chat 2.1.0-SNAPSHOT-b129/9e80625d / Linux-amd64-4.4.0-1105-aws, OpenJDK 64-Bit Server VM-12.0.1 AdoptOpenJDK"

2/ Conversations and fork users:

Unable to retrieve information about this contact. Reason: Feature not implemented. The feature requested is not implemented by the recipient or server and therefore cannot be processed.

3/ Gajim users:

Unable to retrieve information about this contact. Reason: Feature not implemented. The feature requested is not implemented by the recipient or server and therefore cannot be processed. The feature requested is not implemented by the recipient or server and therefore cannot be processed.

4/ Poezio users:

Unable to retrieve information about this contact. Reason: Not allowed. The recipient or server does not allow any entity to perform the actions. Many destination resources detected.

5/ Psi user :

Unable to retrieve information about this contact. Reason: Request timed out

Unknown commented 5 years ago

On a Tigase MUC Room, when we look the user information, we obtain:

What exactly do you mean "look for user information"? What stanza do you send? Are you referring to vCard support for MUC?

1/ Using "Multi User Chat 2.1.0-SNAPSHOT-b129/9e80625d / Linux-amd64-4.4.0-1105-aws, OpenJDK 64-Bit Server VM-12.0.1 AdoptOpenJDK"

This is quite old version - version 2.1.0 was released in 2012 (8 years ago! and you are using SNAPSHOT version so it's even older). Current stable version is tigase-muc-3.0.0 and vCard for MUC was added in current development version: tigase-muc-3.1.0 (currently SNAPSHOT) which is shipped with Tigase XMPP Server 8.1.0.

Unknown commented 5 years ago
Unknown commented 5 years ago

Thank you for the details. It would he helpful to include information which members were affected but even without that we can assume this is caused by literal implementation of MUC specification Business Rules: IQ:

  1. If an occupant wants to send an IQ stanza to another user in a semi-anonymous room, the sender can direct the stanza to the recipient's occupant JID and the service SHOULD forward the stanza to the recipient's real JID. However, the MUC service MUST NOT reveal the sender's real JID to the recipient at any time, nor reveal the recipient's real JID to the sender.

So tigase-muc follows this and forwards vCard request to FullJID (this is the JID associated with particular occupant and majority of use-cases described in MUC specification warrant using FullJID, including Direct Messages -- and IQs are even more specific!). All the errors that you shared are returned by other servers, which most likely can't process such request. For example:

<iq type="get" id="aaeea" to="tigase@muc.tigase.org/Neustradamus">
<query xmlns="jabber:iq:version"/>
</iq>

<iq type="error" from="tigase@muc.tigase.org/Neustradamus" id="aaf0a" to="wo*a@tigase.org/atlantis/city/psi+">
    <vCard xmlns="vcard-temp"/>
        <error type="cancel">
            <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
        </error>
</iq>

This was returned by your server and not by Tigase.

Given, that MUC avatars are based on XEP-0153: vCard-Based Avatars and XEP-0054: vcard-temp which both states that BareJID should be used:

it retrieves the sender's full vCard in accordance with the protocol flow described in XEP-0054 (note that this request is sent to the user's bare JID, not full JID)

and:

A user may view another user's vCard by sending an IQ of type "get" to the other user's bare JID.

There are two solutions:

  • we could forwards vCard IQs to BareJID instead of Full JID (which feels more in line with MUC specification)
  • other servers could handle vCard send to FullJID (and not only those addressed to BareJID).

However, please keep in mind, that we are working hard on MIX implementation (and MIX-MUC compatibility layer) so this issue will mostly be irrelevant in the future.

issue 1 of 1
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#1390
Please wait...
Page is in error, reload to recover