@webex/plugin-meetings 3.8.1-next.3 → 3.8.1-next.31

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 (80) hide show
  1. package/README.md +26 -13
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/constants.js +21 -2
  5. package/dist/constants.js.map +1 -1
  6. package/dist/interpretation/index.js +1 -1
  7. package/dist/interpretation/siLanguage.js +1 -1
  8. package/dist/locus-info/index.js +38 -84
  9. package/dist/locus-info/index.js.map +1 -1
  10. package/dist/media/index.js +2 -2
  11. package/dist/media/index.js.map +1 -1
  12. package/dist/meeting/brbState.js +14 -12
  13. package/dist/meeting/brbState.js.map +1 -1
  14. package/dist/meeting/index.js +169 -66
  15. package/dist/meeting/index.js.map +1 -1
  16. package/dist/meeting/request.js +19 -0
  17. package/dist/meeting/request.js.map +1 -1
  18. package/dist/meeting/request.type.js.map +1 -1
  19. package/dist/meetings/index.js +35 -33
  20. package/dist/meetings/index.js.map +1 -1
  21. package/dist/members/index.js +8 -6
  22. package/dist/members/index.js.map +1 -1
  23. package/dist/members/request.js +3 -3
  24. package/dist/members/request.js.map +1 -1
  25. package/dist/members/util.js +18 -6
  26. package/dist/members/util.js.map +1 -1
  27. package/dist/multistream/mediaRequestManager.js +1 -1
  28. package/dist/multistream/mediaRequestManager.js.map +1 -1
  29. package/dist/multistream/remoteMedia.js +34 -5
  30. package/dist/multistream/remoteMedia.js.map +1 -1
  31. package/dist/multistream/remoteMediaGroup.js +42 -2
  32. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  33. package/dist/multistream/sendSlotManager.js +32 -2
  34. package/dist/multistream/sendSlotManager.js.map +1 -1
  35. package/dist/reachability/index.js +5 -10
  36. package/dist/reachability/index.js.map +1 -1
  37. package/dist/types/constants.d.ts +19 -0
  38. package/dist/types/locus-info/index.d.ts +0 -9
  39. package/dist/types/meeting/brbState.d.ts +0 -1
  40. package/dist/types/meeting/index.d.ts +28 -4
  41. package/dist/types/meeting/request.d.ts +9 -1
  42. package/dist/types/meeting/request.type.d.ts +74 -0
  43. package/dist/types/members/index.d.ts +8 -3
  44. package/dist/types/members/request.d.ts +1 -1
  45. package/dist/types/members/util.d.ts +5 -2
  46. package/dist/types/multistream/remoteMedia.d.ts +20 -1
  47. package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
  48. package/dist/types/multistream/sendSlotManager.d.ts +16 -0
  49. package/dist/types/reachability/index.d.ts +2 -2
  50. package/dist/webinar/index.js +1 -1
  51. package/package.json +24 -24
  52. package/src/constants.ts +20 -0
  53. package/src/locus-info/index.ts +47 -82
  54. package/src/media/index.ts +2 -2
  55. package/src/meeting/brbState.ts +9 -7
  56. package/src/meeting/index.ts +126 -23
  57. package/src/meeting/request.ts +16 -0
  58. package/src/meeting/request.type.ts +64 -0
  59. package/src/meetings/index.ts +3 -2
  60. package/src/members/index.ts +7 -5
  61. package/src/members/request.ts +2 -2
  62. package/src/members/util.ts +14 -3
  63. package/src/multistream/mediaRequestManager.ts +7 -7
  64. package/src/multistream/remoteMedia.ts +34 -4
  65. package/src/multistream/remoteMediaGroup.ts +37 -2
  66. package/src/multistream/sendSlotManager.ts +34 -2
  67. package/src/reachability/index.ts +5 -13
  68. package/test/unit/spec/locus-info/index.js +177 -83
  69. package/test/unit/spec/media/index.ts +107 -0
  70. package/test/unit/spec/meeting/brbState.ts +9 -9
  71. package/test/unit/spec/meeting/index.js +606 -55
  72. package/test/unit/spec/meeting/request.js +71 -0
  73. package/test/unit/spec/meetings/index.js +1 -0
  74. package/test/unit/spec/members/index.js +32 -9
  75. package/test/unit/spec/members/request.js +2 -2
  76. package/test/unit/spec/members/utils.js +27 -7
  77. package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
  78. package/test/unit/spec/multistream/remoteMedia.ts +66 -2
  79. package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
  80. package/test/unit/spec/reachability/index.ts +2 -6
