Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/fishjam-server
2 changes: 1 addition & 1 deletion api/room-manager
2 changes: 1 addition & 1 deletion packages/python-server-sdk
Submodule python-server-sdk updated 33 files
+2 −8 DEVELOPMENT.md
+2 −0 fishjam/__init__.py
+4 −0 fishjam/_openapi_client/api/room/add_peer.py
+4 −0 fishjam/_openapi_client/api/room/create_room.py
+12 −12 fishjam/_openapi_client/api/stream/create_stream.py
+12 −12 fishjam/_openapi_client/api/stream/get_stream.py
+12 −12 fishjam/_openapi_client/api/streamer/create_streamer.py
+1 −0 fishjam/_openapi_client/api/track_forwarding/__init__.py
+185 −0 fishjam/_openapi_client/api/track_forwarding/create_track_forwarding.py
+12 −12 fishjam/_openapi_client/api/viewer/create_viewer.py
+14 −2 fishjam/_openapi_client/models/__init__.py
+84 −0 fishjam/_openapi_client/models/composition_info.py
+18 −5 fishjam/_openapi_client/models/peer_config.py
+70 −0 fishjam/_openapi_client/models/peer_options_vapi.py
+1 −0 fishjam/_openapi_client/models/peer_type.py
+42 −0 fishjam/_openapi_client/models/room.py
+0 −9 fishjam/_openapi_client/models/room_create_details_response_data.py
+0 −8 fishjam/_openapi_client/models/stream.py
+68 −0 fishjam/_openapi_client/models/stream_details_response.py
+5 −15 fishjam/_openapi_client/models/streamer.py
+68 −0 fishjam/_openapi_client/models/streamer_details_response.py
+55 −0 fishjam/_openapi_client/models/track_forwarding.py
+113 −0 fishjam/_openapi_client/models/track_forwarding_info.py
+5 −25 fishjam/_openapi_client/models/viewer.py
+68 −0 fishjam/_openapi_client/models/viewer_details_response.py
+0 −11 fishjam/_openapi_client/models/viewer_status.py
+25 −1 fishjam/api/_fishjam_client.py
+101 −29 fishjam/events/_protos/fishjam/__init__.py
+1 −1 protos
+2 −2 pyproject.toml
+1 −11 scripts.py
+11 −1 tests/test_room_api.py
+2 −0 uv.lock
74 changes: 62 additions & 12 deletions static/api/protobuf/server_notifications.proto
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ message ServerMessage {
PEER_TYPE_UNSPECIFIED = 0;
PEER_TYPE_WEBRTC = 1;
PEER_TYPE_AGENT = 2;
PEER_TYPE_VAPI = 3;
}

// Notification sent when a peer is added
Expand Down Expand Up @@ -168,6 +169,38 @@ message ServerMessage {
string channel_id = 4;
}

// Sent when there is an upsert to track forwardings from Fishjam to Composition
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 voice activity changes on a track
message VadNotification {
enum Status {
STATUS_UNSPECIFIED = 0;
STATUS_SILENCE = 1;
STATUS_SPEECH = 2;
}

string room_id = 1;
string peer_id = 2;
string track_id = 3;
Status status = 4;
}

// Notification sent when streamer successfully connects
message StreamConnected {
string stream_id = 1;
Expand Down Expand Up @@ -203,33 +236,50 @@ 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;
VadNotification vad_notification = 32;

// 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];
}
}
6 changes: 6 additions & 0 deletions versioned_docs/version-0.26.0/_common/agents/definition.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## What is an Agent?

An agent is a piece of software that allows your backend server to participate in a Fishjam room, similar to how the Fishjam client SDKs allow your client-side application to participate in a Fishjam room.
They can be used to implement features such as real-time audio transcription, real-time content moderation, conversations with AI agents and more.

You can simply think of an agent as a peer running within your backend application.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:::danger Remember to disconnect your agents!
It's important to disconnect agents, because **every connected agent generates usage** just as a normal peer.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
By default, agents **won't** receive peers' audio streams.
This is by design and aims to prevent unnecessary resource usage by the agents.

