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
@@ -88,7 +88,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
88
88
  iceTransportPolicy: 'all',
89
89
  bundlePolicy: 'max-bundle',
90
90
  rtcpMuxPolicy: 'require',
91
- sdpSemantics: 'unified-plan'
91
+ sdpSemantics: 'unified-plan',
92
92
  });
93
93
  try {
94
94
  pc.addTransceiver('audio');
@@ -99,7 +99,9 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
99
99
  }
100
100
  catch (error) { }
101
101
  const sdpObject = sdpTransform.parse(offer.sdp);
102
- const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({ sdpObject });
102
+ const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
103
+ sdpObject,
104
+ });
103
105
  // libwebrtc supports NACK for OPUS but doesn't announce it.
104
106
  ortcUtils.addNackSuppportForOpus(nativeRtpCapabilities);
105
107
  return nativeRtpCapabilities;
@@ -115,10 +117,10 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
115
117
  async getNativeSctpCapabilities() {
116
118
  logger.debug('getNativeSctpCapabilities()');
117
119
  return {
118
- numStreams: SCTP_NUM_STREAMS
120
+ numStreams: SCTP_NUM_STREAMS,
119
121
  };
120
122
  }
121
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
123
+ run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
122
124
  this.assertNotClosed();
123
125
  logger.debug('run()');
124
126
  this._direction = direction;
@@ -126,22 +128,19 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
126
128
  iceParameters,
127
129
  iceCandidates,
128
130
  dtlsParameters,
129
- sctpParameters
131
+ sctpParameters,
130
132
  });
131
- this._sendingRtpParametersByKind =
132
- {
133
- audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
134
- video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities)
135
- };
136
- this._sendingRemoteRtpParametersByKind =
137
- {
138
- audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
139
- video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
140
- };
133
+ this._sendingRtpParametersByKind = {
134
+ audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
135
+ video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
136
+ };
137
+ this._sendingRemoteRtpParametersByKind = {
138
+ audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
139
+ video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
140
+ };
141
141
  if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
142
- this._forcedLocalDtlsRole = dtlsParameters.role === 'server'
143
- ? 'client'
144
- : 'server';
142
+ this._forcedLocalDtlsRole =
143
+ dtlsParameters.role === 'server' ? 'client' : 'server';
145
144
  }
146
145
  this._pc = new RTCPeerConnection({
147
146
  iceServers: iceServers || [],
@@ -149,7 +148,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
149
148
  bundlePolicy: 'max-bundle',
150
149
  rtcpMuxPolicy: 'require',
151
150
  sdpSemantics: 'unified-plan',
152
- ...additionalSettings
151
+ ...additionalSettings,
153
152
  }, proprietaryConstraints);
154
153
  this._pc.addEventListener('icegatheringstatechange', () => {
155
154
  this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
@@ -163,32 +162,27 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
163
162
  this._pc.addEventListener('iceconnectionstatechange', () => {
164
163
  logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
165
164
  switch (this._pc.iceConnectionState) {
166
- case 'checking':
167
- {
168
- this.emit('@connectionstatechange', 'connecting');
169
- break;
170
- }
165
+ case 'checking': {
166
+ this.emit('@connectionstatechange', 'connecting');
167
+ break;
168
+ }
171
169
  case 'connected':
172
- case 'completed':
173
- {
174
- this.emit('@connectionstatechange', 'connected');
175
- break;
176
- }
177
- case 'failed':
178
- {
179
- this.emit('@connectionstatechange', 'failed');
180
- break;
181
- }
182
- case 'disconnected':
183
- {
184
- this.emit('@connectionstatechange', 'disconnected');
185
- break;
186
- }
187
- case 'closed':
188
- {
189
- this.emit('@connectionstatechange', 'closed');
190
- break;
191
- }
170
+ case 'completed': {
171
+ this.emit('@connectionstatechange', 'connected');
172
+ break;
173
+ }
174
+ case 'failed': {
175
+ this.emit('@connectionstatechange', 'failed');
176
+ break;
177
+ }
178
+ case 'disconnected': {
179
+ this.emit('@connectionstatechange', 'disconnected');
180
+ break;
181
+ }
182
+ case 'closed': {
183
+ this.emit('@connectionstatechange', 'closed');
184
+ break;
185
+ }
192
186
  }
193
187
  });
194
188
  }
@@ -229,7 +223,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
229
223
  this.assertNotClosed();
230
224
  return this._pc.getStats();
231
225
  }
