Šimon Brandner 3 weeks ago committed by GitHub
commit 7f0bf66c53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,68 @@
# MSC3417 Call room room type
[MSC3401](https://github.com/matrix-org/matrix-doc/pull/3401) defines how native
Matrix group calls can work. It allows for immersive voice/video/call rooms.
[MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) is a proposal for
Matrix spaces. A part of this proposal is a way to specify a room type.
We should use the `type` field in the `m.room.create` state event to inform
clients about the fact a room is a call room.
## Proposal
This MSC proposes that when creating a call room the `type` field in the
`m.room.create` state event should be set to `m.call`. This way clients can
clearly distinguish between regular chat rooms and call rooms.
In the case of the `m.intent` field in MSC3401's `m.call` state event getting out of
sync with the the `type` field in the `m.room.create` state event, the
information from the `m.room.create` state event is used instead.
### Example
```HTTP
POST /_matrix/client/r0/createRoom
{
"preset": "private_chat",
"name": "The Grand Duke Pub",
"topic": "All about happy hour",
"creation_content": {
"m.federate": false,
"type": "m.call",
}
}
```
## Potential issues
The `m.intent` field in the `m.call` state event could get out of sync with the
value of `type` in the `m.room.create` state event.
## Alternatives
### Using the `m.call` state event
Clients could look for the `m.call` state event and its `m.intent` field though
this feels weird as the room type feels like the place where we should put this.
It also is mutable which isn't ideal (see next section).
### Using the `m.room.type` state event
[MSC1840](https://github.com/matrix-org/matrix-doc/pull/1840) proposes a
different way to give rooms types. While we could use the `m.room.type` state
event, it is mutable which we'd like to avoid in the case of call rooms. Clients
supporting call rooms will present the chat in those rooms as secondary or not
present it at all, so it is beneficial for this to be immutable so that the chat
history isn't "lost" when changing the room type.
## Additional notes
[MSC3088](https://github.com/matrix-org/matrix-doc/pull/3088) proposes a way for
room subtyping, this could be used in the future for things such as stage rooms,
though that isn't the focus of this MSC.
## Unstable prefix
|Stable |Unstable |
|--------|-------------------------|
|`m.call`|`org.matrix.msc3417.call`|
Loading…
Cancel
Save