@webex/plugin-meetings 3.12.0-next.57 → 3.12.0-next.59

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 (37) hide show
  1. package/dist/aiEnableRequest/index.js +1 -1
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +24 -1
  4. package/dist/breakouts/index.js.map +1 -1
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/interpretation/index.js +1 -1
  8. package/dist/interpretation/siLanguage.js +1 -1
  9. package/dist/media/index.js +3 -1
  10. package/dist/media/index.js.map +1 -1
  11. package/dist/meeting/index.js +37 -10
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/meetings/index.js +23 -0
  14. package/dist/meetings/index.js.map +1 -1
  15. package/dist/multistream/codec/constants.js +63 -0
  16. package/dist/multistream/codec/constants.js.map +1 -0
  17. package/dist/multistream/mediaRequestManager.js +62 -15
  18. package/dist/multistream/mediaRequestManager.js.map +1 -1
  19. package/dist/types/config.d.ts +1 -0
  20. package/dist/types/meeting/index.d.ts +9 -0
  21. package/dist/types/meetings/index.d.ts +10 -0
  22. package/dist/types/multistream/codec/constants.d.ts +7 -0
  23. package/dist/types/multistream/mediaRequestManager.d.ts +22 -5
  24. package/dist/webinar/index.js +1 -1
  25. package/package.json +1 -1
  26. package/src/breakouts/index.ts +30 -0
  27. package/src/config.ts +1 -0
  28. package/src/media/index.ts +3 -0
  29. package/src/meeting/index.ts +41 -2
  30. package/src/meetings/index.ts +21 -0
  31. package/src/multistream/codec/constants.ts +58 -0
  32. package/src/multistream/mediaRequestManager.ts +119 -28
  33. package/test/unit/spec/breakouts/index.ts +47 -0
  34. package/test/unit/spec/media/index.ts +31 -0
  35. package/test/unit/spec/meeting/index.js +154 -0
  36. package/test/unit/spec/meetings/index.js +27 -0
  37. package/test/unit/spec/multistream/mediaRequestManager.ts +501 -37
@@ -191,7 +191,7 @@ var AIEnableRequest = _webexCore.WebexPlugin.extend({
191
191
  method: _constants.HTTP_VERBS.PUT
192
192
  });
193
193
  },
194
- version: "3.12.0-next.57"
194
+ version: "3.12.0-next.59"
195
195
  });
196
196
  var _default = exports.default = AIEnableRequest;
197
197
  //# sourceMappingURL=index.js.map
@@ -214,7 +214,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
214
214
  sessionId: this.sessionId
215
215
  });
216
216
  },
217
- version: "3.12.0-next.57"
217
+ version: "3.12.0-next.59"
218
218
  });
219
219
  var _default = exports.default = Breakout;
220
220
  //# sourceMappingURL=breakout.js.map
@@ -1100,6 +1100,29 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1100
1100
  body: body
1101
1101
  });
1102
1102
  },
