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
@@ -80,19 +80,21 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
80
80
  iceTransportPolicy: 'all',
81
81
  bundlePolicy: 'max-bundle',
82
82
  rtcpMuxPolicy: 'require',
83
- sdpSemantics: 'plan-b'
83
+ sdpSemantics: 'plan-b',
84
84
  });
85
85
  try {
86
86
  const offer = await pc.createOffer({
87
87
  offerToReceiveAudio: true,
88
- offerToReceiveVideo: true
88
+ offerToReceiveVideo: true,
89
89
  });
90
90
  try {
91
91
  pc.close();
92
92
  }
93
93
  catch (error) { }
94
94
  const sdpObject = sdpTransform.parse(offer.sdp);
95
- const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({ sdpObject });
95
+ const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
96
+ sdpObject,
97
+ });
96
98
  return nativeRtpCapabilities;
97
99
  }
98
100
  catch (error) {
@@ -106,10 +108,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
106
108
  async getNativeSctpCapabilities() {
107
109
  logger.debug('getNativeSctpCapabilities()');
108
110
  return {
109
- numStreams: SCTP_NUM_STREAMS
111
+ numStreams: SCTP_NUM_STREAMS,
110
112
  };
111
113
  }
112
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
114
+ run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
113
115
  logger.debug('run()');
114
116
  this._direction = direction;
115
117
  this._remoteSdp = new RemoteSdp_1.RemoteSdp({
@@ -117,22 +119,19 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
117
119
  iceCandidates,
118
120
  dtlsParameters,
119
121
  sctpParameters,
120
- planB: true
122
+ planB: true,
121
123
  });
122
- this._sendingRtpParametersByKind =
123
- {
124
- audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
125
- video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities)
126
- };
127
- this._sendingRemoteRtpParametersByKind =
128
- {
129
- audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
130
- video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
131
- };
124
+ this._sendingRtpParametersByKind = {
125
+ audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
126
+ video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
127
+ };
128
+ this._sendingRemoteRtpParametersByKind = {
129
+ audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
130
+ video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
131
+ };
132
132
  if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
133
- this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
134
- ? 'client'
135
- : 'server';
133
+ this._forcedLocalDtlsRole =
134
+ dtlsParameters.role === 'server' ? 'client' : 'server';
136
135
  }
137
136
  this._pc = new RTCPeerConnection({
138
137
  iceServers: iceServers || [],
@@ -140,7 +139,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
140
139
  bundlePolicy: 'max-bundle',
141
140
  rtcpMuxPolicy: 'require',
142
141
  sdpSemantics: 'plan-b',
143
- ...additionalSettings
142
+ ...additionalSettings,
144
143
  }, proprietaryConstraints);
145
144
  this._pc.addEventListener('icegatheringstatechange', () => {
146
145
  this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
@@ -154,32 +153,27 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
154
153
  this._pc.addEventListener('iceconnectionstatechange', () => {
155
154
  logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
156
155
  switch (this._pc.iceConnectionState) {
157
- case 'checking':
158
- {
159
- this.emit('@connectionstatechange', 'connecting');
160
- break;
161
- }
156
+ case 'checking': {
157
+ this.emit('@connectionstatechange', 'connecting');
158
+ break;
159
+ }
162
160
  case 'connected':
163
- case 'completed':
164
- {
165
- this.emit('@connectionstatechange', 'connected');
166
- break;
167
- }
168
- case 'failed':
169
- {
170
- this.emit('@connectionstatechange', 'failed');
171
- break;
172
- }
173
- case 'disconnected':
174
- {
175
- this.emit('@connectionstatechange', 'disconnected');
176
- break;
177
- }
178
- case 'closed':
179
- {
180
- this.emit('@connectionstatechange', 'closed');
181
- break;
182
- }
161
+ case 'completed': {
162
+ this.emit('@connectionstatechange', 'connected');
163
+ break;
164
+ }
165
+ case 'failed': {
166
+ this.emit('@connectionstatechange', 'failed');
167
+ break;
168
+ }
169
+ case 'disconnected': {
170
+ this.emit('@connectionstatechange', 'disconnected');
171
+ break;
172
+ }
173
+ case 'closed': {
174
+ this.emit('@connectionstatechange', 'closed');
175
+ break;
176
+ }
183
177
  }
184
178
  });
185
179
  }
@@ -217,7 +211,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
217
211
  async getTransportStats() {
218
212
  return this._pc.getStats();
219
213
  }
220
- async send({ track, encodings, codecOptions, codec }) {
214
+ async send({ track, encodings, codecOptions, codec, }) {
221
215
  this.assertSendDirection();
222
216
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
223
217
  if (codec) {
@@ -229,40 +223,39 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
229
223
  let localSdpObject = sdpTransform.parse(offer.sdp);
230
224
  let offerMediaObject;
231
225
  const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
232
- sendingRtpParameters.codecs =
233
- ortc.reduceCodecs(sendingRtpParameters.codecs);
226
+ sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs);
234
227
  const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
235
- sendingRemoteRtpParameters.codecs =
236
- ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
228
+ sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
237
229
  if (!this._transportReady) {
238
230
  await this.setupTransport({
239
231
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
240
- localSdpObject
232
+ localSdpObject,
241
233
  });
242
234
  }
243
235
  if (track.kind === 'video' && encodings && encodings.length > 1) {
244
236
  logger.debug('send() | enabling simulcast');
245
237
  localSdpObject = sdpTransform.parse(offer.sdp);
246
- offerMediaObject = localSdpObject.media
247
- .find((m) => m.type === 'video');
238
+ offerMediaObject = localSdpObject.media.find((m) => m.type === 'video');
248
239
  sdpPlanBUtils.addLegacySimulcast({
249
240
  offerMediaObject,
250
241
  track,
251
- numStreams: encodings.length
242
+ numStreams: encodings.length,
252
243
  });
253
244
  offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
254
245
  }
255
246
  logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
256
247
  await this._pc.setLocalDescription(offer);
257
248
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
258
- offerMediaObject = localSdpObject.media
259
- .find((m) => m.type === track.kind);
249
+ offerMediaObject = localSdpObject.media.find((m) => m.type === track.kind);
260
250
  // Set RTCP CNAME.
261
- sendingRtpParameters.rtcp.cname =
262
- sdpCommonUtils.getCname({ offerMediaObject });
251
+ sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
252
+ offerMediaObject,
253
+ });
263
254
  // Set RTP encodings.
264
- sendingRtpParameters.encodings =
265
- sdpPlanBUtils.getRtpEncodings({ offerMediaObject, track });
255
+ sendingRtpParameters.encodings = sdpPlanBUtils.getRtpEncodings({
256
+ offerMediaObject,
257
+ track,
258
+ });
266
259
  // Complete encodings with given values.
267
260
  if (encodings) {
268
261
  for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
@@ -283,21 +276,22 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
283
276
  offerMediaObject,
284
277
  offerRtpParameters: sendingRtpParameters,
285
278
  answerRtpParameters: sendingRemoteRtpParameters,
286
- codecOptions
279
+ codecOptions,
287
280
  });
