mediasoup-client 3.7.1 → 3.7.3
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/README.md +85 -112
- package/lib/Consumer.d.ts +1 -1
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +1 -1
- package/lib/DataConsumer.d.ts +1 -1
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +1 -1
- package/lib/DataProducer.d.ts +1 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +1 -1
- package/lib/Device.d.ts +3 -3
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +66 -89
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Producer.d.ts +5 -15
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +2 -2
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +21 -11
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +73 -55
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +6 -6
- package/lib/handlers/Chrome111.d.ts +4 -4
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +79 -78
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +88 -81
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +90 -84
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +81 -79
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +80 -79
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +66 -78
- package/lib/handlers/FakeHandler.d.ts +3 -3
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +20 -22
- package/lib/handlers/Firefox60.d.ts +4 -4
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +80 -73
- package/lib/handlers/HandlerInterface.d.ts +1 -0
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +4 -4
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +89 -83
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +80 -79
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +89 -82
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +80 -78
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.js +2 -2
- package/lib/handlers/sdp/MediaSection.d.ts +5 -5
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +296 -318
- package/lib/handlers/sdp/RemoteSdp.d.ts +5 -5
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +28 -30
- package/lib/handlers/sdp/commonUtils.d.ts +8 -5
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +71 -59
- package/lib/handlers/sdp/plainRtpUtils.d.ts +2 -2
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +5 -7
- package/lib/handlers/sdp/planBUtils.d.ts +2 -2
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +11 -14
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +2 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +11 -14
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts +4 -58
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +432 -478
- package/lib/scalabilityModes.d.ts.map +1 -1
- package/lib/scalabilityModes.js +2 -2
- package/lib/{tests → test}/fakeParameters.d.ts +3 -2
- package/lib/test/fakeParameters.d.ts.map +1 -0
- package/lib/test/fakeParameters.js +654 -0
- package/lib/{tests → test}/test.d.ts.map +1 -1
- package/lib/{tests → test}/test.js +469 -496
- package/lib/test/uaTestCases.d.ts.map +1 -0
- package/lib/{tests → test}/uaTestCases.js +17 -17
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/npm-scripts.mjs +75 -103
- package/package.json +93 -90
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -662
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- /package/lib/{tests → test}/test.d.ts +0 -0
- /package/lib/{tests → test}/uaTestCases.d.ts +0 -0
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -84,7 +84,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
84
84
|
iceTransportPolicy: 'all',
|
|
85
85
|
bundlePolicy: 'max-bundle',
|
|
86
86
|
rtcpMuxPolicy: 'require',
|
|
87
|
-
sdpSemantics: 'unified-plan'
|
|
87
|
+
sdpSemantics: 'unified-plan',
|
|
88
88
|
});
|
|
89
89
|
try {
|
|
90
90
|
pc.addTransceiver('audio');
|
|
@@ -95,7 +95,9 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
95
95
|
}
|
|
96
96
|
catch (error) { }
|
|
97
97
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
98
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
98
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
99
|
+
sdpObject,
|
|
100
|
+
});
|
|
99
101
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
100
102
|
ortcUtils.addNackSuppportForOpus(nativeRtpCapabilities);
|
|
101
103
|
return nativeRtpCapabilities;
|
|
@@ -111,32 +113,29 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
111
113
|
async getNativeSctpCapabilities() {
|
|
112
114
|
logger.debug('getNativeSctpCapabilities()');
|
|
113
115
|
return {
|
|
114
|
-
numStreams: SCTP_NUM_STREAMS
|
|
116
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
115
117
|
};
|
|
116
118
|
}
|
|
117
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
119
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
|
|
118
120
|
logger.debug('run()');
|
|
119
121
|
this._direction = direction;
|
|
120
122
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
121
123
|
iceParameters,
|
|
122
124
|
iceCandidates,
|
|
123
125
|
dtlsParameters,
|
|
124
|
-
sctpParameters
|
|
126
|
+
sctpParameters,
|
|
125
127
|
});
|
|
126
|
-
this._sendingRtpParametersByKind =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
135
|
-
};
|
|
128
|
+
this._sendingRtpParametersByKind = {
|
|
129
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
130
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
131
|
+
};
|
|
132
|
+
this._sendingRemoteRtpParametersByKind = {
|
|
133
|
+
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
134
|
+
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
135
|
+
};
|
|
136
136
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
137
|
-
this._forcedLocalDtlsRole =
|
|
138
|
-
? 'client'
|
|
139
|
-
: 'server';
|
|
137
|
+
this._forcedLocalDtlsRole =
|
|
138
|
+
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
140
139
|
}
|
|
141
140
|
this._pc = new RTCPeerConnection({
|
|
142
141
|
iceServers: iceServers || [],
|
|
@@ -144,7 +143,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
144
143
|
bundlePolicy: 'max-bundle',
|
|
145
144
|
rtcpMuxPolicy: 'require',
|
|
146
145
|
sdpSemantics: 'unified-plan',
|
|
147
|
-
...additionalSettings
|
|
146
|
+
...additionalSettings,
|
|
148
147
|
}, proprietaryConstraints);
|
|
149
148
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
150
149
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
@@ -158,32 +157,27 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
158
157
|
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
159
158
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
160
159
|
switch (this._pc.iceConnectionState) {
|
|
161
|
-
case 'checking':
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
160
|
+
case 'checking': {
|
|
161
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
166
164
|
case 'connected':
|
|
167
|
-
case 'completed':
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
{
|
|
184
|
-
this.emit('@connectionstatechange', 'closed');
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
165
|
+
case 'completed': {
|
|
166
|
+
this.emit('@connectionstatechange', 'connected');
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case 'failed': {
|
|
170
|
+
this.emit('@connectionstatechange', 'failed');
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
case 'disconnected': {
|
|
174
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case 'closed': {
|
|
178
|
+
this.emit('@connectionstatechange', 'closed');
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
187
181
|
}
|
|
188
182
|
});
|
|
189
183
|
}
|
|
@@ -224,7 +218,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
224
218
|
this.assertNotClosed();
|
|
225
219
|
return this._pc.getStats();
|
|
226
220
|
}
|
|
227
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
221
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
228
222
|
this.assertNotClosed();
|
|
229
223
|
this.assertSendDirection();
|
|
230
224
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
@@ -235,17 +229,15 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
235
229
|
}
|
|
236
230
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
237
231
|
// This may throw.
|
|
238
|
-
sendingRtpParameters.codecs =
|
|
239
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
232
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
240
233
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
241
234
|
// This may throw.
|
|
242
|
-
sendingRemoteRtpParameters.codecs =
|
|
243
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
235
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
244
236
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
245
237
|
const transceiver = this._pc.addTransceiver(track, {
|
|
246
238
|
direction: 'sendonly',
|
|
247
239
|
streams: [this._sendStream],
|
|
248
|
-
sendEncodings: encodings
|
|
240
|
+
sendEncodings: encodings,
|
|
249
241
|
});
|
|
250
242
|
let offer = await this._pc.createOffer();
|
|
251
243
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -253,7 +245,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
253
245
|
if (!this._transportReady) {
|
|
254
246
|
await this.setupTransport({
|
|
255
247
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
256
|
-
localSdpObject
|
|
248
|
+
localSdpObject,
|
|
257
249
|
});
|
|
258
250
|
}
|
|
259
251
|
// Special case for VP9 with SVC.
|
|
@@ -269,7 +261,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
269
261
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
270
262
|
sdpUnifiedPlanUtils.addLegacySimulcast({
|
|
271
263
|
offerMediaObject,
|
|
272
|
-
numStreams: layers.spatialLayers
|
|
264
|
+
numStreams: layers.spatialLayers,
|
|
273
265
|
});
|
|
274
266
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
275
267
|
}
|
|
@@ -282,17 +274,21 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
282
274
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
283
275
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
284
276
|
// Set RTCP CNAME.
|
|
285
|
-
sendingRtpParameters.rtcp.cname =
|
|
286
|
-
|
|
277
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
278
|
+
offerMediaObject,
|
|
279
|
+
});
|
|
287
280
|
// Set RTP encodings by parsing the SDP offer if no encodings are given.
|
|
288
281
|
if (!encodings) {
|
|
289
|
-
sendingRtpParameters.encodings =
|
|
290
|
-
|
|
282
|
+
sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
283
|
+
offerMediaObject,
|
|
284
|
+
});
|
|
291
285
|
}
|
|
292
286
|
// Set RTP encodings by parsing the SDP offer and complete them with given
|
|
293
287
|
// one if just a single encoding has been given.
|
|
294
288
|
else if (encodings.length === 1) {
|
|
295
|
-
let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
289
|
+
let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
290
|
+
offerMediaObject,
|
|
291
|
+
});
|
|
296
292
|
Object.assign(newEncodings[0], encodings[0]);
|
|
297
293
|
// Hack for VP9 SVC.
|
|
298
294
|
if (hackVp9Svc) {
|
|
@@ -324,7 +320,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
324
320
|
offerRtpParameters: sendingRtpParameters,
|
|
325
321
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
326
322
|
codecOptions,
|
|
327
|
-
extmapAllowMixed: true
|
|
323
|
+
extmapAllowMixed: true,
|
|
328
324
|
});
|
|
329
325
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
330
326
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -334,7 +330,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
334
330
|
return {
|
|
335
331
|
localId,
|
|
336
332
|
rtpParameters: sendingRtpParameters,
|
|
337
|
-
rtpSender: transceiver.sender
|
|
333
|
+
rtpSender: transceiver.sender,
|
|
338
334
|
};
|
|
339
335
|
}
|
|
340
336
|
async stopSending(localId) {
|
|
@@ -469,7 +465,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
469
465
|
}
|
|
470
466
|
return transceiver.sender.getStats();
|
|
471
467
|
}
|
|
472
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
468
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
473
469
|
this.assertNotClosed();
|
|
474
470
|
this.assertSendDirection();
|
|
475
471
|
const options = {
|
|
@@ -478,7 +474,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
478
474
|
ordered,
|
|
479
475
|
maxPacketLifeTime,
|
|
480
476
|
maxRetransmits,
|
|
481
|
-
protocol
|
|
477
|
+
protocol,
|
|
482
478
|
};
|
|
483
479
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
484
480
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -490,12 +486,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
490
486
|
if (!this._hasDataChannelMediaSection) {
|
|
491
487
|
const offer = await this._pc.createOffer();
|
|
492
488
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
493
|
-
const offerMediaObject = localSdpObject.media
|
|
494
|
-
.find((m) => m.type === 'application');
|
|
489
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
495
490
|
if (!this._transportReady) {
|
|
496
491
|
await this.setupTransport({
|
|
497
492
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
498
|
-
localSdpObject
|
|
493
|
+
localSdpObject,
|
|
499
494
|
});
|
|
500
495
|
}
|
|
501
496
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -510,7 +505,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
510
505
|
streamId: options.id,
|
|
511
506
|
ordered: options.ordered,
|
|
512
507
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
513
|
-
maxRetransmits: options.maxRetransmits
|
|
508
|
+
maxRetransmits: options.maxRetransmits,
|
|
514
509
|
};
|
|
515
510
|
return { dataChannel, sctpStreamParameters };
|
|
516
511
|
}
|
|
@@ -529,7 +524,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
529
524
|
kind,
|
|
530
525
|
offerRtpParameters: rtpParameters,
|
|
531
526
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
532
|
-
trackId
|
|
527
|
+
trackId,
|
|
533
528
|
});
|
|
534
529
|
}
|
|
535
530
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -540,20 +535,19 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
540
535
|
for (const options of optionsList) {
|
|
541
536
|
const { trackId, rtpParameters } = options;
|
|
542
537
|
const localId = mapLocalId.get(trackId);
|
|
543
|
-
const answerMediaObject = localSdpObject.media
|
|
544
|
-
.find((m) => String(m.mid) === localId);
|
|
538
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
|
|
545
539
|
// May need to modify codec parameters in the answer based on codec
|
|
546
540
|
// parameters in the offer.
|
|
547
541
|
sdpCommonUtils.applyCodecParameters({
|
|
548
542
|
offerRtpParameters: rtpParameters,
|
|
549
|
-
answerMediaObject
|
|
543
|
+
answerMediaObject,
|
|
550
544
|
});
|
|
551
545
|
}
|
|
552
546
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
553
547
|
if (!this._transportReady) {
|
|
554
548
|
await this.setupTransport({
|
|
555
549
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
556
|
-
localSdpObject
|
|
550
|
+
localSdpObject,
|
|
557
551
|
});
|
|
558
552
|
}
|
|
559
553
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -561,7 +555,8 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
561
555
|
for (const options of optionsList) {
|
|
562
556
|
const { trackId } = options;
|
|
563
557
|
const localId = mapLocalId.get(trackId);
|
|
564
|
-
const transceiver = this._pc
|
|
558
|
+
const transceiver = this._pc
|
|
559
|
+
.getTransceivers()
|
|
565
560
|
.find((t) => t.mid === localId);
|
|
566
561
|
if (!transceiver) {
|
|
567
562
|
throw new Error('new RTCRtpTransceiver not found');
|
|
@@ -572,7 +567,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
572
567
|
results.push({
|
|
573
568
|
localId,
|
|
574
569
|
track: transceiver.receiver.track,
|
|
575
|
-
rtpReceiver: transceiver.receiver
|
|
570
|
+
rtpReceiver: transceiver.receiver,
|
|
576
571
|
});
|
|
577
572
|
}
|
|
578
573
|
}
|
|
@@ -648,17 +643,17 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
648
643
|
}
|
|
649
644
|
return transceiver.receiver.getStats();
|
|
650
645
|
}
|
|
651
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
646
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
652
647
|
this.assertNotClosed();
|
|
653
648
|
this.assertRecvDirection();
|
|
654
|
-
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
649
|
+
const { streamId, ordered, maxPacketLifeTime, maxRetransmits, } = sctpStreamParameters;
|
|
655
650
|
const options = {
|
|
656
651
|
negotiated: true,
|
|
657
652
|
id: streamId,
|
|
658
653
|
ordered,
|
|
659
654
|
maxPacketLifeTime,
|
|
660
655
|
maxRetransmits,
|
|
661
|
-
protocol
|
|
656
|
+
protocol,
|
|
662
657
|
};
|
|
663
658
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
664
659
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -674,7 +669,7 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
674
669
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
675
670
|
await this.setupTransport({
|
|
676
671
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
677
|
-
localSdpObject
|
|
672
|
+
localSdpObject,
|
|
678
673
|
});
|
|
679
674
|
}
|
|
680
675
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -683,19 +678,25 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
683
678
|
}
|
|
684
679
|
return { dataChannel };
|
|
685
680
|
}
|
|
686
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
681
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
687
682
|
if (!localSdpObject) {
|
|
688
683
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
689
684
|
}
|
|
685
|
+
// Get our local ICE parameters.
|
|
686
|
+
const iceParameters = sdpCommonUtils.extractIceParameters({
|
|
687
|
+
sdpObject: localSdpObject,
|
|
688
|
+
});
|
|
690
689
|
// Get our local DTLS parameters.
|
|
691
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
690
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
691
|
+
sdpObject: localSdpObject,
|
|
692
|
+
});
|
|
692
693
|
// Set our DTLS role.
|
|
693
694
|
dtlsParameters.role = localDtlsRole;
|
|
694
695
|
// Update the remote DTLS role in the SDP.
|
|
695
696
|
this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
|
|
696
697
|
// Need to tell the remote transport about our parameters.
|
|
697
698
|
await new Promise((resolve, reject) => {
|
|
698
|
-
this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
|
|
699
|
+
this.safeEmit('@connect', { iceParameters, dtlsParameters }, resolve, reject);
|
|
699
700
|
});
|
|
700
701
|
this._transportReady = true;
|
|
701
702
|
}
|
package/lib/handlers/Edge11.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare class Edge11 extends HandlerInterface {
|
|
|
28
28
|
iceParameters, iceCandidates, dtlsParameters, sctpParameters, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
29
29
|
iceServers, iceTransportPolicy, additionalSettings, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
30
30
|
proprietaryConstraints, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
31
|
-
extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
31
|
+
extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
32
32
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
33
33
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
34
34
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"AAKA,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;AAC5B,OAAO,EACN,aAAa,EAIb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,qBAAa,MAAO,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Edge11.d.ts","sourceRoot":"","sources":["../../src/handlers/Edge11.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Edge11.js
CHANGED
|
@@ -93,20 +93,19 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
93
93
|
async getNativeSctpCapabilities() {
|
|
94
94
|
logger.debug('getNativeSctpCapabilities()');
|
|
95
95
|
return {
|
|
96
|
-
numStreams: { OS: 0, MIS: 0 }
|
|
96
|
+
numStreams: { OS: 0, MIS: 0 },
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
run({ direction, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
100
100
|
iceParameters, iceCandidates, dtlsParameters, sctpParameters, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
101
101
|
iceServers, iceTransportPolicy, additionalSettings, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
102
102
|
proprietaryConstraints, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
103
|
-
extendedRtpCapabilities }) {
|
|
103
|
+
extendedRtpCapabilities, }) {
|
|
104
104
|
logger.debug('run()');
|
|
105
|
-
this._sendingRtpParametersByKind =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
};
|
|
105
|
+
this._sendingRtpParametersByKind = {
|
|
106
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
107
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
108
|
+
};
|
|
110
109
|
this._remoteIceParameters = iceParameters;
|
|
111
110
|
this._remoteIceCandidates = iceCandidates;
|
|
112
111
|
this._remoteDtlsParameters = dtlsParameters;
|
|
@@ -147,8 +146,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
147
146
|
const rtpSender = new RTCRtpSender(track, this._dtlsTransport);
|
|
148
147
|
const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
149
148
|
rtpParameters.codecs = ortc.reduceCodecs(rtpParameters.codecs, codec);
|
|
150
|
-
const useRtx = rtpParameters.codecs
|
|
151
|
-
.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
|
|
149
|
+
const useRtx = rtpParameters.codecs.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
|
|
152
150
|
if (!encodings) {
|
|
153
151
|
encodings = [{}];
|
|
154
152
|
}
|
|
@@ -160,12 +158,11 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
160
158
|
}
|
|
161
159
|
rtpParameters.encodings = encodings;
|
|
162
160
|
// Fill RTCRtpParameters.rtcp.
|
|
163
|
-
rtpParameters.rtcp =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
};
|
|
161
|
+
rtpParameters.rtcp = {
|
|
162
|
+
cname: this._cname,
|
|
163
|
+
reducedSize: true,
|
|
164
|
+
mux: true,
|
|
165
|
+
};
|
|
169
166
|
// NOTE: Convert our standard RTCRtpParameters into those that Edge
|
|
170
167
|
// expects.
|
|
171
168
|
const edgeRtpParameters = edgeUtils.mangleRtpParameters(rtpParameters);
|
|
@@ -221,8 +218,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
221
218
|
throw new Error('RTCRtpSender not found');
|
|
222
219
|
}
|
|
223
220
|
const parameters = rtpSender.getParameters();
|
|
224
|
-
parameters.encodings
|
|
225
|
-
.forEach((encoding, idx) => {
|
|
221
|
+
parameters.encodings.forEach((encoding, idx) => {
|
|
226
222
|
if (idx <= spatialLayer) {
|
|
227
223
|
encoding.active = true;
|
|
228
224
|
}
|
|
@@ -283,7 +279,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
283
279
|
results.push({
|
|
284
280
|
localId,
|
|
285
281
|
track: rtpReceiver.track,
|
|
286
|
-
rtpReceiver
|
|
282
|
+
rtpReceiver,
|
|
287
283
|
});
|
|
288
284
|
}
|
|
289
285
|
return results;
|
|
@@ -327,11 +323,11 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
327
323
|
options) {
|
|
328
324
|
throw new errors_1.UnsupportedError('not implemented');
|
|
329
325
|
}
|
|
330
|
-
setIceGatherer({ iceServers, iceTransportPolicy }) {
|
|
326
|
+
setIceGatherer({ iceServers, iceTransportPolicy, }) {
|
|
331
327
|
// @ts-ignore
|
|
332
328
|
const iceGatherer = new RTCIceGatherer({
|
|
333
329
|
iceServers: iceServers || [],
|
|
334
|
-
gatherPolicy: iceTransportPolicy || 'all'
|
|
330
|
+
gatherPolicy: iceTransportPolicy || 'all',
|
|
335
331
|
});
|
|
336
332
|
iceGatherer.addEventListener('error', (event) => {
|
|
337
333
|
logger.error('iceGatherer "error" event [event:%o]', event);
|
|
@@ -350,63 +346,53 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
350
346
|
// NOTE: Not yet implemented by Edge.
|
|
351
347
|
iceTransport.addEventListener('statechange', () => {
|
|
352
348
|
switch (iceTransport.state) {
|
|
353
|
-
case 'checking':
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
349
|
+
case 'checking': {
|
|
350
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
358
353
|
case 'connected':
|
|
359
|
-
case 'completed':
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
{
|
|
376
|
-
this.emit('@connectionstatechange', 'closed');
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
354
|
+
case 'completed': {
|
|
355
|
+
this.emit('@connectionstatechange', 'connected');
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
case 'failed': {
|
|
359
|
+
this.emit('@connectionstatechange', 'failed');
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
case 'disconnected': {
|
|
363
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
case 'closed': {
|
|
367
|
+
this.emit('@connectionstatechange', 'closed');
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
379
370
|
}
|
|
380
371
|
});
|
|
381
372
|
// NOTE: Not standard, but implemented by Edge.
|
|
382
373
|
iceTransport.addEventListener('icestatechange', () => {
|
|
383
374
|
switch (iceTransport.state) {
|
|
384
|
-
case 'checking':
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
375
|
+
case 'checking': {
|
|
376
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
389
379
|
case 'connected':
|
|
390
|
-
case 'completed':
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
{
|
|
407
|
-
this.emit('@connectionstatechange', 'closed');
|
|
408
|
-
break;
|
|
409
|
-
}
|
|
380
|
+
case 'completed': {
|
|
381
|
+
this.emit('@connectionstatechange', 'connected');
|
|
382
|
+
break;
|
|
383
|
+
}
|
|
384
|
+
case 'failed': {
|
|
385
|
+
this.emit('@connectionstatechange', 'failed');
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
388
|
+
case 'disconnected': {
|
|
389
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
case 'closed': {
|
|
393
|
+
this.emit('@connectionstatechange', 'closed');
|
|
394
|
+
break;
|
|
395
|
+
}
|
|
410
396
|
}
|
|
411
397
|
});
|
|
412
398
|
iceTransport.addEventListener('candidatepairchange', (event) => {
|
|
@@ -432,14 +418,16 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
432
418
|
});
|
|
433
419
|
this._dtlsTransport = dtlsTransport;
|
|
434
420
|
}
|
|
435
|
-
async setupTransport({ localDtlsRole }) {
|
|
421
|
+
async setupTransport({ localDtlsRole, }) {
|
|
436
422
|
logger.debug('setupTransport()');
|
|
423
|
+
// Get our local ICE parameters.
|
|
424
|
+
const iceParameters = this._iceGatherer.getLocalParameters();
|
|
437
425
|
// Get our local DTLS parameters.
|
|
438
426
|
const dtlsParameters = this._dtlsTransport.getLocalParameters();
|
|
439
427
|
dtlsParameters.role = localDtlsRole;
|
|
440
428
|
// Need to tell the remote transport about our parameters.
|
|
441
429
|
await new Promise((resolve, reject) => {
|
|
442
|
-
this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
|
|
430
|
+
this.safeEmit('@connect', { iceParameters, dtlsParameters }, resolve, reject);
|
|
443
431
|
});
|
|
444
432
|
// Start the RTCIceTransport.
|
|
445
433
|
this._iceTransport.start(this._iceGatherer, this._remoteIceParameters, 'controlling');
|
|
@@ -453,12 +441,12 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
453
441
|
// won't enter the 'completed' state.
|
|
454
442
|
this._iceTransport.addRemoteCandidate({});
|
|
455
443
|
// NOTE: Edge does not like SHA less than 256.
|
|
456
|
-
this._remoteDtlsParameters.fingerprints =
|
|
457
|
-
.filter((fingerprint) => {
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
444
|
+
this._remoteDtlsParameters.fingerprints =
|
|
445
|
+
this._remoteDtlsParameters.fingerprints.filter((fingerprint) => {
|
|
446
|
+
return (fingerprint.algorithm === 'sha-256' ||
|
|
447
|
+
fingerprint.algorithm === 'sha-384' ||
|
|
448
|
+
fingerprint.algorithm === 'sha-512');
|
|
449
|
+
});
|
|
462
450
|
// Start the RTCDtlsTransport.
|
|
463
451
|
this._dtlsTransport.start(this._remoteDtlsParameters);
|
|
464
452
|
this._transportReady = true;
|
|
@@ -27,7 +27,7 @@ export declare class FakeHandler extends HandlerInterface {
|
|
|
27
27
|
setConnectionState(connectionState: ConnectionState): void;
|
|
28
28
|
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
29
29
|
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
30
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
30
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
31
31
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
32
32
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
33
33
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
@@ -39,13 +39,13 @@ export declare class FakeHandler extends HandlerInterface {
|
|
|
39
39
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
40
40
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
41
41
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
42
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
42
|
+
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
43
43
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
44
44
|
stopReceiving(localIds: string[]): Promise<void>;
|
|
45
45
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
46
46
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
47
47
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
48
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
48
|
+
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
49
49
|
private setupTransport;
|
|
50
50
|
private assertNotClosed;
|
|
51
51
|
}
|