On 1/5/2012 10:30 AM, Dave Cridland wrote:
I think the arguments will be found in the archives.

XEP-0280 version 0.1 was marked as deferred on Jun 27, 2011, and then it was updated to version 0.2 on July 10, 2011, which introduced the wrapping. Between these two dates, I don't see any discussion about it on the standards mailing list, though there was some discussion about version 0.2 which led to version 0.3 one day later.

However, RFC 6120 defined what the to and from attributes mean, and an extension can't really change this - I think it breaks too many assumptions with third-party software such as guards and other Layer-7 filtering devices. Such things do exist, and are deployed.

This would only apply to outbound messages. RFC 6120 allows inbound messages where the bare JID for 'to' matches but the full JID does not match.

For outbound messages, nothing explicitly says an extension MUST NOT do self fan-out (w/o wrapping the message) in addition to following the rules in RFCs 6120/1. But an implementation note in RFC 6120, 8.1.1.1 seems to imply that the recipient's bare JID must match the bare JID in the stanza's 'to' attribute. It may not hurt to more explicitly spell this restriction out in somewhere other than an implementation note, since self fan-out is a legitimate use case (whereas sending the stanza to a random person is probably not a legitimate use case).

---

This also leads back to why I don't think we need to take a dependency on message forwarding. Forwarding is more "complex" because the forwarded recipient can be anyone, and the message can be forwarded at any time. Whereas with carbons, the only use case is for fan-out to other resources of the sender (or recipient if we wrap those carbons, too), and the carbons are delivered at the same time as the original message. The only use case for carbons, sender(/recipient) fan-out, is different than the expected use case for forwarding, forwarding to a 3rd party other than the sender or recipient. The business rules for message forwarding suggest that chat state notifications may be omitted, whereas the business rules for carbons intentionally keep them.

Thus, for carbons, it may make sense to use a more targeted, simpler solution. Not only would the UI experience be different for 3rd-party forwarding compared to fanout, but it would be unfortunate if carbons were stuck as an experimental XEP simply because the forwarding XEP was still experimental due to points of contention or use cases which are inapplicable to carbons.

As a client developer, of sorts, on occasion, I'd hate to have logic that tried to guess whether this was a message for me, or a message I'd sent to something else. I'd really hate it, actually.

I likely will concede the original point on a 'to' not matching your bare JID anyway, but strictly for carbons this wouldn't be an issue. Your filter would simply check both 'to' and 'from' for a matching bare JID instead of just the 'to'.

Reply via email to