powered by Jive Software

How to get full chat room information?

I want to provide more than a list of chat room names that users may choose to join, I’d like to include everything in that list that is known about the chat room(s).

I’m using the following code to get the information but that only works for a few fields.

DiscoverInfo discoverInfo = serviceDiscoveryManager.discoverInfo(roomJid);

Iterator<DiscoverInfo.Identity> identities = discoverInfo.getIdentities();

if (identities.hasNext()) {

chatRoomName = identities.next().getName();


passwordProtected = discoverInfo.containsFeature(MUC_PASSWORDPROTECTED);

hidden = discoverInfo.containsFeature(MUC_HIDDEN);

temporary = discoverInfo.containsFeature(MUC_TEMPORARY);

open = discoverInfo.containsFeature(MUC_OPEN);

unModerated = discoverInfo.containsFeature(MUC_UNMODERATED);

nonAnonymous = discoverInfo.containsFeature(MUC_NONANONYMOUS);

membersOnly = discoverInfo.containsFeature(MUC_MEMBERSONLY);

moderated = discoverInfo.containsFeature(MUC_MODERATED);

persistent = discoverInfo.containsFeature(MUC_PERSISTENT);

Form form = Form.getFormFrom(discoverInfo);

subject = getSubject(form);

description = getDescription(form);

occupants = getOccupants(form);

logURL = getLogURL(form);

maxHistoryFetch = getMaxHistoryFetch(form);

In particular is the Form object, it works for description and occupants but the subject is always null, yet when they join the room I get a SubjectUpdatedListener#subjectUpdated() event with the subject, so how can I get this before the user joins the room? Perhaps I’m not doing this right, how can I get all the information about chat rooms that the server has prior to joining?