232
- async send({ track, encodings, codecOptions, codec }) {
226
+ async send({ track, encodings, codecOptions, codec, }) {
233
227
  this.assertNotClosed();
234
228
  this.assertSendDirection();
235
229
  logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
@@ -240,17 +234,15 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
240
234
  }
241
235
  const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
242
236
  // This may throw.
243
- sendingRtpParameters.codecs =
244
- ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
237
+ sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
245
238
  const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
246
239
  // This may throw.
247
- sendingRemoteRtpParameters.codecs =
248
- ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
240
+ sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
249
241
  const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
250
242
  const transceiver = this._pc.addTransceiver(track, {
251
243
  direction: 'sendonly',
252
244
  streams: [this._sendStream],
253
- sendEncodings: encodings
245
+ sendEncodings: encodings,
254
246
  });
255
247
  let offer = await this._pc.createOffer();
256
248
  let localSdpObject = sdpTransform.parse(offer.sdp);
@@ -258,7 +250,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
258
250
  if (!this._transportReady) {
259
251
  await this.setupTransport({
260
252
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
261
- localSdpObject
253
+ localSdpObject,
262
254
  });
263
255
  }
264
256
  // Special case for VP9 with SVC.
@@ -274,7 +266,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
274
266
  offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
275
267
  sdpUnifiedPlanUtils.addLegacySimulcast({
276
268
  offerMediaObject,
277
- numStreams: layers.spatialLayers
269
+ numStreams: layers.spatialLayers,
278
270
  });
279
271
  offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
280
272
  }
@@ -297,17 +289,21 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
297
289
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
298
290
  offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
299
291
  // Set RTCP CNAME.
300
- sendingRtpParameters.rtcp.cname =
301
- sdpCommonUtils.getCname({ offerMediaObject });
292
+ sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
293
+ offerMediaObject,
294
+ });
302
295
  // Set RTP encodings by parsing the SDP offer if no encodings are given.
303
296
  if (!encodings) {
304
- sendingRtpParameters.encodings =
305
- sdpUnifiedPlanUtils.getRtpEncodings({ offerMediaObject });
297
+ sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
298
+ offerMediaObject,
299
+ });
306
300
  }
307
301
  // Set RTP encodings by parsing the SDP offer and complete them with given
308
302
  // one if just a single encoding has been given.
309
303
  else if (encodings.length === 1) {
310
- let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({ offerMediaObject });
304
+ let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
305
+ offerMediaObject,
306
+ });
311
307
  Object.assign(newEncodings[0], encodings[0]);
312
308
  // Hack for VP9 SVC.
313
309
  if (hackVp9Svc) {
@@ -339,7 +335,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
339
335
  offerRtpParameters: sendingRtpParameters,
340
336
  answerRtpParameters: sendingRemoteRtpParameters,
341
337
  codecOptions,
342
- extmapAllowMixed: true
338
+ extmapAllowMixed: true,
343
339
  });
344
340
  const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
345
341
  logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
@@ -357,7 +353,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
357
353
  return {
358
354
  localId,
359
355
  rtpParameters: sendingRtpParameters,
360
- rtpSender: transceiver.sender
356
+ rtpSender: transceiver.sender,
361
357
  };
362
358
  }
363
359
  async stopSending(localId) {
@@ -492,7 +488,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
492
488
  }
493
489
  return transceiver.sender.getStats();
494
490
  }
495
- async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
491
+ async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
496
492
  this.assertNotClosed();
497
493
  this.assertSendDirection();
498
494
  const options = {
@@ -501,7 +497,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
501
497
  ordered,
502
498
  maxPacketLifeTime,
503
499
  maxRetransmits,
504
- protocol
500
+ protocol,
505
501
  };
506
502
  logger.debug('sendDataChannel() [options:%o]', options);
507
503
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -513,12 +509,11 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
513
509
  if (!this._hasDataChannelMediaSection) {
514
510
  const offer = await this._pc.createOffer();
515
511
  const localSdpObject = sdpTransform.parse(offer.sdp);
516
- const offerMediaObject = localSdpObject.media
517
- .find((m) => m.type === 'application');
512
+ const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
518
513
  if (!this._transportReady) {
519
514
  await this.setupTransport({
520
515
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
521
- localSdpObject
516
+ localSdpObject,
522
517
  });
523
518
  }
524
519
  logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
@@ -533,7 +528,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
533
528
  streamId: options.id,
534
529
  ordered: options.ordered,
535
530
  maxPacketLifeTime: options.maxPacketLifeTime,
536
- maxRetransmits: options.maxRetransmits
531
+ maxRetransmits: options.maxRetransmits,
537
532
  };
