Hi,
In example 4 there is already a `<fallback>`
element.
Concerning setting the body to "/me retracted this message", using
`/me` is a nice touch, but the rest doesn't make sense to me, since
that is not the message being retracted, but rather a previous one,
and non-supporting clients have no way of knowing which one that was.
So I think it can only be something like "/me retracted a previous
message, but it's unsupported by your client."
You can use both the fallback and a XEP-0308 <replace>, so that non
XEP-0424-supporting (but XEP-0308-supporting) clients will effectively
edit the deleted message. It works nicely in practice. However, this is
not strictly legal by XEP-0308 if this is not the last message that was
sent. Also, YMMV but retracting the last message that was sent is the
most common use case, for me at least. ("oops, wrong chat" and "oops,
what I just posted actually didn't make any sense, forget about it")
Example stanza:
<message type="chat" from="juliet(a)aim.shakespeare.lit/slidge"
to="romeo(a)montague.lit"> <body>/me retracted this message</body>
<active
xmlns="http://jabber.org/protocol/chatstates" /> <store
xmlns="urn:xmpp:hints" /> <fallback xmlns="urn:xmpp:fallback:0"
for="urn:xmpp:message-retract:1" /> <retract
xmlns="urn:xmpp:message-retract:1" id="old_msg_id" /> <replace
id='old_msg_id' xmlns='urn:xmpp:message-correct:0' /> </message>
I will be slightly more annoying to implement if we switch to using stanza-id instead of
origin-id (since XEP-0308 requires message@id which is == origin-id most of the time).
-- nicoco