Skip to content

Commit 6fcc528

Browse files
committed
Update Calls simulcast API definition after feedback on 2025-02-27
1 parent 45cb682 commit 6fcc528

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed

public/realtime/static/calls-api-2024-05-21.yaml

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -140,33 +140,16 @@ paths:
140140
sessionId: 2a45361d5fd7cc14eface0587c276c94
141141
trackName: generated-audio
142142
kind: "audio"
143-
simulcast_track:
144-
description: Share a track with simulcast configuration
143+
remote_track_with_simulcast:
144+
description: Pull a remote track with simulcast preferences
145145
value:
146-
sessionDescription:
147-
sdp: |
148-
v=0
149-
o=- 0 0 IN IP4 127.0.0.1
150-
s=-
151-
c=IN IP4 127.0.0.1
152-
t=0 0
153-
m=audio 4000 RTP/AVP 111
154-
a=rtpmap:111 OPUS/48000/2
155-
m=video 4002 RTP/AVP 96
156-
a=rtpmap:96 VP8/90000
157-
a=simulcast:send f;h;q
158-
a=rid:f send
159-
a=rid:h send
160-
a=rid:q send
161-
...
162-
type: offer
163146
tracks:
164-
- location: local
147+
- location: remote
148+
sessionId: 2a45361d5fd7cc14eface0587c276c94
165149
trackName: simulcast-video-track
166-
mid: "1"
167150
simulcast:
168151
preferredRid: "h"
169-
preferredRidNotAvailable: "leastbandwidth"
152+
fallbackStrategy: "leastBandwidth"
170153
security:
171154
- secret: []
172155
parameters:
@@ -234,6 +217,31 @@ paths:
234217
a=rtpmap:96 VP8/90000
235218
...
236219
type: offer
220+
remote_tracks_with_simulcast:
221+
value:
222+
requiresImmediateRenegotiation: true
223+
tracks:
224+
- sessionId: 2a45361d5fd7cc14eface0587c276c94
225+
trackName: simulcast-video-track
226+
mid: "5"
227+
simulcast:
228+
preferredRid: "h"
229+
fallbackStrategy: "leastBandwidth"
230+
sessionDescription:
231+
sdp: |
232+
v=0
233+
o=- 0 0 IN IP4 127.0.0.1
234+
s=-
235+
c=IN IP4 127.0.0.1
236+
t=0 0
237+
m=video 4002 RTP/AVP 96
238+
a=rtpmap:96 VP8/90000
239+
a=simulcast:recv f;h;q
240+
a=rid:f recv
241+
a=rid:h recv
242+
a=rid:q recv
243+
...
244+
type: offer
237245
/apps/{appId}/sessions/{sessionId}/renegotiate:
238246
put:
239247
tags:
@@ -356,8 +364,8 @@ paths:
356364
requiresImmediateRenegotiation: false
357365
tracks:
358366
- mid: "7"
359-
/apps/{appId}/sessions/{sessionId}/tracks/change:
360-
post:
367+
/apps/{appId}/sessions/{sessionId}/tracks/update:
368+
put:
361369
tags:
362370
- Change tracks
363371
summary: Change tracks by reusing existing transceivers
@@ -387,7 +395,7 @@ paths:
387395
mid: "8"
388396
simulcast:
389397
preferredRid: "h"
390-
preferredRidNotAvailable: "leastbandwidth"
398+
fallbackStrategy: "leastBandwidth"
391399
security:
392400
- secret: []
393401
parameters:
@@ -414,7 +422,7 @@ paths:
414422
content:
415423
application/json:
416424
schema:
417-
$ref: "#/components/schemas/ChangeTracksResponse"
425+
$ref: "#/components/schemas/UpdateTracksResponse"
418426
examples:
419427
success:
420428
value:
@@ -515,14 +523,14 @@ components:
515523
preferredRid:
516524
type: string
517525
description: Preferred RID (Resolution ID) for simulcast streams
518-
preferredRidNotAvailable:
526+
fallbackStrategy:
519527
type: string
520528
enum:
521-
- leastbandwidth
529+
- auto
530+
- leastBandwidth
522531
- none
523-
- error
524-
default: leastbandwidth
525-
description: Fallback strategy when preferred RID is not available anymore from the remote peer
532+
default: auto
533+
description: General fallback strategy when any constraint (like preferredRid, minWidth, maxBandwidth, etc.) cannot be met. 'auto' will select the best quality possible within constraints.
526534
CloseTrackObject:
527535
type: object
528536
properties:
@@ -665,7 +673,7 @@ components:
665673
description: Map of track IDs to track objects for changing tracks
666674
sessionDescription:
667675
$ref: "#/components/schemas/SessionDescription"
668-
ChangeTracksResponse:
676+
UpdateTracksResponse:
669677
type: object
670678
properties:
671679
errorCode:

0 commit comments

Comments
 (0)