@webex/plugin-meetings 3.8.0-next.26 → 3.8.0-next.27

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.
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.0-next.26"
461
+ version: "3.8.0-next.27"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.0-next.26",
46
+ "@webex/plugin-meetings": "3.8.0-next.27",
47
47
  "@webex/plugin-rooms": "3.8.0-next.13",
48
48
  "@webex/test-helper-chai": "3.8.0-next.11",
49
49
  "@webex/test-helper-mocha": "3.8.0-next.11",
@@ -71,7 +71,7 @@
71
71
  "@webex/internal-plugin-metrics": "3.8.0-next.11",
72
72
  "@webex/internal-plugin-support": "3.8.0-next.13",
73
73
  "@webex/internal-plugin-user": "3.8.0-next.11",
74
- "@webex/internal-plugin-voicea": "3.8.0-next.26",
74
+ "@webex/internal-plugin-voicea": "3.8.0-next.27",
75
75
  "@webex/media-helpers": "3.8.0-next.12",
76
76
  "@webex/plugin-people": "3.8.0-next.13",
77
77
  "@webex/plugin-rooms": "3.8.0-next.13",
@@ -92,5 +92,5 @@
92
92
  "//": [
93
93
  "TODO: upgrade jwt-decode when moving to node 18"
94
94
  ],
95
- "version": "3.8.0-next.26"
95
+ "version": "3.8.0-next.27"
96
96
  }
@@ -6205,10 +6205,7 @@ export default class Meeting extends StatelessWebexPlugin {
6205
6205
  },
6206
6206
  options: {meetingId: this.id, rawError: error},
6207
6207
  });
6208
- } else if (
6209
- error instanceof Errors.SdpOfferHandlingError ||
6210
- error instanceof Errors.SdpAnswerHandlingError
6211
- ) {
6208
+ } else if (error instanceof Errors.SdpOfferHandlingError) {
6212
6209
  sendBehavioralMetric(BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE, error, this.correlationId);
6213
6210
 
6214
6211
  // @ts-ignore
@@ -6219,6 +6216,24 @@ export default class Meeting extends StatelessWebexPlugin {
6219
6216
  },
6220
6217
  options: {meetingId: this.id, rawError: error},
6221
6218
  });
6219
+ } else if (error instanceof Errors.SdpAnswerHandlingError) {
6220
+ sendBehavioralMetric(BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE, error, this.correlationId);
6221
+
6222
+ // @ts-ignore
6223
+ this.webex.internal.newMetrics.submitClientEvent({
6224
+ name: 'client.media-engine.remote-sdp-received',
6225
+ payload: {
6226
+ canProceed: false,
6227
+ },
6228
+ options: {meetingId: this.id, rawError: error},
6229
+ });
6230
+
6231
+ if (this.deferSDPAnswer) {
6232
+ clearTimeout(this.sdpResponseTimer);
6233
+ this.sdpResponseTimer = undefined;
6234
+
6235
+ this.deferSDPAnswer.reject();
6236
+ }
6222
6237
  } else if (error instanceof Errors.SdpError) {
6223
6238
  // this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
6224
6239
  sendBehavioralMetric(BEHAVIORAL_METRICS.INVALID_ICE_CANDIDATE, error, this.correlationId);
@@ -8614,13 +8614,19 @@ describe('plugin-meetings', () => {
8614
8614
  const fakeErrorMessage = 'test error';
8615
8615
  const fakeRootCauseName = 'root cause name';
8616
8616
  const fakeErrorName = 'test error name';
8617
+ let clock;
8617
8618
 
8618
8619
  beforeEach(() => {
8620
+ clock = sinon.useFakeTimers();
8619
8621
  meeting.setupMediaConnectionListeners();
8620
8622
  webex.internal.newMetrics.submitClientEvent.resetHistory();
8621
8623
  Metrics.sendBehavioralMetric.resetHistory();
8622
8624
  });
8623
8625
 
8626
+ afterEach(() => {
8627
+ clock.restore();
8628
+ });
8629
+
8624
8630
  const checkMetricSent = (event, error) => {
8625
8631
  assert.calledOnce(webex.internal.newMetrics.submitClientEvent);
8626
8632
  assert.calledWithMatch(webex.internal.newMetrics.submitClientEvent, {
@@ -8689,6 +8695,13 @@ describe('plugin-meetings', () => {
8689
8695
  });
8690
8696
 
8691
8697
  it('should send metrics for SdpAnswerHandlingError error', () => {
8698
+ meeting.sdpResponseTimer = '1234';
8699
+ meeting.deferSDPAnswer = {
8700
+ reject: sinon.stub(),
8701
+ };
8702
+
8703
+ const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
8704
+
8692
8705
  const fakeError = new Errors.SdpAnswerHandlingError(fakeErrorMessage, {
8693
8706
  name: fakeErrorName,
8694
8707
  cause: {name: fakeRootCauseName},
@@ -8703,6 +8716,8 @@ describe('plugin-meetings', () => {
8703
8716
  fakeErrorMessage,
8704
8717
  fakeRootCauseName
8705
8718
  );
8719
+ assert.calledOnce(meeting.deferSDPAnswer.reject);
8720
+ assert.calledOnce(clearTimeoutSpy);
8706
8721
  });
8707
8722
 
8708
8723
  it('should send metrics for SdpError error', () => {