@webex/plugin-meetings 2.60.0-next.1 → 2.60.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +1 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/controls-options-manager/enums.js +2 -1
  6. package/dist/controls-options-manager/enums.js.map +1 -1
  7. package/dist/interpretation/index.js +1 -1
  8. package/dist/interpretation/siLanguage.js +1 -1
  9. package/dist/meeting/in-meeting-actions.js +2 -0
  10. package/dist/meeting/in-meeting-actions.js.map +1 -1
  11. package/dist/meeting/index.js +155 -103
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/meeting-info/meeting-info-v2.js +3 -0
  14. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  15. package/dist/meeting-info/utilv2.js +14 -29
  16. package/dist/meeting-info/utilv2.js.map +1 -1
  17. package/dist/meetings/collection.js +17 -0
  18. package/dist/meetings/collection.js.map +1 -1
  19. package/dist/meetings/index.js +13 -0
  20. package/dist/meetings/index.js.map +1 -1
  21. package/dist/metrics/constants.js +1 -0
  22. package/dist/metrics/constants.js.map +1 -1
  23. package/dist/reconnection-manager/index.js +26 -26
  24. package/dist/reconnection-manager/index.js.map +1 -1
  25. package/dist/rtcMetrics/index.js +25 -0
  26. package/dist/rtcMetrics/index.js.map +1 -1
  27. package/dist/statsAnalyzer/index.js +21 -1
  28. package/dist/statsAnalyzer/index.js.map +1 -1
  29. package/dist/statsAnalyzer/mqaUtil.js +16 -16
  30. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  31. package/dist/webinar/index.js +1 -1
  32. package/package.json +21 -22
  33. package/src/constants.ts +10 -4
  34. package/src/controls-options-manager/enums.ts +2 -0
  35. package/src/meeting/in-meeting-actions.ts +4 -0
  36. package/src/meeting/index.ts +140 -92
  37. package/src/meeting-info/meeting-info-v2.ts +4 -0
  38. package/src/meeting-info/utilv2.ts +6 -19
  39. package/src/meetings/collection.ts +13 -0
  40. package/src/meetings/index.ts +11 -0
  41. package/src/metrics/constants.ts +1 -0
  42. package/src/reconnection-manager/index.ts +62 -66
  43. package/src/rtcMetrics/index.ts +24 -0
  44. package/src/statsAnalyzer/index.ts +30 -1
  45. package/src/statsAnalyzer/mqaUtil.ts +17 -14
  46. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -0
  47. package/test/unit/spec/meeting/index.js +1058 -158
  48. package/test/unit/spec/meeting/muteState.js +2 -1
  49. package/test/unit/spec/meeting-info/meetinginfov2.js +28 -0
  50. package/test/unit/spec/meetings/collection.js +12 -0
  51. package/test/unit/spec/meetings/index.js +306 -118
  52. package/test/unit/spec/member/util.js +0 -31
  53. package/test/unit/spec/reconnection-manager/index.js +25 -10
  54. package/test/unit/spec/rtcMetrics/index.ts +20 -0
  55. package/test/unit/spec/stats-analyzer/index.js +12 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","InMeetingActions","exports","default","_createClass2","_this","_classCallCheck2","_defineProperty2","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canSetMuteOnEntry","canUnsetMuteOnEntry","canSetDisallowUnmute","canSetMuted","canUnsetMuted","canSetPresenter","canUnsetPresenter","canUnsetDisallowUnmute","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isSaveTranscriptsEnabled","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canSendReactions","canManageBreakout","canBroadcastMessageToBreakout","canAdmitLobbyToBreakout","isBreakoutPreassignmentsEnabled","canUserAskForHelp","canUserRenameSelfAndObserved","canUserRenameOthers","canMuteAll","canUnmuteAll","canEnableHardMute","canDisableHardMute","canEnableMuteOnEntry","canDisableMuteOnEntry","canEnableReactions","canDisableReactions","canEnableReactionDisplayNames","canDisableReactionDisplayNames","canUpdateShareControl","canEnableViewTheParticipantsList","canDisableViewTheParticipantsList","canEnableRaiseHand","canDisableRaiseHand","canEnableVideo","canDisableVideo","canShareFile","canShareApplication","canShareCamera","canShareDesktop","canShareContent","canTransferFile","canDoVideo","canAnnotate","canUseVoip","supportHQV","supportHDV","canShareWhiteBoard","actions","old","get","changed","_keys","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canSetMuteOnEntry?: boolean;\n canUnsetMuteOnEntry?: boolean;\n canSetDisallowUnmute?: boolean;\n canUnsetDisallowUnmute?: boolean;\n canSetMuted?: boolean;\n canUnsetMuted?: boolean;\n canAssignHost?: boolean;\n canSetPresenter?: boolean;\n canUnsetPresenter?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isSaveTranscriptsEnabled?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canSendReactions?: boolean;\n canManageBreakout?: boolean;\n canBroadcastMessageToBreakout?: boolean;\n canAdmitLobbyToBreakout?: boolean;\n isBreakoutPreassignmentsEnabled?: boolean;\n canUserAskForHelp?: boolean;\n canUserRenameSelfAndObserved?: boolean;\n canUserRenameOthers?: boolean;\n canMuteAll?: boolean;\n canUnmuteAll?: boolean;\n canEnableHardMute?: boolean;\n canDisableHardMute?: boolean;\n canEnableMuteOnEntry?: boolean;\n canDisableMuteOnEntry?: boolean;\n canEnableReactions?: boolean;\n canDisableReactions?: boolean;\n canEnableReactionDisplayNames?: boolean;\n canDisableReactionDisplayNames?: boolean;\n canUpdateShareControl?: boolean;\n canEnableViewTheParticipantsList?: boolean;\n canDisableViewTheParticipantsList?: boolean;\n canEnableRaiseHand?: boolean;\n canDisableRaiseHand?: boolean;\n canEnableVideo?: boolean;\n canDisableVideo?: boolean;\n canShareFile?: boolean;\n canShareApplication?: boolean;\n canShareCamera?: boolean;\n canShareDesktop?: boolean;\n canShareContent?: boolean;\n canTransferFile?: boolean;\n canDoVideo?: boolean;\n canAnnotate?: boolean;\n canUseVoip?: boolean;\n supportHQV?: boolean;\n supportHDV?: boolean;\n canShareWhiteBoard?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canSetMuteOnEntry = null;\n\n canSetPresenter = null;\n\n canUnsetPresenter = null;\n\n canUnsetMuteOnEntry = null;\n\n canSetDisallowUnmute = null;\n\n canUnsetDisallowUnmute = null;\n\n canSetMuted = null;\n\n canUnsetMuted = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isSaveTranscriptsEnabled = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canSendReactions = null;\n\n canManageBreakout = null;\n\n canBroadcastMessageToBreakout = null;\n\n canAdmitLobbyToBreakout = null;\n\n isBreakoutPreassignmentsEnabled = null;\n\n canUserAskForHelp = null;\n\n canUserRenameSelfAndObserved = null;\n\n canUserRenameOthers = null;\n\n canMuteAll = null;\n\n canUnmuteAll = null;\n\n canEnableHardMute = null;\n\n canDisableHardMute = null;\n\n canEnableMuteOnEntry = null;\n\n canDisableMuteOnEntry = null;\n\n canEnableReactions = null;\n\n canDisableReactions = null;\n\n canEnableReactionDisplayNames = null;\n\n canDisableReactionDisplayNames = null;\n\n canUpdateShareControl = null;\n\n canEnableViewTheParticipantsList = null;\n\n canDisableViewTheParticipantsList = null;\n\n canEnableRaiseHand = null;\n\n canDisableRaiseHand = null;\n\n canEnableVideo = null;\n\n canDisableVideo = null;\n\n canShareFile = null;\n\n canShareApplication = null;\n\n canShareCamera = null;\n\n canShareDesktop = null;\n\n canShareContent = null;\n\n canTransferFile = null;\n\n canDoVideo = null;\n\n canAnnotate = null;\n\n canUseVoip = null;\n\n supportHQV = null;\n\n supportHDV = null;\n\n canShareWhiteBoard = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canSetMuteOnEntry: this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: this.canSetDisallowUnmute,\n canSetMuted: this.canSetMuted,\n canUnsetMuted: this.canUnsetMuted,\n canSetPresenter: this.canSetPresenter,\n canUnsetPresenter: this.canUnsetPresenter,\n canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canSendReactions: this.canSendReactions,\n canManageBreakout: this.canManageBreakout,\n canBroadcastMessageToBreakout: this.canBroadcastMessageToBreakout,\n canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,\n isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,\n canUserAskForHelp: this.canUserAskForHelp,\n canUserRenameSelfAndObserved: this.canUserRenameSelfAndObserved,\n canUserRenameOthers: this.canUserRenameOthers,\n canMuteAll: this.canMuteAll,\n canUnmuteAll: this.canUnmuteAll,\n canEnableHardMute: this.canEnableHardMute,\n canDisableHardMute: this.canDisableHardMute,\n canEnableMuteOnEntry: this.canEnableMuteOnEntry,\n canDisableMuteOnEntry: this.canDisableMuteOnEntry,\n canEnableReactions: this.canEnableReactions,\n canDisableReactions: this.canDisableReactions,\n canEnableReactionDisplayNames: this.canEnableReactionDisplayNames,\n canDisableReactionDisplayNames: this.canDisableReactionDisplayNames,\n canUpdateShareControl: this.canUpdateShareControl,\n canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,\n canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,\n canEnableRaiseHand: this.canEnableRaiseHand,\n canDisableRaiseHand: this.canDisableRaiseHand,\n canEnableVideo: this.canEnableVideo,\n canDisableVideo: this.canDisableVideo,\n canShareFile: this.canShareFile,\n canShareApplication: this.canShareApplication,\n canShareCamera: this.canShareCamera,\n canShareDesktop: this.canShareDesktop,\n canShareContent: this.canShareContent,\n canTransferFile: this.canTransferFile,\n canDoVideo: this.canDoVideo,\n canAnnotate: this.canAnnotate,\n canUseVoip: this.canUseVoip,\n supportHQV: this.supportHQV,\n supportHDV: this.supportHDV,\n canShareWhiteBoard: this.canShareWhiteBoard,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","InMeetingActions","exports","default","_createClass2","_this","_classCallCheck2","_defineProperty2","MEETINGS","canInviteNewParticipants","canAdmitParticipant","canLock","canUnlock","canAssignHost","canSetMuteOnEntry","canUnsetMuteOnEntry","canSetDisallowUnmute","canSetMuted","canUnsetMuted","canSetPresenter","canUnsetPresenter","canUnsetDisallowUnmute","canStartRecording","canPauseRecording","canResumeRecording","canStopRecording","canRaiseHand","canLowerAllHands","canLowerSomeoneElsesHand","bothLeaveAndEndMeetingAvailable","canEnableClosedCaption","canStartTranscribing","canStopTranscribing","isClosedCaptionActive","isSaveTranscriptsEnabled","isWebexAssistantActive","canViewCaptionPanel","isRealTimeTranslationEnabled","canSelectSpokenLanguages","waitingForOthersToJoin","canSendReactions","canManageBreakout","canBroadcastMessageToBreakout","canAdmitLobbyToBreakout","isBreakoutPreassignmentsEnabled","canUserAskForHelp","canUserRenameSelfAndObserved","canUserRenameOthers","canMuteAll","canUnmuteAll","canEnableHardMute","canDisableHardMute","canEnableMuteOnEntry","canDisableMuteOnEntry","canEnableReactions","canDisableReactions","canEnableReactionDisplayNames","canDisableReactionDisplayNames","canUpdateShareControl","canEnableViewTheParticipantsList","canDisableViewTheParticipantsList","canEnableRaiseHand","canDisableRaiseHand","canEnableVideo","canDisableVideo","canShareFile","canShareApplication","canShareCamera","canShareDesktop","canShareContent","canTransferFile","canChat","canDoVideo","canAnnotate","canUseVoip","supportHQV","supportHDV","canShareWhiteBoard","actions","old","get","changed","_keys","forEach","actionKey","actionValue","undefined"],"sources":["in-meeting-actions.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\n/**\n * IInMeetingActions\n * Type for In-Meeting Actions\n */\ninterface IInMeetingActions {\n canInviteNewParticipants?: boolean;\n canAdmitParticipant?: boolean;\n canLock?: boolean;\n canUnlock?: boolean;\n canSetMuteOnEntry?: boolean;\n canUnsetMuteOnEntry?: boolean;\n canSetDisallowUnmute?: boolean;\n canUnsetDisallowUnmute?: boolean;\n canSetMuted?: boolean;\n canUnsetMuted?: boolean;\n canAssignHost?: boolean;\n canSetPresenter?: boolean;\n canUnsetPresenter?: boolean;\n canStartRecording?: boolean;\n canPauseRecording?: boolean;\n canResumeRecording?: boolean;\n canStopRecording?: boolean;\n canRaiseHand?: boolean;\n canLowerAllHands?: boolean;\n canLowerSomeoneElsesHand?: boolean;\n bothLeaveAndEndMeetingAvailable?: boolean;\n canEnableClosedCaption?: boolean;\n canStartTranscribing?: boolean;\n canStopTranscribing?: boolean;\n isClosedCaptionActive?: boolean;\n isSaveTranscriptsEnabled?: boolean;\n isWebexAssistantActive?: boolean;\n canViewCaptionPanel?: boolean;\n isRealTimeTranslationEnabled?: boolean;\n canSelectSpokenLanguages?: boolean;\n waitingForOthersToJoin?: boolean;\n canSendReactions?: boolean;\n canManageBreakout?: boolean;\n canBroadcastMessageToBreakout?: boolean;\n canAdmitLobbyToBreakout?: boolean;\n isBreakoutPreassignmentsEnabled?: boolean;\n canUserAskForHelp?: boolean;\n canUserRenameSelfAndObserved?: boolean;\n canUserRenameOthers?: boolean;\n canMuteAll?: boolean;\n canUnmuteAll?: boolean;\n canEnableHardMute?: boolean;\n canDisableHardMute?: boolean;\n canEnableMuteOnEntry?: boolean;\n canDisableMuteOnEntry?: boolean;\n canEnableReactions?: boolean;\n canDisableReactions?: boolean;\n canEnableReactionDisplayNames?: boolean;\n canDisableReactionDisplayNames?: boolean;\n canUpdateShareControl?: boolean;\n canEnableViewTheParticipantsList?: boolean;\n canDisableViewTheParticipantsList?: boolean;\n canEnableRaiseHand?: boolean;\n canDisableRaiseHand?: boolean;\n canEnableVideo?: boolean;\n canDisableVideo?: boolean;\n canShareFile?: boolean;\n canShareApplication?: boolean;\n canShareCamera?: boolean;\n canShareDesktop?: boolean;\n canShareContent?: boolean;\n canTransferFile?: boolean;\n canChat?: boolean;\n canDoVideo?: boolean;\n canAnnotate?: boolean;\n canUseVoip?: boolean;\n supportHQV?: boolean;\n supportHDV?: boolean;\n canShareWhiteBoard?: boolean;\n}\n\n/**\n * @class InMeetingActions\n */\nexport default class InMeetingActions implements IInMeetingActions {\n namespace = MEETINGS;\n\n canInviteNewParticipants = null;\n\n canAdmitParticipant = null;\n\n canLock = null;\n\n canUnlock = null;\n\n canAssignHost = null;\n\n canStartRecording = null;\n\n canPauseRecording = null;\n\n canResumeRecording = null;\n\n canStopRecording = null;\n\n canSetMuteOnEntry = null;\n\n canSetPresenter = null;\n\n canUnsetPresenter = null;\n\n canUnsetMuteOnEntry = null;\n\n canSetDisallowUnmute = null;\n\n canUnsetDisallowUnmute = null;\n\n canSetMuted = null;\n\n canUnsetMuted = null;\n\n canRaiseHand = null;\n\n canLowerAllHands = null;\n\n canLowerSomeoneElsesHand = null;\n\n bothLeaveAndEndMeetingAvailable = null;\n\n canEnableClosedCaption = null;\n\n canStartTranscribing = null;\n\n canStopTranscribing = null;\n\n isClosedCaptionActive = null;\n\n isSaveTranscriptsEnabled = null;\n\n isWebexAssistantActive = null;\n\n canViewCaptionPanel = null;\n\n isRealTimeTranslationEnabled = null;\n\n canSelectSpokenLanguages = null;\n\n waitingForOthersToJoin = null;\n\n canSendReactions = null;\n\n canManageBreakout = null;\n\n canBroadcastMessageToBreakout = null;\n\n canAdmitLobbyToBreakout = null;\n\n isBreakoutPreassignmentsEnabled = null;\n\n canUserAskForHelp = null;\n\n canUserRenameSelfAndObserved = null;\n\n canUserRenameOthers = null;\n\n canMuteAll = null;\n\n canUnmuteAll = null;\n\n canEnableHardMute = null;\n\n canDisableHardMute = null;\n\n canEnableMuteOnEntry = null;\n\n canDisableMuteOnEntry = null;\n\n canEnableReactions = null;\n\n canDisableReactions = null;\n\n canEnableReactionDisplayNames = null;\n\n canDisableReactionDisplayNames = null;\n\n canUpdateShareControl = null;\n\n canEnableViewTheParticipantsList = null;\n\n canDisableViewTheParticipantsList = null;\n\n canEnableRaiseHand = null;\n\n canDisableRaiseHand = null;\n\n canEnableVideo = null;\n\n canDisableVideo = null;\n\n canShareFile = null;\n\n canShareApplication = null;\n\n canShareCamera = null;\n\n canShareDesktop = null;\n\n canShareContent = null;\n\n canTransferFile = null;\n\n canChat = null;\n\n canDoVideo = null;\n\n canAnnotate = null;\n\n canUseVoip = null;\n\n supportHQV = null;\n\n supportHDV = null;\n\n canShareWhiteBoard = null;\n\n /**\n * Returns all meeting action options\n * @returns {Object}\n */\n get = (): IInMeetingActions => ({\n canInviteNewParticipants: this.canInviteNewParticipants,\n canAdmitParticipant: this.canAdmitParticipant,\n canLock: this.canLock,\n canUnlock: this.canUnlock,\n canAssignHost: this.canAssignHost,\n canSetMuteOnEntry: this.canSetMuteOnEntry,\n canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,\n canSetDisallowUnmute: this.canSetDisallowUnmute,\n canSetMuted: this.canSetMuted,\n canUnsetMuted: this.canUnsetMuted,\n canSetPresenter: this.canSetPresenter,\n canUnsetPresenter: this.canUnsetPresenter,\n canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,\n canStartRecording: this.canStartRecording,\n canPauseRecording: this.canPauseRecording,\n canResumeRecording: this.canResumeRecording,\n canStopRecording: this.canStopRecording,\n canRaiseHand: this.canRaiseHand,\n canLowerAllHands: this.canLowerAllHands,\n canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,\n bothLeaveAndEndMeetingAvailable: this.bothLeaveAndEndMeetingAvailable,\n canEnableClosedCaption: this.canEnableClosedCaption,\n canStartTranscribing: this.canStartTranscribing,\n canStopTranscribing: this.canStopTranscribing,\n isClosedCaptionActive: this.isClosedCaptionActive,\n isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,\n isWebexAssistantActive: this.isWebexAssistantActive,\n canViewCaptionPanel: this.canViewCaptionPanel,\n isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,\n canSelectSpokenLanguages: this.canSelectSpokenLanguages,\n waitingForOthersToJoin: this.waitingForOthersToJoin,\n canSendReactions: this.canSendReactions,\n canManageBreakout: this.canManageBreakout,\n canBroadcastMessageToBreakout: this.canBroadcastMessageToBreakout,\n canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,\n isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,\n canUserAskForHelp: this.canUserAskForHelp,\n canUserRenameSelfAndObserved: this.canUserRenameSelfAndObserved,\n canUserRenameOthers: this.canUserRenameOthers,\n canMuteAll: this.canMuteAll,\n canUnmuteAll: this.canUnmuteAll,\n canEnableHardMute: this.canEnableHardMute,\n canDisableHardMute: this.canDisableHardMute,\n canEnableMuteOnEntry: this.canEnableMuteOnEntry,\n canDisableMuteOnEntry: this.canDisableMuteOnEntry,\n canEnableReactions: this.canEnableReactions,\n canDisableReactions: this.canDisableReactions,\n canEnableReactionDisplayNames: this.canEnableReactionDisplayNames,\n canDisableReactionDisplayNames: this.canDisableReactionDisplayNames,\n canUpdateShareControl: this.canUpdateShareControl,\n canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,\n canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,\n canEnableRaiseHand: this.canEnableRaiseHand,\n canDisableRaiseHand: this.canDisableRaiseHand,\n canEnableVideo: this.canEnableVideo,\n canDisableVideo: this.canDisableVideo,\n canShareFile: this.canShareFile,\n canShareApplication: this.canShareApplication,\n canShareCamera: this.canShareCamera,\n canShareDesktop: this.canShareDesktop,\n canShareContent: this.canShareContent,\n canTransferFile: this.canTransferFile,\n canChat: this.canChat,\n canDoVideo: this.canDoVideo,\n canAnnotate: this.canAnnotate,\n canUseVoip: this.canUseVoip,\n supportHQV: this.supportHQV,\n supportHDV: this.supportHDV,\n canShareWhiteBoard: this.canShareWhiteBoard,\n });\n\n /**\n *\n * @param actions\n * @returns\n */\n\n set = (actions: Partial<IInMeetingActions>) => {\n const old = this.get();\n\n let changed = false;\n\n Object.keys(old).forEach((actionKey) => {\n const actionValue = actions[actionKey];\n\n if (actionValue !== undefined && actionValue !== old[actionKey]) {\n changed = true;\n this[actionKey] = actionValue;\n }\n });\n\n return changed;\n };\n}\n"],"mappings":"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"}
