@@ -144,11 +144,13 @@ This a format for client reconnects.
144
144
{
145
145
publish: {
146
146
audio: true | false,
147
- video: true | false
147
+ video: true | false,
148
+ data: true | false
148
149
},
149
150
subscribe: {
150
151
audio: true | false,
151
- video: true | false
152
+ video: true | false,
153
+ data: true | false
152
154
}
153
155
}
154
156
@@ -164,7 +166,8 @@ This a format for client reconnects.
164
166
{
165
167
id: string(StreamID),
166
168
type: "forward" | "augmented" |"mixed",
167
- media: object(MediaInfo),
169
+ media: object(MediaInfo) | null,
170
+ data: object(DataInfo) | null,
168
171
info: object(PublicationInfo)/*If type equals "forward"*/
169
172
| object(AugmentInfo)/*If type equals "augmented"*/
170
173
| object(ViewInfo)/*If type equals "mixed"*/
@@ -243,7 +246,7 @@ This a format for client reconnects.
243
246
object(PublicationInfo):
244
247
{
245
248
owner: string(ParticipantId),
246
- type: "webrtc" | "streaming" | "sip",
249
+ type: "webrtc" | "streaming" | "sip" | "quic-p2p" ,
247
250
inViews: [String(ViewLabel)],
248
251
attributes: object(ClientDefinedAttributes)
249
252
}
@@ -350,14 +353,15 @@ This a format for client reconnects.
350
353
message: string(Message)
351
354
}
352
355
353
- ### 3.3.7 Participant Starts Publishing a WebRTC Stream to Room
356
+ ### 3.3.7 Participant Starts Publishing a Stream to Room
354
357
** RequestName** : “publish”<br >
355
358
356
359
** RequestData** : The PublicationRequest object with following definition:
357
360
358
361
object(PublicationRequest)::
359
362
{
360
363
media: object(WebRTCMediaOptions),
364
+ transport: object(TransportOptions),
361
365
attributes: object(ClientDefinedAttributes)
362
366
}
363
367
@@ -381,7 +385,8 @@ This a format for client reconnects.
381
385
382
386
object(PublicationResult)::
383
387
{
384
- id: string(SessionId) //will be used as the stream id when it gets ready.
388
+ transportId: string(transportId), // Can be reused in the following publication or subscription.
389
+ publicationId: string(SessionId) //will be used as the stream id when it gets ready.
385
390
}
386
391
### 3.3.8 Participant Stops Publishing a Stream to Room
387
392
** RequestName** : “unpublish”<br >
@@ -431,7 +436,8 @@ This a format for client reconnects.
431
436
432
437
object(SubscriptionRequest)::
433
438
{
434
- media: object(MediaSubOptions)
439
+ media: object(MediaSubOptions),
440
+ transport: object(TransportOptions),
435
441
}
436
442
437
443
object(MediaSubOptions)::
@@ -464,7 +470,8 @@ This a format for client reconnects.
464
470
465
471
object(SubscriptionResult)::
466
472
{
467
- id: string(SubscriptionId)
473
+ transportId: string(transportId), // Can be reused in the following publication or subscription.
474
+ subscriptionId: string(SubscriptionId)
468
475
}
469
476
### 3.3.12 Participant Stops a Self-Initiated Subscription
470
477
** RequestName** : “unsubscribe”<br >
@@ -526,7 +533,8 @@ This a format for client reconnects.
526
533
object(OfferAnswer)::
527
534
{
528
535
type: "offer" | "answer",
529
- sdp: string(SDP)
536
+ sdp: string(SDP) | null, // WebRTC connection
537
+ clientTransportParameters: object(P2PQuicClientParametersMessage) | null // QUIC connection
530
538
}
531
539
532
540
object(CandidateMessage)::
@@ -547,6 +555,30 @@ This a format for client reconnects.
547
555
sdpMLineIndex: number(mLineIndex), // optional in RemovedCandidatesMessage
548
556
candidate: string(candidateSdp)
549
557
}
558
+
559
+ object(TransportOptions)::
560
+ {
561
+ type: "webrtc" | "quic-p2p",
562
+ id: string(transportId) | null, // null will result to create a new transport channel.
563
+ }
564
+
565
+ object(P2PQuicClientParametersMessage)::
566
+ {
567
+ type: "quic-p2p-client-parameters",
568
+ quicKey: arrayBuffer(Key),
569
+ iceParameters: object(IceParameters)
570
+ }
571
+ object(P2PQuicServerParametersMessage)::
572
+ {
573
+ type: "quic-p2p-server-parameters",
574
+ iceParameters: object(IceParameters)
575
+ }
576
+
577
+ object(IceParameters)::
578
+ {
579
+ usernameFragment: string(UsernameFragment),
580
+ password: string(Password)
581
+ }
550
582
** ResponseData** : undefined if ** ResponseStatus** is “ok”.
551
583
### 3.3.15 Participant Receives Session Progress
552
584
** NotificationName** : “progress”<br >
@@ -557,7 +589,7 @@ This a format for client reconnects.
557
589
{
558
590
id: string(SessionId), /* StreamId returned in publishing or SubscriptionId returned in subscribing* /
559
591
status: "soac" | "ready" | "error",
560
- data: object(OfferAnswer) | object(CandidateMessage)/* If status equals “soac”* /
592
+ data: object(OfferAnswer) | object(CandidateMessage) | object(P2PQuicServerParametersMessage) /* If status equals “soac”* /
561
593
| (undefined/* If status equals “ready” and session is NOT for recording* /
562
594
| object(RecorderInfo)/* If status equals “ready” and session is for recording* / )
563
595
| string(Reason)/* If status equals “error”* /
0 commit comments