Skip to content

Commit

Permalink
add docs to SessionMembershipData
Browse files Browse the repository at this point in the history
  • Loading branch information
toger5 committed Dec 17, 2024
1 parent cff50e3 commit 2cd6f96
Showing 1 changed file with 34 additions and 2 deletions.
36 changes: 34 additions & 2 deletions src/matrixrtc/CallMembership.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,52 @@ type CallScope = "m.room" | "m.user";
* Represents an entry in the memberships section of an m.call.member event as it is on the wire.
**/
export type SessionMembershipData = {
/**
* The RTC application defines the type of the RTC session.
*/
application: string;

/**
* The id of this session.
* A session can never span over multiple rooms so this id is to distinguish between
* multiple session in one room. A room wide session that is not associated with a user,
* and therefore immune to creation race conflicts, uses the `call_id: ""`.
*/
call_id: string;
device_id: string;

/**
* The focus selection system this user/membership is using.
*/
focus_active: Focus;

/**
* A list of possible foci this uses knows about. One of them might be used based on the focus_active
* selection system.
*/
foci_preferred: Focus[];

/**
* Optional field that contains the creation of the session. If it is undefined the creation
* is the `origin_server_ts` of the event itself. For updates to the event this property tracks
* the `origin_server_ts` of the initial join event.
* - If it is undefined it can be interpreted as a "Join".
* - If it is defined it can be interpreted as an "Update"
*/
created_ts?: number;

// Application specific data

/**
* If the `application` = `"m.call"` this defines if it is a room or user owned call.
* There can always be one room scroped call but multiple user owned calls (breakout sessions)
*/
scope?: CallScope;

/**
* Optionally we allow to define a delta to the created_ts when it expires. This should be set to multiple hours.
* The only reason it exist is if delayed events fail. (for example because if a homeserver crashes)
* Optionally we allow to define a delta to the `created_ts` that defines when the event is expired/invalid.
* This should be set to multiple hours. The only reason it exist is to deal with failed delayed events.
* (for example caused by a homeserver crashes)
**/
expires?: number;
};
Expand Down

0 comments on commit 2cd6f96

Please sign in to comment.