You're looking at an unstable version of this specification. Unstable specifications may change at any time without notice.
Room Version 7
This room version builds on version 6 to introduce knocking as a possible join rule and membership state.
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.