@webex/plugin-meetings 3.0.0-beta.158 → 3.0.0-beta.159

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.
@@ -38,7 +38,7 @@ export type AddMediaOptions = {
38
38
  };
39
39
  export declare const MEDIA_UPDATE_TYPE: {
40
40
  TRANSCODED_MEDIA_CONNECTION: string;
41
- LAMBDA: string;
41
+ SHARE_FLOOR_REQUEST: string;
42
42
  UPDATE_MEDIA: string;
43
43
  };
44
44
  /**
@@ -391,6 +391,13 @@ export default class Meeting extends StatelessWebexPlugin {
391
391
  * @memberof Meeting
392
392
  */
393
393
  constructor(attrs: any, options: object);
394
+ /**
395
+ * returns meeting is joined
396
+ * @private
397
+ * @memberof Meeting
398
+ * @returns {Boolean}
399
+ */
400
+ private isJoined;
394
401
  /**
395
402
  * Fetches meeting information.
396
403
  * @param {Object} options
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
- "version": "3.0.0-beta.158",
3
+ "version": "3.0.0-beta.159",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "contributors": [
@@ -32,12 +32,12 @@
32
32
  "build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
33
33
  },
34
34
  "devDependencies": {
35
- "@webex/plugin-meetings": "3.0.0-beta.158",
36
- "@webex/test-helper-chai": "3.0.0-beta.158",
37
- "@webex/test-helper-mocha": "3.0.0-beta.158",
38
- "@webex/test-helper-mock-webex": "3.0.0-beta.158",
39
- "@webex/test-helper-retry": "3.0.0-beta.158",
40
- "@webex/test-helper-test-users": "3.0.0-beta.158",
35
+ "@webex/plugin-meetings": "3.0.0-beta.159",
36
+ "@webex/test-helper-chai": "3.0.0-beta.159",
37
+ "@webex/test-helper-mocha": "3.0.0-beta.159",
38
+ "@webex/test-helper-mock-webex": "3.0.0-beta.159",
39
+ "@webex/test-helper-retry": "3.0.0-beta.159",
40
+ "@webex/test-helper-test-users": "3.0.0-beta.159",
41
41
  "chai": "^4.3.4",
42
42
  "chai-as-promised": "^7.1.1",
43
43
  "jsdom-global": "3.0.2",
@@ -46,19 +46,19 @@
46
46
  "typescript": "^4.7.4"
47
47
  },
48
48
  "dependencies": {
49
- "@webex/common": "3.0.0-beta.158",
49
+ "@webex/common": "3.0.0-beta.159",
50
50
  "@webex/internal-media-core": "1.38.6",
51
- "@webex/internal-plugin-conversation": "3.0.0-beta.158",
52
- "@webex/internal-plugin-device": "3.0.0-beta.158",
53
- "@webex/internal-plugin-llm": "3.0.0-beta.158",
54
- "@webex/internal-plugin-mercury": "3.0.0-beta.158",
55
- "@webex/internal-plugin-metrics": "3.0.0-beta.158",
56
- "@webex/internal-plugin-support": "3.0.0-beta.158",
57
- "@webex/internal-plugin-user": "3.0.0-beta.158",
58
- "@webex/media-helpers": "3.0.0-beta.158",
59
- "@webex/plugin-people": "3.0.0-beta.158",
60
- "@webex/plugin-rooms": "3.0.0-beta.158",
61
- "@webex/webex-core": "3.0.0-beta.158",
51
+ "@webex/internal-plugin-conversation": "3.0.0-beta.159",
52
+ "@webex/internal-plugin-device": "3.0.0-beta.159",
53
+ "@webex/internal-plugin-llm": "3.0.0-beta.159",
54
+ "@webex/internal-plugin-mercury": "3.0.0-beta.159",
55
+ "@webex/internal-plugin-metrics": "3.0.0-beta.159",
56
+ "@webex/internal-plugin-support": "3.0.0-beta.159",
57
+ "@webex/internal-plugin-user": "3.0.0-beta.159",
58
+ "@webex/media-helpers": "3.0.0-beta.159",
59
+ "@webex/plugin-people": "3.0.0-beta.159",
60
+ "@webex/plugin-rooms": "3.0.0-beta.159",
61
+ "@webex/webex-core": "3.0.0-beta.159",
62
62
  "ampersand-collection": "^2.0.2",
63
63
  "bowser": "^2.11.0",
64
64
  "btoa": "^1.2.1",
@@ -334,7 +334,7 @@ const Breakouts = WebexPlugin.extend({
334
334
  url: params.url,
335
335
  [BREAKOUTS.SESSION_STATES.ACTIVE]: false,
336
336
  [BREAKOUTS.SESSION_STATES.ALLOWED]: false,
337
- [BREAKOUTS.SESSION_STATES.ALLOWED]: false,
337
+ [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,
338
338
  [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,
339
339
  [BREAKOUTS.SESSION_STATES.REQUESTED]: false,
340
340
  });
@@ -160,7 +160,7 @@ export type AddMediaOptions = {
160
160
 
161
161
  export const MEDIA_UPDATE_TYPE = {
162
162
  TRANSCODED_MEDIA_CONNECTION: 'TRANSCODED_MEDIA_CONNECTION',
163
- LAMBDA: 'LAMBDA',
163
+ SHARE_FLOOR_REQUEST: 'SHARE_FLOOR_REQUEST',
164
164
  UPDATE_MEDIA: 'UPDATE_MEDIA',
165
165
  };
166
166
 
@@ -1213,6 +1213,16 @@ export default class Meeting extends StatelessWebexPlugin {
1213
1213
  };
1214
1214
  }
1215
1215
 
1216
+ /**
1217
+ * returns meeting is joined
1218
+ * @private
1219
+ * @memberof Meeting
1220
+ * @returns {Boolean}
1221
+ */
1222
+ private isJoined() {
1223
+ return this.joinedWith?.state === 'JOINED';
1224
+ }
1225
+
1216
1226
  /**
1217
1227
  * Fetches meeting information.
1218
1228
  * @param {Object} options
@@ -1502,14 +1512,16 @@ export default class Meeting extends StatelessWebexPlugin {
1502
1512
  });
1503
1513
 
1504
1514
  this.breakouts.on(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN, () => {
1505
- Trigger.trigger(
1506
- this,
1507
- {
1508
- file: 'meeting/index',
1509
- function: 'setUpBreakoutsListener',
1510
- },
1511
- EVENT_TRIGGERS.MEETING_BREAKOUTS_ASK_RETURN_TO_MAIN
1512
- );
1515
+ if (this.isJoined()) {
1516
+ Trigger.trigger(
1517
+ this,
1518
+ {
1519
+ file: 'meeting/index',
1520
+ function: 'setUpBreakoutsListener',
1521
+ },
1522
+ EVENT_TRIGGERS.MEETING_BREAKOUTS_ASK_RETURN_TO_MAIN
1523
+ );
1524
+ }
1513
1525
  });
1514
1526
 
1515
1527
  this.breakouts.on(BREAKOUTS.EVENTS.LEAVE_BREAKOUT, () => {
@@ -4178,7 +4190,7 @@ export default class Meeting extends StatelessWebexPlugin {
4178
4190
  // @ts-ignore - Fix type
4179
4191
  const {url, info: {datachannelUrl} = {}} = this.locusInfo;
4180
4192
 
4181
- const isJoined = this.joinedWith && this.joinedWith.state === 'JOINED';
4193
+ const isJoined = this.isJoined();
4182
4194
 
4183
4195
  // @ts-ignore - Fix type
4184
4196
  if (this.webex.internal.llm.isConnected()) {
@@ -5196,11 +5208,7 @@ export default class Meeting extends StatelessWebexPlugin {
5196
5208
  )
5197
5209
  .then(() => {
5198
5210
  if (localTracks?.screenShare?.video) {
5199
- this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.LAMBDA, {
5200
- lambda: async () => {
5201
- return this.requestScreenShareFloor();
5202
- },
5203
- });
5211
+ this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.SHARE_FLOOR_REQUEST);
5204
5212
  }
5205
5213
  })
5206
5214
  .then(() => this.mediaProperties.getCurrentConnectionType())
@@ -5296,12 +5304,7 @@ export default class Meeting extends StatelessWebexPlugin {
5296
5304
  * @private
5297
5305
  * @memberof Meeting
5298
5306
  */
