I've added "mod_offline" to my list of disabled modules. So my users
can't send messages to offline contacts. Last week I noticed that when I
send a message to an offline contact (that are hosted on my prosody
server) my Jabber Client does not tell me that the message could not
delivered. It happens nothing. When I send messages to offline contacts
that are *not* hosted on prosody I get a error message (service unavailable).
After some investigation off the XML logs I see a slightly difference:
the body tag is missing in the Prosody response. I believe that this is
the point because my client is not telling me an error message.
Here is the response that I get from offline contacts that are hosted on
other services:
<message from="foo@bar.cohm" type="error" id="aaefa" to="bar@foo.com/Psi+">
<body>my test message</body>
<error type="cancel" code="503">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</message>
and here is the response from prosody:
<message from="foo@bar.com" type="error" id="aaf9a" to="bar@foo.com/Psi+">
<error type="cancel">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</message>
On the first response my Jabber Clients (Gajim and Psi+) are telling me
that the service is unavailable. On the prosody response it happens nothing.
Could it be possible that you add the <body> tag to the response?
MattJ
on
Any clients expecting to find a body tag are behaving incorrectly. As documented in RFC6120 section 8.3.1 point 6 ( http://xmpp.org/rfcs/rfc6120.html#stanzas-error-rules ):
"the originating entity MUST NOT depend on receiving the original payload"
A patch to special-case inclusion of the <body> tag in message errors is attached.
I've added "mod_offline" to my list of disabled modules. So my users can't send messages to offline contacts. Last week I noticed that when I send a message to an offline contact (that are hosted on my prosody server) my Jabber Client does not tell me that the message could not delivered. It happens nothing. When I send messages to offline contacts that are *not* hosted on prosody I get a error message (service unavailable). After some investigation off the XML logs I see a slightly difference: the body tag is missing in the Prosody response. I believe that this is the point because my client is not telling me an error message. Here is the response that I get from offline contacts that are hosted on other services: <message from="foo@bar.cohm" type="error" id="aaefa" to="bar@foo.com/Psi+"> <body>my test message</body> <error type="cancel" code="503"> <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> </error> </message> and here is the response from prosody: <message from="foo@bar.com" type="error" id="aaf9a" to="bar@foo.com/Psi+"> <error type="cancel"> <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> </error> </message> On the first response my Jabber Clients (Gajim and Psi+) are telling me that the service is unavailable. On the prosody response it happens nothing. Could it be possible that you add the <body> tag to the response?
Any clients expecting to find a body tag are behaving incorrectly. As documented in RFC6120 section 8.3.1 point 6 ( http://xmpp.org/rfcs/rfc6120.html#stanzas-error-rules ): "the originating entity MUST NOT depend on receiving the original payload" A patch to special-case inclusion of the <body> tag in message errors is attached.
AttachmentsI opened an issue at Psi+ (https://code.google.com/p/psi-dev/issues/detail?id=588) and Gajim (https://trac.gajim.org/ticket/7798)
Can we close this?
https://github.com/psi-im/psi/issues/104
ChangesClosing!
Changes