Delivery report use wrong format and doesn't work on all clients

Issue #124 resolved
LukynZ created an issue

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)

  1. Vitaly Takmazov

    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.

  2. LukynZ reporter

    There is almost 3 years old last version and that's standard. Anything differ is wrong at this time.

  3. Log in to comment