Skip to content
This repository has been archived by the owner on Aug 16, 2023. It is now read-only.

Commit

Permalink
Add agent reader & writer config endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
feymartynov committed Mar 30, 2021
1 parent 736e16b commit 256bd96
Show file tree
Hide file tree
Showing 31 changed files with 2,991 additions and 45 deletions.
Binary file modified docs/data/conference.schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/data/conference.schema.xml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<mxfile modified="2020-07-08T19:58:10.575Z" host="app.diagrams.net" agent="5.0 (Macintosh)" etag="BTe2pN7ckRQpljdUa32l" version="13.4.0" type="device"><diagram id="oY3ui7ZUPCmgsgYIyXuZ" name="Page-1">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</diagram></mxfile>
<mxfile modified="2021-03-19T05:07:47.385Z" host="app.diagrams.net" agent="5.0 (Macintosh)" etag="O_ob6If4-mYaeSuaFBPp" version="14.4.3" type="device"><diagram id="oY3ui7ZUPCmgsgYIyXuZ" name="Page-1">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</diagram></mxfile>
8 changes: 7 additions & 1 deletion docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- [Delete](api/room/delete.md)
- [Enter](api/room/enter.md)
- [Leave](api/room/leave.md)
- [Message](api/message/md)
- [Message](api/message.md)
- [Broadcast](api/message/broadcast.md)
- [Unicast](api/message/unicast.md)
- [Callback](api/message/callback.md)
Expand All @@ -25,4 +25,10 @@
- [List](api/rtc_stream/list.md)
- [Agent](api/agent.md)
- [List](api/agent/list.md)
- [Agent Reader Config](api/agent_reader_config.md)
- [Update](api/agent_reader_config/update.md)
- [Read](api/agent_reader_config/read.md)
- [Agent Writer Config](api/agent_writer_config.md)
- [Update](api/agent_writer_config/update.md)
- [Read](api/agent_writer_config/read.md)
- [Errors](api/errors.md)
20 changes: 20 additions & 0 deletions docs/src/api/agent_reader_config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Agent Reader Config

Each agent sets his own config for each writer so he can mute writers selectively just for himself.

## Properties

Name | Type | Default | Description
------- | -------- | ---------- | ------------------------------------------
room_id | uuid | _required_ | The **Room** identifier.
configs | [object] | [] | The list of **Agent Reader Config Items**.

# Agent Reader Config Item

## Properties

Name | Type | Default | Description
------------- | -------- | ---------- | ----------------------------------------------
agent_id | agent_id | _required_ | Writer identifier which the config applies to.
receive_video | bool | true | Whether to receive video from the writer.
receive_audio | bool | true | Whether to receive audio from the writer.
25 changes: 25 additions & 0 deletions docs/src/api/agent_reader_config/read.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Read

Retrieve own **Agent Reader Config** state.



## Multicast request

**Properties**

Name | Type | Default | Description
---------------- | ------ | ---------- | ----------------------------------
method | String | _required_ | Always `agent_reader_config.read`.

**Payload**

Name | Type | Default | Description
------- | ---- | ---------- | --------------------
room_id | Uuid | _required_ | The room identifier.



## Unicast response

If successful, the response payload contains a requested **Agent Reader Config** state.
31 changes: 31 additions & 0 deletions docs/src/api/agent_reader_config/update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Update

Update or initialize own **Agent Reader Configs** in bulk.
Configs get merged into the current state so one may send only diffs.

One must enter the room first and the room must be opened.

The room must have `owned` RTC sharing policy.

The writer for which we want to apply config for must have created an owned RTC in the room.

## Multicast request

**Properties**

Name | Type | Default | Description
---------------- | ------ | ---------- | ----------------------------------------
method | String | _required_ | Always `agent_reader_connection.update`.

**Payload**