538
533
  return { dataChannel, sctpStreamParameters };
539
534
  }
@@ -552,7 +547,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
552
547
  kind,
553
548
  offerRtpParameters: rtpParameters,
554
549
  streamId: streamId || rtpParameters.rtcp.cname,
555
- trackId
550
+ trackId,
556
551
  });
557
552
  }
558
553
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
@@ -563,20 +558,19 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
563
558
  for (const options of optionsList) {
564
559
  const { trackId, rtpParameters } = options;
565
560
  const localId = mapLocalId.get(trackId);
566
- const answerMediaObject = localSdpObject.media
567
- .find((m) => String(m.mid) === localId);
561
+ const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
568
562
  // May need to modify codec parameters in the answer based on codec
569
563
  // parameters in the offer.
570
564
  sdpCommonUtils.applyCodecParameters({
571
565
  offerRtpParameters: rtpParameters,
572
- answerMediaObject
566
+ answerMediaObject,
573
567
  });
574
568
  }
575
569
  answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
576
570
  if (!this._transportReady) {
577
571
  await this.setupTransport({
578
572
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
579
- localSdpObject
573
+ localSdpObject,
580
574
  });
581
575
  }
582
576
  logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
@@ -584,7 +578,8 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
584
578
  for (const options of optionsList) {
585
579
  const { trackId } = options;
586
580
  const localId = mapLocalId.get(trackId);
587
- const transceiver = this._pc.getTransceivers()
581
+ const transceiver = this._pc
582
+ .getTransceivers()
588
583
  .find((t) => t.mid === localId);
589
584
  if (!transceiver) {
590
585
  throw new Error('new RTCRtpTransceiver not found');
@@ -595,7 +590,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
595
590
  results.push({
596
591
  localId,
597
592
  track: transceiver.receiver.track,
598
- rtpReceiver: transceiver.receiver
593
+ rtpReceiver: transceiver.receiver,
599
594
  });
600
595
  }
601
596
  }
@@ -671,17 +666,17 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
671
666
  }
672
667
  return transceiver.receiver.getStats();
673
668
  }
674
- async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
669
+ async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
675
670
  this.assertNotClosed();
676
671
  this.assertRecvDirection();
677
- const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
672
+ const { streamId, ordered, maxPacketLifeTime, maxRetransmits, } = sctpStreamParameters;
678
673
  const options = {
679
674
  negotiated: true,
680
675
  id: streamId,
681
676
  ordered,
682
677
  maxPacketLifeTime,
683
678
  maxRetransmits,
684
- protocol
679
+ protocol,
685
680
  };
686
681
  logger.debug('receiveDataChannel() [options:%o]', options);
687
682
  const dataChannel = this._pc.createDataChannel(label, options);
@@ -697,7 +692,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
697
692
  const localSdpObject = sdpTransform.parse(answer.sdp);
698
693
  await this.setupTransport({
699
694
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
700
- localSdpObject
695
+ localSdpObject,
701
696
  });
702
697
  }
703
698
  logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
@@ -706,19 +701,25 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
706
701
  }
707
702
  return { dataChannel };
708
703
  }
709
- async setupTransport({ localDtlsRole, localSdpObject }) {
704
+ async setupTransport({ localDtlsRole, localSdpObject, }) {
710
705
  if (!localSdpObject) {
711
706
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
712
707
  }
708
+ // Get our local ICE parameters.
709
+ const iceParameters = sdpCommonUtils.extractIceParameters({
710
+ sdpObject: localSdpObject,
711
+ });
713
712
  // Get our local DTLS parameters.
714
- const dtlsParameters = sdpCommonUtils.extractDtlsParameters({ sdpObject: localSdpObject });
713
+ const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
714
+ sdpObject: localSdpObject,
715
+ });
715
716
  // Set our DTLS role.
716
717
  dtlsParameters.role = localDtlsRole;
717
718
  // Update the remote DTLS role in the SDP.
718
719
  this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
719
720
  // Need to tell the remote transport about our parameters.
720
721
  await new Promise((resolve, reject) => {
721
- this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
722
+ this.safeEmit('@connect', { iceParameters, dtlsParameters }, resolve, reject);
722
723
  });
723
724
  this._transportReady = true;
724
725
  }
@@ -25,11 +25,11 @@ export declare class Safari11 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 Safari11 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
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
44
44
  pauseReceiving(localIds: string[]): Promise<void>;
45
45
  resumeReceiving(localIds: string[]): Promise<void>;
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":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}