mediasoup-client 3.6.43 → 3.6.47
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/DataConsumer.d.ts +2 -2
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +7 -3
- package/lib/Logger.js +6 -6
- package/lib/Transport.d.ts +3 -3
- package/lib/Transport.js +1 -1
- package/lib/handlers/Chrome55.d.ts +1 -0
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +40 -9
- package/lib/handlers/Chrome67.d.ts +1 -0
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +41 -10
- package/lib/handlers/Chrome70.d.ts +1 -0
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +42 -11
- package/lib/handlers/Chrome74.d.ts +1 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +42 -11
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +3 -2
- package/lib/handlers/FakeHandler.js +1 -1
- package/lib/handlers/Firefox60.js +10 -4
- package/lib/handlers/ReactNative.d.ts +1 -0
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +40 -9
- package/lib/handlers/Safari11.d.ts +1 -0
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +40 -10
- package/lib/handlers/Safari12.d.ts +1 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +40 -10
- package/lib/handlers/ortc/edgeUtils.js +1 -1
- package/lib/handlers/sdp/MediaSection.js +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +1 -1
- package/lib/handlers/sdp/commonUtils.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/ortc.js +5 -5
- package/lib/types.js +1 -1
- package/package.json +9 -9
- package/src/DataConsumer.ts +2 -2
- package/src/Device.ts +7 -2
- package/src/Transport.ts +3 -3
- package/src/handlers/Chrome55.ts +37 -5
- package/src/handlers/Chrome67.ts +37 -5
- package/src/handlers/Chrome70.ts +36 -4
- package/src/handlers/Chrome74.ts +36 -4
- package/src/handlers/Edge11.ts +3 -1
- package/src/handlers/Firefox60.ts +1 -1
- package/src/handlers/ReactNative.ts +37 -5
- package/src/handlers/Safari11.ts +37 -5
- package/src/handlers/Safari12.ts +36 -4
- package/src/ortc.ts +6 -6
- package/tsconfig.json +1 -1
package/src/handlers/Chrome74.ts
CHANGED
|
@@ -42,6 +42,9 @@ export class Chrome74 extends HandlerInterface
|
|
|
42
42
|
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
43
43
|
// remote answer.
|
|
44
44
|
private _sendingRemoteRtpParametersByKind?: { [key: string]: RtpParameters };
|
|
45
|
+
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
46
|
+
// value in client side.
|
|
47
|
+
private _forcedLocalDtlsRole?: DtlsRole;
|
|
45
48
|
// RTCPeerConnection instance.
|
|
46
49
|
private _pc: any;
|
|
47
50
|
// Map of RTCTransceivers indexed by MID.
|
|
@@ -172,6 +175,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
172
175
|
video : ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
173
176
|
};
|
|
174
177
|
|
|
178
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto')
|
|
179
|
+
{
|
|
180
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
181
|
+
? 'client'
|
|
182
|
+
: 'server';
|
|
183
|
+
}
|
|
184
|
+
|
|
175
185
|
this._pc = new (RTCPeerConnection as any)(
|
|
176
186
|
{
|
|
177
187
|
iceServers : iceServers || [],
|
|
@@ -315,7 +325,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
315
325
|
let offerMediaObject;
|
|
316
326
|
|
|
317
327
|
if (!this._transportReady)
|
|
318
|
-
|
|
328
|
+
{
|
|
329
|
+
await this._setupTransport(
|
|
330
|
+
{
|
|
331
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
332
|
+
localSdpObject
|
|
333
|
+
});
|
|
334
|
+
}
|
|
319
335
|
|
|
320
336
|
// Special case for VP9 with SVC.
|
|
321
337
|
let hackVp9Svc = false;
|
|
@@ -594,7 +610,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
594
610
|
.find((m: any) => m.type === 'application');
|
|
595
611
|
|
|
596
612
|
if (!this._transportReady)
|
|
597
|
-
|
|
613
|
+
{
|
|
614
|
+
await this._setupTransport(
|
|
615
|
+
{
|
|
616
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
617
|
+
localSdpObject
|
|
618
|
+
});
|
|
619
|
+
}
|
|
598
620
|
|
|
599
621
|
logger.debug(
|
|
600
622
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -669,7 +691,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
669
691
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
670
692
|
|
|
671
693
|
if (!this._transportReady)
|
|
672
|
-
|
|
694
|
+
{
|
|
695
|
+
await this._setupTransport(
|
|
696
|
+
{
|
|
697
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
698
|
+
localSdpObject
|
|
699
|
+
});
|
|
700
|
+
}
|
|
673
701
|
|
|
674
702
|
logger.debug(
|
|
675
703
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -844,7 +872,11 @@ export class Chrome74 extends HandlerInterface
|
|
|
844
872
|
{
|
|
845
873
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
846
874
|
|
|
847
|
-
await this._setupTransport(
|
|
875
|
+
await this._setupTransport(
|
|
876
|
+
{
|
|
877
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
878
|
+
localSdpObject
|
|
879
|
+
});
|
|
848
880
|
}
|
|
849
881
|
|
|
850
882
|
logger.debug(
|
package/src/handlers/Edge11.ts
CHANGED
|
@@ -461,6 +461,7 @@ export class Edge11 extends HandlerInterface
|
|
|
461
461
|
{ iceServers?: any[]; iceTransportPolicy?: RTCIceTransportPolicy }
|
|
462
462
|
): void
|
|
463
463
|
{
|
|
464
|
+
// @ts-ignore
|
|
464
465
|
const iceGatherer = new (RTCIceGatherer as any)(
|
|
465
466
|
{
|
|
466
467
|
iceServers : iceServers || [],
|
|
@@ -480,7 +481,8 @@ export class Edge11 extends HandlerInterface
|
|
|
480
481
|
catch (error)
|
|
481
482
|
{
|
|
482
483
|
logger.debug(
|
|
483
|
-
'_setIceGatherer() | iceGatherer.gather() failed: %s',
|
|
484
|
+
'_setIceGatherer() | iceGatherer.gather() failed: %s',
|
|
485
|
+
(error as Error).toString());
|
|
484
486
|
}
|
|
485
487
|
|
|
486
488
|
this._iceGatherer = iceGatherer;
|
|
@@ -610,7 +610,7 @@ export class Firefox60 extends HandlerInterface
|
|
|
610
610
|
.find((m: any) => m.type === 'application');
|
|
611
611
|
|
|
612
612
|
if (!this._transportReady)
|
|
613
|
-
await this._setupTransport({ localDtlsRole: '
|
|
613
|
+
await this._setupTransport({ localDtlsRole: 'client', localSdpObject });
|
|
614
614
|
|
|
615
615
|
logger.debug(
|
|
616
616
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -38,6 +38,9 @@ export class ReactNative extends HandlerInterface
|
|
|
38
38
|
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
39
39
|
// remote answer.
|
|
40
40
|
private _sendingRemoteRtpParametersByKind?: { [key: string]: RtpParameters };
|
|
41
|
+
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
42
|
+
// value in client side.
|
|
43
|
+
private _forcedLocalDtlsRole?: DtlsRole;
|
|
41
44
|
// RTCPeerConnection instance.
|
|
42
45
|
private _pc: any;
|
|
43
46
|
// Local stream for sending.
|
|
@@ -186,6 +189,13 @@ export class ReactNative extends HandlerInterface
|
|
|
186
189
|
video : ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
187
190
|
};
|
|
188
191
|
|
|
192
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto')
|
|
193
|
+
{
|
|
194
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
195
|
+
? 'client'
|
|
196
|
+
: 'server';
|
|
197
|
+
}
|
|
198
|
+
|
|
189
199
|
this._pc = new (RTCPeerConnection as any)(
|
|
190
200
|
{
|
|
191
201
|
iceServers : iceServers || [],
|
|
@@ -320,7 +330,13 @@ export class ReactNative extends HandlerInterface
|
|
|
320
330
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
321
331
|
|
|
322
332
|
if (!this._transportReady)
|
|
323
|
-
|
|
333
|
+
{
|
|
334
|
+
await this._setupTransport(
|
|
335
|
+
{
|
|
336
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
337
|
+
localSdpObject
|
|
338
|
+
});
|
|
339
|
+
}
|
|
324
340
|
|
|
325
341
|
if (track.kind === 'video' && encodings && encodings.length > 1)
|
|
326
342
|
{
|
|
@@ -446,7 +462,7 @@ export class ReactNative extends HandlerInterface
|
|
|
446
462
|
{
|
|
447
463
|
logger.warn(
|
|
448
464
|
'stopSending() | ignoring expected error due no sending tracks: %s',
|
|
449
|
-
error.toString());
|
|
465
|
+
(error as Error).toString());
|
|
450
466
|
|
|
451
467
|
return;
|
|
452
468
|
}
|
|
@@ -533,7 +549,13 @@ export class ReactNative extends HandlerInterface
|
|
|
533
549
|
.find((m: any) => m.type === 'application');
|
|
534
550
|
|
|
535
551
|
if (!this._transportReady)
|
|
536
|
-
|
|
552
|
+
{
|
|
553
|
+
await this._setupTransport(
|
|
554
|
+
{
|
|
555
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
556
|
+
localSdpObject
|
|
557
|
+
});
|
|
558
|
+
}
|
|
537
559
|
|
|
538
560
|
logger.debug(
|
|
539
561
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -619,7 +641,13 @@ export class ReactNative extends HandlerInterface
|
|
|
619
641
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
620
642
|
|
|
621
643
|
if (!this._transportReady)
|
|
622
|
-
|
|
644
|
+
{
|
|
645
|
+
await this._setupTransport(
|
|
646
|
+
{
|
|
647
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
648
|
+
localSdpObject
|
|
649
|
+
});
|
|
650
|
+
}
|
|
623
651
|
|
|
624
652
|
logger.debug(
|
|
625
653
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -739,7 +767,11 @@ export class ReactNative extends HandlerInterface
|
|
|
739
767
|
{
|
|
740
768
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
741
769
|
|
|
742
|
-
await this._setupTransport(
|
|
770
|
+
await this._setupTransport(
|
|
771
|
+
{
|
|
772
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
773
|
+
localSdpObject
|
|
774
|
+
});
|
|
743
775
|
}
|
|
744
776
|
|
|
745
777
|
logger.debug(
|
package/src/handlers/Safari11.ts
CHANGED
|
@@ -37,6 +37,9 @@ export class Safari11 extends HandlerInterface
|
|
|
37
37
|
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
38
38
|
// remote answer.
|
|
39
39
|
private _sendingRemoteRtpParametersByKind?: { [key: string]: RtpParameters };
|
|
40
|
+
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
41
|
+
// value in client side.
|
|
42
|
+
private _forcedLocalDtlsRole?: DtlsRole;
|
|
40
43
|
// RTCPeerConnection instance.
|
|
41
44
|
private _pc: any;
|
|
42
45
|
// Local stream for sending.
|
|
@@ -182,6 +185,13 @@ export class Safari11 extends HandlerInterface
|
|
|
182
185
|
video : ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
183
186
|
};
|
|
184
187
|
|
|
188
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto')
|
|
189
|
+
{
|
|
190
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
191
|
+
? 'client'
|
|
192
|
+
: 'server';
|
|
193
|
+
}
|
|
194
|
+
|
|
185
195
|
this._pc = new (RTCPeerConnection as any)(
|
|
186
196
|
{
|
|
187
197
|
iceServers : iceServers || [],
|
|
@@ -315,7 +325,13 @@ export class Safari11 extends HandlerInterface
|
|
|
315
325
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
316
326
|
|
|
317
327
|
if (!this._transportReady)
|
|
318
|
-
|
|
328
|
+
{
|
|
329
|
+
await this._setupTransport(
|
|
330
|
+
{
|
|
331
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
332
|
+
localSdpObject
|
|
333
|
+
});
|
|
334
|
+
}
|
|
319
335
|
|
|
320
336
|
if (track.kind === 'video' && encodings && encodings.length > 1)
|
|
321
337
|
{
|
|
@@ -441,7 +457,7 @@ export class Safari11 extends HandlerInterface
|
|
|
441
457
|
{
|
|
442
458
|
logger.warn(
|
|
443
459
|
'stopSending() | ignoring expected error due no sending tracks: %s',
|
|
444
|
-
error.toString());
|
|
460
|
+
(error as Error).toString());
|
|
445
461
|
|
|
446
462
|
return;
|
|
447
463
|
}
|
|
@@ -596,7 +612,13 @@ export class Safari11 extends HandlerInterface
|
|
|
596
612
|
.find((m: any) => m.type === 'application');
|
|
597
613
|
|
|
598
614
|
if (!this._transportReady)
|
|
599
|
-
|
|
615
|
+
{
|
|
616
|
+
await this._setupTransport(
|
|
617
|
+
{
|
|
618
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
619
|
+
localSdpObject
|
|
620
|
+
});
|
|
621
|
+
}
|
|
600
622
|
|
|
601
623
|
logger.debug(
|
|
602
624
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -672,7 +694,13 @@ export class Safari11 extends HandlerInterface
|
|
|
672
694
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
673
695
|
|
|
674
696
|
if (!this._transportReady)
|
|
675
|
-
|
|
697
|
+
{
|
|
698
|
+
await this._setupTransport(
|
|
699
|
+
{
|
|
700
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
701
|
+
localSdpObject
|
|
702
|
+
});
|
|
703
|
+
}
|
|
676
704
|
|
|
677
705
|
logger.debug(
|
|
678
706
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -800,7 +828,11 @@ export class Safari11 extends HandlerInterface
|
|
|
800
828
|
{
|
|
801
829
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
802
830
|
|
|
803
|
-
await this._setupTransport(
|
|
831
|
+
await this._setupTransport(
|
|
832
|
+
{
|
|
833
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
834
|
+
localSdpObject
|
|
835
|
+
});
|
|
804
836
|
}
|
|
805
837
|
|
|
806
838
|
logger.debug(
|
package/src/handlers/Safari12.ts
CHANGED
|
@@ -37,6 +37,9 @@ export class Safari12 extends HandlerInterface
|
|
|
37
37
|
// Generic sending RTP parameters for audio and video suitable for the SDP
|
|
38
38
|
// remote answer.
|
|
39
39
|
private _sendingRemoteRtpParametersByKind?: { [key: string]: RtpParameters };
|
|
40
|
+
// Initial server side DTLS role. If not 'auto', it will force the opposite
|
|
41
|
+
// value in client side.
|
|
42
|
+
private _forcedLocalDtlsRole?: DtlsRole;
|
|
40
43
|
// RTCPeerConnection instance.
|
|
41
44
|
private _pc: any;
|
|
42
45
|
// Map of RTCTransceivers indexed by MID.
|
|
@@ -166,6 +169,13 @@ export class Safari12 extends HandlerInterface
|
|
|
166
169
|
video : ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
167
170
|
};
|
|
168
171
|
|
|
172
|
+
if (dtlsParameters.role && dtlsParameters.role !== 'auto')
|
|
173
|
+
{
|
|
174
|
+
this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
|
|
175
|
+
? 'client'
|
|
176
|
+
: 'server';
|
|
177
|
+
}
|
|
178
|
+
|
|
169
179
|
this._pc = new (RTCPeerConnection as any)(
|
|
170
180
|
{
|
|
171
181
|
iceServers : iceServers || [],
|
|
@@ -295,7 +305,13 @@ export class Safari12 extends HandlerInterface
|
|
|
295
305
|
let offerMediaObject;
|
|
296
306
|
|
|
297
307
|
if (!this._transportReady)
|
|
298
|
-
|
|
308
|
+
{
|
|
309
|
+
await this._setupTransport(
|
|
310
|
+
{
|
|
311
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
312
|
+
localSdpObject
|
|
313
|
+
});
|
|
314
|
+
}
|
|
299
315
|
|
|
300
316
|
if (encodings && encodings.length > 1)
|
|
301
317
|
{
|
|
@@ -548,7 +564,13 @@ export class Safari12 extends HandlerInterface
|
|
|
548
564
|
.find((m: any) => m.type === 'application');
|
|
549
565
|
|
|
550
566
|
if (!this._transportReady)
|
|
551
|
-
|
|
567
|
+
{
|
|
568
|
+
await this._setupTransport(
|
|
569
|
+
{
|
|
570
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
571
|
+
localSdpObject
|
|
572
|
+
});
|
|
573
|
+
}
|
|
552
574
|
|
|
553
575
|
logger.debug(
|
|
554
576
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -623,7 +645,13 @@ export class Safari12 extends HandlerInterface
|
|
|
623
645
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
624
646
|
|
|
625
647
|
if (!this._transportReady)
|
|
626
|
-
|
|
648
|
+
{
|
|
649
|
+
await this._setupTransport(
|
|
650
|
+
{
|
|
651
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
652
|
+
localSdpObject
|
|
653
|
+
});
|
|
654
|
+
}
|
|
627
655
|
|
|
628
656
|
logger.debug(
|
|
629
657
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -798,7 +826,11 @@ export class Safari12 extends HandlerInterface
|
|
|
798
826
|
{
|
|
799
827
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
800
828
|
|
|
801
|
-
await this._setupTransport(
|
|
829
|
+
await this._setupTransport(
|
|
830
|
+
{
|
|
831
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
832
|
+
localSdpObject
|
|
833
|
+
});
|
|
802
834
|
}
|
|
803
835
|
|
|
804
836
|
logger.debug(
|
package/src/ortc.ts
CHANGED
|
@@ -1073,15 +1073,15 @@ function matchCodecs(
|
|
|
1073
1073
|
{
|
|
1074
1074
|
case 'video/h264':
|
|
1075
1075
|
{
|
|
1076
|
-
const aPacketizationMode = aCodec.parameters['packetization-mode'] || 0;
|
|
1077
|
-
const bPacketizationMode = bCodec.parameters['packetization-mode'] || 0;
|
|
1078
|
-
|
|
1079
|
-
if (aPacketizationMode !== bPacketizationMode)
|
|
1080
|
-
return false;
|
|
1081
|
-
|
|
1082
1076
|
// If strict matching check profile-level-id.
|
|
1083
1077
|
if (strict)
|
|
1084
1078
|
{
|
|
1079
|
+
const aPacketizationMode = aCodec.parameters['packetization-mode'] || 0;
|
|
1080
|
+
const bPacketizationMode = bCodec.parameters['packetization-mode'] || 0;
|
|
1081
|
+
|
|
1082
|
+
if (aPacketizationMode !== bPacketizationMode)
|
|
1083
|
+
return false;
|
|
1084
|
+
|
|
1085
1085
|
if (!h264.isSameProfile(aCodec.parameters, bCodec.parameters))
|
|
1086
1086
|
return false;
|
|
1087
1087
|
|