@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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/media/index.js +3 -1
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +3 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +133 -87
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +8 -10
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +100 -26
- package/dist/meetings/index.js.map +1 -1
- package/dist/roap/request.js +1 -1
- package/dist/roap/request.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +2 -0
- package/dist/types/meeting/index.d.ts +11 -0
- package/dist/types/meetings/index.d.ts +43 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/config.ts +3 -0
- package/src/constants.ts +1 -0
- package/src/media/index.ts +4 -1
- package/src/meeting/in-meeting-actions.ts +3 -0
- package/src/meeting/index.ts +57 -2
- package/src/meeting/util.ts +27 -31
- package/src/meetings/index.ts +126 -37
- package/src/roap/request.ts +3 -1
- package/test/unit/spec/media/index.ts +4 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
- package/test/unit/spec/meeting/index.js +58 -17
- package/test/unit/spec/meeting/utils.js +50 -85
- package/test/unit/spec/meetings/index.js +128 -13
- package/dist/networkQualityMonitor/index.js +0 -227
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/rtcMetrics/constants.js +0 -11
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/src/rtcMetrics/constants.ts +0 -3
- package/src/rtcMetrics/index.ts +0 -186
- package/test/unit/spec/rtcMetrics/index.ts +0 -154
package/dist/meeting/util.js
CHANGED
|
@@ -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
|
-
//
|
|
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
|
-
|
|
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:
|
|
170
|
+
mediaConnections: parsed.mediaConnections
|
|
169
171
|
}
|
|
170
172
|
});
|
|
171
|
-
return
|
|
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).
|
|
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: {
|
package/dist/meeting/util.js.map
CHANGED
|
@@ -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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"}
|
package/dist/meetings/index.js
CHANGED
|
@@ -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
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
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
|
-
|
|
975
|
-
|
|
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.
|
|
1211
|
+
meeting.updateCallStateForMetrics(callStateForMetrics);
|
|
1138
1212
|
|
|
1139
1213
|
// Return the existing meeting.
|
|
1140
1214
|
return _promise.default.resolve(meeting);
|