@@ -22,6 +22,11 @@ paths:
2222 type : string
2323 required : true
2424 description : WebRTC application ID
25+ - in : query
26+ name : thirdparty
27+ schema :
28+ type : boolean
29+ description : Session is intended to connect to an ICE-lite peer like a third party SFU/server
2530 responses :
2631 " 201 " :
2732 description : Created
@@ -75,6 +80,44 @@ paths:
7580 - location : remote
7681 sessionId : 2a45361d5fd7cc14eface0587c276c94
7782 trackName : 2e037563-a35d-4bf6-a9ee-2d474cbb9a58
83+ push_track_with_bidirectional_stream :
84+ description : Share a track through a bidirectional transceiver
85+ value :
86+ sessionDescription :
87+ sdp : |
88+ v=0
89+ o=- 0 0 IN IP4 127.0.0.1
90+ s=-
91+ c=IN IP4 127.0.0.1
92+ t=0 0
93+ m=audio 4000 RTP/AVP 111
94+ a=rtpmap:111 OPUS/48000/2
95+ m=video 4002 RTP/AVP 96
96+ a=rtpmap:96 VP8/90000
97+ ...
98+ type : offer
99+ tracks :
100+ - location : local
101+ mid : " 0"
102+ trackName : mic-1
103+ bidirectionalMediaStream : true
104+ kind : " audio"
105+ push_track_without_an_offer :
106+ description : SFU can generate an offer to push a local track
107+ value :
108+ tracks :
109+ - location : local
110+ trackName : mic-1
111+ kind : " audio"
112+ pull_track_with_bidirectional_stream :
113+ description : Pull a track through an existing bidirectional transceiver identified by a mid
114+ value :
115+ tracks :
116+ - location : remote
117+ mid : " #mic-1"
118+ sessionId : 2a45361d5fd7cc14eface0587c276c94
119+ trackName : generated-audio
120+ kind : " audio"
78121 security :
79122 - secret : []
80123 parameters :
@@ -151,9 +194,7 @@ paths:
151194 content :
152195 application/json :
153196 schema :
154- properties :
155- sessionDescription :
156- $ref : " #/components/schemas/SessionDescription"
197+ $ref : " #/components/schemas/RenegotiateRequest"
157198 example :
158199 sessionDescription :
159200 sdp : |
@@ -193,7 +234,7 @@ paths:
193234 content :
194235 application/json :
195236 schema :
196- $ref : " #/components/schemas/SessionDescription "
237+ $ref : " #/components/schemas/RenegotiateResponse "
197238 example : {}
198239 /apps/{appId}/sessions/{sessionId}/tracks/close :
199240 put :
@@ -336,13 +377,19 @@ components:
336377 description : If you want to share a track, it should be local. If you want to play a track shared by a remote agent, it should be remote
337378 mid :
338379 type : string
339- description : mid associated to track's transceiver. It should be set with local tracks only
380+ description : mid associated to track's transceiver. It also can be prefixed with \# to reference an existing transceiver by its trackName
340381 sessionId :
341382 type : string
342383 description : Session ID of the track owner. It should be set for remote tracks only
343384 trackName :
344385 type : string
345386 description : Given name for the track
387+ bidirectionalMediaStream :
388+ type : boolean
389+ description : Make the associated transceiver bidirectional. This option works only when the SFU generates the offer
390+ kind :
391+ type : string
392+ description : Give a hint to the SFU about the transceiver kind. This is required when the SFU generates the offer
346393 CloseTrackObject :
347394 type : object
348395 properties :
@@ -358,9 +405,16 @@ components:
358405 type : array
359406 items :
360407 $ref : " #/components/schemas/TrackObject"
408+ autoDiscover :
409+ type : boolean
410+ description : Assign a random track name to any new track in the offered SDP
361411 TracksResponse :
362412 type : object
363413 properties :
414+ errorCode :
415+ type : string
416+ errorDescription :
417+ type : string
364418 requiresImmediateRenegotiation :
365419 type : boolean
366420 sessionDescription :
@@ -371,21 +425,24 @@ components:
371425 allOf :
372426 - $ref : " #/components/schemas/TrackObject"
373427 - properties :
374- error :
375- type : object
376- properties :
377- errorCode :
378- type : string
379- errorDescription :
380- type : string
428+ errorCode :
429+ type : string
430+ errorDescription :
431+ type : string
381432 NewSessionRequest :
382433 type : object
383434 properties :
384435 sessionDescription :
385436 $ref : " #/components/schemas/SessionDescription"
386437 NewSessionResponse :
438+ required :
439+ - sessionId
387440 type : object
388441 properties :
442+ errorCode :
443+ type : string
444+ errorDescription :
445+ type : string
389446 sessionDescription :
390447 type : object
391448 properties :
@@ -413,6 +470,10 @@ components:
413470 CloseTracksResponse :
414471 type : object
415472 properties :
473+ errorCode :
474+ type : string
475+ errorDescription :
476+ type : string
416477 sessionDescription :
417478 $ref : " #/components/schemas/SessionDescription"
418479 tracks :
@@ -421,18 +482,19 @@ components:
421482 allOf :
422483 - $ref : " #/components/schemas/CloseTrackObject"
423484 - properties :
424- error :
425- type : object
426- properties :
427- errorCode :
428- type : string
429- errorDescription :
430- type : string
485+ errorCode :
486+ type : string
487+ errorDescription :
488+ type : string
431489 requiresImmediateRenegotiation :
432490 type : boolean
433491 GetSessionStateResponse :
434492 type : object
435493 properties :
494+ errorCode :
495+ type : string
496+ errorDescription :
497+ type : string
436498 tracks :
437499 type : array
438500 items :
@@ -445,3 +507,20 @@ components:
445507 - active
446508 - inactive
447509 - waiting
510+ RenegotiateRequest :
511+ type : object
512+ properties :
513+ sessionDescription :
514+ $ref : " #/components/schemas/SessionDescription"
515+ RenegotiateResponse :
516+ type : object
517+ properties :
518+ errorCode :
519+ type : string
520+ errorDescription :
521+ type : string
522+ sessionDescription :
523+ $ref : " #/components/schemas/SessionDescription"
524+
525+
526+
0 commit comments