@webex/plugin-meetings 3.8.1-next.35 → 3.8.1-next.36

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.
@@ -530,6 +530,15 @@ var MeetingUtil = {
530
530
  canStartManualCaption: function canStartManualCaption(displayHints) {
531
531
  return displayHints.includes(_constants.DISPLAY_HINTS.MANUAL_CAPTION_START);
532
532
  },
533
+ isLocalRecordingStarted: function isLocalRecordingStarted(displayHints) {
534
+ return displayHints.includes(_constants.DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STARTED);
535
+ },
536
+ isLocalRecordingStopped: function isLocalRecordingStopped(displayHints) {
537
+ return displayHints.includes(_constants.DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STOPPED);
538
+ },
539
+ isLocalRecordingPaused: function isLocalRecordingPaused(displayHints) {
540
+ return displayHints.includes(_constants.DISPLAY_HINTS.LOCAL_RECORDING_STATUS_PAUSED);
541
+ },
533
542
  canStopManualCaption: function canStopManualCaption(displayHints) {
534
543
  return displayHints.includes(_constants.DISPLAY_HINTS.MANUAL_CAPTION_STOP);
535
544
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_webexErrors","_loggerProxy","_interopRequireDefault","_constants","_browserDetection","_intentToJoin","_joinMeeting2","_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","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","options","_meeting$meetingInfo","reachability","clientMediaPreferences","wrap","_callee$","_context","prev","abrupt","getWebexObject","newMetrics","submitClientEvent","meetingId","ipver","joinCookie","preferTranscoding","isMultistream","getClientMediaPreferences","sent","roapMessage","getReachabilityReportToAttachToRoap","t0","LoggerProxy","logger","error","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","permissionToken","resourceId","moderator","pin","moveToResource","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","alias","res","_res$headers","setLocus","isoLocalClientMeetingJoinTime","headers","date","payload","trigger","identifiers","trackingId","trackingid","stop","_x","_x2","cleanUp","meetingEnded","stopPeriodicLogUpload","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","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","canStartBreakout","DISABLE_BREAKOUT_START","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","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","requiresPostMeetingDataConsentPrompt","SHOW_POST_MEETING_DATA_CONSENT_PROMPT","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","SUPPORT_WHITEBOARD","canMoveToLobby","MOVE_TO_LOBBY","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: async (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 let reachability;\n let clientMediaPreferences = {\n // bare minimum fallback value that should allow us to join\n ipver: IP_VERSION.unknown,\n joinCookie: undefined,\n preferTranscoding: !meeting.isMultistream,\n };\n\n try {\n clientMediaPreferences = await webex.meetings.reachability.getClientMediaPreferences(\n meeting.isMultistream,\n MeetingUtil.getIpVersion(webex)\n );\n if (options.roapMessage) {\n // we only need to attach reachability if we are sending a roap message\n // sending reachability on its own will cause Locus to reject our join request\n reachability = await webex.meetings.reachability.getReachabilityReportToAttachToRoap();\n }\n } catch (e) {\n LoggerProxy.logger.error(\n 'Meeting:util#joinMeeting --> Error getting reachability or clientMediaPreferences:',\n e\n );\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,\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 asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n clientMediaPreferences,\n alias: options.alias,\n })\n .then((res) => {\n const parsed = MeetingUtil.parseLocusJoin(res);\n meeting.setLocus(parsed);\n meeting.isoLocalClientMeetingJoinTime = res?.headers?.date; // read from header if exist, else fall back to system clock : https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-555657\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 meeting.stopPeriodicLogUpload();\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\n canStartBreakout: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_START),\n\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 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 requiresPostMeetingDataConsentPrompt: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SHOW_POST_MEETING_DATA_CONSENT_PROMPT),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n // Default empty value for policies if we get an undefined value (ie permissionToken is not available)\n canShareWhiteBoard: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD) &&\n !!policies[SELF_POLICY.SUPPORT_WHITEBOARD],\n\n canMoveToLobby: (displayHints) => displayHints.includes(DISPLAY_HINTS.MOVE_TO_LOBBY),\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","_joinMeeting2","_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","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","options","_meeting$meetingInfo","reachability","clientMediaPreferences","wrap","_callee$","_context","prev","abrupt","getWebexObject","newMetrics","submitClientEvent","meetingId","ipver","joinCookie","preferTranscoding","isMultistream","getClientMediaPreferences","sent","roapMessage","getReachabilityReportToAttachToRoap","t0","LoggerProxy","logger","error","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","permissionToken","resourceId","moderator","pin","moveToResource","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","alias","res","_res$headers","setLocus","isoLocalClientMeetingJoinTime","headers","date","payload","trigger","identifiers","trackingId","trackingid","stop","_x","_x2","cleanUp","meetingEnded","stopPeriodicLogUpload","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","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","canStartBreakout","DISABLE_BREAKOUT_START","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","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","isLocalRecordingStarted","LOCAL_RECORDING_STATUS_STARTED","isLocalRecordingStopped","LOCAL_RECORDING_STATUS_STOPPED","isLocalRecordingPaused","LOCAL_RECORDING_STATUS_PAUSED","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","requiresPostMeetingDataConsentPrompt","SHOW_POST_MEETING_DATA_CONSENT_PROMPT","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","SUPPORT_WHITEBOARD","canMoveToLobby","MOVE_TO_LOBBY","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: async (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 let reachability;\n let clientMediaPreferences = {\n // bare minimum fallback value that should allow us to join\n ipver: IP_VERSION.unknown,\n joinCookie: undefined,\n preferTranscoding: !meeting.isMultistream,\n };\n\n try {\n clientMediaPreferences = await webex.meetings.reachability.getClientMediaPreferences(\n meeting.isMultistream,\n MeetingUtil.getIpVersion(webex)\n );\n if (options.roapMessage) {\n // we only need to attach reachability if we are sending a roap message\n // sending reachability on its own will cause Locus to reject our join request\n reachability = await webex.meetings.reachability.getReachabilityReportToAttachToRoap();\n }\n } catch (e) {\n LoggerProxy.logger.error(\n 'Meeting:util#joinMeeting --> Error getting reachability or clientMediaPreferences:',\n e\n );\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,\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 asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n clientMediaPreferences,\n alias: options.alias,\n })\n .then((res) => {\n const parsed = MeetingUtil.parseLocusJoin(res);\n meeting.setLocus(parsed);\n meeting.isoLocalClientMeetingJoinTime = res?.headers?.date; // read from header if exist, else fall back to system clock : https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-555657\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 meeting.stopPeriodicLogUpload();\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\n canStartBreakout: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_START),\n\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 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 isLocalRecordingStarted: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STARTED),\n\n isLocalRecordingStopped: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STOPPED),\n\n isLocalRecordingPaused: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_PAUSED),\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 requiresPostMeetingDataConsentPrompt: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SHOW_POST_MEETING_DATA_CONSENT_PROMPT),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n // Default empty value for policies if we get an undefined value (ie permissionToken is not available)\n canShareWhiteBoard: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD) &&\n !!policies[SELF_POLICY.SUPPORT_WHITEBOARD],\n\n canMoveToLobby: (displayHints) => displayHints.includes(DISPLAY_HINTS.MOVE_TO_LOBBY),\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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"}
@@ -779,6 +779,9 @@ export declare const DISPLAY_HINTS: {
779
779
  PREMISE_RECORDING_CONTROL_PAUSE: string;
780
780
  PREMISE_RECORDING_CONTROL_STOP: string;
781
781
  PREMISE_RECORDING_CONTROL_RESUME: string;
782
+ LOCAL_RECORDING_STATUS_STARTED: string;
783
+ LOCAL_RECORDING_STATUS_STOPPED: string;
784
+ LOCAL_RECORDING_STATUS_PAUSED: string;
782
785
  LOCK_CONTROL_UNLOCK: string;
783
786
  LOCK_CONTROL_LOCK: string;
784
787
  LOCK_STATUS_LOCKED: string;
@@ -34,6 +34,9 @@ interface IInMeetingActions {
34
34
  isClosedCaptionActive?: boolean;
35
35
  canStartManualCaption?: boolean;
36
36
  canStopManualCaption?: boolean;
37
+ isLocalRecordingStarted?: boolean;
38
+ isLocalRecordingStopped?: boolean;
39
+ isLocalRecordingPaused?: boolean;
37
40
  isManualCaptionActive?: boolean;
38
41
  isSaveTranscriptsEnabled?: boolean;
39
42
  isWebexAssistantActive?: boolean;
@@ -139,6 +142,9 @@ export default class InMeetingActions implements IInMeetingActions {
139
142
  isClosedCaptionActive: any;
140
143
  canStartManualCaption: any;
141
144
  canStopManualCaption: any;
145
+ isLocalRecordingStopped: any;
146
+ isLocalRecordingStarted: any;
147
+ isLocalRecordingPaused: any;
142
148
  isManualCaptionActive: any;
143
149
  isSaveTranscriptsEnabled: any;
144
150
  isWebexAssistantActive: any;
@@ -71,6 +71,9 @@ declare const MeetingUtil: {
71
71
  canStopTranscribing: (displayHints: any) => any;
72
72
  isClosedCaptionActive: (displayHints: any) => any;
73
73
  canStartManualCaption: (displayHints: any) => any;
74
+ isLocalRecordingStarted: (displayHints: any) => any;
75
+ isLocalRecordingStopped: (displayHints: any) => any;
76
+ isLocalRecordingPaused: (displayHints: any) => any;
74
77
  canStopManualCaption: (displayHints: any) => any;
75
78
  isManualCaptionActive: (displayHints: any) => any;
76
79
  isWebexAssistantActive: (displayHints: any) => any;
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.1-next.35"
461
+ version: "3.8.1-next.36"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.1-next.35",
46
+ "@webex/plugin-meetings": "3.8.1-next.36",
47
47
  "@webex/plugin-rooms": "3.8.1-next.8",
48
48
  "@webex/test-helper-chai": "3.8.1-next.10",
49
49
  "@webex/test-helper-mocha": "3.8.1-next.10",
@@ -71,7 +71,7 @@
71
71
  "@webex/internal-plugin-metrics": "3.8.1-next.10",
72
72
  "@webex/internal-plugin-support": "3.8.1-next.11",
73
73
  "@webex/internal-plugin-user": "3.8.1-next.10",
74
- "@webex/internal-plugin-voicea": "3.8.1-next.35",
74
+ "@webex/internal-plugin-voicea": "3.8.1-next.36",
75
75
  "@webex/media-helpers": "3.8.1-next.15",
76
76
  "@webex/plugin-people": "3.8.1-next.10",
77
77
  "@webex/plugin-rooms": "3.8.1-next.8",
@@ -93,5 +93,5 @@
93
93
  "//": [
94
94
  "TODO: upgrade jwt-decode when moving to node 18"
95
95
  ],
96
- "version": "3.8.1-next.35"
96
+ "version": "3.8.1-next.36"
97
97
  }
package/src/constants.ts CHANGED
@@ -263,7 +263,6 @@ export const RECORDING_STATE = {
263
263
  PAUSED: 'paused',
264
264
  RESUMED: 'resumed',
265
265
  };
266
-
267
266
  export const SHARE_STATUS = {
268
267
  NO_SHARE: 'no_share',
269
268
  REMOTE_SHARE_ACTIVE: 'remote_share_active',
@@ -949,6 +948,9 @@ export const DISPLAY_HINTS = {
949
948
  PREMISE_RECORDING_CONTROL_PAUSE: 'PREMISE_RECORDING_CONTROL_PAUSE',
950
949
  PREMISE_RECORDING_CONTROL_STOP: 'PREMISE_RECORDING_CONTROL_STOP',
951
950
  PREMISE_RECORDING_CONTROL_RESUME: 'PREMISE_RECORDING_CONTROL_RESUME',
951
+ LOCAL_RECORDING_STATUS_STARTED: 'LOCAL_RECORDING_STATUS_STARTED',
952
+ LOCAL_RECORDING_STATUS_STOPPED: 'LOCAL_RECORDING_STATUS_STOPPED',
953
+ LOCAL_RECORDING_STATUS_PAUSED: 'LOCAL_RECORDING_STATUS_PAUSED',
952
954
  LOCK_CONTROL_UNLOCK: 'LOCK_CONTROL_UNLOCK',
953
955
  LOCK_CONTROL_LOCK: 'LOCK_CONTROL_LOCK',
954
956
  LOCK_STATUS_LOCKED: 'LOCK_STATUS_LOCKED',
@@ -988,7 +990,6 @@ export const DISPLAY_HINTS = {
988
990
  CAN_RENAME_SELF_AND_OBSERVED: 'CAN_RENAME_SELF_AND_OBSERVED',
989
991
  CAN_RENAME_OTHERS: 'CAN_RENAME_OTHERS',
990
992
  MOVE_TO_LOBBY: 'MOVE_TO_LOBBY',
991
-
992
993
  // breakout session
993
994
  BREAKOUT_MANAGEMENT: 'BREAKOUT_MANAGEMENT',
994
995
  BROADCAST_MESSAGE_TO_BREAKOUT: 'BROADCAST_MESSAGE_TO_BREAKOUT',
@@ -38,6 +38,10 @@ interface IInMeetingActions {
38
38
  isClosedCaptionActive?: boolean;
39
39
  canStartManualCaption?: boolean;
40
40
  canStopManualCaption?: boolean;
41
+ isLocalRecordingStarted?: boolean;
42
+ isLocalRecordingStopped?: boolean;
43
+ isLocalRecordingPaused?: boolean;
44
+
41
45
  isManualCaptionActive?: boolean;
42
46
  isSaveTranscriptsEnabled?: boolean;
43
47
  isWebexAssistantActive?: boolean;
@@ -173,6 +177,12 @@ export default class InMeetingActions implements IInMeetingActions {
173
177
 
174
178
  canStopManualCaption = null;
175
179
 
180
+ isLocalRecordingStopped = null;
181
+
182
+ isLocalRecordingStarted = null;
183
+
184
+ isLocalRecordingPaused = null;
185
+
176
186
  isManualCaptionActive = null;
177
187
 
178
188
  isSaveTranscriptsEnabled = null;
@@ -347,6 +357,9 @@ export default class InMeetingActions implements IInMeetingActions {
347
357
  canStopTranscribing: this.canStopTranscribing,
348
358
  isClosedCaptionActive: this.isClosedCaptionActive,
349
359
  canStartManualCaption: this.canStartManualCaption,
360
+ isLocalRecordingStarted: this.isLocalRecordingStarted,
361
+ isLocalRecordingStopped: this.isLocalRecordingStopped,
362
+ isLocalRecordingPaused: this.isLocalRecordingPaused,
350
363
  canStopManualCaption: this.canStopManualCaption,
351
364
  isManualCaptionActive: this.isManualCaptionActive,
352
365
  isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,
@@ -4175,6 +4175,9 @@ export default class Meeting extends StatelessWebexPlugin {
4175
4175
  isClosedCaptionActive: MeetingUtil.isClosedCaptionActive(this.userDisplayHints),
4176
4176
  canStartManualCaption: MeetingUtil.canStartManualCaption(this.userDisplayHints),
4177
4177
  canStopManualCaption: MeetingUtil.canStopManualCaption(this.userDisplayHints),
4178
+ isLocalRecordingStarted: MeetingUtil.isLocalRecordingStarted(this.userDisplayHints),
4179
+ isLocalRecordingStopped: MeetingUtil.isLocalRecordingStopped(this.userDisplayHints),
4180
+ isLocalRecordingPaused: MeetingUtil.isLocalRecordingPaused(this.userDisplayHints),
4178
4181
  isManualCaptionActive: MeetingUtil.isManualCaptionActive(this.userDisplayHints),
4179
4182
  isSaveTranscriptsEnabled: MeetingUtil.isSaveTranscriptsEnabled(this.userDisplayHints),
4180
4183
  isWebexAssistantActive: MeetingUtil.isWebexAssistantActive(this.userDisplayHints),
@@ -542,6 +542,15 @@ const MeetingUtil = {
542
542
  canStartManualCaption: (displayHints) =>
543
543
  displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_START),
544
544
 
545
+ isLocalRecordingStarted: (displayHints) =>
546
+ displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STARTED),
547
+
548
+ isLocalRecordingStopped: (displayHints) =>
549
+ displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_STOPPED),
550
+
551
+ isLocalRecordingPaused: (displayHints) =>
552
+ displayHints.includes(DISPLAY_HINTS.LOCAL_RECORDING_STATUS_PAUSED),
553
+
545
554
  canStopManualCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STOP),
546
555
 
547
556
  isManualCaptionActive: (displayHints) =>
@@ -32,6 +32,9 @@ describe('plugin-meetings', () => {
32
32
  isClosedCaptionActive: null,
33
33
  canStartManualCaption: null,
34
34
  canStopManualCaption: null,
35
+ isLocalRecordingStarted: null,
36
+ isLocalRecordingStopped: null,
37
+ isLocalRecordingPaused: null,
35
38
  isManualCaptionActive: null,
36
39
  isPremiseRecordingEnabled: null,
37
40
  isSaveTranscriptsEnabled: null,
@@ -129,6 +132,9 @@ describe('plugin-meetings', () => {
129
132
  'canPauseRecording',
130
133
  'canResumeRecording',
131
134
  'canStopRecording',
135
+ 'isLocalRecordingStarted',
136
+ 'isLocalRecordingStopped',
137
+ 'isLocalRecordingPaused',
132
138
  'canSetMuteOnEntry',
133
139
  'canUnsetMuteOnEntry',
134
140
  'canSetDisallowUnmute',
@@ -850,6 +850,11 @@ describe('plugin-meetings', () => {
850
850
  {functionName: 'isClosedCaptionActive', displayHint: 'CAPTION_STATUS_ACTIVE'},
851
851
  {functionName: 'canStartManualCaption', displayHint: 'MANUAL_CAPTION_START'},
852
852
  {functionName: 'canStopManualCaption', displayHint: 'MANUAL_CAPTION_STOP'},
853
+
854
+ {functionName: 'isLocalRecordingStarted',displayHint:'LOCAL_RECORDING_STATUS_STARTED'},
855
+ {functionName: 'isLocalRecordingStopped', displayHint: 'LOCAL_RECORDING_STATUS_STOPPED'},
856
+ {functionName: 'isLocalRecordingPaused', displayHint: 'LOCAL_RECORDING_STATUS_PAUSED'},
857
+
853
858
  {functionName: 'isManualCaptionActive', displayHint: 'MANUAL_CAPTION_STATUS_ACTIVE'},
854
859
  {functionName: 'isWebexAssistantActive', displayHint: 'WEBEX_ASSISTANT_STATUS_ACTIVE'},
855
860
  {functionName: 'canViewCaptionPanel', displayHint: 'ENABLE_CAPTION_PANEL'},