5299
- private enqueueMediaUpdate(mediaUpdateType: string, options: any): Promise<void> {
5300
- if (mediaUpdateType === MEDIA_UPDATE_TYPE.LAMBDA && typeof options?.lambda !== 'function') {
5301
- return Promise.reject(
5302
- new Error('lambda must be specified when enqueuing MEDIA_UPDATE_TYPE.LAMBDA')
5303
- );
5304
- }
5307
+ private enqueueMediaUpdate(mediaUpdateType: string, options: any = {}): Promise<void> {
5305
5308
  const canUpdateMediaNow = this.canUpdateMedia();
5306
5309
 
5307
5310
  return new Promise((resolve, reject) => {
@@ -5365,8 +5368,8 @@ export default class Meeting extends StatelessWebexPlugin {
5365
5368
  case MEDIA_UPDATE_TYPE.TRANSCODED_MEDIA_CONNECTION:
5366
5369
  mediaUpdate = this.updateTranscodedMediaConnection();
5367
5370
  break;
5368
- case MEDIA_UPDATE_TYPE.LAMBDA:
5369
- mediaUpdate = options.lambda();
5371
+ case MEDIA_UPDATE_TYPE.SHARE_FLOOR_REQUEST:
5372
+ mediaUpdate = this.requestScreenShareFloor();
5370
5373
  break;
5371
5374
  case MEDIA_UPDATE_TYPE.UPDATE_MEDIA:
5372
5375
  mediaUpdate = this.updateMedia(options);
@@ -6641,7 +6644,7 @@ export default class Meeting extends StatelessWebexPlugin {
6641
6644
  LoggerProxy.logger.info(`${LOG_HEADER} starting`);
6642
6645
 
6643
6646
  if (!this.canUpdateMedia()) {
6644
- return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.TRANSCODED_MEDIA_CONNECTION, {});
6647
+ return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.TRANSCODED_MEDIA_CONNECTION);
6645
6648
  }
6646
6649
 
6647
6650
  return this.mediaProperties.webrtcMediaConnection
@@ -6770,11 +6773,7 @@ export default class Meeting extends StatelessWebexPlugin {
6770
6773
  // we're sending the http request to Locus to request the screen share floor
6771
6774
  // only after the SDP update, because that's how it's always been done for transcoded meetings
6772
6775
  // and also if sharing from the start, we need confluence to have been created
6773
- await this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.LAMBDA, {
6774
- lambda: async () => {
6775
- return this.requestScreenShareFloor();
6776
- },
6777
- });
6776
+ await this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.SHARE_FLOOR_REQUEST);
6778
6777
  }
6779
6778
  }
6780
6779
 
@@ -2710,6 +2710,19 @@ describe('plugin-meetings', () => {
2710
2710
  });
2711
2711
  });
