Skip to content

Commit 8c1340a

Browse files
committed
add note about this relying on MSC3757
1 parent b2b4e5e commit 8c1340a

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

proposals/4143-matrix-rtc.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# MSC4143: MatrixRTC
22

3-
This MSC defines the modules with which the matrix real time system is build with.
3+
This MSC defines the modules with which the matrix real time system is build.
44

55
The MatrixRTC specification is separated into different modules.
66

77
- The MatrixRTC room state that defines the state of the real time application.\
8-
It is the source of truth for:
8+
It is the source of truth for:
99
- Who is part of a session
1010
- Who is connected via what technology/backend
1111
- Metadata per device used by other participants to decide whether the streams
12-
from this source are of interest / need to be subscribed.
12+
from this source are of interest / need to be subscribed.
1313
- The RTC backend.
1414
- It defines how to connect the participating peers.
1515
- Livekit is the standard for this as of writing.
1616
- Defines how to connect to a server/other peers, how to update the connection,
17-
how to subscribe to different streams...
17+
how to subscribe to different streams...
1818
- Another planned backend is a full mesh implementation based on MSC3401.
1919
- The RTCSession types (application) have their own per application spec.
2020
- Calls can be done with an application of type `m.call` see (TODO: link call msc)
@@ -57,6 +57,13 @@ A complete `m.rtc.member` state event looks like this:
5757
}
5858
```
5959

60+
> [!NOTE]
61+
> This relies on [MSC3757](https://github.com/matrix-org/matrix-spec-proposals/pull/3757).
62+
> We need to have one state event per device, hence multiple "non-overwritable" state
63+
> events per user.
64+
>
65+
> More specifically this uses the approach outlined in this [comment](https://github.com/matrix-org/matrix-spec-proposals/pull/3757#issuecomment-2099010555).
66+
6067
giving us the information, that user: `@user:matrix.domain` with device `DEVICEID`
6168
is part of an RTCSession of type `m.call` in the scope/sub-session `""` (empty
6269
string as call id) connected over `FOCUS_A`. This is all information that is needed
@@ -75,8 +82,8 @@ Based on the value of `m.application`, the event might include additional parame
7582
required to provide additional session parameters.
7683

7784
> A thirdRoom like experience could include the information of an approximate position
78-
on the map, so that clients can omit connecting to participants that are not in their
79-
area of interest.
85+
> on the map, so that clients can omit connecting to participants that are not in their
86+
> area of interest.
8087
8188
#### Historic sessions
8289

@@ -86,12 +93,12 @@ historic sessions need to be computed and most likely cached on the client.
8693
Each state event can either mark a join or leave:
8794

8895
- join: `prev_state.m.application != current_state.m.application` &&
89-
`prev_state.m.call_id != current_state.m.call_id` &&
90-
`current_state.m.application != undefined`
96+
`prev_state.m.call_id != current_state.m.call_id` &&
97+
`current_state.m.application != undefined`
9198
(where an empty `m.rtc.member` event would imply `state.m.application == undefined`)
9299
- leave: `prev_state.m.application != current_state.m.application` &&
93-
`prev_state.m.call_id != current_state.m.call_id` &&
94-
`current_state.m.application == undefined`
100+
`prev_state.m.call_id != current_state.m.call_id` &&
101+
`current_state.m.application == undefined`
95102

96103
Based on this one can find user sessions. (The range between a join and a leave
97104
event) of specific times.
@@ -121,8 +128,8 @@ participants is explained.
121128

122129
- [`livekit`](www.example.com) TODO: create `livekit` focus MSC and add link here.
123130
- [`full_mesh`](https://github.com/matrix-org/matrix-spec-proposals/pull/3401)
124-
TODO: create `full-mesh` focus MSC based on[MSC3401](https://github.com/matrix-org/matrix-spec-proposals/pull/3401)
125-
and add link here.
131+
TODO: create `full-mesh` focus MSC based on[MSC3401](https://github.com/matrix-org/matrix-spec-proposals/pull/3401)
132+
and add link here.
126133

127134
### The RTCSession types (application)
128135

@@ -146,5 +153,7 @@ defined:
146153
- [`m.call`](www.example.com) TODO: create `m.call` MSC and add link here.
147154

148155
## Potential issues
156+
149157
## Alternatives
150-
## Security considerations
158+
159+
## Security considerations

0 commit comments

Comments
 (0)