Opened 9 years ago

Last modified 2 years ago

#6940 new enhancement

XEP-0184: Message Receipts

Reported by: madpotato Owned by: tomkiewicz
Milestone: 3.0.0 Component: XMPP
Version: 2.5.0 Keywords: xep-0184
Cc: peppi, cyril42e, elreydetodo, pva, holizz, skliarie, amboss, lilydjwg, devurandom, binki, marsjaninzmarsa

Description (last modified by datallah)

Does pidgin/libpurple support xep-0184 (Message Receipts)? It would be nice to have, that should help the user to understand when the message is not delivered. Right now if my network connection fails, my buddies continue to see me as online, they can send me messages (which I obviously do not receive). When I'm back online, those messages are not delivered either. I have tested that with google talk account, and to be honest I can see those 'lost' messages in Gmail history, but that's a different matter. The problem is that when a person is unexpectedly disconnected, his buddies don't know that, and they can't tell if the messages were delivered.

Bottom line: message receipts need to be implemented. http://www.xmpp.org/extensions/xep-0184.html

Attachments (1)

xep-0184-beginnings.diff (1.9 KB) - added by mmcco 2 years ago.
A small, trivial patch to begin adding XEP-0184. Of course, we shouldn't actually advertise the feature until we add the code to sent receipts.

Download all attachments as: .zip

Change History (36)

comment:1 Changed 9 years ago by madpotato

By googling I could find that this protocol extension has already been implemented in Miranda, Tkabber, Bombus, maybe some others.

comment:2 Changed 9 years ago by datallah

  • Component changed from unclassified to XMPP
  • Description modified (diff)
  • Owner changed from lschiere to deryni
  • Type changed from defect to enhancement

comment:3 Changed 9 years ago by peppi

comment:4 Changed 8 years ago by cyril42e

It has also been implemented in Gajim and Psi, which are multi-platform... but not multi-protocol. This is a key feature of XMPP over MSN, and it would be great to have it implemented in a popular client such as Pidgin... Is its implementation in the roadmap ? Is it possible to implement this as a plugin ? Is it difficult ?

comment:5 Changed 8 years ago by deryni

  • Milestone set to Plugin Suggested
  • Type changed from enhancement to plugin request

A plugin can do this, and at least at the moment (given the privacy and user-interaction issues with implementations of this) I think doing this in a plugin is more appropriate than in pidgin directly.

comment:6 Changed 7 years ago by amboss

Are there any developpers working on it? Think this is a quite good XEP which should be supported (Miranda also does).

comment:7 Changed 6 years ago by Robby

Ticket #14562 has been marked as a duplicate of this ticket.

comment:8 Changed 6 years ago by unnicked

I don't think it's too hard. You need to make some corrections in XML and add to messages delivery requests "<request xmlns="urn:xmpp:receipts" />" from XEP-0184 and add output of reports to the message window. It is example:

<!-- Out -->
<message xmlns="jabber:client" to="xxxx@…" type="chat" id="190">
<body>Hello World!</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
<x xmlns="jabber:x:event">
<composing />
</x>
<request xmlns="urn:xmpp:receipts" />
<thread>Testing</thread>
</message>

<!-- In -->
<message from='xxxx@…/He11' to='yyyy@…/43erd23re312442331' xml:lang='en' id='190'>
<received xmlns='urn:xmpp:receipts' id='190'/>
</message>

comment:9 Changed 5 years ago by nalkmd

Yesss PLEASE implement this!! Im surprised 4 years and nothing done about this??

Quite often using OTR a secure message might not arrive and obviously causes some frustration when each person is thinking the other didnt reply.

It would be best if this worked without needing both clients to have plugin installed because they may be using a differnt client.

comment:10 follow-ups: Changed 5 years ago by noonien

I wrote a xep-184-compatible plugin:

https://www.assembla.com/code/pidgin-xmpp-receipts/git/nodes

There should appear a checkmark in the conversation window when a receipt has been received.

comment:11 in reply to: ↑ 10 Changed 4 years ago by amboss

Replying to noonien:

I wrote a xep-184-compatible plugin:

https://www.assembla.com/code/pidgin-xmpp-receipts/git/nodes

You did a really good job, it works fine (Linux, current pidgin version). Thank you very much.

If I see this correctly there are no really good chances that it will become a official plugin, right? :-/

comment:12 in reply to: ↑ 10 Changed 4 years ago by kolAflash

Replying to noonien:

I wrote a xep-184-compatible plugin:

https://www.assembla.com/code/pidgin-xmpp-receipts/git/nodes

There should appear a checkmark in the conversation window when a receipt has been received.

Works great!

Compiled and tested on openSUSE 12.3. Used the precompiled version on Windows XP.