2712
2712
 
2713
+ describe("#isJoined", () => {
2714
+ it("should returns isJoined correctly", () => {
2715
+ meeting.joinedWith = undefined;
2716
+ assert.equal(meeting.isJoined(), false);
2717
+
2718
+ meeting.joinedWith = {state: "NOT_JOINED"};
2719
+ assert.equal(meeting.isJoined(), false);
2720
+
2721
+ meeting.joinedWith = {state: "JOINED"};
2722
+ assert.equal(meeting.isJoined(), true);
2723
+ });
2724
+ });
2725
+
2713
2726
  describe('#fetchMeetingInfo', () => {
2714
2727
  const FAKE_DESTINATION = 'something@somecompany.com';
2715
2728
  const FAKE_TYPE = _SIP_URI_;
@@ -4463,8 +4476,16 @@ describe('plugin-meetings', () => {
4463
4476
  );
4464
4477
  });
4465
4478
 
4479
+ it('should not trigger ASK_RETURN_TO_MAIN before joined', () => {
4480
+ TriggerProxy.trigger.reset();
4481
+ meeting.joinedWith = {state: "NOT_JOINED"};
4482
+ meeting.breakouts.trigger('ASK_RETURN_TO_MAIN');
4483
+ assert.notCalled(TriggerProxy.trigger);
4484
+ });
4485
+
4466
4486
  it('listens to the ask return to main event from breakouts and triggers the ask return to main event from meeting', () => {
4467
4487
  TriggerProxy.trigger.reset();
4488
+ meeting.joinedWith = {state: "JOINED"};
4468
4489
  meeting.breakouts.trigger('ASK_RETURN_TO_MAIN');
4469
4490
  assert.calledWith(
4470
4491
  TriggerProxy.trigger,