1103
+ /**
1104
+ * Remove participants from their current breakout session back to the main session
1105
+ * @param {string[]} participants - participant IDs to remove from breakout
1106
+ * @returns {Promise}
1107
+ */
1108
+ removeFromBreakout: function removeFromBreakout(participants) {
1109
+ if (!this.mainGroupId || !this.mainSessionId) {
1110
+ throw new Error('Main group ID and session ID must be available to remove participants from breakout');
1111
+ }
1112
+ return this.request({
1113
+ method: _constants.HTTP_VERBS.POST,
1114
+ uri: "".concat(this.url, "/move"),
1115
+ body: {
1116
+ groups: [{
1117
+ id: this.mainGroupId,
1118
+ sessions: [{
1119
+ id: this.mainSessionId,
1120
+ participants: participants
1121
+ }]
1122
+ }]
1123
+ }
1124
+ });
1125
+ },
1103
1126
  /**
1104
1127
  * trigger ASK_RETURN_TO_MAIN event when main session requested
1105
1128
  * @param {Object} breakout
@@ -1110,7 +1133,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1110
1133
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1111
1134
  }
1112
1135
  },
1113
- version: "3.12.0-next.57"
1136
+ version: "3.12.0-next.59"
1114
1137
  });
1115
1138
  var _default = exports.default = Breakouts;
1116
1139
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","resourceLink","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n resourceLink: params.resourceLink,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","mainGroupId","mainSessionId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","resourceLink","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","_setMainGroupId","_breakoutInfo$body2","_setMainSessionId","_breakoutInfo$body3","create","_this9","_callee2","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this0","_callee3","_context3","action","ACTION","DELETE","start","_arguments","_this1","_callee4","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this10","_callee5","_context5","CLOSE","update","unlockEdit","_this11","_callee6","_this11$editLock","_context6","getBreakout","_this12","_callee7","_breakout$body","_breakout$body$editlo","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this13","_callee8","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this14","_callee9","_breakout$body2","_context9","_this15","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this16","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this17","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","moveToLobby","_this18","removeFromBreakout","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n mainGroupId: 'string', // appears from the moment you enable breakouts\n mainSessionId: 'string', // appears from the moment you enable breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n resourceLink: params.resourceLink,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * set main group id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainGroupId(breakoutInfo) {\n if (breakoutInfo?.body?.mainGroupId) {\n this.set('mainGroupId', breakoutInfo.body.mainGroupId);\n }\n },\n\n /**\n * set main session id\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setMainSessionId(breakoutInfo) {\n if (breakoutInfo?.body?.mainSessionId) {\n this.set('mainSessionId', breakoutInfo.body.mainSessionId);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n this._setMainGroupId(breakoutInfo);\n this._setMainSessionId(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n this._setMainGroupId(breakout);\n this._setMainSessionId(breakout);\n\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Move participants to main session lobby\n * @param {Array} sessions\n * @param {string} sessions[].participants - Participant IDs to move\n * @returns {void}\n */\n moveToLobby(sessions: Array<{participants: string[]}>) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to move participants to lobby'\n );\n }\n\n const updatedSessions = sessions.map((item) => {\n return {\n id: this.mainSessionId,\n participants: item.participants,\n targetState: 'LOBBY',\n };\n });\n\n const body = {\n groups: [\n {\n id: this.mainGroupId,\n sessions: updatedSessions,\n },\n ],\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * Remove participants from their current breakout session back to the main session\n * @param {string[]} participants - participant IDs to remove from breakout\n * @returns {Promise}\n */\n removeFromBreakout(participants: string[]) {\n if (!this.mainGroupId || !this.mainSessionId) {\n throw new Error(\n 'Main group ID and session ID must be available to remove participants from breakout'\n );\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groups: [\n {\n id: this.mainGroupId,\n sessions: [\n {\n id: this.mainSessionId,\n participants,\n },\n ],\n },\n ],\n },\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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","ignoreList":[]}
package/dist/config.js CHANGED
@@ -102,6 +102,7 @@ var _default = exports.default = {
102
102
  degradationPreferences: {
103
103
  maxMacroblocksLimit: 8192
104
104
  },
105
+ enableAv1SlidesSupport: false,
105
106
  // This only applies to non-multistream meetings
106
107
  iceCandidatesGatheringTimeout: undefined,
107
108
  backendIpv6NativeSupport: false,
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_default","exports","default","meetings","deviceType","WEB","mediaSettings","pstn","reconnection","enabled","autoRejoin","detection","iceReconnectionTimeout","maxRejoinAttempts","stats","enableStatsAnalyzer","autoDowngradeEnabled","interval","analyzerInterval","historyMax","videoPacketLossRatioThreshold","rttThreshold","jitterThreshold","metrics","clientName","clientType","subClientType","mqaMetricsInterval","autoSendMQA","logging","enable","verboseEvents","resolution","maxWidth","maxHeight","idealWidth","idealHeight","screenResolution","bandwidth","audio","video","startBitrate","screenFrameRate","videoShareFrameRate","aspectRatio","autoUploadLogs","enableRtx","receiveTranscription","enableExtmap","enableAutomaticLLM","installedOrgID","undefined","multipartSitePrefixList","experimental","enableMediaNegotiatedEvent","enableUnifiedMeetings","enableAdhocMeetings","enableTcpReachability","enableTlsReachability","storeLocusHashTreeEventsForDebugging","degradationPreferences","maxMacroblocksLimit","iceCandidatesGatheringTimeout","backendIpv6NativeSupport","enableReachabilityChecks","reachabilityGetClusterTimeout","logUploadIntervalMultiplicationFactor","stopIceGatheringAfterFirstRelayCandidate","enableAudioTwccForMultistream","enablePerUdpUrlReachability","locus","excludedDataSets"],"sources":["config.ts"],"sourcesContent":["// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nexport default {\n // TODO: this needs to be defaulted\n // to JS_SDK and clients set it to WEB or others\n // see https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-73167\n meetings: {\n deviceType: deviceType.WEB,\n mediaSettings: {\n pstn: false,\n },\n reconnection: {\n enabled: false,\n autoRejoin: true,\n detection: true,\n // Timeout duration to wait for ICE to reconnect if a disconnect is received.\n iceReconnectionTimeout: 10000,\n // Amount of times attempting to rejoin a meeting during reconnect\n maxRejoinAttempts: 3,\n },\n stats: {\n // Enable the webrtc stats analyzer that emits quality degradation events\n enableStatsAnalyzer: true,\n // Enable the auto downgrade video quality feature\n autoDowngradeEnabled: false,\n // 1 second intervals to collect stats data\n interval: 1000,\n // we just want to analyze data every 5 sec interval\n analyzerInterval: 5000,\n // hold the last 2 minute of a calls data\n historyMax: 120,\n // Once packet loss hits this ratio, the video will downgrade\n videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received\n rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n },\n metrics: {\n // change to your client name else data will be muddled\n // you do not need a specific format, and you do not need to register it\n clientName: 'WEBEX_JS_SDK',\n // TODO: for now this line has to be whitelisted, which is problematic for third party\n clientType: 'WEBEX_SDK',\n // Stores the sub client type used when sending metrics\n subClientType: 'WEB_APP',\n // send average values MQA in 60 second intervals\n mqaMetricsInterval: 60000,\n // send to cisco internal MQA data automatically\n // we already send CA\n autoSendMQA: true,\n },\n logging: {\n enable: true,\n verboseEvents: true,\n },\n resolution: {\n maxWidth: 1280,\n maxHeight: 720,\n idealWidth: 1280,\n idealHeight: 720,\n },\n screenResolution: {\n maxWidth: 1920,\n maxHeight: 1080,\n idealWidth: 1920,\n idealHeight: 1080,\n },\n bandwidth: {\n // please note, these are the maximum bandwidth values\n // the server supports, minimums have to be tested\n audio: 64000,\n video: 4000000,\n startBitrate: 2000,\n },\n screenFrameRate: 10,\n videoShareFrameRate: 30,\n aspectRatio: 1.7695852534562213,\n // When enabled, as calls are ended, it will upload the SDK logs and correlate them\n autoUploadLogs: true,\n enableRtx: true,\n receiveTranscription: false,\n enableExtmap: false,\n enableAutomaticLLM: false,\n installedOrgID: undefined,\n multipartSitePrefixList: ['.my.', '.mydmz.', '.mybts.', '.mydev.', '.myats2.', '.myats.'],\n experimental: {\n enableMediaNegotiatedEvent: false,\n enableUnifiedMeetings: true,\n enableAdhocMeetings: true,\n enableTcpReachability: false,\n enableTlsReachability: false,\n storeLocusHashTreeEventsForDebugging: false,\n },\n degradationPreferences: {\n maxMacroblocksLimit: 8192,\n },\n // This only applies to non-multistream meetings\n iceCandidatesGatheringTimeout: undefined,\n backendIpv6NativeSupport: false,\n enableReachabilityChecks: true,\n reachabilityGetClusterTimeout: 5000,\n logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1\n stopIceGatheringAfterFirstRelayCandidate: false,\n enableAudioTwccForMultistream: false,\n enablePerUdpUrlReachability: false, // true: separate peer connection per each UDP URL; false: single peer connection for all URLs\n locus: {\n excludedDataSets: ['attendees'], // attendees data set only applies to webinar attendees and we never really need that\n },\n },\n};\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AADA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGe;EACb;EACA;EACA;EACAC,QAAQ,EAAE;IACRC,UAAU,EAAEA,kBAAU,CAACC,GAAG;IAC1BC,aAAa,EAAE;MACbC,IAAI,EAAE;IACR,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,IAAI;MACf;MACAC,sBAAsB,EAAE,KAAK;MAC7B;MACAC,iBAAiB,EAAE;IACrB,CAAC;IACDC,KAAK,EAAE;MACL;MACAC,mBAAmB,EAAE,IAAI;MACzB;MACAC,oBAAoB,EAAE,KAAK;MAC3B;MACAC,QAAQ,EAAE,IAAI;MACd;MACAC,gBAAgB,EAAE,IAAI;MACtB;MACAC,UAAU,EAAE,GAAG;MACf;MACAC,6BAA6B,EAAE,CAAC;MAAE;MAClCC,YAAY,EAAE,GAAG;MAAE;MACnBC,eAAe,EAAE,GAAG,CAAE;IACxB,CAAC;IACDC,OAAO,EAAE;MACP;MACA;MACAC,UAAU,EAAE,cAAc;MAC1B;MACAC,UAAU,EAAE,WAAW;MACvB;MACAC,aAAa,EAAE,SAAS;MACxB;MACAC,kBAAkB,EAAE,KAAK;MACzB;MACA;MACAC,WAAW,EAAE;IACf,CAAC;IACDC,OAAO,EAAE;MACPC,MAAM,EAAE,IAAI;MACZC,aAAa,EAAE;IACjB,CAAC;IACDC,UAAU,EAAE;MACVC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDC,gBAAgB,EAAE;MAChBJ,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDE,SAAS,EAAE;MACT;MACA;MACAC,KAAK,EAAE,KAAK;MACZC,KAAK,EAAE,OAAO;MACdC,YAAY,EAAE;IAChB,CAAC;IACDC,eAAe,EAAE,EAAE;IACnBC,mBAAmB,EAAE,EAAE;IACvBC,WAAW,EAAE,kBAAkB;IAC/B;IACAC,cAAc,EAAE,IAAI;IACpBC,SAAS,EAAE,IAAI;IACfC,oBAAoB,EAAE,KAAK;IAC3BC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE,KAAK;IACzBC,cAAc,EAAEC,SAAS;IACzBC,uBAAuB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;IACzFC,YAAY,EAAE;MACZC,0BAA0B,EAAE,KAAK;MACjCC,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE,IAAI;MACzBC,qBAAqB,EAAE,KAAK;MAC5BC,qBAAqB,EAAE,KAAK;MAC5BC,oCAAoC,EAAE;IACxC,CAAC;IACDC,sBAAsB,EAAE;MACtBC,mBAAmB,EAAE;IACvB,CAAC;IACD;IACAC,6BAA6B,EAAEX,SAAS;IACxCY,wBAAwB,EAAE,KAAK;IAC/BC,wBAAwB,EAAE,IAAI;IAC9BC,6BAA6B,EAAE,IAAI;IACnCC,qCAAqC,EAAE,CAAC;IAAE;IAC1CC,wCAAwC,EAAE,KAAK;IAC/CC,6BAA6B,EAAE,KAAK;IACpCC,2BAA2B,EAAE,KAAK;IAAE;IACpCC,KAAK,EAAE;MACLC,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAE;IACnC;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_common","require","_default","exports","default","meetings","deviceType","WEB","mediaSettings","pstn","reconnection","enabled","autoRejoin","detection","iceReconnectionTimeout","maxRejoinAttempts","stats","enableStatsAnalyzer","autoDowngradeEnabled","interval","analyzerInterval","historyMax","videoPacketLossRatioThreshold","rttThreshold","jitterThreshold","metrics","clientName","clientType","subClientType","mqaMetricsInterval","autoSendMQA","logging","enable","verboseEvents","resolution","maxWidth","maxHeight","idealWidth","idealHeight","screenResolution","bandwidth","audio","video","startBitrate","screenFrameRate","videoShareFrameRate","aspectRatio","autoUploadLogs","enableRtx","receiveTranscription","enableExtmap","enableAutomaticLLM","installedOrgID","undefined","multipartSitePrefixList","experimental","enableMediaNegotiatedEvent","enableUnifiedMeetings","enableAdhocMeetings","enableTcpReachability","enableTlsReachability","storeLocusHashTreeEventsForDebugging","degradationPreferences","maxMacroblocksLimit","enableAv1SlidesSupport","iceCandidatesGatheringTimeout","backendIpv6NativeSupport","enableReachabilityChecks","reachabilityGetClusterTimeout","logUploadIntervalMultiplicationFactor","stopIceGatheringAfterFirstRelayCandidate","enableAudioTwccForMultistream","enablePerUdpUrlReachability","locus","excludedDataSets"],"sources":["config.ts"],"sourcesContent":["// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nexport default {\n // TODO: this needs to be defaulted\n // to JS_SDK and clients set it to WEB or others\n // see https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-73167\n meetings: {\n deviceType: deviceType.WEB,\n mediaSettings: {\n pstn: false,\n },\n reconnection: {\n enabled: false,\n autoRejoin: true,\n detection: true,\n // Timeout duration to wait for ICE to reconnect if a disconnect is received.\n iceReconnectionTimeout: 10000,\n // Amount of times attempting to rejoin a meeting during reconnect\n maxRejoinAttempts: 3,\n },\n stats: {\n // Enable the webrtc stats analyzer that emits quality degradation events\n enableStatsAnalyzer: true,\n // Enable the auto downgrade video quality feature\n autoDowngradeEnabled: false,\n // 1 second intervals to collect stats data\n interval: 1000,\n // we just want to analyze data every 5 sec interval\n analyzerInterval: 5000,\n // hold the last 2 minute of a calls data\n historyMax: 120,\n // Once packet loss hits this ratio, the video will downgrade\n videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received\n rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user\n },\n metrics: {\n // change to your client name else data will be muddled\n // you do not need a specific format, and you do not need to register it\n clientName: 'WEBEX_JS_SDK',\n // TODO: for now this line has to be whitelisted, which is problematic for third party\n clientType: 'WEBEX_SDK',\n // Stores the sub client type used when sending metrics\n subClientType: 'WEB_APP',\n // send average values MQA in 60 second intervals\n mqaMetricsInterval: 60000,\n // send to cisco internal MQA data automatically\n // we already send CA\n autoSendMQA: true,\n },\n logging: {\n enable: true,\n verboseEvents: true,\n },\n resolution: {\n maxWidth: 1280,\n maxHeight: 720,\n idealWidth: 1280,\n idealHeight: 720,\n },\n screenResolution: {\n maxWidth: 1920,\n maxHeight: 1080,\n idealWidth: 1920,\n idealHeight: 1080,\n },\n bandwidth: {\n // please note, these are the maximum bandwidth values\n // the server supports, minimums have to be tested\n audio: 64000,\n video: 4000000,\n startBitrate: 2000,\n },\n screenFrameRate: 10,\n videoShareFrameRate: 30,\n aspectRatio: 1.7695852534562213,\n // When enabled, as calls are ended, it will upload the SDK logs and correlate them\n autoUploadLogs: true,\n enableRtx: true,\n receiveTranscription: false,\n enableExtmap: false,\n enableAutomaticLLM: false,\n installedOrgID: undefined,\n multipartSitePrefixList: ['.my.', '.mydmz.', '.mybts.', '.mydev.', '.myats2.', '.myats.'],\n experimental: {\n enableMediaNegotiatedEvent: false,\n enableUnifiedMeetings: true,\n enableAdhocMeetings: true,\n enableTcpReachability: false,\n enableTlsReachability: false,\n storeLocusHashTreeEventsForDebugging: false,\n },\n degradationPreferences: {\n maxMacroblocksLimit: 8192,\n },\n enableAv1SlidesSupport: false,\n // This only applies to non-multistream meetings\n iceCandidatesGatheringTimeout: undefined,\n backendIpv6NativeSupport: false,\n enableReachabilityChecks: true,\n reachabilityGetClusterTimeout: 5000,\n logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1\n stopIceGatheringAfterFirstRelayCandidate: false,\n enableAudioTwccForMultistream: false,\n enablePerUdpUrlReachability: false, // true: separate peer connection per each UDP URL; false: single peer connection for all URLs\n locus: {\n excludedDataSets: ['attendees'], // attendees data set only applies to webinar attendees and we never really need that\n },\n },\n};\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AADA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGe;EACb;EACA;EACA;EACAC,QAAQ,EAAE;IACRC,UAAU,EAAEA,kBAAU,CAACC,GAAG;IAC1BC,aAAa,EAAE;MACbC,IAAI,EAAE;IACR,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,IAAI;MACf;MACAC,sBAAsB,EAAE,KAAK;MAC7B;MACAC,iBAAiB,EAAE;IACrB,CAAC;IACDC,KAAK,EAAE;MACL;MACAC,mBAAmB,EAAE,IAAI;MACzB;MACAC,oBAAoB,EAAE,KAAK;MAC3B;MACAC,QAAQ,EAAE,IAAI;MACd;MACAC,gBAAgB,EAAE,IAAI;MACtB;MACAC,UAAU,EAAE,GAAG;MACf;MACAC,6BAA6B,EAAE,CAAC;MAAE;MAClCC,YAAY,EAAE,GAAG;MAAE;MACnBC,eAAe,EAAE,GAAG,CAAE;IACxB,CAAC;IACDC,OAAO,EAAE;MACP;MACA;MACAC,UAAU,EAAE,cAAc;MAC1B;MACAC,UAAU,EAAE,WAAW;MACvB;MACAC,aAAa,EAAE,SAAS;MACxB;MACAC,kBAAkB,EAAE,KAAK;MACzB;MACA;MACAC,WAAW,EAAE;IACf,CAAC;IACDC,OAAO,EAAE;MACPC,MAAM,EAAE,IAAI;MACZC,aAAa,EAAE;IACjB,CAAC;IACDC,UAAU,EAAE;MACVC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDC,gBAAgB,EAAE;MAChBJ,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDE,SAAS,EAAE;MACT;MACA;MACAC,KAAK,EAAE,KAAK;MACZC,KAAK,EAAE,OAAO;MACdC,YAAY,EAAE;IAChB,CAAC;IACDC,eAAe,EAAE,EAAE;IACnBC,mBAAmB,EAAE,EAAE;IACvBC,WAAW,EAAE,kBAAkB;IAC/B;IACAC,cAAc,EAAE,IAAI;IACpBC,SAAS,EAAE,IAAI;IACfC,oBAAoB,EAAE,KAAK;IAC3BC,YAAY,EAAE,KAAK;IACnBC,kBAAkB,EAAE,KAAK;IACzBC,cAAc,EAAEC,SAAS;IACzBC,uBAAuB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;IACzFC,YAAY,EAAE;MACZC,0BAA0B,EAAE,KAAK;MACjCC,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE,IAAI;MACzBC,qBAAqB,EAAE,KAAK;MAC5BC,qBAAqB,EAAE,KAAK;MAC5BC,oCAAoC,EAAE;IACxC,CAAC;IACDC,sBAAsB,EAAE;MACtBC,mBAAmB,EAAE;IACvB,CAAC;IACDC,sBAAsB,EAAE,KAAK;IAC7B;IACAC,6BAA6B,EAAEZ,SAAS;IACxCa,wBAAwB,EAAE,KAAK;IAC/BC,wBAAwB,EAAE,IAAI;IAC9BC,6BAA6B,EAAE,IAAI;IACnCC,qCAAqC,EAAE,CAAC;IAAE;IAC1CC,wCAAwC,EAAE,KAAK;IAC/CC,6BAA6B,EAAE,KAAK;IACpCC,2BAA2B,EAAE,KAAK;IAAE;IACpCC,KAAK,EAAE;MACLC,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAE;IACnC;EACF;AACF,CAAC","ignoreList":[]}
@@ -381,7 +381,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
381
381
  throw error;
382
382
  });