@@ -493,6 +493,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
493
493
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deferSDPAnswer", void 0);
494
494
  // used for waiting for a response
495
495
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sdpResponseTimer", void 0);
496
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasMediaConnectionConnectedAtLeastOnce", void 0);
496
497
  /**
497
498
  * Callback called when a relay event is received from meeting LLM Connection
498
499
  * @param {RelayEvent} e Event object coming from LLM Connection
@@ -784,36 +785,24 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
784
785
  });
785
786
  _this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.CONNECTION_STATE_CHANGED, function (event) {
786
787
  var connectionFailed = function connectionFailed() {
787
- // we know the media connection failed and browser will not attempt to recover it any more
788
- // so reset the timer as it's not needed anymore, we want to reconnect immediately
789
- _this.reconnectionManager.resetReconnectionTimer();
790
- _this.reconnect({
791
- networkDisconnect: true
792
- });
793
- // @ts-ignore
794
- _this.webex.internal.newMetrics.submitClientEvent({
795
- name: 'client.ice.end',
796
- payload: {
797
- canProceed: false,
798
- icePhase: 'IN_MEETING',
799
- errors: [
800
- // @ts-ignore
801
- _this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
802
- clientErrorCode: _internalPluginMetrics.CALL_DIAGNOSTIC_CONFIG.ICE_FAILURE_CLIENT_CODE
803
- })]
804
- },
805
- options: {
806
- meetingId: _this.id
807
- }
808
- });
809
- _this.uploadLogs({
810
- file: 'peer-connection-manager/index',
811
- function: 'connectionFailed'
812
- });
813
788
  _metrics.default.sendBehavioralMetric(_constants2.default.CONNECTION_FAILURE, {
814
789
  correlation_id: _this.correlationId,
815
- locus_id: _this.locusId
790
+ locus_id: _this.locusId,
791
+ networkStatus: _this.networkStatus,
792
+ hasMediaConnectionConnectedAtLeastOnce: _this.hasMediaConnectionConnectedAtLeastOnce
816
793
  });
794
+ if (_this.hasMediaConnectionConnectedAtLeastOnce) {
795
+ // we know the media connection failed and browser will not attempt to recover it any more
796
+ // so reset the timer as it's not needed anymore, we want to reconnect immediately
797
+ _this.reconnectionManager.resetReconnectionTimer();
798
+ _this.reconnect({
799
+ networkDisconnect: true
800
+ });
801
+ _this.uploadLogs({
802
+ file: 'peer-connection-manager/index',
803
+ function: 'connectionFailed'
804
+ });
805
+ }
817
806
  };
818
807
  _loggerProxy.default.logger.info("Meeting:index#setupMediaConnectionListeners --> correlationId=".concat(_this.correlationId, " connection state changed to ").concat(event.state));
819
808
 
@@ -821,22 +810,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
821
810
  var cdl = _this.webex.internal.newMetrics.callDiagnosticLatencies;
822
811
  switch (event.state) {
823
812
  case _internalMediaCore.ConnectionState.Connecting:
824
- // @ts-ignore
825
- _this.webex.internal.newMetrics.submitClientEvent({
826
- name: 'client.ice.start',
827
- options: {
828
- meetingId: _this.id
829
- }
830
- });
813
+ if (!_this.hasMediaConnectionConnectedAtLeastOnce) {
814
+ // Only send CA event for join flow if we haven't successfully connected media yet
815
+ // @ts-ignore
816
+ _this.webex.internal.newMetrics.submitClientEvent({
817
+ name: 'client.ice.start',
818
+ options: {
819
+ meetingId: _this.id
820
+ }
821
+ });
822
+ }
831
823
  break;
832
824
  case _internalMediaCore.ConnectionState.Connected:
833
- // @ts-ignore
834
- _this.webex.internal.newMetrics.submitClientEvent({
835
- name: 'client.ice.end',
836
- options: {
837
- meetingId: _this.id
838
- }
839
- });
825
+ if (!_this.hasMediaConnectionConnectedAtLeastOnce) {
826
+ // Only send CA event for join flow if we haven't successfully connected media yet
827
+ // @ts-ignore
828
+ _this.webex.internal.newMetrics.submitClientEvent({
829
+ name: 'client.ice.end',
830
+ payload: {
831
+ canProceed: true,
832
+ icePhase: 'JOIN_MEETING_FINAL'
833
+ },
834
+ options: {
835
+ meetingId: _this.id
836
+ }
837
+ });
838
+ }
840
839
  _metrics.default.sendBehavioralMetric(_constants2.default.CONNECTION_SUCCESS, {
841
840
  correlation_id: _this.correlationId,
842
841
  locus_id: _this.locusId,
@@ -845,6 +844,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
845
844
  _this.setNetworkStatus(_constants.NETWORK_STATUS.CONNECTED);
846
845
  _this.reconnectionManager.iceReconnected();
847
846
  _this.statsAnalyzer.startAnalyzer(_this.mediaProperties.webrtcMediaConnection);
847
+ _this.hasMediaConnectionConnectedAtLeastOnce = true;
848
848
  break;
849
849
  case _internalMediaCore.ConnectionState.Disconnected:
850
850
  _this.setNetworkStatus(_constants.NETWORK_STATUS.DISCONNECTED);
@@ -1702,13 +1702,14 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1702
1702
  */
