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.
Files changed (107) hide show
  1. package/README.md +85 -112
  2. package/lib/Consumer.d.ts +1 -1
  3. package/lib/Consumer.d.ts.map +1 -1
  4. package/lib/Consumer.js +1 -1
  5. package/lib/DataConsumer.d.ts +1 -1
  6. package/lib/DataConsumer.d.ts.map +1 -1
  7. package/lib/DataConsumer.js +1 -1
  8. package/lib/DataProducer.d.ts +1 -1
  9. package/lib/DataProducer.d.ts.map +1 -1
  10. package/lib/DataProducer.js +1 -1
  11. package/lib/Device.d.ts +3 -3
  12. package/lib/Device.d.ts.map +1 -1
  13. package/lib/Device.js +66 -89
  14. package/lib/EnhancedEventEmitter.d.ts.map +1 -1
  15. package/lib/Logger.d.ts.map +1 -1
  16. package/lib/Producer.d.ts +5 -15
  17. package/lib/Producer.d.ts.map +1 -1
  18. package/lib/Producer.js +2 -2
  19. package/lib/RtpParameters.d.ts.map +1 -1
  20. package/lib/SctpParameters.d.ts.map +1 -1
  21. package/lib/Transport.d.ts +21 -11
  22. package/lib/Transport.d.ts.map +1 -1
  23. package/lib/Transport.js +73 -55
  24. package/lib/errors.d.ts.map +1 -1
  25. package/lib/errors.js +6 -6
  26. package/lib/handlers/Chrome111.d.ts +4 -4
  27. package/lib/handlers/Chrome111.d.ts.map +1 -1
  28. package/lib/handlers/Chrome111.js +79 -78
  29. package/lib/handlers/Chrome55.d.ts +4 -4
  30. package/lib/handlers/Chrome55.d.ts.map +1 -1
  31. package/lib/handlers/Chrome55.js +88 -81
  32. package/lib/handlers/Chrome67.d.ts +4 -4
  33. package/lib/handlers/Chrome67.d.ts.map +1 -1
  34. package/lib/handlers/Chrome67.js +90 -84
  35. package/lib/handlers/Chrome70.d.ts +4 -4
  36. package/lib/handlers/Chrome70.d.ts.map +1 -1
  37. package/lib/handlers/Chrome70.js +81 -79
  38. package/lib/handlers/Chrome74.d.ts +4 -4
  39. package/lib/handlers/Chrome74.d.ts.map +1 -1
  40. package/lib/handlers/Chrome74.js +80 -79
  41. package/lib/handlers/Edge11.d.ts +1 -1
  42. package/lib/handlers/Edge11.d.ts.map +1 -1
  43. package/lib/handlers/Edge11.js +66 -78
  44. package/lib/handlers/FakeHandler.d.ts +3 -3
  45. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  46. package/lib/handlers/FakeHandler.js +20 -22
  47. package/lib/handlers/Firefox60.d.ts +4 -4
  48. package/lib/handlers/Firefox60.d.ts.map +1 -1
  49. package/lib/handlers/Firefox60.js +80 -73
  50. package/lib/handlers/HandlerInterface.d.ts +1 -0
  51. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  52. package/lib/handlers/ReactNative.d.ts +4 -4
  53. package/lib/handlers/ReactNative.d.ts.map +1 -1
  54. package/lib/handlers/ReactNative.js +89 -83
  55. package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
  56. package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
  57. package/lib/handlers/ReactNativeUnifiedPlan.js +80 -79
  58. package/lib/handlers/Safari11.d.ts +4 -4
  59. package/lib/handlers/Safari11.d.ts.map +1 -1
  60. package/lib/handlers/Safari11.js +89 -82
  61. package/lib/handlers/Safari12.d.ts +4 -4
  62. package/lib/handlers/Safari12.d.ts.map +1 -1
  63. package/lib/handlers/Safari12.js +80 -78
  64. package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
  65. package/lib/handlers/ortc/utils.d.ts.map +1 -1
  66. package/lib/handlers/ortc/utils.js +2 -2
  67. package/lib/handlers/sdp/MediaSection.d.ts +5 -5
  68. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  69. package/lib/handlers/sdp/MediaSection.js +296 -318
  70. package/lib/handlers/sdp/RemoteSdp.d.ts +5 -5
  71. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  72. package/lib/handlers/sdp/RemoteSdp.js +28 -30
  73. package/lib/handlers/sdp/commonUtils.d.ts +8 -5
  74. package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
  75. package/lib/handlers/sdp/commonUtils.js +71 -59
  76. package/lib/handlers/sdp/plainRtpUtils.d.ts +2 -2
  77. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
  78. package/lib/handlers/sdp/plainRtpUtils.js +5 -7
  79. package/lib/handlers/sdp/planBUtils.d.ts +2 -2
  80. package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
  81. package/lib/handlers/sdp/planBUtils.js +11 -14
  82. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +2 -2
  83. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  84. package/lib/handlers/sdp/unifiedPlanUtils.js +11 -14
  85. package/lib/index.d.ts +1 -1
  86. package/lib/index.js +1 -1
  87. package/lib/ortc.d.ts +4 -58
  88. package/lib/ortc.d.ts.map +1 -1
  89. package/lib/ortc.js +432 -478
  90. package/lib/scalabilityModes.d.ts.map +1 -1
  91. package/lib/scalabilityModes.js +2 -2
  92. package/lib/{tests → test}/fakeParameters.d.ts +3 -2
  93. package/lib/test/fakeParameters.d.ts.map +1 -0
  94. package/lib/test/fakeParameters.js +654 -0
  95. package/lib/{tests → test}/test.d.ts.map +1 -1
  96. package/lib/{tests → test}/test.js +469 -496
  97. package/lib/test/uaTestCases.d.ts.map +1 -0
  98. package/lib/{tests → test}/uaTestCases.js +17 -17
  99. package/lib/types.d.ts.map +1 -1
  100. package/lib/utils.d.ts.map +1 -1
  101. package/npm-scripts.mjs +75 -103
  102. package/package.json +93 -90
  103. package/lib/tests/fakeParameters.d.ts.map +0 -1
  104. package/lib/tests/fakeParameters.js +0 -662
  105. package/lib/tests/uaTestCases.d.ts.map +0 -1
  106. /package/lib/{tests → test}/test.d.ts +0 -0
  107. /package/lib/{tests → test}/uaTestCases.d.ts +0 -0
