diff --git a/README.md b/README.md
index c3c5c9b..4e4caae 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ To run the `fishjam_protos/compile_proto.sh` one needs to install the proto plug
To install the plugin:
```bash
-mix escript.install hex protobuf 0.15.0 # or any other version
+mix escript.install hex protobuf 0.16.0 # or any other version
```
## How to update docs
diff --git a/doc/docs.md b/doc/docs.md
index 0dbe5e7..99eba40 100644
--- a/doc/docs.md
+++ b/doc/docs.md
@@ -113,6 +113,8 @@
- [ServerMessage.SubscribeRequest](#fishjam-ServerMessage-SubscribeRequest)
- [ServerMessage.SubscribeResponse](#fishjam-ServerMessage-SubscribeResponse)
- [ServerMessage.TrackAdded](#fishjam-ServerMessage-TrackAdded)
+ - [ServerMessage.TrackForwarding](#fishjam-ServerMessage-TrackForwarding)
+ - [ServerMessage.TrackForwardingRemoved](#fishjam-ServerMessage-TrackForwardingRemoved)
- [ServerMessage.TrackMetadataUpdated](#fishjam-ServerMessage-TrackMetadataUpdated)
- [ServerMessage.TrackRemoved](#fishjam-ServerMessage-TrackRemoved)
- [ServerMessage.ViewerConnected](#fishjam-ServerMessage-ViewerConnected)
@@ -1334,34 +1336,36 @@ Defines any type of message passed between FJ and server peer
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| room_crashed | [ServerMessage.RoomCrashed](#fishjam-ServerMessage-RoomCrashed) | | |
-| peer_connected | [ServerMessage.PeerConnected](#fishjam-ServerMessage-PeerConnected) | | |
-| peer_disconnected | [ServerMessage.PeerDisconnected](#fishjam-ServerMessage-PeerDisconnected) | | |
-| peer_crashed | [ServerMessage.PeerCrashed](#fishjam-ServerMessage-PeerCrashed) | | |
-| component_crashed | [ServerMessage.ComponentCrashed](#fishjam-ServerMessage-ComponentCrashed) | | |
| authenticated | [ServerMessage.Authenticated](#fishjam-ServerMessage-Authenticated) | | |
| auth_request | [ServerMessage.AuthRequest](#fishjam-ServerMessage-AuthRequest) | | |
| subscribe_request | [ServerMessage.SubscribeRequest](#fishjam-ServerMessage-SubscribeRequest) | | |
| subscribe_response | [ServerMessage.SubscribeResponse](#fishjam-ServerMessage-SubscribeResponse) | | |
| room_created | [ServerMessage.RoomCreated](#fishjam-ServerMessage-RoomCreated) | | |
| room_deleted | [ServerMessage.RoomDeleted](#fishjam-ServerMessage-RoomDeleted) | | |
-| hls_playable | [ServerMessage.HlsPlayable](#fishjam-ServerMessage-HlsPlayable) | | |
-| hls_uploaded | [ServerMessage.HlsUploaded](#fishjam-ServerMessage-HlsUploaded) | | |
-| hls_upload_crashed | [ServerMessage.HlsUploadCrashed](#fishjam-ServerMessage-HlsUploadCrashed) | | |
+| room_crashed | [ServerMessage.RoomCrashed](#fishjam-ServerMessage-RoomCrashed) | | |
+| peer_connected | [ServerMessage.PeerConnected](#fishjam-ServerMessage-PeerConnected) | | |
+| peer_disconnected | [ServerMessage.PeerDisconnected](#fishjam-ServerMessage-PeerDisconnected) | | |
+| peer_crashed | [ServerMessage.PeerCrashed](#fishjam-ServerMessage-PeerCrashed) | | |
| peer_metadata_updated | [ServerMessage.PeerMetadataUpdated](#fishjam-ServerMessage-PeerMetadataUpdated) | | |
| track_added | [ServerMessage.TrackAdded](#fishjam-ServerMessage-TrackAdded) | | |
| track_removed | [ServerMessage.TrackRemoved](#fishjam-ServerMessage-TrackRemoved) | | |
| track_metadata_updated | [ServerMessage.TrackMetadataUpdated](#fishjam-ServerMessage-TrackMetadataUpdated) | | |
| peer_added | [ServerMessage.PeerAdded](#fishjam-ServerMessage-PeerAdded) | | |
| peer_deleted | [ServerMessage.PeerDeleted](#fishjam-ServerMessage-PeerDeleted) | | |
-| stream_connected | [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) | | **Deprecated.** |
-| stream_disconnected | [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) | | **Deprecated.** |
+| channel_added | [ServerMessage.ChannelAdded](#fishjam-ServerMessage-ChannelAdded) | | |
+| channel_removed | [ServerMessage.ChannelRemoved](#fishjam-ServerMessage-ChannelRemoved) | | |
+| track_forwarding | [ServerMessage.TrackForwarding](#fishjam-ServerMessage-TrackForwarding) | | |
+| track_forwarding_removed | [ServerMessage.TrackForwardingRemoved](#fishjam-ServerMessage-TrackForwardingRemoved) | | |
| viewer_connected | [ServerMessage.ViewerConnected](#fishjam-ServerMessage-ViewerConnected) | | |
| viewer_disconnected | [ServerMessage.ViewerDisconnected](#fishjam-ServerMessage-ViewerDisconnected) | | |
| streamer_connected | [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) | | |
| streamer_disconnected | [ServerMessage.StreamerDisconnected](#fishjam-ServerMessage-StreamerDisconnected) | | |
-| channel_added | [ServerMessage.ChannelAdded](#fishjam-ServerMessage-ChannelAdded) | | |
-| channel_removed | [ServerMessage.ChannelRemoved](#fishjam-ServerMessage-ChannelRemoved) | | |
+| stream_connected | [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) | | **Deprecated.** |
+| stream_disconnected | [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) | | **Deprecated.** |
+| hls_playable | [ServerMessage.HlsPlayable](#fishjam-ServerMessage-HlsPlayable) | | **Deprecated.** |
+| hls_uploaded | [ServerMessage.HlsUploaded](#fishjam-ServerMessage-HlsUploaded) | | **Deprecated.** |
+| hls_upload_crashed | [ServerMessage.HlsUploadCrashed](#fishjam-ServerMessage-HlsUploadCrashed) | | **Deprecated.** |
+| component_crashed | [ServerMessage.ComponentCrashed](#fishjam-ServerMessage-ComponentCrashed) | | **Deprecated.** |
@@ -1750,6 +1754,44 @@ Notification sent when peer or component adds new track
+
+
+### ServerMessage.TrackForwarding
+Sent when there is an upsert to track forwardings from Fishjam to Foundry
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| room_id | [string](#string) | | |
+| peer_id | [string](#string) | | |
+| composition_url | [string](#string) | | |
+| input_id | [string](#string) | | |
+| audio_track | [notifications.Track](#fishjam-notifications-Track) | optional | Track has id, type, and metadata |
+| video_track | [notifications.Track](#fishjam-notifications-Track) | optional | |
+
+
+
+
+
+
+
+
+### ServerMessage.TrackForwardingRemoved
+Sent when track forwarding is removed
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| room_id | [string](#string) | | |
+| peer_id | [string](#string) | | |
+| composition_url | [string](#string) | | |
+| input_id | [string](#string) | | |
+
+
+
+
+
+
### ServerMessage.TrackMetadataUpdated
diff --git a/fishjam/server_notifications.proto b/fishjam/server_notifications.proto
index c833974..8fa6b37 100644
--- a/fishjam/server_notifications.proto
+++ b/fishjam/server_notifications.proto
@@ -168,6 +168,24 @@ message ServerMessage {
string channel_id = 4;
}
+ // Sent when there is an upsert to track forwardings from Fishjam to Foundry
+ message TrackForwarding {
+ string room_id = 1;
+ string peer_id = 2;
+ string composition_url = 3;
+ string input_id = 4;
+ optional notifications.Track audio_track = 5; // Track has id, type, and metadata
+ optional notifications.Track video_track = 6;
+ }
+
+ // Sent when track forwarding is removed
+ message TrackForwardingRemoved {
+ string room_id = 1;
+ string peer_id = 2;
+ string composition_url = 3;
+ string input_id = 4;
+ }
+
// Notification sent when streamer successfully connects
message StreamConnected {
string stream_id = 1;
@@ -203,33 +221,49 @@ message ServerMessage {
reserved 12;
oneof content {
- RoomCrashed room_crashed = 1;
- PeerConnected peer_connected = 2;
- PeerDisconnected peer_disconnected = 3;
- PeerCrashed peer_crashed = 4;
- ComponentCrashed component_crashed = 5;
+ // Auth
+
Authenticated authenticated = 6;
AuthRequest auth_request = 7;
SubscribeRequest subscribe_request = 8;
SubscribeResponse subscribe_response = 9;
+
+ // Common
+
RoomCreated room_created = 10;
RoomDeleted room_deleted = 11;
- HlsPlayable hls_playable = 13;
- HlsUploaded hls_uploaded = 14;
- HlsUploadCrashed hls_upload_crashed = 15;
+ RoomCrashed room_crashed = 1;
+
+ // Conferencing
+
+ PeerConnected peer_connected = 2;
+ PeerDisconnected peer_disconnected = 3;
+ PeerCrashed peer_crashed = 4;
PeerMetadataUpdated peer_metadata_updated = 16;
TrackAdded track_added = 17;
TrackRemoved track_removed = 18;
TrackMetadataUpdated track_metadata_updated = 19;
PeerAdded peer_added = 20;
PeerDeleted peer_deleted = 21;
- StreamConnected stream_connected = 22 [deprecated = true];
- StreamDisconnected stream_disconnected = 23 [deprecated = true];
+ ChannelAdded channel_added = 28;
+ ChannelRemoved channel_removed = 29;
+ TrackForwarding track_forwarding = 30;
+ TrackForwardingRemoved track_forwarding_removed = 31;
+
+ // Streaming
+
ViewerConnected viewer_connected = 24;
ViewerDisconnected viewer_disconnected = 25;
StreamerConnected streamer_connected = 26;
StreamerDisconnected streamer_disconnected = 27;
- ChannelAdded channel_added = 28;
- ChannelRemoved channel_removed = 29;
+
+ // Deprecated
+
+ StreamConnected stream_connected = 22 [deprecated = true];
+ StreamDisconnected stream_disconnected = 23 [deprecated = true];
+ HlsPlayable hls_playable = 13 [deprecated = true];
+ HlsUploaded hls_uploaded = 14 [deprecated = true];
+ HlsUploadCrashed hls_upload_crashed = 15 [deprecated = true];
+ ComponentCrashed component_crashed = 5 [deprecated = true];
}
}
diff --git a/fishjam_protos/lib/fishjam/server_notifications.pb.ex b/fishjam_protos/lib/fishjam/server_notifications.pb.ex
index 7117c12..f772d9a 100644
--- a/fishjam_protos/lib/fishjam/server_notifications.pb.ex
+++ b/fishjam_protos/lib/fishjam/server_notifications.pb.ex
@@ -306,6 +306,44 @@ defmodule Fishjam.ServerMessage.ChannelRemoved do
field :channel_id, 4, type: :string, json_name: "channelId"
end
+defmodule Fishjam.ServerMessage.TrackForwarding do
+ @moduledoc false
+
+ use Protobuf,
+ full_name: "fishjam.ServerMessage.TrackForwarding",
+ protoc_gen_elixir_version: "0.16.0",
+ syntax: :proto3
+
+ field :room_id, 1, type: :string, json_name: "roomId"
+ field :peer_id, 2, type: :string, json_name: "peerId"
+ field :composition_url, 3, type: :string, json_name: "compositionUrl"
+ field :input_id, 4, type: :string, json_name: "inputId"
+
+ field :audio_track, 5,
+ proto3_optional: true,
+ type: Fishjam.Notifications.Track,
+ json_name: "audioTrack"
+
+ field :video_track, 6,
+ proto3_optional: true,
+ type: Fishjam.Notifications.Track,
+ json_name: "videoTrack"
+end
+
+defmodule Fishjam.ServerMessage.TrackForwardingRemoved do
+ @moduledoc false
+
+ use Protobuf,
+ full_name: "fishjam.ServerMessage.TrackForwardingRemoved",
+ protoc_gen_elixir_version: "0.16.0",
+ syntax: :proto3
+
+ field :room_id, 1, type: :string, json_name: "roomId"
+ field :peer_id, 2, type: :string, json_name: "peerId"
+ field :composition_url, 3, type: :string, json_name: "compositionUrl"
+ field :input_id, 4, type: :string, json_name: "inputId"
+end
+
defmodule Fishjam.ServerMessage.StreamConnected do
@moduledoc false
@@ -386,31 +424,6 @@ defmodule Fishjam.ServerMessage do
oneof :content, 0
- field :room_crashed, 1,
- type: Fishjam.ServerMessage.RoomCrashed,
- json_name: "roomCrashed",
- oneof: 0
-
- field :peer_connected, 2,
- type: Fishjam.ServerMessage.PeerConnected,
- json_name: "peerConnected",
- oneof: 0
-
- field :peer_disconnected, 3,
- type: Fishjam.ServerMessage.PeerDisconnected,
- json_name: "peerDisconnected",
- oneof: 0
-
- field :peer_crashed, 4,
- type: Fishjam.ServerMessage.PeerCrashed,
- json_name: "peerCrashed",
- oneof: 0
-
- field :component_crashed, 5,
- type: Fishjam.ServerMessage.ComponentCrashed,
- json_name: "componentCrashed",
- oneof: 0
-
field :authenticated, 6, type: Fishjam.ServerMessage.Authenticated, oneof: 0
field :auth_request, 7,
@@ -438,19 +451,24 @@ defmodule Fishjam.ServerMessage do
json_name: "roomDeleted",
oneof: 0
- field :hls_playable, 13,
- type: Fishjam.ServerMessage.HlsPlayable,
- json_name: "hlsPlayable",
+ field :room_crashed, 1,
+ type: Fishjam.ServerMessage.RoomCrashed,
+ json_name: "roomCrashed",
oneof: 0
- field :hls_uploaded, 14,
- type: Fishjam.ServerMessage.HlsUploaded,
- json_name: "hlsUploaded",
+ field :peer_connected, 2,
+ type: Fishjam.ServerMessage.PeerConnected,
+ json_name: "peerConnected",
oneof: 0
- field :hls_upload_crashed, 15,
- type: Fishjam.ServerMessage.HlsUploadCrashed,
- json_name: "hlsUploadCrashed",
+ field :peer_disconnected, 3,
+ type: Fishjam.ServerMessage.PeerDisconnected,
+ json_name: "peerDisconnected",
+ oneof: 0
+
+ field :peer_crashed, 4,
+ type: Fishjam.ServerMessage.PeerCrashed,
+ json_name: "peerCrashed",
oneof: 0
field :peer_metadata_updated, 16,
@@ -480,17 +498,25 @@ defmodule Fishjam.ServerMessage do
json_name: "peerDeleted",
oneof: 0
- field :stream_connected, 22,
- type: Fishjam.ServerMessage.StreamConnected,
- json_name: "streamConnected",
- oneof: 0,
- deprecated: true
+ field :channel_added, 28,
+ type: Fishjam.ServerMessage.ChannelAdded,
+ json_name: "channelAdded",
+ oneof: 0
- field :stream_disconnected, 23,
- type: Fishjam.ServerMessage.StreamDisconnected,
- json_name: "streamDisconnected",
- oneof: 0,
- deprecated: true
+ field :channel_removed, 29,
+ type: Fishjam.ServerMessage.ChannelRemoved,
+ json_name: "channelRemoved",
+ oneof: 0
+
+ field :track_forwarding, 30,
+ type: Fishjam.ServerMessage.TrackForwarding,
+ json_name: "trackForwarding",
+ oneof: 0
+
+ field :track_forwarding_removed, 31,
+ type: Fishjam.ServerMessage.TrackForwardingRemoved,
+ json_name: "trackForwardingRemoved",
+ oneof: 0
field :viewer_connected, 24,
type: Fishjam.ServerMessage.ViewerConnected,
@@ -512,13 +538,39 @@ defmodule Fishjam.ServerMessage do
json_name: "streamerDisconnected",
oneof: 0
- field :channel_added, 28,
- type: Fishjam.ServerMessage.ChannelAdded,
- json_name: "channelAdded",
- oneof: 0
+ field :stream_connected, 22,
+ type: Fishjam.ServerMessage.StreamConnected,
+ json_name: "streamConnected",
+ oneof: 0,
+ deprecated: true
- field :channel_removed, 29,
- type: Fishjam.ServerMessage.ChannelRemoved,
- json_name: "channelRemoved",
- oneof: 0
+ field :stream_disconnected, 23,
+ type: Fishjam.ServerMessage.StreamDisconnected,
+ json_name: "streamDisconnected",
+ oneof: 0,
+ deprecated: true
+
+ field :hls_playable, 13,
+ type: Fishjam.ServerMessage.HlsPlayable,
+ json_name: "hlsPlayable",
+ oneof: 0,
+ deprecated: true
+
+ field :hls_uploaded, 14,
+ type: Fishjam.ServerMessage.HlsUploaded,
+ json_name: "hlsUploaded",
+ oneof: 0,
+ deprecated: true
+
+ field :hls_upload_crashed, 15,
+ type: Fishjam.ServerMessage.HlsUploadCrashed,
+ json_name: "hlsUploadCrashed",
+ oneof: 0,
+ deprecated: true
+
+ field :component_crashed, 5,
+ type: Fishjam.ServerMessage.ComponentCrashed,
+ json_name: "componentCrashed",
+ oneof: 0,
+ deprecated: true
end
diff --git a/fishjam_protos/mix.exs b/fishjam_protos/mix.exs
index 4d87457..129179c 100644
--- a/fishjam_protos/mix.exs
+++ b/fishjam_protos/mix.exs
@@ -36,7 +36,7 @@ defmodule FishjamProtos.MixProject do
defp deps do
[
- {:protobuf, "~> 0.15.0"},
+ {:protobuf, "~> 0.16.0"},
{:ex_doc, "~> 0.21", only: :dev, runtime: false}
]
end
diff --git a/fishjam_protos/mix.lock b/fishjam_protos/mix.lock
index 7cc313a..4647d94 100644
--- a/fishjam_protos/mix.lock
+++ b/fishjam_protos/mix.lock
@@ -5,5 +5,5 @@
"makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"},
"makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"},
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
- "protobuf": {:hex, :protobuf, "0.15.0", "c9fc1e9fc1682b05c601df536d5ff21877b55e2023e0466a3855cc1273b74dcb", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "5d7bb325319db1d668838d2691c31c7b793c34111aec87d5ee467a39dac6e051"},
+ "protobuf": {:hex, :protobuf, "0.16.0", "d1878725105d49162977cf3408ccc3eac4f3532e26e5a9e250f2c624175d10f6", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "f0d0d3edd8768130f24cc2cfc41320637d32c80110e80d13f160fa699102c828"},
}