Send messages from/to this clients: Pidgin version 2.10.7 with this plugin Xabber version 0.9.29a ( http://xabber.com/ ) Gajim version 0.15.4 ( http://www.gajim.org )


What's the reason this plugin isn't already distributed with pidgin by default?

What are the exact privacy and user-interaction issues mentioned by deryni in comment:5 ?

What about delivering this as a plugin but not activating it by default or putting? Even better: Put an option into the chat window that asks the user if he wants to use this function and what are the risks.


I think implementing XEP-0184 is very important! Did you ever use Xabber on a smartphone? For example using http://xabber.com/ on Android? If the data connection isn't stable a lot of messages get lost! This causes a lot of frustration and can lead to major misunderstandings in conversation, if people don't know about the lost-message problem in XMPP! Maybe additionally there should be more explanation then a simple check mark. Maybe some text like "recipience unkown" and (if confirmed by recipient) "received". Additionally put an option for advanced users to use the simple check mark instead.

comment:13 Changed 4 years ago by noonien

The only privacy issue may be some implementation of invisibility or the deniability ("I did not receive anything!").

BUT: You don't use a chat to deny incoming messages and pidgin does not support invisibility officially :)

comment:14 follow-up: Changed 4 years ago by kolAflash

I think it should be possible to let the pidgin-xmpp-receipts plugin automatically resend messages after a time.

By this it can be determinated if the target client supports xep-0184. http://xmpp.org/extensions/xep-0184.html#disco If it does support and there's no acknowledgement after 10 sec. (for example) the message will be resent. Same after 60 sec. and maybe for a last time after 10 min.

By the way: Here I also write about some that should be considered for xmpp in modern use-cases (also reliable messages). Including xep-0079 and xep-0280 https://developer.pidgin.im/ticket/15388

comment:15 in reply to: ↑ 14 Changed 4 years ago by noonien

Replying to kolAflash:

I think it should be possible to let the pidgin-xmpp-receipts plugin automatically resend messages after a time.

That is explicitly "NOT RECOMMENDED" by XEP-0184.

comment:16 follow-up: Changed 4 years ago by gn

Hi everyone,

How can I use this plugin for XEP-0184 in my Pidgin for Windows 7?

  • Where can I download it?
  • How can I enable it?
  • Does it work with OTR?

Thanks in advance.

comment:17 in reply to: ↑ 16 ; follow-up: Changed 4 years ago by noonien

Replying to gn:

Hi everyone,

How can I use this plugin for XEP-0184 in my Pidgin for Windows 7?

  • Where can I download it?

See https://www.assembla.com/spaces/pidgin-xmpp-receipts/documents

  • How can I enable it?

Copy the xmpp-receipts.dll into your profiles %APPDATA%/purple/plugins folder. Then enable it within the pidgin configuration.

  • Does it work with OTR?

It shouldn't affect encryption.

Thanks in advance.

No problem.

comment:18 in reply to: ↑ 17 Changed 4 years ago by gn

Replying to noonien:

Replying to gn:

Hi everyone,

How can I use this plugin for XEP-0184 in my Pidgin for Windows 7?

  • Where can I download it?

See https://www.assembla.com/spaces/pidgin-xmpp-receipts/documents

  • How can I enable it?

Copy the xmpp-receipts.dll into your profiles %APPDATA%/purple/plugins folder. Then enable it within the pidgin configuration.

  • Does it work with OTR?

It shouldn't affect encryption.

Thanks in advance.

No problem.

Is there any way to check that it works? (e.g. like a nice green check mark at the end of the line when the delivery confirmation is received)

comment:19 follow-up: Changed 4 years ago by noonien

There will appear a check mark (✓), but only if the receiver also supports this xmpp extension.

comment:20 in reply to: ↑ 19 Changed 4 years ago by gn

Replying to noonien:

There will appear a check mark (✓), but only if the receiver also supports this xmpp extension.

This is quite strange. I just checked that it is installed and enabled on 2 computers with Pidgin 2.10.7 installed on them through I can't see a check mark yet. Maybe I am doing something wrong. Does it work on yahoo messenger or should I be using a different messaging protocol?

comment:21 Changed 4 years ago by noonien

As you see in the bug / plugin description, this is xmpp (jabber) only.

comment:22 follow-up: Changed 4 years ago by Robby

A different venue may be better suited for support of the plugin. A whole bunch of people (including me) are subscribed to this ticket via their comments.

comment:23 in reply to: ↑ 22 ; follow-up: Changed 4 years ago by noonien

Replying to Robby:

A different venue may be better suited for support of the plugin. A whole bunch of people (including me) are subscribed to this ticket via their comments.

Sorry, I didn't expect this matter to be a big deal.

For all issues regarding the plugin itself and not pidgins missing receipt support, the plugin has its own (still empty) bug tracker:

https://www.assembla.com/spaces/pidgin-xmpp-receipts/support/tickets

Last edited 4 years ago by noonien (previous) (diff)

comment:24 in reply to: ↑ 23 Changed 4 years ago by gn

Replying to noonien:

Replying to Robby:

A different venue may be better suited for support of the plugin. A whole bunch of people (including me) are subscribed to this ticket via their comments.

Sorry, I didn't expect this matter to be a big deal.

For all issues regarding the plugin itself and not pidgins missing receipt support, the plugin has its own (still empty) bug tracker:

https://www.assembla.com/spaces/pidgin-xmpp-receipts/support/tickets

Sorry about the spam... it all works now after changing from yahoo to jabber :)

