You're looking at an unstable version of this specification. Unstable specifications may change at any time without notice.

Switch to the current stable release.

Room Version 7

This room version builds on version 6 to introduce knocking as a possible join rule and membership state.

Client considerations

This is the first room version to support knocking completely. As such, users will not be able to knock on rooms which are not based off v7.

Server implementation components

Room version 7 adds new authorization rules for events to support knocking. Room version 6 has details of other authorization rule changes, as do the versions v6 is based upon.

For checks perfomed upon m.room.member events, the following conditions are added in context:

If type is `m.room.member`:

...

  * If `membership` is `ban`:

    ...

  * If `membership` is `knock`:

    i. If the `join_rule` is anything other than `knock`, reject.

    ii. If `sender` does not match `state_key`, reject.

    iii. If the `sender`'s current membership is not `ban`, `invite`, or `join`, allow.

    iv. Otherwise, reject.

...

The remaining rules are the same as in room version 6.