Name | Type | Default | Description
------- | -------- | ---------- | ----------------------------------------------
room_id | uuid | _required_ | The **Room** identifier.
configs | [object] | [] | Array of **[Agent Reader Config Item](../agent_reader_config.html#agent-reader-config-item)** objects.

## Unicast response

If successful, the response payload contains current
**[Agent Reader Config](../agent_reader_config.html#agent-reader-config)** state for all RTCs
in the room for the agent that made the request.
24 changes: 24 additions & 0 deletions docs/src/api/agent_writer_config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Agent Writer Config

**Agent Writer Config** affects the writer and hence all of his readers.
Muting the writer on this level also prevents media to be recorded.
One can also set REMBs to control requested media bitrate.

## Properties

Name | Type | Default | Description
------- | -------- | ---------- | ------------------------------------------
room_id | uuid | _required_ | The **Room** identifier.
configs | [object] | [] | The list of **Agent Writer Config Items**.

# Agent Writer Config Item

## Properties

Name | Type | Default | Description
--------- | -------- | ---------- | -----------------------------------------------
agent_id | agent_id | _required_ | Writer identifier which the config applies to.
send_video | bool | true | Whether the writer is allowed to publish video.
send_audio | bool | true | Whether the writer is allowed to publish audio.
video_remb | int | _required_ | Maximum video bitrate requested for the writer.
audio_remb | int | _required_ | Maximum audio bitrate requested for the writer.
25 changes: 25 additions & 0 deletions docs/src/api/agent_writer_config/read.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Read

Retrieve **Agent Writer Config** state.



## Multicast request

**Properties**

Name | Type | Default | Description
---------------- | ------ | ---------- | ----------------------------------
method | String | _required_ | Always `agent_writer_config.read`.

**Payload**

Name | Type | Default | Description
------- | ---- | ---------- | --------------------
room_id | Uuid | _required_ | The room identifier.



## Unicast response

If successful, the response payload contains a requested **Agent Writer Config** state.
36 changes: 36 additions & 0 deletions docs/src/api/agent_writer_config/update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Update

Update or initialize own **Agent Writer Configs** in bulk.
Configs get merged into the current state so one may send only diffs.

One must enter the room first and the room must be opened.

## Multicast request

**Properties**

Name | Type | Default | Description
---------------- | ------ | ---------- | ----------------------------------------
method | String | _required_ | Always `agent_writer_connection.update`.

**Payload**

Name | Type | Default | Description
------- | -------- | ---------- | ----------------------------------------------
room_id | uuid | _required_ | The **Room** identifier.
configs | [object] | [] | Array of **[Agent Writer Config Item](../agent_writer_config.md#agent-writer-config-item)** objects.

## Unicast response

If successful, the response payload contains current
**[Agent Writer Config](../agent_writer_config.md#agent-writer-config)** state for all RTCs in the room.

## Broadcast event

A notification is being sent to the _audience_ topic.

**URI:** `audiences/:audience/events`

**Label:** `agent_writer_config.update`.

**Payload:** current **Agent Writer Config** state for all RTCs in the room.
1 change: 1 addition & 0 deletions docs/src/api/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ The following types are a part of the service's API and are guaranteed to mainta
- `invalid_jsep_format` – Failed to determine whether the SDP is recvonly.
- `invalid_sdp_type` – Failed to parse SDP type or an SDP answer is received.
- `invalid_subscription_object` – An object for dynamic subscription is not of format `["rooms", UUID, "events"]`.
- `invalid_payload` – A validation on a request payload as failed.
- `message_building_failed` – An error occurred while building a message to another service.
- `message_handling_failed` – An incoming message is likely to have non-valid JSON payload or missing required properties.
- `message_parsing_failed` – Failed to parse a message from another service.
Expand Down
20 changes: 10 additions & 10 deletions docs/src/authz.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ Subject's namespace and account label are retrieved from `audience` and `account

Possible values for `OBJECT` and `ACTION`:

object / action | create | read | update | delete | list | subscribe
-------------------------------------- | ------ | ---- | ------ | ------ | ---- | ---------
["rooms"] | + | | | | + |
["rooms", ROOM_ID] | | + | + | + | |
["rooms", ROOM_ID, "agents"] | | | | | + |
["rooms", ROOM_ID, "agents", AGENT_ID] | | + | + | | |
["rooms", ROOM_ID, "rtcs"] | + | | | | + |
["rooms", ROOM_ID, "rtcs", RTC_ID] | | + | + | + | |
["rooms", ROOM_ID, "events"] | | | | | | +
["audiences", AUDIENCE, "events"] | | | | | | +
object / action | create | read | update | delete | list | subscribe
----------------------------------------- | ------ | ---- | ------ | ------ | ---- | ---------
["rooms"] | + | | | | + |
["rooms", ROOM_ID] | | + | + | + | |
["rooms", ROOM_ID, "agents"] | | | + | | + |
["rooms", ROOM_ID, "agents", AGENT_ID] | | + | + | | |
["rooms", ROOM_ID, "rtcs"] | + | | | | + |
["rooms", ROOM_ID, "rtcs", RTC_ID] | | + | + | + | |
["rooms", ROOM_ID, "events"] | | | | | | +
["audiences", AUDIENCE, "events"] | | | | | | +
2 changes: 2 additions & 0 deletions migrations/2021-03-18-234004_create_rtc_rw_configs/down.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DROP TABLE rtc_reader_config;
DROP TABLE rtc_writer_config;
20 changes: 20 additions & 0 deletions migrations/2021-03-18-234004_create_rtc_rw_configs/up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
CREATE TABLE rtc_reader_config (
rtc_id UUID NOT NULL,
reader_id agent_id NOT NULL,
receive_video BOOLEAN NOT NULL,
receive_audio BOOLEAN NOT NULL,

FOREIGN KEY (rtc_id) REFERENCES rtc (id) ON DELETE CASCADE,
PRIMARY KEY (rtc_id, reader_id)
);

CREATE TABLE rtc_writer_config (
rtc_id UUID NOT NULL,
send_video BOOLEAN NOT NULL,
send_audio BOOLEAN NOT NULL,
audio_remb BIGINT CHECK (video_remb IS NULL OR video_remb > 0),
video_remb BIGINT CHECK (audio_remb IS NULL OR audio_remb > 0),

FOREIGN KEY (rtc_id) REFERENCES rtc (id) ON DELETE CASCADE,
PRIMARY KEY (rtc_id)
);
Loading

0 comments on commit 256bd96

Please sign in to comment.