mediasoup-client 3.6.43 → 3.6.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Transport.d.ts +3 -3
- package/lib/handlers/Chrome55.d.ts +1 -0
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +31 -7
- package/lib/handlers/Chrome67.d.ts +1 -0
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +31 -7
- package/lib/handlers/Chrome70.d.ts +1 -0
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +31 -7
- package/lib/handlers/Chrome74.d.ts +1 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +31 -7
- package/lib/handlers/Firefox60.js +1 -1
- package/lib/handlers/ReactNative.d.ts +1 -0
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +31 -7
- package/lib/handlers/Safari11.d.ts +1 -0
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +31 -7
- package/lib/handlers/Safari12.d.ts +1 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +31 -7
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +2 -2
- package/src/Transport.ts +3 -3
- package/src/handlers/Chrome55.ts +36 -4
- package/src/handlers/Chrome67.ts +36 -4
- package/src/handlers/Chrome70.ts +36 -4
- package/src/handlers/Chrome74.ts +36 -4
- package/src/handlers/Firefox60.ts +1 -1
- package/src/handlers/ReactNative.ts +36 -4
- package/src/handlers/Safari11.ts +36 -4
- package/src/handlers/Safari12.ts +36 -4
package/lib/Transport.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export declare type IceCandidate = {
|
|
|
65
65
|
*/
|
|
66
66
|
port: number;
|
|
67
67
|
/**
|
|
68
|
-
* The type of candidate
|
|
68
|
+
* The type of candidate.
|
|
69
69
|
*/
|
|
70
70
|
type: 'host' | 'srflx' | 'prflx' | 'relay';
|
|
71
71
|
/**
|
|
@@ -75,11 +75,11 @@ export declare type IceCandidate = {
|
|
|
75
75
|
};
|
|
76
76
|
export declare type DtlsParameters = {
|
|
77
77
|
/**
|
|
78
|
-
* DTLS role. Default 'auto'.
|
|
78
|
+
* Server DTLS role. Default 'auto'.
|
|
79
79
|
*/
|
|
80
80
|
role?: DtlsRole;
|
|
81
81
|
/**
|
|
82
|
-
* DTLS fingerprints.
|
|
82
|
+
* Server DTLS fingerprints.
|
|
83
83
|
*/
|
|
84
84
|
fingerprints: DtlsFingerprint[];
|
|
85
85
|
};
|
|
@@ -7,6 +7,7 @@ export declare class Chrome55 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _sendStream;
|
|
12
13
|
private readonly _mapSendLocalIdTrack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -125,6 +125,11 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
125
125
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
126
126
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
127
127
|
};
|
|
128
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
129
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
130
|
+
? 'client'
|
|
131
|
+
: 'server';
|
|
132
|
+
}
|
|
128
133
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'plan-b' }, additionalSettings), proprietaryConstraints);
|
|
129
134
|
// Handle RTCPeerConnection connection status.
|
|
130
135
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -181,6 +186,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
181
186
|
return this._pc.getStats();
|
|
182
187
|
}
|
|
183
188
|
async send({ track, encodings, codecOptions, codec }) {
|
|
189
|
+
var _a;
|
|
184
190
|
this._assertSendDirection();
|
|
185
191
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
186
192
|
if (codec) {
|
|
@@ -197,8 +203,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
197
203
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
|
|
198
204
|
sendingRemoteRtpParameters.codecs =
|
|
199
205
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
200
|
-
if (!this._transportReady)
|
|
201
|
-
await this._setupTransport({
|
|
206
|
+
if (!this._transportReady) {
|
|
207
|
+
await this._setupTransport({
|
|
208
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
209
|
+
localSdpObject
|
|
210
|
+
});
|
|
211
|
+
}
|
|
202
212
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
203
213
|
logger.debug('send() | enabling simulcast');
|
|
204
214
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -301,6 +311,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
301
311
|
throw new errors_1.UnsupportedError('not implemented');
|
|
302
312
|
}
|
|
303
313
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
314
|
+
var _a;
|
|
304
315
|
this._assertSendDirection();
|
|
305
316
|
const options = {
|
|
306
317
|
negotiated: true,
|
|
@@ -323,8 +334,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
323
334
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
324
335
|
const offerMediaObject = localSdpObject.media
|
|
325
336
|
.find((m) => m.type === 'application');
|
|
326
|
-
if (!this._transportReady)
|
|
327
|
-
await this._setupTransport({
|
|
337
|
+
if (!this._transportReady) {
|
|
338
|
+
await this._setupTransport({
|
|
339
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
340
|
+
localSdpObject
|
|
341
|
+
});
|
|
342
|
+
}
|
|
328
343
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
329
344
|
await this._pc.setLocalDescription(offer);
|
|
330
345
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -342,6 +357,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
342
357
|
return { dataChannel, sctpStreamParameters };
|
|
343
358
|
}
|
|
344
359
|
async receive({ trackId, kind, rtpParameters }) {
|
|
360
|
+
var _a;
|
|
345
361
|
this._assertRecvDirection();
|
|
346
362
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
347
363
|
const localId = trackId;
|
|
@@ -368,8 +384,12 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
368
384
|
answerMediaObject
|
|
369
385
|
});
|
|
370
386
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
371
|
-
if (!this._transportReady)
|
|
372
|
-
await this._setupTransport({
|
|
387
|
+
if (!this._transportReady) {
|
|
388
|
+
await this._setupTransport({
|
|
389
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
390
|
+
localSdpObject
|
|
391
|
+
});
|
|
392
|
+
}
|
|
373
393
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
374
394
|
await this._pc.setLocalDescription(answer);
|
|
375
395
|
const stream = this._pc.getRemoteStreams()
|
|
@@ -410,6 +430,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
410
430
|
throw new errors_1.UnsupportedError('not implemented');
|
|
411
431
|
}
|
|
412
432
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
433
|
+
var _a;
|
|
413
434
|
this._assertRecvDirection();
|
|
414
435
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
415
436
|
const options = {
|
|
@@ -433,7 +454,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
433
454
|
const answer = await this._pc.createAnswer();
|
|
434
455
|
if (!this._transportReady) {
|
|
435
456
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
436
|
-
await this._setupTransport({
|
|
457
|
+
await this._setupTransport({
|
|
458
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
459
|
+
localSdpObject
|
|
460
|
+
});
|
|
437
461
|
}
|
|
438
462
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
439
463
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome67 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _sendStream;
|
|
12
13
|
private readonly _mapSendLocalIdRtpSender;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome67.js
CHANGED
|
@@ -124,6 +124,11 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
124
124
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
125
125
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
126
126
|
};
|
|
127
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
128
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
129
|
+
? 'client'
|
|
130
|
+
: 'server';
|
|
131
|
+
}
|
|
127
132
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'plan-b' }, additionalSettings), proprietaryConstraints);
|
|
128
133
|
// Handle RTCPeerConnection connection status.
|
|
129
134
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -180,6 +185,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
180
185
|
return this._pc.getStats();
|
|
181
186
|
}
|
|
182
187
|
async send({ track, encodings, codecOptions, codec }) {
|
|
188
|
+
var _a;
|
|
183
189
|
this._assertSendDirection();
|
|
184
190
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
185
191
|
if (codec) {
|
|
@@ -196,8 +202,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
196
202
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind], {});
|
|
197
203
|
sendingRemoteRtpParameters.codecs =
|
|
198
204
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
199
|
-
if (!this._transportReady)
|
|
200
|
-
await this._setupTransport({
|
|
205
|
+
if (!this._transportReady) {
|
|
206
|
+
await this._setupTransport({
|
|
207
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
208
|
+
localSdpObject
|
|
209
|
+
});
|
|
210
|
+
}
|
|
201
211
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
202
212
|
logger.debug('send() | enabling simulcast');
|
|
203
213
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -342,6 +352,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
342
352
|
return rtpSender.getStats();
|
|
343
353
|
}
|
|
344
354
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
355
|
+
var _a;
|
|
345
356
|
this._assertSendDirection();
|
|
346
357
|
const options = {
|
|
347
358
|
negotiated: true,
|
|
@@ -364,8 +375,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
364
375
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
365
376
|
const offerMediaObject = localSdpObject.media
|
|
366
377
|
.find((m) => m.type === 'application');
|
|
367
|
-
if (!this._transportReady)
|
|
368
|
-
await this._setupTransport({
|
|
378
|
+
if (!this._transportReady) {
|
|
379
|
+
await this._setupTransport({
|
|
380
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
381
|
+
localSdpObject
|
|
382
|
+
});
|
|
383
|
+
}
|
|
369
384
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
370
385
|
await this._pc.setLocalDescription(offer);
|
|
371
386
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -383,6 +398,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
383
398
|
return { dataChannel, sctpStreamParameters };
|
|
384
399
|
}
|
|
385
400
|
async receive({ trackId, kind, rtpParameters }) {
|
|
401
|
+
var _a;
|
|
386
402
|
this._assertRecvDirection();
|
|
387
403
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
388
404
|
const localId = trackId;
|
|
@@ -408,8 +424,12 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
408
424
|
answerMediaObject
|
|
409
425
|
});
|
|
410
426
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
411
|
-
if (!this._transportReady)
|
|
412
|
-
await this._setupTransport({
|
|
427
|
+
if (!this._transportReady) {
|
|
428
|
+
await this._setupTransport({
|
|
429
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
430
|
+
localSdpObject
|
|
431
|
+
});
|
|
432
|
+
}
|
|
413
433
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
414
434
|
await this._pc.setLocalDescription(answer);
|
|
415
435
|
const rtpReceiver = this._pc.getReceivers()
|
|
@@ -456,6 +476,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
456
476
|
return rtpReceiver.getStats();
|
|
457
477
|
}
|
|
458
478
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
479
|
+
var _a;
|
|
459
480
|
this._assertRecvDirection();
|
|
460
481
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
461
482
|
const options = {
|
|
@@ -479,7 +500,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
479
500
|
const answer = await this._pc.createAnswer();
|
|
480
501
|
if (!this._transportReady) {
|
|
481
502
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
482
|
-
await this._setupTransport({
|
|
503
|
+
await this._setupTransport({
|
|
504
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
505
|
+
localSdpObject
|
|
506
|
+
});
|
|
483
507
|
}
|
|
484
508
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
485
509
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome70 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _mapMidTransceiver;
|
|
12
13
|
private readonly _sendStream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome70.js
CHANGED
|
@@ -118,6 +118,11 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
118
118
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
119
119
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
120
120
|
};
|
|
121
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
122
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
123
|
+
? 'client'
|
|
124
|
+
: 'server';
|
|
125
|
+
}
|
|
121
126
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'unified-plan' }, additionalSettings), proprietaryConstraints);
|
|
122
127
|
// Handle RTCPeerConnection connection status.
|
|
123
128
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -174,6 +179,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
174
179
|
return this._pc.getStats();
|
|
175
180
|
}
|
|
176
181
|
async send({ track, encodings, codecOptions, codec }) {
|
|
182
|
+
var _a;
|
|
177
183
|
this._assertSendDirection();
|
|
178
184
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
179
185
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind], {});
|
|
@@ -189,8 +195,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
189
195
|
let offer = await this._pc.createOffer();
|
|
190
196
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
191
197
|
let offerMediaObject;
|
|
192
|
-
if (!this._transportReady)
|
|
193
|
-
await this._setupTransport({
|
|
198
|
+
if (!this._transportReady) {
|
|
199
|
+
await this._setupTransport({
|
|
200
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
201
|
+
localSdpObject
|
|
202
|
+
});
|
|
203
|
+
}
|
|
194
204
|
if (encodings && encodings.length > 1) {
|
|
195
205
|
logger.debug('send() | enabling legacy simulcast');
|
|
196
206
|
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -349,6 +359,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
349
359
|
return transceiver.sender.getStats();
|
|
350
360
|
}
|
|
351
361
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
362
|
+
var _a;
|
|
352
363
|
this._assertSendDirection();
|
|
353
364
|
const options = {
|
|
354
365
|
negotiated: true,
|
|
@@ -371,8 +382,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
371
382
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
372
383
|
const offerMediaObject = localSdpObject.media
|
|
373
384
|
.find((m) => m.type === 'application');
|
|
374
|
-
if (!this._transportReady)
|
|
375
|
-
await this._setupTransport({
|
|
385
|
+
if (!this._transportReady) {
|
|
386
|
+
await this._setupTransport({
|
|
387
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
388
|
+
localSdpObject
|
|
389
|
+
});
|
|
390
|
+
}
|
|
376
391
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
377
392
|
await this._pc.setLocalDescription(offer);
|
|
378
393
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -390,6 +405,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
390
405
|
return { dataChannel, sctpStreamParameters };
|
|
391
406
|
}
|
|
392
407
|
async receive({ trackId, kind, rtpParameters }) {
|
|
408
|
+
var _a;
|
|
393
409
|
this._assertRecvDirection();
|
|
394
410
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
395
411
|
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
@@ -414,8 +430,12 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
414
430
|
answerMediaObject
|
|
415
431
|
});
|
|
416
432
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
417
|
-
if (!this._transportReady)
|
|
418
|
-
await this._setupTransport({
|
|
433
|
+
if (!this._transportReady) {
|
|
434
|
+
await this._setupTransport({
|
|
435
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
436
|
+
localSdpObject
|
|
437
|
+
});
|
|
438
|
+
}
|
|
419
439
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
420
440
|
await this._pc.setLocalDescription(answer);
|
|
421
441
|
const transceiver = this._pc.getTransceivers()
|
|
@@ -463,6 +483,7 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
463
483
|
return transceiver.receiver.getStats();
|
|
464
484
|
}
|
|
465
485
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
486
|
+
var _a;
|
|
466
487
|
this._assertRecvDirection();
|
|
467
488
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
468
489
|
const options = {
|
|
@@ -486,7 +507,10 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
486
507
|
const answer = await this._pc.createAnswer();
|
|
487
508
|
if (!this._transportReady) {
|
|
488
509
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
489
|
-
await this._setupTransport({
|
|
510
|
+
await this._setupTransport({
|
|
511
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
512
|
+
localSdpObject
|
|
513
|
+
});
|
|
490
514
|
}
|
|
491
515
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
492
516
|
await this._pc.setLocalDescription(answer);
|
|
@@ -7,6 +7,7 @@ export declare class Chrome74 extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _mapMidTransceiver;
|
|
12
13
|
private readonly _sendStream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EACN,eAAe,EAGf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -118,6 +118,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
118
118
|
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
119
119
|
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
120
120
|
};
|
|
121
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
122
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
123
|
+
? 'client'
|
|
124
|
+
: 'server';
|
|
125
|
+
}
|
|
121
126
|
this._pc = new RTCPeerConnection(Object.assign({ iceServers: iceServers || [], iceTransportPolicy: iceTransportPolicy || 'all', bundlePolicy: 'max-bundle', rtcpMuxPolicy: 'require', sdpSemantics: 'unified-plan' }, additionalSettings), proprietaryConstraints);
|
|
122
127
|
// Handle RTCPeerConnection connection status.
|
|
123
128
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
@@ -174,6 +179,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
174
179
|
return this._pc.getStats();
|
|
175
180
|
}
|
|
176
181
|
async send({ track, encodings, codecOptions, codec }) {
|
|
182
|
+
var _a;
|
|
177
183
|
this._assertSendDirection();
|
|
178
184
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
179
185
|
if (encodings && encodings.length > 1) {
|
|
@@ -198,8 +204,12 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
198
204
|
let offer = await this._pc.createOffer();
|
|
199
205
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
200
206
|
let offerMediaObject;
|
|
201
|
-
if (!this._transportReady)
|
|
202
|
-
await this._setupTransport({
|
|
207
|
+
if (!this._transportReady) {
|
|
208
|
+
await this._setupTransport({
|
|
209
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
210
|
+
localSdpObject
|
|
211
|
+
});
|
|
212
|
+
}
|
|
203
213
|
// Special case for VP9 with SVC.
|
|
204
214
|
let hackVp9Svc = false;
|
|
205
215
|
const layers = scalabilityModes_1.parse((encodings || [{}])[0].scalabilityMode);
|
|
@@ -340,6 +350,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
340
350
|
return transceiver.sender.getStats();
|
|
341
351
|
}
|
|
342
352
|
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
353
|
+
var _a;
|
|
343
354
|
this._assertSendDirection();
|
|
344
355
|
const options = {
|
|
345
356
|
negotiated: true,
|
|
@@ -361,8 +372,12 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
361
372
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
362
373
|
const offerMediaObject = localSdpObject.media
|
|
363
374
|
.find((m) => m.type === 'application');
|
|
364
|
-
if (!this._transportReady)
|
|
365
|
-
await this._setupTransport({
|
|
375
|
+
if (!this._transportReady) {
|
|
376
|
+
await this._setupTransport({
|
|
377
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'server',
|
|
378
|
+
localSdpObject
|
|
379
|
+
});
|
|
380
|
+
}
|
|
366
381
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
367
382
|
await this._pc.setLocalDescription(offer);
|
|
368
383
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -380,6 +395,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
380
395
|
return { dataChannel, sctpStreamParameters };
|
|
381
396
|
}
|
|
382
397
|
async receive({ trackId, kind, rtpParameters }) {
|
|
398
|
+
var _a;
|
|
383
399
|
this._assertRecvDirection();
|
|
384
400
|
logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
|
|
385
401
|
const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
|
|
@@ -404,8 +420,12 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
404
420
|
answerMediaObject
|
|
405
421
|
});
|
|
406
422
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
407
|
-
if (!this._transportReady)
|
|
408
|
-
await this._setupTransport({
|
|
423
|
+
if (!this._transportReady) {
|
|
424
|
+
await this._setupTransport({
|
|
425
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
426
|
+
localSdpObject
|
|
427
|
+
});
|
|
428
|
+
}
|
|
409
429
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
410
430
|
await this._pc.setLocalDescription(answer);
|
|
411
431
|
const transceiver = this._pc.getTransceivers()
|
|
@@ -471,6 +491,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
471
491
|
return transceiver.receiver.getStats();
|
|
472
492
|
}
|
|
473
493
|
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
494
|
+
var _a;
|
|
474
495
|
this._assertRecvDirection();
|
|
475
496
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
476
497
|
const options = {
|
|
@@ -493,7 +514,10 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
493
514
|
const answer = await this._pc.createAnswer();
|
|
494
515
|
if (!this._transportReady) {
|
|
495
516
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
496
|
-
await this._setupTransport({
|
|
517
|
+
await this._setupTransport({
|
|
518
|
+
localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : 'client',
|
|
519
|
+
localSdpObject
|
|
520
|
+
});
|
|
497
521
|
}
|
|
498
522
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
499
523
|
await this._pc.setLocalDescription(answer);
|
|
@@ -388,7 +388,7 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
|
|
|
388
388
|
const offerMediaObject = localSdpObject.media
|
|
389
389
|
.find((m) => m.type === 'application');
|
|
390
390
|
if (!this._transportReady)
|
|
391
|
-
await this._setupTransport({ localDtlsRole: '
|
|
391
|
+
await this._setupTransport({ localDtlsRole: 'client', localSdpObject });
|
|
392
392
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
393
393
|
await this._pc.setLocalDescription(offer);
|
|
394
394
|
this._remoteSdp.sendSctpAssociation({ offerMediaObject });
|
|
@@ -7,6 +7,7 @@ export declare class ReactNative extends HandlerInterface {
|
|
|
7
7
|
private _remoteSdp?;
|
|
8
8
|
private _sendingRtpParametersByKind?;
|
|
9
9
|
private _sendingRemoteRtpParametersByKind?;
|
|
10
|
+
private _forcedLocalDtlsRole?;
|
|
10
11
|
private _pc;
|
|
11
12
|
private readonly _sendStream;
|
|
12
13
|
private readonly _mapSendLocalIdTrack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNative.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,WAAY,SAAQ,gBAAgB;IAGhD,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;
|
|
1
|
+
{"version":3,"file":"ReactNative.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative.ts"],"names":[],"mappings":"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"}
|