tigase / beagle-im

(M) XMPP client for macOS based on TigaseSwift XMPP library
GNU General Public License v3.0
184 stars 21 forks source link

Unable to receive self messages from other clients #90

Closed Nothing4You closed 1 year ago

Nothing4You commented 3 years ago

Describe the bug Occasionally I want to share text or files between devices. With Gajim and Conversations this works just fine, however, with BeagleIM this is only possible one-way. Messages sent by BeagleIM show up in other clients but messages sent from Gajim or Conversations never show up.

To Reproduce Steps to reproduce the behavior:

  1. Start a converstation in another client to your own JID
  2. Send a text message
  3. Message shows up in other connected clients but not on BeagleIM

Expected behavior Messages should show up in BeagleIM as well.

Desktop (please complete the following information):

Additional context In BeagleIM the chat shows up in the From unknown section below Direct messages if you explicitly open such a chat.

hantu85 commented 3 years ago

The same as #30

I've just checked and this works as expected. Messages from "self" are in "From unknown" and are delivered and shown there. All conversations which are not MUC rooms or MIX channels or are not with people from Contacts window are shown in From unknown section.

If you will to received notifications for those messages please go to Preferences and in General check Show for messages from unknown senders in Notifications section.

Nothing4You commented 3 years ago

Thanks for the quick response.

As far as I understand the setting should only affect whether I receive notifications for those, not whether they are visible in general.

I do unfortunately not see any messages in the chat window, I'm not just missing notifications.

I did check if it makes any difference if I check the checkbox and also restarted BeagleIM just to be sure but it does not appear to make any difference.

<!--   2021-08-26T16:38:06Z   <<<<   -->
<message to='nothing4you@w.tf-w.tf/DAv78hRC' type='chat' from='nothing4you@w.tf-w.tf'>
<sent xmlns='urn:xmpp:carbons:2'>
<forwarded xmlns='urn:xmpp:forward:0'>
<message from='nothing4you@w.tf-w.tf/gajim.PXS83LRHWOGD8I9M' type='chat' xmlns='jabber:client' id='7b6c4735-145b-41b3-a45f-48c3653fd34f'>
<body>this does not show up</body>
<origin-id id='7b6c4735-145b-41b3-a45f-48c3653fd34f' xmlns='urn:xmpp:sid:0'/>
<markable xmlns='urn:xmpp:chat-markers:0'/>
<stanza-id by='nothing4you@w.tf-w.tf' xmlns='urn:xmpp:sid:0' id='99bcee4b-7ab9-4560-9cf2-2020590fb1b7'/>
</message>
</forwarded>
</sent>
</message>

<!--   2021-08-26T16:38:06Z   <<<<   -->
<message type='chat' from='nothing4you@w.tf-w.tf/gajim.PXS83LRHWOGD8I9M' id='7b6c4735-145b-41b3-a45f-48c3653fd34f'>
<body>this does not show up</body>
<origin-id xmlns='urn:xmpp:sid:0' id='7b6c4735-145b-41b3-a45f-48c3653fd34f'/>
<markable xmlns='urn:xmpp:chat-markers:0'/>
<stanza-id xmlns='urn:xmpp:sid:0' id='1add16b0-c5b7-494c-905e-721d9365b553' by='nothing4you@w.tf-w.tf'/>
</message>

<!--   2021-08-26T16:38:06Z   <<<<   -->
<r xmlns='urn:xmpp:sm:3'/>

<!--   2021-08-26T16:38:06Z   >>>>   -->
<a xmlns='urn:xmpp:sm:3' h='2371'/>
Screenshot 2021-08-26 at 18 41 41
Nothing4You commented 3 years ago

btw, to add to that, as visible in the bottom of the screenshot, pubsub messages do show up.

hantu85 commented 3 years ago

What server do you use? I'm asking as incoming message is missing to attribute and that is most likely causing the issue in your case.

Nothing4You commented 3 years ago

this is on Prosody 0.11 nightly build 133 (2021-07-23, d117b92fd8e4)

hantu85 commented 3 years ago

According to RFC 6120 https://datatracker.ietf.org/doc/html/rfc6120#section-8.1.1.1 states that for incoming stanza:

  1. A stanza with a specific intended recipient (e.g., a conversation partner, a remote service, the server itself, even another resource associated with the user's bare JID) MUST possess a 'to' attribute whose value is an XMPP address.

and for processing stanzas before sending them back to client:

  1. If the server has received the stanza from another connected client or from a peer server, the server MUST NOT modify the 'to' address before delivering the stanza to the client.

I'm pretty sure that your other clients are sending to attribute in messages sent to self and your server is removing this to attribute which is not ok according to this RFC.

@mwild1 Am I correct? I know that client may "ignore" checking to but it still may be checking and without to there is an issue.

Nothing4You commented 1 year ago

I don't know what changed since last time but it seems that this is working now with BeagleIM 5.3.1 (162) and Prosody 0.12.1.