@@ -81,19 +81,21 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
81
81
  iceTransportPolicy: 'all',
82
82
  bundlePolicy: 'max-bundle',
83
83
  rtcpMuxPolicy: 'require',
84
- sdpSemantics: 'plan-b'
84
+ sdpSemantics: 'plan-b',
85
85
  });
86
86
  try {
87
87
  const offer = await pc.createOffer({
88
88
  offerToReceiveAudio: true,
89
- offerToReceiveVideo: true
89
+ offerToReceiveVideo: true,
90
90
  });
91
91
  try {
92
92
  pc.close();
93
93
  }
94
94
  catch (error) { }
95
95
  const sdpObject = sdpTransform.parse(offer.sdp);
96
- const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({ sdpObject });
96
+ const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
97
+ sdpObject,
98
+ });
97
99
  return nativeRtpCapabilities;
98
100
  }
99
101
  catch (error) {
@@ -107,10 +109,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
107
109
  async getNativeSctpCapabilities() {
108
110
  logger.debug('getNativeSctpCapabilities()');
109
111
  return {
110
- numStreams: SCTP_NUM_STREAMS
112
+ numStreams: SCTP_NUM_STREAMS,
111
113
  };
112
114
  }
113
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
115
+ run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
114
116
  logger.debug('run()');
115
117
  this._direction = direction;
116
118
  this._remoteSdp = new RemoteSdp_1.RemoteSdp({
@@ -118,22 +120,19 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
118
120
  iceCandidates,
119
121
  dtlsParameters,
120
122
  sctpParameters,
121
- planB: true
123
+ planB: true,
122
124
  });
123
- this._sendingRtpParametersByKind =
124
- {
125
- audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
126
- video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities)
127
- };
128
- this._sendingRemoteRtpParametersByKind =
129
- {
130
- audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
131
- video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
132
- };
125
+ this._sendingRtpParametersByKind = {
126
+ audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
127
+ video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
128
+ };
129
+ this._sendingRemoteRtpParametersByKind = {
130
+ audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
131
+ video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
132
+ };
133
133
  if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
