mirror of https://github.com/OpenVidu/openvidu.git
45 lines
2.1 KiB
Markdown
45 lines
2.1 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Room list item
|
|
|
|
Edition: CE. Each rooms list item SHALL be the room document's public projection: identity, lifecycle, node,
|
|
participant, egress and ingress counters, bandwidth, feature flags, the end cause behind the "estimated" cue, the last
|
|
stats flush, the media statistics mark and the `stale` flag of `api-conventions`, never internal id arrays,
|
|
`schemaVersion` or `expiresAt`.
|
|
Participant counters count STANDARD sessions only; `participants.unique` counts distinct STANDARD identities.
|
|
|
|
#### Scenario: Fields of an item
|
|
|
|
- **WHEN** an item is read
|
|
- **THEN** it has `sid`, `name`, `status` (`active` | `closed`), `createdAt`, `endedAt?`, `durationMs?`, `closedBy?`
|
|
(`event` | `reconciler`), `nodeId?`, `participants { sessions, unique, active, peakActive }`,
|
|
`egress { total, active }`, `ingress { sessions, active }`, `bytes { up, down }`,
|
|
`features { egress, ingress, agent, sip }`, `lastStatsAt?`, `stale?`, `mediaStats?` and no `participantSids`,
|
|
`identities` or similar array
|
|
|
|
#### Scenario: Active room
|
|
|
|
- **GIVEN** a room still open with three active STANDARD participants and one active EGRESS participant
|
|
- **WHEN** it is returned
|
|
- **THEN** `status` is `active`, `endedAt`, `durationMs` and `closedBy` are absent and `participants.active` is 3
|
|
|
|
#### Scenario: Unique identities
|
|
|
|
- **GIVEN** a closed room where STANDARD identity `alice` had three sessions, `bob` one, and an AGENT session joined
|
|
- **WHEN** it is returned
|
|
- **THEN** `participants.sessions` is 4 and `participants.unique` is 2
|
|
|
|
#### Scenario: Stale active room
|
|
|
|
- **GIVEN** the default writer batch interval of 10 s and an active room whose `lastStatsAt` is 3 minutes old at the
|
|
server's clock
|
|
- **WHEN** it is returned
|
|
- **THEN** it has `stale: true`, and an active room whose `lastStatsAt` is 20 s old has no `stale` property
|
|
|
|
#### Scenario: Room of a node without media statistics
|
|
|
|
- **GIVEN** a room document with `mediaStats: false` and `bytes { up: 0, down: 0 }`
|
|
- **WHEN** it is returned
|
|
- **THEN** it has `mediaStats: false` and `bytes { up: 0, down: 0 }`, and an item of a room without the field has no
|
|
`mediaStats` property
|