@webex/plugin-meetings 3.3.1-next.21 → 3.3.1-next.23

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.
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
62
62
  updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
63
63
  this.set('canManageWebcast', canManageWebcast);
64
64
  },
65
- version: "3.3.1-next.21"
65
+ version: "3.3.1-next.23"
66
66
  });
67
67
  var _default = exports.default = Webinar;
68
68
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,13 +43,13 @@
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.3.1-next.21",
47
- "@webex/plugin-rooms": "3.3.1-next.5",
48
- "@webex/test-helper-chai": "3.3.1-next.4",
49
- "@webex/test-helper-mocha": "3.3.1-next.4",
50
- "@webex/test-helper-mock-webex": "3.3.1-next.4",
51
- "@webex/test-helper-retry": "3.3.1-next.4",
52
- "@webex/test-helper-test-users": "3.3.1-next.4",
46
+ "@webex/plugin-meetings": "3.3.1-next.23",
47
+ "@webex/plugin-rooms": "3.3.1-next.6",
48
+ "@webex/test-helper-chai": "3.3.1-next.5",
49
+ "@webex/test-helper-mocha": "3.3.1-next.5",
50
+ "@webex/test-helper-mock-webex": "3.3.1-next.5",
51
+ "@webex/test-helper-retry": "3.3.1-next.5",
52
+ "@webex/test-helper-test-users": "3.3.1-next.5",
53
53
  "chai": "^4.3.4",
54
54
  "chai-as-promised": "^7.1.1",
55
55
  "eslint": "^8.24.0",
@@ -61,21 +61,21 @@
61
61
  "typescript": "^4.7.4"
62
62
  },
63
63
  "dependencies": {
64
- "@webex/common": "3.3.1-next.4",
64
+ "@webex/common": "3.3.1-next.5",
65
65
  "@webex/internal-media-core": "2.7.1",
66
- "@webex/internal-plugin-conversation": "3.3.1-next.5",
67
- "@webex/internal-plugin-device": "3.3.1-next.4",
68
- "@webex/internal-plugin-llm": "3.3.1-next.6",
69
- "@webex/internal-plugin-mercury": "3.3.1-next.5",
70
- "@webex/internal-plugin-metrics": "3.3.1-next.4",
71
- "@webex/internal-plugin-support": "3.3.1-next.5",
72
- "@webex/internal-plugin-user": "3.3.1-next.4",
73
- "@webex/internal-plugin-voicea": "3.3.1-next.21",
74
- "@webex/media-helpers": "3.3.1-next.7",
75
- "@webex/plugin-people": "3.3.1-next.5",
76
- "@webex/plugin-rooms": "3.3.1-next.5",
66
+ "@webex/internal-plugin-conversation": "3.3.1-next.6",
67
+ "@webex/internal-plugin-device": "3.3.1-next.5",
68
+ "@webex/internal-plugin-llm": "3.3.1-next.7",
69
+ "@webex/internal-plugin-mercury": "3.3.1-next.6",
70
+ "@webex/internal-plugin-metrics": "3.3.1-next.5",
71
+ "@webex/internal-plugin-support": "3.3.1-next.6",
72
+ "@webex/internal-plugin-user": "3.3.1-next.5",
73
+ "@webex/internal-plugin-voicea": "3.3.1-next.23",
74
+ "@webex/media-helpers": "3.3.1-next.8",
75
+ "@webex/plugin-people": "3.3.1-next.6",
76
+ "@webex/plugin-rooms": "3.3.1-next.6",
77
77
  "@webex/web-capabilities": "^1.3.0",
78
- "@webex/webex-core": "3.3.1-next.4",
78
+ "@webex/webex-core": "3.3.1-next.5",
79
79
  "ampersand-collection": "^2.0.2",
80
80
  "bowser": "^2.11.0",
81
81
  "btoa": "^1.2.1",
@@ -92,5 +92,5 @@
92
92
  "//": [
93
93
  "TODO: upgrade jwt-decode when moving to node 18"
94
94
  ],
95
- "version": "3.3.1-next.21"
95
+ "version": "3.3.1-next.23"
96
96
  }
@@ -4647,7 +4647,16 @@ export default class Meeting extends StatelessWebexPlugin {
4647
4647
  }
4648
4648
  );
4649
4649
 
4650
- if (!isRetry) {
4650
+ // if this was the first attempt, let's do a retry
4651
+ let shouldRetry = !isRetry;
4652
+
4653
+ if (CallDiagnosticUtils.isSdpOfferCreationError(error)) {
4654
+ // errors related to offer creation (for example missing H264 codec) will happen again no matter how many times we try,
4655
+ // so there is no point doing a retry
4656
+ shouldRetry = false;
4657
+ }
4658
+
4659
+ if (shouldRetry) {
4651
4660
  LoggerProxy.logger.warn('Meeting:index#joinWithMedia --> retrying call to joinWithMedia');
4652
4661
  this.joinWithMediaRetryInfo.isRetry = true;
4653
4662
  this.joinWithMediaRetryInfo.prevJoinResponse = joinResponse;
@@ -902,6 +902,38 @@ describe('plugin-meetings', () => {
902
902
  }
903
903
  );
904
904
  });
905
+
906
+ it('should not attempt a retry if we fail to create the offer on first atttempt', async () => {
907
+ const addMediaError = new Error('fake addMedia error');
908
+ addMediaError.name = 'SdpOfferCreationError';
909
+
910
+ meeting.addMedia.rejects(addMediaError)
911
+
912
+ await assert.isRejected(meeting.joinWithMedia({
913
+ joinOptions,
914
+ mediaOptions,
915
+ }), addMediaError);
916
+
917
+ // check that only 1 attempt was done
918
+ assert.calledOnce(meeting.join);
919
+ assert.calledOnce(meeting.addMedia);
920
+ assert.calledOnce(Metrics.sendBehavioralMetric);
921
+ assert.calledWith(
922
+ Metrics.sendBehavioralMetric.firstCall,
923
+ BEHAVIORAL_METRICS.JOIN_WITH_MEDIA_FAILURE,
924
+ {
925
+ correlation_id: meeting.correlationId,
926
+ locus_id: meeting.locusUrl.split('/').pop(),
927
+ reason: addMediaError.message,
928
+ stack: addMediaError.stack,
929
+ leaveErrorReason: undefined,
930
+ isRetry: false,
931
+ },
932
+ {
933
+ type: addMediaError.name,
934
+ }
935
+ );
936
+ });
905
937
  });
906
938
 
907
939
  describe('#isTranscriptionSupported', () => {