SessionMembershipData: {
    application: string;
    call_id: string;
    created_ts?: number;
    device_id: string;
    expires?: number;
    foci_preferred: Focus[];
    focus_active: Focus;
    scope?: CallScope;
}

MSC4143 (MatrixRTC) session membership data. Represents an entry in the memberships section of an m.call.member event as it is on the wire.

Type declaration

  • application: string

    The RTC application defines the type of the RTC session.

  • call_id: 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: "".

  • Optionalcreated_ts?: number

    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"
  • device_id: string

    The Matrix device ID of this session. A single user can have multiple sessions on different devices.

  • Optionalexpires?: number

    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)

  • foci_preferred: Focus[]

    A list of possible foci this uses knows about. One of them might be used based on the focus_active selection system.

  • focus_active: Focus

    The focus selection system this user/membership is using.

  • Optionalscope?: CallScope

    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)