@webex/plugin-meetings 3.0.0 → 3.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +8 -4
- package/dist/constants.js.map +1 -1
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -1
- package/dist/interpretation/index.js +16 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/selfUtils.js +5 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +163 -0
- package/dist/media/MediaConnectionAwaiter.js.map +1 -0
- package/dist/media/index.js +4 -1
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +4 -24
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/index.js +893 -677
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +37 -25
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +32 -23
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/util.js +304 -267
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +334 -295
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/index.js +20 -0
- package/dist/meetings/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +16 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +179 -65
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +22 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +29 -15
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +18 -2
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +19 -0
- package/dist/reachability/util.js.map +1 -1
- package/dist/reconnection-manager/index.js +2 -1
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +15 -0
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +3 -3
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +307 -126
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/index.js +53 -30
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/{config.d.ts → types/config.d.ts} +1 -0
- package/dist/{constants.d.ts → types/constants.d.ts} +5 -4
- package/dist/types/index.d.ts +19 -0
- package/dist/types/media/MediaConnectionAwaiter.d.ts +61 -0
- package/dist/{meeting → types/meeting}/index.d.ts +26 -7
- package/dist/{meeting → types/meeting}/muteState.d.ts +2 -8
- package/dist/{meeting → types/meeting}/request.d.ts +3 -0
- package/dist/{meeting-info → types/meeting-info}/index.d.ts +1 -1
- package/dist/{meeting-info → types/meeting-info}/meeting-info-v2.d.ts +1 -1
- package/dist/types/meeting-info/util.d.ts +49 -0
- package/dist/types/meeting-info/utilv2.d.ts +65 -0
- package/dist/{meetings → types/meetings}/index.d.ts +8 -0
- package/dist/{multistream → types/multistream}/mediaRequestManager.d.ts +2 -1
- package/dist/{multistream → types/multistream}/remoteMediaGroup.d.ts +2 -0
- package/dist/{multistream → types/multistream}/remoteMediaManager.d.ts +15 -0
- package/dist/{multistream → types/multistream}/sendSlotManager.d.ts +9 -1
- package/dist/{reachability → types/reachability}/clusterReachability.d.ts +1 -0
- package/dist/{reachability → types/reachability}/index.d.ts +4 -0
- package/dist/{reachability → types/reachability}/util.d.ts +7 -0
- package/dist/{roap → types/roap}/index.d.ts +10 -2
- package/dist/{roap → types/roap}/turnDiscovery.d.ts +64 -17
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/config.ts +1 -0
- package/src/constants.ts +7 -3
- package/src/index.ts +31 -0
- package/src/interpretation/index.ts +18 -1
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/selfUtils.ts +5 -0
- package/src/media/MediaConnectionAwaiter.ts +174 -0
- package/src/media/index.ts +3 -1
- package/src/media/properties.ts +6 -31
- package/src/meeting/index.ts +321 -106
- package/src/meeting/muteState.ts +34 -20
- package/src/meeting/request.ts +18 -2
- package/src/meeting/util.ts +1 -0
- package/src/meeting-info/util.ts +241 -233
- package/src/meeting-info/utilv2.ts +250 -243
- package/src/meetings/index.ts +18 -0
- package/src/multistream/mediaRequestManager.ts +4 -1
- package/src/multistream/remoteMediaGroup.ts +19 -0
- package/src/multistream/remoteMediaManager.ts +101 -16
- package/src/multistream/sendSlotManager.ts +28 -0
- package/src/reachability/clusterReachability.ts +20 -5
- package/src/reachability/index.ts +24 -1
- package/src/reachability/request.ts +15 -11
- package/src/reachability/util.ts +21 -0
- package/src/reconnection-manager/index.ts +1 -1
- package/src/roap/index.ts +25 -3
- package/src/roap/request.ts +3 -3
- package/src/roap/turnDiscovery.ts +244 -78
- package/src/statsAnalyzer/index.ts +63 -27
- package/test/integration/spec/journey.js +14 -14
- package/test/integration/spec/space-meeting.js +1 -1
- package/test/unit/spec/interpretation/index.ts +39 -3
- package/test/unit/spec/locus-info/index.js +28 -19
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
- package/test/unit/spec/locus-info/selfUtils.js +42 -12
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
- package/test/unit/spec/media/index.ts +89 -78
- package/test/unit/spec/media/properties.ts +16 -70
- package/test/unit/spec/meeting/index.js +638 -139
- package/test/unit/spec/meeting/muteState.js +219 -67
- package/test/unit/spec/meeting/request.js +21 -0
- package/test/unit/spec/meeting/utils.js +6 -1
- package/test/unit/spec/meeting-info/utilv2.js +6 -0
- package/test/unit/spec/meetings/index.js +40 -20
- package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +79 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +199 -1
- package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
- package/test/unit/spec/reachability/clusterReachability.ts +86 -22
- package/test/unit/spec/reachability/index.ts +197 -60
- package/test/unit/spec/reachability/request.js +15 -7
- package/test/unit/spec/reachability/util.ts +32 -2
- package/test/unit/spec/reconnection-manager/index.js +28 -0
- package/test/unit/spec/roap/index.ts +61 -6
- package/test/unit/spec/roap/turnDiscovery.ts +298 -16
- package/test/unit/spec/stats-analyzer/index.js +179 -0
- package/dist/index.d.ts +0 -7
- package/dist/meeting-info/util.d.ts +0 -2
- package/dist/meeting-info/utilv2.d.ts +0 -2
- package/dist/member/member.types.d.ts +0 -11
- package/dist/member/member.types.js +0 -17
- package/dist/member/member.types.js.map +0 -1
- package/src/member/member.types.ts +0 -13
- /package/dist/{annotation → types/annotation}/annotation.types.d.ts +0 -0
- /package/dist/{annotation → types/annotation}/constants.d.ts +0 -0
- /package/dist/{annotation → types/annotation}/index.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/breakout.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/collection.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/edit-lock-error.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/events.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/index.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/request.d.ts +0 -0
- /package/dist/{breakouts → types/breakouts}/utils.d.ts +0 -0
- /package/dist/{common → types/common}/browser-detection.d.ts +0 -0
- /package/dist/{common → types/common}/collection.d.ts +0 -0
- /package/dist/{common → types/common}/config.d.ts +0 -0
- /package/dist/{common → types/common}/errors/captcha-error.d.ts +0 -0
- /package/dist/{common → types/common}/errors/intent-to-join.d.ts +0 -0
- /package/dist/{common → types/common}/errors/join-meeting.d.ts +0 -0
- /package/dist/{common → types/common}/errors/media.d.ts +0 -0
- /package/dist/{common → types/common}/errors/no-meeting-info.d.ts +0 -0
- /package/dist/{common → types/common}/errors/parameter.d.ts +0 -0
- /package/dist/{common → types/common}/errors/password-error.d.ts +0 -0
- /package/dist/{common → types/common}/errors/permission.d.ts +0 -0
- /package/dist/{common → types/common}/errors/reclaim-host-role-errors.d.ts +0 -0
- /package/dist/{common → types/common}/errors/reconnection-in-progress.d.ts +0 -0
- /package/dist/{common → types/common}/errors/reconnection.d.ts +0 -0
- /package/dist/{common → types/common}/errors/stats.d.ts +0 -0
- /package/dist/{common → types/common}/errors/webex-errors.d.ts +0 -0
- /package/dist/{common → types/common}/errors/webex-meetings-error.d.ts +0 -0
- /package/dist/{common → types/common}/events/events-scope.d.ts +0 -0
- /package/dist/{common → types/common}/events/events.d.ts +0 -0
- /package/dist/{common → types/common}/events/trigger-proxy.d.ts +0 -0
- /package/dist/{common → types/common}/events/util.d.ts +0 -0
- /package/dist/{common → types/common}/logs/logger-config.d.ts +0 -0
- /package/dist/{common → types/common}/logs/logger-proxy.d.ts +0 -0
- /package/dist/{common → types/common}/logs/request.d.ts +0 -0
- /package/dist/{common → types/common}/queue.d.ts +0 -0
- /package/dist/{controls-options-manager → types/controls-options-manager}/constants.d.ts +0 -0
- /package/dist/{controls-options-manager → types/controls-options-manager}/enums.d.ts +0 -0
- /package/dist/{controls-options-manager → types/controls-options-manager}/index.d.ts +0 -0
- /package/dist/{controls-options-manager → types/controls-options-manager}/types.d.ts +0 -0
- /package/dist/{controls-options-manager → types/controls-options-manager}/util.d.ts +0 -0
- /package/dist/{interceptors → types/interceptors}/index.d.ts +0 -0
- /package/dist/{interceptors → types/interceptors}/locusRetry.d.ts +0 -0
- /package/dist/{interpretation → types/interpretation}/collection.d.ts +0 -0
- /package/dist/{interpretation → types/interpretation}/index.d.ts +0 -0
- /package/dist/{interpretation → types/interpretation}/siLanguage.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/controlsUtils.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/embeddedAppsUtils.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/fullState.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/hostUtils.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/index.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/infoUtils.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/mediaSharesUtils.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/parser.d.ts +0 -0
- /package/dist/{locus-info → types/locus-info}/selfUtils.d.ts +0 -0
- /package/dist/{media → types/media}/index.d.ts +0 -0
- /package/dist/{media → types/media}/properties.d.ts +0 -0
- /package/dist/{media → types/media}/util.d.ts +0 -0
- /package/dist/{mediaQualityMetrics → types/mediaQualityMetrics}/config.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/in-meeting-actions.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/locusMediaRequest.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/request.type.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/state.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/util.d.ts +0 -0
- /package/dist/{meeting → types/meeting}/voicea-meeting.d.ts +0 -0
- /package/dist/{meeting-info → types/meeting-info}/collection.d.ts +0 -0
- /package/dist/{meeting-info → types/meeting-info}/request.d.ts +0 -0
- /package/dist/{meetings → types/meetings}/collection.d.ts +0 -0
- /package/dist/{meetings → types/meetings}/meetings.types.d.ts +0 -0
- /package/dist/{meetings → types/meetings}/request.d.ts +0 -0
- /package/dist/{meetings → types/meetings}/util.d.ts +0 -0
- /package/dist/{member → types/member}/index.d.ts +0 -0
- /package/dist/{member → types/member}/types.d.ts +0 -0
- /package/dist/{member → types/member}/util.d.ts +0 -0
- /package/dist/{members → types/members}/collection.d.ts +0 -0
- /package/dist/{members → types/members}/index.d.ts +0 -0
- /package/dist/{members → types/members}/request.d.ts +0 -0
- /package/dist/{members → types/members}/types.d.ts +0 -0
- /package/dist/{members → types/members}/util.d.ts +0 -0
- /package/dist/{metrics → types/metrics}/constants.d.ts +0 -0
- /package/dist/{metrics → types/metrics}/index.d.ts +0 -0
- /package/dist/{multistream → types/multistream}/receiveSlot.d.ts +0 -0
- /package/dist/{multistream → types/multistream}/receiveSlotManager.d.ts +0 -0
- /package/dist/{multistream → types/multistream}/remoteMedia.d.ts +0 -0
- /package/dist/{networkQualityMonitor → types/networkQualityMonitor}/index.d.ts +0 -0
- /package/dist/{personal-meeting-room → types/personal-meeting-room}/index.d.ts +0 -0
- /package/dist/{personal-meeting-room → types/personal-meeting-room}/request.d.ts +0 -0
- /package/dist/{personal-meeting-room → types/personal-meeting-room}/util.d.ts +0 -0
- /package/dist/{reachability → types/reachability}/request.d.ts +0 -0
- /package/dist/{reactions → types/reactions}/constants.d.ts +0 -0
- /package/dist/{reactions → types/reactions}/reactions.d.ts +0 -0
- /package/dist/{reactions → types/reactions}/reactions.type.d.ts +0 -0
- /package/dist/{reconnection-manager → types/reconnection-manager}/index.d.ts +0 -0
- /package/dist/{recording-controller → types/recording-controller}/enums.d.ts +0 -0
- /package/dist/{recording-controller → types/recording-controller}/index.d.ts +0 -0
- /package/dist/{recording-controller → types/recording-controller}/util.d.ts +0 -0
- /package/dist/{roap → types/roap}/request.d.ts +0 -0
- /package/dist/{rtcMetrics → types/rtcMetrics}/constants.d.ts +0 -0
- /package/dist/{rtcMetrics → types/rtcMetrics}/index.d.ts +0 -0
- /package/dist/{statsAnalyzer → types/statsAnalyzer}/global.d.ts +0 -0
- /package/dist/{statsAnalyzer → types/statsAnalyzer}/index.d.ts +0 -0
- /package/dist/{statsAnalyzer → types/statsAnalyzer}/mqaUtil.d.ts +0 -0
- /package/dist/{transcription → types/transcription}/index.d.ts +0 -0
- /package/dist/{webinar → types/webinar}/collection.d.ts +0 -0
- /package/dist/{webinar → types/webinar}/index.d.ts +0 -0
- /package/test/unit/spec/locus-info/{lib/selfConstant.js → selfConstant.js} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
3
3
|
import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
|
|
4
|
+
import { ClientEvent as RawClientEvent } from '@webex/event-dictionary-ts';
|
|
5
|
+
import { MediaType } from '@webex/internal-media-core';
|
|
4
6
|
import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
|
|
5
7
|
import { StatsAnalyzer } from '../statsAnalyzer';
|
|
6
8
|
import NetworkQualityMonitor from '../networkQualityMonitor';
|
|
7
|
-
import Roap from '../roap/index';
|
|
9
|
+
import Roap, { type TurnServerInfo, type TurnDiscoverySkipReason } from '../roap/index';
|
|
8
10
|
import { type BundlePolicy } from '../media';
|
|
9
11
|
import MediaProperties from '../media/properties';
|
|
10
12
|
import ReconnectionManager from '../reconnection-manager';
|
|
@@ -434,8 +436,8 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
434
436
|
resourceUrl: string;
|
|
435
437
|
selfId: string;
|
|
436
438
|
state: any;
|
|
437
|
-
localAudioStreamMuteStateHandler: (
|
|
438
|
-
localVideoStreamMuteStateHandler: (
|
|
439
|
+
localAudioStreamMuteStateHandler: () => void;
|
|
440
|
+
localVideoStreamMuteStateHandler: () => void;
|
|
439
441
|
localOutputTrackChangeHandler: () => void;
|
|
440
442
|
roles: any[];
|
|
441
443
|
environment: string;
|
|
@@ -443,7 +445,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
443
445
|
allowMediaInLobby: boolean;
|
|
444
446
|
localShareInstanceId: string;
|
|
445
447
|
remoteShareInstanceId: string;
|
|
446
|
-
turnDiscoverySkippedReason:
|
|
448
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
|
447
449
|
turnServerUsed: boolean;
|
|
448
450
|
areVoiceaEventsSetup: boolean;
|
|
449
451
|
voiceaListenerCallbacks: object;
|
|
@@ -1326,6 +1328,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1326
1328
|
* @returns {Promise<void>}
|
|
1327
1329
|
*/
|
|
1328
1330
|
private handleWaitForMediaConnectionConnectedError;
|
|
1331
|
+
/**
|
|
1332
|
+
* Performs TURN discovery as a separate call to the Locus /media API
|
|
1333
|
+
*
|
|
1334
|
+
* @param {boolean} isRetry
|
|
1335
|
+
* @param {boolean} isForced
|
|
1336
|
+
* @returns {Promise}
|
|
1337
|
+
*/
|
|
1338
|
+
private doTurnDiscovery;
|
|
1329
1339
|
/**
|
|
1330
1340
|
* Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
|
|
1331
1341
|
*
|
|
@@ -1333,6 +1343,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1333
1343
|
* @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
|
|
1334
1344
|
* @param {BundlePolicy} [bundlePolicy]
|
|
1335
1345
|
* @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
|
|
1346
|
+
* @param {TurnServerInfo} [turnServerInfo]
|
|
1336
1347
|
* @returns {Promise<void>}
|
|
1337
1348
|
*/
|
|
1338
1349
|
private establishMediaConnection;
|
|
@@ -1355,11 +1366,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1355
1366
|
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1356
1367
|
*
|
|
1357
1368
|
* @param {AddMediaOptions} options
|
|
1369
|
+
* @param {TurnServerInfo} turnServerInfo - TURN server information (used only internally by the SDK)
|
|
1358
1370
|
* @returns {Promise<void>}
|
|
1359
1371
|
* @public
|
|
1360
1372
|
* @memberof Meeting
|
|
1361
1373
|
*/
|
|
1362
|
-
addMedia(options?: AddMediaOptions): Promise<void>;
|
|
1374
|
+
addMedia(options?: AddMediaOptions, turnServerInfo?: TurnServerInfo): Promise<void>;
|
|
1363
1375
|
/**
|
|
1364
1376
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1365
1377
|
* @returns {Boolean}
|
|
@@ -1681,9 +1693,9 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1681
1693
|
private handleMediaLogging;
|
|
1682
1694
|
/**
|
|
1683
1695
|
*
|
|
1684
|
-
* @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
|
|
1696
|
+
* @returns {string} one of 'panelist', 'attendee', 'host', 'cohost', returns the user type of the current user
|
|
1685
1697
|
*/
|
|
1686
|
-
getCurUserType():
|
|
1698
|
+
getCurUserType(): RawClientEvent['userType'] | null;
|
|
1687
1699
|
/**
|
|
1688
1700
|
* End the current meeting for all
|
|
1689
1701
|
* @returns {Promise}
|
|
@@ -1749,6 +1761,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1749
1761
|
* @returns {Promise<void>}
|
|
1750
1762
|
*/
|
|
1751
1763
|
private updateTranscodedMediaConnection;
|
|
1764
|
+
/**
|
|
1765
|
+
* set sending named media group which the audio should send to
|
|
1766
|
+
* @param {MediaType} mediaType of the stream
|
|
1767
|
+
* @param {number} languageCode of the stream
|
|
1768
|
+
* @returns {void}
|
|
1769
|
+
*/
|
|
1770
|
+
setSendNamedMediaGroup(mediaType: MediaType, languageCode?: number): void;
|
|
1752
1771
|
/**
|
|
1753
1772
|
* Publishes a stream.
|
|
1754
1773
|
*
|
|
@@ -72,7 +72,7 @@ export declare class MuteState {
|
|
|
72
72
|
* @param {Boolean} [mute] true for muting, false for unmuting request
|
|
73
73
|
* @returns {void}
|
|
74
74
|
*/
|
|
75
|
-
handleLocalStreamMuteStateChange(meeting?:
|
|
75
|
+
handleLocalStreamMuteStateChange(meeting?: any): void;
|
|
76
76
|
/**
|
|
77
77
|
* Applies the current mute state to the local stream (by enabling or disabling it accordingly)
|
|
78
78
|
*
|
|
@@ -116,12 +116,6 @@ export declare class MuteState {
|
|
|
116
116
|
* @returns {Promise}
|
|
117
117
|
*/
|
|
118
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
119
|
/** Applies the current value for unmute allowed to the underlying stream
|
|
126
120
|
*
|
|
127
121
|
* @param {Meeting} meeting
|
|
@@ -147,7 +141,7 @@ export declare class MuteState {
|
|
|
147
141
|
* @param {Object} [meeting] the meeting object
|
|
148
142
|
* @returns {undefined}
|
|
149
143
|
*/
|
|
150
|
-
handleServerLocalUnmuteRequired(meeting?:
|
|
144
|
+
handleServerLocalUnmuteRequired(meeting?: any): void;
|
|
151
145
|
/**
|
|
152
146
|
* Returns true if the user is locally or remotely muted.
|
|
153
147
|
* It only checks the mute status, ignoring the fact whether audio/video is enabled.
|
|
@@ -38,6 +38,7 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
38
38
|
* @param {String} options.locale,
|
|
39
39
|
* @param {Array} options.deviceCapabilities
|
|
40
40
|
* @param {boolean} options.liveAnnotationSupported
|
|
41
|
+
* @param {String} options.alias
|
|
41
42
|
* @returns {Promise}
|
|
42
43
|
*/
|
|
43
44
|
joinMeeting(options: {
|
|
@@ -57,11 +58,13 @@ export default class MeetingRequest extends StatelessWebexPlugin {
|
|
|
57
58
|
meetingNumber: any;
|
|
58
59
|
permissionToken: any;
|
|
59
60
|
preferTranscoding: any;
|
|
61
|
+
reachability: any;
|
|
60
62
|
breakoutsSupported: boolean;
|
|
61
63
|
locale?: string;
|
|
62
64
|
deviceCapabilities?: Array<string>;
|
|
63
65
|
liveAnnotationSupported: boolean;
|
|
64
66
|
ipVersion?: IP_VERSION;
|
|
67
|
+
alias?: string;
|
|
65
68
|
}): Promise<any>;
|
|
66
69
|
/**
|
|
67
70
|
* Send a request to refresh the captcha
|
|
@@ -81,7 +81,7 @@ export default class MeetingInfoV2 {
|
|
|
81
81
|
* @public
|
|
82
82
|
* @memberof MeetingInfo
|
|
83
83
|
*/
|
|
84
|
-
fetchInfoOptions(destination: string, type?: string): any
|
|
84
|
+
fetchInfoOptions(destination: string, type?: string): Promise<any>;
|
|
85
85
|
/**
|
|
86
86
|
* Raises a MeetingInfoV2PolicyError for policy error codes
|
|
87
87
|
* @param {any} err the error from the request
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import url from 'url';
|
|
3
|
+
/**
|
|
4
|
+
* @class MeetingInfoUtil
|
|
5
|
+
*/
|
|
6
|
+
export default class MeetingInfoUtil {
|
|
7
|
+
static extractDestination(destination: any, type: any): any;
|
|
8
|
+
static getParsedUrl(link: any): false | url.UrlWithStringQuery;
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to check if a string matches a known meeting link pattern
|
|
11
|
+
* @param {String} value string to parse and see if it matches a meeting link
|
|
12
|
+
* @returns {Boolean}
|
|
13
|
+
*/
|
|
14
|
+
static isMeetingLink(value: string): any;
|
|
15
|
+
static isConversationUrl(value: any, webex: any): any;
|
|
16
|
+
static convertLinkToSip(value: any): string;
|
|
17
|
+
static isSipUri(sipString: any): RegExpExecArray;
|
|
18
|
+
static isPhoneNumber(phoneNumber: any): boolean;
|
|
19
|
+
static getHydraId(destination: any): {
|
|
20
|
+
room: boolean;
|
|
21
|
+
destination: any;
|
|
22
|
+
cluster: any;
|
|
23
|
+
people?: undefined;
|
|
24
|
+
} | {
|
|
25
|
+
people: boolean;
|
|
26
|
+
destination: any;
|
|
27
|
+
cluster: any;
|
|
28
|
+
room?: undefined;
|
|
29
|
+
} | {
|
|
30
|
+
room?: undefined;
|
|
31
|
+
destination?: undefined;
|
|
32
|
+
cluster?: undefined;
|
|
33
|
+
people?: undefined;
|
|
34
|
+
};
|
|
35
|
+
static getSipUriFromHydraPersonId(destination: any, webex: any): any;
|
|
36
|
+
static generateOptions(from: any): Promise<any>;
|
|
37
|
+
/**
|
|
38
|
+
* Helper function to build up a correct locus url depending on the value passed
|
|
39
|
+
* @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
40
|
+
* @param {Object} value ?? value.value
|
|
41
|
+
* @returns {Object} returns an object with {resource, method}
|
|
42
|
+
*/
|
|
43
|
+
static getResourceUrl(type: string, value: any): {
|
|
44
|
+
uri: any;
|
|
45
|
+
resource: string;
|
|
46
|
+
method: string;
|
|
47
|
+
};
|
|
48
|
+
static getRequestParams(resourceOptions: any, type: any, value: any, api: any): any;
|
|
49
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import url from 'url';
|
|
3
|
+
/**
|
|
4
|
+
* @class MeetingInfoUtil
|
|
5
|
+
*/
|
|
6
|
+
export default class MeetingInfoUtil {
|
|
7
|
+
static meetingInfoError: string;
|
|
8
|
+
static getParsedUrl(link: any): false | url.UrlWithStringQuery;
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to check if a string matches a known meeting link pattern
|
|
11
|
+
* @param {String} value string to parse and see if it matches a meeting link
|
|
12
|
+
* @returns {Boolean}
|
|
13
|
+
*/
|
|
14
|
+
static isMeetingLink(value: string): any;
|
|
15
|
+
static isConversationUrl(value: any, webex: any): any;
|
|
16
|
+
static isSipUri(sipString: any): RegExpExecArray;
|
|
17
|
+
static isPhoneNumber(phoneNumber: any): boolean;
|
|
18
|
+
static getHydraId(destination: any): {
|
|
19
|
+
room: boolean;
|
|
20
|
+
destination: any;
|
|
21
|
+
cluster: any;
|
|
22
|
+
people?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
people: boolean;
|
|
25
|
+
destination: any;
|
|
26
|
+
cluster: any;
|
|
27
|
+
room?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
room?: undefined;
|
|
30
|
+
destination?: undefined;
|
|
31
|
+
cluster?: undefined;
|
|
32
|
+
people?: undefined;
|
|
33
|
+
};
|
|
34
|
+
static getSipUriFromHydraPersonId(destination: any, webex: any): any;
|
|
35
|
+
static getDestinationType(from: any): Promise<any>;
|
|
36
|
+
/**
|
|
37
|
+
* Helper function to build up a correct locus url depending on the value passed
|
|
38
|
+
* @param {Object} options type and value to fetch meeting info
|
|
39
|
+
* @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
40
|
+
* @param {String} options.installedOrgID org ID of user's machine
|
|
41
|
+
* @param {Object} options.destination ?? value.value
|
|
42
|
+
* @returns {Object} returns an object with {resource, method}
|
|
43
|
+
*/
|
|
44
|
+
static getRequestBody(options: {
|
|
45
|
+
type: string;
|
|
46
|
+
destination: object;
|
|
47
|
+
} | any): any;
|
|
48
|
+
/**
|
|
49
|
+
* Helper function to parse the webex site/host from a URI string.
|
|
50
|
+
* @param {String} uri string (e.g. '10019857020@convergedats.webex.com')
|
|
51
|
+
* @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')
|
|
52
|
+
*/
|
|
53
|
+
static getWebexSite(uri: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Helper function to return the direct URI for fetching meeting info (to avoid a redirect).
|
|
56
|
+
* @param {Object} options type and value to fetch meeting info
|
|
57
|
+
* @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
|
|
58
|
+
* @param {Object} options.destination ?? value.value
|
|
59
|
+
* @returns {String} returns a URI string or null of there is no direct URI
|
|
60
|
+
*/
|
|
61
|
+
static getDirectMeetingInfoURI(options: {
|
|
62
|
+
type: string;
|
|
63
|
+
destination: any;
|
|
64
|
+
}): string;
|
|
65
|
+
}
|
|
@@ -176,6 +176,14 @@ export default class Meetings extends WebexPlugin {
|
|
|
176
176
|
* @returns {undefined}
|
|
177
177
|
*/
|
|
178
178
|
private _toggleTcpReachability;
|
|
179
|
+
/**
|
|
180
|
+
* API to toggle TLS reachability, needs to be called before webex.meetings.register()
|
|
181
|
+
* @param {Boolean} newValue
|
|
182
|
+
* @private
|
|
183
|
+
* @memberof Meetings
|
|
184
|
+
* @returns {undefined}
|
|
185
|
+
*/
|
|
186
|
+
private _toggleTlsReachability;
|
|
179
187
|
/**
|
|
180
188
|
* Explicitly sets up the meetings plugin by registering
|
|
181
189
|
* the device, connecting to mercury, and listening for locus events.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StreamRequest } from '@webex/internal-media-core';
|
|
1
|
+
import { StreamRequest, NamedMediaGroup } from '@webex/internal-media-core';
|
|
2
2
|
import { ReceiveSlot } from './receiveSlot';
|
|
3
3
|
export interface ActiveSpeakerPolicyInfo {
|
|
4
4
|
policy: 'active-speaker';
|
|
@@ -6,6 +6,7 @@ export interface ActiveSpeakerPolicyInfo {
|
|
|
6
6
|
crossPriorityDuplication: boolean;
|
|
7
7
|
crossPolicyDuplication: boolean;
|
|
8
8
|
preferLiveVideo: boolean;
|
|
9
|
+
namedMediaGroups?: NamedMediaGroup[];
|
|
9
10
|
}
|
|
10
11
|
export interface ReceiverSelectedPolicyInfo {
|
|
11
12
|
policy: 'receiver-selected';
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { NamedMediaGroup } from '@webex/internal-media-core';
|
|
1
2
|
import { RemoteMedia, RemoteVideoResolution } from './remoteMedia';
|
|
2
3
|
import { MediaRequestManager } from './mediaRequestManager';
|
|
3
4
|
import { CSI, ReceiveSlot } from './receiveSlot';
|
|
4
5
|
type Options = {
|
|
5
6
|
resolution?: RemoteVideoResolution;
|
|
6
7
|
preferLiveVideo?: boolean;
|
|
8
|
+
namedMediaGroup?: NamedMediaGroup;
|
|
7
9
|
};
|
|
8
10
|
export declare class RemoteMediaGroup {
|
|
9
11
|
private mediaRequestManager;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventMap } from 'typed-emitter';
|
|
2
|
+
import { MediaType, NamedMediaGroup } from '@webex/internal-media-core';
|
|
2
3
|
import EventsScope from '../common/events/events-scope';
|
|
3
4
|
import { RemoteMedia, RemoteVideoResolution } from './remoteMedia';
|
|
4
5
|
import { CSI } from './receiveSlot';
|
|
@@ -39,6 +40,7 @@ export interface Configuration {
|
|
|
39
40
|
[key: LayoutId]: VideoLayout;
|
|
40
41
|
};
|
|
41
42
|
};
|
|
43
|
+
namedMediaGroup?: NamedMediaGroup;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* Default configuration:
|
|
@@ -49,6 +51,7 @@ export interface Configuration {
|
|
|
49
51
|
export declare const DefaultConfiguration: Configuration;
|
|
50
52
|
export declare enum Event {
|
|
51
53
|
AudioCreated = "AudioCreated",
|
|
54
|
+
InterpretationAudioCreated = "InterpretationAudioCreated",
|
|
52
55
|
ScreenShareAudioCreated = "ScreenShareAudioCreated",
|
|
53
56
|
VideoLayoutChanged = "VideoLayoutChanged"
|
|
54
57
|
}
|
|
@@ -153,10 +156,22 @@ export declare class RemoteMediaManager extends EventsScope {
|
|
|
153
156
|
remoteMedia: RemoteMedia;
|
|
154
157
|
csi?: number;
|
|
155
158
|
}[]): void;
|
|
159
|
+
/**
|
|
160
|
+
* Sets which named media group need receiving
|
|
161
|
+
* @param {MediaType} mediaType of the stream
|
|
162
|
+
* @param {number} languageCode of the stream. If the languageId is 0, the named media group request will be canceled,
|
|
163
|
+
* and only receive the main audio stream.
|
|
164
|
+
* @returns {void}
|
|
165
|
+
*/
|
|
166
|
+
setReceiveNamedMediaGroup(mediaType: MediaType, languageId: number): Promise<void>;
|
|
156
167
|
/**
|
|
157
168
|
* Creates the audio slots
|
|
158
169
|
*/
|
|
159
170
|
private createAudioMedia;
|
|
171
|
+
/**
|
|
172
|
+
* Creates the audio slots for named media
|
|
173
|
+
*/
|
|
174
|
+
private createInterpretationAudioMedia;
|
|
160
175
|
/**
|
|
161
176
|
* Creates receive slots required for receiving screen share audio and video
|
|
162
177
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection } from '@webex/internal-media-core';
|
|
1
|
+
import { SendSlot, MediaType, LocalStream, MultistreamRoapMediaConnection, NamedMediaGroup } from '@webex/internal-media-core';
|
|
2
2
|
export default class SendSlotManager {
|
|
3
3
|
private readonly slots;
|
|
4
4
|
private readonly LoggerProxy;
|
|
@@ -17,6 +17,14 @@ export default class SendSlotManager {
|
|
|
17
17
|
* @returns {SendSlot}
|
|
18
18
|
*/
|
|
19
19
|
getSlot(mediaType: MediaType): SendSlot;
|
|
20
|
+
/**
|
|
21
|
+
* Allow users to specify 'namedMediaGroups' to indicate which named media group its audio should be sent to.
|
|
22
|
+
* @param {MediaType} mediaType MediaType of the sendSlot to which the audio stream needs to be send to the media group
|
|
23
|
+
* @param {[]}namedMediaGroups - Allow users to specify 'namedMediaGroups'.If the value of 'namedMediaGroups' is zero,
|
|
24
|
+
* named media group will be canceled and the audio stream will be sent to the floor.
|
|
25
|
+
* @returns {void}
|
|
26
|
+
*/
|
|
27
|
+
setNamedMediaGroups(mediaType: MediaType, namedMediaGroups: NamedMediaGroup[]): void;
|
|
20
28
|
/**
|
|
21
29
|
* This method publishes the given stream to the sendSlot for the given mediaType
|
|
22
30
|
* @param {MediaType} mediaType MediaType of the sendSlot to which a stream needs to be published (AUDIO_MAIN/VIDEO_MAIN/AUDIO_SLIDES/VIDEO_SLIDES)
|
|
@@ -8,10 +8,14 @@ export type ReachabilityMetrics = {
|
|
|
8
8
|
reachability_public_udp_failed: number;
|
|
9
9
|
reachability_public_tcp_success: number;
|
|
10
10
|
reachability_public_tcp_failed: number;
|
|
11
|
+
reachability_public_xtls_success: number;
|
|
12
|
+
reachability_public_xtls_failed: number;
|
|
11
13
|
reachability_vmn_udp_success: number;
|
|
12
14
|
reachability_vmn_udp_failed: number;
|
|
13
15
|
reachability_vmn_tcp_success: number;
|
|
14
16
|
reachability_vmn_tcp_failed: number;
|
|
17
|
+
reachability_vmn_xtls_success: number;
|
|
18
|
+
reachability_vmn_xtls_failed: number;
|
|
15
19
|
};
|
|
16
20
|
/**
|
|
17
21
|
* This is the type that matches what backend expects us to send to them. It is a bit weird, because
|
|
@@ -6,3 +6,10 @@
|
|
|
6
6
|
* @returns {string} url of a turn server
|
|
7
7
|
*/
|
|
8
8
|
export declare function convertStunUrlToTurn(stunUrl: string, protocol: 'udp' | 'tcp'): string;
|
|
9
|
+
/**
|
|
10
|
+
* Converts a stun url to a turns url
|
|
11
|
+
*
|
|
12
|
+
* @param {string} stunUrl url of a stun server
|
|
13
|
+
* @returns {string} url of a turns server
|
|
14
|
+
*/
|
|
15
|
+
export declare function convertStunUrlToTurnTls(stunUrl: string): string;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import TurnDiscovery, { TurnDiscoveryResult } from './turnDiscovery';
|
|
2
3
|
import Meeting from '../meeting';
|
|
4
|
+
export { type TurnDiscoveryResult, type TurnServerInfo, type TurnDiscoverySkipReason, } from './turnDiscovery';
|
|
3
5
|
/**
|
|
4
6
|
* Roap options
|
|
5
7
|
* @typedef {Object} RoapOptions
|
|
@@ -26,7 +28,7 @@ export default class Roap extends StatelessWebexPlugin {
|
|
|
26
28
|
options: any;
|
|
27
29
|
roapHandler: any;
|
|
28
30
|
roapRequest: any;
|
|
29
|
-
turnDiscovery:
|
|
31
|
+
turnDiscovery: TurnDiscovery;
|
|
30
32
|
/**
|
|
31
33
|
*
|
|
32
34
|
* @param {Object} attrs
|
|
@@ -74,5 +76,11 @@ export default class Roap extends StatelessWebexPlugin {
|
|
|
74
76
|
* @param {Boolean} [isForced]
|
|
75
77
|
* @returns {Promise}
|
|
76
78
|
*/
|
|
77
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean):
|
|
79
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
|
|
80
|
+
generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
|
|
81
|
+
roapMessage?: object;
|
|
82
|
+
turnDiscoverySkippedReason: string;
|
|
83
|
+
}>;
|
|
84
|
+
handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse: object): Promise<TurnDiscoveryResult>;
|
|
85
|
+
abortTurnDiscovery(): void;
|
|
78
86
|
}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
+
import { Enum } from '../constants';
|
|
1
2
|
import RoapRequest from './request';
|
|
2
3
|
import Meeting from '../meeting';
|
|
4
|
+
declare const TurnDiscoverySkipReason: {
|
|
5
|
+
readonly missingHttpResponse: "missing http response";
|
|
6
|
+
readonly reachability: "reachability";
|
|
7
|
+
readonly alreadyInProgress: "already in progress";
|
|
8
|
+
};
|
|
9
|
+
export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
|
|
10
|
+
export type TurnServerInfo = {
|
|
11
|
+
url: string;
|
|
12
|
+
username: string;
|
|
13
|
+
password: string;
|
|
14
|
+
};
|
|
15
|
+
export type TurnDiscoveryResult = {
|
|
16
|
+
turnServerInfo?: TurnServerInfo;
|
|
17
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
|
18
|
+
};
|
|
3
19
|
/**
|
|
4
20
|
* Handles the process of finding out TURN server information from Linus.
|
|
5
21
|
* This is achieved by sending a TURN_DISCOVERY_REQUEST.
|
|
@@ -24,7 +40,8 @@ export default class TurnDiscovery {
|
|
|
24
40
|
*/
|
|
25
41
|
private waitForTurnDiscoveryResponse;
|
|
26
42
|
/**
|
|
27
|
-
*
|
|
43
|
+
* Handles TURN_DISCOVERY_RESPONSE roap message. Use it if the roap message comes over the websocket,
|
|
44
|
+
* otherwise use handleTurnDiscoveryHttpResponse() if it comes in the http response.
|
|
28
45
|
*
|
|
29
46
|
* @param {Object} roapMessage
|
|
30
47
|
* @param {string} from string to indicate how we got the response (used just for logging)
|
|
@@ -34,13 +51,52 @@ export default class TurnDiscovery {
|
|
|
34
51
|
*/
|
|
35
52
|
handleTurnDiscoveryResponse(roapMessage: any, from: string): void;
|
|
36
53
|
/**
|
|
37
|
-
*
|
|
54
|
+
* Generates TURN_DISCOVERY_REQUEST roap message. When this method returns a roapMessage, it means that a TURN discovery process has started.
|
|
55
|
+
* It needs be ended by calling handleTurnDiscoveryHttpResponse() once you get a response from the backend. If you don't get any response
|
|
56
|
+
* or want to abort, you need to call abort().
|
|
38
57
|
*
|
|
39
|
-
* @param {
|
|
40
|
-
* @
|
|
58
|
+
* @param {Meeting} meeting
|
|
59
|
+
* @param {boolean} isForced
|
|
60
|
+
* @returns {Object}
|
|
61
|
+
*/
|
|
62
|
+
generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
|
|
63
|
+
roapMessage?: object;
|
|
64
|
+
turnDiscoverySkippedReason: TurnDiscoverySkipReason;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Handles any errors that occur during TURN discovery without re-throwing them.
|
|
68
|
+
*
|
|
69
|
+
* @param {Meeting} meeting
|
|
70
|
+
* @param {Error} error
|
|
71
|
+
* @returns {TurnDiscoveryResult}
|
|
72
|
+
*/
|
|
73
|
+
private handleTurnDiscoveryFailure;
|
|
74
|
+
/**
|
|
75
|
+
* Handles TURN_DISCOVERY_RESPONSE roap message that came in http response. If the response is not valid,
|
|
76
|
+
* it returns an object with turnServerInfo set to undefined. In that case you need to call abort()
|
|
77
|
+
* to end the TURN discovery process.
|
|
78
|
+
*
|
|
79
|
+
* @param {Meeting} meeting
|
|
80
|
+
* @param {Object|undefined} httpResponse can be undefined to indicate that we didn't get the response
|
|
81
|
+
* @returns {Promise<TurnDiscoveryResult>}
|
|
41
82
|
* @memberof Roap
|
|
42
83
|
*/
|
|
43
|
-
|
|
84
|
+
handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse?: object): Promise<TurnDiscoveryResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Aborts current TURN discovery. This method needs to be called if you called generateTurnDiscoveryRequestMessage(),
|
|
87
|
+
* but then never got any response from the server.
|
|
88
|
+
* @returns {void}
|
|
89
|
+
*/
|
|
90
|
+
abort(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Parses the TURN_DISCOVERY_RESPONSE roap message out of the http response
|
|
93
|
+
* and returns it.
|
|
94
|
+
*
|
|
95
|
+
* @param {Meeting} meeting
|
|
96
|
+
* @param {any} httpResponse
|
|
97
|
+
* @returns {any}
|
|
98
|
+
*/
|
|
99
|
+
private parseHttpTurnDiscoveryResponse;
|
|
44
100
|
/**
|
|
45
101
|
* sends the TURN_DISCOVERY_REQUEST roap request
|
|
46
102
|
*
|
|
@@ -50,7 +106,7 @@ export default class TurnDiscovery {
|
|
|
50
106
|
* @private
|
|
51
107
|
* @memberof Roap
|
|
52
108
|
*/
|
|
53
|
-
sendRoapTurnDiscoveryRequest
|
|
109
|
+
private sendRoapTurnDiscoveryRequest;
|
|
54
110
|
/**
|
|
55
111
|
* Sends the OK message that server expects to receive
|
|
56
112
|
* after it sends us TURN_DISCOVERY_RESPONSE
|
|
@@ -94,15 +150,6 @@ export default class TurnDiscovery {
|
|
|
94
150
|
* @param {Boolean} [isForced]
|
|
95
151
|
* @returns {Promise}
|
|
96
152
|
*/
|
|
97
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<
|
|
98
|
-
turnServerInfo: any;
|
|
99
|
-
turnDiscoverySkippedReason: string;
|
|
100
|
-
} | {
|
|
101
|
-
turnServerInfo: {
|
|
102
|
-
url: string;
|
|
103
|
-
username: string;
|
|
104
|
-
password: string;
|
|
105
|
-
};
|
|
106
|
-
turnDiscoverySkippedReason: any;
|
|
107
|
-
}>;
|
|
153
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
|
|
108
154
|
}
|
|
155
|
+
export {};
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "3.0.
|
|
65
|
+
version: "3.1.0-next.2"
|
|
66
66
|
});
|
|
67
67
|
var _default = exports.default = Webinar;
|
|
68
68
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
]
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
|
-
"build": "yarn run -T tsc --declaration true --declarationDir ./dist",
|
|
31
|
+
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types",
|
|
32
32
|
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps && yarn build",
|
|
33
33
|
"deploy:npm": "yarn npm publish",
|
|
34
34
|
"test:broken": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
@@ -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.0.
|
|
47
|
-
"@webex/plugin-rooms": "3.0.0",
|
|
48
|
-
"@webex/test-helper-chai": "3.0.0",
|
|
49
|
-
"@webex/test-helper-mocha": "3.0.0",
|
|
50
|
-
"@webex/test-helper-mock-webex": "3.0.0",
|
|
51
|
-
"@webex/test-helper-retry": "3.0.0",
|
|
52
|
-
"@webex/test-helper-test-users": "3.0.0",
|
|
46
|
+
"@webex/plugin-meetings": "3.1.0-next.2",
|
|
47
|
+
"@webex/plugin-rooms": "3.0.0-next.16",
|
|
48
|
+
"@webex/test-helper-chai": "3.0.0-next.14",
|
|
49
|
+
"@webex/test-helper-mocha": "3.0.0-next.14",
|
|
50
|
+
"@webex/test-helper-mock-webex": "3.0.0-next.14",
|
|
51
|
+
"@webex/test-helper-retry": "3.0.0-next.14",
|
|
52
|
+
"@webex/test-helper-test-users": "3.0.0-next.14",
|
|
53
53
|
"chai": "^4.3.4",
|
|
54
54
|
"chai-as-promised": "^7.1.1",
|
|
55
55
|
"eslint": "^8.24.0",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
"typescript": "^4.7.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@webex/common": "3.0.0",
|
|
65
|
-
"@webex/internal-media-core": "2.
|
|
66
|
-
"@webex/internal-plugin-conversation": "3.0.0",
|
|
67
|
-
"@webex/internal-plugin-device": "3.0.0",
|
|
68
|
-
"@webex/internal-plugin-llm": "3.0.0",
|
|
69
|
-
"@webex/internal-plugin-mercury": "3.0.0",
|
|
70
|
-
"@webex/internal-plugin-metrics": "3.0.0",
|
|
71
|
-
"@webex/internal-plugin-support": "3.0.0",
|
|
72
|
-
"@webex/internal-plugin-user": "3.0.0",
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.0.
|
|
74
|
-
"@webex/media-helpers": "3.0.1",
|
|
75
|
-
"@webex/plugin-people": "3.0.0",
|
|
76
|
-
"@webex/plugin-rooms": "3.0.0",
|
|
77
|
-
"@webex/webex-core": "3.0.0",
|
|
64
|
+
"@webex/common": "3.0.0-next.14",
|
|
65
|
+
"@webex/internal-media-core": "2.5.0",
|
|
66
|
+
"@webex/internal-plugin-conversation": "3.0.0-next.16",
|
|
67
|
+
"@webex/internal-plugin-device": "3.0.0-next.14",
|
|
68
|
+
"@webex/internal-plugin-llm": "3.0.0-next.16",
|
|
69
|
+
"@webex/internal-plugin-mercury": "3.0.0-next.16",
|
|
70
|
+
"@webex/internal-plugin-metrics": "3.0.0-next.14",
|
|
71
|
+
"@webex/internal-plugin-support": "3.0.0-next.16",
|
|
72
|
+
"@webex/internal-plugin-user": "3.0.0-next.14",
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.1.0-next.2",
|
|
74
|
+
"@webex/media-helpers": "3.0.1-next.17",
|
|
75
|
+
"@webex/plugin-people": "3.0.0-next.16",
|
|
76
|
+
"@webex/plugin-rooms": "3.0.0-next.16",
|
|
77
|
+
"@webex/webex-core": "3.0.0-next.14",
|
|
78
78
|
"ampersand-collection": "^2.0.2",
|
|
79
79
|
"bowser": "^2.11.0",
|
|
80
80
|
"btoa": "^1.2.1",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"//": [
|
|
92
92
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
93
93
|
],
|
|
94
|
-
"version": "3.0.
|
|
94
|
+
"version": "3.1.0-next.2"
|
|
95
95
|
}
|