Commit graph

45 commits

Author SHA1 Message Date
Joachim Bauch
5e14d9ec03
Add feature id for supporting codec parameters in offer. 2025-01-22 10:24:05 +01:00
Joachim Bauch
70de43cdae
Include client features in "join" events. 2024-12-12 11:38:12 +01:00
Joachim Bauch
a261d6b37d
Support recipient "call". 2024-11-06 10:12:46 +01:00
Joachim Bauch
e152b8dcda
Migrate to github.com/golang-jwt/jwt/v5 2024-11-05 09:59:14 +01:00
Joachim Bauch
a487afc909
Support passing codec parameters when creating publishers. 2024-11-04 13:35:03 +01:00
Joachim Bauch
11a1f365d9
Convert actorId / actorType in participants updates for federated users.
See https://github.com/nextcloud/spreed/pull/12863 for details.
2024-08-06 10:50:14 +02:00
Joachim Bauch
86721347f9
Include "federated" in "join" events for fed. sessions. 2024-08-06 09:13:23 +02:00
Joachim Bauch
a256789f20
Support reconnecting the internal federated connection. 2024-08-06 09:13:22 +02:00
Joachim Bauch
c3d24b60ea
Expect base signaling url for federation requests. 2024-08-06 09:13:21 +02:00
Joachim Bauch
c055b12345
Support different federated room ids. 2024-08-06 09:13:18 +02:00
Joachim Bauch
c442a72905
Start implementing federation. 2024-08-06 09:13:13 +02:00
Joachim Bauch
4fd929c15a
Merge pull request #733 from strukturag/relax-message-validation
Relax "MessageClientMessageData" validation.
2024-05-21 09:28:50 +02:00
Joachim Bauch
4b76a49355
Don't use unnecessary pointer to "json.RawMessage".
The slice is a pointer already.
2024-05-16 20:58:42 +02:00
Joachim Bauch
bad52af35a
Validate received SDP earlier. 2024-05-16 10:04:57 +02:00
Joachim Bauch
70a5318973
Relax "MessageClientMessageData" validation.
Allow empty `roomType` values.
2024-05-15 13:12:25 +02:00
Joachim Bauch
3721fb131f
Don't include empty "auth" field in hello client messages. 2024-04-23 11:03:28 +02:00
Joachim Bauch
7d09c71ab9
Strongly type "StreamType". 2024-02-27 15:20:14 +01:00
Joachim Bauch
2a40c89585
Include backend URL to when starting dialout request. 2023-10-31 08:42:02 +01:00
Joachim Bauch
d1544dcb2c
Implement message handler for dialout support. 2023-10-26 09:53:57 +02:00
Joachim Bauch
b006903a56
Support passing TTL when setting transient data from clients. 2023-10-12 11:07:11 +02:00
Joachim Bauch
35135433c2
Return response if session tries to join room again. 2023-09-05 15:43:46 +02:00
Joachim Bauch
2f6e2ba87c
Allow internal clients to set / change the "inCall" flags. 2023-02-20 13:25:37 +01:00
Joachim Bauch
bb24bf5f0d
Implement switchto messages. 2023-01-30 15:41:55 +01:00
Joachim Bauch
9c159dc4f8
Add feature flag for hello version 2.0 2022-08-03 16:33:47 +02:00
Joachim Bauch
156bc360ff
Add hello version "2.0" that authenticates connections using a JWT. 2022-08-03 16:33:45 +02:00
Joachim Bauch
5fc61b15b6
Add more "String()" methods to help with debugging. 2022-07-12 10:07:23 +02:00
Joachim Bauch
f7db8a38e1
Send initial "welcome" message when clients connect.
This can be used to detect server features before performing the
actual "hello" handshake.
2022-07-07 09:57:10 +02:00
Joachim Bauch
7267a0c92d
Processed classes implement the "json.Marshaler/Unmarshaler" interfaces. 2022-05-16 15:13:50 +02:00
Joachim Bauch
f8f2adb0e2
Merge pull request #227 from strukturag/hide-displaynames
Add "permission" for sessions that may not receive display names.
2022-04-27 16:19:23 +02:00
Daniel Calviño Sánchez
27989752bf Remove "update" parameter in favour of "sid"
The "update" parameter was used to know if an offer should be treated by
the clients as a renegotiation or a new connection. However, since the
introduction of "sid" this is implicitly known (if the "sid" matches an
existing connection then it is an update, otherwise it is a new
connection), so that specific parameter is no longer needed.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-04-27 11:14:59 +02:00
Daniel Calviño Sánchez
3636e69dba Add specific ID for connections
A new ID is introduced for publishers and subscribers to be able to
identify different connections in the same session. While it was
possible to do that from the Janus handles this ID is meant to be shared
with the clients and set by the peer sending the offer, so it is set by
the client for publishers and by the signaling server for subscribers
(in which case the Janus handle is used).

