code: def join(self, password=None, history_maxchars = None,
              history_maxstanzas = None, history_seconds = None, history_since = None):
          
          if self.joined:
              raise RuntimeError("Room is already joined")
          p=MucPresence(to_jid=self.room_jid)
          p.make_join_request(password, history_maxchars, history_maxstanzas,
                  history_seconds, history_since)
          self.manager.stream.send(p)
docs: Send a join request for the room.
  
          :Parameters:
              - `password`: password to the room.
              - `history_maxchars`: limit of the total number of characters in
                history.
              - `history_maxstanzas`: limit of the total number of messages in
                history.
              - `history_seconds`: send only messages received in the last
                `history_seconds` seconds.
              - `history_since`: Send only the messages received since the
                dateTime specified (UTC).
          :Types:
              - `password`: `unicode`
              - `history_maxchars`: `int`
              - `history_maxstanzas`: `int`
              - `history_seconds`: `int`
              - `history_since`: `datetime.datetime`