383
383
  },
384
- version: "3.12.0-next.57"
384
+ version: "3.12.0-next.59"
385
385
  });
386
386
  var _default = exports.default = SimultaneousInterpretation;
387
387
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.12.0-next.57"
21
+ version: "3.12.0-next.59"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -121,6 +121,7 @@ Media.createMediaConnection = function (isMultistream, debugId, meetingId, optio
121
121
  iceCandidatesTimeout = options.iceCandidatesTimeout,
122
122
  disableAudioMainDtx = options.disableAudioMainDtx,
123
123
  enableAudioTwcc = options.enableAudioTwcc,
124
+ enableAv1SlidesSupport = options.enableAv1SlidesSupport,
124
125
  stopIceGatheringAfterFirstRelayCandidate = options.stopIceGatheringAfterFirstRelayCandidate;
125
126
  var iceServers = [];
126
127
 
@@ -136,7 +137,8 @@ Media.createMediaConnection = function (isMultistream, debugId, meetingId, optio
136
137
  if (isMultistream) {
137
138
  var config = {
138
139
  iceServers: iceServers,
139
- disableAudioTwcc: !enableAudioTwcc
140
+ disableAudioTwcc: !enableAudioTwcc,
141
+ enableAV1SlidesSupport: !!enableAv1SlidesSupport
140
142
  };
141
143
  if (bundlePolicy) {
142
144
  config.bundlePolicy = bundlePolicy;