matrix-doc/proposals/4196-matrixrtc-m-call.md

78 lines
2.2 KiB
Markdown

# MSC4196: MatrixRTC voice and video conferencing application `m.call`
## Proposal
We define a MatrixRTC application type of `m.call`.
### `m.rtc.member` state event
A valid `m.rtc.member` state event with application `m.call` has the following fields in addition to the fields defined in [MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143):
- `session` required object:
- `application` required string: `m.call`
- `call_id` required string: The call ID of the session. Use `""` for a room level call.
- `scope` required string: The scope of the call. One of: `m.room`. More scopes may be added in the future.
For example:
```json5
// event type: "m.rtc.member"
// MSC3757 formatted state key: "@user:matrix.domain_xyzABCDEF10123"
{
// standard fields from MSC4143:
"member": {
"id": "xyzABCDEF10123",
"device_id": "DEVICEID",
"user_id": "@user:matrix.domain"
}
"focus_active": { ...focus_1 },
"foci_preferred": [
{ ...focus_1 },
],
"session": {
"application": "m.call",
// additional fields for m.call:
"call_id": "",
"scope": "m.room"
}
}
```
### Ringing with the `m.rtc.notify` room event
A valid `m.rtc.notify` event with application `m.call` has the following fields in addition to the fields defined in [MSC4075](https://github.com/matrix-org/matrix-spec-proposals/pull/4075):
- `session` required object: the contents of the `session` from the `m.rtc.member` event.
```json5
// event type: "m.rtc.notify"
{
"content": {
// standard fields from MSC4075:
"application": "m.call",
"m.mentions": {"user_ids": [], "room": true },
"notify_type": "notification",
"session": {
"application": "m.call",
// for application = "m.call":
"call_id": ""
}
}
}
```
## Potential issues
## Alternatives
## Security considerations
## Unstable prefix
The `m.call` application type is already within unstable prefixed entries (e.g.
`org.matrix.msc3401.call.member`) and as such doesn't need its own unstable prefix.
## Dependencies
This MSC builds on [MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143) and [MSC4075](https://github.com/matrix-org/matrix-spec-proposals/pull/4075).