@webex/plugin-meetings 3.7.0 → 3.8.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotation/index.js +17 -0
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/join-forbidden-error.js +52 -0
- package/dist/common/errors/join-forbidden-error.js.map +1 -0
- package/dist/common/errors/{webinar-registration-error.js → join-webinar-error.js} +12 -12
- package/dist/common/errors/join-webinar-error.js.map +1 -0
- package/dist/common/errors/multistream-not-supported-error.js +53 -0
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -0
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +69 -6
- package/dist/constants.js.map +1 -1
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/interpretation/index.js +4 -4
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +14 -3
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +35 -17
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +1 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/properties.js +30 -16
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/brbState.js +167 -0
- package/dist/meeting/brbState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.js +13 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1373 -1052
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +32 -11
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +1 -6
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +51 -29
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +103 -67
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +115 -45
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +6 -2
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +107 -55
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +2 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/util.js +1 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js +39 -28
- package/dist/member/util.js.map +1 -1
- package/dist/members/util.js +4 -2
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +6 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/remoteMedia.js +30 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +40 -8
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +24 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +12 -15
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +471 -140
- package/dist/reachability/index.js.map +1 -1
- package/dist/{rtcMetrics/constants.js → reachability/reachability.types.js} +1 -5
- package/dist/reachability/reachability.types.js.map +1 -0
- package/dist/reachability/request.js +21 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/recording-controller/enums.js +8 -4
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +18 -9
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +13 -9
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +15 -15
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +45 -79
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +3 -6
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/types/annotation/index.d.ts +5 -0
- package/dist/types/common/errors/join-forbidden-error.d.ts +15 -0
- package/dist/types/common/errors/{webinar-registration-error.d.ts → join-webinar-error.d.ts} +2 -2
- package/dist/types/common/errors/multistream-not-supported-error.d.ts +17 -0
- package/dist/types/config.d.ts +2 -0
- package/dist/types/constants.d.ts +54 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/locus-info/index.d.ts +2 -1
- package/dist/types/meeting/brbState.d.ts +54 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +12 -0
- package/dist/types/meeting/index.d.ts +86 -14
- package/dist/types/meeting/locusMediaRequest.d.ts +6 -3
- package/dist/types/meeting/request.d.ts +14 -3
- package/dist/types/meeting/request.type.d.ts +6 -0
- package/dist/types/meeting/util.d.ts +3 -3
- package/dist/types/meeting-info/meeting-info-v2.d.ts +30 -5
- package/dist/types/meetings/index.d.ts +20 -2
- package/dist/types/meetings/meetings.types.d.ts +8 -0
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/types.d.ts +7 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/constants.d.ts +6 -1
- package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
- package/dist/types/multistream/sendSlotManager.d.ts +8 -1
- package/dist/types/reachability/clusterReachability.d.ts +1 -10
- package/dist/types/reachability/index.d.ts +83 -36
- package/dist/types/reachability/reachability.types.d.ts +64 -0
- package/dist/types/reachability/request.d.ts +5 -1
- package/dist/types/recording-controller/enums.d.ts +5 -2
- package/dist/types/recording-controller/index.d.ts +1 -0
- package/dist/types/recording-controller/util.d.ts +2 -1
- package/dist/types/roap/request.d.ts +1 -13
- package/dist/webinar/index.js +390 -7
- package/dist/webinar/index.js.map +1 -1
- package/package.json +23 -22
- package/src/annotation/index.ts +16 -0
- package/src/common/errors/join-forbidden-error.ts +26 -0
- package/src/common/errors/join-webinar-error.ts +24 -0
- package/src/common/errors/multistream-not-supported-error.ts +30 -0
- package/src/config.ts +2 -0
- package/src/constants.ts +62 -3
- package/src/index.ts +5 -3
- package/src/interpretation/index.ts +3 -3
- package/src/locus-info/index.ts +20 -3
- package/src/locus-info/selfUtils.ts +24 -6
- package/src/media/MediaConnectionAwaiter.ts +2 -0
- package/src/media/properties.ts +34 -13
- package/src/meeting/brbState.ts +169 -0
- package/src/meeting/in-meeting-actions.ts +25 -0
- package/src/meeting/index.ts +485 -88
- package/src/meeting/locusMediaRequest.ts +38 -12
- package/src/meeting/muteState.ts +1 -6
- package/src/meeting/request.ts +30 -12
- package/src/meeting/request.type.ts +7 -0
- package/src/meeting/util.ts +32 -13
- package/src/meeting-info/meeting-info-v2.ts +83 -12
- package/src/meeting-info/utilv2.ts +17 -3
- package/src/meetings/index.ts +79 -20
- package/src/meetings/meetings.types.ts +10 -0
- package/src/meetings/util.ts +2 -1
- package/src/member/index.ts +9 -0
- package/src/member/types.ts +8 -0
- package/src/member/util.ts +34 -24
- package/src/members/util.ts +1 -0
- package/src/metrics/constants.ts +6 -1
- package/src/multistream/remoteMedia.ts +28 -15
- package/src/multistream/remoteMediaManager.ts +32 -10
- package/src/multistream/sendSlotManager.ts +31 -0
- package/src/reachability/clusterReachability.ts +5 -15
- package/src/reachability/index.ts +315 -75
- package/src/reachability/reachability.types.ts +85 -0
- package/src/reachability/request.ts +55 -31
- package/src/recording-controller/enums.ts +5 -2
- package/src/recording-controller/index.ts +17 -4
- package/src/recording-controller/util.ts +28 -9
- package/src/roap/index.ts +14 -13
- package/src/roap/request.ts +30 -44
- package/src/roap/turnDiscovery.ts +2 -4
- package/src/webinar/index.ts +235 -9
- package/test/unit/spec/annotation/index.ts +46 -1
- package/test/unit/spec/interpretation/index.ts +39 -1
- package/test/unit/spec/locus-info/index.js +292 -60
- package/test/unit/spec/locus-info/selfConstant.js +7 -0
- package/test/unit/spec/locus-info/selfUtils.js +101 -1
- package/test/unit/spec/media/properties.ts +15 -0
- package/test/unit/spec/meeting/brbState.ts +114 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +15 -1
- package/test/unit/spec/meeting/index.js +908 -124
- package/test/unit/spec/meeting/locusMediaRequest.ts +111 -66
- package/test/unit/spec/meeting/muteState.js +0 -24
- package/test/unit/spec/meeting/request.js +3 -26
- package/test/unit/spec/meeting/utils.js +73 -28
- package/test/unit/spec/meeting-info/meetinginfov2.js +46 -4
- package/test/unit/spec/meeting-info/utilv2.js +26 -0
- package/test/unit/spec/meetings/index.js +172 -18
- package/test/unit/spec/meetings/utils.js +10 -0
- package/test/unit/spec/member/util.js +52 -11
- package/test/unit/spec/members/utils.js +95 -0
- package/test/unit/spec/multistream/remoteMedia.ts +11 -7
- package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
- package/test/unit/spec/reachability/clusterReachability.ts +7 -0
- package/test/unit/spec/reachability/index.ts +391 -9
- package/test/unit/spec/reachability/request.js +48 -12
- package/test/unit/spec/recording-controller/index.js +61 -5
- package/test/unit/spec/recording-controller/util.js +39 -3
- package/test/unit/spec/roap/index.ts +48 -1
- package/test/unit/spec/roap/request.ts +51 -109
- package/test/unit/spec/roap/turnDiscovery.ts +202 -147
- package/test/unit/spec/webinar/index.ts +509 -0
- package/dist/common/errors/webinar-registration-error.js.map +0 -1
- package/dist/networkQualityMonitor/index.js +0 -227
- package/dist/networkQualityMonitor/index.js.map +0 -1
- package/dist/rtcMetrics/constants.js.map +0 -1
- package/dist/rtcMetrics/index.js +0 -197
- package/dist/rtcMetrics/index.js.map +0 -1
- package/dist/types/networkQualityMonitor/index.d.ts +0 -70
- package/dist/types/rtcMetrics/constants.d.ts +0 -4
- package/dist/types/rtcMetrics/index.d.ts +0 -71
- package/src/common/errors/webinar-registration-error.ts +0 -27
|
@@ -19,6 +19,7 @@ import InMeetingActions from './in-meeting-actions';
|
|
|
19
19
|
import RecordingController from '../recording-controller';
|
|
20
20
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
21
21
|
import { LocusMediaRequest } from './locusMediaRequest';
|
|
22
|
+
import { BrbState } from './brbState';
|
|
22
23
|
export type CaptionData = {
|
|
23
24
|
id: string;
|
|
24
25
|
isFinal: boolean;
|
|
@@ -70,6 +71,8 @@ export type CallStateForMetrics = {
|
|
|
70
71
|
sessionCorrelationId?: string;
|
|
71
72
|
joinTrigger?: string;
|
|
72
73
|
loginType?: string;
|
|
74
|
+
userNameInput?: string;
|
|
75
|
+
emailInput?: string;
|
|
73
76
|
};
|
|
74
77
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
75
78
|
TRANSCODED_MEDIA_CONNECTION: string;
|
|
@@ -83,6 +86,7 @@ export declare enum ScreenShareFloorStatus {
|
|
|
83
86
|
}
|
|
84
87
|
type FetchMeetingInfoParams = {
|
|
85
88
|
password?: string;
|
|
89
|
+
registrationId?: string;
|
|
86
90
|
captchaCode?: string;
|
|
87
91
|
extraParams?: Record<string, any>;
|
|
88
92
|
sendCAevents?: boolean;
|
|
@@ -449,6 +453,8 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
449
453
|
turnServerUsed: boolean;
|
|
450
454
|
areVoiceaEventsSetup: boolean;
|
|
451
455
|
isMoveToInProgress: boolean;
|
|
456
|
+
registrationIdStatus: string;
|
|
457
|
+
brbState: BrbState;
|
|
452
458
|
voiceaListenerCallbacks: object;
|
|
453
459
|
private addMediaData;
|
|
454
460
|
private sendSlotManager;
|
|
@@ -460,6 +466,8 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
460
466
|
private iceCandidateErrors;
|
|
461
467
|
private iceCandidatesCount;
|
|
462
468
|
private rtcMetrics?;
|
|
469
|
+
private uploadLogsTimer?;
|
|
470
|
+
private logUploadIntervalIndex;
|
|
463
471
|
/**
|
|
464
472
|
* @param {Object} attrs
|
|
465
473
|
* @param {Object} options
|
|
@@ -489,6 +497,26 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
489
497
|
* @param {string} correlationId
|
|
490
498
|
*/
|
|
491
499
|
set correlationId(correlationId: string);
|
|
500
|
+
/**
|
|
501
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
|
502
|
+
* @returns {string}
|
|
503
|
+
*/
|
|
504
|
+
get userNameInput(): string;
|
|
505
|
+
/**
|
|
506
|
+
* Setter - sets callStateForMetrics.userNameInput
|
|
507
|
+
* @param {string} userNameInput
|
|
508
|
+
*/
|
|
509
|
+
set userNameInput(userNameInput: string);
|
|
510
|
+
/**
|
|
511
|
+
* Getter - Returns callStateForMetrics.emailInput
|
|
512
|
+
* @returns {string}
|
|
513
|
+
*/
|
|
514
|
+
get emailInput(): string;
|
|
515
|
+
/**
|
|
516
|
+
* Setter - sets callStateForMetrics.emailInput
|
|
517
|
+
* @param {string} emailInput
|
|
518
|
+
*/
|
|
519
|
+
set emailInput(emailInput: string);
|
|
492
520
|
/**
|
|
493
521
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
|
494
522
|
* @returns {string}
|
|
@@ -576,6 +604,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
576
604
|
requiredCaptcha: any;
|
|
577
605
|
failureReason: string;
|
|
578
606
|
}>;
|
|
607
|
+
/**
|
|
608
|
+
* Checks if the supplied registrationId is correct. It returns a promise with information whether the
|
|
609
|
+
* registrationId and captcha code were correct or not.
|
|
610
|
+
* @param {String | undefined} registrationId - can be undefined if only captcha was required
|
|
611
|
+
* @param {String | undefined} captchaCode - can be undefined if captcha was not required by the server
|
|
612
|
+
* @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
|
|
613
|
+
* @public
|
|
614
|
+
* @memberof Meeting
|
|
615
|
+
* @returns {Promise<{isRegistrationIdValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
|
|
616
|
+
*/
|
|
617
|
+
verifyRegistrationId(registrationId: string, captchaCode: string, sendCAevents?: boolean): Promise<{
|
|
618
|
+
isRegistrationIdValid: boolean;
|
|
619
|
+
requiredCaptcha: any;
|
|
620
|
+
failureReason: string;
|
|
621
|
+
} | {
|
|
622
|
+
isRegistrationIdValid: boolean;
|
|
623
|
+
requiredCaptcha: any;
|
|
624
|
+
failureReason: string;
|
|
625
|
+
}>;
|
|
579
626
|
/**
|
|
580
627
|
* Refreshes the captcha. As a result the meeting will have new captcha id, image and audio.
|
|
581
628
|
* If the refresh operation fails, meeting remains with the old captcha properties.
|
|
@@ -804,6 +851,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
804
851
|
emailAddress: string;
|
|
805
852
|
email: string;
|
|
806
853
|
phoneNumber: string;
|
|
854
|
+
roles: Array<string>;
|
|
807
855
|
}, alertIfActive?: boolean): any;
|
|
808
856
|
/**
|
|
809
857
|
* Cancel an outgoing phone call invitation made during a meeting
|
|
@@ -834,6 +882,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
834
882
|
authorizingLocusUrl: string;
|
|
835
883
|
mainLocusUrl: string;
|
|
836
884
|
}): any;
|
|
885
|
+
/**
|
|
886
|
+
* Manages be right back status updates for the current participant.
|
|
887
|
+
*
|
|
888
|
+
* @param {boolean} enabled - Indicates whether the user enabled brb or not.
|
|
889
|
+
* @returns {Promise<void>} resolves when the brb status is updated or does nothing if not in a multistream meeting.
|
|
890
|
+
* @throws {Error} - Throws an error if the request fails.
|
|
891
|
+
*/
|
|
892
|
+
beRightBack(enabled: boolean): Promise<void>;
|
|
837
893
|
/**
|
|
838
894
|
* Remove the member from the meeting, boot them
|
|
839
895
|
* @param {String} memberId
|
|
@@ -961,6 +1017,23 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
961
1017
|
* @memberof Meeting
|
|
962
1018
|
*/
|
|
963
1019
|
uploadLogs(options?: object): void;
|
|
1020
|
+
/**
|
|
1021
|
+
* sets the timer for periodic log upload
|
|
1022
|
+
* @returns {void}
|
|
1023
|
+
*/
|
|
1024
|
+
private setLogUploadTimer;
|
|
1025
|
+
/**
|
|
1026
|
+
* Starts a periodic upload of logs
|
|
1027
|
+
*
|
|
1028
|
+
* @returns {undefined}
|
|
1029
|
+
*/
|
|
1030
|
+
startPeriodicLogUpload(): void;
|
|
1031
|
+
/**
|
|
1032
|
+
* Stops the periodic upload of logs
|
|
1033
|
+
*
|
|
1034
|
+
* @returns {undefined}
|
|
1035
|
+
*/
|
|
1036
|
+
stopPeriodicLogUpload(): void;
|
|
964
1037
|
/**
|
|
965
1038
|
* Removes remote audio, video and share streams from class instance's mediaProperties
|
|
966
1039
|
* @returns {undefined}
|
|
@@ -1026,11 +1099,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1026
1099
|
* Close the peer connections and remove them from the class.
|
|
1027
1100
|
* Cleanup any media connection related things.
|
|
1028
1101
|
*
|
|
1102
|
+
* @param {boolean} resetMuteStates whether to also reset the audio/video mute state information
|
|
1029
1103
|
* @returns {Promise}
|
|
1030
1104
|
* @public
|
|
1031
1105
|
* @memberof Meeting
|
|
1032
1106
|
*/
|
|
1033
|
-
closePeerConnections(): Promise<void>;
|
|
1107
|
+
closePeerConnections(resetMuteStates?: boolean): Promise<void>;
|
|
1034
1108
|
/**
|
|
1035
1109
|
* Unsets the peer connections on the class
|
|
1036
1110
|
* warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
|
|
@@ -1095,7 +1169,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1095
1169
|
* @param {Object} options - options to join with media
|
|
1096
1170
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
1097
1171
|
* @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
|
|
1098
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
1172
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia(), multistreamEnabled: flag to indicate if we managed to join in multistream mode}
|
|
1099
1173
|
* @public
|
|
1100
1174
|
* @memberof Meeting
|
|
1101
1175
|
* @example
|
|
@@ -1244,7 +1318,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1244
1318
|
* @public
|
|
1245
1319
|
* @memberof Meeting
|
|
1246
1320
|
*/
|
|
1247
|
-
moveTo(resourceId: string):
|
|
1321
|
+
moveTo(resourceId: string): Promise<void>;
|
|
1248
1322
|
/**
|
|
1249
1323
|
* Moves the call from the specified resourceId, back to computer
|
|
1250
1324
|
* @param {String} resourceId
|
|
@@ -1252,7 +1326,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1252
1326
|
* @public
|
|
1253
1327
|
* @memberof Meeting
|
|
1254
1328
|
*/
|
|
1255
|
-
moveFrom(resourceId: string): any
|
|
1329
|
+
moveFrom(resourceId: string): Promise<any>;
|
|
1256
1330
|
/**
|
|
1257
1331
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1258
1332
|
*
|
|
@@ -1317,16 +1391,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1317
1391
|
* @returns {void}
|
|
1318
1392
|
*/
|
|
1319
1393
|
private createStatsAnalyzer;
|
|
1320
|
-
/**
|
|
1321
|
-
* Handles device logging
|
|
1322
|
-
*
|
|
1323
|
-
* @private
|
|
1324
|
-
* @static
|
|
1325
|
-
* @param {boolean} isAudioEnabled
|
|
1326
|
-
* @param {boolean} isVideoEnabled
|
|
1327
|
-
* @returns {Promise<void>}
|
|
1328
|
-
*/
|
|
1329
|
-
private static handleDeviceLogging;
|
|
1330
1394
|
/**
|
|
1331
1395
|
* Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
|
|
1332
1396
|
* once the remote sdp answer has been received.
|
|
@@ -1392,6 +1456,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1392
1456
|
* @returns {Promise<void>}
|
|
1393
1457
|
*/
|
|
1394
1458
|
private cleanUpOnAddMediaFailure;
|
|
1459
|
+
/**
|
|
1460
|
+
* Cleans up stats analyzer, peer connection and other things before
|
|
1461
|
+
* we can create a new transcoded media connection
|
|
1462
|
+
*
|
|
1463
|
+
* @private
|
|
1464
|
+
* @returns {Promise<void>}
|
|
1465
|
+
*/
|
|
1466
|
+
private downgradeFromMultistreamToTranscoded;
|
|
1395
1467
|
/**
|
|
1396
1468
|
* Sends stats report, closes peer connection and cleans up any media connection
|
|
1397
1469
|
* related things before trying to establish media connection again with turn server
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WebexPlugin } from '@webex/webex-core';
|
|
2
|
-
import {
|
|
2
|
+
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
|
3
3
|
export type MediaRequestType = 'RoapMessage' | 'LocalMute';
|
|
4
4
|
export type RequestResult = any;
|
|
5
5
|
export type RoapRequest = {
|
|
@@ -8,9 +8,8 @@ export type RoapRequest = {
|
|
|
8
8
|
mediaId: string;
|
|
9
9
|
roapMessage: any;
|
|
10
10
|
reachability: any;
|
|
11
|
+
clientMediaPreferences: ClientMediaPreferences;
|
|
11
12
|
sequence?: any;
|
|
12
|
-
joinCookie: any;
|
|
13
|
-
ipVersion?: IP_VERSION;
|
|
14
13
|
};
|
|
15
14
|
export type LocalMuteRequest = {
|
|
16
15
|
type: 'LocalMute';
|
|
@@ -74,4 +73,8 @@ export declare class LocusMediaRequest extends WebexPlugin {
|
|
|
74
73
|
send(request: Request): Promise<RequestResult>;
|
|
75
74
|
/** Returns true if a confluence on the server is already created */
|
|
76
75
|
isConfluenceCreated(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* This method needs to be called when we downgrade from multistream to transcoded connection.
|
|
78
|
+
*/
|
|
79
|
+
downgradeFromMultistreamToTranscoded(): void;
|
|
77
80
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
-
import {
|
|
3
|
-
import { SendReactionOptions, ToggleReactionsOptions } from './request.type';
|
|
2
|
+
import { SendReactionOptions, BrbOptions, ToggleReactionsOptions } from './request.type';
|
|
4
3
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
|
4
|
+
import { ClientMediaPreferences } from '../reachability/reachability.types';
|
|
5
5
|
/**
|
|
6
6
|
* @class MeetingRequest
|
|
7
7
|
*/
|
|
@@ -63,8 +63,8 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
63
63
|
locale?: string;
|
|
64
64
|
deviceCapabilities?: Array<string>;
|
|
65
65
|
liveAnnotationSupported: boolean;
|
|
66
|
-
ipVersion?: IP_VERSION;
|
|
67
66
|
alias?: string;
|
|
67
|
+
clientMediaPreferences: ClientMediaPreferences;
|
|
68
68
|
}): Promise<any>;
|
|
69
69
|
/**
|
|
70
70
|
* Send a request to refresh the captcha
|
|
@@ -292,4 +292,15 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
292
292
|
*/
|
|
293
293
|
toggleReactions({ enable, locusUrl, requestingParticipantId }: ToggleReactionsOptions): Promise<any>;
|
|
294
294
|
getLocusStatusByUrl(locusUrl: string): any;
|
|
295
|
+
/**
|
|
296
|
+
* Sends a request to set be right back status.
|
|
297
|
+
*
|
|
298
|
+
* @param {Object} options - The options for brb request.
|
|
299
|
+
* @param {boolean} options.enabled - Whether brb status is enabled.
|
|
300
|
+
* @param {string} options.locusUrl - The URL of the locus.
|
|
301
|
+
* @param {string} options.deviceUrl - The URL of the device.
|
|
302
|
+
* @param {string} options.selfId - The ID of the participant.
|
|
303
|
+
* @returns {Promise}
|
|
304
|
+
*/
|
|
305
|
+
setBrb({ enabled, locusUrl, deviceUrl, selfId }: BrbOptions): Promise<any>;
|
|
295
306
|
}
|
|
@@ -14,7 +14,7 @@ declare const MeetingUtil: {
|
|
|
14
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
15
|
*/
|
|
16
16
|
getIpVersion(webex: any): IP_VERSION | undefined;
|
|
17
|
-
joinMeeting: (meeting: any, options: any) => any
|
|
17
|
+
joinMeeting: (meeting: any, options: any) => Promise<any>;
|
|
18
18
|
cleanUp: (meeting: any) => any;
|
|
19
19
|
disconnectPhoneAudio: (meeting: any, phoneUrl: any) => any;
|
|
20
20
|
/**
|
|
@@ -30,7 +30,7 @@ declare const MeetingUtil: {
|
|
|
30
30
|
isUserInIdleState: (locusInfo: any) => boolean;
|
|
31
31
|
isUserInJoinedState: (locusInfo: any) => boolean;
|
|
32
32
|
isMediaEstablished: (currentMediaStatus: any) => any;
|
|
33
|
-
joinMeetingOptions: (meeting: any, options?: any) => any
|
|
33
|
+
joinMeetingOptions: (meeting: any, options?: any) => Promise<any>;
|
|
34
34
|
/**
|
|
35
35
|
* Returns request options for leaving a meeting.
|
|
36
36
|
* @param {any} meeting
|
|
@@ -54,6 +54,7 @@ declare const MeetingUtil: {
|
|
|
54
54
|
canUserLowerSomeoneElsesHand: (displayHints: any) => any;
|
|
55
55
|
bothLeaveAndEndMeetingAvailable: (displayHints: any) => any;
|
|
56
56
|
canManageBreakout: (displayHints: any) => any;
|
|
57
|
+
canStartBreakout: (displayHints: any) => boolean;
|
|
57
58
|
canBroadcastMessageToBreakout: (displayHints: any, policies?: {}) => boolean;
|
|
58
59
|
isSuppressBreakoutSupport: (displayHints: any) => any;
|
|
59
60
|
canAdmitLobbyToBreakout: (displayHints: any) => boolean;
|
|
@@ -63,7 +64,6 @@ declare const MeetingUtil: {
|
|
|
63
64
|
unlockMeeting: (actions: any, request: any, locusUrl: any) => any;
|
|
64
65
|
handleAudioLogging: (audioStream?: LocalMicrophoneStream) => void;
|
|
65
66
|
handleVideoLogging: (videoStream?: LocalCameraStream) => void;
|
|
66
|
-
handleDeviceLogging: (devices?: any[]) => void;
|
|
67
67
|
endMeetingForAll: (meeting: any) => any;
|
|
68
68
|
canEnableClosedCaption: (displayHints: any) => any;
|
|
69
69
|
isSaveTranscriptsEnabled: (displayHints: any) => any;
|
|
@@ -52,6 +52,7 @@ export declare class MeetingInfoV2PolicyError extends Error {
|
|
|
52
52
|
export declare class MeetingInfoV2CaptchaError extends Error {
|
|
53
53
|
captchaInfo: any;
|
|
54
54
|
isPasswordRequired: any;
|
|
55
|
+
isRegistrationIdRequired: any;
|
|
55
56
|
sdkMessage: any;
|
|
56
57
|
wbxAppApiCode: any;
|
|
57
58
|
body: any;
|
|
@@ -65,9 +66,26 @@ export declare class MeetingInfoV2CaptchaError extends Error {
|
|
|
65
66
|
constructor(wbxAppApiErrorCode?: number, captchaInfo?: object, message?: string);
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
|
-
* Error preventing join because of a webinar
|
|
69
|
+
* Error preventing join because of a webinar have some error
|
|
69
70
|
*/
|
|
70
|
-
export declare class
|
|
71
|
+
export declare class MeetingInfoV2JoinWebinarError extends Error {
|
|
72
|
+
meetingInfo: any;
|
|
73
|
+
sdkMessage: any;
|
|
74
|
+
wbxAppApiCode: any;
|
|
75
|
+
body: any;
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* @constructor
|
|
79
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
80
|
+
* @param {Object} [meetingInfo]
|
|
81
|
+
* @param {String} [message]
|
|
82
|
+
*/
|
|
83
|
+
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Error preventing join because of a forbidden error
|
|
87
|
+
*/
|
|
88
|
+
export declare class MeetingInfoV2JoinForbiddenError extends Error {
|
|
71
89
|
meetingInfo: any;
|
|
72
90
|
sdkMessage: any;
|
|
73
91
|
wbxAppApiCode: any;
|
|
@@ -107,11 +125,17 @@ export default class MeetingInfoV2 {
|
|
|
107
125
|
*/
|
|
108
126
|
handlePolicyError: (err: any) => void;
|
|
109
127
|
/**
|
|
110
|
-
* Raises a
|
|
128
|
+
* Raises a handleJoinWebinarError for join webinar error codes
|
|
129
|
+
* @param {any} err the error from the request
|
|
130
|
+
* @returns {void}
|
|
131
|
+
*/
|
|
132
|
+
handleJoinWebinarError: (err: any) => void;
|
|
133
|
+
/**
|
|
134
|
+
* Raises a handleForbiddenError for join meeting forbidden error
|
|
111
135
|
* @param {any} err the error from the request
|
|
112
136
|
* @returns {void}
|
|
113
137
|
*/
|
|
114
|
-
|
|
138
|
+
handleForbiddenError: (err: any) => void;
|
|
115
139
|
/**
|
|
116
140
|
* Creates adhoc space meetings for a space by fetching the conversation infomation
|
|
117
141
|
* @param {String} conversationUrl conversationUrl to start adhoc meeting on
|
|
@@ -133,6 +157,7 @@ export default class MeetingInfoV2 {
|
|
|
133
157
|
* @param {String} locusId
|
|
134
158
|
* @param {Object} extraParams
|
|
135
159
|
* @param {Object} options
|
|
160
|
+
* @param {String} registrationId
|
|
136
161
|
* @returns {Promise} returns a meeting info object
|
|
137
162
|
* @public
|
|
138
163
|
* @memberof MeetingInfo
|
|
@@ -143,5 +168,5 @@ export default class MeetingInfoV2 {
|
|
|
143
168
|
}, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
|
|
144
169
|
meetingId?: string;
|
|
145
170
|
sendCAevents?: boolean;
|
|
146
|
-
}): Promise<any>;
|
|
171
|
+
}, registrationId?: string): Promise<any>;
|
|
147
172
|
}
|
|
@@ -8,7 +8,7 @@ import 'webrtc-adapter';
|
|
|
8
8
|
import { DESTINATION_TYPE } from '../constants';
|
|
9
9
|
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
|
-
import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
|
|
11
|
+
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
12
12
|
/**
|
|
13
13
|
* Meetings Ready Event
|
|
14
14
|
* Emitted when the meetings instance on webex is ready
|
|
@@ -71,6 +71,9 @@ export type BasicMeetingInformation = {
|
|
|
71
71
|
};
|
|
72
72
|
meetingInfo: any;
|
|
73
73
|
sessionCorrelationId: string;
|
|
74
|
+
roles: string[];
|
|
75
|
+
getCurUserType: () => string | null;
|
|
76
|
+
callStateForMetrics: CallStateForMetrics;
|
|
74
77
|
};
|
|
75
78
|
/**
|
|
76
79
|
* Maintain a cache of meetings and sync with services.
|
|
@@ -91,6 +94,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
91
94
|
mediaHelpers: any;
|
|
92
95
|
breakoutLocusForHandleLater: any;
|
|
93
96
|
namespace: string;
|
|
97
|
+
registrationStatus: MeetingRegistrationStatus;
|
|
94
98
|
/**
|
|
95
99
|
* Initializes the Meetings Plugin
|
|
96
100
|
* @constructor
|
|
@@ -175,6 +179,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
175
179
|
* @memberof Meetings
|
|
176
180
|
*/
|
|
177
181
|
private onReady;
|
|
182
|
+
/**
|
|
183
|
+
* API to change log upload interval. Setting the factor to 0 will disable periodic log uploads.
|
|
184
|
+
*
|
|
185
|
+
* @param {number} factor new factor value
|
|
186
|
+
* @returns {void}
|
|
187
|
+
*/
|
|
188
|
+
private _setLogUploadIntervalMultiplicationFactor;
|
|
178
189
|
/**
|
|
179
190
|
* API to toggle unified meetings
|
|
180
191
|
* @param {Boolean} changeState
|
|
@@ -216,6 +227,13 @@ export default class Meetings extends WebexPlugin {
|
|
|
216
227
|
* @returns {undefined}
|
|
217
228
|
*/
|
|
218
229
|
private _toggleIpv6BackendNativeSupport;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a registration step and updates the registration status.
|
|
232
|
+
* @param {Function} step - The registration step to execute.
|
|
233
|
+
* @param {string} stepName - The name of the registration step.
|
|
234
|
+
* @returns {Promise} A promise that resolves when the step is completed.
|
|
235
|
+
*/
|
|
236
|
+
executeRegistrationStep(step: () => Promise<any>, stepName: string): Promise<void>;
|
|
219
237
|
/**
|
|
220
238
|
* Explicitly sets up the meetings plugin by registering
|
|
221
239
|
* the device, connecting to mercury, and listening for locus events.
|
|
@@ -290,7 +308,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
290
308
|
* @public
|
|
291
309
|
* @memberof Meetings
|
|
292
310
|
*/
|
|
293
|
-
startReachability(trigger?: string): Promise<import("../reachability").ReachabilityResults>;
|
|
311
|
+
startReachability(trigger?: string): Promise<import("../reachability/reachability.types").ReachabilityResults>;
|
|
294
312
|
/**
|
|
295
313
|
* Get geoHint for info for meetings
|
|
296
314
|
* @returns {Promise}
|
|
@@ -11,3 +11,11 @@ export declare const MEETING_KEY: {
|
|
|
11
11
|
readonly CORRELATION_ID: "correlationId";
|
|
12
12
|
};
|
|
13
13
|
export type MEETING_KEY = Enum<typeof MEETING_KEY>;
|
|
14
|
+
export type MeetingRegistrationStatus = {
|
|
15
|
+
fetchWebexSite: boolean;
|
|
16
|
+
getGeoHint: boolean;
|
|
17
|
+
startReachability: boolean;
|
|
18
|
+
deviceRegister: boolean;
|
|
19
|
+
mercuryConnect: boolean;
|
|
20
|
+
checkH264Support: boolean;
|
|
21
|
+
};
|
|
@@ -26,6 +26,7 @@ declare const MembersUtil: {
|
|
|
26
26
|
*/
|
|
27
27
|
getAddMemberBody: (options: any) => {
|
|
28
28
|
invitees: {
|
|
29
|
+
roles?: any;
|
|
29
30
|
address: any;
|
|
30
31
|
}[];
|
|
31
32
|
alertIfActive: any;
|
|
@@ -54,6 +55,7 @@ declare const MembersUtil: {
|
|
|
54
55
|
uri: any;
|
|
55
56
|
body: {
|
|
56
57
|
invitees: {
|
|
58
|
+
roles?: any;
|
|
57
59
|
address: any;
|
|
58
60
|
}[];
|
|
59
61
|
alertIfActive: any;
|
|
@@ -67,6 +67,11 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
67
67
|
ROAP_HTTP_RESPONSE_MISSING: string;
|
|
68
68
|
TURN_DISCOVERY_REQUIRES_OK: string;
|
|
69
69
|
REACHABILITY_COMPLETED: string;
|
|
70
|
-
|
|
70
|
+
JOIN_WEBINAR_ERROR: string;
|
|
71
|
+
GUEST_ENTERED_LOBBY: string;
|
|
72
|
+
GUEST_EXITED_LOBBY: string;
|
|
73
|
+
VERIFY_REGISTRATION_ID_SUCCESS: string;
|
|
74
|
+
VERIFY_REGISTRATION_ID_ERROR: string;
|
|
75
|
+
JOIN_FORBIDDEN_ERROR: string;
|
|
71
76
|
};
|
|
72
77
|
export { BEHAVIORAL_METRICS as default };
|
|
@@ -249,13 +249,22 @@ export declare class RemoteMediaManager extends EventsScope {
|
|
|
249
249
|
private invalidateCurrentRemoteMedia;
|
|
250
250
|
/** emits Event.VideoLayoutChanged */
|
|
251
251
|
private emitVideoLayoutChangedEvent;
|
|
252
|
+
/**
|
|
253
|
+
* Set multiple remote video CSIs at once
|
|
254
|
+
* @param remoteMediaCsis The remote medias and CSIs to set them to
|
|
255
|
+
* @returns {void}
|
|
256
|
+
*/
|
|
257
|
+
setRemoteVideoCsis(remoteMediaCsis: {
|
|
258
|
+
remoteMedia: RemoteMedia;
|
|
259
|
+
csi?: CSI | null;
|
|
260
|
+
}[]): void;
|
|
252
261
|
/**
|
|
253
262
|
* Sets a new CSI on a given remote media object
|
|
254
263
|
*
|
|
255
264
|
* @param {RemoteMedia} remoteMedia remote Media object to modify
|
|
256
265
|
* @param {CSI} csi new CSI value, can be null if we want to stop receiving media
|
|
257
266
|
*/
|
|
258
|
-
setRemoteVideoCsi(remoteMedia: RemoteMedia, csi
|
|
267
|
+
setRemoteVideoCsi(remoteMedia: RemoteMedia, csi?: CSI | null): void;
|
|
259
268
|
/**
|
|
260
269
|
* Adds a new member video pane to the currently selected layout.
|
|
261
270
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup } from '@webex/internal-media-core';
|
|
1
|
+
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup, StreamState } from '@webex/internal-media-core';
|
|
2
2
|
export default class SendSlotManager {
|
|
3
3
|
private readonly slots;
|
|
4
4
|
private readonly LoggerProxy;
|
|
@@ -25,6 +25,13 @@ export default class SendSlotManager {
|
|
|
25
25
|
* @returns {void}
|
|
26
26
|
*/
|
|
27
27
|
setNamedMediaGroups(mediaType: MediaType, namedMediaGroups: NamedMediaGroup[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the source state override for the given media type.
|
|
30
|
+
* @param {MediaType} mediaType - The type of media (must be MediaType.VideoMain to apply source state changes).
|
|
31
|
+
* @param {StreamState | null} state - The state to set or null to clear the override value.
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
setSourceStateOverride(mediaType: MediaType, state: StreamState | null): void;
|
|
28
35
|
/**
|
|
29
36
|
* This method publishes the given stream to the sendSlot for the given mediaType
|
|
30
37
|
* @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import { ClusterNode } from './request';
|
|
2
2
|
import EventsScope from '../common/events/events-scope';
|
|
3
3
|
import { Enum } from '../constants';
|
|
4
|
-
|
|
5
|
-
result: 'reachable' | 'unreachable' | 'untested';
|
|
6
|
-
latencyInMilliseconds?: number;
|
|
7
|
-
clientMediaIPs?: string[];
|
|
8
|
-
};
|
|
9
|
-
export type ClusterReachabilityResult = {
|
|
10
|
-
udp: TransportResult;
|
|
11
|
-
tcp: TransportResult;
|
|
12
|
-
xtls: TransportResult;
|
|
13
|
-
};
|
|
4
|
+
import { ClusterReachabilityResult } from './reachability.types';
|
|
14
5
|
export type ResultEventData = {
|
|
15
6
|
protocol: 'udp' | 'tcp' | 'xtls';
|
|
16
7
|
result: 'reachable' | 'unreachable' | 'untested';
|