For an agent to start receiving a peer's audio, the peer must be **created** with the **subscribe** option set.
12 changes: 12 additions & 0 deletions versioned_docs/version-0.26.0/api/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"label": "API",
"position": 7,
"link": {
"type": "generated-index",
"description": "API documentation for Client and Server SDKs.",
"slug": "/api"
},
"customProps": {
"id": "generated-api"
}
}
43 changes: 43 additions & 0 deletions versioned_docs/version-0.26.0/api/mobile/enumerations/Variant.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Enumeration: Variant

Defined in: packages/ts-client/dist/index.d.mts:51

## Enumeration Members

### UNRECOGNIZED

> **UNRECOGNIZED**: `-1`

Defined in: packages/ts-client/dist/index.d.mts:56

***

### VARIANT\_HIGH

> **VARIANT\_HIGH**: `3`

Defined in: packages/ts-client/dist/index.d.mts:55

***

### VARIANT\_LOW

> **VARIANT\_LOW**: `1`

Defined in: packages/ts-client/dist/index.d.mts:53

***

### VARIANT\_MEDIUM

> **VARIANT\_MEDIUM**: `2`

Defined in: packages/ts-client/dist/index.d.mts:54

***

### VARIANT\_UNSPECIFIED

> **VARIANT\_UNSPECIFIED**: `0`

Defined in: packages/ts-client/dist/index.d.mts:52
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Function: FishjamProvider()

> **FishjamProvider**(`props`): `FunctionComponentElement`\<`FishjamProviderProps`\>

Defined in: [packages/mobile-client/src/index.ts:118](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/index.ts#L118)

## Parameters

| Parameter | Type |
| ------ | ------ |
| `props` | [`FishjamProviderProps`](../type-aliases/FishjamProviderProps.md) |

## Returns

`FunctionComponentElement`\<`FishjamProviderProps`\>
15 changes: 15 additions & 0 deletions versioned_docs/version-0.26.0/api/mobile/functions/RTCPIPView.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Function: RTCPIPView()

> **RTCPIPView**(`__namedParameters`): `Element`

Defined in: [packages/mobile-client/src/overrides/RTCView.tsx:31](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/overrides/RTCView.tsx#L31)

## Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | [`RTCPIPViewProps`](../type-aliases/RTCPIPViewProps.md) |

## Returns

`Element`
15 changes: 15 additions & 0 deletions versioned_docs/version-0.26.0/api/mobile/functions/RTCView.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Function: RTCView()

> **RTCView**(`__namedParameters`): `Element`

Defined in: [packages/mobile-client/src/overrides/RTCView.tsx:26](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/overrides/RTCView.tsx#L26)

## Parameters

| Parameter | Type |
| ------ | ------ |
| `__namedParameters` | [`RTCVideoViewProps`](../type-aliases/RTCVideoViewProps.md) |

## Returns

`Element`
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Function: useCallKit()

> **useCallKit**(): `object`

Defined in: [packages/mobile-client/src/overrides/hooks.ts:100](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/overrides/hooks.ts#L100)

## Returns

`object`
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Function: useCallKitEvent()

> **useCallKitEvent**\<`T`\>(`action`, `callback`): `void`

Defined in: [packages/mobile-client/src/overrides/hooks.ts:109](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/overrides/hooks.ts#L109)

## Type Parameters

| Type Parameter |
| ------ |
| `T` *extends* keyof `CallKitAction` |

## Parameters

| Parameter | Type |
| ------ | ------ |
| `action` | `T` |
| `callback` | (`event`) => `void` |

## Returns

`void`
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Function: useCallKitService()

> **useCallKitService**(`config`): `void`

Defined in: [packages/mobile-client/src/overrides/hooks.ts:105](https://github.com/fishjam-cloud/web-client-sdk/blob/f9c524fd1ea91e5bcd57ee915282fefeaed45b65/packages/mobile-client/src/overrides/hooks.ts#L105)

## Parameters

| Parameter | Type |
| ------ | ------ |
| `config` | `CallKitConfig` |

## Returns

`void`
Loading
Loading