288
281
  const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
289
282
  logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
290
283
  await this._pc.setRemoteDescription(answer);
291
284
  const localId = String(this._nextSendLocalId);
292
285
  this._nextSendLocalId++;
293
- const rtpSender = this._pc.getSenders()
286
+ const rtpSender = this._pc
287
+ .getSenders()
294
288
  .find((s) => s.track === track);
295
289
  // Insert into the map.
296
290
  this._mapSendLocalIdRtpSender.set(localId, rtpSender);
297
291
  return {
298
292
  localId: localId,
299
293
  rtpParameters: sendingRtpParameters,
300
- rtpSender
294
+ rtpSender,
301
295
  };
302
296
  }
303
297
  async stopSending(localId) {
@@ -403,7 +397,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
403
397
  }
404
398
  return rtpSender.getStats();
405
399
  }
406
- async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
400
+ async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
407
401
  this.assertSendDirection();
408
402
  const options = {
409
403
  negotiated: true,
@@ -412,7 +406,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
412
406
  maxPacketLifeTime,
413
407
  maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
414
408
  maxRetransmits,
415
- protocol
409
+ protocol,
416
410
  };
417
411
  logger.debug('sendDataChannel() [options:%o]', options);
418
412
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -424,12 +418,11 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
424
418
  if (!this._hasDataChannelMediaSection) {
425
419
  const offer = await this._pc.createOffer();
426
420
  const localSdpObject = sdpTransform.parse(offer.sdp);
427
- const offerMediaObject = localSdpObject.media
428
- .find((m) => m.type === 'application');
421
+ const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
429
422
  if (!this._transportReady) {
430
423
  await this.setupTransport({
431
424
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
432
- localSdpObject
425
+ localSdpObject,
433
426
  });
434
427
  }
435
428
  logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
@@ -444,7 +437,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
444
437
  streamId: options.id,
445
438
  ordered: options.ordered,
446
439
  maxPacketLifeTime: options.maxPacketLifeTime,
447
- maxRetransmits: options.maxRetransmits
440
+ maxRetransmits: options.maxRetransmits,
448
441
  };
449
442
  return { dataChannel, sctpStreamParameters };
450
443
  }
@@ -460,7 +453,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
460
453
  kind,
461
454
  offerRtpParameters: rtpParameters,
462
455
  streamId: streamId || rtpParameters.rtcp.cname,
463
- trackId
456
+ trackId,
464
457
  });
465
458
  }
466
459
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
@@ -471,20 +464,19 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
471
464
  for (const options of optionsList) {
472
465
  const { kind, rtpParameters } = options;
473
466
  const mid = kind;
474
- const answerMediaObject = localSdpObject.media
475
- .find((m) => String(m.mid) === mid);
467
+ const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === mid);
476
468
  // May need to modify codec parameters in the answer based on codec
477
469
  // parameters in the offer.
478
470
  sdpCommonUtils.applyCodecParameters({
479
471
  offerRtpParameters: rtpParameters,
480
- answerMediaObject
472
+ answerMediaObject,
481
473
  });
482
474
  }
483
475
  answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
