Hello. The filtering/intercepting functionality seems nice for IQ stanzas, but I have doubts about some of the use cases.
"Invisibility" as defined by this spec would certainly ease it's handling by both client and server, but is changes the meaning of available and unavailable presence stanzas. That means servers that support SIFT will understand them differently than servers that do not. Also, if I understand it correctly, the empty sift query means "don't filter anything" and not "send me all now". If you use it as an "on" switch, you are overloading it's functionality. The second (possible) problem is that when you use it to filter messages (which you can do by negative priority), your contacts wouldn't know it. If you have negative priority, everyone sees you can't receive messages. That is not the case here. I think the spec should at least define an error response to notify sender the entity can't receive messages. And to be complete, I'd appreciate an example of "excepting" multiple payload types for IQ's. Thanks :)