@webex/plugin-meetings 3.5.0 → 3.6.0-next.2

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 (52) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/config.js +4 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/constants.js +1 -0
  6. package/dist/constants.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/in-meeting-actions.js +3 -1
  12. package/dist/meeting/in-meeting-actions.js.map +1 -1
  13. package/dist/meeting/index.js +133 -87
  14. package/dist/meeting/index.js.map +1 -1
  15. package/dist/meeting/util.js +8 -10
  16. package/dist/meeting/util.js.map +1 -1
  17. package/dist/meetings/index.js +100 -26
  18. package/dist/meetings/index.js.map +1 -1
  19. package/dist/roap/request.js +1 -1
  20. package/dist/roap/request.js.map +1 -1
  21. package/dist/types/config.d.ts +2 -0
  22. package/dist/types/constants.d.ts +2 -1
  23. package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
  24. package/dist/types/meeting/index.d.ts +11 -0
  25. package/dist/types/meetings/index.d.ts +43 -2
  26. package/dist/webinar/index.js +1 -1
  27. package/package.json +22 -22
  28. package/src/config.ts +3 -0
  29. package/src/constants.ts +1 -0
  30. package/src/media/index.ts +4 -1
  31. package/src/meeting/in-meeting-actions.ts +3 -0
  32. package/src/meeting/index.ts +57 -2
  33. package/src/meeting/util.ts +27 -31
  34. package/src/meetings/index.ts +126 -37
  35. package/src/roap/request.ts +3 -1
  36. package/test/unit/spec/media/index.ts +4 -0
  37. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
  38. package/test/unit/spec/meeting/index.js +58 -17
  39. package/test/unit/spec/meeting/utils.js +50 -85
  40. package/test/unit/spec/meetings/index.js +128 -13
  41. package/dist/networkQualityMonitor/index.js +0 -227
  42. package/dist/networkQualityMonitor/index.js.map +0 -1
  43. package/dist/rtcMetrics/constants.js +0 -11
  44. package/dist/rtcMetrics/constants.js.map +0 -1
  45. package/dist/rtcMetrics/index.js +0 -197
  46. package/dist/rtcMetrics/index.js.map +0 -1
  47. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  48. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  49. package/dist/types/rtcMetrics/index.d.ts +0 -71
  50. package/src/rtcMetrics/constants.ts +0 -3
  51. package/src/rtcMetrics/index.ts +0 -186
  52. package/test/unit/spec/rtcMetrics/index.ts +0 -154
