@webex/plugin-meetings 3.0.0-beta.15 → 3.0.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/browser-detection.js +1 -21
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +0 -21
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +0 -21
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +0 -21
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +0 -21
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +0 -28
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +0 -21
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +0 -21
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +0 -21
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +0 -21
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -24
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +35 -61
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +1 -5
- package/dist/config.js.map +1 -1
- package/dist/constants.js +45 -40
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +10 -28
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +90 -185
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +88 -125
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +15 -81
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +43 -97
- package/dist/media/index.js.map +1 -1
- package/dist/media/internal-media-core-wrapper.js +0 -4
- package/dist/media/internal-media-core-wrapper.js.map +1 -1
- package/dist/media/properties.js +64 -110
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -8
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +119 -191
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +0 -13
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +729 -1504
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +30 -77
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +160 -230
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +0 -1
- package/dist/meeting/state.js +16 -26
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +19 -158
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +8 -31
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +131 -220
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +3 -21
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +202 -335
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +5 -28
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +85 -141
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +18 -58
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +17 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +2 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +29 -151
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -56
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +30 -121
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +12 -28
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +11 -22
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +7 -47
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +37 -78
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +11 -56
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +221 -380
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +20 -49
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +3 -38
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +100 -166
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js +0 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +0 -6
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +290 -455
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +13 -48
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +13 -55
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +10 -52
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +66 -174
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +54 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +9 -44
- package/dist/transcription/index.js.map +1 -1
- package/package.json +18 -18
- package/test/integration/spec/journey.js +1 -1
- package/test/integration/spec/space-meeting.js +1 -1
- package/test/integration/spec/transcription.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","controls","layouts","undefined","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","isJoined","_JOINED_","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","isLocusUserAdmitted","ParameterError","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the MEeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nexport default SelfUtils;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["SelfUtils","PSTN_DEVICE_TYPE","parse","self","deviceId","joinedWith","devices","find","device","url","pstnDevices","filter","deviceType","remoteMuted","getRemoteMuted","unmuteAllowed","getUnmuteAllowed","localAudioUnmuteRequested","getLocalAudioUnmuteRequested","localAudioUnmuteRequired","getLocalAudioUnmuteRequired","lastModified","getLastModified","modifiedBy","getModifiedBy","guest","moderator","mediaStatus","getStatus","status","state","currentMediaStatus","getMediaStatus","mediaSessions","creator","isCreator","selfId","id","selfIdentity","getSelfIdentity","selfUrl","removed","roles","getRoles","isUserUnadmitted","_IDLE_","intent","type","_WAIT_","layout","getLayout","canNotViewTheParticipantList","isSharingBlocked","controls","layouts","undefined","role","reduce","hasRole","push","getSelves","oldSelf","newSelf","previous","current","updates","isUserAdmitted","isMutedByOthersChanged","mutedByOthersChanged","localAudioUnmuteRequestedByServer","localAudioUnmuteRequiredByServer","moderatorChanged","isMediaInactiveOrReleased","wasMediaInactiveOrReleased","isUserObserving","isDeviceObserving","layoutChanged","isMediaInactive","audioStateChange","audio","videoStateChange","video","shareStateChange","share","canNotViewTheParticipantListChanged","isSharingBlockedChanged","isJoined","_JOINED_","previousMediaStatus","MEDIA_STATE","inactive","direction","meta","person","muted","requestedToUnmute","disallowUnmute","audioStatus","videoStatus","slides","videoSlidesStatus","changedSelf","_LEFT_","reason","MEETING_END_REASON","INACTIVE","MEDIA_RELEASED","isLocusUserUnadmitted","check","isLocusUserAdmitted","ParameterError","_MOVE_MEDIA_","_OBSERVE_","getSipUrl","partner","sipUri","_CALL_","sipUrl","media","mediaType","AUDIO","mediaContent","MediaContent","main","VIDEO"],"sources":["selfUtils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n\nimport {\n _IDLE_,\n _JOINED_,\n _CALL_,\n _WAIT_,\n _MOVE_MEDIA_,\n _OBSERVE_,\n _LEFT_,\n MEETING_END_REASON,\n MEDIA_STATE,\n AUDIO,\n VIDEO,\n MediaContent,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\n\nconst SelfUtils: any = {};\nconst PSTN_DEVICE_TYPE = 'PROVISIONAL';\n\n/**\n * parses the relevant values for self: muted, guest, moderator, mediaStatus, state, joinedWith, pstnDevices, creator, id\n * @param {Object} self\n * @param {String} deviceId\n * @returns {undefined}\n */\nSelfUtils.parse = (self: any, deviceId: string) => {\n if (self) {\n const joinedWith = self.devices.find((device) => deviceId === device.url);\n const pstnDevices = self.devices.filter((device) => PSTN_DEVICE_TYPE === device.deviceType);\n\n return {\n remoteMuted: SelfUtils.getRemoteMuted(self),\n unmuteAllowed: SelfUtils.getUnmuteAllowed(self),\n localAudioUnmuteRequested: SelfUtils.getLocalAudioUnmuteRequested(self),\n localAudioUnmuteRequired: SelfUtils.getLocalAudioUnmuteRequired(self),\n lastModified: SelfUtils.getLastModified(self),\n modifiedBy: SelfUtils.getModifiedBy(self),\n guest: self.guest,\n moderator: self.moderator,\n // cumulative media stats\n mediaStatus: SelfUtils.getStatus(self.status),\n // TODO: what should be the status if user has refreshed the page,\n // check the joinedWith parameter and communicate to the user\n state: self.state,\n // TODO: give a proper name . With same device as login or different login`\n // Some times we might have joined with both mobile and web\n joinedWith,\n pstnDevices,\n // current media stats is for the current device who has joined\n currentMediaStatus: SelfUtils.getMediaStatus(joinedWith?.mediaSessions),\n creator: self.isCreator, // check if its used,\n selfId: self.id,\n selfIdentity: SelfUtils.getSelfIdentity(self),\n selfUrl: self.url,\n removed: self.removed,\n roles: SelfUtils.getRoles(self),\n isUserUnadmitted: self.state === _IDLE_ && joinedWith?.intent?.type === _WAIT_,\n layout: SelfUtils.getLayout(self),\n canNotViewTheParticipantList: SelfUtils.canNotViewTheParticipantList(self),\n isSharingBlocked: SelfUtils.isSharingBlocked(self),\n };\n }\n\n return null;\n};\n\nSelfUtils.getLayout = (self) =>\n Array.isArray(self?.controls?.layouts) ? self.controls.layouts[0].type : undefined;\n\nSelfUtils.getRoles = (self) =>\n (self?.controls?.role?.roles || []).reduce((roles, role) => {\n if (role.hasRole) {\n roles.push(role.type);\n }\n\n return roles;\n }, []);\n\nSelfUtils.canNotViewTheParticipantList = (self) => !!self?.canNotViewTheParticipantList;\n\nSelfUtils.isSharingBlocked = (self) => !!self?.isSharingBlocked;\n\nSelfUtils.getSelves = (oldSelf, newSelf, deviceId) => {\n const previous = oldSelf && SelfUtils.parse(oldSelf, deviceId);\n const current = newSelf && SelfUtils.parse(newSelf, deviceId);\n const updates: any = {};\n\n updates.isUserUnadmitted = SelfUtils.isUserUnadmitted(current);\n updates.isUserAdmitted = SelfUtils.isUserAdmitted(previous, current);\n updates.isMutedByOthersChanged = SelfUtils.mutedByOthersChanged(previous, current);\n updates.localAudioUnmuteRequestedByServer = SelfUtils.localAudioUnmuteRequestedByServer(\n previous,\n current\n );\n updates.localAudioUnmuteRequiredByServer = SelfUtils.localAudioUnmuteRequiredByServer(\n previous,\n current\n );\n updates.moderatorChanged = SelfUtils.moderatorChanged(previous, current);\n updates.isMediaInactiveOrReleased = SelfUtils.wasMediaInactiveOrReleased(previous, current);\n updates.isUserObserving = SelfUtils.isDeviceObserving(previous, current);\n updates.layoutChanged = SelfUtils.layoutChanged(previous, current);\n\n updates.isMediaInactive = SelfUtils.isMediaInactive(previous, current);\n updates.audioStateChange =\n previous?.currentMediaStatus.audio !== current.currentMediaStatus.audio;\n updates.videoStateChange =\n previous?.currentMediaStatus.video !== current.currentMediaStatus.video;\n updates.shareStateChange =\n previous?.currentMediaStatus.share !== current.currentMediaStatus.share;\n\n updates.canNotViewTheParticipantListChanged =\n previous?.canNotViewTheParticipantList !== current.canNotViewTheParticipantList;\n updates.isSharingBlockedChanged = previous?.isSharingBlocked !== current.isSharingBlocked;\n\n return {\n previous,\n current,\n updates,\n };\n};\n\n/**\n * Checks if user has joined the meeting\n * @param {Object} self\n * @returns {boolean} isJoined\n */\nSelfUtils.isJoined = (self: any) => self?.state === _JOINED_;\n\n/**\n * Validate if the Meeting Layout Controls Layout has changed.\n *\n * @param {Self} previous - Previous self state\n * @param {Self} current - Current self state [per event]\n * @returns {boolean} - If the MEeting Layout Controls Layout has changed.\n */\nSelfUtils.layoutChanged = (previous: any, current: any) =>\n current?.layout && previous?.layout !== current?.layout;\n\nSelfUtils.isMediaInactive = (previous, current) => {\n if (\n previous &&\n previous.joinedWith &&\n previous.joinedWith.mediaSessions &&\n current &&\n current.joinedWith &&\n current.joinedWith.mediaSessions\n ) {\n const previousMediaStatus = SelfUtils.getMediaStatus(previous.joinedWith.mediaSessions);\n const currentMediaStatus = SelfUtils.getMediaStatus(current.joinedWith.mediaSessions);\n\n if (\n previousMediaStatus.audio &&\n currentMediaStatus.audio &&\n previousMediaStatus.audio.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.audio.state === MEDIA_STATE.inactive &&\n currentMediaStatus.audio.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.video &&\n currentMediaStatus.video &&\n previousMediaStatus.video.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.video.state === MEDIA_STATE.inactive &&\n currentMediaStatus.video.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n if (\n previousMediaStatus.share &&\n currentMediaStatus.share &&\n previousMediaStatus.share.state !== MEDIA_STATE.inactive &&\n currentMediaStatus.share.state === MEDIA_STATE.inactive &&\n currentMediaStatus.share.direction !== MEDIA_STATE.inactive\n ) {\n return true;\n }\n\n return false;\n }\n\n return false;\n};\n\nSelfUtils.getLastModified = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.lastModified\n ) {\n return null;\n }\n\n return self.controls.audio.meta.lastModified;\n};\n\nSelfUtils.getModifiedBy = (self) => {\n if (\n !self ||\n !self.controls ||\n !self.controls.audio ||\n !self.controls.audio.meta ||\n !self.controls.audio.meta.modifiedBy\n ) {\n return null;\n }\n\n return self.controls.audio.meta.modifiedBy;\n};\n\n/**\n * get the id from the self object\n * @param {Object} self\n * @returns {String}\n */\nSelfUtils.getSelfIdentity = (self: any) => {\n if (!self && !self.person) {\n return null;\n }\n\n return self.person.id;\n};\n\n/**\n * get the \"remote mute\" property from the self object\n * @param {Object} self\n * @returns {Boolean}\n */\nSelfUtils.getRemoteMuted = (self: any) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return self.controls.audio.muted;\n};\n\nSelfUtils.getLocalAudioUnmuteRequested = (self) => !!self?.controls?.audio?.requestedToUnmute;\n\nSelfUtils.getUnmuteAllowed = (self) => {\n if (!self || !self.controls || !self.controls.audio) {\n return null;\n }\n\n return !self.controls.audio.disallowUnmute;\n};\n\nSelfUtils.getLocalAudioUnmuteRequired = (self) => !!self?.controls?.audio?.localAudioUnmuteRequired;\n\nSelfUtils.getStatus = (status) => ({\n audio: status.audioStatus,\n video: status.videoStatus,\n slides: status.videoSlidesStatus,\n});\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n */\nSelfUtils.wasMediaInactiveOrReleased = (oldSelf: any = {}, changedSelf: any) =>\n oldSelf.joinedWith &&\n oldSelf.joinedWith.state === _JOINED_ &&\n changedSelf.joinedWith.state === _LEFT_ &&\n (changedSelf.joinedWith.reason === MEETING_END_REASON.INACTIVE ||\n changedSelf.joinedWith.reason === MEETING_END_REASON.MEDIA_RELEASED);\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserUnadmitted = (check: any) =>\n check && check.joinedWith?.intent?.type === _WAIT_ && check.state === _IDLE_;\n\n/**\n * @param {Object} check\n * @returns {Boolean}\n */\nSelfUtils.isLocusUserAdmitted = (check: any) =>\n check && check.joinedWith?.intent?.type !== _WAIT_ && check.state === _JOINED_;\n\n/**\n * @param {Object} self\n * @returns {Boolean}\n * @throws {Error} when self is undefined\n */\nSelfUtils.isUserUnadmitted = (self: object) => {\n if (!self) {\n throw new ParameterError('self must be defined to determine if self is unadmitted as guest.');\n }\n\n return SelfUtils.isLocusUserUnadmitted(self);\n};\n\nSelfUtils.moderatorChanged = (oldSelf, changedSelf) => {\n if (!oldSelf) {\n return true;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned moderator status.'\n );\n }\n\n return oldSelf.moderator !== changedSelf.moderator;\n};\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isDeviceObserving = (oldSelf: any, changedSelf: any) =>\n oldSelf &&\n oldSelf.joinedWith?.intent?.type === _MOVE_MEDIA_ &&\n changedSelf &&\n changedSelf.joinedWith?.intent?.type === _OBSERVE_;\n\n/**\n * @param {Object} oldSelf\n * @param {Object} changedSelf\n * @returns {Boolean}\n * @throws {Error} if changed self was undefined\n */\nSelfUtils.isUserAdmitted = (oldSelf: object, changedSelf: object) => {\n if (!oldSelf) {\n // if there was no previous locus, it couldn't have been admitted yet\n return false;\n }\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self transitioned to admitted as guest.'\n );\n }\n\n return SelfUtils.isLocusUserUnadmitted(oldSelf) && SelfUtils.isLocusUserAdmitted(changedSelf);\n};\n\nSelfUtils.mutedByOthersChanged = (oldSelf, changedSelf) => {\n if (!changedSelf) {\n throw new ParameterError('New self must be defined to determine if self was muted by others.');\n }\n\n if (!oldSelf || oldSelf.remoteMuted === null) {\n if (changedSelf.remoteMuted) {\n return true; // this happens when mute on-entry is enabled\n }\n\n // we don't want to be sending the 'meeting:self:unmutedByOthers' notification on meeting join\n return false;\n }\n\n return (\n changedSelf.remoteMuted !== null &&\n (oldSelf.remoteMuted !== changedSelf.remoteMuted ||\n (changedSelf.remoteMuted && oldSelf.unmuteAllowed !== changedSelf.unmuteAllowed))\n );\n};\n\nSelfUtils.localAudioUnmuteRequestedByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if self received request to unmute.'\n );\n }\n\n return changedSelf.localAudioUnmuteRequested && !oldSelf.localAudioUnmuteRequested;\n};\n\nSelfUtils.localAudioUnmuteRequiredByServer = (oldSelf: any = {}, changedSelf: any) => {\n if (!changedSelf) {\n throw new ParameterError(\n 'New self must be defined to determine if localAudioUnmuteRequired changed.'\n );\n }\n\n return (\n !changedSelf.remoteMuted &&\n changedSelf.localAudioUnmuteRequired &&\n oldSelf.localAudioUnmuteRequired !== changedSelf.localAudioUnmuteRequired\n );\n};\n\n/**\n * extract the sipUrl from the partner\n * @param {Object} partner\n * @param {Object} info\n * @returns {Object}\n */\n\nSelfUtils.getSipUrl = (partner: any, type, sipUri) => {\n // For webex meeting the sipUrl gets updated in info parser\n if (partner && type === _CALL_) {\n return {sipUri: partner.person.sipUrl || partner.person.id};\n }\n\n return {sipUri};\n};\n\nSelfUtils.getMediaStatus = (mediaSessions = []) => {\n const mediaStatus = {\n audio: {},\n video: {},\n share: {},\n };\n\n mediaStatus.audio = mediaSessions.find(\n (media) => media.mediaType === AUDIO && media.mediaContent === MediaContent.main\n );\n mediaStatus.video = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.main\n );\n mediaStatus.share = mediaSessions.find(\n (media) => media.mediaType === VIDEO && media.mediaContent === MediaContent.slides\n );\n\n return mediaStatus;\n};\n\nexport default SelfUtils;\n"],"mappings":"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"}
|
package/dist/media/index.js
CHANGED
|
@@ -1,51 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
-
|
|
11
7
|
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
12
|
-
|
|
13
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
-
|
|
15
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
|
-
|
|
21
13
|
exports.default = void 0;
|
|
22
|
-
|
|
23
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
24
|
-
|
|
25
15
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
26
|
-
|
|
27
16
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
28
|
-
|
|
29
17
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
30
|
-
|
|
31
18
|
var _constants = require("../constants");
|
|
32
|
-
|
|
33
19
|
var _config = _interopRequireDefault(require("../config"));
|
|
34
|
-
|
|
35
20
|
var _config2 = _interopRequireDefault(require("../common/config"));
|
|
36
|
-
|
|
37
21
|
var _media = _interopRequireDefault(require("../common/errors/media"));
|
|
38
|
-
|
|
39
22
|
var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
|
|
40
|
-
|
|
41
23
|
var _internalMediaCoreWrapper = require("./internal-media-core-wrapper");
|
|
42
|
-
|
|
43
24
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
44
|
-
|
|
45
25
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
46
|
-
|
|
47
26
|
var _BrowserDetection = (0, _browserDetection.default)(),
|
|
48
|
-
|
|
27
|
+
isBrowser = _BrowserDetection.isBrowser;
|
|
28
|
+
|
|
49
29
|
/**
|
|
50
30
|
* MediaDirection
|
|
51
31
|
* @typedef {Object} MediaDirection
|
|
@@ -66,7 +46,6 @@ var _BrowserDetection = (0, _browserDetection.default)(),
|
|
|
66
46
|
* @property isSharing
|
|
67
47
|
* @property {Object} sharePreferences
|
|
68
48
|
*/
|
|
69
|
-
|
|
70
49
|
/**
|
|
71
50
|
*
|
|
72
51
|
* @public
|
|
@@ -75,24 +54,22 @@ var _BrowserDetection = (0, _browserDetection.default)(),
|
|
|
75
54
|
* Handles the quirks of each browser.
|
|
76
55
|
* Extends and enhances adapter.js, i.e., the "media" file from the web client.
|
|
77
56
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
57
|
var Media = {};
|
|
58
|
+
|
|
81
59
|
/**
|
|
82
60
|
* @param {boolean} enabled
|
|
83
61
|
* @param {MediaStreamTrack} track
|
|
84
62
|
* @returns {Boolean}
|
|
85
63
|
* @public
|
|
86
64
|
*/
|
|
87
|
-
|
|
88
65
|
Media.setLocalTrack = function (enabled, track) {
|
|
89
66
|
if (track) {
|
|
90
67
|
track.enabled = enabled;
|
|
91
68
|
return true;
|
|
92
69
|
}
|
|
93
|
-
|
|
94
70
|
return false;
|
|
95
71
|
};
|
|
72
|
+
|
|
96
73
|
/**
|
|
97
74
|
* format the media array for send
|
|
98
75
|
* @param {String} mediaId
|
|
@@ -100,8 +77,6 @@ Media.setLocalTrack = function (enabled, track) {
|
|
|
100
77
|
* @param {Boolean} videoMuted
|
|
101
78
|
* @returns {Array} medias
|
|
102
79
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
80
|
Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
|
|
106
81
|
if (mediaId) {
|
|
107
82
|
return [{
|
|
@@ -112,28 +87,24 @@ Media.generateLocalMedias = function (mediaId, audioMuted, videoMuted) {
|
|
|
112
87
|
mediaId: mediaId
|
|
113
88
|
}];
|
|
114
89
|
}
|
|
115
|
-
|
|
116
90
|
return [];
|
|
117
91
|
};
|
|
92
|
+
|
|
118
93
|
/**
|
|
119
94
|
* make a browser call to get the media
|
|
120
95
|
* @param {SendOptions} options
|
|
121
96
|
* @param {Object} config SDK Configuration for meetings plugin
|
|
122
97
|
* @returns {Promise}
|
|
123
98
|
*/
|
|
124
|
-
|
|
125
|
-
|
|
126
99
|
Media.getLocalMedia = function (options, config) {
|
|
127
100
|
var sendAudio = options.sendAudio,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
101
|
+
sendVideo = options.sendVideo,
|
|
102
|
+
sendShare = options.sendShare,
|
|
103
|
+
sharePreferences = options.sharePreferences,
|
|
104
|
+
isSharing = options.isSharing;
|
|
133
105
|
if (sendAudio || sendVideo) {
|
|
134
106
|
return Media.getMedia(sendAudio, sendVideo, config);
|
|
135
107
|
}
|
|
136
|
-
|
|
137
108
|
if (sendShare && !isSharing) {
|
|
138
109
|
return Media.getDisplayMedia({
|
|
139
110
|
sendAudio: false,
|
|
@@ -141,9 +112,9 @@ Media.getLocalMedia = function (options, config) {
|
|
|
141
112
|
sharePreferences: sharePreferences
|
|
142
113
|
}, config);
|
|
143
114
|
}
|
|
144
|
-
|
|
145
115
|
return _promise.default.resolve(undefined);
|
|
146
116
|
};
|
|
117
|
+
|
|
147
118
|
/**
|
|
148
119
|
* creates a webrtc media connection with provided tracks and mediaDirection configuration
|
|
149
120
|
*
|
|
@@ -158,16 +129,13 @@ Media.getLocalMedia = function (options, config) {
|
|
|
158
129
|
* @param {Object} [options.turnServerInfo]
|
|
159
130
|
* @returns {RoapMediaConnection}
|
|
160
131
|
*/
|
|
161
|
-
|
|
162
|
-
|
|
163
132
|
Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
164
133
|
var mediaProperties = options.mediaProperties,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
134
|
+
remoteQualityLevel = options.remoteQualityLevel,
|
|
135
|
+
enableRtx = options.enableRtx,
|
|
136
|
+
enableExtmap = options.enableExtmap,
|
|
137
|
+
turnServerInfo = options.turnServerInfo;
|
|
169
138
|
var iceServers = [];
|
|
170
|
-
|
|
171
139
|
if (turnServerInfo) {
|
|
172
140
|
iceServers.push({
|
|
173
141
|
urls: turnServerInfo.url,
|
|
@@ -175,21 +143,18 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
|
175
143
|
credential: turnServerInfo.password || ''
|
|
176
144
|
});
|
|
177
145
|
}
|
|
178
|
-
|
|
179
146
|
if (isMultistream) {
|
|
180
147
|
return new _internalMediaCoreWrapper.MultistreamRoapMediaConnection({
|
|
181
148
|
iceServers: iceServers
|
|
182
149
|
}, debugId);
|
|
183
150
|
}
|
|
184
|
-
|
|
185
151
|
if (!mediaProperties) {
|
|
186
152
|
throw new Error('mediaProperties have to be provided for non-multistream media connections');
|
|
187
153
|
}
|
|
188
|
-
|
|
189
154
|
var mediaDirection = mediaProperties.mediaDirection,
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
155
|
+
audioTrack = mediaProperties.audioTrack,
|
|
156
|
+
videoTrack = mediaProperties.videoTrack,
|
|
157
|
+
shareTrack = mediaProperties.shareTrack;
|
|
193
158
|
return new _internalMediaCoreWrapper.RoapMediaConnection({
|
|
194
159
|
iceServers: iceServers,
|
|
195
160
|
skipInactiveTransceivers: false,
|
|
@@ -206,7 +171,6 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
|
206
171
|
// it's always been hardcoded in SDK so for now keeping it that way
|
|
207
172
|
disableExtmap: !enableExtmap,
|
|
208
173
|
disableRtx: !enableRtx // see https://bugs.chromium.org/p/chromium/issues/detail?id=1020642 why we might want to remove RTX from SDP
|
|
209
|
-
|
|
210
174
|
}
|
|
211
175
|
}, {
|
|
212
176
|
send: {
|
|
@@ -222,6 +186,7 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
|
222
186
|
}
|
|
223
187
|
}, debugId);
|
|
224
188
|
};
|
|
189
|
+
|
|
225
190
|
/**
|
|
226
191
|
* generates share streams
|
|
227
192
|
* @param {Object} options parameter
|
|
@@ -234,29 +199,26 @@ Media.createMediaConnection = function (isMultistream, debugId, options) {
|
|
|
234
199
|
* @param {Object} config SDK Configuration for meetings plugin
|
|
235
200
|
* @returns {Promise.<MediaStream>}
|
|
236
201
|
*/
|
|
237
|
-
|
|
238
|
-
|
|
239
202
|
Media.getDisplayMedia = function (options) {
|
|
240
203
|
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
241
204
|
// SDK screen share resolution settings from Webex.init
|
|
242
|
-
var customResolution = config.screenResolution || {};
|
|
243
|
-
|
|
244
|
-
var customShareFrameRate = config.screenFrameRate || null;
|
|
245
|
-
|
|
205
|
+
var customResolution = config.screenResolution || {};
|
|
206
|
+
// user defined screen share frame rate
|
|
207
|
+
var customShareFrameRate = config.screenFrameRate || null;
|
|
208
|
+
// user defined share preferences
|
|
246
209
|
var hasSharePreferences = options.sharePreferences;
|
|
247
210
|
var hasCustomConstraints = hasSharePreferences && hasSharePreferences.shareConstraints;
|
|
248
211
|
var hasHighFrameRate = hasSharePreferences && hasSharePreferences.highFrameRate;
|
|
249
212
|
var _Config$meetings = _config.default.meetings,
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
213
|
+
screenResolution = _Config$meetings.screenResolution,
|
|
214
|
+
resolution = _Config$meetings.resolution,
|
|
215
|
+
videoShareFrameRate = _Config$meetings.videoShareFrameRate,
|
|
216
|
+
screenFrameRate = _Config$meetings.screenFrameRate,
|
|
217
|
+
aspectRatio = _Config$meetings.aspectRatio;
|
|
255
218
|
var shareConstraints = {
|
|
256
219
|
cursor: _constants.MEDIA_TRACK_CONSTRAINT.CURSOR.AWLAYS,
|
|
257
220
|
aspectRatio: aspectRatio
|
|
258
221
|
};
|
|
259
|
-
|
|
260
222
|
if (hasCustomConstraints) {
|
|
261
223
|
shareConstraints = hasSharePreferences.shareConstraints;
|
|
262
224
|
} else if (hasHighFrameRate) {
|
|
@@ -271,14 +233,15 @@ Media.getDisplayMedia = function (options) {
|
|
|
271
233
|
height: customResolution.idealHeight || screenResolution.idealHeight,
|
|
272
234
|
width: customResolution.idealWidth || screenResolution.idealWidth
|
|
273
235
|
}, config.screenResolution);
|
|
274
|
-
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// chrome and webkit based browsers (edge, safari) automatically adjust everything
|
|
275
239
|
// and we have noticed higher quality with those browser types
|
|
276
240
|
// firefox specifically has some issues with resolution and frame rate decision making
|
|
277
241
|
// so we are making it optional and configurable (with defaults) for firefox
|
|
278
242
|
// to have higher quality, and for developers to control the values
|
|
279
243
|
// eventually we may have to add the same functionality to chrome, OR conversely, get to with firefox
|
|
280
244
|
|
|
281
|
-
|
|
282
245
|
if (isBrowser('firefox')) {
|
|
283
246
|
var mediaConfig = {
|
|
284
247
|
audio: options.sendAudio,
|
|
@@ -294,22 +257,21 @@ Media.getDisplayMedia = function (options) {
|
|
|
294
257
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1321221
|
|
295
258
|
stream.getVideoTracks()[0].applyConstraints(shareConstraints);
|
|
296
259
|
}
|
|
297
|
-
|
|
298
260
|
return stream;
|
|
299
261
|
});
|
|
300
262
|
}
|
|
301
|
-
|
|
302
263
|
var getDisplayMediaParams = {
|
|
303
264
|
video: options.sendShare ? shareConstraints : false
|
|
304
|
-
};
|
|
305
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
|
|
265
|
+
};
|
|
306
266
|
|
|
267
|
+
// safari doesn't support sending screen share audio
|
|
268
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia
|
|
307
269
|
if (options.sendAudio && isBrowser('safari')) {
|
|
308
270
|
getDisplayMediaParams.audio = options.sendAudio;
|
|
309
271
|
}
|
|
310
|
-
|
|
311
272
|
return navigator.mediaDevices.getDisplayMedia(getDisplayMediaParams);
|
|
312
273
|
};
|
|
274
|
+
|
|
313
275
|
/**
|
|
314
276
|
* generates audio and video using constraints (often called after getSupportedDevices)
|
|
315
277
|
* @param {Object|Boolean} audio gum constraints
|
|
@@ -317,8 +279,6 @@ Media.getDisplayMedia = function (options) {
|
|
|
317
279
|
* @param {Object} config SDK Configuration for meetings plugin
|
|
318
280
|
* @returns {Object} {streams}
|
|
319
281
|
*/
|
|
320
|
-
|
|
321
|
-
|
|
322
282
|
Media.getMedia = function (audio, video, config) {
|
|
323
283
|
var defaultWidth = {
|
|
324
284
|
ideal: config.resolution.idealWidth,
|
|
@@ -346,16 +306,15 @@ Media.getMedia = function (audio, video, config) {
|
|
|
346
306
|
facingMode: video.facingMode ? video.facingMode : undefined
|
|
347
307
|
} : false,
|
|
348
308
|
fake: process.env.NODE_ENV === 'test' // Special case to get fake media for Firefox browser for testing
|
|
349
|
-
|
|
350
309
|
};
|
|
310
|
+
|
|
351
311
|
return navigator.mediaDevices.getUserMedia(mediaConfig).catch(function (err) {
|
|
352
312
|
var logPath = 'Media:index#getMedia --> navigator.mediaDevices.getUserMedia';
|
|
353
|
-
|
|
354
313
|
_loggerProxy.default.logger.error("".concat(logPath, " failed - ").concat(err, " (").concat(err.constraint, ")"));
|
|
355
|
-
|
|
356
314
|
throw err;
|
|
357
315
|
});
|
|
358
316
|
};
|
|
317
|
+
|
|
359
318
|
/**
|
|
360
319
|
* Checks if the machine has at least one audio or video device (Dont use this for screen share)
|
|
361
320
|
* @param {object} [options]
|
|
@@ -368,11 +327,9 @@ Media.getMedia = function (audio, video, config) {
|
|
|
368
327
|
* sendVideo: true/false
|
|
369
328
|
*}
|
|
370
329
|
*/
|
|
371
|
-
|
|
372
|
-
|
|
373
330
|
Media.getSupportedDevice = function (_ref) {
|
|
374
331
|
var sendAudio = _ref.sendAudio,
|
|
375
|
-
|
|
332
|
+
sendVideo = _ref.sendVideo;
|
|
376
333
|
return _promise.default.resolve().then(function () {
|
|
377
334
|
if (!navigator.mediaDevices || navigator.mediaDevices.enumerateDevices === undefined) {
|
|
378
335
|
return {
|
|
@@ -380,7 +337,6 @@ Media.getSupportedDevice = function (_ref) {
|
|
|
380
337
|
sendVideo: false
|
|
381
338
|
};
|
|
382
339
|
}
|
|
383
|
-
|
|
384
340
|
return navigator.mediaDevices.enumerateDevices().then(function (devices) {
|
|
385
341
|
var supported = {
|
|
386
342
|
audio: devices.filter(function (device) {
|
|
@@ -397,40 +353,35 @@ Media.getSupportedDevice = function (_ref) {
|
|
|
397
353
|
});
|
|
398
354
|
});
|
|
399
355
|
};
|
|
356
|
+
|
|
400
357
|
/**
|
|
401
358
|
* proxy to browser navigator.mediaDevices.enumerateDevices()
|
|
402
359
|
* @returns {Promise}
|
|
403
360
|
*/
|
|
404
|
-
|
|
405
|
-
|
|
406
361
|
Media.getDevices = function () {
|
|
407
362
|
if (navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
|
|
408
363
|
return navigator.mediaDevices.enumerateDevices();
|
|
409
364
|
}
|
|
410
|
-
|
|
411
365
|
return _promise.default.reject(new _media.default('enumerateDevices not supported.'));
|
|
412
366
|
};
|
|
367
|
+
|
|
413
368
|
/**
|
|
414
369
|
*
|
|
415
370
|
* Toggle a specific stream
|
|
416
371
|
* noop as of now, does nothing
|
|
417
372
|
* @returns {null}
|
|
418
373
|
*/
|
|
419
|
-
|
|
420
|
-
|
|
421
374
|
Media.toggleStream = function () {};
|
|
375
|
+
|
|
422
376
|
/**
|
|
423
377
|
* Stop input stream
|
|
424
378
|
* @param {MediaTrack} track A media stream
|
|
425
379
|
* @returns {null}
|
|
426
380
|
*/
|
|
427
|
-
|
|
428
|
-
|
|
429
381
|
Media.stopTracks = function (track) {
|
|
430
382
|
if (!track) {
|
|
431
383
|
return _promise.default.resolve();
|
|
432
384
|
}
|
|
433
|
-
|
|
434
385
|
return _promise.default.resolve().then(function () {
|
|
435
386
|
if (track && track.stop) {
|
|
436
387
|
try {
|
|
@@ -441,6 +392,7 @@ Media.stopTracks = function (track) {
|
|
|
441
392
|
}
|
|
442
393
|
});
|
|
443
394
|
};
|
|
395
|
+
|
|
444
396
|
/**
|
|
445
397
|
*
|
|
446
398
|
* Stop input stream
|
|
@@ -448,21 +400,17 @@ Media.stopTracks = function (track) {
|
|
|
448
400
|
* @returns {null}
|
|
449
401
|
* @deprecated after v1.89.3
|
|
450
402
|
*/
|
|
451
|
-
|
|
452
|
-
|
|
453
403
|
Media.stopStream = function (stream) {
|
|
454
404
|
_loggerProxy.default.logger.warn('Media:index#stopStream --> [DEPRECATION WARNING]: stopStream has been deprecated after v1.89.3');
|
|
455
|
-
|
|
456
405
|
if (!stream) {
|
|
457
406
|
return _promise.default.resolve();
|
|
458
407
|
}
|
|
408
|
+
|
|
459
409
|
/*
|
|
460
410
|
* To release local media
|
|
461
411
|
* 1) Chrome requires all tracks to be stopped (stream.stop got deprecated)
|
|
462
412
|
* 2) Firefox requires the stream to be stopped
|
|
463
413
|
*/
|
|
464
|
-
|
|
465
|
-
|
|
466
414
|
return _promise.default.resolve().then(function () {
|
|
467
415
|
if (stream.getTracks) {
|
|
468
416
|
stream.getTracks().forEach(function (track) {
|
|
@@ -473,6 +421,7 @@ Media.stopStream = function (stream) {
|
|
|
473
421
|
}
|
|
474
422
|
});
|
|
475
423
|
};
|
|
424
|
+
|
|
476
425
|
/**
|
|
477
426
|
* generates streams for audio video and share
|
|
478
427
|
* @param {object} mediaSetting parameter
|
|
@@ -489,8 +438,6 @@ Media.stopStream = function (stream) {
|
|
|
489
438
|
* @param {Object} config SDK Config
|
|
490
439
|
* @returns {Array} [localStream, shareStream]
|
|
491
440
|
*/
|
|
492
|
-
|
|
493
|
-
|
|
494
441
|
Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, config) {
|
|
495
442
|
return Media.getLocalMedia({
|
|
496
443
|
sendAudio: mediaSetting.sendAudio ? audioVideo.audio || mediaSetting.sendAudio : false,
|
|
@@ -505,7 +452,6 @@ Media.getUserMedia = function (mediaSetting, audioVideo, sharePreferences, confi
|
|
|
505
452
|
});
|
|
506
453
|
});
|
|
507
454
|
};
|
|
508
|
-
|
|
509
455
|
var _default = Media;
|
|
510
456
|
exports.default = _default;
|
|
511
457
|
//# sourceMappingURL=index.js.map
|