@webex/plugin-meetings 2.60.0-next.5 → 2.60.0-next.7

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 (126) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/breakouts/breakout.d.ts +8 -0
  5. package/dist/breakouts/breakout.js +1 -1
  6. package/dist/breakouts/collection.d.ts +5 -0
  7. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  8. package/dist/breakouts/events.d.ts +8 -0
  9. package/dist/breakouts/index.d.ts +5 -0
  10. package/dist/breakouts/index.js +1 -1
  11. package/dist/breakouts/request.d.ts +22 -0
  12. package/dist/breakouts/utils.d.ts +15 -0
  13. package/dist/common/browser-detection.d.ts +9 -0
  14. package/dist/common/collection.d.ts +48 -0
  15. package/dist/common/config.d.ts +2 -0
  16. package/dist/common/errors/captcha-error.d.ts +15 -0
  17. package/dist/common/errors/intent-to-join.d.ts +16 -0
  18. package/dist/common/errors/join-meeting.d.ts +17 -0
  19. package/dist/common/errors/media.d.ts +15 -0
  20. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  21. package/dist/common/errors/parameter.d.ts +15 -0
  22. package/dist/common/errors/password-error.d.ts +15 -0
  23. package/dist/common/errors/permission.d.ts +14 -0
  24. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  25. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  26. package/dist/common/errors/reconnection.d.ts +15 -0
  27. package/dist/common/errors/stats.d.ts +15 -0
  28. package/dist/common/errors/webex-errors.d.ts +93 -0
  29. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  30. package/dist/common/events/events-scope.d.ts +17 -0
  31. package/dist/common/events/events.d.ts +12 -0
  32. package/dist/common/events/trigger-proxy.d.ts +2 -0
  33. package/dist/common/events/util.d.ts +2 -0
  34. package/dist/common/logs/logger-config.d.ts +2 -0
  35. package/dist/common/logs/logger-proxy.d.ts +2 -0
  36. package/dist/common/logs/request.d.ts +36 -0
  37. package/dist/common/queue.d.ts +34 -0
  38. package/dist/config.d.ts +71 -0
  39. package/dist/constants.d.ts +1072 -0
  40. package/dist/controls-options-manager/constants.d.ts +4 -0
  41. package/dist/controls-options-manager/enums.d.ts +15 -0
  42. package/dist/controls-options-manager/index.d.ts +136 -0
  43. package/dist/controls-options-manager/types.d.ts +43 -0
  44. package/dist/controls-options-manager/util.d.ts +1 -0
  45. package/dist/index.d.ts +7 -0
  46. package/dist/interpretation/collection.d.ts +5 -0
  47. package/dist/interpretation/index.d.ts +5 -0
  48. package/dist/interpretation/index.js +1 -1
  49. package/dist/interpretation/siLanguage.d.ts +5 -0
  50. package/dist/interpretation/siLanguage.js +1 -1
  51. package/dist/locus-info/controlsUtils.d.ts +2 -0
  52. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  53. package/dist/locus-info/fullState.d.ts +2 -0
  54. package/dist/locus-info/hostUtils.d.ts +2 -0
  55. package/dist/locus-info/index.d.ts +322 -0
  56. package/dist/locus-info/infoUtils.d.ts +2 -0
  57. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  58. package/dist/locus-info/parser.d.ts +272 -0
  59. package/dist/locus-info/selfUtils.d.ts +2 -0
  60. package/dist/media/index.d.ts +34 -0
  61. package/dist/media/properties.d.ts +93 -0
  62. package/dist/media/util.d.ts +2 -0
  63. package/dist/mediaQualityMetrics/config.d.ts +365 -0
  64. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  65. package/dist/meeting/index.d.ts +1715 -0
  66. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  67. package/dist/meeting/muteState.d.ts +184 -0
  68. package/dist/meeting/request.d.ts +290 -0
  69. package/dist/meeting/request.type.d.ts +11 -0
  70. package/dist/meeting/state.d.ts +9 -0
  71. package/dist/meeting/util.d.ts +103 -0
  72. package/dist/meeting-info/collection.d.ts +20 -0
  73. package/dist/meeting-info/index.d.ts +69 -0
  74. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  75. package/dist/meeting-info/request.d.ts +22 -0
  76. package/dist/meeting-info/util.d.ts +2 -0
  77. package/dist/meeting-info/utilv2.d.ts +2 -0
  78. package/dist/meetings/collection.d.ts +40 -0
  79. package/dist/meetings/index.d.ts +378 -0
  80. package/dist/meetings/meetings.types.d.ts +4 -0
  81. package/dist/meetings/request.d.ts +27 -0
  82. package/dist/meetings/util.d.ts +18 -0
  83. package/dist/member/index.d.ts +160 -0
  84. package/dist/member/member.types.d.ts +11 -0
  85. package/dist/member/types.d.ts +32 -0
  86. package/dist/member/util.d.ts +2 -0
  87. package/dist/members/collection.d.ts +29 -0
  88. package/dist/members/index.d.ts +353 -0
  89. package/dist/members/request.d.ts +114 -0
  90. package/dist/members/types.d.ts +25 -0
  91. package/dist/members/util.d.ts +215 -0
  92. package/dist/metrics/constants.d.ts +68 -0
  93. package/dist/metrics/index.d.ts +45 -0
  94. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  95. package/dist/multistream/receiveSlot.d.ts +68 -0
  96. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  97. package/dist/multistream/remoteMedia.d.ts +72 -0
  98. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  99. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  100. package/dist/multistream/sendSlotManager.d.ts +61 -0
  101. package/dist/networkQualityMonitor/index.d.ts +70 -0
  102. package/dist/personal-meeting-room/index.d.ts +47 -0
  103. package/dist/personal-meeting-room/request.d.ts +14 -0
  104. package/dist/personal-meeting-room/util.d.ts +2 -0
  105. package/dist/reachability/index.d.ts +194 -0
  106. package/dist/reachability/request.d.ts +39 -0
  107. package/dist/reactions/constants.d.ts +3 -0
  108. package/dist/reactions/reactions.d.ts +4 -0
  109. package/dist/reactions/reactions.type.d.ts +52 -0
  110. package/dist/reconnection-manager/index.d.ts +136 -0
  111. package/dist/recording-controller/enums.d.ts +7 -0
  112. package/dist/recording-controller/index.d.ts +207 -0
  113. package/dist/recording-controller/util.d.ts +14 -0
  114. package/dist/roap/index.d.ts +78 -0
  115. package/dist/roap/request.d.ts +41 -0
  116. package/dist/roap/turnDiscovery.d.ts +92 -0
  117. package/dist/rtcMetrics/constants.d.ts +4 -0
  118. package/dist/rtcMetrics/index.d.ts +54 -0
  119. package/dist/statsAnalyzer/global.d.ts +36 -0
  120. package/dist/statsAnalyzer/index.d.ts +201 -0
  121. package/dist/statsAnalyzer/mqaUtil.d.ts +24 -0
  122. package/dist/transcription/index.d.ts +64 -0
  123. package/dist/webinar/collection.d.ts +16 -0
  124. package/dist/webinar/index.d.ts +5 -0
  125. package/dist/webinar/index.js +1 -1
  126. package/package.json +21 -21