134
- this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
135
- ? 'client'
136
- : 'server';
134
+ this._forcedLocalDtlsRole =
135
+ dtlsParameters.role === 'server' ? 'client' : 'server';
137
136
  }
138
137
  this._pc = new RTCPeerConnection({
139
138
  iceServers: iceServers || [],
@@ -141,7 +140,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
141
140
  bundlePolicy: 'max-bundle',
142
141
  rtcpMuxPolicy: 'require',
143
142
  sdpSemantics: 'plan-b',
144
- ...additionalSettings
143
+ ...additionalSettings,
145
144
  }, proprietaryConstraints);
146
145
  this._pc.addEventListener('icegatheringstatechange', () => {
147
146
  this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
@@ -155,32 +154,27 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
155
154
  this._pc.addEventListener('iceconnectionstatechange', () => {
156
155
  logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
157
156
  switch (this._pc.iceConnectionState) {
158
- case 'checking':
159
- {
160
- this.emit('@connectionstatechange', 'connecting');
161
- break;
162
- }
157
+ case 'checking': {
158
+ this.emit('@connectionstatechange', 'connecting');
159
+ break;
160
+ }
163
161
  case 'connected':
164
- case 'completed':
165
- {
166
- this.emit('@connectionstatechange', 'connected');
167
- break;
168
- }
169
- case 'failed':
170
- {
171
- this.emit('@connectionstatechange', 'failed');
172
- break;
173
- }
174
- case 'disconnected':
175
- {
176
- this.emit('@connectionstatechange', 'disconnected');
177
- break;
178
- }
179
- case 'closed':
180
- {
181
- this.emit('@connectionstatechange', 'closed');
182
- break;
183
- }
162
+ case 'completed': {
163
+ this.emit('@connectionstatechange', 'connected');
164
+ break;
165
+ }
166
+ case 'failed': {
167
+ this.emit('@connectionstatechange', 'failed');
168
+ break;
169
+ }
170
+ case 'disconnected': {
171
+ this.emit('@connectionstatechange', 'disconnected');
172
+ break;
173
+ }
174
+ case 'closed': {
175
+ this.emit('@connectionstatechange', 'closed');
176
+ break;
177
+ }
184
178
  }
185
179
  });
186
180
  }
@@ -218,7 +212,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
218
212
  async getTransportStats() {
219
213
  return this._pc.getStats();
220
214
  }
221
- async send({ track, encodings, codecOptions, codec }) {
215
+ async send({ track, encodings, codecOptions, codec, }) {
222
216
  this.assertSendDirection();
223
217
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
224
218
  if (codec) {
@@ -230,15 +224,13 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
230
224
  let localSdpObject = sdpTransform.parse(offer.sdp);
231
225
  let offerMediaObject;
232
226
  const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
233
- sendingRtpParameters.codecs =
234
- ortc.reduceCodecs(sendingRtpParameters.codecs);
227
+ sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs);
235
228
  const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
236
- sendingRemoteRtpParameters.codecs =
237
- ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
229
+ sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
238
230
  if (!this._transportReady) {
239
231
  await this.setupTransport({
240
232
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
241
- localSdpObject
233
+ localSdpObject,
242
234
  });
243
235
  }
244
236
  if (track.kind === 'video' && encodings && encodings.length > 1) {
@@ -248,21 +240,23 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
248
240
  sdpPlanBUtils.addLegacySimulcast({
249
241
  offerMediaObject,
250
242
  track,
251
- numStreams: encodings.length
243
+ numStreams: encodings.length,
252
244
  });
253
245
  offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
254
246
  }
255
247
  logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
256
248
  await this._pc.setLocalDescription(offer);
257
249
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
258
- offerMediaObject = localSdpObject.media
259
- .find((m) => m.type === track.kind);
250
+ offerMediaObject = localSdpObject.media.find((m) => m.type === track.kind);
260
251
  // Set RTCP CNAME.
261
- sendingRtpParameters.rtcp.cname =
262
- sdpCommonUtils.getCname({ offerMediaObject });
252
+ sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
253
+ offerMediaObject,
254
+ });
263
255
  // Set RTP encodings.
264
- sendingRtpParameters.encodings =
265
- sdpPlanBUtils.getRtpEncodings({ offerMediaObject, track });
256
+ sendingRtpParameters.encodings = sdpPlanBUtils.getRtpEncodings({
257
+ offerMediaObject,
258
+ track,
259
+ });
266
260
  // Complete encodings with given values.
267
261
  if (encodings) {
268
262
  for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
@@ -283,7 +277,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
283
277
  offerMediaObject,
284
278
  offerRtpParameters: sendingRtpParameters,
285
279
  answerRtpParameters: sendingRemoteRtpParameters,
286
- codecOptions
280
+ codecOptions,
287
281
  });