This will make possible to know without any ambiguity if an offer/answer
belongs to an already existing connection or not. This can be used, for
example, to know if an offer represents an update or a new connection,
or to discard unneeded messages that might be sent in some corner cases
by the clients.

The ID name is "sid" for consistency with the property name used by the
internal signaling server of Talk.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-04-27 11:14:59 +02:00
Joachim Bauch
39cc523477
Add "permission" for sessions that may not receive display names.
By default, the "join" events contain the whole userdata as received
from the "auth" response. This might include a "displayname" field
containing the display name of the associated user.

For privacy reasons in certain scenarios, some attendees should not
be able to know which other users are connected to a room, therefore
the "displayname" should be hidden for them. By default, no filtering
occurrs.
2022-04-26 14:47:01 +02:00
Joachim Bauch
97f2a1d5f0
Add special events to update "incall" flags of all sessions. 2022-03-23 09:15:22 +01:00
Joachim Bauch
8fd9c688b6
Merge pull request #195 from danxuliu/send-updated-offers-to-subscribers-after-publisher-renegotiations
Send updated offers to subscribers after publisher renegotiations
2022-02-25 09:16:10 +01:00
Daniel Calviño Sánchez
cd93db60a4 Introduce feature flag for SDP updates
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-02-25 07:47:30 +01:00
Daniel Calviño Sánchez
020cbaf49d Send updated offers to subscribers after publisher renegotiations
When a publisher has a connection the publisher can update the
connection (for example, to add a video track to an audio only
connection) by sending an updated offer to Janus. Janus detects that,
adjusts the connection and then sends back an answer. Once the publisher
connection is updated Janus starts a renegotiation for the subscribers
and generates the offers to be sent to them.

The signaling server did not handle the event, so the offers were not
sent and the subscriber connections were not updated. Now the offers are
sent as needed, which makes possible for the renegotiation to be
completed by the clients.

In this case the "offer" message will also include an "update" parameter
so clients can differentiate between offers to create new connections or
update the existing one.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-02-25 07:47:17 +01:00
Joachim Bauch
fca30af201
Add API for transient room data. 2022-02-16 12:30:39 +01:00
Joachim Bauch
614c5f6e21
Fix issues reported by revive. 2022-02-11 12:09:42 +01:00
Joachim Bauch
ffd8a30f61
Clients can provide the maximum publishing bandwidth in offer requests.
This will still be capped to any backend / proxy / Janus limits.
2022-01-10 15:14:56 +01:00
Joachim Bauch
76ad24ca62
Include room session id in "joined" events.
This helps with matching signaling sessions with sessions in Talk.
2021-12-17 16:02:22 +01:00
Joachim Bauch
61f039bb88
Introduce feature flag for split audio/video permissions.
The flag name "audio-video-permissions" will be used for this.
2021-11-03 15:24:28 +01:00
Joachim Bauch
8a87a0d602
Add feature flag "simulcast". 2021-06-08 13:49:09 +02:00
Joachim Bauch
447fa9a279
Add "String" methods to ClientMessage/ServerMessage. 2021-06-07 16:53:26 +02:00
Joachim Bauch
d772e10fec
Fix typo in JSON option. 2021-04-21 13:48:34 +02:00
Joachim Bauch
8ba2e0ad64
Switch dependency tracking to Go modules.
With that bump minimum required version to Go 1.13.
2021-04-09 16:15:00 +02:00
Renamed from src/signaling/api_signaling.go (Browse further)