@@ -0,0 +1,74 @@
1
+ import { WebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ export type MediaRequestType = 'RoapMessage' | 'LocalMute';
4
+ export type RequestResult = any;
5
+ export type RoapRequest = {
6
+ type: 'RoapMessage';
7
+ selfUrl: string;
8
+ mediaId: string;
9
+ roapMessage: any;
10
+ reachability: any;
11
+ sequence?: any;
12
+ joinCookie: any;
13
+ ipVersion?: IP_VERSION;
14
+ };
15
+ export type LocalMuteRequest = {
16
+ type: 'LocalMute';
17
+ selfUrl: string;
18
+ mediaId: string;
19
+ sequence?: any;
20
+ muteOptions: {
21
+ audioMuted?: boolean;
22
+ videoMuted?: boolean;
23
+ };
24
+ };
25
+ export type Request = RoapRequest | LocalMuteRequest;
26
+ export type Config = {
27
+ device: {
28
+ url: string;
29
+ deviceType: string;
30
+ countryCode?: string;
31
+ regionCode?: string;
32
+ };
33
+ correlationId: string;
34
+ preferTranscoding: boolean;
35
+ };
36
+ /**
37
+ * This class manages all /media API requests to Locus. Every call to that
38
+ * Locus API has to go through this class.
39
+ */
40
+ export declare class LocusMediaRequest extends WebexPlugin {
41
+ private config;
42
+ private latestAudioMuted?;
43
+ private latestVideoMuted?;
44
+ private isRequestInProgress;
45
+ private queuedRequests;
46
+ private confluenceState;
47
+ /**
48
+ * Constructor
49
+ */
50
+ constructor(config: Config, options: any);
51
+ /**
52
+ * Add a request to the internal queue.
53
+ */
54
+ private addToQueue;
55
+ /**
56
+ * Takes the next request from the queue and executes it. Once that
57
+ * request is completed, the next one will be taken from the queue
58
+ * and executed and this is repeated until the queue is empty.
59
+ */
60
+ private executeNextQueuedRequest;
61
+ /**
62
+ * Returns latest requested audio and video mute values. If they have never been
63
+ * requested, we assume audio/video to be muted.
64
+ */
65
+ private getLatestMuteState;
66
+ /**
67
+ * Prepares the uri and body for the media request to be sent to Locus
68
+ */
69
+ private sendHttpRequest;
70
+ /**
71
+ * Sends a media request to Locus
72
+ */
73
+ send(request: Request): Promise<RequestResult>;
74
+ }
@@ -0,0 +1,184 @@
1
+ import { ServerMuteReason } from '@webex/media-helpers';
2
+ export declare const createMuteState: (type: any, meeting: any, enabled: boolean) => MuteState;
3
+ /** The purpose of this class is to manage the local and remote mute state and make sure that the server state always matches
4
+ the last requested state by the client.
5
+
6
+ More info about Locus muting API: https://sqbu-github.cisco.com/pages/WebExSquared/locus/guides/mute.html#
7
+
8
+ This class is exported only for unit tests. It should never be instantiated directly with new MuteState(), instead createMuteState() should be called
9
+ */
10
+ export declare class MuteState {
11
+ state: {
12
+ client: {
13
+ enabled: boolean;
14
+ localMute: boolean;
15
+ };
16
+ server: {
17
+ localMute: boolean;
18
+ remoteMute: boolean;
19
+ unmuteAllowed: boolean;
20
+ };
21
+ syncToServerInProgress: boolean;
22
+ };
23
+ type: any;
24
+ ignoreMuteStateChange: boolean;
25
+ /**
26
+ * Constructor
27
+ *
28
+ * @param {String} type - audio or video
29
+ * @param {Object} meeting - the meeting object (used for reading current remote mute status)
30
+ * @param {boolean} enabled - whether the client audio/video is enabled at all
31
+ */
32
+ constructor(type: string, meeting: any, enabled: boolean);
33
+ /**
34
+ * Starts the mute state machine. Needs to be called after a new MuteState instance is created.
35
+ *
36
+ * @param {Object} meeting - the meeting object
37
+ * @returns {void}
38
+ */
39
+ init(meeting: any): void;
40
+ /**
41
+ * This method needs to be called whenever the local audio/video stream has changed.
42
+ * It reapplies the remote mute state onto the new stream and also reads the current
43
+ * local mute state from the stream and updates the internal state machine and sends
44
+ * any required requests to the server.
45
+ *
46
+ * @param {Object} meeting - the meeting object
47
+ * @returns {void}
48
+ */
49
+ handleLocalStreamChange(meeting: any): void;
50
+ /**
51
+ * Enables/disables audio/video
52
+ *
53
+ * @param {Object} meeting - the meeting object
54
+ * @param {boolean} enable
55
+ * @returns {void}
56
+ */
57
+ enable(meeting: any, enable: boolean): void;
58
+ /**
59
+ * Mutes/unmutes local stream
60
+ *
61
+ * @param {Object} meeting - the meeting object
62
+ * @param {Boolean} mute - true to mute the stream, false to unmute it
63
+ * @param {ServerMuteReason} reason - reason for muting/unmuting
64
+ * @returns {void}
65
+ */
66
+ private muteLocalStream;
67
+ /**
68
+ * This method should be called when the local stream mute state is changed
69
+ * @public
70
+ * @memberof MuteState
71
+ * @param {Object} [meeting] the meeting object
72
+ * @param {Boolean} [mute] true for muting, false for unmuting request
73
+ * @returns {void}
74
+ */
75
+ handleLocalStreamMuteStateChange(meeting?: object, mute?: boolean): void;
76
+ /**
77
+ * Applies the current mute state to the local stream (by enabling or disabling it accordingly)
78
+ *
79
+ * @public
80
+ * @param {Object} [meeting] the meeting object
81
+ * @param {ServerMuteReason} reason - reason why we're applying our client state to the local stream
82
+ * @memberof MuteState
83
+ * @returns {void}
84
+ */
85
+ applyClientStateLocally(meeting?: any, reason?: ServerMuteReason): void;
86
+ /** Returns true if client is locally muted - it takes into account not just the client local mute state,
87
+ * but also whether audio/video is enabled at all
88
+ *
89
+ * @returns {boolean}
90
+ */
91
+ private getClientLocalMuteState;
92
+ /**
93
+ * Updates the server local and remote mute values so that they match the current client desired state.
94
+ *
95
+ * @private
96
+ * @param {Object} [meeting] the meeting object
97
+ * @memberof MuteState
98
+ * @returns {void}
99
+ */
100
+ private applyClientStateToServer;
101
+ /**
102
+ * Sets the local mute value in the server
103
+ *
104
+ * @private
105
+ * @param {Object} [meeting] the meeting object
106
+ * @memberof MuteState
107
+ * @returns {Promise}
108
+ */
109
+ private sendLocalMuteRequestToServer;
110
+ /**
111
+ * Sets the remote mute value in the server
112
+ *
113
+ * @private
114
+ * @param {Object} [meeting] the meeting object
115
+ * @memberof MuteState
116
+ * @returns {Promise}
117
+ */
118
+ private sendRemoteMuteRequestToServer;
119
+ /** Sets the mute state of the local stream according to what server thinks is our state
120
+ * @param {Object} meeting - the meeting object
121
+ * @param {ServerMuteReason} serverMuteReason - reason why we're applying server mute to the local stream
122
+ * @returns {void}
123
+ */
124
+ private applyServerMuteToLocalStream;
125
+ /** Applies the current value for unmute allowed to the underlying stream
126
+ *
127
+ * @param {Meeting} meeting
128
+ * @returns {void}
129
+ */
130
+ private applyUnmuteAllowedToStream;
131
+ /**
132
+ * This method should be called whenever the server remote mute state is changed
133
+ *
134
+ * @public
135
+ * @memberof MuteState
136
+ * @param {Meeting} meeting
137
+ * @param {Boolean} [muted] true if user is remotely muted, false otherwise
138
+ * @param {Boolean} [unmuteAllowed] indicates if user is allowed to unmute self (false when "hard mute" feature is used)
139
+ * @returns {undefined}
140
+ */
141
+ handleServerRemoteMuteUpdate(meeting: any, muted?: boolean, unmuteAllowed?: boolean): void;
142
+ /**
143
+ * This method should be called whenever we receive from the server a requirement to locally unmute
144
+ *
145
+ * @public
146
+ * @memberof MuteState
147
+ * @param {Object} [meeting] the meeting object
148
+ * @returns {undefined}
149
+ */
150
+ handleServerLocalUnmuteRequired(meeting?: object): void;
151
+ /**
152
+ * Returns true if the user is locally or remotely muted.
153
+ * It only checks the mute status, ignoring the fact whether audio/video is enabled.
154
+ *
155
+ * @public
156
+ * @memberof MuteState
157
+ * @returns {Boolean}
158
+ */
159
+ isMuted(): boolean;
160
+ /**
161
+ * Returns true if the user is remotely muted
162
+ *
163
+ * @public
164
+ * @memberof MuteState
165
+ * @returns {Boolean}
166
+ */
167
+ isRemotelyMuted(): boolean;
168
+ /**
169
+ * Returns true if unmute is allowed
170
+ *
171
+ * @public
172
+ * @memberof MuteState
173
+ * @returns {Boolean}
174
+ */
175
+ isUnmuteAllowed(): boolean;
176
+ /**
177
+ * Returns true if the user is locally muted or audio/video is disabled
178
+ *
179
+ * @public
180
+ * @memberof MuteState
181
+ * @returns {Boolean}
182
+ */
183
+ isLocallyMuted(): boolean;
184
+ }
@@ -0,0 +1,290 @@
1
+ import { StatelessWebexPlugin } from '@webex/webex-core';
2
+ import { IP_VERSION } from '../constants';
3
+ import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
4
+ import { AnnotationInfo } from '../annotation/annotation.types';
5
+ /**
6
+ * @class MeetingRequest
7
+ */
8
+ export default class MeetingRequest extends StatelessWebexPlugin {
9
+ changeVideoLayoutDebounced: any;
10
+ meetingRef: WeakRef<any>;
11
+ locusDeltaRequest: (options: object) => Promise<any>;
12
+ buildLocusDeltaRequestOptions: (options: object) => Promise<any>;
13
+ /**
14
+ * Constructor
15
+ * @param {Object} attrs
16
+ * @param {Object} options
17
+ */
18
+ constructor(attrs: any, options: any);
19
+ /**
20
+ * Returns joinCookie from boundedStorage if present.
21
+ * @returns {Object} joinCookie
22
+ */
23
+ private getJoinCookie;
24
+ /**
25
+ * Make a network request to join a meeting
26
+ * @param {Object} options
27
+ * @param {String} options.sipUri
28
+ * @param {String} options.deviceUrl
29
+ * @param {String} options.locusUrl
30
+ * @param {String} options.resourceId,
31
+ * @param {String} options.correlationId
32
+ * @param {boolean} options.ensureConversation
33
+ * @param {boolean} options.moderator
34
+ * @param {boolean} options.pin
35
+ * @param {boolean} options.moveToResource
36
+ * @param {Object} options.roapMessage
37
+ * @param {boolean} options.breakoutsSupported
38
+ * @param {String} options.locale,
39
+ * @param {Array} options.deviceCapabilities
40
+ * @param {boolean} options.liveAnnotationSupported
41
+ * @returns {Promise}
42
+ */
43
+ joinMeeting(options: {
44
+ sipUri: string;
45
+ deviceUrl: string;
46
+ locusUrl: string;
47
+ locusClusterUrl: string;
48
+ resourceId: string;
49
+ correlationId: string;
50
+ ensureConversation: boolean;
51
+ moderator: boolean;
52
+ pin: boolean;
53
+ moveToResource: boolean;
54
+ roapMessage: any;
55
+ asResourceOccupant: any;
56
+ inviteeAddress: any;
57
+ meetingNumber: any;
58
+ permissionToken: any;
59
+ preferTranscoding: any;
60
+ breakoutsSupported: boolean;
61
+ locale?: string;
62
+ deviceCapabilities?: Array<string>;
63
+ liveAnnotationSupported: boolean;
64
+ ipVersion?: IP_VERSION;
65
+ }): Promise<any>;
66
+ /**
67
+ * Send a request to refresh the captcha
68
+ * @param {Object} options
69
+ * @param {String} options.captchaRefreshUrl
70
+ * @param {String} options.captchaId
71
+ * @returns {Promise}
72
+ * @private
73
+ */
74
+ private refreshCaptcha;
75
+ /**
76
+ * Make a network request to add a dial in device
77
+ * @param {Object} options
78
+ * @param {String} options.correlationId
79
+ * @param {String} options.locusUrl url for the meeting
80
+ * @param {String} options.dialInUrl identifier for the to-be provisioned device
81
+ * @param {String} options.clientUrl identifier for the web device
82
+ * @returns {Promise}
83
+ * @private
84
+ */
85
+ private dialIn;
86
+ /**
87
+ * Make a network request to add a dial out device
88
+ * @param {Object} options
89
+ * @param {String} options.correlationId
90
+ * @param {String} options.locusUrl url for the meeting
91
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
92
+ * @param {String} options.phoneNumber phone number to dial out to
93
+ * @param {String} options.clientUrl identifier for the web device
94
+ * @returns {Promise}
95
+ * @private
96
+ */
97
+ private dialOut;
98
+ /**
99
+ * Sends a requests to get the latest locus DTO, it might be a full Locus or a delta, depending on the url provided
100
+ * @param {Object} options
101
+ * @param {String} options.locusUrl sync url to get ht elatest locus delta
102
+ * @returns {Promise}
103
+ */
104
+ getLocusDTO(options: {
105
+ url: string;
106
+ }): any;
107
+ /**
108
+ * Make a network request to make a provisioned phone leave the meeting
109
+ * @param {Object} options
110
+ * @param {String} options.locusUrl
111
+ * @param {String} options.phoneUrl
112
+ * @param {String} options.correlationId
113
+ * @param {String} options.selfId
114
+ * @returns {Promise}
115
+ * @private
116
+ */
117
+ private disconnectPhoneAudio;
118
+ /**
119
+ * Prepares request options to to leave a meeting
120
+ * @param {Object} options
121
+ * @param {Url} options.locusUrl
122
+ * @param {String} options.selfId
123
+ * @param {Url} options.deviceUrl
124
+ * @param {String} options.resourceId,
125
+ * @param {String} options.correlationId
126
+ * @returns {Object} request options
127
+ */
128
+ prepareLeaveMeetingRequestOptions({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
129
+ locusUrl: string;
130
+ selfId: string;
131
+ deviceUrl: string;
132
+ resourceId: string;
133
+ correlationId: string;
134
+ }): {
135
+ method: string;
136
+ uri: string;
137
+ body: {
138
+ device: {
139
+ deviceType: any;
140
+ url: string;
141
+ };
142
+ usingResource: string;
143
+ correlationId: string;
144
+ };
145
+ };
146
+ /**
147
+ * Make a network request to leave a meeting
148
+ * @param {Object} options
149
+ * @returns {Promise}
150
+ */
151
+ leaveMeeting({ locusUrl, selfId, deviceUrl: url, resourceId, correlationId, }: {
152
+ locusUrl: string;
153
+ selfId: string;
154
+ deviceUrl: string;
155
+ resourceId: string;
156
+ correlationId: string;
157
+ }): Promise<any>;
158
+ /**
159
+ * Builds request options to leave a meeting
160
+ * @param {Object} options
161
+ * @returns {Object} request options
162
+ */
163
+ buildLeaveMeetingRequestOptions(options: any): Promise<any>;
164
+ /**
165
+ * Make a network request to acknowledge a meeting
166
+ * @param {Object} options
167
+ * @param {String} options.locusUrl
168
+ * @param {String} options.deviceUrl
169
+ * @param {String} options.correlationId
170
+ * @returns {Promise}
171
+ */
172
+ acknowledgeMeeting(options: {
173
+ locusUrl: string;
174
+ deviceUrl: string;
175
+ correlationId: string;
176
+ }): Promise<any>;
177
+ /**
178
+ * Makes a network request to lock the meeting
179
+ * @param {Object} options
180
+ * @param {Boolean} options.lock Whether it is locked or not
181
+ * @returns {Promise}
182
+ */
183
+ lockMeeting(options: any): Promise<any>;
184
+ /**
185
+ * Make a network request to decline a meeting
186
+ * @param {Object} options
187
+ * @param {String} options.locusUrl
188
+ * @param {String} options.deviceUrl
189
+ * @param {String} options.reason
190
+ * @returns {Promise}
191
+ */
192
+ declineMeeting(options: {
193
+ locusUrl: string;
194
+ deviceUrl: string;
195
+ reason: string;
196
+ }): Promise<any>;
197
+ /**
198
+ * change the content floor grant
199
+ * @param {Object} options options for floor grant
200
+ * @param {String} options.disposition floor action (granted/released)
201
+ * @param {String} options.personUrl personUrl who is requesting floor
202
+ * @param {String} options.deviceUrl Url of a device
203
+ * @param {String} options.resourceId Populated if you are paired to a device
204
+ * @param {String} options.uri floor grant uri
205
+ * @returns {Promise}
206
+ */
207
+ changeMeetingFloor(options: {
208
+ disposition: string;
209
+ personUrl: string;
210
+ deviceUrl: string;
211
+ resourceId: string;
212
+ uri: string;
213
+ annotationInfo: AnnotationInfo;
214
+ } | any): any;
215
+ /**
216
+ * Sends a request to the DTMF endpoint to send tones
217
+ * @param {Object} options
218
+ * @param {String} options.locusUrl
219
+ * @param {String} options.deviceUrl
220
+ * @param {String} options.tones a string of one or more DTMF tones to send
221
+ * @returns {Promise}
222
+ */
223
+ sendDTMF({ locusUrl, deviceUrl, tones }: {
224
+ locusUrl: string;
225
+ deviceUrl: string;
226
+ tones: string;
227
+ }): Promise<any>;
228
+ /**
229
+ * Sends a request to the controls endpoint to set the video layout
230
+ * @param {Object} options
231
+ * @param {String} options.locusUrl
232
+ * @param {String} options.deviceUrl
233
+ * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}
234
+ * @param {Object} options.main preferred dimensions for the remote main video stream
235
+ * @param {Number} options.main.width preferred width of main video stream
236
+ * @param {Number} options.main.height preferred height of main video stream
237
+ * @param {Object} options.content preferred dimensions for the remote content share stream
238
+ * @param {Number} options.content.width preferred width of content share stream
239
+ * @param {Number} options.content.height preferred height of content share stream
240
+ * @returns {Promise}
241
+ */
242
+ changeVideoLayout({ locusUrl, deviceUrl, layoutType, main, content, }: {
243
+ locusUrl: string;
244
+ deviceUrl: string;
245
+ layoutType: string;
246
+ main: {
247
+ width: number;
248
+ height: number;
249
+ };
250
+ content: {
251
+ width: number;
252
+ height: number;
253
+ };
254
+ }): Promise<any>;
255
+ /**
256
+ * Make a network request to end meeting for all
257
+ * @param {Object} options
258
+ * @param {Url} options.locusUrl
259
+ * @returns {Promise}
260
+ */
261
+ endMeetingForAll({ locusUrl }: {
262
+ locusUrl: string;
263
+ }): Promise<any>;
264
+ /**
265
+ * Send a locus keepAlive (used in lobby)
266
+ * @param {Object} options
267
+ * @param {Url} options.keepAliveUrl
268
+ * @returns {Promise}
269
+ */
270
+ keepAlive({ keepAliveUrl }: {
271
+ keepAliveUrl: string;
272
+ }): any;
273
+ /**
274
+ * Make a network request to send a reaction.
275
+ * @param {Object} options
276
+ * @param {Url} options.reactionChannelUrl
277
+ * @param {Reaction} options.reaction
278
+ * @param {string} options.senderID
279
+ * @returns {Promise}
280
+ */
281
+ sendReaction({ reactionChannelUrl, reaction, participantId }: SendReactionOptions): any;
282
+ /**
283
+ * Make a network request to enable or disable reactions.
284
+ * @param {boolean} options.enable - determines if we need to enable or disable.
285
+ * @param {locusUrl} options.locusUrl
286
+ * @returns {Promise}
287
+ */
288
+ toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
289
+ getLocusStatusByUrl(locusUrl: string): any;
290
+ }
@@ -0,0 +1,11 @@
1
+ import { Reaction } from '../reactions/reactions.type';
2
+ export type SendReactionOptions = {
3
+ reactionChannelUrl: string;
4
+ reaction: Reaction;
5
+ participantId: string;
6
+ };
7
+ export type ToggleReactionsOptions = {
8
+ enable: boolean;
9
+ locusUrl: string;
10
+ requestingParticipantId: string;
11
+ };
@@ -0,0 +1,9 @@
1
+ declare const MeetingStateMachine: {
2
+ /**
3
+ * Initializes the StateMachine for the meeting
4
+ * @param {Meeting} meetingRef A reference to a meeting instance
5
+ * @returns {StateMachine}
6
+ */
7
+ create(meetingRef: any): any;
8
+ };
9
+ export default MeetingStateMachine;
@@ -0,0 +1,103 @@
1
+ import { LocalCameraStream, LocalMicrophoneStream } from '@webex/media-helpers';
2
+ import { SELF_POLICY, IP_VERSION } from '../constants';
3
+ declare const MeetingUtil: {
4
+ parseLocusJoin: (response: any) => any;
5
+ remoteUpdateAudioVideo: (meeting: any, audioMuted?: boolean, videoMuted?: boolean) => any;
6
+ hasOwner: (info: any) => any;
7
+ isOwnerSelf: (owner: any, selfId: any) => boolean;
8
+ isPinOrGuest: (err: any) => boolean;
9
+ /**
10
+ * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.
11
+ * The return value matches the possible values of "ipver" parameter used by the backend APIs.
12
+ *
13
+ * @param {Object} webex webex instance
14
+ * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend
15
+ */
16
+ getIpVersion(webex: any): IP_VERSION | undefined;
17
+ joinMeeting: (meeting: any, options: any) => any;
18
+ cleanUp: (meeting: any) => any;
19
+ disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
20
+ /**
21
+ * Returns options for leaving a meeting.
22
+ * @param {any} meeting
23
+ * @param {any} options
24
+ * @returns {any} leave options
25
+ */
26
+ prepareLeaveMeetingOptions: (meeting: any, options?: any) => any;
27
+ leaveMeeting: (meeting: any, options?: any) => any;
28
+ declineMeeting: (meeting: any, reason: any) => any;
29
+ isUserInLeftState: (locusInfo: any) => boolean;
30
+ isUserInIdleState: (locusInfo: any) => boolean;
31
+ isUserInJoinedState: (locusInfo: any) => boolean;
32
+ isMediaEstablished: (currentMediaStatus: any) => any;
33
+ joinMeetingOptions: (meeting: any, options?: any) => any;
34
+ /**
35
+ * Returns request options for leaving a meeting.
36
+ * @param {any} meeting
37
+ * @param {any} options
38
+ * @returns {any} request options
39
+ */
40
+ buildLeaveFetchRequestOptions: (meeting: any, options?: any) => any;
41
+ getTrack: (stream: any) => {
42
+ audioTrack: any;
43
+ videoTrack: any;
44
+ };
45
+ getModeratorFromLocusInfo: (locusInfo: any) => any;
46
+ getPolicyFromLocusInfo: (locusInfo: any) => any;
47
+ getUserDisplayHintsFromLocusInfo: (locusInfo: any) => any;
48
+ canInviteNewParticipants: (displayHints: any) => any;
49
+ canAdmitParticipant: (displayHints: any) => any;
50
+ canUserLock: (displayHints: any) => any;
51
+ canUserUnlock: (displayHints: any) => any;
52
+ canUserRaiseHand: (displayHints: any) => any;
53
+ canUserLowerAllHands: (displayHints: any) => any;
54
+ canUserLowerSomeoneElsesHand: (displayHints: any) => any;
55
+ bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
56
+ canManageBreakout: (displayHints: any) => any;
57
+ canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
58
+ isSuppressBreakoutSupport: (displayHints: any) => any;
59
+ canAdmitLobbyToBreakout: (displayHints: any) => boolean;
60
+ isBreakoutPreassignmentsEnabled: (displayHints: any) => boolean;
61
+ canUserAskForHelp: (displayHints: any) => boolean;
62
+ lockMeeting: (actions: any, request: any, locusUrl: any) => any;
63
+ unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
64
+ handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
65
+ handleVideoLogging: (videoStream?: LocalCameraStream) => void;
66
+ handleDeviceLogging: (devices?: any[]) => void;
67
+ endMeetingForAll: (meeting: any) => any;
68
+ canEnableClosedCaption: (displayHints: any) => any;
69
+ isSaveTranscriptsEnabled: (displayHints: any) => any;
70
+ canStartTranscribing: (displayHints: any) => any;
71
+ canStopTranscribing: (displayHints: any) => any;
72
+ isClosedCaptionActive: (displayHints: any) => any;
73
+ isWebexAssistantActive: (displayHints: any) => any;
74
+ canViewCaptionPanel: (displayHints: any) => any;
75
+ isRealTimeTranslationEnabled: (displayHints: any) => any;
76
+ canSelectSpokenLanguages: (displayHints: any) => any;
77
+ waitingForOthersToJoin: (displayHints: any) => any;
78
+ canSendReactions: (originalValue: any, displayHints: any) => any;
79
+ canUserRenameSelfAndObserved: (displayHints: any) => any;
80
+ canUserRenameOthers: (displayHints: any) => any;
81
+ canShareWhiteBoard: (displayHints: any) => any;
82
+ /**
83
+ * Adds the current locus sequence information to a request body
84
+ * @param {Object} meeting The meeting object
85
+ * @param {Object} requestBody The body of a request to locus
86
+ * @returns {void}
87
+ */
88
+ addSequence: (meeting: any, requestBody: any) => void;
89
+ /**
90
+ * Updates the locus info for the meeting with the delta locus
91
+ * returned from requests that include the sequence information
92
+ * Returns the original response object
93
+ * @param {Object} meeting The meeting object
94
+ * @param {Object} response The response of the http request
95
+ * @returns {Object}
96
+ */
97
+ updateLocusWithDelta: (meeting: any, response: any) => any;
98
+ generateBuildLocusDeltaRequestOptions: (originalMeeting: any) => (originalOptions: any) => any;
99
+ generateLocusDeltaRequest: (originalMeeting: any) => (originalOptions: any) => any;
100
+ selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => boolean;
101
+ parseInterpretationInfo: (meeting: any, meetingInfo: any) => void;
102
+ };
103
+ export default MeetingUtil;
@@ -0,0 +1,20 @@
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @class MeetingInfoCollection
4
+ */
5
+ export default class MeetingInfoCollection extends Collection {
6
+ namespace: string;
7
+ /**
8
+ * @memberof MeetingInfoCollection
9
+ * @constructor
10
+ * @public
11
+ */
12
+ constructor();
13
+ /**
14
+ * @param {String} id ID of the meeting info you wish to retreive
15
+ * @returns {MeetingInfo} returns a meeting info instance
16
+ * @public
17
+ * @memberof MeetingInfoCollection
18
+ */
19
+ get(id: string): any;
20
+ }