484
476
  if (!this._transportReady) {
485
477
  await this.setupTransport({
486
478
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
487
- localSdpObject
479
+ localSdpObject,
488
480
  });
489
481
  }
490
482
  logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
@@ -493,17 +485,22 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
493
485
  const { kind, trackId, rtpParameters } = options;
494
486
  const localId = trackId;
495
487
  const mid = kind;
496
- const rtpReceiver = this._pc.getReceivers()
488
+ const rtpReceiver = this._pc
489
+ .getReceivers()
497
490
  .find((r) => r.track && r.track.id === localId);
498
491
  if (!rtpReceiver) {
499
492
  throw new Error('new RTCRtpReceiver not');
500
493
  }
501
494
  // Insert into the map.
502
- this._mapRecvLocalIdInfo.set(localId, { mid, rtpParameters, rtpReceiver });
495
+ this._mapRecvLocalIdInfo.set(localId, {
496
+ mid,
497
+ rtpParameters,
498
+ rtpReceiver,
499
+ });
503
500
  results.push({
504
501
  localId,
505
502
  track: rtpReceiver.track,
506
- rtpReceiver
503
+ rtpReceiver,
507
504
  });
508
505
  }
509
506
  return results;
@@ -515,7 +512,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
515
512
  const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
516
513
  // Remove from the map.
517
514
  this._mapRecvLocalIdInfo.delete(localId);
518
- this._remoteSdp.planBStopReceiving({ mid: mid, offerRtpParameters: rtpParameters });
515
+ this._remoteSdp.planBStopReceiving({
516
+ mid: mid,
517
+ offerRtpParameters: rtpParameters,
518
+ });
519
519
  }
520
520
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
521
521
  logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
@@ -542,7 +542,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
542
542
  }
543
543
  return rtpReceiver.getStats();
544
544
  }
545
- async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
545
+ async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
546
546
  this.assertRecvDirection();
547
547
  const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
548
548
  const options = {
@@ -552,7 +552,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
552
552
  maxPacketLifeTime,
553
553
  maxRetransmitTime: maxPacketLifeTime, // NOTE: Old spec.
554
554
  maxRetransmits,
555
- protocol
555
+ protocol,
556
556
  };
557
557
  logger.debug('receiveDataChannel() [options:%o]', options);
558
558
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -568,7 +568,7 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
568
568
  const localSdpObject = sdpTransform.parse(answer.sdp);
569
569
  await this.setupTransport({
570
570
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
571
- localSdpObject
571
+ localSdpObject,
572
572
  });
573
573
  }
574
574
  logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
@@ -577,19 +577,25 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
577
577
  }
578
578
  return { dataChannel };
579
579
  }
580
- async setupTransport({ localDtlsRole, localSdpObject }) {
580
+ async setupTransport({ localDtlsRole, localSdpObject, }) {
581
581
  if (!localSdpObject) {
582
582
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
583
583
  }
584
+ // Get our local ICE parameters.
585
+ const iceParameters = sdpCommonUtils.extractIceParameters({
586
+ sdpObject: localSdpObject,
587
+ });
584
588
  // Get our local DTLS parameters.
585
- const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
589
+ const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
590
+ sdpObject: localSdpObject,
591
+ });
586
592
  // Set our DTLS role.
587
593
  dtlsParameters.role = localDtlsRole;
588
594
  // Update the remote DTLS role in the SDP.
589
595
  this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
590
596
  // Need to tell the remote transport about our parameters.
591
597
  await new Promise((resolve, reject) => {
592
- this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
598
+ this.safeEmit('@connect', { iceParameters, dtlsParameters }, resolve, reject);
593
599
  });
594
600
  this._transportReady = true;
595
601
  }
@@ -23,11 +23,11 @@ export declare class Chrome70 extends HandlerInterface {
23
23
  close(): void;
24
24
  getNativeRtpCapabilities(): Promise<RtpCapabilities>;
25
25
  getNativeSctpCapabilities(): Promise<SctpCapabilities>;
26
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
26
+ run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
27
27
  updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
28
28
  restartIce(iceParameters: IceParameters): Promise<void>;
29
29
  getTransportStats(): Promise<RTCStatsReport>;
30
- send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
30
+ send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
31
31
  stopSending(localId: string): Promise<void>;
32
32
  pauseSending(localId: string): Promise<void>;
33
33
  resumeSending(localId: string): Promise<void>;
@@ -35,13 +35,13 @@ export declare class Chrome70 extends HandlerInterface {
35
35
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
36
36
  setRtpEncodingParameters(localId: string, params: any): Promise<void>;
37
37
  getSenderStats(localId: string): Promise<RTCStatsReport>;
38
- sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
38
+ sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
39
39
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
40
40
  stopReceiving(localIds: string[]): Promise<void>;
41
41
  pauseReceiving(localIds: string[]): Promise<void>;
42
42
  resumeReceiving(localIds: string[]): Promise<void>;
43
43
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
44
- receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
44
+ receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
45
45
  private setupTransport;
46
46
  private assertSendDirection;
47
47
  private assertRecvDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chrome70.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome70.ts"],"names":[],"mappings":"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"}