mediasoup-client 3.6.42 → 3.6.46
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 +44 -11
- package/lib/handlers/Chrome74.d.ts +1 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +44 -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.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +12 -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 +42 -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 +1 -1
- 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 +40 -4
- package/src/handlers/Chrome74.ts +40 -4
- package/src/handlers/Edge11.ts +3 -1
- package/src/handlers/Firefox60.ts +5 -1
- package/src/handlers/ReactNative.ts +37 -5
- package/src/handlers/Safari11.ts +37 -5
- package/src/handlers/Safari12.ts +40 -4
- 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;
|
|
@@ -465,6 +481,8 @@ export class Chrome74 extends HandlerInterface
|
|
|
465
481
|
answer);
|
|
466
482
|
|
|
467
483
|
await this._pc.setRemoteDescription(answer);
|
|
484
|
+
|
|
485
|
+
this._mapMidTransceiver.delete(localId);
|
|
468
486
|
}
|
|
469
487
|
|
|
470
488
|
async replaceTrack(
|
|
@@ -592,7 +610,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
592
610
|
.find((m: any) => m.type === 'application');
|
|
593
611
|
|
|
594
612
|
if (!this._transportReady)
|
|
595
|
-
|
|
613
|
+
{
|
|
614
|
+
await this._setupTransport(
|
|
615
|
+
{
|
|
616
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
617
|
+
localSdpObject
|
|
618
|
+
});
|
|
619
|
+
}
|
|
596
620
|
|
|
597
621
|
logger.debug(
|
|
598
622
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -667,7 +691,13 @@ export class Chrome74 extends HandlerInterface
|
|
|
667
691
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
668
692
|
|
|
669
693
|
if (!this._transportReady)
|
|
670
|
-
|
|
694
|
+
{
|
|
695
|
+
await this._setupTransport(
|
|
696
|
+
{
|
|
697
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
698
|
+
localSdpObject
|
|
699
|
+
});
|
|
700
|
+
}
|
|
671
701
|
|
|
672
702
|
logger.debug(
|
|
673
703
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -719,6 +749,8 @@ export class Chrome74 extends HandlerInterface
|
|
|
719
749
|
answer);
|
|
720
750
|
|
|
721
751
|
await this._pc.setLocalDescription(answer);
|
|
752
|
+
|
|
753
|
+
this._mapMidTransceiver.delete(localId);
|
|
722
754
|
}
|
|
723
755
|
|
|
724
756
|
async pauseReceiving(localId: string): Promise<void>
|
|
@@ -840,7 +872,11 @@ export class Chrome74 extends HandlerInterface
|
|
|
840
872
|
{
|
|
841
873
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
842
874
|
|
|
843
|
-
await this._setupTransport(
|
|
875
|
+
await this._setupTransport(
|
|
876
|
+
{
|
|
877
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
878
|
+
localSdpObject
|
|
879
|
+
});
|
|
844
880
|
}
|
|
845
881
|
|
|
846
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;
|
|
@@ -477,6 +477,8 @@ export class Firefox60 extends HandlerInterface
|
|
|
477
477
|
answer);
|
|
478
478
|
|
|
479
479
|
await this._pc.setRemoteDescription(answer);
|
|
480
|
+
|
|
481
|
+
this._mapMidTransceiver.delete(localId);
|
|
480
482
|
}
|
|
481
483
|
|
|
482
484
|
async replaceTrack(
|
|
@@ -608,7 +610,7 @@ export class Firefox60 extends HandlerInterface
|
|
|
608
610
|
.find((m: any) => m.type === 'application');
|
|
609
611
|
|
|
610
612
|
if (!this._transportReady)
|
|
611
|
-
await this._setupTransport({ localDtlsRole: '
|
|
613
|
+
await this._setupTransport({ localDtlsRole: 'client', localSdpObject });
|
|
612
614
|
|
|
613
615
|
logger.debug(
|
|
614
616
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -735,6 +737,8 @@ export class Firefox60 extends HandlerInterface
|
|
|
735
737
|
answer);
|
|
736
738
|
|
|
737
739
|
await this._pc.setLocalDescription(answer);
|
|
740
|
+
|
|
741
|
+
this._mapMidTransceiver.delete(localId);
|
|
738
742
|
}
|
|
739
743
|
|
|
740
744
|
async pauseReceiving(localId: string): Promise<void>
|
|
@@ -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
|
{
|
|
@@ -419,6 +435,8 @@ export class Safari12 extends HandlerInterface
|
|
|
419
435
|
answer);
|
|
420
436
|
|
|
421
437
|
await this._pc.setRemoteDescription(answer);
|
|
438
|
+
|
|
439
|
+
this._mapMidTransceiver.delete(localId);
|
|
422
440
|
}
|
|
423
441
|
|
|
424
442
|
async replaceTrack(
|
|
@@ -546,7 +564,13 @@ export class Safari12 extends HandlerInterface
|
|
|
546
564
|
.find((m: any) => m.type === 'application');
|
|
547
565
|
|
|
548
566
|
if (!this._transportReady)
|
|
549
|
-
|
|
567
|
+
{
|
|
568
|
+
await this._setupTransport(
|
|
569
|
+
{
|
|
570
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
571
|
+
localSdpObject
|
|
572
|
+
});
|
|
573
|
+
}
|
|
550
574
|
|
|
551
575
|
logger.debug(
|
|
552
576
|
'sendDataChannel() | calling pc.setLocalDescription() [offer:%o]',
|
|
@@ -621,7 +645,13 @@ export class Safari12 extends HandlerInterface
|
|
|
621
645
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
622
646
|
|
|
623
647
|
if (!this._transportReady)
|
|
624
|
-
|
|
648
|
+
{
|
|
649
|
+
await this._setupTransport(
|
|
650
|
+
{
|
|
651
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
652
|
+
localSdpObject
|
|
653
|
+
});
|
|
654
|
+
}
|
|
625
655
|
|
|
626
656
|
logger.debug(
|
|
627
657
|
'receive() | calling pc.setLocalDescription() [answer:%o]',
|
|
@@ -673,6 +703,8 @@ export class Safari12 extends HandlerInterface
|
|
|
673
703
|
answer);
|
|
674
704
|
|
|
675
705
|
await this._pc.setLocalDescription(answer);
|
|
706
|
+
|
|
707
|
+
this._mapMidTransceiver.delete(localId);
|
|
676
708
|
}
|
|
677
709
|
|
|
678
710
|
async pauseReceiving(localId: string): Promise<void>
|
|
@@ -794,7 +826,11 @@ export class Safari12 extends HandlerInterface
|
|
|
794
826
|
{
|
|
795
827
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
796
828
|
|
|
797
|
-
await this._setupTransport(
|
|
829
|
+
await this._setupTransport(
|
|
830
|
+
{
|
|
831
|
+
localDtlsRole : this._forcedLocalDtlsRole ?? 'client',
|
|
832
|
+
localSdpObject
|
|
833
|
+
});
|
|
798
834
|
}
|
|
799
835
|
|
|
800
836
|
logger.debug(
|