Feature #611

support for Message Of The Day (MOTD)

Added by Wojciech Kapcia over 4 years ago. Updated about 20 hours ago.

Status:FeedbackStart date:2012-05-14
Priority:NormalDue date:2016-12-16
Assignee:Andrzej Wójcik% Done:

0%

Category:-
Target version:tigase-server-7.2.0
Database:n/a Source Code Disclaimer:No

Description

Ability to set/modify/remove message of the day as described in XEP-0133: Service Administration

History

#1 Updated by Artur Hefczyc over 4 years ago

  • Target version set to tigase-server-5.2.0

#2 Updated by Artur Hefczyc over 4 years ago

  • Estimated time set to 24.00

This is quite a bit of work as it requires not just ad-hoc, admin script, but also some changes in the Tigase core code, in SM.

#3 Updated by Artur Hefczyc over 4 years ago

  • Assignee set to Artur Hefczyc

#4 Updated by Artur Hefczyc almost 4 years ago

  • Target version changed from tigase-server-5.2.0 to tigase-server-5.2.1

#5 Updated by Artur Hefczyc over 2 years ago

  • Target version changed from tigase-server-5.2.1 to tigase-server-7.0.0

#6 Updated by Artur Hefczyc almost 2 years ago

  • Target version changed from tigase-server-7.0.0 to tigase-server-7.1.0
  • Source Code Disclaimer set to No

Pushed to the next version.

#7 Updated by Artur Hefczyc over 1 year ago

  • Target version changed from tigase-server-7.1.0 to tigase-server-7.2.0

#8 Updated by Artur Hefczyc 4 days ago

  • Due date set to 2016-12-16
  • Assignee changed from Artur Hefczyc to Andrzej Wójcik
  • Estimated time deleted (24.00)

Andrzej, please estimate work effort for such functionality. Based on this we will decide for which version we want to implement it.

#9 Updated by Andrzej Wójcik 4 days ago

%kobit We have our custom message broadcast feature which delivers messages in specified time frame to every logged in user only once. I wonder if we could use it here and just add adhoc command which will use this message broadcast feature. If so, then it should be easy to implement.

#10 Updated by Artur Hefczyc 3 days ago

I thought for a while about this approach too. However, this is completely different use-case. MOTD is not sent to all online users like a broadcast. It is a message which is sent to each user right away after he logins into the system and it is sent only no more than once a day. So the ad-hoc command would be only used to set the current MOTD on the server (ideally on all cluster nodes from a single command).
Therefore, I think it should/could/might be implemented in a completely different way. Maybe like kind of a processor which is executed somehow just after a user logins/binds resource/sends initial presence. However, I am not sure if processor would be the most efficient solution in this case. I think SM has some hooks for events like resource bind, initial presence, etc... which are used by the clustering strategy. Maybe MOTD could be executed from such a method or maybe from the presence plugin.

#11 Updated by Andrzej Wójcik 2 days ago

  • Assignee changed from Andrzej Wójcik to Artur Hefczyc

#13 Updated by Artur Hefczyc 1 day ago

  • Status changed from New to Feedback
  • Assignee changed from Artur Hefczyc to Andrzej Wójcik

#15 Updated by Andrzej Wójcik 1 day ago

Ok, so for now I think that use of custom message broadcast is not a good idea and may be an overkill in this case.

But we could use UserRepository to store date of last time motd was delivered for each user and add separate processor handling initial presence to send message to user. (We should use new presence processor as we need to send message to user after it sets priority as XMPP server should not send messages to clients with priority lower than 0).
And then separate adhoc script which would set MOTD in UserRepository to store for server between restarts. Additionally processor would keep this value in memory for faster access and in 7.2.0 we should have access from adhoc commands of SM to SM processors and could use this MOTD processor method to update this value. This should be good and "simple" solution from MOTD.

A similar approach we can do for JabberIqRegister processor. It can always send message to offline user which got created and this will be delivered to user after first connection and will work as a welcome message.

%kobit What do you think about this approach?

#16 Updated by Artur Hefczyc about 20 hours ago

Yes, I like both suggestions, the one for MOTD and the one for Welcome message.

Also available in: Atom PDF