288
282
  const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
289
283
  logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
@@ -294,7 +288,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
294
288
  this._mapSendLocalIdTrack.set(localId, track);
295
289
  return {
296
290
  localId: localId,
297
- rtpParameters: sendingRtpParameters
291
+ rtpParameters: sendingRtpParameters,
298
292
  };
299
293
  }
300
294
  async stopSending(localId) {
@@ -338,11 +332,16 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
338
332
  }
339
333
  async replaceTrack(
340
334
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
341
- localId, track) {
335
+ localId,
336
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
337
+ track) {
342
338
  throw new errors_1.UnsupportedError('not implemented');
343
339
  }
340
+ async setMaxSpatialLayer(
344
341
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
345
- async setMaxSpatialLayer(localId, spatialLayer) {
342
+ localId,
343
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
344
+ spatialLayer) {
346
345
  throw new errors_1.UnsupportedError(' not implemented');
347
346
  }
348
347
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -353,7 +352,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
353
352
  async getSenderStats(localId) {
354
353
  throw new errors_1.UnsupportedError('not implemented');
355
354
  }
356
- async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
355
+ async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
357
356
  this.assertSendDirection();
358
357
  const options = {
359
358
  negotiated: true,
@@ -362,7 +361,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
362
361
  maxPacketLifeTime,
363
362
  maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
364
363
  maxRetransmits,
365
- protocol
364
+ protocol,
366
365
  };
367
366
  logger.debug('sendDataChannel() [options:%o]', options);
368
367
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -374,12 +373,11 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
374
373
  if (!this._hasDataChannelMediaSection) {
375
374
  const offer = await this._pc.createOffer();
376
375
  const localSdpObject = sdpTransform.parse(offer.sdp);
377
- const offerMediaObject = localSdpObject.media
378
- .find((m) => m.type === 'application');
376
+ const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
379
377
  if (!this._transportReady) {
380
378
  await this.setupTransport({
381
379
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
382
- localSdpObject
380
+ localSdpObject,
383
381
  });
384
382
  }
385
383
  logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
@@ -394,7 +392,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
394
392
  streamId: options.id,
395
393
  ordered: options.ordered,
396
394
  maxPacketLifeTime: options.maxPacketLifeTime,
397
- maxRetransmits: options.maxRetransmits
395
+ maxRetransmits: options.maxRetransmits,
398
396
  };
399
397
  return { dataChannel, sctpStreamParameters };
400
398
  }
@@ -410,7 +408,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
410
408
  kind,
411
409
  offerRtpParameters: rtpParameters,
412
410
  streamId: streamId || rtpParameters.rtcp.cname,
413
- trackId
411
+ trackId,
414
412
  });
415
413
  }
416
414
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
@@ -421,20 +419,19 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
421
419
  for (const options of optionsList) {
422
420
  const { kind, rtpParameters } = options;
423
421
  const mid = kind;
424
- const answerMediaObject = localSdpObject.media
425
- .find((m) => String(m.mid) === mid);
422
+ const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === mid);
426
423
  // May need to modify codec parameters in the answer based on codec
427
424
  // parameters in the offer.
428
425
  sdpCommonUtils.applyCodecParameters({
429
426
  offerRtpParameters: rtpParameters,
430
- answerMediaObject
427
+ answerMediaObject,
431
428
  });
432
429
  }
433
430
  answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
434
431
  if (!this._transportReady) {
435
432
  await this.setupTransport({
436
433
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
437
- localSdpObject
434
+ localSdpObject,
438
435
  });
439
436
  }
440
437
  logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
@@ -444,7 +441,8 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
444
441
  const mid = kind;