@@ -97,8 +97,9 @@ var MeetingUtil = {
97
97
  var _webex$internal$devic = webex.internal.device.ipNetworkDetector,
98
98
  supportsIpV4 = _webex$internal$devic.supportsIpV4,
99
99
  supportsIpV6 = _webex$internal$devic.supportsIpV6;
100
- if ((0, _browserDetection.default)().isBrowser('firefox')) {
101
- // our ipv6 solution relies on FQDN ICE candidates, but Firefox doesn't support them,
100
+ if (!webex.config.meetings.backendIpv6NativeSupport && (0, _browserDetection.default)().isBrowser('firefox')) {
101
+ // when backend doesn't support native ipv6,
102
+ // then our NAT64/DNS64 based solution relies on FQDN ICE candidates, but Firefox doesn't support them,
102
103
  // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128
103
104
  // so for Firefox we don't want the backend to activate the "ipv6 feature"
104
105
  return undefined;
@@ -154,7 +155,8 @@ var MeetingUtil = {
154
155
  liveAnnotationSupported: options.liveAnnotationSupported,
155
156
  ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject())
156
157
  }).then(function (res) {
157
- // @ts-ignore
158
+ var parsed = MeetingUtil.parseLocusJoin(res);
159
+ meeting.setLocus(parsed);
158
160
  webex.internal.newMetrics.submitClientEvent({
159
161
  name: 'client.locus.join.response',
160
162
  payload: {
@@ -165,10 +167,10 @@ var MeetingUtil = {
165
167
  },
166
168
  options: {
167
169
  meetingId: meeting.id,
168
- mediaConnections: res.body.mediaConnections
170
+ mediaConnections: parsed.mediaConnections
169
171
  }
170
172
  });
171
- return MeetingUtil.parseLocusJoin(res);
173
+ return parsed;
172
174
  });
173
175
  },
174
176
  cleanUp: function cleanUp(meeting) {
@@ -299,13 +301,9 @@ var MeetingUtil = {
299
301
  }
300
302
 
301
303
  // normal join meeting, scenario A, D
302
- return MeetingUtil.joinMeeting(meeting, options).then(function (response) {
303
- meeting.setLocus(response);
304
- return _promise.default.resolve(response);
305
- }).catch(function (err) {
304
+ return MeetingUtil.joinMeeting(meeting, options).catch(function (err) {
306
305
  // joining a claimed PMR that is not my own, scenario B
307
306
  if (MeetingUtil.isPinOrGuest(err)) {
308
- // @ts-ignore
309
307
  webex.internal.newMetrics.submitClientEvent({
310
308
  name: 'client.pin.prompt',
311
309
  options: {
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_webexErrors","_loggerProxy","_interopRequireDefault","_constants","_browserDetection","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","_triggerProxy","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","r","t","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","meeting","audioMuted","videoMuted","_promise","reject","ParameterError","locusMediaRequest","send","type","selfUrl","sequence","locusInfo","muteOptions","then","_response$body","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","_err$body","errorCode","INTENT_TO_JOIN","includes","getIpVersion","webex","_webex$internal$devic","internal","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","options","_meeting$meetingInfo","getWebexObject","newMetrics","submitClientEvent","meetingId","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","reachability","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","meetingEnded","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","_meeting$config","config","enableAutomaticLLM","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","concat","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","setLocus","IntentToJoinError","JoinMeetingError","buildLeaveFetchRequestOptions","buildLeaveMeetingRequestOptions","getTrack","stream","audioTrack","videoTrack","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","canManageBreakout","BREAKOUT_MANAGEMENT","canBroadcastMessageToBreakout","policies","BROADCAST_MESSAGE_TO_BREAKOUT","SELF_POLICY","SUPPORT_BROADCAST_MESSAGE","isSuppressBreakoutSupport","UCF_SUPPRESS_BREAKOUTS_SUPPORT","canAdmitLobbyToBreakout","DISABLE_LOBBY_TO_BREAKOUT","isBreakoutPreassignmentsEnabled","DISABLE_BREAKOUT_PREASSIGNMENTS","canUserAskForHelp","DISABLE_ASK_FOR_HELP","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","audioStream","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","videoStream","handleDeviceLogging","devices","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","isSaveTranscriptsEnabled","SAVE_TRANSCRIPTS_ENABLED","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","canStartManualCaption","MANUAL_CAPTION_START","canStopManualCaption","MANUAL_CAPTION_STOP","isManualCaptionActive","MANUAL_CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","canSendReactions","originalValue","REACTIONS_ACTIVE","REACTIONS_INACTIVE","canUserRenameSelfAndObserved","CAN_RENAME_SELF_AND_OBSERVED","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","addSequence","requestBody","_meeting$locusInfo","updateLocusWithDelta","_response$body2","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","cloneDeep","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","_meetingInfo$meetingS","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","_meeting$simultaneous","_meeting$simultaneous2","lanuagesInfo","siLanguages","_iterator","_step","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE","getChangeMeetingFloorErrorPayload","errorPayload","errorDescription","shownToUser","LOCAL_SHARE_ERRORS","UNDEFINED","fatal","category","DEVICE_NOT_JOINED","NO_MEDIA_FOR_DEVICE","NO_CONFLUENCE_ID","CONTENT_SHARING_DISABLED","LOCUS_PARTICIPANT_DNE","CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {LocalCameraStream, LocalMicrophoneStream} from '@webex/media-helpers';\n\nimport {cloneDeep} from 'lodash';\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n SELF_POLICY,\n EVENT_TRIGGERS,\n LOCAL_SHARE_ERRORS,\n IP_VERSION,\n} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\nimport Trigger from '../common/events/trigger-proxy';\n\nconst MeetingUtil = {\n parseLocusJoin: (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n },\n\n remoteUpdateAudioVideo: (meeting, audioMuted?: boolean, videoMuted?: boolean) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n if (!meeting.locusMediaRequest) {\n return Promise.reject(\n new ParameterError(\n 'You need a meeting with a media connection, call Meeting.addMedia() first.'\n )\n );\n }\n\n return meeting.locusMediaRequest\n .send({\n type: 'LocalMute',\n selfUrl: meeting.selfUrl,\n mediaId: meeting.mediaId,\n sequence: meeting.locusInfo.sequence,\n muteOptions: {\n audioMuted,\n videoMuted,\n },\n })\n .then((response) => response?.body?.locus);\n },\n\n hasOwner: (info) => info && info.owner,\n\n isOwnerSelf: (owner, selfId) => owner === selfId,\n\n isPinOrGuest: (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode),\n\n /**\n * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.\n * The return value matches the possible values of \"ipver\" parameter used by the backend APIs.\n *\n * @param {Object} webex webex instance\n * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend\n */\n getIpVersion(webex: any): IP_VERSION | undefined {\n const {supportsIpV4, supportsIpV6} = webex.internal.device.ipNetworkDetector;\n\n if (BrowserDetection().isBrowser('firefox')) {\n // our ipv6 solution relies on FQDN ICE candidates, but Firefox doesn't support them,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128\n // so for Firefox we don't want the backend to activate the \"ipv6 feature\"\n return undefined;\n }\n\n if (supportsIpV4 && supportsIpV6) {\n return IP_VERSION.ipv4_and_ipv6;\n }\n\n if (supportsIpV4) {\n return IP_VERSION.only_ipv4;\n }\n\n if (supportsIpV6) {\n return IP_VERSION.only_ipv6;\n }\n\n return IP_VERSION.unknown;\n },\n\n joinMeeting: (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const webex = meeting.getWebexObject();\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.request',\n options: {meetingId: meeting.id},\n });\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n locusClusterUrl: meeting.meetingInfo?.locusClusterUrl,\n correlationId: meeting.correlationId,\n reachability: options.reachability,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject()),\n })\n .then((res) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.response',\n payload: {\n trigger: 'loci-update',\n identifiers: {\n trackingId: res.headers.trackingid,\n },\n },\n options: {\n meetingId: meeting.id,\n mediaConnections: res.body.mediaConnections,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n },\n\n cleanUp: (meeting) => {\n meeting.getWebexObject().internal.device.meetingEnded();\n\n meeting.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\n meeting.locusMediaRequest = undefined;\n\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeRemoteStreams())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.cleanupLocalStreams();\n meeting.unsetRemoteStreams();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => {\n if (meeting.config?.enableAutomaticLLM) {\n meeting.updateLLMConnection();\n }\n });\n },\n\n disconnectPhoneAudio: (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest.disconnectPhoneAudio(options).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n\n /**\n * Returns options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} leave options\n */\n prepareLeaveMeetingOptions: (meeting, options: any = {}) => {\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n return {...defaultOptions, ...options};\n },\n\n // by default will leave on meeting's resourceId\n // if you explicity want it not to leave on resource id, pass\n // {resourceId: null}\n // TODO: chris, you can modify this however you want\n leaveMeeting: (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n declineMeeting: (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n }),\n\n isUserInLeftState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_,\n\n isUserInIdleState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_,\n\n isUserInJoinedState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_,\n\n isMediaEstablished: (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share),\n\n joinMeetingOptions: (meeting, options: any = {}) => {\n const webex = meeting.getWebexObject();\n\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.collected',\n options: {\n meetingId: meeting.id,\n },\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.prompt',\n options: {\n meetingId: meeting.id,\n },\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error(\n 'Meeting:util#joinMeetingOptions --> Error joining the call, ',\n err\n );\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n },\n\n /**\n * Returns request options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} request options\n */\n buildLeaveFetchRequestOptions: (meeting, options: any = {}) => {\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest.buildLeaveMeetingRequestOptions(leaveOptions);\n },\n\n getTrack: (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n },\n\n getModeratorFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator,\n\n getPolicyFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy,\n\n getUserDisplayHintsFromLocusInfo: (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [],\n\n canInviteNewParticipants: (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST),\n\n canAdmitParticipant: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN),\n\n canUserLock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED),\n\n canUserUnlock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED),\n\n canUserRaiseHand: (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND),\n\n canUserLowerAllHands: (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS),\n\n canUserLowerSomeoneElsesHand: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND),\n\n bothLeaveAndEndMeetingAvailable: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING),\n\n canManageBreakout: (displayHints) => displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT),\n canBroadcastMessageToBreakout: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) &&\n !!policies[SELF_POLICY.SUPPORT_BROADCAST_MESSAGE],\n\n isSuppressBreakoutSupport: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT),\n\n canAdmitLobbyToBreakout: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT),\n\n isBreakoutPreassignmentsEnabled: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS),\n\n canUserAskForHelp: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP),\n\n lockMeeting: (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n },\n\n unlockMeeting: (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n },\n\n handleAudioLogging: (audioStream?: LocalMicrophoneStream) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioStream) {\n const settings = audioStream.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n },\n\n handleVideoLogging: (videoStream?: LocalCameraStream) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoStream) {\n const settings = videoStream.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n },\n\n handleDeviceLogging: (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n },\n\n endMeetingForAll: (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n\n canEnableClosedCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START),\n\n isSaveTranscriptsEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED),\n\n canStartTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START),\n\n canStopTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP),\n\n isClosedCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE),\n\n canStartManualCaption: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_START),\n\n canStopManualCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STOP),\n\n isManualCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STATUS_ACTIVE),\n\n isWebexAssistantActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE),\n\n canViewCaptionPanel: (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL),\n\n isRealTimeTranslationEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION),\n\n canSelectSpokenLanguages: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR),\n\n waitingForOthersToJoin: (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS),\n\n canSendReactions: (originalValue, displayHints) => {\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_ACTIVE)) {\n return true;\n }\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_INACTIVE)) {\n return false;\n }\n\n return originalValue;\n },\n canUserRenameSelfAndObserved: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n canShareWhiteBoard: (displayHints) => displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD),\n\n /**\n * Adds the current locus sequence information to a request body\n * @param {Object} meeting The meeting object\n * @param {Object} requestBody The body of a request to locus\n * @returns {void}\n */\n addSequence: (meeting, requestBody) => {\n const sequence = meeting?.locusInfo?.sequence;\n\n if (!sequence) {\n return;\n }\n\n requestBody.sequence = sequence;\n },\n\n /**\n * Updates the locus info for the meeting with the delta locus\n * returned from requests that include the sequence information\n * Returns the original response object\n * @param {Object} meeting The meeting object\n * @param {Object} response The response of the http request\n * @returns {Object}\n */\n updateLocusWithDelta: (meeting, response) => {\n if (!meeting) {\n return response;\n }\n\n const locus = response?.body?.locus;\n\n if (locus) {\n meeting.locusInfo.handleLocusDelta(locus, meeting);\n }\n\n return response;\n },\n\n generateBuildLocusDeltaRequestOptions: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return originalOptions;\n }\n\n const options = cloneDeep(originalOptions);\n\n if (!options.body) {\n options.body = {};\n }\n\n MeetingUtil.addSequence(meeting, options.body);\n\n return options;\n };\n\n return buildLocusDeltaRequestOptions;\n },\n\n generateLocusDeltaRequest: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions =\n MeetingUtil.generateBuildLocusDeltaRequestOptions(originalMeeting);\n\n const locusDeltaRequest = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return Promise.resolve();\n }\n\n const options = buildLocusDeltaRequestOptions(originalOptions);\n\n return meeting\n .request(options)\n .then((response) => MeetingUtil.updateLocusWithDelta(meeting, response));\n };\n\n return locusDeltaRequest;\n },\n\n selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => {\n if (!userPolicies) {\n return true;\n }\n\n return userPolicies[feature];\n },\n\n parseInterpretationInfo: (meeting, meetingInfo) => {\n if (!meeting || !meetingInfo) {\n return;\n }\n const siInfo = meetingInfo.simultaneousInterpretation;\n meeting.simultaneousInterpretation.updateMeetingSIEnabled(\n !!meetingInfo.turnOnSimultaneousInterpretation,\n !!siInfo?.currentSIInterpreter\n );\n const hostSIEnabled = !!(\n meetingInfo.turnOnSimultaneousInterpretation &&\n meetingInfo?.meetingSiteSetting?.enableHostInterpreterControlSI\n );\n meeting.simultaneousInterpretation.updateHostSIEnabled(hostSIEnabled);\n\n function renameKey(obj, oldKey, newKey) {\n if (oldKey in obj) {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n }\n }\n if (siInfo) {\n const lanuagesInfo = cloneDeep(siInfo.siLanguages);\n for (const language of lanuagesInfo) {\n renameKey(language, 'languageCode', 'languageName');\n renameKey(language, 'languageGroupId', 'languageCode');\n }\n if (!meeting.simultaneousInterpretation?.siLanguages?.length) {\n meeting.simultaneousInterpretation.updateInterpretation({siLanguages: lanuagesInfo});\n }\n }\n Trigger.trigger(\n meeting,\n {\n file: 'meeting/util',\n function: 'parseInterpretationInfo',\n },\n EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE\n );\n },\n\n /**\n * Returns a CA-recognized error payload for the specified raw error message/reason.\n *\n * New errors can be added to this function for handling in the future\n *\n * @param {String} reason the raw error message\n * @returns {Array<object>} an array of payload objects\n */\n getChangeMeetingFloorErrorPayload: (reason: string) => {\n const errorPayload = {\n errorDescription: reason,\n name: 'locus.response',\n shownToUser: false,\n };\n if (reason.includes(LOCAL_SHARE_ERRORS.UNDEFINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4050,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'media',\n errorCode: 2048,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4064,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4065,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4066,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4067,\n },\n ];\n }\n\n // return unknown error\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n },\n};\n\nexport default MeetingUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_webexErrors","_loggerProxy","_interopRequireDefault","_constants","_browserDetection","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","_triggerProxy","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","r","t","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","meeting","audioMuted","videoMuted","_promise","reject","ParameterError","locusMediaRequest","send","type","selfUrl","sequence","locusInfo","muteOptions","then","_response$body","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","_err$body","errorCode","INTENT_TO_JOIN","includes","getIpVersion","webex","_webex$internal$devic","internal","device","ipNetworkDetector","supportsIpV4","supportsIpV6","config","meetings","backendIpv6NativeSupport","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","options","_meeting$meetingInfo","getWebexObject","newMetrics","submitClientEvent","meetingId","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","reachability","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","setLocus","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","meetingEnded","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","_meeting$config","enableAutomaticLLM","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","concat","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","IntentToJoinError","JoinMeetingError","buildLeaveFetchRequestOptions","buildLeaveMeetingRequestOptions","getTrack","stream","audioTrack","videoTrack","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","canManageBreakout","BREAKOUT_MANAGEMENT","canBroadcastMessageToBreakout","policies","BROADCAST_MESSAGE_TO_BREAKOUT","SELF_POLICY","SUPPORT_BROADCAST_MESSAGE","isSuppressBreakoutSupport","UCF_SUPPRESS_BREAKOUTS_SUPPORT","canAdmitLobbyToBreakout","DISABLE_LOBBY_TO_BREAKOUT","isBreakoutPreassignmentsEnabled","DISABLE_BREAKOUT_PREASSIGNMENTS","canUserAskForHelp","DISABLE_ASK_FOR_HELP","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","audioStream","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","videoStream","handleDeviceLogging","devices","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","isSaveTranscriptsEnabled","SAVE_TRANSCRIPTS_ENABLED","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","canStartManualCaption","MANUAL_CAPTION_START","canStopManualCaption","MANUAL_CAPTION_STOP","isManualCaptionActive","MANUAL_CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","canSendReactions","originalValue","REACTIONS_ACTIVE","REACTIONS_INACTIVE","canUserRenameSelfAndObserved","CAN_RENAME_SELF_AND_OBSERVED","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","addSequence","requestBody","_meeting$locusInfo","updateLocusWithDelta","_response$body2","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","cloneDeep","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","_meetingInfo$meetingS","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","_meeting$simultaneous","_meeting$simultaneous2","lanuagesInfo","siLanguages","_iterator","_step","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE","getChangeMeetingFloorErrorPayload","errorPayload","errorDescription","shownToUser","LOCAL_SHARE_ERRORS","UNDEFINED","fatal","category","DEVICE_NOT_JOINED","NO_MEDIA_FOR_DEVICE","NO_CONFLUENCE_ID","CONTENT_SHARING_DISABLED","LOCUS_PARTICIPANT_DNE","CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {LocalCameraStream, LocalMicrophoneStream} from '@webex/media-helpers';\n\nimport {cloneDeep} from 'lodash';\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n SELF_POLICY,\n EVENT_TRIGGERS,\n LOCAL_SHARE_ERRORS,\n IP_VERSION,\n} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\nimport Trigger from '../common/events/trigger-proxy';\n\nconst MeetingUtil = {\n parseLocusJoin: (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n },\n\n remoteUpdateAudioVideo: (meeting, audioMuted?: boolean, videoMuted?: boolean) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n if (!meeting.locusMediaRequest) {\n return Promise.reject(\n new ParameterError(\n 'You need a meeting with a media connection, call Meeting.addMedia() first.'\n )\n );\n }\n\n return meeting.locusMediaRequest\n .send({\n type: 'LocalMute',\n selfUrl: meeting.selfUrl,\n mediaId: meeting.mediaId,\n sequence: meeting.locusInfo.sequence,\n muteOptions: {\n audioMuted,\n videoMuted,\n },\n })\n .then((response) => response?.body?.locus);\n },\n\n hasOwner: (info) => info && info.owner,\n\n isOwnerSelf: (owner, selfId) => owner === selfId,\n\n isPinOrGuest: (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode),\n\n /**\n * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.\n * The return value matches the possible values of \"ipver\" parameter used by the backend APIs.\n *\n * @param {Object} webex webex instance\n * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend\n */\n getIpVersion(webex: any): IP_VERSION | undefined {\n const {supportsIpV4, supportsIpV6} = webex.internal.device.ipNetworkDetector;\n\n if (\n !webex.config.meetings.backendIpv6NativeSupport &&\n BrowserDetection().isBrowser('firefox')\n ) {\n // when backend doesn't support native ipv6,\n // then our NAT64/DNS64 based solution relies on FQDN ICE candidates, but Firefox doesn't support them,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128\n // so for Firefox we don't want the backend to activate the \"ipv6 feature\"\n return undefined;\n }\n\n if (supportsIpV4 && supportsIpV6) {\n return IP_VERSION.ipv4_and_ipv6;\n }\n\n if (supportsIpV4) {\n return IP_VERSION.only_ipv4;\n }\n\n if (supportsIpV6) {\n return IP_VERSION.only_ipv6;\n }\n\n return IP_VERSION.unknown;\n },\n\n joinMeeting: (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const webex = meeting.getWebexObject();\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.request',\n options: {meetingId: meeting.id},\n });\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n locusClusterUrl: meeting.meetingInfo?.locusClusterUrl,\n correlationId: meeting.correlationId,\n reachability: options.reachability,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject()),\n })\n .then((res) => {\n const parsed = MeetingUtil.parseLocusJoin(res);\n meeting.setLocus(parsed);\n\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.response',\n payload: {\n trigger: 'loci-update',\n identifiers: {\n trackingId: res.headers.trackingid,\n },\n },\n options: {\n meetingId: meeting.id,\n mediaConnections: parsed.mediaConnections,\n },\n });\n\n return parsed;\n });\n },\n\n cleanUp: (meeting) => {\n meeting.getWebexObject().internal.device.meetingEnded();\n\n meeting.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\n meeting.locusMediaRequest = undefined;\n\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeRemoteStreams())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.cleanupLocalStreams();\n meeting.unsetRemoteStreams();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => {\n if (meeting.config?.enableAutomaticLLM) {\n meeting.updateLLMConnection();\n }\n });\n },\n\n disconnectPhoneAudio: (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest.disconnectPhoneAudio(options).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n\n /**\n * Returns options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} leave options\n */\n prepareLeaveMeetingOptions: (meeting, options: any = {}) => {\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n return {...defaultOptions, ...options};\n },\n\n // by default will leave on meeting's resourceId\n // if you explicity want it not to leave on resource id, pass\n // {resourceId: null}\n // TODO: chris, you can modify this however you want\n leaveMeeting: (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n declineMeeting: (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n }),\n\n isUserInLeftState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_,\n\n isUserInIdleState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_,\n\n isUserInJoinedState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_,\n\n isMediaEstablished: (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share),\n\n joinMeetingOptions: (meeting, options: any = {}) => {\n const webex = meeting.getWebexObject();\n\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.collected',\n options: {\n meetingId: meeting.id,\n },\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options).catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.prompt',\n options: {\n meetingId: meeting.id,\n },\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n },\n\n /**\n * Returns request options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} request options\n */\n buildLeaveFetchRequestOptions: (meeting, options: any = {}) => {\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest.buildLeaveMeetingRequestOptions(leaveOptions);\n },\n\n getTrack: (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n },\n\n getModeratorFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator,\n\n getPolicyFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy,\n\n getUserDisplayHintsFromLocusInfo: (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [],\n\n canInviteNewParticipants: (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST),\n\n canAdmitParticipant: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN),\n\n canUserLock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED),\n\n canUserUnlock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED),\n\n canUserRaiseHand: (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND),\n\n canUserLowerAllHands: (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS),\n\n canUserLowerSomeoneElsesHand: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND),\n\n bothLeaveAndEndMeetingAvailable: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING),\n\n canManageBreakout: (displayHints) => displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT),\n canBroadcastMessageToBreakout: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) &&\n !!policies[SELF_POLICY.SUPPORT_BROADCAST_MESSAGE],\n\n isSuppressBreakoutSupport: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT),\n\n canAdmitLobbyToBreakout: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT),\n\n isBreakoutPreassignmentsEnabled: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS),\n\n canUserAskForHelp: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP),\n\n lockMeeting: (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n },\n\n unlockMeeting: (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n },\n\n handleAudioLogging: (audioStream?: LocalMicrophoneStream) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioStream) {\n const settings = audioStream.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n },\n\n handleVideoLogging: (videoStream?: LocalCameraStream) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoStream) {\n const settings = videoStream.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n },\n\n handleDeviceLogging: (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n },\n\n endMeetingForAll: (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n },\n\n canEnableClosedCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START),\n\n isSaveTranscriptsEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED),\n\n canStartTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START),\n\n canStopTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP),\n\n isClosedCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE),\n\n canStartManualCaption: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_START),\n\n canStopManualCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STOP),\n\n isManualCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STATUS_ACTIVE),\n\n isWebexAssistantActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE),\n\n canViewCaptionPanel: (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL),\n\n isRealTimeTranslationEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION),\n\n canSelectSpokenLanguages: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR),\n\n waitingForOthersToJoin: (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS),\n\n canSendReactions: (originalValue, displayHints) => {\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_ACTIVE)) {\n return true;\n }\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_INACTIVE)) {\n return false;\n }\n\n return originalValue;\n },\n canUserRenameSelfAndObserved: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n canShareWhiteBoard: (displayHints) => displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD),\n\n /**\n * Adds the current locus sequence information to a request body\n * @param {Object} meeting The meeting object\n * @param {Object} requestBody The body of a request to locus\n * @returns {void}\n */\n addSequence: (meeting, requestBody) => {\n const sequence = meeting?.locusInfo?.sequence;\n\n if (!sequence) {\n return;\n }\n\n requestBody.sequence = sequence;\n },\n\n /**\n * Updates the locus info for the meeting with the delta locus\n * returned from requests that include the sequence information\n * Returns the original response object\n * @param {Object} meeting The meeting object\n * @param {Object} response The response of the http request\n * @returns {Object}\n */\n updateLocusWithDelta: (meeting, response) => {\n if (!meeting) {\n return response;\n }\n\n const locus = response?.body?.locus;\n\n if (locus) {\n meeting.locusInfo.handleLocusDelta(locus, meeting);\n }\n\n return response;\n },\n\n generateBuildLocusDeltaRequestOptions: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return originalOptions;\n }\n\n const options = cloneDeep(originalOptions);\n\n if (!options.body) {\n options.body = {};\n }\n\n MeetingUtil.addSequence(meeting, options.body);\n\n return options;\n };\n\n return buildLocusDeltaRequestOptions;\n },\n\n generateLocusDeltaRequest: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions =\n MeetingUtil.generateBuildLocusDeltaRequestOptions(originalMeeting);\n\n const locusDeltaRequest = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return Promise.resolve();\n }\n\n const options = buildLocusDeltaRequestOptions(originalOptions);\n\n return meeting\n .request(options)\n .then((response) => MeetingUtil.updateLocusWithDelta(meeting, response));\n };\n\n return locusDeltaRequest;\n },\n\n selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => {\n if (!userPolicies) {\n return true;\n }\n\n return userPolicies[feature];\n },\n\n parseInterpretationInfo: (meeting, meetingInfo) => {\n if (!meeting || !meetingInfo) {\n return;\n }\n const siInfo = meetingInfo.simultaneousInterpretation;\n meeting.simultaneousInterpretation.updateMeetingSIEnabled(\n !!meetingInfo.turnOnSimultaneousInterpretation,\n !!siInfo?.currentSIInterpreter\n );\n const hostSIEnabled = !!(\n meetingInfo.turnOnSimultaneousInterpretation &&\n meetingInfo?.meetingSiteSetting?.enableHostInterpreterControlSI\n );\n meeting.simultaneousInterpretation.updateHostSIEnabled(hostSIEnabled);\n\n function renameKey(obj, oldKey, newKey) {\n if (oldKey in obj) {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n }\n }\n if (siInfo) {\n const lanuagesInfo = cloneDeep(siInfo.siLanguages);\n for (const language of lanuagesInfo) {\n renameKey(language, 'languageCode', 'languageName');\n renameKey(language, 'languageGroupId', 'languageCode');\n }\n if (!meeting.simultaneousInterpretation?.siLanguages?.length) {\n meeting.simultaneousInterpretation.updateInterpretation({siLanguages: lanuagesInfo});\n }\n }\n Trigger.trigger(\n meeting,\n {\n file: 'meeting/util',\n function: 'parseInterpretationInfo',\n },\n EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE\n );\n },\n\n /**\n * Returns a CA-recognized error payload for the specified raw error message/reason.\n *\n * New errors can be added to this function for handling in the future\n *\n * @param {String} reason the raw error message\n * @returns {Array<object>} an array of payload objects\n */\n getChangeMeetingFloorErrorPayload: (reason: string) => {\n const errorPayload = {\n errorDescription: reason,\n name: 'locus.response',\n shownToUser: false,\n };\n if (reason.includes(LOCAL_SHARE_ERRORS.UNDEFINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4050,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'media',\n errorCode: 2048,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4064,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4065,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4066,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4067,\n },\n ];\n }\n\n // return unknown error\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n },\n};\n\nexport default MeetingUtil;\n"],"mappings":"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"}
@@ -14,6 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
14
14
  value: true
15
15
  });
16
16
  exports.default = void 0;
17
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
17
18
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
18
19
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
19
20
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
@@ -28,6 +29,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
28
29
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
29
30
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
30
31
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
32
+ var _lodash = require("lodash");
31
33
  require("@webex/internal-plugin-mercury");
32
34
  require("@webex/internal-plugin-conversation");
33
35
  require("@webex/internal-plugin-metrics");
@@ -152,6 +154,10 @@ var MediaLogger = /*#__PURE__*/function () {
152
154
  * @property {String} type what type of meeting it was
153
155
  * @memberof Meetings
154
156
  */
157
+ /**
158
+ * Object containing only the most basic information about a meeting.
159
+ * This is the information that is kept even after the meeting is deleted from the MeetingCollection
160
+ */
155
161
  /**
156
162
  * Maintain a cache of meetings and sync with services.
157
163
  * @class
@@ -185,6 +191,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
185
191
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loggerRequest", void 0);
186
192
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "media", void 0);
187
193
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingCollection", void 0);
194
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deletedMeetings", void 0);
188
195
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "personalMeetingRoom", void 0);
189
196
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "preferredWebexSite", void 0);
190
197
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "reachability", void 0);
@@ -278,6 +285,8 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
278
285
  webex: _this.webex
279
286
  });
280
287
  _this.meetingCollection = new _collection.default();
288
+ _this.deletedMeetings = new _map.default();
289
+
281
290
  /**
282
291
  * The PersonalMeetingRoom object to interact with server
283
292
  * @instance
@@ -767,17 +776,39 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
767
776
  }
768
777
  }
769
778
 
779
+ /**
780
+ * API to toggle backend ipv6 native support config, needs to be called before webex.meetings.register()
781
+ *
782
+ * @param {Boolean} newValue
783
+ * @private
784
+ * @memberof Meetings
785
+ * @returns {undefined}
786
+ */
787
+ }, {
788
+ key: "_toggleIpv6BackendNativeSupport",
789
+ value: function _toggleIpv6BackendNativeSupport(newValue) {
790
+ if (typeof newValue !== 'boolean') {
791
+ return;
792
+ }
793
+ // @ts-ignore
794
+ if (this.config.backendIpv6NativeSupport !== newValue) {
795
+ // @ts-ignore
796
+ this.config.backendIpv6NativeSupport = newValue;
797
+ }
798
+ }
799
+
770
800
  /**
771
801
  * Explicitly sets up the meetings plugin by registering
772
802
  * the device, connecting to mercury, and listening for locus events.
773
803
  *
804
+ * @param {DeviceRegistrationOptions} [deviceRegistrationOptions] - The options for registering the device (optional)
774
805
  * @returns {Promise}
775
806
  * @public
776
807
  * @memberof Meetings
777
808
  */
778
809
  }, {
779
810
  key: "register",
780
- value: function register() {
811
+ value: function register(deviceRegistrationOptions) {
781
812
  var _this5 = this;
782
813
  // @ts-ignore
783
814
  if (!this.webex.canAuthorize) {
@@ -792,7 +823,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
792
823
  _loggerProxy.default.logger.error("Meetings:index#register --> GDM error, ".concat(error.message));
793
824
  }),
794
825
  // @ts-ignore
795
- this.webex.internal.device.register()
826
+ this.webex.internal.device.register(deviceRegistrationOptions)
796
827
  // @ts-ignore
797
828
  .then(function () {
798
829
  return _loggerProxy.default.logger.info( // @ts-ignore
@@ -950,29 +981,36 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
950
981
  key: "fetchUserPreferredWebexSite",
951
982
  value: function fetchUserPreferredWebexSite() {
952
983
  var _this9 = this;
953
- return this.request.getMeetingPreferences().then(function (res) {
954
- if (res) {
955
- var preferredWebexSite = _util2.default.parseDefaultSiteFromMeetingPreferences(res);
956
- _this9.preferredWebexSite = preferredWebexSite;
957
- // @ts-ignore
958
- _this9.webex.internal.services._getCatalog().addAllowedDomains([preferredWebexSite]);
959
- }
960
-
961
- // fall back to getting the preferred site from the user information
962
- if (!_this9.preferredWebexSite) {
963
- // @ts-ignore
964
- return _this9.webex.internal.user.get().then(function (user) {
965
- var _user$userPreferences, _user$userPreferences2;
966
- var preferredWebexSite = user === null || user === void 0 ? void 0 : (_user$userPreferences = user.userPreferences) === null || _user$userPreferences === void 0 ? void 0 : (_user$userPreferences2 = _user$userPreferences.userPreferencesItems) === null || _user$userPreferences2 === void 0 ? void 0 : _user$userPreferences2.preferredWebExSite;
967
- if (preferredWebexSite) {
984
+ // @ts-ignore
985
+ return this.webex.people._getMe().then(function (me) {
986
+ var isGuestUser = me.type === 'appuser';
987
+ if (!isGuestUser) {
988
+ return _this9.request.getMeetingPreferences().then(function (res) {
989
+ if (res) {
990
+ var preferredWebexSite = _util2.default.parseDefaultSiteFromMeetingPreferences(res);
968
991
  _this9.preferredWebexSite = preferredWebexSite;
969
992
  // @ts-ignore
970
993
  _this9.webex.internal.services._getCatalog().addAllowedDomains([preferredWebexSite]);
971
- } else {
972
- throw new Error('site not found');
973
994
  }
974
- }).catch(function () {
975
- _loggerProxy.default.logger.error('Failed to fetch preferred site from user - no site will be set');
995
+
996
+ // fall back to getting the preferred site from the user information
997
+ if (!_this9.preferredWebexSite) {
998
+ // @ts-ignore
999
+ return _this9.webex.internal.user.get().then(function (user) {
1000
+ var _user$userPreferences, _user$userPreferences2;
1001
+ var preferredWebexSite = user === null || user === void 0 ? void 0 : (_user$userPreferences = user.userPreferences) === null || _user$userPreferences === void 0 ? void 0 : (_user$userPreferences2 = _user$userPreferences.userPreferencesItems) === null || _user$userPreferences2 === void 0 ? void 0 : _user$userPreferences2.preferredWebExSite;
1002
+ if (preferredWebexSite) {
1003
+ _this9.preferredWebexSite = preferredWebexSite;
1004
+ // @ts-ignore
1005
+ _this9.webex.internal.services._getCatalog().addAllowedDomains([preferredWebexSite]);
1006
+ } else {
1007
+ throw new Error('site not found');
1008
+ }
1009
+ }).catch(function () {
1010
+ _loggerProxy.default.logger.error('Failed to fetch preferred site from user - no site will be set');
1011
+ });
1012
+ }
1013
+ return _promise.default.resolve();
976
1014
  });
977
1015
  }
978
1016
  return _promise.default.resolve();
@@ -991,6 +1029,19 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
991
1029
  return this.personalMeetingRoom;
992
1030
  }
993
1031
 
1032
+ /**
1033
+ * Returns basic information about a meeting that exists or
1034
+ * used to exist in the MeetingCollection
1035
+ *
1036
+ * @param {string} meetingId
1037
+ * @returns {BasicMeetingInformation|undefined}
1038
+ */
1039
+ }, {
1040
+ key: "getBasicMeetingInformation",
1041
+ value: function getBasicMeetingInformation(meetingId) {
1042
+ return this.meetingCollection.get(meetingId) || this.deletedMeetings.get(meetingId);
1043
+ }
1044
+
994
1045
  /**
995
1046
  * @param {Meeting} meeting
996
1047
  * @param {Object} reason
@@ -1002,7 +1053,26 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1002
1053
  }, {
1003
1054
  key: "destroy",
1004
1055
  value: function destroy(meeting, reason) {
1056
+ var _meeting$locusInfo, _meeting$locusInfo2, _meeting$locusInfo2$f, _meeting$locusInfo3, _meeting$locusInfo3$f;
1005
1057
  _util.default.cleanUp(meeting);
1058
+ // keep some basic info about the deleted meeting forever
1059
+ this.deletedMeetings.set(meeting.id, {
1060
+ id: meeting.id,
1061
+ allowMediaInLobby: meeting.allowMediaInLobby,
1062
+ correlationId: meeting.correlationId,
1063
+ sessionCorrelationId: meeting.sessionCorrelationId,
1064
+ environment: meeting.environment,
1065
+ locusUrl: meeting.locusUrl,
1066
+ meetingInfo: (0, _lodash.cloneDeep)(meeting.meetingInfo),
1067
+ locusInfo: {
1068
+ // locusInfo can be quite big, so keep just the minimal info
1069
+ url: (_meeting$locusInfo = meeting.locusInfo) === null || _meeting$locusInfo === void 0 ? void 0 : _meeting$locusInfo.url,
1070
+ fullState: {
1071
+ lastActive: (_meeting$locusInfo2 = meeting.locusInfo) === null || _meeting$locusInfo2 === void 0 ? void 0 : (_meeting$locusInfo2$f = _meeting$locusInfo2.fullState) === null || _meeting$locusInfo2$f === void 0 ? void 0 : _meeting$locusInfo2$f.lastActive,
1072
+ sessionId: (_meeting$locusInfo3 = meeting.locusInfo) === null || _meeting$locusInfo3 === void 0 ? void 0 : (_meeting$locusInfo3$f = _meeting$locusInfo3.fullState) === null || _meeting$locusInfo3$f === void 0 ? void 0 : _meeting$locusInfo3$f.sessionId
1073
+ }
1074
+ }
1075
+ });
1006
1076
  this.meetingCollection.delete(meeting.id);
1007
1077
  _triggerProxy.default.trigger(this, {
1008
1078
  file: 'meetings',
@@ -1027,6 +1097,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1027
1097
  * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
1028
1098
  * @param {Object} [meetingInfo] - Pre-fetched complete meeting info
1029
1099
  * @param {String} [meetingLookupUrl] - meeting info prefetch url
1100
+ * @param {string} sessionCorrelationId - the optional specified sessionCorrelationId (callStateForMetrics.sessionCorrelationId) can be provided instead
1030
1101
  * @returns {Promise<Meeting>} A new Meeting.
1031
1102
  * @public
1032
1103
  * @memberof Meetings
@@ -1043,6 +1114,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1043
1114
  var callStateForMetrics = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;
1044
1115
  var meetingInfo = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;
1045
1116
  var meetingLookupUrl = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : undefined;
1117
+ var sessionCorrelationId = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : undefined;
1046
1118
  // Validate meeting information based on the provided destination and
1047
1119
  // type. This must be performed prior to determining if the meeting is
1048
1120
  // found in the collection, as we mutate the destination for hydra person
@@ -1053,6 +1125,11 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1053
1125
  correlationId: correlationId
1054
1126
  });
1055
1127
  }
1128
+ if (sessionCorrelationId) {
1129
+ callStateForMetrics = _objectSpread(_objectSpread({}, callStateForMetrics || {}), {}, {
1130
+ sessionCorrelationId: sessionCorrelationId
1131
+ });
1132
+ }
1056
1133
  return this.meetingInfo.fetchInfoOptions(destination, type)
1057
1134
  // Catch a failure to fetch info options.
1058
1135
  .catch(function (error) {
@@ -1104,12 +1181,9 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1104
1181
  locusId: createdMeeting.locusId,
1105
1182
  meetingId: (_createdMeeting$locus5 = createdMeeting.locusInfo) === null || _createdMeeting$locus5 === void 0 ? void 0 : (_createdMeeting$locus6 = _createdMeeting$locus5.info) === null || _createdMeeting$locus6 === void 0 ? void 0 : _createdMeeting$locus6.webExMeetingId,
1106
1183
  autoupload: true
1107
- }).then(function () {
1108
- return _this10.destroy(createdMeeting, payload.reason);
1109
1184
  });
1110
- } else {
1111
- _this10.destroy(createdMeeting, payload.reason);
1112
1185
  }
1186
+ _this10.destroy(createdMeeting, payload.reason);
1113
1187
  });
1114
1188
  createdMeeting.on(_constants.EVENTS.REQUEST_UPLOAD_LOGS, function (meetingInstance) {
1115
1189
  // @ts-ignore
@@ -1134,7 +1208,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1134
1208
  return _promise.default.resolve(createdMeeting);
1135
1209
  });
1136
1210
  }
1137
- meeting.setCallStateForMetrics(callStateForMetrics);
1211
+ meeting.updateCallStateForMetrics(callStateForMetrics);
1138
1212
 
1139
1213
  // Return the existing meeting.
1140
1214
  return _promise.default.resolve(meeting);