diff --git a/doc/docs.md b/doc/docs.md
index 4da81d7..ff2adc6 100644
--- a/doc/docs.md
+++ b/doc/docs.md
@@ -104,6 +104,7 @@
- [ServerMessage.PeerDeleted](#fishjam-ServerMessage-PeerDeleted)
- [ServerMessage.PeerDisconnected](#fishjam-ServerMessage-PeerDisconnected)
- [ServerMessage.PeerMetadataUpdated](#fishjam-ServerMessage-PeerMetadataUpdated)
+ - [ServerMessage.RecordingStatusChanged](#fishjam-ServerMessage-RecordingStatusChanged)
- [ServerMessage.RoomCrashed](#fishjam-ServerMessage-RoomCrashed)
- [ServerMessage.RoomCreated](#fishjam-ServerMessage-RoomCreated)
- [ServerMessage.RoomDeleted](#fishjam-ServerMessage-RoomDeleted)
@@ -124,6 +125,7 @@
- [ServerMessage.EventType](#fishjam-ServerMessage-EventType)
- [ServerMessage.PeerType](#fishjam-ServerMessage-PeerType)
+ - [ServerMessage.RecordingStatusChanged.Status](#fishjam-ServerMessage-RecordingStatusChanged-Status)
- [ServerMessage.VadNotification.Status](#fishjam-ServerMessage-VadNotification-Status)
- [Scalar Value Types](#scalar-value-types)
@@ -1364,6 +1366,7 @@ Defines any type of message passed between FJ and server peer
| viewer_disconnected | [ServerMessage.ViewerDisconnected](#fishjam-ServerMessage-ViewerDisconnected) | | |
| streamer_connected | [ServerMessage.StreamerConnected](#fishjam-ServerMessage-StreamerConnected) | | |
| streamer_disconnected | [ServerMessage.StreamerDisconnected](#fishjam-ServerMessage-StreamerDisconnected) | | |
+| recording_status_changed | [ServerMessage.RecordingStatusChanged](#fishjam-ServerMessage-RecordingStatusChanged) | | |
| notification_batch | [ServerMessage.NotificationBatch](#fishjam-ServerMessage-NotificationBatch) | | Batch |
| stream_connected | [ServerMessage.StreamConnected](#fishjam-ServerMessage-StreamConnected) | | **Deprecated.** |
| stream_disconnected | [ServerMessage.StreamDisconnected](#fishjam-ServerMessage-StreamDisconnected) | | **Deprecated.** |
@@ -1629,6 +1632,23 @@ Notification sent when peer updates its metadata
+
+
+### ServerMessage.RecordingStatusChanged
+Notification sent when a recording changes status
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| recording_id | [string](#string) | | |
+| status | [ServerMessage.RecordingStatusChanged.Status](#fishjam-ServerMessage-RecordingStatusChanged-Status) | | |
+| metadata | [string](#string) | | JSON-encoded, as set on recording creation |
+
+
+
+
+
+
### ServerMessage.RoomCrashed
@@ -1936,6 +1956,20 @@ Defines message groups for which peer can subscribe
+
+
+### ServerMessage.RecordingStatusChanged.Status
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| STATUS_UNSPECIFIED | 0 | |
+| STATUS_FINISHED | 1 | |
+| STATUS_AVAILABLE | 2 | |
+| STATUS_FAILED | 3 | |
+
+
+
### ServerMessage.VadNotification.Status
diff --git a/fishjam/server_notifications.proto b/fishjam/server_notifications.proto
index 80a7948..b32f91f 100644
--- a/fishjam/server_notifications.proto
+++ b/fishjam/server_notifications.proto
@@ -233,6 +233,20 @@ message ServerMessage {
string streamer_id = 2;
}
+ // Notification sent when a recording changes status
+ message RecordingStatusChanged {
+ enum Status {
+ STATUS_UNSPECIFIED = 0;
+ STATUS_FINISHED = 1;
+ STATUS_AVAILABLE = 2;
+ STATUS_FAILED = 3;
+ }
+
+ string recording_id = 1;
+ Status status = 2;
+ string metadata = 3; // JSON-encoded, as set on recording creation
+ }
+
// Carries multiple notifications in a single wire frame.
//
// Constraints (documented, not schema-enforced):
@@ -288,6 +302,10 @@ message ServerMessage {
StreamerConnected streamer_connected = 26;
StreamerDisconnected streamer_disconnected = 27;
+ // Recordings
+
+ RecordingStatusChanged recording_status_changed = 34;
+
// Batch
NotificationBatch notification_batch = 33;
diff --git a/fishjam_protos/lib/fishjam/server_notifications.pb.ex b/fishjam_protos/lib/fishjam/server_notifications.pb.ex
index ba1bbe9..938a990 100644
--- a/fishjam_protos/lib/fishjam/server_notifications.pb.ex
+++ b/fishjam_protos/lib/fishjam/server_notifications.pb.ex
@@ -40,6 +40,21 @@ defmodule Fishjam.ServerMessage.VadNotification.Status do
field :STATUS_SPEECH, 2
end
+defmodule Fishjam.ServerMessage.RecordingStatusChanged.Status do
+ @moduledoc false
+
+ use Protobuf,
+ enum: true,
+ full_name: "fishjam.ServerMessage.RecordingStatusChanged.Status",
+ protoc_gen_elixir_version: "0.17.0",
+ syntax: :proto3
+
+ field :STATUS_UNSPECIFIED, 0
+ field :STATUS_FINISHED, 1
+ field :STATUS_AVAILABLE, 2
+ field :STATUS_FAILED, 3
+end
+
defmodule Fishjam.ServerMessage.RoomCrashed do
@moduledoc false
@@ -443,6 +458,19 @@ defmodule Fishjam.ServerMessage.StreamerDisconnected do
field :streamer_id, 2, type: :string, json_name: "streamerId"
end
+defmodule Fishjam.ServerMessage.RecordingStatusChanged do
+ @moduledoc false
+
+ use Protobuf,
+ full_name: "fishjam.ServerMessage.RecordingStatusChanged",
+ protoc_gen_elixir_version: "0.17.0",
+ syntax: :proto3
+
+ field :recording_id, 1, type: :string, json_name: "recordingId"
+ field :status, 2, type: Fishjam.ServerMessage.RecordingStatusChanged.Status, enum: true
+ field :metadata, 3, type: :string
+end
+
defmodule Fishjam.ServerMessage.NotificationBatch do
@moduledoc false
@@ -583,6 +611,11 @@ defmodule Fishjam.ServerMessage do
json_name: "streamerDisconnected",
oneof: 0
+ field :recording_status_changed, 34,
+ type: Fishjam.ServerMessage.RecordingStatusChanged,
+ json_name: "recordingStatusChanged",
+ oneof: 0
+
field :notification_batch, 33,
type: Fishjam.ServerMessage.NotificationBatch,
json_name: "notificationBatch",