- changed status to resolved
Delivery report use wrong format and doesn't work on all clients
Psi+ (and probably Psi itself) and Xabber are affected as far as I am able to test. JTalk doesn't show succesful message delivery from them. From QIP and Miranda it's ok.
By this XEP standard: http://xmpp.org/extensions/xep-0184.html EVERY <message> has it's own unique ID and this ID should be in <recieved> tag as confirmation what message is confirmed.
Let's see how looks communication between clients I was able to test it
---------- psi+ -> jtalk ----------
<message type="chat" to="lukyn.z@jabbim.cz/Android" id="ac5fa"> <body>test</body> <active xmlns="http://jabber.org/protocol/chatstates"/> <request xmlns="urn:xmpp:receipts"/> </message>
<message from="lukyn.z@jabbim.cz/Android" to="lukyn.z@jabbim.cz" id="ac5fa"> <received xmlns="urn:xmpp:receipts"/> </message>
JTalk reply in wrong format. Confirmation <message> has same ID like chat <message> and <recieved> tag has no ID. However Psi+ show this message as delivered (probably hack to avoid client bugs and other clients has it too)
---------- jtalk -> psi+ ----------
<message from="lukyn.z@jabbim.cz/Android" type="chat" to="lukyn.z@jabbim.cz/Gentoo" id="1385296573393"> <body>Test</body> <request xmlns="urn:xmpp:receipts"/> </message>
<message to="lukyn.z@jabbim.cz/Android" id="ac62a"> <received xmlns="urn:xmpp:receipts" id="1385296573393"/> </message>
Psi+ reports in right standard format: <message> has unique ID and <recieved> has ID from chat message. However jTalk doesn't show message as delivered.
---------- psi+ -> xabber ----------
<message type="chat" to="xxx@gmail.com" id="ac95a"> <body>test</body> <active xmlns="http://jabber.org/protocol/chatstates"/> <request xmlns="urn:xmpp:receipts"/> </message>
<message from="xxx@gmail.com/androidT9c1314C8BC" to="lukyn.z@jabbim.cz/Gentoo" id="6743J-366"> <received xmlns="urn:xmpp:receipts" id="ac95a"/> <nos:x xmlns:nos="google:nosave" value="disabled"/> <arc:record xmlns:arc="http://jabber.org/protocol/archive" otr="false"/> </message>
Right standards like Psi+, no confirmation on jTalk
---------- psi+ -> qip ----------
<message type="chat" to="xxx@jabbim.cz" id="ac93a"> <body>test</body> <active xmlns="http://jabber.org/protocol/chatstates"/> <request xmlns="urn:xmpp:receipts"/> </message>
<message from="xxx@jabbim.cz/QIP" xml:lang="ru" to="lukyn.z@jabbim.cz/Gentoo" id="ac93a"> <received xmlns="urn:xmpp:receipts"/> </message>
QIP use same wrong format like jTalk and jTalk is able to show confirmation.
---------- psi+ -> miranda ----------
<message type="chat" to="xxx@gmail.com" id="ac91a"> <body>test</body> <active xmlns="http://jabber.org/protocol/chatstates"/> <request xmlns="urn:xmpp:receipts"/> </message>
<message from="xxx@gmail.com/Micro MiraB5207B98" to="lukyn.z@jabbim.cz/Gentoo" id="ac91a"> <received xmlns="urn:xmpp:receipts" id="ac91a"/> <nos:x xmlns:nos="google:nosave" value="disabled"/> <arc:record xmlns:arc="http://jabber.org/protocol/archive" otr="false"/> </message>
Miranda use half-wrong format. Hase same <message> ID and <revieved> ID. jTalk show it as delivered.
How we can see...only Xabber and Psi+ use the right standard format, other clients are wrong or half-wrong. This looks like jTalk watch only <message> ID for confirmation and it's very wrong. It should check only <recieved> ID and use unique <message> ID in reply. Other clients need to fix it too (qip absolutely).
I set priority to critical 'cause delivery report is really critical feature on mobile devices as there are wifi and call drops.
Comments (4)
-
repo owner -
It is not "half-wrong" format, different clients implement different versions on XEP-0184. However, it is possible to be compatible with old and new.
-
reporter There is almost 3 years old last version and that's standard. Anything differ is wrong at this time.
-
repo owner - removed version
Removing version: 0.47.1 (automated comment)
- Log in to comment
jTalk will use half-wrong format (temporarily, for compatibility).