title: MultipleChatUser XMPP asmack join
body: <p>I am new to this OpenFire and asmack, i want the user to have a functionality of Multi Users Chatting so i searched around and i found MUC i have implemented this for creating a room and sending invitation to other users these works, other user receives the invitation but the other user is not able to join the room.</p>
  
  <p>I am doing this on other user invitation receiving</p>
  
  <p>Here connection is the connection of this user and room is the room name that we getting in invitation.</p>
  
  <p><strong>MultiUserChat muc3 = new MultiUserChat(connection,room);</strong></p>
  
  <p><strong>muc3.join("testbot3");</strong></p>
  
  <p>testbot3 is just some random name.</p>
  
  <p><strong>But this throws 404 error.</strong></p>
  
  <p>Do i need to join the user before sending the invitation i.e if A user sending invitation to B , before invitation sent do A needs to join these users by default to room and then it depends on B to decline or just keep quite.</p>
  
  <p>What i am doing is B receives invitation from A in that InvitationListner of B i am trying to join with the above code.</p>
  
  <p>I have been trying for long now i am not sure what is going wrong, some one can give a sample code of how to do this it would be great help for me.</p>
  
  <p>Thanks</p>
  
  <p>Here is more information on my issue</p>
  
  <p>As i go and check on Openfire i can see the room created by the user and he has been added himself as an owner so i dont think so it would be an issue with room getting created.</p>
  
  <p><em><strong>May be this can be an issue with room getting locked, as i have read through the room is locked when the room is not completely created , i guess this is an issue with form filling when we create the room, i am not filling in the password in the form can this be an issue ?</em></strong></p>
  
  <p><strong>Please see the following code below inside the handler i am calling a method "checkInvitation" which does the same as above code posted still i get 404. Can you please tell me what i wrong in my code.</strong></p>
  
  <p>Do the nickname that needs to be added can be anything or it needs to something user specific ?</p>
  
  <p>public void createChatroom(){</p>
  
  <pre><code>    MultiUserChat muc = null;
  
      try {
        muc = new MultiUserChat(connection, "myroom@conference.localhost");
        muc.create("testbot");
  
        // Get the the room's configuration form
        Form form = muc.getConfigurationForm();
        // Create a new form to submit based on the original form
        Form submitForm = form.createAnswerForm();
        // Add default answers to the form to submit
        for (Iterator fields = form.getFields(); fields.hasNext();) {
            FormField field = (FormField) fields.next();
            if (!FormField.TYPE_HIDDEN.equals(field.getType()) &amp;&amp; field.getVariable() != null) {
                // Sets the default value as the answer
                submitForm.setDefaultAnswer(field.getVariable());
            }
        }
        // Sets the new owner of the room
        List owners = new ArrayList();
        owners.add("admin@localhost");
        submitForm.setAnswer("muc#roomconfig_roomowners", owners);
        // Send the completed form (with default values) to the server to configure the room
        muc.sendConfigurationForm(submitForm);
        muc.join("d");
  
        muc.invite("b@localhost", "Meet me in this excellent room");
  
        muc.addInvitationRejectionListener(new InvitationRejectionListener() {
            public void invitationDeclined(String invitee, String reason) {
                // Do whatever you need here...
                System.out.println("Initee "+invitee+" reason"+reason);
            }
        });
  
      } catch (XMPPException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
  }
  
      public void setConnection(XMPPConnection connection) {
      this.connection = connection;
      if (connection != null) {
          // Add a packet listener to get messages sent to us
          PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
          connection.addPacketListener(new PacketListener() {
              public void processPacket(Packet packet) {
                  Message message = (Message) packet;
                  if (message.getBody() != null) {
                      String fromName = StringUtils.parseBareAddress(message
                              .getFrom());
                      Log.i("XMPPClient", "Got text [" + message.getBody()
                              + "] from [" + fromName + "]");
                      messages.add(fromName + ":");
                      messages.add(message.getBody());
                      // Add the incoming message to the list view
                      mHandler.post(new Runnable() {
                          public void run() {
                              setListAdapter();
                              checkInvitation();
                          }
                      });
                  }
              }
          }, filter);
  
  
          mHandler.post(new Runnable() {
              public void run() {
                  checkInvitation();
              }
          });
      }
  }
  </code></pre>