docs: private void handlePacket(Stanza packet) {
          if (packet instanceof Message) {
              Message msg = (Message) packet;
              // Check to see if the user left the queue.
              ExtensionElement pe = msg.getExtension("depart-queue", "http://jabber.org/protocol/workgroup");
              ExtensionElement queueStatus = msg.getExtension("queue-status", "http://jabber.org/protocol/workgroup");
  
              if (pe != null) {
                  fireQueueDepartedEvent();
              }
              else if (queueStatus != null) {
                  QueueUpdate queueUpdate = (QueueUpdate) queueStatus;
                  if (queueUpdate.getPosition() != -1) {
                      fireQueuePositionEvent(queueUpdate.getPosition());
                  }
                  if (queueUpdate.getRemaingTime() != -1) {
                      fireQueueTimeEvent(queueUpdate.getRemaingTime());
                  }
              }
  
              else {
                  // Check if a room invitation was sent and if the sender is the workgroup
                  MUCUser mucUser = msg.getExtension("x", "http://jabber.org/protocol/muc#user");
                  MUCUser.Invite invite = mucUser != null ? mucUser.getInvite() : null;
                  if (invite != null && workgroupJID.equals(invite.getFrom())) {
                      String sessionID = null;
                      Map<String, List<String>> metaData = null;
  
                      pe = msg.getExtension(SessionID.ELEMENT_NAME,
                              SessionID.NAMESPACE);
                      if (pe != null) {
                          sessionID = ((SessionID) pe).getSessionID();
                      }
  
                      pe = msg.getExtension(MetaData.ELEMENT_NAME,
                              MetaData.NAMESPACE);
                      if (pe != null) {
                          metaData = ((MetaData) pe).getMetaData();
                      }
  
                      WorkgroupInvitation inv = new WorkgroupInvitation(connection.getUser(), msg.getFrom(),
                              workgroupJID, sessionID, msg.getBody(),
                              msg.getFrom(), metaData);
  
                      fireInvitationEvent(inv);
                  }
              }
          }
      }