comment:25 Changed 4 years ago by devurandom

Did anyone try to get this into the distros? A Gentoo/Linux? ebuild exists [1], but is there anything for Ubuntu?

[1] https://bugs.gentoo.org/show_bug.cgi?id=490954

comment:26 follow-up: Changed 4 years ago by kolAflash

I didn't try to get it into a distro but I'd like to see it as one of Pidgin default plugins and it should also be activated by default.

I'm using this plugin daily since about 7 month and it's working perfectly!

comment:27 in reply to: ↑ 26 Changed 4 years ago by devurandom

Replying to kolAflash:

I didn't try to get it into a distro but I'd like to see it as one of Pidgin default plugins and it should also be activated by default.

The plugin is available in Gentoo/Linux? now: https://packages.gentoo.org/package/x11-plugins/pidgin-xmpp-receipts

comment:28 in reply to: ↑ 10 Changed 4 years ago by seriyps

Replying to noonien:

I wrote a xep-184-compatible plugin:

https://www.assembla.com/code/pidgin-xmpp-receipts/git/nodes

There should appear a checkmark in the conversation window when a receipt has been received.

Cool, thanks! I use it to talk with users of mobile applications (Xabber). Works great! I hope we can see it as oficial pidgin plugin.

comment:29 Changed 3 years ago by tomkiewicz

  • Milestone changed from Plugin Suggested to 3.0.0
  • Type changed from plugin request to enhancement

I am going to implement this as a core feature for 3.0.0, but I don't like the way it adds the "tick" mark (which is not going to work well with webkit). I prefer changing API to make it neatly.

comment:30 Changed 3 years ago by tomkiewicz

  • Owner changed from deryni to tomkiewicz

comment:31 Changed 3 years ago by hobarrera

Is it possible to include this into Avahi as well? Being XMPP-based, I see no issue in carrying over XMPP-extensions to it.

comment:32 Changed 3 years ago by devurandom

In case someone also wonders how to access the AppData? folder in Windows 8: Win+R and then type %APPDATA%. There will be a ".purple" folder, and the "plugins" folder has to be created within that.

comment:33 follow-up: Changed 2 years ago by mmcco

Etan, Eion, and I just had a good chat about this in the devel@ room.

Some points made:

  • As explicitly stated in the XEP's intro, these receipts only indicate that the client received the message, not (by the client's estimation) that the user actually looked at them.
  • The latter, which I like to call eyeball acks, is a feature in Hangouts, Skype, Facebook, TextSecure?, and (IIRC) iMessage. People seem to like it.
  • However:
    • it would be complicated to implement in a confidently correct manner (considering window focus, message visibility, etc.).
    • the client cannot, of course, ever conclude that the user actually read the message - just that it was visible in a focused window for at least X seconds.
    • unlike smartphones, there's the possibility that an unmanned desktop or laptop could have a focused chat window acking messages.

Ultimately, eyeball acks are a feature separate from message receipts. Etan suggested looking into XEP-0198. We should probably open a feature ticket for it.

Last edited 2 years ago by mmcco (previous) (diff)

Changed 2 years ago by mmcco

A small, trivial patch to begin adding XEP-0184. Of course, we shouldn't actually advertise the feature until we add the code to sent receipts.

comment:34 Changed 2 years ago by tomkiewicz

This task is blocking by "chat log backend and frontend" gsoc project. To be specific, it needs objectification (not "gobjectification") of the whole stack of messages - from prpl to webkit in conversation display.

I did a large part of it, but still not everything - for the UI, messages are still being represented by the bare text, not objects.

comment:35 in reply to: ↑ 33 Changed 2 years ago by noonien

Replying to mmcco:

Ultimately, eyeball acks are a feature separate from message receipts. Etan suggested looking into XEP-0198. We should probably open a feature ticket for it.

See https://developer.pidgin.im/ticket/14252

(just to make it clear: xep-198 addresses a reliable client-server connection and is totally unrelated to receipts or eyeball acks)

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!