445
442
  const localId = trackId;
446
443
  const streamId = options.streamId || rtpParameters.rtcp.cname;
447
- const stream = this._pc.getRemoteStreams()
444
+ const stream = this._pc
445
+ .getRemoteStreams()
448
446
  .find((s) => s.id === streamId);
449
447
  const track = stream.getTrackById(localId);
450
448
  if (!track) {
@@ -463,7 +461,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
463
461
  const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
464
462
  // Remove from the map.
465
463
  this._mapRecvLocalIdInfo.delete(localId);
466
- this._remoteSdp.planBStopReceiving({ mid: mid, offerRtpParameters: rtpParameters });
464
+ this._remoteSdp.planBStopReceiving({
465
+ mid: mid,
466
+ offerRtpParameters: rtpParameters,
467
+ });
467
468
  }
468
469
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
469
470
  logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
@@ -486,7 +487,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
486
487
  async getReceiverStats(localId) {
487
488
  throw new errors_1.UnsupportedError('not implemented');
488
489
  }
489
- async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
490
+ async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
490
491
  this.assertRecvDirection();
491
492
  const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
492
493
  const options = {
@@ -496,7 +497,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
496
497
  maxPacketLifeTime,
497
498
  maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
498
499
  maxRetransmits,
499
- protocol
500
+ protocol,
500
501
  };
501
502
  logger.debug('receiveDataChannel() [options:%o]', options);
502
503
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -512,7 +513,7 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
512
513
  const localSdpObject = sdpTransform.parse(answer.sdp);
513
514
  await this.setupTransport({
514
515
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
515
- localSdpObject
516
+ localSdpObject,
516
517
  });
517
518
  }
518
519
  logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
@@ -521,19 +522,25 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
521
522
  }
522
523
  return { dataChannel };
523
524
  }
524
- async setupTransport({ localDtlsRole, localSdpObject }) {
525
+ async setupTransport({ localDtlsRole, localSdpObject, }) {
525
526
  if (!localSdpObject) {
526
527
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
527
528
  }
529
+ // Get our local ICE parameters.
530
+ const iceParameters = sdpCommonUtils.extractIceParameters({
531
+ sdpObject: localSdpObject,
532
+ });
528
533
  // Get our local DTLS parameters.
529
- const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
534
+ const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
535
+ sdpObject: localSdpObject,
536
+ });
530
537
  // Set our DTLS role.
531
538
  dtlsParameters.role = localDtlsRole;
532
539
  // Update the remote DTLS role in the SDP.
533
540
  this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
534
541
  // Need to tell the remote transport about our parameters.
535
542
  await new Promise((resolve, reject) => {
536
- this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
543
+ this.safeEmit('@connect', { iceParameters, dtlsParameters }, resolve, reject);
537
544
  });
538
545
  this._transportReady = true;
539
546
  }
@@ -25,11 +25,11 @@ export declare class Chrome67 extends HandlerInterface {
25
25
  close(): void;
26
26
  getNativeRtpCapabilities(): Promise<RtpCapabilities>;
27
27
  getNativeSctpCapabilities(): Promise<SctpCapabilities>;
28
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
28
+ run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
29
29
  updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
30
30
  restartIce(iceParameters: IceParameters): Promise<void>;
31
31
  getTransportStats(): Promise<RTCStatsReport>;
32
- send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
32
+ send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
33
33
  stopSending(localId: string): Promise<void>;
34
34
  pauseSending(localId: string): Promise<void>;
35
35
  resumeSending(localId: string): Promise<void>;
@@ -37,13 +37,13 @@ export declare class Chrome67 extends HandlerInterface {
37
37
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
38
38
  setRtpEncodingParameters(localId: string, params: any): Promise<void>;
39
39
  getSenderStats(localId: string): Promise<RTCStatsReport>;
40
- sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
40
+ sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
41
41
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
42
42
  stopReceiving(localIds: string[]): Promise<void>;
43
43
  pauseReceiving(localIds: string[]): Promise<void>;
44
44
  resumeReceiving(localIds: string[]): Promise<void>;
45
45
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
46
- receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
46
+ receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
47
47
  private setupTransport;
48
48
  private assertSendDirection;
49
49
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}