Auto invite chat room's members when opened

We use Spark as a client (i believe most clients show UI when joining a room). It will have open room tab if you set it to auto-join. Also it can be easily closed accidentally when closing other chats.

Well, then it’s more likely a Spark “bug”, than Openfire.

E.g. Skype does not show a new window, nonetheless you are silently in the group chat and get notifications.

But actually we are talking about 2 cases: The thread opener wanted to send invitations on every admin “join”. You suggested an invitation send to every member on every join (resulting in the cascade you were talking about, … bad idea).

But even if sending invitations only on “admin join”, the members would get new invitations the admin joins, which doesn’t make much sense either.

Currently Openfire sends invitations when an owner adds new members to a room, which is wrong, too (as per specification).

So, generally I wanted to doubt the validity of OF-478 and also the current behavior (at least it can be switched off with xmpp.muc.skipInvites=true, I saw).

1 Like

Haven’t used Skype group chat for years, but i think i recall, that it is showing a number of new unread messages in the roster window, even if group chat window is closed. But Spark doesn’t have such feature, so the only thing notifying would be a temporary popup, which can be missed. Also there would be no visual cue that you are in the group chat at all, and no way to quit it. So i think it was by design in Spark to make it work this way.

I was suggesting, that when the room is empty and first member (or admin, or owner, depends on configuration) joins, then send invitations to all other members. Just once.

Anyway, i don’t have strong objections about invalidating this ticket and current behavior (i can’t even reproduce this somehow). Though, maybe a ticket can still stay as a feature request for a plugin, if someone would want to implement it someday. Though i doubt someone will

there are some Group Chat settings in Spark that maybe are useful? Such as highlight your name when someone says it, toast popup when someone mentions you, auto-join bookmarked group chats, etc.

None of them are useful in our situation. A group of people only has to join a group chat once per week to briefly discuss something. Auto-join was the first thing i’ve suggested to them, but then they asked if it can auto-join at a given time only Hm, maybe that’s a good feature request for Spark?

possibly. hmm, i wonder how spark would behave if one were to bookmark a room, turn on auto-join, remove that room in OF (hopefully spark doesn’t auto-remove the bookmark), then on meeting time the next week, admin creates the room from OF… maybe it will find the bookmark and auto-join then? If so, the room could probably be scripted in OF to be created on a timer…

I was curious to try. Actually it creates a room if it was destroyed and there is an auto-join bookmark If you forbid users to create rooms it then shows an error of joining the room.

darn, was hoping that would be an easy workaround.

maybe this would be a good candidate for a spark plugin… howver it would only be able to create the room and send out invites to the room on a schedule, not have people auto-join it. having peopel auto-join the newly created room would probably be best as a OF pluign since OF could create the room and auto-join a group of users, or whatever.

Actually Client Control plugin can add bookmarks with auto-join to groups of users. So, yes, OF can do this. Spark plugin is probably better than messing with OF. I think only sending out invites on schedule should be enough.

This morning i was thinking about other options in Spark. I think it can be handy to have “Invite all members” somewhere for admin/owner role. Maybe not as another context menu in the chat room. But in the Invite users dialog menu (additional button). Also in the same dialog in the Roster view, there could be a checkbox “Show only room members”. These two options can be as a workaround for admin to quickly invite all members after he joins the room (first button), or if he thinks he need only a few members, he can use that checkbox to filter the roster and quickly select members he needs.

I’ve closed the original ticket and filed new one for Spark SPARK-1575

I’m working on this… just have been pretty short on time lately.

I like your original idea about being able to schedule a future conference… I think this should just be baked in as core spark functionality in the Actions menu as part of the org.jivesoftware.spark.ui.conferences package. A button that says “Schedule a conference” and allows you to pick a future date and time.

RE: SPARK-1575, it looks like currently, if one were to SHIFT-Click or CTRL-click a bunch of users on the roster page and then while those users are still highlighted, click Start a conference from the Actions menu, then it will auto-populate their users into the invitation list. Is this similar to what you are describing? Or are you prefering to see contacts/groups on the invitation box and just be able to, say checkmark which ones you want to invite (like the broadcast page)?

Having scheduled conference would be even greater. But i didn’t even think about it as it sounds like a lot more complex feature than just pulling members from room’s user permissions table Maybe this should be a separate ticket? It would probably fit our needs 100%.

As about my ticket. In our case we often have work teams gathered from different departments, which then have to coordinate their actions, meetings. So hunting them in groups with ctrl-shift is not convenient. I thought, if you put someone as a member in member-only room, you would probably like to have an option to call all members (or part of them) with a few clicks.

Yes, i’m aware about the option to select users in the roster and then right-click and choose Start a conference, or via Actions menu. But, our groups only reflect organizational structure, and as i said our temporary collaboration teams often consist of people from different units. I thought about proposing my boss breaking this and start adding groups in Openfire for such teams, but… i don’t know. It will create more administration work for us (adding/removing groups and members), more confusion for users (same contact in several places).

And last one. I’m glad you take this, but i never meant to obligate you to do this Just posted it here as this post is relevant. Just shooting tickets into a wild as i often do

CSH wrote:

So, generally I wanted to doubt the validity of OF-478 and also the current behavior (at least it can be switched off with xmpp.muc.skipInvites=true, I saw).

Just reproduced this accidentally with Instantbird client (didn’t worked with Spark). Will have to set that property to true just in case. Can be disturbing while playing with user permissions.

wroot wrote:

And last one. I’m glad you take this, but i never meant to obligate you to do this Just posted it here as this post is relevant. Just shooting tickets into a wild as i often do

Lol, no… I see value in this for my company as well, but I have to do it on my time because mgmt doesn’t see value in it… (it’s one of those things that until you have it, you don’t really see the value).

I think the actual scheduling aspect won’t be difficult, however I’m still in the “exploritory” stage and am still figuring out how best to integrate this without disrupting existing features. Scheduling will be offloaded to the Quartz library as it handles scheduling things (in your local time) very well. The only problem is persistence of the schedule, so that we don’t lose scheduled conferences when a user exits spark or it crashes. Quartz has some nice ways to save the schedule in a database, but I don’t want to integrate this into openfire’s database and each spark having a database is overkill for one feature i think. so, i’m going to need to investigate serializing the quartz scheduling object and hope I can save it’s state that way with no issues.

I do agree, a separate ticket is probably best for this. Added SPARK-1577

Wonder, can’t Private Data Storage be used for storing schedules?

It could be possible… the quartz library wants it’s own database tables to use… but, if the scheduler object (the quartz JobStore) agrees with me serializing it (have not tested this yet), then it’s entirely possible that object could be saved on the server via Private Data Store… but, this would essentially be the same as storing it in the users %APPDATA% directory… basically a file (the serialized object) written to disk somplace is what’s needed, so that on spark launch, we can look for this file, deserialize it and use it.

Oh, nevermind. I somehow thought it would work without Spark running (sending invites) But that would also involve doing something non-standard with Openfire.

that could be done, but it would have to be either natively integrated into OF, or done as a plugin for OF. otherwise, spark will need to be running for it to send out the invites on the schedule.

oh, i get what you were saying… ie. a user “registers” a scheduled conference and then openfire sends the invites on the schedule…

hmm… could be done too… but also would require an OF plugin + a Spark plugin… and some non-standard communication between the 2…

i decided to do a native integration into spark instead of a plugin so that i can avoid doing funny stuff to the actions menu, in order for the “Schedule a conference” button to appear in the same grouping as the other conference buttons, otherwise adding a button to that menu via a plugin will, by default, add it to the bottom of the list… making it feel out of place.