@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0-test.1
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/README.md +12 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +23 -3
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +69 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/index.js +16 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +40 -11
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +42 -21
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +10 -6
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +13 -3
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +4 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2187 -1074
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +37 -25
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +34 -19
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +71 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -23
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +25 -4
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +17 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +142 -57
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +2 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +11 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +17 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.js +15 -4
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +15 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +16 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +222 -73
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +22 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +262 -432
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +113 -96
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +57 -25
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +5 -13
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +173 -81
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/index.js +68 -6
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +338 -289
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/config.d.ts +1 -1
- package/dist/types/constants.d.ts +66 -13
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/locus-info/index.d.ts +1 -1
- package/dist/types/locus-info/parser.d.ts +3 -2
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +285 -34
- package/dist/types/meeting/locusMediaRequest.d.ts +1 -2
- package/dist/types/meeting/muteState.d.ts +2 -8
- package/dist/types/meeting/request.d.ts +4 -1
- package/dist/types/meeting/util.d.ts +25 -1
- package/dist/types/meeting-info/index.d.ts +7 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +1 -0
- package/dist/types/meetings/collection.d.ts +9 -0
- package/dist/types/meetings/index.d.ts +42 -14
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/types.d.ts +1 -0
- package/dist/types/members/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +15 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +2 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +25 -1
- package/dist/types/multistream/sendSlotManager.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +59 -112
- package/dist/types/reachability/request.d.ts +1 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +10 -0
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +2 -1
- package/dist/types/roap/turnDiscovery.d.ts +21 -4
- package/dist/types/rtcMetrics/index.d.ts +15 -1
- package/dist/types/statsAnalyzer/index.d.ts +28 -11
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +3 -2
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +1 -1
- package/src/constants.ts +71 -6
- package/src/index.ts +5 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/index.ts +18 -1
- package/src/locus-info/index.ts +52 -16
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +47 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1510 -529
- package/src/meeting/muteState.ts +34 -20
- package/src/meeting/request.ts +19 -1
- package/src/meeting/util.ts +97 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +27 -5
- package/src/meeting-info/utilv2.ts +1 -1
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +14 -0
- package/src/multistream/mediaRequestManager.ts +4 -1
- package/src/multistream/remoteMediaGroup.ts +19 -0
- package/src/multistream/remoteMediaManager.ts +141 -18
- package/src/multistream/sendSlotManager.ts +29 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +3 -16
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +7 -7
- package/test/integration/spec/journey.js +86 -104
- package/test/integration/spec/space-meeting.js +9 -9
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/index.ts +36 -3
- package/test/unit/spec/locus-info/index.js +205 -12
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/media/index.ts +20 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4027 -1075
- package/test/unit/spec/meeting/muteState.js +219 -67
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +93 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +196 -53
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +619 -206
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +80 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +210 -3
- package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +362 -101
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +4 -4
- package/test/utils/webex-test-users.js +12 -4
package/dist/meeting/util.js
CHANGED
|
@@ -644,6 +644,77 @@ var MeetingUtil = {
|
|
|
644
644
|
file: 'meeting/util',
|
|
645
645
|
function: 'parseInterpretationInfo'
|
|
646
646
|
}, _constants.EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE);
|
|
647
|
+
},
|
|
648
|
+
/**
|
|
649
|
+
* Returns a CA-recognized error payload for the specified raw error message/reason.
|
|
650
|
+
*
|
|
651
|
+
* New errors can be added to this function for handling in the future
|
|
652
|
+
*
|
|
653
|
+
* @param {String} reason the raw error message
|
|
654
|
+
* @returns {Array<object>} an array of payload objects
|
|
655
|
+
*/
|
|
656
|
+
getChangeMeetingFloorErrorPayload: function getChangeMeetingFloorErrorPayload(reason) {
|
|
657
|
+
var errorPayload = {
|
|
658
|
+
errorDescription: reason,
|
|
659
|
+
name: 'locus.response',
|
|
660
|
+
shownToUser: false
|
|
661
|
+
};
|
|
662
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.UNDEFINED)) {
|
|
663
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
664
|
+
fatal: true,
|
|
665
|
+
category: 'signaling',
|
|
666
|
+
errorCode: 1100
|
|
667
|
+
})];
|
|
668
|
+
}
|
|
669
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {
|
|
670
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
671
|
+
fatal: true,
|
|
672
|
+
category: 'signaling',
|
|
673
|
+
errorCode: 4050
|
|
674
|
+
})];
|
|
675
|
+
}
|
|
676
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {
|
|
677
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
678
|
+
fatal: true,
|
|
679
|
+
category: 'media',
|
|
680
|
+
errorCode: 2048
|
|
681
|
+
})];
|
|
682
|
+
}
|
|
683
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {
|
|
684
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
685
|
+
fatal: true,
|
|
686
|
+
category: 'signaling',
|
|
687
|
+
errorCode: 4064
|
|
688
|
+
})];
|
|
689
|
+
}
|
|
690
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {
|
|
691
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
692
|
+
fatal: true,
|
|
693
|
+
category: 'expected',
|
|
694
|
+
errorCode: 4065
|
|
695
|
+
})];
|
|
696
|
+
}
|
|
697
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {
|
|
698
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
699
|
+
fatal: true,
|
|
700
|
+
category: 'signaling',
|
|
701
|
+
errorCode: 4066
|
|
702
|
+
})];
|
|
703
|
+
}
|
|
704
|
+
if (reason.includes(_constants.LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {
|
|
705
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
706
|
+
fatal: true,
|
|
707
|
+
category: 'expected',
|
|
708
|
+
errorCode: 4067
|
|
709
|
+
})];
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
// return unknown error
|
|
713
|
+
return [_objectSpread(_objectSpread({}, errorPayload), {}, {
|
|
714
|
+
fatal: true,
|
|
715
|
+
category: 'signaling',
|
|
716
|
+
errorCode: 1100
|
|
717
|
+
})];
|
|
647
718
|
}
|
|
648
719
|
};
|
|
649
720
|
var _default = MeetingUtil;
|
package/dist/meeting/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","forEach","mediaConnection","mediaId","remoteUpdateAudioVideo","meeting","audioMuted","videoMuted","webex","getWebexObject","reject","ParameterError","locusMediaRequest","internal","newMetrics","submitClientEvent","name","options","meetingId","send","type","selfUrl","sequence","locusInfo","muteOptions","then","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","errorCode","INTENT_TO_JOIN","includes","getIpVersion","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","leaveOptions","moveMeeting","declineMeeting","reason","parsedLocus","state","_LEFT_","isUserInIdleState","_IDLE_","isUserInJoinedState","_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","length","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","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","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","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","updateLocusWithDelta","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","lanuagesInfo","siLanguages","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE"],"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 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 const webex = meeting.getWebexObject();\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {meetingId: meeting.id},\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) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {meetingId: meeting.id},\n });\n\n return response?.body?.locus;\n });\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 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.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\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(() => meeting.updateLLMConnection());\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 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\nexport default MeetingUtil;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","forEach","mediaConnection","mediaId","remoteUpdateAudioVideo","meeting","audioMuted","videoMuted","webex","getWebexObject","reject","ParameterError","locusMediaRequest","internal","newMetrics","submitClientEvent","name","options","meetingId","send","type","selfUrl","sequence","locusInfo","muteOptions","then","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","errorCode","INTENT_TO_JOIN","includes","getIpVersion","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","leaveOptions","moveMeeting","declineMeeting","reason","parsedLocus","state","_LEFT_","isUserInIdleState","_IDLE_","isUserInJoinedState","_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","length","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","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","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","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","updateLocusWithDelta","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","lanuagesInfo","siLanguages","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"],"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 const webex = meeting.getWebexObject();\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {meetingId: meeting.id},\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) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {meetingId: meeting.id},\n });\n\n return response?.body?.locus;\n });\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 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.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\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(() => meeting.updateLLMConnection());\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 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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"}
|
|
@@ -91,17 +91,38 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
91
91
|
key: "requestFetchInfo",
|
|
92
92
|
value: function requestFetchInfo(options) {
|
|
93
93
|
var _this = this;
|
|
94
|
-
var meetingId = options.meetingId
|
|
95
|
-
|
|
94
|
+
var meetingId = options.meetingId,
|
|
95
|
+
sendCAevents = options.sendCAevents;
|
|
96
|
+
if (meetingId && sendCAevents) {
|
|
96
97
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
97
98
|
name: 'internal.client.meetinginfo.request'
|
|
98
99
|
});
|
|
100
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
101
|
+
name: 'client.meetinginfo.request',
|
|
102
|
+
options: {
|
|
103
|
+
meetingId: meetingId
|
|
104
|
+
}
|
|
105
|
+
});
|
|
99
106
|
}
|
|
100
107
|
return this.meetingInfoRequest.fetchMeetingInfo(options).then(function (info) {
|
|
101
|
-
if (meetingId) {
|
|
108
|
+
if (meetingId && sendCAevents) {
|
|
109
|
+
var _info$body, _info$body2, _info$body3;
|
|
102
110
|
_this.webex.internal.newMetrics.submitInternalEvent({
|
|
103
111
|
name: 'internal.client.meetinginfo.response'
|
|
104
112
|
});
|
|
113
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
114
|
+
name: 'client.meetinginfo.response',
|
|
115
|
+
payload: {
|
|
116
|
+
identifiers: {
|
|
117
|
+
meetingLookupUrl: info === null || info === void 0 ? void 0 : info.url
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
options: {
|
|
121
|
+
meetingId: meetingId,
|
|
122
|
+
webexConferenceIdStr: (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.confIdStr) || (info === null || info === void 0 ? void 0 : (_info$body2 = info.body) === null || _info$body2 === void 0 ? void 0 : _info$body2.confID),
|
|
123
|
+
globalMeetingId: info === null || info === void 0 ? void 0 : (_info$body3 = info.body) === null || _info$body3 === void 0 ? void 0 : _info$body3.meetingId
|
|
124
|
+
}
|
|
125
|
+
});
|
|
105
126
|
}
|
|
106
127
|
if (info && info.body) {
|
|
107
128
|
_this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
|
|
@@ -109,21 +130,23 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
109
130
|
return info;
|
|
110
131
|
}).catch(function (error) {
|
|
111
132
|
_loggerProxy.default.logger.error("Meeting-info:index#requestFetchInfo --> ".concat(error, " fetch meetingInfo"));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
133
|
+
if (meetingId && sendCAevents) {
|
|
134
|
+
_this.webex.internal.newMetrics.submitInternalEvent({
|
|
135
|
+
name: 'internal.client.meetinginfo.response'
|
|
136
|
+
});
|
|
137
|
+
_this.webex.internal.newMetrics.submitClientEvent({
|
|
138
|
+
name: 'client.meetinginfo.response',
|
|
139
|
+
payload: {
|
|
140
|
+
identifiers: {
|
|
141
|
+
meetingLookupUrl: error === null || error === void 0 ? void 0 : error.url
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
options: {
|
|
145
|
+
meetingId: meetingId,
|
|
146
|
+
rawError: error
|
|
120
147
|
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
meetingId: meetingId,
|
|
124
|
-
rawError: error
|
|
125
|
-
}
|
|
126
|
-
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
127
150
|
return _promise.default.reject(error);
|
|
128
151
|
});
|
|
129
152
|
}
|
|
@@ -151,6 +174,12 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
151
174
|
* Fetches meeting info from the server
|
|
152
175
|
* @param {String} destination one of many different types of destinations to look up info for
|
|
153
176
|
* @param {String} [type] to match up with the destination value
|
|
177
|
+
* @param {String} [password] meeting password
|
|
178
|
+
* @param {Object} [captchaInfo] captcha code and id
|
|
179
|
+
* @param {String} [installedOrgID]
|
|
180
|
+
* @param {String} [locusId]
|
|
181
|
+
* @param {Object} [extraParams]
|
|
182
|
+
* @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
|
|
154
183
|
* @returns {Promise} returns a meeting info object
|
|
155
184
|
* @public
|
|
156
185
|
* @memberof MeetingInfo
|
|
@@ -172,15 +201,11 @@ var MeetingInfo = /*#__PURE__*/function () {
|
|
|
172
201
|
return this.fetchInfoOptions(_util.default.extractDestination(destination, type), type).then(function (infoOptions) {
|
|
173
202
|
return (
|
|
174
203
|
// fetch meeting info
|
|
175
|
-
_this2.requestFetchInfo(_objectSpread(_objectSpread({}, infoOptions),
|
|
176
|
-
meetingId: options.meetingId
|
|
177
|
-
})).catch(function (error) {
|
|
204
|
+
_this2.requestFetchInfo(_objectSpread(_objectSpread({}, infoOptions), options)).catch(function (error) {
|
|
178
205
|
// if it failed the first time as meeting link
|
|
179
206
|
if (infoOptions.type === _constants._MEETING_LINK_) {
|
|
180
207
|
// convert the meeting link to sip URI and retry
|
|
181
|
-
return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants._SIP_URI_)),
|
|
182
|
-
meetingId: options.meetingId
|
|
183
|
-
}));
|
|
208
|
+
return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants._SIP_URI_)), options));
|
|
184
209
|
}
|
|
185
210
|
return _promise.default.reject(error);
|
|
186
211
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MeetingInfo","webex","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","id","get","info","set","options","meetingId","internal","newMetrics","submitInternalEvent","name","fetchMeetingInfo","then","body","setMeetingInfo","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","submitClientEvent","payload","identifiers","meetingLookupUrl","url","rawError","reject","destination","type","MeetingInfoUtil","generateOptions","password","captchaInfo","installedOrgID","locusId","extraParams","_PERSONAL_ROOM_","device","userId","fetchInfoOptions","extractDestination","infoOptions","requestFetchInfo","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId} = options;\n if (meetingId) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string} = {}\n ) {\n if (type === _PERSONAL_ROOM_ && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, meetingId: options.meetingId}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === _MEETING_LINK_) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),\n meetingId: options.meetingId,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MeetingInfo","webex","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","id","get","info","set","options","meetingId","sendCAevents","internal","newMetrics","submitInternalEvent","name","submitClientEvent","fetchMeetingInfo","then","payload","identifiers","meetingLookupUrl","url","webexConferenceIdStr","body","confIdStr","confID","globalMeetingId","setMeetingInfo","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","rawError","reject","destination","type","MeetingInfoUtil","generateOptions","password","captchaInfo","installedOrgID","locusId","extraParams","_PERSONAL_ROOM_","device","userId","fetchInfoOptions","extractDestination","infoOptions","requestFetchInfo","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId, sendCAevents} = options;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,\n globalMeetingId: info?.body?.meetingId,\n },\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n }\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n if (type === _PERSONAL_ROOM_ && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === _MEETING_LINK_) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),\n ...options,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;AACA;AAEA;AACA;AACA;AAAqC;AAAA;AAErC;AACA;AACA;AAFA,IAGqBA,WAAW;EAK9B;AACF;AACA;AACA;EACE,qBAAYC,KAAU,EAAE;IAAA;IAAA;IAAA;IAAA;IACtB,IAAI,CAACA,KAAK,GAAGA,KAAK;;IAElB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,kBAAkB,GAAG,IAAIC,gBAAkB,CAAC,IAAI,CAACF,KAAK,CAAC;IAC5D;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACG,qBAAqB,GAAG,IAAIC,mBAAqB,EAAE;EAC1D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,wBAAsBC,EAAU,EAAE;MAChC,OAAO,IAAI,CAACF,qBAAqB,CAACG,GAAG,CAACD,EAAE,CAAC;IAC3C;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,wBAAsBA,EAAU,EAAEE,IAAY,EAAE;MAC9C,IAAI,CAACJ,qBAAqB,CAACK,GAAG,CAACH,EAAE,EAAEE,IAAI,CAAC;IAC1C;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAA;IAAA,OAOA,0BAAyBE,OAAY,EAAE;MAAA;MACrC,IAAOC,SAAS,GAAkBD,OAAO,CAAlCC,SAAS;QAAEC,YAAY,GAAIF,OAAO,CAAvBE,YAAY;MAC9B,IAAID,SAAS,IAAIC,YAAY,EAAE;QAC7B,IAAI,CAACX,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;UACjDC,IAAI,EAAE;QACR,CAAC,CAAC;QACF,IAAI,CAACf,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;UAC/CD,IAAI,EAAE,4BAA4B;UAClCN,OAAO,EAAE;YACPC,SAAS,EAATA;UACF;QACF,CAAC,CAAC;MACJ;MAEA,OAAO,IAAI,CAACT,kBAAkB,CAC3BgB,gBAAgB,CAACR,OAAO,CAAC,CACzBS,IAAI,CAAC,UAACX,IAAI,EAAK;QACd,IAAIG,SAAS,IAAIC,YAAY,EAAE;UAAA;UAC7B,KAAI,CAACX,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;YACjDC,IAAI,EAAE;UACR,CAAC,CAAC;UACF,KAAI,CAACf,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;YAC/CD,IAAI,EAAE,6BAA6B;YACnCI,OAAO,EAAE;cACPC,WAAW,EAAE;gBACXC,gBAAgB,EAAEd,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEe;cAC1B;YACF,CAAC;YACDb,OAAO,EAAE;cACPC,SAAS,EAATA,SAAS;cACTa,oBAAoB,EAAE,CAAAhB,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEiB,IAAI,+CAAV,WAAYC,SAAS,MAAIlB,IAAI,aAAJA,IAAI,sCAAJA,IAAI,CAAEiB,IAAI,gDAAV,YAAYE,MAAM;cACjEC,eAAe,EAAEpB,IAAI,aAAJA,IAAI,sCAAJA,IAAI,CAAEiB,IAAI,gDAAV,YAAYd;YAC/B;UACF,CAAC,CAAC;QACJ;QACA,IAAIH,IAAI,IAAIA,IAAI,CAACiB,IAAI,EAAE;UACrB,KAAI,CAACI,cAAc,CAACrB,IAAI,CAACiB,IAAI,CAACK,aAAa,IAAItB,IAAI,CAACiB,IAAI,CAACM,WAAW,EAAEvB,IAAI,CAACiB,IAAI,CAAC;QAClF;QAEA,OAAOjB,IAAI;MACb,CAAC,CAAC,CACDwB,KAAK,CAAC,UAACC,KAAK,EAAK;QAChBC,oBAAW,CAACC,MAAM,CAACF,KAAK,oDACsBA,KAAK,wBAClD;QACD,IAAItB,SAAS,IAAIC,YAAY,EAAE;UAC7B,KAAI,CAACX,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;YACjDC,IAAI,EAAE;UACR,CAAC,CAAC;UACF,KAAI,CAACf,KAAK,CAACY,QAAQ,CAACC,UAAU,CAACG,iBAAiB,CAAC;YAC/CD,IAAI,EAAE,6BAA6B;YACnCI,OAAO,EAAE;cACPC,WAAW,EAAE;gBACXC,gBAAgB,EAAEW,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEV;cAC3B;YACF,CAAC;YACDb,OAAO,EAAE;cACPC,SAAS,EAATA,SAAS;cACTyB,QAAQ,EAAEH;YACZ;UACF,CAAC,CAAC;QACJ;QAEA,OAAO,iBAAQI,MAAM,CAACJ,KAAK,CAAC;MAC9B,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA;IAAA,OAQA,0BAAyBK,WAAmB,EAAEC,IAAY,EAAE;MAC1D,OAAOC,aAAe,CAACC,eAAe,CAAC;QACrCH,WAAW,EAAXA,WAAW;QACXC,IAAI,EAAJA,IAAI;QACJtC,KAAK,EAAE,IAAI,CAACA;MACd,CAAC,CAAC;IACJ;;IAEA;IACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAbE;IAAA;IAAA,OAcA,0BACEqC,WAAmB,EAgBnB;MAAA;MAAA,IAfAC,IAAY,uEAAG,IAAI;MAAA,IAEnBG,QAAgB,uEAAG,IAAI;MAAA,IAEvBC,WAGC,uEAAG,IAAI;MAAA,IAERC,cAAc,uEAAG,IAAI;MAAA,IAErBC,OAAO,uEAAG,IAAI;MAAA,IAEdC,WAAmB,uEAAG,CAAC,CAAC;MAAA,IACxBpC,OAAqD,uEAAG,CAAC,CAAC;MAE1D,IAAI6B,IAAI,KAAKQ,0BAAe,IAAI,CAACT,WAAW,EAAE;QAC5CA,WAAW,GAAG,IAAI,CAACrC,KAAK,CAACY,QAAQ,CAACmC,MAAM,CAACC,MAAM;MACjD;MAEA,OAAO,IAAI,CAACC,gBAAgB,CAACV,aAAe,CAACW,kBAAkB,CAACb,WAAW,EAAEC,IAAI,CAAC,EAAEA,IAAI,CAAC,CAACpB,IAAI,CAC5F,UAACiC,WAAW;QAAA;UACV;UACA,MAAI,CAACC,gBAAgB,iCAAKD,WAAW,GAAK1C,OAAO,EAAE,CAACsB,KAAK,CAAC,UAACC,KAAK,EAAK;YACnE;YACA,IAAImB,WAAW,CAACb,IAAI,KAAKe,yBAAc,EAAE;cACvC;cACA,OAAO,MAAI,CAACD,gBAAgB,iCACvB,MAAI,CAACH,gBAAgB,CAACV,aAAe,CAACe,gBAAgB,CAACjB,WAAW,CAAC,EAAEkB,oBAAS,CAAC,GAC/E9C,OAAO,EACV;YACJ;YAEA,OAAO,iBAAQ2B,MAAM,CAACJ,KAAK,CAAC;UAC9B,CAAC;QAAC;MAAA,EACL;IACH;EAAC;EAAA;AAAA;AAAA"}
|
|
@@ -324,6 +324,7 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
|
|
|
324
324
|
extraParams,
|
|
325
325
|
options,
|
|
326
326
|
meetingId,
|
|
327
|
+
sendCAevents,
|
|
327
328
|
destinationType,
|
|
328
329
|
body,
|
|
329
330
|
_destinationType$info,
|
|
@@ -342,7 +343,7 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
|
|
|
342
343
|
locusId = _args2.length > 5 && _args2[5] !== undefined ? _args2[5] : null;
|
|
343
344
|
extraParams = _args2.length > 6 && _args2[6] !== undefined ? _args2[6] : {};
|
|
344
345
|
options = _args2.length > 7 && _args2[7] !== undefined ? _args2[7] : {};
|
|
345
|
-
meetingId = options.meetingId;
|
|
346
|
+
meetingId = options.meetingId, sendCAevents = options.sendCAevents;
|
|
346
347
|
_context2.next = 10;
|
|
347
348
|
return _utilv.default.getDestinationType({
|
|
348
349
|
destination: destination,
|
|
@@ -394,21 +395,41 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
|
|
|
394
395
|
requestOptions.service = _constants.WBXAPPAPI_SERVICE;
|
|
395
396
|
requestOptions.resource = 'meetingInfo';
|
|
396
397
|
}
|
|
397
|
-
if (meetingId) {
|
|
398
|
+
if (meetingId && sendCAevents) {
|
|
398
399
|
this.webex.internal.newMetrics.submitInternalEvent({
|
|
399
400
|
name: 'internal.client.meetinginfo.request'
|
|
400
401
|
});
|
|
402
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
403
|
+
name: 'client.meetinginfo.request',
|
|
404
|
+
options: {
|
|
405
|
+
meetingId: meetingId
|
|
406
|
+
}
|
|
407
|
+
});
|
|
401
408
|
}
|
|
402
409
|
return _context2.abrupt("return", this.webex.request(requestOptions).then(function (response) {
|
|
403
|
-
if (meetingId) {
|
|
410
|
+
if (meetingId && sendCAevents) {
|
|
411
|
+
var _response$body, _response$body2, _response$body3;
|
|
404
412
|
_this6.webex.internal.newMetrics.submitInternalEvent({
|
|
405
413
|
name: 'internal.client.meetinginfo.response'
|
|
406
414
|
});
|
|
415
|
+
_this6.webex.internal.newMetrics.submitClientEvent({
|
|
416
|
+
name: 'client.meetinginfo.response',
|
|
417
|
+
payload: {
|
|
418
|
+
identifiers: {
|
|
419
|
+
meetingLookupUrl: response === null || response === void 0 ? void 0 : response.url
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
options: {
|
|
423
|
+
meetingId: meetingId,
|
|
424
|
+
webexConferenceIdStr: (response === null || response === void 0 ? void 0 : (_response$body = response.body) === null || _response$body === void 0 ? void 0 : _response$body.confIdStr) || (response === null || response === void 0 ? void 0 : (_response$body2 = response.body) === null || _response$body2 === void 0 ? void 0 : _response$body2.confID),
|
|
425
|
+
globalMeetingId: response === null || response === void 0 ? void 0 : (_response$body3 = response.body) === null || _response$body3 === void 0 ? void 0 : _response$body3.meetingId
|
|
426
|
+
}
|
|
427
|
+
});
|
|
407
428
|
}
|
|
408
429
|
_metrics.default.sendBehavioralMetric(_constants2.default.FETCH_MEETING_INFO_V1_SUCCESS);
|
|
409
430
|
return response;
|
|
410
431
|
}).catch(function (err) {
|
|
411
|
-
if (meetingId) {
|
|
432
|
+
if (meetingId && sendCAevents) {
|
|
412
433
|
_this6.webex.internal.newMetrics.submitInternalEvent({
|
|
413
434
|
name: 'internal.client.meetinginfo.response'
|
|
414
435
|
});
|