Proposed XMPP Extension: Chat notification settings
The XMPP Extensions Editor has received a proposal for a new XEP. Title: Chat notification settings Abstract: This document defines an XMPP protocol extension to synchronise per- chat notification settings across different clients. URL: https://xmpp.org/extensions/inbox/notification-filter.html The Council will decide in the next two weeks whether to accept this proposal as an official XEP.
Hi, I remember that I implemented a few years ago something very similar in Movim but never standardized it, it's maybe the time to do it. Here is my way of doing it. <itemid="group@conference.movim.eu"> <conferencexmlns="urn:xmpp:bookmarks:1"name="Group"autojoin="true"> <nick>Miho</nick> <extensions> <notificationsxmlns="xmpp:movim.eu/notifications:0"notify="quoted"/> </extensions> </conference> </item> From what I see in the XEP, it's really close: <notifyxmlns='urn:xmpp:notification-settings:0'when='on-mention'/> "never", "always", "on-mention" for the XEP and "never", "always", "quoted" for my implementation. Happy to see that we came up with the same idea and proposal. Once this XEP will move forward I'll update my code to implement it accordingly :) Regards, edhelas Le 05/06/2024 à 12:50, Daniel Gultsch a écrit :
The XMPP Extensions Editor has received a proposal for a new XEP.
Title: Chat notification settings Abstract: This document defines an XMPP protocol extension to synchronise per- chat notification settings across different clients.
URL:https://xmpp.org/extensions/inbox/notification-filter.html
The Council will decide in the next two weeks whether to accept this proposal as an official XEP. _______________________________________________ Standards mailing list --standards@xmpp.org To unsubscribe send an email tostandards-leave@xmpp.org
Hi, It's a great starting point. As additional input, here's a screenshot from the notification settings screen in Slack: https://imgur.com/i6O8GNO It's probably on the upper end of features one could possibly need, but I personally do enjoy having the different option for mobile devices. Marvin On Wed, 2024-06-05 at 13:54 +0200, Timothée Jaussoin wrote:
Hi, I remember that I implemented a few years ago something very similar in Movim but never standardized it, it's maybe the time to do it. Here is my way of doing it. <item id="group@conference.movim.eu"> <conference xmlns="urn:xmpp:bookmarks:1" name="Group" autojoin="true"> <nick>Miho</nick> <extensions> <notifications xmlns="xmpp:movim.eu/notifications:0" notify="quoted"/> </extensions> </conference> </item> From what I see in the XEP, it's really close:
<notify xmlns='urn:xmpp:notification-settings:0' when='on-mention' />
"never", "always", "on-mention" for the XEP and "never", "always", "quoted" for my implementation.
Happy to see that we came up with the same idea and proposal. Once this XEP will move forward I'll update my code to implement it accordingly :)
Regards,
edhelas
Le 05/06/2024 à 12:50, Daniel Gultsch a écrit :
The XMPP Extensions Editor has received a proposal for a new XEP.
Title: Chat notification settings Abstract: This document defines an XMPP protocol extension to synchronise per- chat notification settings across different clients.
URL: https://xmpp.org/extensions/inbox/notification-filter.html
The Council will decide in the next two weeks whether to accept this proposal as an official XEP. _______________________________________________ Standards mailing list -- standards@xmpp.org To unsubscribe send an email to standards-leave@xmpp.org
Standards mailing list -- standards@xmpp.org To unsubscribe send an email to standards-leave@xmpp.org
Hi, Le mercredi 5 juin 2024, 14:15:21 UTC+2 Marvin W a écrit :
Hi,
It's a great starting point. As additional input, here's a screenshot from the notification settings screen in Slack: https://imgur.com/i6O8GNO It's probably on the upper end of features one could possibly need, but I personally do enjoy having the different option for mobile devices.
Indeed, and not only for mobile, one may want different kind of notifications depending on hours etc. I think this can be done with future XEP (e.g. to have notification rules filtered by the kind of device). Maybe this could be anticipated in this specification by allowing explicitly several <notify/> elements? Also, it would be nice to have this working with pubsub, notably for blogging/ comments: it would be great to specify how we want to be notified when somebody mention you in a comment. But this is not about this protoXEP, it's about PEP native bookmarks which only accept <conference> so far. Anyway it's a good start, and it's simple which is good. Best, Goffi
URL: https://xmpp.org/extensions/inbox/notification-filter.html
This seems to introduce a new child-less XML element with only attributes and no content. These are a common XML anti-pattern I think we probably shouldn't encourage more of. Two alternatives: <never xmlns='urn:xmpp:notification-settings:0' /> <notify xmlns='urn:xmpp:notification-settings:0'>never</notify> Seperate from this concern, in my client I have a fourth possible notification setting "on reply", which I think it would be useful to represent.
Thanks for the feedback! ♥
Once this XEP will move forward I'll update my code to implement it accordingly :)
Cool! I did not mention it but (with lovetox's approbation) I will probably implement it in gajim, and certainly in slidge too (although it will require privileged entity support for it to work, and allowing slidge to subscribe to your relevant PEP node(s)).
fourth possible notification setting "on reply"
From the business rules:
The "on-mention" notification SHOULD rely on the user's nickname being spelled out in an incoming message in a group-chat, but MAY rely on other mechanism to "ping" the user, such as a Message Replies (XEP-0461) <https://xmpp.org/extensions/xep-0461.html> or Message Reactions (XEP-0444) <https://xmpp.org/extensions/xep-0444.html> element referring a user's previous message.
I can see use cases for "on-reply" vs "on-mention" but only because we don't have "explicit mention/pings" used yet, ie, no way of writing the nickname of someone with no intent on pinging them (or it's just not implemented in clients I use). Also, thinking about it more, maybe a reaction to a message should not be considered a mention, in large group chats especially, we probably don't want that. Maybe I should change this to:
The "on-mention" notification MAY rely on the user's nickname being spelled out in an incoming message in a group-chat, but SHOULD rely on an explicit mechanism to "ping" the user, such as a Message Replies (XEP-0461) <https://xmpp.org/extensions/xep-0461.html> [2 <https://nicoco.fr/xep-notification-filter.html#nt-idm52>] referring a user's previous message or <future XEP for mentions with explicit ping intent>.
different option for mobile devices > child-less XML element Maybe this could be anticipated in this specification by allowing explicitly several <notify/> elements?
So maybe we could have: <notify xmlns='urn:xmpp:notification-settings:0'> <never context='mobile' /> <on-mention context='desktop' /> </notify> The context attribute would be optional if there is only child but required if there are several ones. And (notif-setting, context) pairs MUST be unique (can we express that in them schema?).
different kind of notifications depending on hours
What do you say if we allow context = 'mobile', 'desktop' or 'advanced', with 'advanced' meaning that rules are defined as children of the element, eg <always context='advanced'> <when day="monday" xmlns='custom:namespace-0:0'> <start>9:00</start> <end>17:00</end> </when> <something-very-advanced xmlns='custom:namespace-1:0' type='super-subtle' /> </always> We could make that similar to bookmarks extensions in the sense that clients MUST preserve what's in there, especially if they don't understand the content? -- nicoco
Hi Nicolas, Le jeudi 6 juin 2024, 09:47:17 UTC+2 Nicolas Cedilnik a écrit :
What do you say if we allow context = 'mobile', 'desktop' or 'advanced', with 'advanced' meaning that rules are defined as children of the element, eg <always context='advanced'> <when day="monday" xmlns='custom:namespace-0:0'> <start>9:00</start> <end>17:00</end> </when> <something-very-advanced xmlns='custom:namespace-1:0' type='super-subtle' /> </always>
We could make that similar to bookmarks extensions in the sense that clients MUST preserve what's in there, especially if they don't understand the content?
That could do it. My main concern is to let the door open for extensions, and describing that clients MUST preserve as you suggest seems OK to me. You should also specify what to do with unknown "<context>" (do we "ignore" the notification rule? Do we just ignore the context?). Also with your system, we can't specify at the same time "desktop/mobile" and advanced. And I would like to say something like "notify me for my office chats on my mobile during working hours, otherwise silence them". I would actually put "mobile" and "desktop" in child elements of <context> (or whatever name used for filtering. Also, if several rules are allowed, we have to manage conflict: what if I have something which tell me to notify me for a room on mobile, and just after something telling me the opposite? I suppose that the latter one must be used, but it should be specified. Best, Goffi
Hi all, I updated https://nicoco.fr/xep-notification-filter.html and the github PR accordingly to the list feedback. Unless I forgot something, I think the only thing I did not incorporate (yet?) is the "on-mention"/"on-reply" distinction singpolyma suggested. I'm not 100% against adding it, but I think it falls under the "advanced" use case that this specification allows as children of the dedicated element. Let me know if your concerns have been addressed in this latest revision and if you have any other comments, suggestions, or anything else to add! Cheers, -- nicoco
participants (6)
-
Daniel Gultsch -
Goffi -
Marvin W -
Nicolas Cedilnik -
Stephen Paul Weber -
Timothée Jaussoin