1703
1703
  _this.networkQualityMonitor = null;
1704
1704
  /**
1705
+ * Indicates network status of the webrtc media connection
1705
1706
  * @instance
1706
1707
  * @type {String}
1707
1708
  * @readonly
1708
1709
  * @public
1709
1710
  * @memberof Meeting
1710
1711
  */
1711
- _this.networkStatus = null;
1712
+ _this.networkStatus = undefined;
1712
1713
  /**
1713
1714
  * Passing only info as we send basic info for meeting added event
1714
1715
  * @instance
@@ -1925,6 +1926,15 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
1925
1926
  * @memberof Meeting
1926
1927
  */
1927
1928
  _this.retriedWithTurnServer = false;
1929
+
1930
+ /**
1931
+ * Whether or not the media connection has ever successfully connected.
1932
+ * @instance
1933
+ * @type {boolean}
1934
+ * @private
1935
+ * @memberof Meeting
1936
+ */
1937
+ _this.hasMediaConnectionConnectedAtLeastOnce = false;
1928
1938
  return _this;
1929
1939
  }
1930
1940
 
@@ -2494,7 +2504,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2494
2504
 
2495
2505
  /**
2496
2506
  * sets the network status on meeting object
2497
- * @param {String} networkStatus
2507
+ * @param {NETWORK_STATUS} networkStatus
2498
2508
  * @private
2499
2509
  * @returns {undefined}
2500
2510
  * @memberof Meeting
@@ -3820,6 +3830,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3820
3830
  requiredPolicies: [_constants.SELF_POLICY.SUPPORT_FILE_TRANSFER],
3821
3831
  policies: this.selfUserPolicies
3822
3832
  }),
3833
+ canChat: _util4.default.hasPolicies({
3834
+ requiredPolicies: [_constants.SELF_POLICY.SUPPORT_CHAT],
3835
+ policies: this.selfUserPolicies
3836
+ }),
3823
3837
  canShareApplication: _util4.default.hasHints({
3824
3838
  requiredHints: [_constants.DISPLAY_HINTS.SHARE_APPLICATION],
3825
3839
  displayHints: this.userDisplayHints
@@ -4351,6 +4365,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4351
4365
  this.receiveSlotManager.reset();
4352
4366
  this.mediaProperties.webrtcMediaConnection.close();
4353
4367
  this.sendSlotManager.reset();
4368
+ this.setNetworkStatus(undefined);
4354
4369
  }
4355
4370
  this.audio = null;
4356
4371
  this.video = null;
@@ -4682,11 +4697,27 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4682
4697
  function: 'reconnect'
4683
4698
  }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
4684
4699
  return this.reconnectionManager.reconnect(options).then(function () {
4700
+ return _this29.waitForRemoteSDPAnswer();
4701
+ }).then(function () {
4702
+ return _this29.waitForMediaConnectionConnected();
4703
+ }).then(function () {
4685
4704
  _triggerProxy.default.trigger(_this29, {
4686
4705
  file: 'meeting/index',
4687
4706
  function: 'reconnect'
4688
4707
  }, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
4689
4708
  _loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
4709
+
4710
+ // @ts-ignore
4711
+ _this29.webex.internal.newMetrics.submitClientEvent({
4712
+ name: 'client.media.recovered',
4713
+ payload: {
4714
+ recoveredBy: 'new'
4715
+ },
4716
+ options: {
4717
+ meetingId: _this29.id
4718
+ }
4719
+ });
4720
+ _this29.reconnectionManager.setStatus(_constants.RECONNECTION.STATE.COMPLETE);
4690
4721
  }).catch(function (error) {
4691
4722
  _triggerProxy.default.trigger(_this29, {
4692
4723
  file: 'meeting/index',
@@ -4938,7 +4969,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
4938
4969
  name: 'client.call.initiated',
4939
4970
  payload: {
4940
4971
  trigger: 'user-interaction',
4941
- isRoapCallEnabled: true
4972
+ isRoapCallEnabled: true,
4973
+ pstnAudioType: options === null || options === void 0 ? void 0 : options.pstnAudioType
4942
4974
  },
4943
4975
  options: {
4944
4976
  meetingId: this.id
@@ -5085,7 +5117,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5085
5117
  }).then(function (join) {
5086
5118
  if (isBrowser) {
5087
5119
  // @ts-ignore - config coming from registerPlugin
5088
- if (_this32.config.receiveTranscription || _this32.receiveTranscription) {
5120
+ if (_this32.config.receiveTranscription || options.receiveTranscription) {
5089
5121
  if (_this32.isTranscriptionSupported()) {
5090
5122
  _loggerProxy.default.logger.info('Meeting:index#join --> Attempting to enabled to receive transcription!');
5091
5123
  _this32.startTranscription().catch(function (error) {
@@ -5639,27 +5671,30 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5639
5671
  case 5:
5640
5672
  _context20.prev = 5;
5641
5673
  _context20.t0 = _context20["catch"](0);
5642
- // @ts-ignore
5643
- this.webex.internal.newMetrics.submitClientEvent({
5644
- name: 'client.ice.end',
5645
- payload: {
5646
- canProceed: !this.turnServerUsed,
5647
- // If we haven't done turn tls retry yet we will proceed with join attempt
5648
- icePhase: this.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY',
5649
- errors: [
5650
- // @ts-ignore
5651
- this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
5652
- clientErrorCode: _internalPluginMetrics.CallDiagnosticUtils.generateClientErrorCodeForIceFailure({
5653
- signalingState: ((_this$mediaProperties6 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties6 === void 0 ? void 0 : (_this$mediaProperties7 = _this$mediaProperties6.multistreamConnection) === null || _this$mediaProperties7 === void 0 ? void 0 : (_this$mediaProperties8 = _this$mediaProperties7.pc) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.pc) === null || _this$mediaProperties9 === void 0 ? void 0 : _this$mediaProperties9.signalingState) || ((_this$mediaProperties10 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.mediaConnection) === null || _this$mediaProperties11 === void 0 ? void 0 : (_this$mediaProperties12 = _this$mediaProperties11.pc) === null || _this$mediaProperties12 === void 0 ? void 0 : _this$mediaProperties12.signalingState) || 'unknown',
5654
- iceConnectionState: ((_this$mediaProperties13 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties13 === void 0 ? void 0 : (_this$mediaProperties14 = _this$mediaProperties13.multistreamConnection) === null || _this$mediaProperties14 === void 0 ? void 0 : (_this$mediaProperties15 = _this$mediaProperties14.pc) === null || _this$mediaProperties15 === void 0 ? void 0 : (_this$mediaProperties16 = _this$mediaProperties15.pc) === null || _this$mediaProperties16 === void 0 ? void 0 : _this$mediaProperties16.iceConnectionState) || ((_this$mediaProperties17 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties17 === void 0 ? void 0 : (_this$mediaProperties18 = _this$mediaProperties17.mediaConnection) === null || _this$mediaProperties18 === void 0 ? void 0 : (_this$mediaProperties19 = _this$mediaProperties18.pc) === null || _this$mediaProperties19 === void 0 ? void 0 : _this$mediaProperties19.iceConnectionState) || 'unknown',
5655
- turnServerUsed: this.turnServerUsed
5656
- })
5657
- })]
5658
- },
5659
- options: {
5660
- meetingId: this.id
5661
- }
5662
- });
5674
+ if (!this.hasMediaConnectionConnectedAtLeastOnce) {
5675
+ // Only send CA event for join flow if we haven't successfully connected media yet
5676
+ // @ts-ignore
5677
+ this.webex.internal.newMetrics.submitClientEvent({
5678
+ name: 'client.ice.end',
5679
+ payload: {
5680
+ canProceed: !this.turnServerUsed,
5681
+ // If we haven't done turn tls retry yet we will proceed with join attempt
5682
+ icePhase: this.turnServerUsed ? 'JOIN_MEETING_FINAL' : 'JOIN_MEETING_RETRY',
5683
+ errors: [
5684
+ // @ts-ignore
5685
+ this.webex.internal.newMetrics.callDiagnosticMetrics.getErrorPayloadForClientErrorCode({
5686
+ clientErrorCode: _internalPluginMetrics.CallDiagnosticUtils.generateClientErrorCodeForIceFailure({
5687
+ signalingState: ((_this$mediaProperties6 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties6 === void 0 ? void 0 : (_this$mediaProperties7 = _this$mediaProperties6.multistreamConnection) === null || _this$mediaProperties7 === void 0 ? void 0 : (_this$mediaProperties8 = _this$mediaProperties7.pc) === null || _this$mediaProperties8 === void 0 ? void 0 : (_this$mediaProperties9 = _this$mediaProperties8.pc) === null || _this$mediaProperties9 === void 0 ? void 0 : _this$mediaProperties9.signalingState) || ((_this$mediaProperties10 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties10 === void 0 ? void 0 : (_this$mediaProperties11 = _this$mediaProperties10.mediaConnection) === null || _this$mediaProperties11 === void 0 ? void 0 : (_this$mediaProperties12 = _this$mediaProperties11.pc) === null || _this$mediaProperties12 === void 0 ? void 0 : _this$mediaProperties12.signalingState) || 'unknown',
5688
+ iceConnectionState: ((_this$mediaProperties13 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties13 === void 0 ? void 0 : (_this$mediaProperties14 = _this$mediaProperties13.multistreamConnection) === null || _this$mediaProperties14 === void 0 ? void 0 : (_this$mediaProperties15 = _this$mediaProperties14.pc) === null || _this$mediaProperties15 === void 0 ? void 0 : (_this$mediaProperties16 = _this$mediaProperties15.pc) === null || _this$mediaProperties16 === void 0 ? void 0 : _this$mediaProperties16.iceConnectionState) || ((_this$mediaProperties17 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties17 === void 0 ? void 0 : (_this$mediaProperties18 = _this$mediaProperties17.mediaConnection) === null || _this$mediaProperties18 === void 0 ? void 0 : (_this$mediaProperties19 = _this$mediaProperties18.pc) === null || _this$mediaProperties19 === void 0 ? void 0 : _this$mediaProperties19.iceConnectionState) || 'unknown',
5689
+ turnServerUsed: this.turnServerUsed
5690
+ })
5691
+ })]
5692
+ },
5693
+ options: {
5694
+ meetingId: this.id
5695
+ }
5696
+ });
5697
+ }
5663
5698
  throw new Error("Timed out waiting for media connection to be connected, correlationId=".concat(this.correlationId));
5664
5699
  case 9:
5665
5700
  case "end":
@@ -5800,16 +5835,34 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5800
5835
  key: "retryWithForcedTurnDiscovery",
5801
5836
  value: (function () {
5802
5837
  var _retryWithForcedTurnDiscovery = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(remoteMediaManagerConfig, bundlePolicy) {
5838
+ var LOG_HEADER;
5803
5839
  return _regenerator.default.wrap(function _callee23$(_context23) {
5804
5840
  while (1) switch (_context23.prev = _context23.next) {
5805
5841
  case 0:
5806
5842
  this.retriedWithTurnServer = true;
5807
- _context23.next = 3;
5843
+ LOG_HEADER = 'Meeting:index#addMedia():retryWithForcedTurnDiscovery -->';
5844
+ _context23.next = 4;
5808
5845
  return this.cleanUpBeforeRetryWithTurnServer();
5809
- case 3:
5810
- _context23.next = 5;
5846
+ case 4:
5847
+ _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_RETRY, {
5848
+ correlation_id: this.correlationId,
5849
+ state: this.state,
5850
+ meetingState: this.meetingState,
5851
+ reason: 'forcingTurnTls'
5852
+ });
5853
+ if (!(this.state === _constants.MEETING_STATE.STATES.LEFT)) {
5854
+ _context23.next = 9;
5855
+ break;
5856
+ }
5857
+ _loggerProxy.default.logger.info("".concat(LOG_HEADER, " meeting state was LEFT after first attempt to establish media connection. Attempting to rejoin. "));
5858
+ _context23.next = 9;
5859
+ return this.join({
5860
+ rejoin: true
5861
+ });
5862
+ case 9:
5863
+ _context23.next = 11;
5811
5864
  return this.retryEstablishMediaConnectionWithForcedTurnDiscovery(remoteMediaManagerConfig, bundlePolicy);
5812
- case 5:
5865
+ case 11:
5813
5866
  case "end":
5814
5867
  return _context23.stop();
5815
5868
  }
@@ -6112,31 +6165,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6112
6165
  case 0:
6113
6166
  options = _args28.length > 0 && _args28[0] !== undefined ? _args28[0] : {};
6114
6167
  this.retriedWithTurnServer = false;
6168
+ this.hasMediaConnectionConnectedAtLeastOnce = false;
6115
6169
  LOG_HEADER = 'Meeting:index#addMedia -->';
6116
6170
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " called with: ").concat((0, _stringify.default)(options)));
6117
6171
  if (!(this.meetingState !== _constants.FULL_STATE.ACTIVE)) {
6118
- _context28.next = 6;
6172
+ _context28.next = 7;
6119
6173
  break;
6120
6174
  }
6121
6175
  throw new _webexErrors.MeetingNotActiveError();
6122
- case 6:
6176
+ case 7:
6123
6177
  if (!_util.default.isUserInLeftState(this.locusInfo)) {
6124
- _context28.next = 8;
6178
+ _context28.next = 9;
6125
6179
  break;
6126
6180
  }
6127
6181
  throw new _webexErrors.UserNotJoinedError();
6128
- case 8:
6182
+ case 9:
6129
6183
  localStreams = options.localStreams, _options$audioEnabled = options.audioEnabled, audioEnabled = _options$audioEnabled === void 0 ? true : _options$audioEnabled, _options$videoEnabled = options.videoEnabled, videoEnabled = _options$videoEnabled === void 0 ? true : _options$videoEnabled, _options$shareAudioEn = options.shareAudioEnabled, shareAudioEnabled = _options$shareAudioEn === void 0 ? true : _options$shareAudioEn, _options$shareVideoEn = options.shareVideoEnabled, shareVideoEnabled = _options$shareVideoEn === void 0 ? true : _options$shareVideoEn, remoteMediaManagerConfig = options.remoteMediaManagerConfig, bundlePolicy = options.bundlePolicy, allowMediaInLobby = options.allowMediaInLobby;
6130
6184
  this.allowMediaInLobby = options === null || options === void 0 ? void 0 : options.allowMediaInLobby;
6131
6185
 
6132
6186
  // If the user is unjoined or guest waiting in lobby dont allow the user to addMedia
6133
6187
  // @ts-ignore - isUserUnadmitted coming from SelfUtil
6134
6188
  if (!(this.isUserUnadmitted && !this.wirelessShare && !allowMediaInLobby)) {
6135
- _context28.next = 12;
6189
+ _context28.next = 13;
6136
6190
  break;
6137
6191
  }
6138
6192
  throw new _webexErrors.UserInLobbyError();
6139
- case 12:
6193
+ case 13:
6140
6194
  // @ts-ignore
6141
6195
  this.webex.internal.newMetrics.submitClientEvent({
6142
6196
  name: 'client.media.capabilities',
@@ -6191,32 +6245,32 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6191
6245
  });
6192
6246
  this.audio = (0, _muteState.createMuteState)(_constants.AUDIO, this, audioEnabled);
6193
6247
  this.video = (0, _muteState.createMuteState)(_constants.VIDEO, this, videoEnabled);
6194
- _context28.prev = 17;
6195
- _context28.next = 20;
6248
+ _context28.prev = 18;
6249
+ _context28.next = 21;
6196
6250
  return this.setUpLocalStreamReferences(localStreams);
6197
- case 20:
6251
+ case 21:
6198
6252
  this.setMercuryListener();
6199
6253
  this.createStatsAnalyzer();
6200
- _context28.next = 24;
6254
+ _context28.next = 25;
6201
6255
  return this.establishMediaConnection(remoteMediaManagerConfig, bundlePolicy, false);
6202
- case 24:
6203
- _context28.next = 26;
6256
+ case 25:
6257
+ _context28.next = 27;
6204
6258
  return Meeting.handleDeviceLogging();
6205
- case 26:
6259
+ case 27:
6206
6260
  if (!this.mediaProperties.hasLocalShareStream()) {
6207
- _context28.next = 29;
6261
+ _context28.next = 30;
6208
6262
  break;
6209
6263
  }
6210
- _context28.next = 29;
6264
+ _context28.next = 30;
6211
6265
  return this.enqueueScreenShareFloorRequest();
6212
- case 29:
6213
- _context28.next = 31;
6266
+ case 30:
6267
+ _context28.next = 32;
6214
6268
  return this.mediaProperties.getCurrentConnectionType();
6215
- case 31:
6269
+ case 32:
6216
6270
  connectionType = _context28.sent;
6217
- _context28.next = 34;
6271
+ _context28.next = 35;
6218
6272
  return this.webex.meetings.reachability.getReachabilityMetrics();
6219
- case 34:
6273
+ case 35:
6220
6274
  reachabilityStats = _context28.sent;
6221
6275
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, _objectSpread({
6222
6276
  correlation_id: this.correlationId,
@@ -6236,17 +6290,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6236
6290
 
6237
6291
  // We can log ReceiveSlot SSRCs only after the SDP exchange, so doing it here:
6238
6292
  (_this$remoteMediaMana = this.remoteMediaManager) === null || _this$remoteMediaMana === void 0 ? void 0 : _this$remoteMediaMana.logAllReceiveSlots();
6239
- _context28.next = 53;
6293
+ _context28.next = 54;
6240
6294
  break;
6241
- case 41:
6242
- _context28.prev = 41;
6243
- _context28.t0 = _context28["catch"](17);
6295
+ case 42:
6296
+ _context28.prev = 42;
6297
+ _context28.t0 = _context28["catch"](18);
6244
6298
  _loggerProxy.default.logger.error("".concat(LOG_HEADER, " failed to establish media connection: "), _context28.t0);
6245
6299
 
6246
6300
  // @ts-ignore
6247
- _context28.next = 46;
6301
+ _context28.next = 47;
6248
6302
  return this.webex.meetings.reachability.getReachabilityMetrics();
6249
- case 46:
6303
+ case 47:
6250
6304
  reachabilityMetrics = _context28.sent;
6251
6305
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, _objectSpread({
6252
6306
  correlation_id: this.correlationId,
@@ -6262,9 +6316,9 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6262
6316
  connectionState: ((_this$mediaProperties27 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties27 === void 0 ? void 0 : (_this$mediaProperties28 = _this$mediaProperties27.multistreamConnection) === null || _this$mediaProperties28 === void 0 ? void 0 : (_this$mediaProperties29 = _this$mediaProperties28.pc) === null || _this$mediaProperties29 === void 0 ? void 0 : (_this$mediaProperties30 = _this$mediaProperties29.pc) === null || _this$mediaProperties30 === void 0 ? void 0 : _this$mediaProperties30.connectionState) || ((_this$mediaProperties31 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties31 === void 0 ? void 0 : (_this$mediaProperties32 = _this$mediaProperties31.mediaConnection) === null || _this$mediaProperties32 === void 0 ? void 0 : (_this$mediaProperties33 = _this$mediaProperties32.pc) === null || _this$mediaProperties33 === void 0 ? void 0 : _this$mediaProperties33.connectionState) || 'unknown',
6263
6317
  iceConnectionState: ((_this$mediaProperties34 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties34 === void 0 ? void 0 : (_this$mediaProperties35 = _this$mediaProperties34.multistreamConnection) === null || _this$mediaProperties35 === void 0 ? void 0 : (_this$mediaProperties36 = _this$mediaProperties35.pc) === null || _this$mediaProperties36 === void 0 ? void 0 : (_this$mediaProperties37 = _this$mediaProperties36.pc) === null || _this$mediaProperties37 === void 0 ? void 0 : _this$mediaProperties37.iceConnectionState) || ((_this$mediaProperties38 = this.mediaProperties.webrtcMediaConnection) === null || _this$mediaProperties38 === void 0 ? void 0 : (_this$mediaProperties39 = _this$mediaProperties38.mediaConnection) === null || _this$mediaProperties39 === void 0 ? void 0 : (_this$mediaProperties40 = _this$mediaProperties39.pc) === null || _this$mediaProperties40 === void 0 ? void 0 : _this$mediaProperties40.iceConnectionState) || 'unknown'
6264
6318
  }, reachabilityMetrics));
6265
- _context28.next = 50;
6319
+ _context28.next = 51;
6266
6320
  return this.cleanUpOnAddMediaFailure();
6267
- case 50:
6321
+ case 51:
6268
6322
  // Upload logs on error while adding media
6269
6323
  _triggerProxy.default.trigger(this, {
6270
6324
  file: 'meeting/index',
@@ -6276,11 +6330,11 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6276
6330
  });
6277
6331
  }
6278
6332
  throw _context28.t0;
6279
- case 53:
6333
+ case 54:
6280
6334
  case "end":
6281
6335
  return _context28.stop();
6282
6336
  }
6283
- }, _callee28, this, [[17, 41]]);
6337
+ }, _callee28, this, [[18, 42]]);
6284
6338
  }));
6285
6339
  function addMedia() {
6286
6340
  return _addMedia.apply(this, arguments);
@@ -6700,9 +6754,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6700
6754
  uri: whiteboard.url
6701
6755
  }).catch(function (error) {
6702
6756
  _loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
6703
- _metrics.default.sendBehavioralMetric(
6704
- // @ts-ignore - check if STOP_WHITEBOARD_SHARE_FAILURE exists
6705
- _constants2.default.STOP_WHITEBOARD_SHARE_FAILURE, {
6757
+ _metrics.default.sendBehavioralMetric(_constants2.default.MEETING_STOP_WHITEBOARD_SHARE_FAILURE, {
6706
6758
  correlation_id: _this45.correlationId,
6707
6759
  locus_id: _this45.locusUrl.split('/').pop(),
6708
6760
  reason: error.message,