@@ -16,7 +16,6 @@ export default class LocusInfo extends EventsScope {
16
16
  aclUrl: any;
17
17
  baseSequence: any;
18
18
  created: any;
19
- deltaParticipants: any;
20
19
  identities: any;
21
20
  membership: any;
22
21
  participants: any;
@@ -148,14 +147,6 @@ export default class LocusInfo extends EventsScope {
148
147
  * @memberof LocusInfo
149
148
  */
150
149
  compareSelfAndHost(): void;
151
- /**
152
- * Update the deltaParticipants property of this object based on a list of
153
- * provided participants.
154
- *
155
- * @param {Array} [participants] - The participants to update against.
156
- * @returns {void}
157
- */
158
- updateParticipantDeltas(participants?: Array<any>): void;
159
150
  /**
160
151
  * update meeting's members
161
152
  * @param {Object} participants new participants object
@@ -40,7 +40,6 @@ export declare class BrbState {
40
40
  /**
41
41
  * Send the local brb state to the server
42
42
  *
43
- * @param {SendSlotManager} sendSlotManager
44
43
  * @returns {Promise}
45
44
  */
46
45
  private sendLocalBrbStateToServer;
@@ -21,6 +21,7 @@ import RecordingController from '../recording-controller';
21
21
  import ControlsOptionsManager from '../controls-options-manager';
22
22
  import { LocusMediaRequest } from './locusMediaRequest';
23
23
  import { BrbState } from './brbState';
24
+ import { SetStageOptions } from './request.type';
24
25
  export type CaptionData = {
25
26
  id: string;
26
27
  isFinal: boolean;
@@ -66,6 +67,13 @@ export type AddMediaOptions = {
66
67
  remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
67
68
  bundlePolicy?: BundlePolicy;
68
69
  allowMediaInLobby?: boolean;
70
+ additionalMediaOptions?: AdditionalMediaOptions;
71
+ };
72
+ export type AdditionalMediaOptions = {
73
+ sendVideo?: boolean;
74
+ receiveVideo?: boolean;
75
+ sendAudio?: boolean;
76
+ receiveAudio?: boolean;
69
77
  };
70
78
  export type CallStateForMetrics = {
71
79
  correlationId?: string;
@@ -479,10 +487,11 @@ export default class Meeting extends StatelessWebexPlugin {
479
487
  /**
480
488
  * @param {Object} attrs
481
489
  * @param {Object} options
490
+ * @param {Function} callback - if provided, it will be called with the newly created meeting object as soon as the meeting.id is set
482
491
  * @constructor
483
492
  * @memberof Meeting
484
493
  */
485
- constructor(attrs: any, options: object);
494
+ constructor(attrs: any, options: object, callback: (meeting: Meeting) => void);
486
495
  /**
487
496
  * returns meeting is joined
488
497
  * @private
@@ -881,15 +890,17 @@ export default class Meeting extends StatelessWebexPlugin {
881
890
  phoneNumber: string;
882
891
  }): any;
883
892
  /**
884
- * Cancel an SIP call invitation made during a meeting
893
+ * Cancel an SIP/phone call invitation made during a meeting
885
894
  * @param {Object} invitee
886
895
  * @param {String} invitee.memberId
887
- * @returns {Promise} see #members.cancelSIPInvite
896
+ * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
897
+ * @returns {Promise} see #members.cancelInviteByMemberId
888
898
  * @public
889
899
  * @memberof Meeting
890
900
  */
891
- cancelSIPInvite(invitee: {
901
+ cancelInviteByMemberId(invitee: {
892
902
  memberId: string;
903
+ isInternalNumber?: boolean;
893
904
  }): any;
894
905
  /**
895
906
  * Admit the guest(s) to the call once they are waiting.
@@ -1993,5 +2004,18 @@ export default class Meeting extends StatelessWebexPlugin {
1993
2004
  * @returns {Promise<MediaReachabilityMetrics>}
1994
2005
  */
1995
2006
  private getMediaReachabilityMetricFields;
2007
+ /**
2008
+ * Set the stage for the meeting
2009
+ *
2010
+ * @param {SetStageOptions} options Options to use when setting the stage
2011
+ * @returns {Promise} The locus request
2012
+ */
2013
+ setStage({ activeSpeakerProportion, customBackground, customLogo, customNameLabel, importantParticipants, lockAttendeeViewOnStage, showActiveSpeaker, }?: SetStageOptions): Promise<any>;
2014
+ /**
2015
+ * Unset the stage for the meeting
2016
+ *
2017
+ * @returns {Promise} The locus request
2018
+ */
2019
+ unsetStage(): Promise<any>;
1996
2020
  }
1997
2021
  export {};
@@ -1,5 +1,5 @@
1
1
  import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions } from './request.type';
2
+ import { SendReactionOptions, BrbOptions, ToggleReactionsOptions, PostMeetingDataConsentOptions, SynchronizeVideoLayout } from './request.type';
3
3
  import { AnnotationInfo } from '../annotation/annotation.types';
4
4
  import { ClientMediaPreferences } from '../reachability/reachability.types';
5
5
  /**
@@ -314,4 +314,12 @@ export default class MeetingRequest extends StatelessWebexPlugin {
314
314
  * @returns {Promise}
315
315
  */
316
316
  setPostMeetingDataConsent({ postMeetingDataConsent, locusUrl, deviceUrl, selfId, }: PostMeetingDataConsentOptions): Promise<any>;
317
+ /**
318
+ * Synchronize the stage for a meeting
319
+ *
320
+ * @param {LocusUrl} locusUrl The locus URL
321
+ * @param {SetStageVideoLayout} videoLayout The video layout to synchronize
322
+ * @returns {Promise} The locus request
323
+ */
324
+ synchronizeStage(locusUrl: string, videoLayout: SynchronizeVideoLayout): Promise<any>;
317
325
  }
@@ -21,3 +21,77 @@ export type PostMeetingDataConsentOptions = {
21
21
  deviceUrl: string;
22
22
  selfId: string;
23
23
  };
24
+ export type StageCustomLogoPositions = 'LowerLeft' | 'LowerMiddle' | 'LowerRight' | 'UpperLeft' | 'UpperMiddle' | 'UpperRight';
25
+ export type StageNameLabelType = 'Primary' | 'PrimaryInverted' | 'Secondary' | 'SecondaryInverted';
26
+ export type StageCustomBackground = {
27
+ url: string;
28
+ [others: string]: unknown;
29
+ };
30
+ export type StageCustomLogo = {
31
+ url: string;
32
+ position: StageCustomLogoPositions;
33
+ [others: string]: unknown;
34
+ };
35
+ export type StageCustomNameLabel = {
36
+ accentColor: string;
37
+ background: {
38
+ color: string;
39
+ };
40
+ border: {
41
+ color: string;
42
+ };
43
+ content: {
44
+ displayName: {
45
+ color: string;
46
+ };
47
+ subtitle: {
48
+ color: string;
49
+ };
50
+ };
51
+ decoration: {
52
+ color: string;
53
+ };
54
+ fadeOut?: {
55
+ delay: number;
56
+ };
57
+ type: StageNameLabelType;
58
+ [others: string]: unknown;
59
+ };
60
+ export type SetStageOptions = {
61
+ activeSpeakerProportion?: number;
62
+ customBackground?: StageCustomBackground;
63
+ customLogo?: StageCustomLogo;
64
+ customNameLabel?: StageCustomNameLabel;
65
+ importantParticipants?: {
66
+ mainCsi: number;
67
+ participantId: string;
68
+ }[];
69
+ lockAttendeeViewOnStage?: boolean;
70
+ showActiveSpeaker?: boolean;
71
+ };
72
+ export type SetStageVideoLayout = {
73
+ overrideDefault: true;
74
+ lockAttendeeViewOnStageOnly: boolean;
75
+ stageParameters: {
76
+ importantParticipants?: {
77
+ participantId: string;
78
+ mainCsi: number;
79
+ order: number;
80
+ }[];
81
+ showActiveSpeaker: {
82
+ show: boolean;
83
+ order: number;
84
+ };
85
+ activeSpeakerProportion: number;
86
+ stageManagerType: number;
87
+ };
88
+ customLayouts?: {
89
+ background?: StageCustomBackground;
90
+ logo?: StageCustomLogo;
91
+ };
92
+ nameLabelStyle?: StageCustomNameLabel;
93
+ };
94
+ export type UnsetStageVideoLayout = {
95
+ overrideDefault: false;
96
+ };
97
+ export type SynchronizeVideoLayout = SetStageVideoLayout | UnsetStageVideoLayout;
@@ -226,12 +226,17 @@ export default class Members extends StatelessWebexPlugin {
226
226
  */
227
227
  cancelPhoneInvite(invitee: any): any;
228
228
  /**
229
- * Cancels an SIP call to the associated meeting
230
- * @param {String} invitee
229
+ * Cancels an SIP/phone call to the associated meeting
230
+ * @param {Object} invitee
231
+ * @param {String} invitee.memberId - The memberId of the invitee
232
+ * @param {Boolean} [invitee.isInternalNumber] - When cancel phone invitation, if the number is internal
231
233
  * @returns {Promise}
232
234
  * @memberof Members
233
235
  */
234
- cancelSIPInvite(invitee: any): any;
236
+ cancelInviteByMemberId(invitee: {
237
+ memberId: string;
238
+ isInternalNumber?: boolean;
239
+ }): any;
235
240
  /**
236
241
  * Admits waiting members (invited guests to meeting)
237
242
  * @param {Array} memberIds
@@ -136,5 +136,5 @@ export default class MembersRequest extends StatelessWebexPlugin {
136
136
  * @throws {Error} if the options are not valid and complete, must have invitee with memberId AND locusUrl
137
137
  * @memberof MembersRequest
138
138
  */
139
- cancelSIPInvite(options: any): Promise<any>;
139
+ cancelInviteByMemberId(options: any): Promise<any>;
140
140
  }
@@ -26,6 +26,7 @@ declare const MembersUtil: {
26
26
  */
27
27
  getAddMemberBody: (options: any) => {
28
28
  invitees: {
29
+ isInternalNumber?: any;
29
30
  roles?: any;
30
31
  address: any;
31
32
  }[];
@@ -55,6 +56,7 @@ declare const MembersUtil: {
55
56
  uri: any;
56
57
  body: {
57
58
  invitees: {
59
+ isInternalNumber?: any;
58
60
  roles?: any;
59
61
  address: any;
60
62
  }[];
@@ -228,16 +230,17 @@ declare const MembersUtil: {
228
230
  }[];
229
231
  };
230
232
  };
231
- cancelSIPInviteOptions: (invitee: any, locusUrl: any) => {
233
+ cancelInviteByMemberIdOptions: (invitee: any, locusUrl: any) => {
232
234
  invitee: any;
233
235
  locusUrl: any;
234
236
  };
235
- generateCancelSIPInviteRequestParams: (options: any) => {
237
+ generateCancelInviteByMemberIdRequestParams: (options: any) => {
236
238
  method: string;
237
239
  uri: any;
238
240
  body: {
239
241
  actionType: string;
240
242
  invitees: {
243
+ isInternalNumber?: any;
241
244
  address: any;
242
245
  }[];
243
246
  };
@@ -7,9 +7,17 @@ export declare const RemoteMediaEvents: {
7
7
  Stopped: string;
8
8
  };
9
9
  export type RemoteVideoResolution = 'thumbnail' | 'very small' | 'small' | 'medium' | 'large' | 'best';
10
+ export declare const MAX_FS_VALUES: {
11
+ '90p': number;
12
+ '180p': number;
13
+ '360p': number;
14
+ '540p': number;
15
+ '720p': number;
16
+ '1080p': number;
17
+ };
10
18
  /**
11
19
  * Converts pane size into h264 maxFs
12
- * @param {PaneSize} paneSize
20
+ * @param {RemoteVideoResolution} paneSize
13
21
  * @returns {number}
14
22
  */
15
23
  export declare function getMaxFs(paneSize: RemoteVideoResolution): number;
@@ -29,6 +37,12 @@ export declare class RemoteMedia extends EventsScope {
29
37
  private readonly options;
30
38
  private mediaRequestId?;
31
39
  readonly id: RemoteMediaId;
40
+ /**
41
+ * The max frame size of the media request, used for logging and media requests.
42
+ * Set by setSizeHint() based on video element dimensions.
43
+ * When > 0, this value takes precedence over options.resolution in sendMediaRequest().
44
+ */
45
+ private maxFrameSize;
32
46
  /**
33
47
  * Constructs RemoteMedia instance
34
48
  *
@@ -45,6 +59,11 @@ export declare class RemoteMedia extends EventsScope {
45
59
  * @note width/height of 0 will be ignored
46
60
  */
47
61
  setSizeHint(width: any, height: any): void;
62
+ /**
63
+ * Get the current effective maxFs value that would be used in media requests
64
+ * @returns {number | undefined} The maxFs value, or undefined if no constraints
65
+ */
66
+ getEffectiveMaxFs(): number | undefined;
48
67
  /**
49
68
  * registers event listeners on the receive slot and forwards all the events
50
69
  */
@@ -45,5 +45,16 @@ export declare class RemoteMediaGroup {
45
45
  * @returns true if remote media is found
46
46
  */
47
47
  includes(remoteMedia: RemoteMedia, filter?: 'all' | 'pinned' | 'unpinned'): boolean;
48
+ /**
49
+ * Calculate the effective maxFs for the active speaker media request based on unpinned RemoteMedia instances
50
+ * @returns {number | undefined} The calculated maxFs value, or undefined if no constraints
51
+ * @private
52
+ */
53
+ private getEffectiveMaxFsForActiveSpeaker;
54
+ /**
55
+ * Get the current effective maxFs that would be used for the active speaker media request
56
+ * @returns {number | undefined} The effective maxFs value
57
+ */
58
+ getEffectiveMaxFs(): number | undefined;
48
59
  }
49
60
  export {};
@@ -1,7 +1,17 @@
1
1
  import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
2
+ /**
3
+ * This class is used to manage the sendSlots for the given media types.
4
+ */
2
5
  export default class SendSlotManager {
3
6
  private readonly slots;
4
7
  private readonly LoggerProxy;
8
+ private readonly sourceStateOverrides;
9
+ /**
10
+ * Constructor for SendSlotManager
11
+ *
12
+ * @param {any} LoggerProxy is used to log the messages
13
+ * @constructor
14
+ */
5
15
  constructor(LoggerProxy: any);
6
16
  /**
7
17
  * This method is used to create a sendSlot for the given mediaType and returns the created sendSlot
@@ -32,6 +42,12 @@ export default class SendSlotManager {
32
42
  * @returns {void}
33
43
  */
34
44
  setSourceStateOverride(mediaType: MediaType, state: StreamState | null): void;
45
+ /**
46
+ * Gets the source state override for the given media type.
47
+ * @param {MediaType} mediaType - The type of media to get the source state override for.
48
+ * @returns {StreamState | null} - The current source state override or null if not set.
49
+ */
50
+ private getSourceStateOverride;
35
51
  /**
36
52
  * This method publishes the given stream to the sendSlot for the given mediaType
37
53
  * @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
@@ -68,12 +68,12 @@ export default class Reachability extends EventsScope {
68
68
  }>;
69
69
  /**
70
70
  * Checks if the given subnet is reachable
71
- * @param {string} mediaServerIp - media server ip
71
+ * @param {string} selectedSubnetFirstOctet - selected subnet first octet, e.g. "10" for "10.X.X.X"
72
72
  * @returns {boolean | null} true if reachable, false if not reachable, null if mediaServerIp is not provided
73
73
  * @public
74
74
  * @memberof Reachability
75
75
  */
76
- isSubnetReachable(mediaServerIp?: string): boolean | null;
76
+ isSubnetReachable(selectedSubnetFirstOctet: string): boolean | null;
77
77
  /**
78
78
  * Gets a list of media clusters from the backend and performs reachability checks on all the clusters
79
79
  * @param {string} trigger - explains the reason for starting reachability
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.1-next.3"
461
+ version: "3.8.1-next.31"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,13 +43,13 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.1-next.3",
47
- "@webex/plugin-rooms": "3.8.0-next.30",
48
- "@webex/test-helper-chai": "3.8.1-next.1",
49
- "@webex/test-helper-mocha": "3.8.1-next.1",
50
- "@webex/test-helper-mock-webex": "3.8.1-next.1",
51
- "@webex/test-helper-retry": "3.8.1-next.1",
52
- "@webex/test-helper-test-users": "3.8.1-next.1",
46
+ "@webex/plugin-meetings": "3.8.1-next.31",
47
+ "@webex/plugin-rooms": "3.8.1-next.7",
48
+ "@webex/test-helper-chai": "3.8.1-next.10",
49
+ "@webex/test-helper-mocha": "3.8.1-next.10",
50
+ "@webex/test-helper-mock-webex": "3.8.1-next.10",
51
+ "@webex/test-helper-retry": "3.8.1-next.10",
52
+ "@webex/test-helper-test-users": "3.8.1-next.10",
53
53
  "chai": "^4.3.4",
54
54
  "chai-as-promised": "^7.1.1",
55
55
  "eslint": "^8.24.0",
@@ -61,23 +61,23 @@
61
61
  "typescript": "^4.7.4"
62
62
  },
63
63
  "dependencies": {
64
- "@webex/common": "3.8.1-next.1",
65
- "@webex/event-dictionary-ts": "^1.0.1753",
66
- "@webex/internal-media-core": "2.17.1",
67
- "@webex/internal-plugin-conversation": "3.8.1-next.1",
68
- "@webex/internal-plugin-device": "3.8.1-next.1",
69
- "@webex/internal-plugin-llm": "3.8.1-next.1",
70
- "@webex/internal-plugin-mercury": "3.8.1-next.1",
71
- "@webex/internal-plugin-metrics": "3.8.1-next.1",
72
- "@webex/internal-plugin-support": "3.8.1-next.1",
73
- "@webex/internal-plugin-user": "3.8.1-next.1",
74
- "@webex/internal-plugin-voicea": "3.8.1-next.3",
75
- "@webex/media-helpers": "3.8.1-next.1",
76
- "@webex/plugin-people": "3.8.1-next.1",
77
- "@webex/plugin-rooms": "3.8.0-next.30",
64
+ "@webex/common": "3.8.1-next.10",
65
+ "@webex/event-dictionary-ts": "^1.0.1819",
66
+ "@webex/internal-media-core": "2.18.5",
67
+ "@webex/internal-plugin-conversation": "3.8.1-next.10",
68
+ "@webex/internal-plugin-device": "3.8.1-next.10",
69
+ "@webex/internal-plugin-llm": "3.8.1-next.10",
70
+ "@webex/internal-plugin-mercury": "3.8.1-next.10",
71
+ "@webex/internal-plugin-metrics": "3.8.1-next.10",
72
+ "@webex/internal-plugin-support": "3.8.1-next.10",
73
+ "@webex/internal-plugin-user": "3.8.1-next.10",
74
+ "@webex/internal-plugin-voicea": "3.8.1-next.31",
75
+ "@webex/media-helpers": "3.8.1-next.14",
76
+ "@webex/plugin-people": "3.8.1-next.10",
77
+ "@webex/plugin-rooms": "3.8.1-next.7",
78
78
  "@webex/ts-sdp": "^1.8.1",
79
- "@webex/web-capabilities": "^1.4.0",
80
- "@webex/webex-core": "3.8.1-next.1",
79
+ "@webex/web-capabilities": "^1.6.0",
80
+ "@webex/webex-core": "3.8.1-next.10",
81
81
  "ampersand-collection": "^2.0.2",
82
82
  "bowser": "^2.11.0",
83
83
  "btoa": "^1.2.1",
@@ -93,5 +93,5 @@
93
93
  "//": [
94
94
  "TODO: upgrade jwt-decode when moving to node 18"
95
95
  ],
96
- "version": "3.8.1-next.3"
96
+ "version": "3.8.1-next.31"
97
97
  }
package/src/constants.ts CHANGED
@@ -217,6 +217,7 @@ export const DIALER_REGEX = {
217
217
  PHONE_NUMBER:
218
218
  /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/,
219
219
  E164_FORMAT: /^\+[1-9]\d{1,14}$/,
220
+ INTERNAL_NUMBER: /^\d{1,14}$/,
220
221
  };
221
222
 
222
223
  // eslint-disable-next-line max-len
@@ -1188,6 +1189,7 @@ export const QUALITY_LEVELS = {
1188
1189
  HIGH: 'HIGH',
1189
1190
  '360p': '360p',
1190
1191
  '480p': '480p',
1192
+ '540p': '540p',
1191
1193
  '720p': '720p',
1192
1194
  '1080p': '1080p',
1193
1195
  };
@@ -1217,6 +1219,18 @@ export const AVAILABLE_RESOLUTIONS = {
1217
1219
  },
1218
1220
  },
1219
1221
  },
1222
+ '540p': {
1223
+ video: {
1224
+ width: {
1225
+ max: 960,
1226
+ ideal: 960,
1227
+ },
1228
+ height: {
1229
+ max: 540,
1230
+ ideal: 540,
1231
+ },
1232
+ },
1233
+ },
1220
1234
  '720p': {
1221
1235
  video: {
1222
1236
  width: {
@@ -1357,3 +1371,9 @@ export const INITIAL_REGISTRATION_STATUS = {
1357
1371
  mercuryConnect: false,
1358
1372
  checkH264Support: false,
1359
1373
  };
1374
+
1375
+ export const STAGE_MANAGER_TYPE = {
1376
+ LOGO: 0b001,
1377
+ BACKGROUND: 0b010,
1378
+ NAME_LABEL: 0b100,
1379
+ };