Neha Nathani
Neha Nathani

Reputation: 544

create a group chat functionality in android and getting No response from server.. on muc.create()

I am able to do one to one chat through ejabbered. server setup on local successfully between devices using my Ip on wifi. But when creating a group chat as

 MultiUserChat muc = new MultiUserChat(conn1, "[email protected]");
 muc.create("testbot");

On searching I found muc.create() has problems and use muc.join() instead. But i want to create d room first. I am not sure problem is on server side or client side

http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/muc.html#create

Upvotes: 0

Views: 2020

Answers (1)

Neha Nathani
Neha Nathani

Reputation: 544

I found the solution myself. Dere were no issues in smack library instead the configure settings were missing. Copy and paste below method and call it in when logging in.

public static void configure(ProviderManager pm) {

    // Private Data Storage

    pm.addIQProvider("query", "jabber:iq:private",
            new PrivateDataManager.PrivateDataIQProvider());

    // Time

    try {

        pm.addIQProvider("query", "jabber:iq:time",
                Class.forName("org.jivesoftware.smackx.packet.Time"));

    } catch (ClassNotFoundException e) {

        Log.w("TestClient",
                "Can't load class for org.jivesoftware.smackx.packet.Time");

    }

    // Roster Exchange

    pm.addExtensionProvider("x", "jabber:x:roster",
            new RosterExchangeProvider());

    // Message Events

    pm.addExtensionProvider("x", "jabber:x:event",
            new MessageEventProvider());

    // Chat State

    pm.addExtensionProvider("active",
            "http://jabber.org/protocol/chatstates",
            new ChatStateExtension.Provider());

    pm.addExtensionProvider("composing",
            "http://jabber.org/protocol/chatstates",
            new ChatStateExtension.Provider());

    pm.addExtensionProvider("paused",
            "http://jabber.org/protocol/chatstates",
            new ChatStateExtension.Provider());

    pm.addExtensionProvider("inactive",
            "http://jabber.org/protocol/chatstates",
            new ChatStateExtension.Provider());

    pm.addExtensionProvider("gone",
            "http://jabber.org/protocol/chatstates",
            new ChatStateExtension.Provider());

    // XHTML

    pm.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im",
            new XHTMLExtensionProvider());

    // Group Chat Invitations

    pm.addExtensionProvider("x", "jabber:x:conference",
            new GroupChatInvitation.Provider());

    // Service Discovery # Items

    pm.addIQProvider("query", "http://jabber.org/protocol/disco#items",
            new DiscoverItemsProvider());

    // Service Discovery # Info

    pm.addIQProvider("query", "http://jabber.org/protocol/disco#info",
            new DiscoverInfoProvider());

    // Data Forms

    pm.addExtensionProvider("x", "jabber:x:data", new DataFormProvider());

    // MUC User

    pm.addExtensionProvider("x", "http://jabber.org/protocol/muc#user",
            new MUCUserProvider());

    // MUC Admin

    pm.addIQProvider("query", "http://jabber.org/protocol/muc#admin",
            new MUCAdminProvider());

    // MUC Owner

    pm.addIQProvider("query", "http://jabber.org/protocol/muc#owner",
            new MUCOwnerProvider());

    // Delayed Delivery

    pm.addExtensionProvider("x", "jabber:x:delay",
            new DelayInformationProvider());

    // Version

    try {

        pm.addIQProvider("query", "jabber:iq:version",
                Class.forName("org.jivesoftware.smackx.packet.Version"));

    } catch (ClassNotFoundException e) {

        // Not sure what's happening here.

    }

    // VCard

    pm.addIQProvider("vCard", "vcard-temp", new VCardProvider());

    // Offline Message Requests

    pm.addIQProvider("offline", "http://jabber.org/protocol/offline",
            new OfflineMessageRequest.Provider());

    // Offline Message Indicator

    pm.addExtensionProvider("offline",
            "http://jabber.org/protocol/offline",
            new OfflineMessageInfo.Provider());

    // Last Activity

    pm.addIQProvider("query", "jabber:iq:last", new LastActivity.Provider());

    // User Search

    pm.addIQProvider("query", "jabber:iq:search", new UserSearch.Provider());

    // SharedGroupsInfo

    pm.addIQProvider("sharedgroup",
            "http://www.jivesoftware.org/protocol/sharedgroup",
            new SharedGroupsInfo.Provider());

    // JEP-33: Extended Stanza Addressing

    pm.addExtensionProvider("addresses",
            "http://jabber.org/protocol/address",
            new MultipleAddressesProvider());

    // FileTransfer

    pm.addIQProvider("si", "http://jabber.org/protocol/si",
            new StreamInitiationProvider());

    pm.addIQProvider("query", "http://jabber.org/protocol/bytestreams",
            new BytestreamsProvider());

    pm.addIQProvider("open", "http://jabber.org/protocol/ibb",
            new IBBProviders.Open());

    pm.addIQProvider("close", "http://jabber.org/protocol/ibb",
            new IBBProviders.Close());

    pm.addExtensionProvider("data", "http://jabber.org/protocol/ibb",
            new IBBProviders.Data());

    // Privacy

    pm.addIQProvider("query", "jabber:iq:privacy", new PrivacyProvider());

    pm.addIQProvider("command", "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider());

    pm.addExtensionProvider("malformed-action",
            "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider.MalformedActionError());

    pm.addExtensionProvider("bad-locale",
            "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider.BadLocaleError());

    pm.addExtensionProvider("bad-payload",
            "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider.BadPayloadError());

    pm.addExtensionProvider("bad-sessionid",
            "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider.BadSessionIDError());

    pm.addExtensionProvider("session-expired",
            "http://jabber.org/protocol/commands",
            new AdHocCommandDataProvider.SessionExpiredError());

}

Upvotes: 2

Related Questions