@webex/plugin-meetings 2.26.2 → 2.28.0
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/constants.js +10 -3
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +88 -0
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -0
- package/dist/locus-info/index.js +26 -1
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.js +330 -308
- package/dist/meeting/index.js.map +1 -1
- package/package.json +5 -5
- package/src/constants.ts +8 -1
- package/src/locus-info/embeddedAppsUtils.js +51 -0
- package/src/locus-info/index.js +27 -0
- package/src/meeting/index.js +23 -0
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +102 -0
- package/test/unit/spec/locus-info/index.js +54 -0
package/dist/meeting/index.js
CHANGED
|
@@ -1480,6 +1480,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1480
1480
|
this.setUpLocusParticipantsListener();
|
|
1481
1481
|
this.setupLocusControlsListener();
|
|
1482
1482
|
this.setUpLocusMediaSharesListener();
|
|
1483
|
+
this.setUpLocusEmbeddedAppsListener();
|
|
1483
1484
|
this.setUpLocusInfoMeetingInfoListener();
|
|
1484
1485
|
this.setUpLocusInfoAssignHostListener();
|
|
1485
1486
|
this.setUpLocusInfoMediaInactiveListener();
|
|
@@ -2273,6 +2274,27 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2273
2274
|
}
|
|
2274
2275
|
});
|
|
2275
2276
|
}
|
|
2277
|
+
/**
|
|
2278
|
+
* Set up the locus info embedded apps listener
|
|
2279
|
+
* @returns {undefined}
|
|
2280
|
+
* @private
|
|
2281
|
+
* @memberof meeting
|
|
2282
|
+
*/
|
|
2283
|
+
|
|
2284
|
+
}, {
|
|
2285
|
+
key: "setUpLocusEmbeddedAppsListener",
|
|
2286
|
+
value: function setUpLocusEmbeddedAppsListener() {
|
|
2287
|
+
var _this15 = this;
|
|
2288
|
+
|
|
2289
|
+
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.EMBEDDED_APPS_UPDATED, function (embeddedApps) {
|
|
2290
|
+
if (embeddedApps) {
|
|
2291
|
+
_triggerProxy.default.trigger(_this15, {
|
|
2292
|
+
file: 'meeting/index',
|
|
2293
|
+
function: 'setUpLocusEmbeddedAppsListener'
|
|
2294
|
+
}, _constants.EVENT_TRIGGERS.MEETING_EMBEDDED_APPS_UPDATE, embeddedApps);
|
|
2295
|
+
}
|
|
2296
|
+
});
|
|
2297
|
+
}
|
|
2276
2298
|
/**
|
|
2277
2299
|
* Internal function to listen to the self object changes
|
|
2278
2300
|
* @returns {undefined}
|
|
@@ -2283,13 +2305,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2283
2305
|
}, {
|
|
2284
2306
|
key: "setUpLocusInfoSelfListener",
|
|
2285
2307
|
value: function setUpLocusInfoSelfListener() {
|
|
2286
|
-
var
|
|
2308
|
+
var _this16 = this;
|
|
2287
2309
|
|
|
2288
2310
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUIRED, function (payload) {
|
|
2289
|
-
if (
|
|
2290
|
-
|
|
2311
|
+
if (_this16.audio) {
|
|
2312
|
+
_this16.audio.handleServerLocalUnmuteRequired(_this16);
|
|
2291
2313
|
|
|
2292
|
-
_triggerProxy.default.trigger(
|
|
2314
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2293
2315
|
file: 'meeting/index',
|
|
2294
2316
|
function: 'setUpLocusInfoSelfListener'
|
|
2295
2317
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2299,17 +2321,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2299
2321
|
});
|
|
2300
2322
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_REMOTE_MUTE_STATUS_UPDATED, function (payload) {
|
|
2301
2323
|
if (payload) {
|
|
2302
|
-
var
|
|
2324
|
+
var _this16$audio;
|
|
2303
2325
|
|
|
2304
|
-
if (
|
|
2305
|
-
|
|
2326
|
+
if (_this16.audio) {
|
|
2327
|
+
_this16.audio.handleServerRemoteMuteUpdate(payload.muted, payload.unmuteAllowed);
|
|
2306
2328
|
} // with "mute on entry" server will send us remote mute even if we don't have media configured,
|
|
2307
2329
|
// so if being muted by others, always send the notification,
|
|
2308
2330
|
// but if being unmuted, only send it if we are also locally unmuted
|
|
2309
2331
|
|
|
2310
2332
|
|
|
2311
|
-
if (payload.muted || !((
|
|
2312
|
-
_triggerProxy.default.trigger(
|
|
2333
|
+
if (payload.muted || !((_this16$audio = _this16.audio) !== null && _this16$audio !== void 0 && _this16$audio.isMuted())) {
|
|
2334
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2313
2335
|
file: 'meeting/index',
|
|
2314
2336
|
function: 'setUpLocusInfoSelfListener'
|
|
2315
2337
|
}, payload.muted ? _constants.EVENT_TRIGGERS.MEETING_SELF_MUTED_BY_OTHERS : _constants.EVENT_TRIGGERS.MEETING_SELF_UNMUTED_BY_OTHERS, {
|
|
@@ -2319,7 +2341,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2319
2341
|
}
|
|
2320
2342
|
});
|
|
2321
2343
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.LOCAL_UNMUTE_REQUESTED, function (payload) {
|
|
2322
|
-
_triggerProxy.default.trigger(
|
|
2344
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2323
2345
|
file: 'meeting/index',
|
|
2324
2346
|
function: 'setUpLocusInfoSelfListener'
|
|
2325
2347
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_REQUESTED_TO_UNMUTE, {
|
|
@@ -2328,7 +2350,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2328
2350
|
});
|
|
2329
2351
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_UNADMITTED_GUEST, function (payload) {
|
|
2330
2352
|
if (payload) {
|
|
2331
|
-
_triggerProxy.default.trigger(
|
|
2353
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2332
2354
|
file: 'meeting/index',
|
|
2333
2355
|
function: 'setUpLocusInfoSelfListener'
|
|
2334
2356
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_LOBBY_WAITING, {
|
|
@@ -2337,13 +2359,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2337
2359
|
|
|
2338
2360
|
_metrics.default.postEvent({
|
|
2339
2361
|
event: _config.eventType.LOBBY_ENTERED,
|
|
2340
|
-
meeting:
|
|
2362
|
+
meeting: _this16
|
|
2341
2363
|
});
|
|
2342
2364
|
}
|
|
2343
2365
|
});
|
|
2344
2366
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.SELF_ADMITTED_GUEST, function (payload) {
|
|
2345
2367
|
if (payload) {
|
|
2346
|
-
_triggerProxy.default.trigger(
|
|
2368
|
+
_triggerProxy.default.trigger(_this16, {
|
|
2347
2369
|
file: 'meeting/index',
|
|
2348
2370
|
function: 'setUpLocusInfoSelfListener'
|
|
2349
2371
|
}, _constants.EVENT_TRIGGERS.MEETING_SELF_GUEST_ADMITTED, {
|
|
@@ -2352,35 +2374,35 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2352
2374
|
|
|
2353
2375
|
_metrics.default.postEvent({
|
|
2354
2376
|
event: _config.eventType.LOBBY_EXITED,
|
|
2355
|
-
meeting:
|
|
2377
|
+
meeting: _this16
|
|
2356
2378
|
});
|
|
2357
2379
|
}
|
|
2358
2380
|
});
|
|
2359
2381
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, function () {
|
|
2360
2382
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_MEDIA_INACTIVE, {
|
|
2361
|
-
correlation_id:
|
|
2362
|
-
locus_id:
|
|
2383
|
+
correlation_id: _this16.correlationId,
|
|
2384
|
+
locus_id: _this16.locusId
|
|
2363
2385
|
});
|
|
2364
2386
|
|
|
2365
|
-
|
|
2387
|
+
_this16.reconnect();
|
|
2366
2388
|
}); // There is two stats for mute one is the actual media being sent or received
|
|
2367
2389
|
// The second on is if the audio is muted, we need to tell the statsAnalyzer when
|
|
2368
2390
|
// the audio is muted or the user is not willing to send media
|
|
2369
2391
|
|
|
2370
2392
|
this.locusInfo.on(_constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, function (status) {
|
|
2371
|
-
if (
|
|
2372
|
-
var
|
|
2393
|
+
if (_this16.statsAnalyzer) {
|
|
2394
|
+
var _this16$mediaProperti, _this16$audio2, _this16$mediaProperti2, _this16$video, _this16$mediaProperti3, _this16$mediaProperti4, _this16$mediaProperti5, _this16$mediaProperti6;
|
|
2373
2395
|
|
|
2374
|
-
|
|
2396
|
+
_this16.statsAnalyzer.updateMediaStatus({
|
|
2375
2397
|
actual: status,
|
|
2376
2398
|
expected: {
|
|
2377
2399
|
// We need to check what should be the actual direction of media
|
|
2378
|
-
sendAudio: ((
|
|
2379
|
-
sendVideo: ((
|
|
2380
|
-
sendShare: (
|
|
2381
|
-
receiveAudio: (
|
|
2382
|
-
receiveVideo: (
|
|
2383
|
-
receiveShare: (
|
|
2400
|
+
sendAudio: ((_this16$mediaProperti = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti === void 0 ? void 0 : _this16$mediaProperti.sendAudio) && !((_this16$audio2 = _this16.audio) !== null && _this16$audio2 !== void 0 && _this16$audio2.isMuted()),
|
|
2401
|
+
sendVideo: ((_this16$mediaProperti2 = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti2 === void 0 ? void 0 : _this16$mediaProperti2.sendVideo) && !((_this16$video = _this16.video) !== null && _this16$video !== void 0 && _this16$video.isMuted()),
|
|
2402
|
+
sendShare: (_this16$mediaProperti3 = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti3 === void 0 ? void 0 : _this16$mediaProperti3.sendShare,
|
|
2403
|
+
receiveAudio: (_this16$mediaProperti4 = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti4 === void 0 ? void 0 : _this16$mediaProperti4.receiveAudio,
|
|
2404
|
+
receiveVideo: (_this16$mediaProperti5 = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti5 === void 0 ? void 0 : _this16$mediaProperti5.receiveVideo,
|
|
2405
|
+
receiveShare: (_this16$mediaProperti6 = _this16.mediaProperties.mediaDirection) === null || _this16$mediaProperti6 === void 0 ? void 0 : _this16$mediaProperti6.receiveShare
|
|
2384
2406
|
}
|
|
2385
2407
|
});
|
|
2386
2408
|
}
|
|
@@ -2396,29 +2418,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2396
2418
|
}, {
|
|
2397
2419
|
key: "setUpLocusInfoMeetingListener",
|
|
2398
2420
|
value: function setUpLocusInfoMeetingListener() {
|
|
2399
|
-
var
|
|
2421
|
+
var _this17 = this;
|
|
2400
2422
|
|
|
2401
2423
|
this.locusInfo.on(_constants.EVENTS.REMOTE_RESPONSE, function (payload) {
|
|
2402
|
-
|
|
2424
|
+
_this17.meetingFiniteStateMachine.remote(payload);
|
|
2403
2425
|
|
|
2404
2426
|
if (payload.remoteDeclined) {
|
|
2405
|
-
|
|
2427
|
+
_this17.leave({
|
|
2406
2428
|
reason: payload.reason
|
|
2407
2429
|
}).then(function () {
|
|
2408
2430
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Attempting to leave meeting.');
|
|
2409
2431
|
}).catch(function (error) {
|
|
2410
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
2432
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> REMOTE_RESPONSE. Issue with leave for meeting, meeting still in collection: ".concat(_this17.meeting, ", error: ").concat(error));
|
|
2411
2433
|
});
|
|
2412
2434
|
}
|
|
2413
2435
|
});
|
|
2414
2436
|
this.locusInfo.on(_constants.EVENTS.DESTROY_MEETING, function (payload) {
|
|
2415
2437
|
// if self state is NOT left
|
|
2416
2438
|
// TODO: Handle sharing and wireless sharing when meeting end
|
|
2417
|
-
if (
|
|
2418
|
-
if (
|
|
2419
|
-
|
|
2439
|
+
if (_this17.wirelessShare) {
|
|
2440
|
+
if (_this17.mediaProperties.shareTrack) {
|
|
2441
|
+
_this17.mediaProperties.shareTrack.onended = null;
|
|
2420
2442
|
|
|
2421
|
-
|
|
2443
|
+
_this17.mediaProperties.shareTrack.stop();
|
|
2422
2444
|
}
|
|
2423
2445
|
} // when multiple WEB deviceType join with same user
|
|
2424
2446
|
// and some of the devices are joined and some are left
|
|
@@ -2432,24 +2454,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2432
2454
|
|
|
2433
2455
|
if (payload.shouldLeave) {
|
|
2434
2456
|
// TODO: We should do cleaning of meeting object if the shouldLeave: false because there might be meeting object which we are not cleaning
|
|
2435
|
-
|
|
2457
|
+
_this17.leave({
|
|
2436
2458
|
reason: payload.reason
|
|
2437
2459
|
}).then(function () {
|
|
2438
2460
|
_loggerProxy.default.logger.warn('Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. The meeting has been left, but has not been destroyed, you should see a later event for leave.');
|
|
2439
2461
|
}).catch(function (error) {
|
|
2440
|
-
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(
|
|
2462
|
+
_loggerProxy.default.logger.error("Meeting:index#setUpLocusInfoMeetingListener --> DESTROY_MEETING. Issue with leave for meeting, meeting still in collection: ".concat(_this17.meeting, ", error: ").concat(error));
|
|
2441
2463
|
});
|
|
2442
2464
|
} else {
|
|
2443
2465
|
_loggerProxy.default.logger.info('Meeting:index#setUpLocusInfoMeetingListener --> MEETING_REMOVED_REASON', payload.reason);
|
|
2444
2466
|
|
|
2445
|
-
_util.default.cleanUp(
|
|
2467
|
+
_util.default.cleanUp(_this17);
|
|
2446
2468
|
|
|
2447
|
-
_triggerProxy.default.trigger(
|
|
2469
|
+
_triggerProxy.default.trigger(_this17, {
|
|
2448
2470
|
file: 'meeting/index',
|
|
2449
2471
|
function: 'setUpLocusInfoMeetingListener'
|
|
2450
2472
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
2451
2473
|
reason: payload.reason,
|
|
2452
|
-
meetingId:
|
|
2474
|
+
meetingId: _this17.id
|
|
2453
2475
|
});
|
|
2454
2476
|
}
|
|
2455
2477
|
});
|
|
@@ -2466,14 +2488,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2466
2488
|
}, {
|
|
2467
2489
|
key: "updateMeetingObject",
|
|
2468
2490
|
value: function updateMeetingObject(object) {
|
|
2469
|
-
var
|
|
2491
|
+
var _this18 = this;
|
|
2470
2492
|
|
|
2471
2493
|
// Validate if these are valid meeting object property
|
|
2472
2494
|
// TODO: add a check to make sure the value passed in the constructor
|
|
2473
2495
|
// is not changed by any delta event
|
|
2474
2496
|
if (object && (0, _keys.default)(object).length) {
|
|
2475
2497
|
(0, _keys.default)(object).forEach(function (key) {
|
|
2476
|
-
|
|
2498
|
+
_this18[key] = object[key];
|
|
2477
2499
|
});
|
|
2478
2500
|
}
|
|
2479
2501
|
}
|
|
@@ -2795,7 +2817,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2795
2817
|
}, {
|
|
2796
2818
|
key: "setRemoteStream",
|
|
2797
2819
|
value: function setRemoteStream(pc) {
|
|
2798
|
-
var
|
|
2820
|
+
var _this19 = this;
|
|
2799
2821
|
|
|
2800
2822
|
if (!pc) {
|
|
2801
2823
|
return;
|
|
@@ -2838,8 +2860,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2838
2860
|
trackMediaID = null;
|
|
2839
2861
|
|
|
2840
2862
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
2841
|
-
correlation_id:
|
|
2842
|
-
locus_id:
|
|
2863
|
+
correlation_id: _this19.correlationId,
|
|
2864
|
+
locus_id: _this19.locusUrl.split('/').pop()
|
|
2843
2865
|
});
|
|
2844
2866
|
}
|
|
2845
2867
|
}
|
|
@@ -2848,14 +2870,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2848
2870
|
case MEDIA_ID.AUDIO_TRACK:
|
|
2849
2871
|
eventType = _constants.EVENT_TYPES.REMOTE_AUDIO;
|
|
2850
2872
|
|
|
2851
|
-
|
|
2873
|
+
_this19.mediaProperties.setRemoteAudioTrack(mediaTrack);
|
|
2852
2874
|
|
|
2853
2875
|
break;
|
|
2854
2876
|
|
|
2855
2877
|
case MEDIA_ID.VIDEO_TRACK:
|
|
2856
2878
|
eventType = _constants.EVENT_TYPES.REMOTE_VIDEO;
|
|
2857
2879
|
|
|
2858
|
-
|
|
2880
|
+
_this19.mediaProperties.setRemoteVideoTrack(mediaTrack);
|
|
2859
2881
|
|
|
2860
2882
|
break;
|
|
2861
2883
|
|
|
@@ -2863,7 +2885,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2863
2885
|
if (event.track) {
|
|
2864
2886
|
eventType = _constants.EVENT_TYPES.REMOTE_SHARE;
|
|
2865
2887
|
|
|
2866
|
-
|
|
2888
|
+
_this19.mediaProperties.setRemoteShare(mediaTrack);
|
|
2867
2889
|
}
|
|
2868
2890
|
|
|
2869
2891
|
break;
|
|
@@ -2875,10 +2897,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2875
2897
|
} // start stats here the stats are coming null if you dont receive streams
|
|
2876
2898
|
|
|
2877
2899
|
|
|
2878
|
-
|
|
2900
|
+
_this19.statsAnalyzer.startAnalyzer(_this19.mediaProperties.peerConnection);
|
|
2879
2901
|
|
|
2880
2902
|
if (eventType && mediaTrack) {
|
|
2881
|
-
_triggerProxy.default.trigger(
|
|
2903
|
+
_triggerProxy.default.trigger(_this19, {
|
|
2882
2904
|
file: 'meeting/index',
|
|
2883
2905
|
function: 'setRemoteStream:pc.ontrack'
|
|
2884
2906
|
}, _constants.EVENT_TRIGGERS.MEDIA_READY, {
|
|
@@ -2958,7 +2980,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2958
2980
|
}, {
|
|
2959
2981
|
key: "closeRemoteTracks",
|
|
2960
2982
|
value: function closeRemoteTracks() {
|
|
2961
|
-
var
|
|
2983
|
+
var _this20 = this;
|
|
2962
2984
|
|
|
2963
2985
|
var _this$mediaProperties = this.mediaProperties,
|
|
2964
2986
|
remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
|
|
@@ -2972,7 +2994,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
2972
2994
|
*/
|
|
2973
2995
|
|
|
2974
2996
|
var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
|
|
2975
|
-
_triggerProxy.default.trigger(
|
|
2997
|
+
_triggerProxy.default.trigger(_this20, {
|
|
2976
2998
|
file: 'meeting/index',
|
|
2977
2999
|
function: 'closeRemoteTracks'
|
|
2978
3000
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3127,7 +3149,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3127
3149
|
}, {
|
|
3128
3150
|
key: "setLocalShareTrack",
|
|
3129
3151
|
value: function setLocalShareTrack(localShare) {
|
|
3130
|
-
var
|
|
3152
|
+
var _this21 = this;
|
|
3131
3153
|
|
|
3132
3154
|
var settings = null;
|
|
3133
3155
|
|
|
@@ -3150,7 +3172,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3150
3172
|
}
|
|
3151
3173
|
|
|
3152
3174
|
contentTracks.onended = function () {
|
|
3153
|
-
return
|
|
3175
|
+
return _this21.handleShareTrackEnded(localShare);
|
|
3154
3176
|
};
|
|
3155
3177
|
|
|
3156
3178
|
_triggerProxy.default.trigger(this, {
|
|
@@ -3173,7 +3195,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3173
3195
|
}, {
|
|
3174
3196
|
key: "closeLocalStream",
|
|
3175
3197
|
value: function closeLocalStream() {
|
|
3176
|
-
var
|
|
3198
|
+
var _this22 = this;
|
|
3177
3199
|
|
|
3178
3200
|
var _this$mediaProperties2 = this.mediaProperties,
|
|
3179
3201
|
audioTrack = _this$mediaProperties2.audioTrack,
|
|
@@ -3185,7 +3207,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3185
3207
|
var videoStopped = videoTrack && videoTrack.readyState === _constants.ENDED; // triggers event for audio and video stop , sometime either audio or video one of them exists
|
|
3186
3208
|
|
|
3187
3209
|
if (audioStopped || videoStopped) {
|
|
3188
|
-
_triggerProxy.default.trigger(
|
|
3210
|
+
_triggerProxy.default.trigger(_this22, {
|
|
3189
3211
|
file: 'meeting/index',
|
|
3190
3212
|
function: 'closeLocalStream'
|
|
3191
3213
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3207,12 +3229,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3207
3229
|
}, {
|
|
3208
3230
|
key: "closeLocalShare",
|
|
3209
3231
|
value: function closeLocalShare() {
|
|
3210
|
-
var
|
|
3232
|
+
var _this23 = this;
|
|
3211
3233
|
|
|
3212
3234
|
var track = this.mediaProperties.shareTrack;
|
|
3213
3235
|
return _media.default.stopTracks(track).then(function () {
|
|
3214
3236
|
if (track && track.readyState === _constants.ENDED) {
|
|
3215
|
-
_triggerProxy.default.trigger(
|
|
3237
|
+
_triggerProxy.default.trigger(_this23, {
|
|
3216
3238
|
file: 'meeting/index',
|
|
3217
3239
|
function: 'closeLocalShare'
|
|
3218
3240
|
}, _constants.EVENT_TRIGGERS.MEDIA_STOPPED, {
|
|
@@ -3258,7 +3280,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3258
3280
|
}, {
|
|
3259
3281
|
key: "setMercuryListener",
|
|
3260
3282
|
value: function setMercuryListener() {
|
|
3261
|
-
var
|
|
3283
|
+
var _this24 = this;
|
|
3262
3284
|
|
|
3263
3285
|
// Client will have a socket manager and handle reconnecting to mercury, when we reconnect to mercury
|
|
3264
3286
|
// if the meeting has active peer connections, it should try to reconnect.
|
|
@@ -3266,29 +3288,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3266
3288
|
_loggerProxy.default.logger.info('Meeting:index#setMercuryListener --> Web socket online'); // Only send restore event when it was disconnected before and for connected later
|
|
3267
3289
|
|
|
3268
3290
|
|
|
3269
|
-
if (!
|
|
3291
|
+
if (!_this24.hasWebsocketConnected) {
|
|
3270
3292
|
_metrics.default.postEvent({
|
|
3271
3293
|
event: _config.eventType.MERCURY_CONNECTION_RESTORED,
|
|
3272
|
-
meeting:
|
|
3294
|
+
meeting: _this24
|
|
3273
3295
|
});
|
|
3274
3296
|
|
|
3275
3297
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_RESTORED, {
|
|
3276
|
-
correlation_id:
|
|
3298
|
+
correlation_id: _this24.correlationId
|
|
3277
3299
|
});
|
|
3278
3300
|
}
|
|
3279
3301
|
|
|
3280
|
-
|
|
3302
|
+
_this24.hasWebsocketConnected = true;
|
|
3281
3303
|
});
|
|
3282
3304
|
this.webex.internal.mercury.on(_constants.OFFLINE, function () {
|
|
3283
3305
|
_loggerProxy.default.logger.error('Meeting:index#setMercuryListener --> Web socket offline');
|
|
3284
3306
|
|
|
3285
3307
|
_metrics.default.postEvent({
|
|
3286
3308
|
event: _config.eventType.MERCURY_CONNECTION_LOST,
|
|
3287
|
-
meeting:
|
|
3309
|
+
meeting: _this24
|
|
3288
3310
|
});
|
|
3289
3311
|
|
|
3290
3312
|
_metrics.default.sendBehavioralMetric(_constants2.default.MERCURY_CONNECTION_FAILURE, {
|
|
3291
|
-
correlation_id:
|
|
3313
|
+
correlation_id: _this24.correlationId
|
|
3292
3314
|
});
|
|
3293
3315
|
});
|
|
3294
3316
|
}
|
|
@@ -3346,7 +3368,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3346
3368
|
}, {
|
|
3347
3369
|
key: "muteAudio",
|
|
3348
3370
|
value: function muteAudio() {
|
|
3349
|
-
var
|
|
3371
|
+
var _this25 = this;
|
|
3350
3372
|
|
|
3351
3373
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3352
3374
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
@@ -3364,11 +3386,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3364
3386
|
var LOG_HEADER = 'Meeting:index#muteAudio -->'; // First, stop sending the local audio media
|
|
3365
3387
|
|
|
3366
3388
|
return logRequest(this.audio.handleClientRequest(this, true).then(function () {
|
|
3367
|
-
_util.default.handleAudioLogging(
|
|
3389
|
+
_util.default.handleAudioLogging(_this25.mediaProperties.audioTrack);
|
|
3368
3390
|
|
|
3369
3391
|
_metrics.default.postEvent({
|
|
3370
3392
|
event: _config.eventType.MUTED,
|
|
3371
|
-
meeting:
|
|
3393
|
+
meeting: _this25,
|
|
3372
3394
|
data: {
|
|
3373
3395
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3374
3396
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3376,8 +3398,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3376
3398
|
});
|
|
3377
3399
|
}).catch(function (error) {
|
|
3378
3400
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_AUDIO_FAILURE, {
|
|
3379
|
-
correlation_id:
|
|
3380
|
-
locus_id:
|
|
3401
|
+
correlation_id: _this25.correlationId,
|
|
3402
|
+
locus_id: _this25.locusUrl.split('/').pop(),
|
|
3381
3403
|
reason: error.message,
|
|
3382
3404
|
stack: error.stack
|
|
3383
3405
|
});
|
|
@@ -3399,7 +3421,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3399
3421
|
}, {
|
|
3400
3422
|
key: "unmuteAudio",
|
|
3401
3423
|
value: function unmuteAudio() {
|
|
3402
|
-
var
|
|
3424
|
+
var _this26 = this;
|
|
3403
3425
|
|
|
3404
3426
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3405
3427
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
@@ -3417,11 +3439,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3417
3439
|
var LOG_HEADER = 'Meeting:index#unmuteAudio -->'; // First, send the control to unmute the participant on the server
|
|
3418
3440
|
|
|
3419
3441
|
return logRequest(this.audio.handleClientRequest(this, false).then(function () {
|
|
3420
|
-
_util.default.handleAudioLogging(
|
|
3442
|
+
_util.default.handleAudioLogging(_this26.mediaProperties.audioTrack);
|
|
3421
3443
|
|
|
3422
3444
|
_metrics.default.postEvent({
|
|
3423
3445
|
event: _config.eventType.UNMUTED,
|
|
3424
|
-
meeting:
|
|
3446
|
+
meeting: _this26,
|
|
3425
3447
|
data: {
|
|
3426
3448
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3427
3449
|
mediaType: _config.mediaType.AUDIO
|
|
@@ -3429,8 +3451,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3429
3451
|
});
|
|
3430
3452
|
}).catch(function (error) {
|
|
3431
3453
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_AUDIO_FAILURE, {
|
|
3432
|
-
correlation_id:
|
|
3433
|
-
locus_id:
|
|
3454
|
+
correlation_id: _this26.correlationId,
|
|
3455
|
+
locus_id: _this26.locusUrl.split('/').pop(),
|
|
3434
3456
|
reason: error.message,
|
|
3435
3457
|
stack: error.stack
|
|
3436
3458
|
});
|
|
@@ -3452,7 +3474,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3452
3474
|
}, {
|
|
3453
3475
|
key: "muteVideo",
|
|
3454
3476
|
value: function muteVideo() {
|
|
3455
|
-
var
|
|
3477
|
+
var _this27 = this;
|
|
3456
3478
|
|
|
3457
3479
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3458
3480
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
@@ -3469,11 +3491,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3469
3491
|
|
|
3470
3492
|
var LOG_HEADER = 'Meeting:index#muteVideo -->';
|
|
3471
3493
|
return logRequest(this.video.handleClientRequest(this, true).then(function () {
|
|
3472
|
-
_util.default.handleVideoLogging(
|
|
3494
|
+
_util.default.handleVideoLogging(_this27.mediaProperties.videoTrack);
|
|
3473
3495
|
|
|
3474
3496
|
_metrics.default.postEvent({
|
|
3475
3497
|
event: _config.eventType.MUTED,
|
|
3476
|
-
meeting:
|
|
3498
|
+
meeting: _this27,
|
|
3477
3499
|
data: {
|
|
3478
3500
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3479
3501
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3481,8 +3503,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3481
3503
|
});
|
|
3482
3504
|
}).catch(function (error) {
|
|
3483
3505
|
_metrics.default.sendBehavioralMetric(_constants2.default.MUTE_VIDEO_FAILURE, {
|
|
3484
|
-
correlation_id:
|
|
3485
|
-
locus_id:
|
|
3506
|
+
correlation_id: _this27.correlationId,
|
|
3507
|
+
locus_id: _this27.locusUrl.split('/').pop(),
|
|
3486
3508
|
reason: error.message,
|
|
3487
3509
|
stack: error.stack
|
|
3488
3510
|
});
|
|
@@ -3504,7 +3526,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3504
3526
|
}, {
|
|
3505
3527
|
key: "unmuteVideo",
|
|
3506
3528
|
value: function unmuteVideo() {
|
|
3507
|
-
var
|
|
3529
|
+
var _this28 = this;
|
|
3508
3530
|
|
|
3509
3531
|
if (!_util.default.isUserInJoinedState(this.locusInfo)) {
|
|
3510
3532
|
return _promise.default.reject(new _webexErrors.UserNotJoinedError());
|
|
@@ -3521,11 +3543,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3521
3543
|
|
|
3522
3544
|
var LOG_HEADER = 'Meeting:index#unmuteVideo -->';
|
|
3523
3545
|
return logRequest(this.video.handleClientRequest(this, false).then(function () {
|
|
3524
|
-
_util.default.handleVideoLogging(
|
|
3546
|
+
_util.default.handleVideoLogging(_this28.mediaProperties.videoTrack);
|
|
3525
3547
|
|
|
3526
3548
|
_metrics.default.postEvent({
|
|
3527
3549
|
event: _config.eventType.UNMUTED,
|
|
3528
|
-
meeting:
|
|
3550
|
+
meeting: _this28,
|
|
3529
3551
|
data: {
|
|
3530
3552
|
trigger: _config.trigger.USER_INTERACTION,
|
|
3531
3553
|
mediaType: _config.mediaType.VIDEO
|
|
@@ -3533,8 +3555,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3533
3555
|
});
|
|
3534
3556
|
}).catch(function (error) {
|
|
3535
3557
|
_metrics.default.sendBehavioralMetric(_constants2.default.UNMUTE_VIDEO_FAILURE, {
|
|
3536
|
-
correlation_id:
|
|
3537
|
-
locus_id:
|
|
3558
|
+
correlation_id: _this28.correlationId,
|
|
3559
|
+
locus_id: _this28.locusUrl.split('/').pop(),
|
|
3538
3560
|
reason: error.message,
|
|
3539
3561
|
stack: error.stack
|
|
3540
3562
|
});
|
|
@@ -3575,7 +3597,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3575
3597
|
}, {
|
|
3576
3598
|
key: "joinWithMedia",
|
|
3577
3599
|
value: function joinWithMedia() {
|
|
3578
|
-
var
|
|
3600
|
+
var _this29 = this;
|
|
3579
3601
|
|
|
3580
3602
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3581
3603
|
// TODO: add validations for parameters
|
|
@@ -3583,12 +3605,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3583
3605
|
joinOptions = options.joinOptions,
|
|
3584
3606
|
audioVideoOptions = options.audioVideoOptions;
|
|
3585
3607
|
return this.join(joinOptions).then(function (joinResponse) {
|
|
3586
|
-
return
|
|
3608
|
+
return _this29.getMediaStreams(mediaSettings, audioVideoOptions).then(function (_ref8) {
|
|
3587
3609
|
var _ref9 = (0, _slicedToArray2.default)(_ref8, 2),
|
|
3588
3610
|
localStream = _ref9[0],
|
|
3589
3611
|
localShare = _ref9[1];
|
|
3590
3612
|
|
|
3591
|
-
return
|
|
3613
|
+
return _this29.addMedia({
|
|
3592
3614
|
mediaSettings: mediaSettings,
|
|
3593
3615
|
localShare: localShare,
|
|
3594
3616
|
localStream: localStream
|
|
@@ -3604,8 +3626,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3604
3626
|
_loggerProxy.default.logger.error('Meeting:index#joinWithMedia --> ', error);
|
|
3605
3627
|
|
|
3606
3628
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_WITH_MEDIA_FAILURE, {
|
|
3607
|
-
correlation_id:
|
|
3608
|
-
locus_id:
|
|
3629
|
+
correlation_id: _this29.correlationId,
|
|
3630
|
+
locus_id: _this29.locusUrl.split('/').pop(),
|
|
3609
3631
|
reason: error.message,
|
|
3610
3632
|
stack: error.stack
|
|
3611
3633
|
}, {
|
|
@@ -3627,7 +3649,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3627
3649
|
}, {
|
|
3628
3650
|
key: "reconnect",
|
|
3629
3651
|
value: function reconnect(options) {
|
|
3630
|
-
var
|
|
3652
|
+
var _this30 = this;
|
|
3631
3653
|
|
|
3632
3654
|
_loggerProxy.default.logger.log("Meeting:index#reconnect --> attempting to reconnect meeting ".concat(this.id));
|
|
3633
3655
|
|
|
@@ -3660,14 +3682,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3660
3682
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_STARTING);
|
|
3661
3683
|
|
|
3662
3684
|
return this.reconnectionManager.reconnect(options).then(function () {
|
|
3663
|
-
_triggerProxy.default.trigger(
|
|
3685
|
+
_triggerProxy.default.trigger(_this30, {
|
|
3664
3686
|
file: 'meeting/index',
|
|
3665
3687
|
function: 'reconnect'
|
|
3666
3688
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_SUCCESS);
|
|
3667
3689
|
|
|
3668
3690
|
_loggerProxy.default.logger.log('Meeting:index#reconnect --> Meeting reconnect success');
|
|
3669
3691
|
}).catch(function (error) {
|
|
3670
|
-
_triggerProxy.default.trigger(
|
|
3692
|
+
_triggerProxy.default.trigger(_this30, {
|
|
3671
3693
|
file: 'meeting/index',
|
|
3672
3694
|
function: 'reconnect'
|
|
3673
3695
|
}, _constants.EVENT_TRIGGERS.MEETING_RECONNECTION_FAILURE, {
|
|
@@ -3677,20 +3699,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3677
3699
|
_loggerProxy.default.logger.error('Meeting:index#reconnect --> Meeting reconnect failed', error);
|
|
3678
3700
|
|
|
3679
3701
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_RECONNECT_FAILURE, {
|
|
3680
|
-
correlation_id:
|
|
3681
|
-
locus_id:
|
|
3702
|
+
correlation_id: _this30.correlationId,
|
|
3703
|
+
locus_id: _this30.locusUrl.split('/').pop(),
|
|
3682
3704
|
reason: error.message,
|
|
3683
3705
|
stack: error.stack
|
|
3684
3706
|
});
|
|
3685
3707
|
|
|
3686
|
-
|
|
3708
|
+
_this30.uploadLogs({
|
|
3687
3709
|
file: 'meeting/index',
|
|
3688
3710
|
function: 'reconnect'
|
|
3689
3711
|
});
|
|
3690
3712
|
|
|
3691
3713
|
return _promise.default.reject(new _reconnection.default('Reconnection failure event', error));
|
|
3692
3714
|
}).finally(function () {
|
|
3693
|
-
|
|
3715
|
+
_this30.reconnectionManager.reset();
|
|
3694
3716
|
});
|
|
3695
3717
|
}
|
|
3696
3718
|
/**
|
|
@@ -3721,20 +3743,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3721
3743
|
}, {
|
|
3722
3744
|
key: "monitorTranscriptionSocketConnection",
|
|
3723
3745
|
value: function monitorTranscriptionSocketConnection() {
|
|
3724
|
-
var
|
|
3746
|
+
var _this31 = this;
|
|
3725
3747
|
|
|
3726
3748
|
this.transcription.onCloseSocket(function (event) {
|
|
3727
3749
|
_loggerProxy.default.logger.info("Meeting:index#onCloseSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection is closed now.\n ".concat(event));
|
|
3728
3750
|
|
|
3729
|
-
|
|
3751
|
+
_this31.triggerStopReceivingTranscriptionEvent();
|
|
3730
3752
|
});
|
|
3731
3753
|
this.transcription.onErrorSocket(function (event) {
|
|
3732
3754
|
_loggerProxy.default.logger.error("Meeting:index#onErrorSocket -->\n unable to continue receiving transcription;\n low-latency mercury web socket connection error had occured.\n ".concat(event));
|
|
3733
3755
|
|
|
3734
|
-
|
|
3756
|
+
_this31.triggerStopReceivingTranscriptionEvent();
|
|
3735
3757
|
|
|
3736
3758
|
_metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
|
|
3737
|
-
correlation_id:
|
|
3759
|
+
correlation_id: _this31.correlationId,
|
|
3738
3760
|
reason: 'unexpected error: transcription LLM web socket connection error had occured.',
|
|
3739
3761
|
event: event
|
|
3740
3762
|
});
|
|
@@ -3750,7 +3772,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3750
3772
|
key: "receiveTranscription",
|
|
3751
3773
|
value: function () {
|
|
3752
3774
|
var _receiveTranscription = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
3753
|
-
var
|
|
3775
|
+
var _this32 = this;
|
|
3754
3776
|
|
|
3755
3777
|
var datachannelUrl, _yield$this$request, webSocketUrl;
|
|
3756
3778
|
|
|
@@ -3783,7 +3805,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3783
3805
|
|
|
3784
3806
|
|
|
3785
3807
|
this.transcription.subscribe(function (payload) {
|
|
3786
|
-
_triggerProxy.default.trigger(
|
|
3808
|
+
_triggerProxy.default.trigger(_this32, {
|
|
3787
3809
|
file: 'meeting/index',
|
|
3788
3810
|
function: 'join'
|
|
3789
3811
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_RECEIVING_TRANSCRIPTION, payload);
|
|
@@ -3865,7 +3887,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3865
3887
|
}, {
|
|
3866
3888
|
key: "join",
|
|
3867
3889
|
value: function join() {
|
|
3868
|
-
var
|
|
3890
|
+
var _this33 = this;
|
|
3869
3891
|
|
|
3870
3892
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
3871
3893
|
|
|
@@ -3974,17 +3996,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3974
3996
|
}
|
|
3975
3997
|
|
|
3976
3998
|
return _util.default.joinMeetingOptions(this, options).then(function (join) {
|
|
3977
|
-
|
|
3999
|
+
_this33.meetingFiniteStateMachine.join();
|
|
3978
4000
|
|
|
3979
4001
|
_loggerProxy.default.logger.log('Meeting:index#join --> Success');
|
|
3980
4002
|
|
|
3981
4003
|
return join;
|
|
3982
4004
|
}).then(function (join) {
|
|
3983
4005
|
joinSuccess(join);
|
|
3984
|
-
|
|
4006
|
+
_this33.deferJoin = undefined;
|
|
3985
4007
|
|
|
3986
4008
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
|
|
3987
|
-
correlation_id:
|
|
4009
|
+
correlation_id: _this33.correlationId
|
|
3988
4010
|
});
|
|
3989
4011
|
|
|
3990
4012
|
return join;
|
|
@@ -3999,18 +4021,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
3999
4021
|
break;
|
|
4000
4022
|
}
|
|
4001
4023
|
|
|
4002
|
-
if (!(
|
|
4024
|
+
if (!(_this33.config.receiveTranscription || options.receiveTranscription)) {
|
|
4003
4025
|
_context3.next = 6;
|
|
4004
4026
|
break;
|
|
4005
4027
|
}
|
|
4006
4028
|
|
|
4007
|
-
if (!
|
|
4029
|
+
if (!_this33.isTranscriptionSupported()) {
|
|
4008
4030
|
_context3.next = 6;
|
|
4009
4031
|
break;
|
|
4010
4032
|
}
|
|
4011
4033
|
|
|
4012
4034
|
_context3.next = 5;
|
|
4013
|
-
return
|
|
4035
|
+
return _this33.receiveTranscription();
|
|
4014
4036
|
|
|
4015
4037
|
case 5:
|
|
4016
4038
|
_loggerProxy.default.logger.info('Meeting:index#join --> enabled to recieve transcription!');
|
|
@@ -4039,14 +4061,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4039
4061
|
}()).catch(function (error) {
|
|
4040
4062
|
var _error$error;
|
|
4041
4063
|
|
|
4042
|
-
|
|
4064
|
+
_this33.meetingFiniteStateMachine.fail(error);
|
|
4043
4065
|
|
|
4044
4066
|
_loggerProxy.default.logger.error('Meeting:index#join --> Failed', error);
|
|
4045
4067
|
|
|
4046
4068
|
_metrics.default.postEvent({
|
|
4047
4069
|
event: _config.eventType.LOCUS_JOIN_RESPONSE,
|
|
4048
|
-
meeting:
|
|
4049
|
-
meetingId:
|
|
4070
|
+
meeting: _this33,
|
|
4071
|
+
meetingId: _this33.id,
|
|
4050
4072
|
data: {
|
|
4051
4073
|
errors: [_metrics.default.parseLocusError(error.error, true)]
|
|
4052
4074
|
}
|
|
@@ -4054,19 +4076,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4054
4076
|
|
|
4055
4077
|
|
|
4056
4078
|
_metrics.default.sendBehavioralMetric(_constants2.default.JOIN_FAILURE, {
|
|
4057
|
-
correlation_id:
|
|
4079
|
+
correlation_id: _this33.correlationId,
|
|
4058
4080
|
reason: (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.message,
|
|
4059
4081
|
stack: error.stack
|
|
4060
4082
|
}); // Upload logs on join Failure
|
|
4061
4083
|
|
|
4062
4084
|
|
|
4063
|
-
_triggerProxy.default.trigger(
|
|
4085
|
+
_triggerProxy.default.trigger(_this33, {
|
|
4064
4086
|
file: 'meeting/index',
|
|
4065
4087
|
function: 'join'
|
|
4066
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4088
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this33);
|
|
4067
4089
|
|
|
4068
4090
|
joinFailed(error);
|
|
4069
|
-
|
|
4091
|
+
_this33.deferJoin = undefined;
|
|
4070
4092
|
return _promise.default.reject(error);
|
|
4071
4093
|
});
|
|
4072
4094
|
}
|
|
@@ -4110,7 +4132,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4110
4132
|
}, {
|
|
4111
4133
|
key: "dialInPstn",
|
|
4112
4134
|
value: function dialInPstn() {
|
|
4113
|
-
var
|
|
4135
|
+
var _this34 = this;
|
|
4114
4136
|
|
|
4115
4137
|
if (this.isPhoneProvisioned(this.dialInDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial in devices from being provisioned
|
|
4116
4138
|
|
|
@@ -4123,15 +4145,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4123
4145
|
locusUrl: locusUrl,
|
|
4124
4146
|
clientUrl: this.deviceUrl
|
|
4125
4147
|
}).then(function (res) {
|
|
4126
|
-
|
|
4148
|
+
_this34.locusInfo.onFullLocus(res.body.locus);
|
|
4127
4149
|
}).catch(function (error) {
|
|
4128
4150
|
var _error$error2;
|
|
4129
4151
|
|
|
4130
4152
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
|
|
4131
|
-
correlation_id:
|
|
4132
|
-
dial_in_url:
|
|
4153
|
+
correlation_id: _this34.correlationId,
|
|
4154
|
+
dial_in_url: _this34.dialInUrl,
|
|
4133
4155
|
locus_id: locusUrl.split('/').pop(),
|
|
4134
|
-
client_url:
|
|
4156
|
+
client_url: _this34.deviceUrl,
|
|
4135
4157
|
reason: (_error$error2 = error.error) === null || _error$error2 === void 0 ? void 0 : _error$error2.message,
|
|
4136
4158
|
stack: error.stack
|
|
4137
4159
|
});
|
|
@@ -4150,7 +4172,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4150
4172
|
}, {
|
|
4151
4173
|
key: "dialOutPstn",
|
|
4152
4174
|
value: function dialOutPstn(phoneNumber) {
|
|
4153
|
-
var
|
|
4175
|
+
var _this35 = this;
|
|
4154
4176
|
|
|
4155
4177
|
if (this.isPhoneProvisioned(this.dialOutDeviceStatus)) return _promise.default.resolve(); // prevent multiple dial out devices from being provisioned
|
|
4156
4178
|
|
|
@@ -4164,15 +4186,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4164
4186
|
locusUrl: locusUrl,
|
|
4165
4187
|
clientUrl: this.deviceUrl
|
|
4166
4188
|
}).then(function (res) {
|
|
4167
|
-
|
|
4189
|
+
_this35.locusInfo.onFullLocus(res.body.locus);
|
|
4168
4190
|
}).catch(function (error) {
|
|
4169
4191
|
var _error$error3;
|
|
4170
4192
|
|
|
4171
4193
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
|
|
4172
|
-
correlation_id:
|
|
4173
|
-
dial_out_url:
|
|
4194
|
+
correlation_id: _this35.correlationId,
|
|
4195
|
+
dial_out_url: _this35.dialOutUrl,
|
|
4174
4196
|
locus_id: locusUrl.split('/').pop(),
|
|
4175
|
-
client_url:
|
|
4197
|
+
client_url: _this35.deviceUrl,
|
|
4176
4198
|
reason: (_error$error3 = error.error) === null || _error$error3 === void 0 ? void 0 : _error$error3.message,
|
|
4177
4199
|
stack: error.stack
|
|
4178
4200
|
});
|
|
@@ -4204,7 +4226,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4204
4226
|
}, {
|
|
4205
4227
|
key: "moveTo",
|
|
4206
4228
|
value: function moveTo(resourceId) {
|
|
4207
|
-
var
|
|
4229
|
+
var _this36 = this;
|
|
4208
4230
|
|
|
4209
4231
|
if (!resourceId) {
|
|
4210
4232
|
throw new _parameter.default('Cannot move call without a resourceId.');
|
|
@@ -4246,13 +4268,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4246
4268
|
case 0:
|
|
4247
4269
|
_context4.prev = 0;
|
|
4248
4270
|
|
|
4249
|
-
if (!
|
|
4271
|
+
if (!_this36.isSharing) {
|
|
4250
4272
|
_context4.next = 4;
|
|
4251
4273
|
break;
|
|
4252
4274
|
}
|
|
4253
4275
|
|
|
4254
4276
|
_context4.next = 4;
|
|
4255
|
-
return
|
|
4277
|
+
return _this36.stopFloorRequest();
|
|
4256
4278
|
|
|
4257
4279
|
case 4:
|
|
4258
4280
|
mediaSettings = {
|
|
@@ -4266,23 +4288,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4266
4288
|
}
|
|
4267
4289
|
}; // clean up the local tracks
|
|
4268
4290
|
|
|
4269
|
-
|
|
4291
|
+
_this36.mediaProperties.setMediaDirection(mediaSettings.mediaDirection); // close the existing local tracks
|
|
4270
4292
|
|
|
4271
4293
|
|
|
4272
4294
|
_context4.next = 8;
|
|
4273
|
-
return
|
|
4295
|
+
return _this36.closeLocalStream();
|
|
4274
4296
|
|
|
4275
4297
|
case 8:
|
|
4276
4298
|
_context4.next = 10;
|
|
4277
|
-
return
|
|
4299
|
+
return _this36.closeLocalShare();
|
|
4278
4300
|
|
|
4279
4301
|
case 10:
|
|
4280
|
-
|
|
4302
|
+
_this36.mediaProperties.unsetMediaTracks(); // when a move to is intiated by the client , Locus delets the existing media node from the server as soon the DX answers the meeting
|
|
4281
4303
|
// once the DX answers we establish connection back the media server with only receiveShare enabled
|
|
4282
4304
|
|
|
4283
4305
|
|
|
4284
4306
|
_context4.next = 13;
|
|
4285
|
-
return
|
|
4307
|
+
return _this36.reconnectionManager.reconnectMedia(mediaSettings).then(function () {
|
|
4286
4308
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_SUCCESS);
|
|
4287
4309
|
});
|
|
4288
4310
|
|
|
@@ -4297,8 +4319,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4297
4319
|
_loggerProxy.default.logger.error('Meeting:index#moveTo --> Failed to moveTo resourceId', _context4.t0);
|
|
4298
4320
|
|
|
4299
4321
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4300
|
-
correlation_id:
|
|
4301
|
-
locus_id:
|
|
4322
|
+
correlation_id: _this36.correlationId,
|
|
4323
|
+
locus_id: _this36.locusUrl.split('/').pop(),
|
|
4302
4324
|
reason: _context4.t0.message,
|
|
4303
4325
|
stack: _context4.t0.stack
|
|
4304
4326
|
});
|
|
@@ -4317,13 +4339,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4317
4339
|
resourceId: resourceId,
|
|
4318
4340
|
moveToResource: true
|
|
4319
4341
|
}).then(function () {
|
|
4320
|
-
|
|
4342
|
+
_this36.meetingFiniteStateMachine.join();
|
|
4321
4343
|
}).catch(function (error) {
|
|
4322
|
-
|
|
4344
|
+
_this36.meetingFiniteStateMachine.fail(error);
|
|
4323
4345
|
|
|
4324
4346
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_TO_FAILURE, {
|
|
4325
|
-
correlation_id:
|
|
4326
|
-
locus_id:
|
|
4347
|
+
correlation_id: _this36.correlationId,
|
|
4348
|
+
locus_id: _this36.locusUrl.split('/').pop(),
|
|
4327
4349
|
reason: error.message,
|
|
4328
4350
|
stack: error.stack
|
|
4329
4351
|
});
|
|
@@ -4344,7 +4366,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4344
4366
|
}, {
|
|
4345
4367
|
key: "moveFrom",
|
|
4346
4368
|
value: function moveFrom(resourceId) {
|
|
4347
|
-
var
|
|
4369
|
+
var _this37 = this;
|
|
4348
4370
|
|
|
4349
4371
|
// On moveFrom ask the developer to re capture it moveFrom then updateMedia
|
|
4350
4372
|
if (!resourceId) {
|
|
@@ -4359,21 +4381,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4359
4381
|
});
|
|
4360
4382
|
|
|
4361
4383
|
return _util.default.joinMeetingOptions(this).then(function () {
|
|
4362
|
-
return _util.default.leaveMeeting(
|
|
4384
|
+
return _util.default.leaveMeeting(_this37, {
|
|
4363
4385
|
resourceId: resourceId,
|
|
4364
4386
|
correlationId: oldCorrelationId,
|
|
4365
4387
|
moveMeeting: true
|
|
4366
4388
|
}).then(function () {
|
|
4367
|
-
|
|
4389
|
+
_this37.resourceId = '';
|
|
4368
4390
|
|
|
4369
4391
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_SUCCESS);
|
|
4370
4392
|
});
|
|
4371
4393
|
}).catch(function (error) {
|
|
4372
|
-
|
|
4394
|
+
_this37.meetingFiniteStateMachine.fail(error);
|
|
4373
4395
|
|
|
4374
4396
|
_metrics.default.sendBehavioralMetric(_constants2.default.MOVE_FROM_FAILURE, {
|
|
4375
|
-
correlation_id:
|
|
4376
|
-
locus_id:
|
|
4397
|
+
correlation_id: _this37.correlationId,
|
|
4398
|
+
locus_id: _this37.locusUrl.split('/').pop(),
|
|
4377
4399
|
reason: error.message,
|
|
4378
4400
|
stack: error.stack
|
|
4379
4401
|
});
|
|
@@ -4409,7 +4431,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4409
4431
|
* @memberof Meeting
|
|
4410
4432
|
*/
|
|
4411
4433
|
function addMedia() {
|
|
4412
|
-
var
|
|
4434
|
+
var _this38 = this;
|
|
4413
4435
|
|
|
4414
4436
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4415
4437
|
var LOG_HEADER = 'Meeting:index#addMedia -->';
|
|
@@ -4457,50 +4479,50 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4457
4479
|
});
|
|
4458
4480
|
|
|
4459
4481
|
return _util.default.validateOptions(options).then(function () {
|
|
4460
|
-
return
|
|
4482
|
+
return _this38.roap.doTurnDiscovery(_this38, false);
|
|
4461
4483
|
}).then(function (turnServerInfo) {
|
|
4462
|
-
|
|
4484
|
+
_this38.mediaProperties.setMediaPeerConnection(_util2.default.createPeerConnection(turnServerInfo));
|
|
4463
4485
|
|
|
4464
|
-
|
|
4486
|
+
_this38.setMercuryListener();
|
|
4465
4487
|
|
|
4466
|
-
_peerConnectionManager.default.setPeerConnectionEvents(
|
|
4488
|
+
_peerConnectionManager.default.setPeerConnectionEvents(_this38);
|
|
4467
4489
|
|
|
4468
|
-
return
|
|
4490
|
+
return _this38.preMedia(localStream, localShare, mediaSettings);
|
|
4469
4491
|
}).then(function () {
|
|
4470
|
-
return _media.default.attachMedia(
|
|
4471
|
-
meetingId:
|
|
4472
|
-
remoteQualityLevel:
|
|
4473
|
-
enableRtx:
|
|
4474
|
-
enableExtmap:
|
|
4475
|
-
setStartLocalSDPGenRemoteSDPRecvDelay:
|
|
4492
|
+
return _media.default.attachMedia(_this38.mediaProperties, {
|
|
4493
|
+
meetingId: _this38.id,
|
|
4494
|
+
remoteQualityLevel: _this38.mediaProperties.remoteQualityLevel,
|
|
4495
|
+
enableRtx: _this38.config.enableRtx,
|
|
4496
|
+
enableExtmap: _this38.config.enableExtmap,
|
|
4497
|
+
setStartLocalSDPGenRemoteSDPRecvDelay: _this38.setStartLocalSDPGenRemoteSDPRecvDelay.bind(_this38)
|
|
4476
4498
|
}).then(function (peerConnection) {
|
|
4477
|
-
return
|
|
4499
|
+
return _this38.getDevices().then(function (devices) {
|
|
4478
4500
|
_util.default.handleDeviceLogging(devices);
|
|
4479
4501
|
|
|
4480
4502
|
return peerConnection;
|
|
4481
4503
|
});
|
|
4482
4504
|
}).then(function (peerConnection) {
|
|
4483
|
-
|
|
4505
|
+
_this38.handleMediaLogging(_this38.mediaProperties);
|
|
4484
4506
|
|
|
4485
4507
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection Received from attachMedia "));
|
|
4486
4508
|
|
|
4487
|
-
|
|
4509
|
+
_this38.setRemoteStream(peerConnection);
|
|
4488
4510
|
|
|
4489
|
-
if (
|
|
4511
|
+
if (_this38.config.stats.enableStatsAnalyzer) {
|
|
4490
4512
|
// TODO: ** Dont re create StatsAnalyzer on reconnect or rejoin
|
|
4491
|
-
|
|
4492
|
-
|
|
4513
|
+
_this38.networkQualityMonitor = new _networkQualityMonitor.default(_this38.config.stats);
|
|
4514
|
+
_this38.statsAnalyzer = new _statsAnalyzer.StatsAnalyzer(_this38.config.stats, _this38.networkQualityMonitor);
|
|
4493
4515
|
|
|
4494
|
-
|
|
4516
|
+
_this38.setupStatsAnalyzerEventHandlers();
|
|
4495
4517
|
|
|
4496
|
-
|
|
4518
|
+
_this38.networkQualityMonitor.on(_constants.EVENT_TRIGGERS.NETWORK_QUALITY, _this38.sendNetworkQualityEvent.bind(_this38));
|
|
4497
4519
|
}
|
|
4498
4520
|
}).catch(function (error) {
|
|
4499
4521
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media , setting up peerconnection, "), error);
|
|
4500
4522
|
|
|
4501
4523
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, {
|
|
4502
|
-
correlation_id:
|
|
4503
|
-
locus_id:
|
|
4524
|
+
correlation_id: _this38.correlationId,
|
|
4525
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4504
4526
|
reason: error.message,
|
|
4505
4527
|
stack: error.stack
|
|
4506
4528
|
});
|
|
@@ -4511,14 +4533,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4511
4533
|
var timerCount = 0; // eslint-disable-next-line func-names
|
|
4512
4534
|
// eslint-disable-next-line prefer-arrow-callback
|
|
4513
4535
|
|
|
4514
|
-
if (
|
|
4536
|
+
if (_this38.type === _constants._CALL_) {
|
|
4515
4537
|
resolve();
|
|
4516
4538
|
}
|
|
4517
4539
|
|
|
4518
4540
|
var joiningTimer = setInterval(function () {
|
|
4519
4541
|
timerCount += 1;
|
|
4520
4542
|
|
|
4521
|
-
if (
|
|
4543
|
+
if (_this38.meetingState === _constants.FULL_STATE.ACTIVE) {
|
|
4522
4544
|
clearInterval(joiningTimer);
|
|
4523
4545
|
resolve();
|
|
4524
4546
|
}
|
|
@@ -4530,10 +4552,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4530
4552
|
}, 1000);
|
|
4531
4553
|
});
|
|
4532
4554
|
}).then(function () {
|
|
4533
|
-
return logRequest(
|
|
4534
|
-
sdp:
|
|
4535
|
-
roapSeq:
|
|
4536
|
-
meeting:
|
|
4555
|
+
return logRequest(_this38.roap.sendRoapMediaRequest({
|
|
4556
|
+
sdp: _this38.mediaProperties.peerConnection.sdp,
|
|
4557
|
+
roapSeq: _this38.roapSeq,
|
|
4558
|
+
meeting: _this38 // or can pass meeting ID
|
|
4537
4559
|
|
|
4538
4560
|
}), {
|
|
4539
4561
|
header: "".concat(LOG_HEADER, " Send Roap Media Request."),
|
|
@@ -4541,7 +4563,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4541
4563
|
failure: "".concat(LOG_HEADER, " Error joining the call on send roap media request, ")
|
|
4542
4564
|
});
|
|
4543
4565
|
}).then(function () {
|
|
4544
|
-
var peerConnection =
|
|
4566
|
+
var peerConnection = _this38.mediaProperties.peerConnection;
|
|
4545
4567
|
return new _promise.default(function (resolve, reject) {
|
|
4546
4568
|
if (peerConnection.connectionState === _constants.CONNECTION_STATE.CONNECTED) {
|
|
4547
4569
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection CONNECTED"));
|
|
@@ -4562,7 +4584,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4562
4584
|
}
|
|
4563
4585
|
}, _constants.PC_BAIL_TIMEOUT);
|
|
4564
4586
|
|
|
4565
|
-
|
|
4587
|
+
_this38.once(_constants.EVENT_TRIGGERS.MEDIA_READY, function () {
|
|
4566
4588
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection CONNECTED, clearing stability timer."));
|
|
4567
4589
|
|
|
4568
4590
|
clearTimeout(stabilityTimeout);
|
|
@@ -4571,54 +4593,54 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4571
4593
|
});
|
|
4572
4594
|
}).then(function () {
|
|
4573
4595
|
if (mediaSettings && mediaSettings.sendShare && localShare) {
|
|
4574
|
-
if (
|
|
4575
|
-
return
|
|
4596
|
+
if (_this38.state === _constants.MEETING_STATE.STATES.JOINED) {
|
|
4597
|
+
return _this38.share();
|
|
4576
4598
|
} // When the self state changes to JOINED then request the floor
|
|
4577
4599
|
|
|
4578
4600
|
|
|
4579
|
-
|
|
4601
|
+
_this38.floorGrantPending = true;
|
|
4580
4602
|
}
|
|
4581
4603
|
|
|
4582
4604
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_SUCCESS, {
|
|
4583
|
-
correlation_id:
|
|
4584
|
-
locus_id:
|
|
4605
|
+
correlation_id: _this38.correlationId,
|
|
4606
|
+
locus_id: _this38.locusUrl.split('/').pop()
|
|
4585
4607
|
});
|
|
4586
4608
|
|
|
4587
4609
|
return _promise.default.resolve();
|
|
4588
4610
|
});
|
|
4589
4611
|
}).catch(function (error) {
|
|
4590
4612
|
// Clean up stats analyzer, peer connection, and turn off listeners
|
|
4591
|
-
var stopStatsAnalyzer =
|
|
4613
|
+
var stopStatsAnalyzer = _this38.statsAnalyzer ? _this38.statsAnalyzer.stopAnalyzer() : _promise.default.resolve();
|
|
4592
4614
|
stopStatsAnalyzer.then(function () {
|
|
4593
|
-
|
|
4615
|
+
_this38.statsAnalyzer = null;
|
|
4594
4616
|
|
|
4595
|
-
if (
|
|
4596
|
-
|
|
4617
|
+
if (_this38.mediaProperties.peerConnection) {
|
|
4618
|
+
_this38.closePeerConnections();
|
|
4597
4619
|
|
|
4598
|
-
|
|
4620
|
+
_this38.unsetPeerConnections();
|
|
4599
4621
|
}
|
|
4600
4622
|
|
|
4601
4623
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error adding media failed to initiate PC and send request, "), error);
|
|
4602
4624
|
|
|
4603
4625
|
_metrics.default.sendBehavioralMetric(_constants2.default.ADD_MEDIA_FAILURE, {
|
|
4604
|
-
correlation_id:
|
|
4605
|
-
locus_id:
|
|
4626
|
+
correlation_id: _this38.correlationId,
|
|
4627
|
+
locus_id: _this38.locusUrl.split('/').pop(),
|
|
4606
4628
|
reason: error.message,
|
|
4607
4629
|
stack: error.stack,
|
|
4608
4630
|
code: error.code
|
|
4609
4631
|
}); // Upload logs on error while adding media
|
|
4610
4632
|
|
|
4611
4633
|
|
|
4612
|
-
_triggerProxy.default.trigger(
|
|
4634
|
+
_triggerProxy.default.trigger(_this38, {
|
|
4613
4635
|
file: 'meeting/index',
|
|
4614
4636
|
function: 'addMedia'
|
|
4615
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
4637
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this38); // If addMedia failes for not establishing connection then
|
|
4616
4638
|
// leave the meeting with reson connection failed as meeting anyways will end
|
|
4617
4639
|
// and cannot be connected unless network condition is checked for firewall
|
|
4618
4640
|
|
|
4619
4641
|
|
|
4620
4642
|
if (error.code === _webexErrors.InvalidSdpError.CODE) {
|
|
4621
|
-
|
|
4643
|
+
_this38.leave({
|
|
4622
4644
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_CONNECTION_FAILED
|
|
4623
4645
|
});
|
|
4624
4646
|
}
|
|
@@ -4649,7 +4671,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4649
4671
|
}, {
|
|
4650
4672
|
key: "enqueueMediaUpdate",
|
|
4651
4673
|
value: function enqueueMediaUpdate(mediaUpdateType, options) {
|
|
4652
|
-
var
|
|
4674
|
+
var _this39 = this;
|
|
4653
4675
|
|
|
4654
4676
|
return new _promise.default(function (resolve, reject) {
|
|
4655
4677
|
var queueItem = {
|
|
@@ -4661,7 +4683,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4661
4683
|
|
|
4662
4684
|
_loggerProxy.default.logger.log("Meeting:index#enqueueMediaUpdate --> enqueuing media update type=".concat(mediaUpdateType));
|
|
4663
4685
|
|
|
4664
|
-
|
|
4686
|
+
_this39.queuedMediaUpdates.push(queueItem);
|
|
4665
4687
|
});
|
|
4666
4688
|
}
|
|
4667
4689
|
/**
|
|
@@ -4687,7 +4709,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4687
4709
|
* @memberof Meeting
|
|
4688
4710
|
*/
|
|
4689
4711
|
function updateMedia() {
|
|
4690
|
-
var
|
|
4712
|
+
var _this40 = this;
|
|
4691
4713
|
|
|
4692
4714
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4693
4715
|
var LOG_HEADER = 'Meeting:index#updateMedia -->';
|
|
@@ -4701,17 +4723,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4701
4723
|
mediaSettings = options.mediaSettings;
|
|
4702
4724
|
var previousSendShareStatus = this.mediaProperties.mediaDirection.sendShare;
|
|
4703
4725
|
return _util.default.validateOptions(options).then(function () {
|
|
4704
|
-
return
|
|
4726
|
+
return _this40.preMedia(localStream, localShare, mediaSettings);
|
|
4705
4727
|
}).then(function () {
|
|
4706
|
-
return _media.default.updateMedia(
|
|
4707
|
-
meetingId:
|
|
4708
|
-
remoteQualityLevel:
|
|
4709
|
-
enableRtx:
|
|
4710
|
-
enableExtmap:
|
|
4728
|
+
return _media.default.updateMedia(_this40.mediaProperties, {
|
|
4729
|
+
meetingId: _this40.id,
|
|
4730
|
+
remoteQualityLevel: _this40.mediaProperties.remoteQualityLevel,
|
|
4731
|
+
enableRtx: _this40.config.enableRtx,
|
|
4732
|
+
enableExtmap: _this40.config.enableExtmap
|
|
4711
4733
|
}).then(function (peerConnection) {
|
|
4712
4734
|
_loggerProxy.default.logger.info("".concat(LOG_HEADER, " PeerConnection received from updateMedia, ").concat(peerConnection));
|
|
4713
4735
|
|
|
4714
|
-
|
|
4736
|
+
_this40.setRemoteStream(peerConnection);
|
|
4715
4737
|
|
|
4716
4738
|
if (mediaSettings.receiveShare || localShare) {
|
|
4717
4739
|
_peerConnectionManager.default.setContentSlides(peerConnection);
|
|
@@ -4720,18 +4742,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4720
4742
|
_loggerProxy.default.logger.error("".concat(LOG_HEADER, " Error updatedMedia, "), error);
|
|
4721
4743
|
|
|
4722
4744
|
_metrics.default.sendBehavioralMetric(_constants2.default.UPDATE_MEDIA_FAILURE, {
|
|
4723
|
-
correlation_id:
|
|
4724
|
-
locus_id:
|
|
4745
|
+
correlation_id: _this40.correlationId,
|
|
4746
|
+
locus_id: _this40.locusUrl.split('/').pop(),
|
|
4725
4747
|
reason: error.message,
|
|
4726
4748
|
stack: error.stack
|
|
4727
4749
|
});
|
|
4728
4750
|
|
|
4729
4751
|
throw error;
|
|
4730
4752
|
}).then(function () {
|
|
4731
|
-
return logRequest(
|
|
4732
|
-
sdp:
|
|
4733
|
-
roapSeq:
|
|
4734
|
-
meeting:
|
|
4753
|
+
return logRequest(_this40.roap.sendRoapMediaRequest({
|
|
4754
|
+
sdp: _this40.mediaProperties.peerConnection.sdp,
|
|
4755
|
+
roapSeq: _this40.roapSeq,
|
|
4756
|
+
meeting: _this40 // or can pass meeting ID
|
|
4735
4757
|
|
|
4736
4758
|
}), {
|
|
4737
4759
|
header: "".concat(LOG_HEADER, " sendRoapMediaRequest being sent"),
|
|
@@ -4739,13 +4761,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4739
4761
|
failure: "".concat(LOG_HEADER, " Error updateMedia on send roap media request, ")
|
|
4740
4762
|
});
|
|
4741
4763
|
}).then(function () {
|
|
4742
|
-
return
|
|
4764
|
+
return _this40.checkForStopShare(mediaSettings.sendShare, previousSendShareStatus);
|
|
4743
4765
|
}).then(function (startShare) {
|
|
4744
4766
|
// This is a special case if we do an /floor grant followed by /media
|
|
4745
4767
|
// we actually get a OFFER from the server and a GLAR condition happens
|
|
4746
4768
|
if (startShare) {
|
|
4747
4769
|
// We are assuming that the clients are connected when doing an update
|
|
4748
|
-
return
|
|
4770
|
+
return _this40.share();
|
|
4749
4771
|
}
|
|
4750
4772
|
|
|
4751
4773
|
return _promise.default.resolve();
|
|
@@ -4767,7 +4789,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4767
4789
|
key: "updateAudio",
|
|
4768
4790
|
value: function () {
|
|
4769
4791
|
var _updateAudio = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(options) {
|
|
4770
|
-
var
|
|
4792
|
+
var _this41 = this;
|
|
4771
4793
|
|
|
4772
4794
|
var sendAudio, receiveAudio, stream, audioTransceiver, track, bnrEnabled;
|
|
4773
4795
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
@@ -4823,13 +4845,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4823
4845
|
}).then(function () {
|
|
4824
4846
|
var previousMediaDirection = {};
|
|
4825
4847
|
|
|
4826
|
-
if (
|
|
4848
|
+
if (_this41.mediaProperties.mediaDirection) {
|
|
4827
4849
|
previousMediaDirection = {
|
|
4828
|
-
sendTrack:
|
|
4829
|
-
receiveTrack:
|
|
4850
|
+
sendTrack: _this41.mediaProperties.mediaDirection.sendAudio,
|
|
4851
|
+
receiveTrack: _this41.mediaProperties.mediaDirection.receiveAudio
|
|
4830
4852
|
};
|
|
4831
4853
|
} else {
|
|
4832
|
-
|
|
4854
|
+
_this41.mediaProperties.mediaDirection = {};
|
|
4833
4855
|
}
|
|
4834
4856
|
|
|
4835
4857
|
return _util.default.updateTransceiver({
|
|
@@ -4838,20 +4860,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4838
4860
|
receiveTrack: options.receiveAudio,
|
|
4839
4861
|
track: track,
|
|
4840
4862
|
transceiver: audioTransceiver,
|
|
4841
|
-
peerConnection:
|
|
4863
|
+
peerConnection: _this41.mediaProperties.peerConnection,
|
|
4842
4864
|
previousMediaDirection: previousMediaDirection
|
|
4843
4865
|
}, {
|
|
4844
|
-
mediaProperties:
|
|
4845
|
-
meeting:
|
|
4846
|
-
id:
|
|
4866
|
+
mediaProperties: _this41.mediaProperties,
|
|
4867
|
+
meeting: _this41,
|
|
4868
|
+
id: _this41.id
|
|
4847
4869
|
});
|
|
4848
4870
|
}).then(function () {
|
|
4849
|
-
|
|
4871
|
+
_this41.setLocalAudioTrack(track);
|
|
4850
4872
|
|
|
4851
|
-
|
|
4852
|
-
|
|
4873
|
+
_this41.mediaProperties.mediaDirection.sendAudio = sendAudio;
|
|
4874
|
+
_this41.mediaProperties.mediaDirection.receiveAudio = receiveAudio; // audio state could be undefined if you have not sent audio before
|
|
4853
4875
|
|
|
4854
|
-
|
|
4876
|
+
_this41.audio = _this41.audio || (0, _muteState.default)(_constants.AUDIO, _this41, _this41.mediaProperties.mediaDirection);
|
|
4855
4877
|
}));
|
|
4856
4878
|
|
|
4857
4879
|
case 16:
|
|
@@ -4882,7 +4904,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4882
4904
|
}, {
|
|
4883
4905
|
key: "updateVideo",
|
|
4884
4906
|
value: function updateVideo(options) {
|
|
4885
|
-
var
|
|
4907
|
+
var _this42 = this;
|
|
4886
4908
|
|
|
4887
4909
|
if (!this.canUpdateMedia()) {
|
|
4888
4910
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.VIDEO, options);
|
|
@@ -4909,23 +4931,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4909
4931
|
receiveTrack: options.receiveVideo,
|
|
4910
4932
|
track: track,
|
|
4911
4933
|
transceiver: videoTransceiver,
|
|
4912
|
-
peerConnection:
|
|
4934
|
+
peerConnection: _this42.mediaProperties.peerConnection,
|
|
4913
4935
|
previousMediaDirection: {
|
|
4914
|
-
sendTrack:
|
|
4915
|
-
receiveTrack:
|
|
4936
|
+
sendTrack: _this42.mediaProperties.mediaDirection.sendVideo,
|
|
4937
|
+
receiveTrack: _this42.mediaProperties.mediaDirection.receiveVideo
|
|
4916
4938
|
}
|
|
4917
4939
|
}, {
|
|
4918
|
-
mediaProperties:
|
|
4919
|
-
meeting:
|
|
4920
|
-
id:
|
|
4940
|
+
mediaProperties: _this42.mediaProperties,
|
|
4941
|
+
meeting: _this42,
|
|
4942
|
+
id: _this42.id
|
|
4921
4943
|
});
|
|
4922
4944
|
}).then(function () {
|
|
4923
|
-
|
|
4945
|
+
_this42.setLocalVideoTrack(track);
|
|
4924
4946
|
|
|
4925
|
-
|
|
4926
|
-
|
|
4947
|
+
_this42.mediaProperties.mediaDirection.sendVideo = sendVideo;
|
|
4948
|
+
_this42.mediaProperties.mediaDirection.receiveVideo = receiveVideo; // video state could be undefined if you have not sent video before
|
|
4927
4949
|
|
|
4928
|
-
|
|
4950
|
+
_this42.video = _this42.video || (0, _muteState.default)(_constants.VIDEO, _this42, _this42.mediaProperties.mediaDirection);
|
|
4929
4951
|
});
|
|
4930
4952
|
}
|
|
4931
4953
|
/**
|
|
@@ -4967,7 +4989,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4967
4989
|
}, {
|
|
4968
4990
|
key: "updateShare",
|
|
4969
4991
|
value: function updateShare(options) {
|
|
4970
|
-
var
|
|
4992
|
+
var _this43 = this;
|
|
4971
4993
|
|
|
4972
4994
|
if (!options.skipSignalingCheck && !this.canUpdateMedia()) {
|
|
4973
4995
|
return this.enqueueMediaUpdate(MEDIA_UPDATE_TYPE.SHARE, options);
|
|
@@ -4990,7 +5012,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4990
5012
|
sendShare: sendShare,
|
|
4991
5013
|
localShare: stream
|
|
4992
5014
|
}).then(function () {
|
|
4993
|
-
return
|
|
5015
|
+
return _this43.checkForStopShare(sendShare, previousSendShareStatus);
|
|
4994
5016
|
}).then(function (startShare) {
|
|
4995
5017
|
return _util.default.updateTransceiver({
|
|
4996
5018
|
type: 'video',
|
|
@@ -4998,41 +5020,41 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4998
5020
|
receiveTrack: receiveShare,
|
|
4999
5021
|
track: track,
|
|
5000
5022
|
transceiver: shareTransceiver,
|
|
5001
|
-
peerConnection:
|
|
5023
|
+
peerConnection: _this43.mediaProperties.peerConnection,
|
|
5002
5024
|
previousMediaDirection: {
|
|
5003
|
-
sendTrack:
|
|
5004
|
-
receiveTrack:
|
|
5025
|
+
sendTrack: _this43.mediaProperties.mediaDirection.sendShare,
|
|
5026
|
+
receiveTrack: _this43.mediaProperties.mediaDirection.receiveShare
|
|
5005
5027
|
}
|
|
5006
5028
|
}, {
|
|
5007
|
-
mediaProperties:
|
|
5008
|
-
meeting:
|
|
5009
|
-
id:
|
|
5029
|
+
mediaProperties: _this43.mediaProperties,
|
|
5030
|
+
meeting: _this43,
|
|
5031
|
+
id: _this43.id
|
|
5010
5032
|
}).then(function () {
|
|
5011
5033
|
if (startShare) {
|
|
5012
|
-
return
|
|
5034
|
+
return _this43.share();
|
|
5013
5035
|
}
|
|
5014
5036
|
|
|
5015
5037
|
return _promise.default.resolve();
|
|
5016
5038
|
});
|
|
5017
5039
|
}).then(function () {
|
|
5018
|
-
|
|
5019
|
-
|
|
5040
|
+
_this43.mediaProperties.mediaDirection.sendShare = sendShare;
|
|
5041
|
+
_this43.mediaProperties.mediaDirection.receiveShare = receiveShare;
|
|
5020
5042
|
}).catch(function (error) {
|
|
5021
|
-
|
|
5043
|
+
_this43.unsetLocalShareTrack(stream);
|
|
5022
5044
|
|
|
5023
5045
|
throw error;
|
|
5024
5046
|
}).finally(function () {
|
|
5025
5047
|
var delay = 1e3; // Check to see if share was stopped natively before onended was assigned.
|
|
5026
5048
|
|
|
5027
|
-
var sharingModeIsActive =
|
|
5028
|
-
var isSharingOutOfSync = sharingModeIsActive && !
|
|
5049
|
+
var sharingModeIsActive = _this43.mediaProperties.peerConnection.shareTransceiver.direction === _constants.SENDRECV;
|
|
5050
|
+
var isSharingOutOfSync = sharingModeIsActive && !_this43.isLocalShareLive;
|
|
5029
5051
|
|
|
5030
5052
|
if (isSharingOutOfSync) {
|
|
5031
5053
|
// Adding a delay to avoid a 409 from server
|
|
5032
5054
|
// which results in user still appearing as if sharing.
|
|
5033
5055
|
// Also delay give time for changes to peerConnection.
|
|
5034
5056
|
setTimeout(function () {
|
|
5035
|
-
return
|
|
5057
|
+
return _this43.handleShareTrackEnded(stream);
|
|
5036
5058
|
}, delay);
|
|
5037
5059
|
}
|
|
5038
5060
|
});
|
|
@@ -5072,7 +5094,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5072
5094
|
}, {
|
|
5073
5095
|
key: "acknowledge",
|
|
5074
5096
|
value: function acknowledge(type) {
|
|
5075
|
-
var
|
|
5097
|
+
var _this44 = this;
|
|
5076
5098
|
|
|
5077
5099
|
if (!type) {
|
|
5078
5100
|
return _promise.default.reject(new _parameter.default('Type must be set to acknowledge the meeting.'));
|
|
@@ -5086,11 +5108,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5086
5108
|
}).then(function (response) {
|
|
5087
5109
|
return _promise.default.resolve(response);
|
|
5088
5110
|
}).then(function (response) {
|
|
5089
|
-
|
|
5111
|
+
_this44.meetingFiniteStateMachine.ring(type);
|
|
5090
5112
|
|
|
5091
5113
|
_metrics.default.postEvent({
|
|
5092
5114
|
event: _config.eventType.ALERT_DISPLAYED,
|
|
5093
|
-
meeting:
|
|
5115
|
+
meeting: _this44
|
|
5094
5116
|
});
|
|
5095
5117
|
|
|
5096
5118
|
return _promise.default.resolve({
|
|
@@ -5115,14 +5137,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5115
5137
|
}, {
|
|
5116
5138
|
key: "decline",
|
|
5117
5139
|
value: function decline(reason) {
|
|
5118
|
-
var
|
|
5140
|
+
var _this45 = this;
|
|
5119
5141
|
|
|
5120
5142
|
return _util.default.declineMeeting(this, reason).then(function (decline) {
|
|
5121
|
-
|
|
5143
|
+
_this45.meetingFiniteStateMachine.decline();
|
|
5122
5144
|
|
|
5123
5145
|
return _promise.default.resolve(decline);
|
|
5124
5146
|
}).catch(function (error) {
|
|
5125
|
-
|
|
5147
|
+
_this45.meetingFiniteStateMachine.fail(error);
|
|
5126
5148
|
|
|
5127
5149
|
return _promise.default.reject(error);
|
|
5128
5150
|
});
|
|
@@ -5139,7 +5161,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5139
5161
|
}, {
|
|
5140
5162
|
key: "leave",
|
|
5141
5163
|
value: function leave() {
|
|
5142
|
-
var
|
|
5164
|
+
var _this46 = this;
|
|
5143
5165
|
|
|
5144
5166
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5145
5167
|
|
|
@@ -5157,25 +5179,25 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5157
5179
|
_loggerProxy.default.logger.log('Meeting:index#leave --> Leaving a meeting');
|
|
5158
5180
|
|
|
5159
5181
|
return _util.default.leaveMeeting(this, options).then(function (leave) {
|
|
5160
|
-
|
|
5182
|
+
_this46.meetingFiniteStateMachine.leave();
|
|
5161
5183
|
|
|
5162
|
-
|
|
5184
|
+
_this46.clearMeetingData(); // upload logs on leave irrespective of meeting delete
|
|
5163
5185
|
|
|
5164
5186
|
|
|
5165
|
-
_triggerProxy.default.trigger(
|
|
5187
|
+
_triggerProxy.default.trigger(_this46, {
|
|
5166
5188
|
file: 'meeting/index',
|
|
5167
5189
|
function: 'leave'
|
|
5168
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5190
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46); // TODO: more testing before we remove this code, we are not sure the scenarios for destroy here
|
|
5169
5191
|
|
|
5170
5192
|
|
|
5171
|
-
if (
|
|
5193
|
+
if (_this46.wirelessShare || _this46.guest) {
|
|
5172
5194
|
// If screen sharing clean the meeting object
|
|
5173
|
-
_triggerProxy.default.trigger(
|
|
5195
|
+
_triggerProxy.default.trigger(_this46, {
|
|
5174
5196
|
file: 'meeting/index',
|
|
5175
5197
|
function: 'leave'
|
|
5176
5198
|
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
5177
5199
|
reason: options.reason,
|
|
5178
|
-
meetingId:
|
|
5200
|
+
meetingId: _this46.id
|
|
5179
5201
|
});
|
|
5180
5202
|
}
|
|
5181
5203
|
|
|
@@ -5183,19 +5205,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5183
5205
|
|
|
5184
5206
|
return leave;
|
|
5185
5207
|
}).catch(function (error) {
|
|
5186
|
-
|
|
5208
|
+
_this46.meetingFiniteStateMachine.fail(error);
|
|
5187
5209
|
|
|
5188
5210
|
_loggerProxy.default.logger.error('Meeting:index#leave --> Failed to leave ', error); // upload logs on leave irrespective of meeting delete
|
|
5189
5211
|
|
|
5190
5212
|
|
|
5191
|
-
_triggerProxy.default.trigger(
|
|
5213
|
+
_triggerProxy.default.trigger(_this46, {
|
|
5192
5214
|
file: 'meeting/index',
|
|
5193
5215
|
function: 'leave'
|
|
5194
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
5216
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this46);
|
|
5195
5217
|
|
|
5196
5218
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_LEAVE_FAILURE, {
|
|
5197
|
-
correlation_id:
|
|
5198
|
-
locus_id:
|
|
5219
|
+
correlation_id: _this46.correlationId,
|
|
5220
|
+
locus_id: _this46.locusUrl.split('/').pop(),
|
|
5199
5221
|
reason: error.message,
|
|
5200
5222
|
stack: error.stack,
|
|
5201
5223
|
code: error.code
|
|
@@ -5216,7 +5238,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5216
5238
|
}, {
|
|
5217
5239
|
key: "startWhiteboardShare",
|
|
5218
5240
|
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
5219
|
-
var
|
|
5241
|
+
var _this47 = this;
|
|
5220
5242
|
|
|
5221
5243
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5222
5244
|
return element.name === 'whiteboard';
|
|
@@ -5245,14 +5267,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5245
5267
|
}
|
|
5246
5268
|
|
|
5247
5269
|
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
5248
|
-
|
|
5270
|
+
_this47.isSharing = false;
|
|
5249
5271
|
return _promise.default.resolve();
|
|
5250
5272
|
}).catch(function (error) {
|
|
5251
5273
|
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
5252
5274
|
|
|
5253
5275
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
5254
|
-
correlation_id:
|
|
5255
|
-
locus_id:
|
|
5276
|
+
correlation_id: _this47.correlationId,
|
|
5277
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
5256
5278
|
reason: error.message,
|
|
5257
5279
|
stack: error.stack,
|
|
5258
5280
|
board: {
|
|
@@ -5277,7 +5299,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5277
5299
|
}, {
|
|
5278
5300
|
key: "stopWhiteboardShare",
|
|
5279
5301
|
value: function stopWhiteboardShare(channelUrl) {
|
|
5280
|
-
var
|
|
5302
|
+
var _this48 = this;
|
|
5281
5303
|
|
|
5282
5304
|
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
5283
5305
|
return element.name === 'whiteboard';
|
|
@@ -5298,8 +5320,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5298
5320
|
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
5299
5321
|
|
|
5300
5322
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
5301
|
-
correlation_id:
|
|
5302
|
-
locus_id:
|
|
5323
|
+
correlation_id: _this48.correlationId,
|
|
5324
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
5303
5325
|
reason: error.message,
|
|
5304
5326
|
stack: error.stack,
|
|
5305
5327
|
board: {
|
|
@@ -5323,7 +5345,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5323
5345
|
}, {
|
|
5324
5346
|
key: "share",
|
|
5325
5347
|
value: function share() {
|
|
5326
|
-
var
|
|
5348
|
+
var _this49 = this;
|
|
5327
5349
|
|
|
5328
5350
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5329
5351
|
return element.name === _constants.CONTENT;
|
|
@@ -5342,14 +5364,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5342
5364
|
uri: content.url,
|
|
5343
5365
|
resourceUrl: this.resourceUrl
|
|
5344
5366
|
}).then(function () {
|
|
5345
|
-
|
|
5367
|
+
_this49.isSharing = true;
|
|
5346
5368
|
return _promise.default.resolve();
|
|
5347
5369
|
}).catch(function (error) {
|
|
5348
5370
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
5349
5371
|
|
|
5350
5372
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_SHARE_FAILURE, {
|
|
5351
|
-
correlation_id:
|
|
5352
|
-
locus_id:
|
|
5373
|
+
correlation_id: _this49.correlationId,
|
|
5374
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
5353
5375
|
reason: error.message,
|
|
5354
5376
|
stack: error.stack
|
|
5355
5377
|
});
|
|
@@ -5388,7 +5410,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5388
5410
|
}, {
|
|
5389
5411
|
key: "stopFloorRequest",
|
|
5390
5412
|
value: function stopFloorRequest() {
|
|
5391
|
-
var
|
|
5413
|
+
var _this50 = this;
|
|
5392
5414
|
|
|
5393
5415
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
5394
5416
|
return element.name === _constants.CONTENT;
|
|
@@ -5418,15 +5440,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5418
5440
|
_loggerProxy.default.logger.error('Meeting:index#stopFloorRequest --> Error ', error);
|
|
5419
5441
|
|
|
5420
5442
|
_metrics.default.sendBehavioralMetric(_constants2.default.STOP_FLOOR_REQUEST_FAILURE, {
|
|
5421
|
-
correlation_id:
|
|
5422
|
-
locus_id:
|
|
5443
|
+
correlation_id: _this50.correlationId,
|
|
5444
|
+
locus_id: _this50.locusUrl.split('/').pop(),
|
|
5423
5445
|
reason: error.message,
|
|
5424
5446
|
stack: error.stack
|
|
5425
5447
|
});
|
|
5426
5448
|
|
|
5427
5449
|
return _promise.default.reject(error);
|
|
5428
5450
|
}).finally(function () {
|
|
5429
|
-
|
|
5451
|
+
_this50.isSharing = false;
|
|
5430
5452
|
});
|
|
5431
5453
|
}
|
|
5432
5454
|
|
|
@@ -5562,7 +5584,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5562
5584
|
}, {
|
|
5563
5585
|
key: "changeVideoLayout",
|
|
5564
5586
|
value: function changeVideoLayout(layoutType) {
|
|
5565
|
-
var
|
|
5587
|
+
var _this51 = this;
|
|
5566
5588
|
|
|
5567
5589
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5568
5590
|
var main = renderInfo.main,
|
|
@@ -5620,7 +5642,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5620
5642
|
|
|
5621
5643
|
this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
|
|
5622
5644
|
this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
|
|
5623
|
-
_triggerProxy.default.trigger(
|
|
5645
|
+
_triggerProxy.default.trigger(_this51, {
|
|
5624
5646
|
file: 'meeting/index',
|
|
5625
5647
|
function: 'changeVideoLayout'
|
|
5626
5648
|
}, _constants.EVENT_TRIGGERS.MEETING_CONTROLS_LAYOUT_UPDATE, {
|
|
@@ -5635,7 +5657,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5635
5657
|
content: layoutInfo.content
|
|
5636
5658
|
}).then(function (response) {
|
|
5637
5659
|
if (response && response.body && response.body.locus) {
|
|
5638
|
-
|
|
5660
|
+
_this51.locusInfo.onFullLocus(response.body.locus);
|
|
5639
5661
|
}
|
|
5640
5662
|
}).catch(function (error) {
|
|
5641
5663
|
_loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
|
|
@@ -5652,7 +5674,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5652
5674
|
}, {
|
|
5653
5675
|
key: "setLocalVideoQuality",
|
|
5654
5676
|
value: function setLocalVideoQuality(level) {
|
|
5655
|
-
var
|
|
5677
|
+
var _this52 = this;
|
|
5656
5678
|
|
|
5657
5679
|
_loggerProxy.default.logger.log("Meeting:index#setLocalVideoQuality --> Setting quality to ".concat(level));
|
|
5658
5680
|
|
|
@@ -5682,7 +5704,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5682
5704
|
var _ref13 = (0, _slicedToArray2.default)(_ref12, 1),
|
|
5683
5705
|
localStream = _ref13[0];
|
|
5684
5706
|
|
|
5685
|
-
return
|
|
5707
|
+
return _this52.updateVideo({
|
|
5686
5708
|
sendVideo: true,
|
|
5687
5709
|
receiveVideo: true,
|
|
5688
5710
|
stream: localStream
|
|
@@ -5730,7 +5752,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5730
5752
|
}, {
|
|
5731
5753
|
key: "setMeetingQuality",
|
|
5732
5754
|
value: function setMeetingQuality(level) {
|
|
5733
|
-
var
|
|
5755
|
+
var _this53 = this;
|
|
5734
5756
|
|
|
5735
5757
|
_loggerProxy.default.logger.log("Meeting:index#setMeetingQuality --> Setting quality to ".concat(level));
|
|
5736
5758
|
|
|
@@ -5755,18 +5777,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5755
5777
|
receiveVideo = _this$mediaProperties4.receiveVideo,
|
|
5756
5778
|
sendVideo = _this$mediaProperties4.sendVideo;
|
|
5757
5779
|
return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
|
|
5758
|
-
return receiveAudio || receiveVideo ?
|
|
5780
|
+
return receiveAudio || receiveVideo ? _this53.setRemoteQualityLevel(level) : _promise.default.resolve();
|
|
5759
5781
|
}).catch(function (error) {
|
|
5760
5782
|
// From troubleshooting it seems that the stream itself doesn't change the max-fs if the peer connection isn't stable
|
|
5761
|
-
|
|
5783
|
+
_this53.mediaProperties.setLocalQualityLevel(previousLevel.local);
|
|
5762
5784
|
|
|
5763
|
-
|
|
5785
|
+
_this53.mediaProperties.setRemoteQualityLevel(previousLevel.remote);
|
|
5764
5786
|
|
|
5765
5787
|
_loggerProxy.default.logger.error("Meeting:index#setMeetingQuality --> ".concat(error.message));
|
|
5766
5788
|
|
|
5767
5789
|
_metrics.default.sendBehavioralMetric(_constants2.default.SET_MEETING_QUALITY_FAILURE, {
|
|
5768
|
-
correlation_id:
|
|
5769
|
-
locus_id:
|
|
5790
|
+
correlation_id: _this53.correlationId,
|
|
5791
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
5770
5792
|
reason: error.message,
|
|
5771
5793
|
stack: error.stack
|
|
5772
5794
|
}, {
|
|
@@ -5790,7 +5812,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5790
5812
|
}, {
|
|
5791
5813
|
key: "shareScreen",
|
|
5792
5814
|
value: function shareScreen() {
|
|
5793
|
-
var
|
|
5815
|
+
var _this54 = this;
|
|
5794
5816
|
|
|
5795
5817
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5796
5818
|
|
|
@@ -5802,9 +5824,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5802
5824
|
}, options);
|
|
5803
5825
|
|
|
5804
5826
|
return _media.default.getDisplayMedia(shareConstraints, this.config).then(function (shareStream) {
|
|
5805
|
-
return
|
|
5827
|
+
return _this54.updateShare({
|
|
5806
5828
|
sendShare: true,
|
|
5807
|
-
receiveShare:
|
|
5829
|
+
receiveShare: _this54.mediaProperties.mediaDirection.receiveShare,
|
|
5808
5830
|
stream: shareStream
|
|
5809
5831
|
});
|
|
5810
5832
|
}).catch(function (error) {
|
|
@@ -5816,8 +5838,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5816
5838
|
// TODO: The getDisplayMedia errors need to be moved inside `media.getDisplayMedia`
|
|
5817
5839
|
var metricName = _constants2.default.GET_DISPLAY_MEDIA_FAILURE;
|
|
5818
5840
|
var data = {
|
|
5819
|
-
correlation_id:
|
|
5820
|
-
locus_id:
|
|
5841
|
+
correlation_id: _this54.correlationId,
|
|
5842
|
+
locus_id: _this54.locusUrl.split('/').pop(),
|
|
5821
5843
|
reason: error.message,
|
|
5822
5844
|
stack: error.stack
|
|
5823
5845
|
};
|
|
@@ -6113,7 +6135,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6113
6135
|
}, {
|
|
6114
6136
|
key: "endMeetingForAll",
|
|
6115
6137
|
value: function endMeetingForAll() {
|
|
6116
|
-
var
|
|
6138
|
+
var _this55 = this;
|
|
6117
6139
|
|
|
6118
6140
|
_metrics.default.postEvent({
|
|
6119
6141
|
event: _config.eventType.LEAVE,
|
|
@@ -6132,31 +6154,31 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
6132
6154
|
});
|
|
6133
6155
|
|
|
6134
6156
|
return _util.default.endMeetingForAll(this).then(function (end) {
|
|
6135
|
-
|
|
6157
|
+
_this55.meetingFiniteStateMachine.end();
|
|
6136
6158
|
|
|
6137
|
-
|
|
6159
|
+
_this55.clearMeetingData(); // upload logs on leave irrespective of meeting delete
|
|
6138
6160
|
|
|
6139
6161
|
|
|
6140
|
-
_triggerProxy.default.trigger(
|
|
6162
|
+
_triggerProxy.default.trigger(_this55, {
|
|
6141
6163
|
file: 'meeting/index',
|
|
6142
6164
|
function: 'endMeetingForAll'
|
|
6143
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6165
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
|
6144
6166
|
|
|
6145
6167
|
return end;
|
|
6146
6168
|
}).catch(function (error) {
|
|
6147
|
-
|
|
6169
|
+
_this55.meetingFiniteStateMachine.fail(error);
|
|
6148
6170
|
|
|
6149
6171
|
_loggerProxy.default.logger.error('Meeting:index#endMeetingForAll --> Failed to end meeting ', error); // upload logs on leave irrespective of meeting delete
|
|
6150
6172
|
|
|
6151
6173
|
|
|
6152
|
-
_triggerProxy.default.trigger(
|
|
6174
|
+
_triggerProxy.default.trigger(_this55, {
|
|
6153
6175
|
file: 'meeting/index',
|
|
6154
6176
|
function: 'endMeetingForAll'
|
|
6155
|
-
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS,
|
|
6177
|
+
}, _constants.EVENTS.REQUEST_UPLOAD_LOGS, _this55);
|
|
6156
6178
|
|
|
6157
6179
|
_metrics.default.sendBehavioralMetric(_constants2.default.MEETING_END_ALL_FAILURE, {
|
|
6158
|
-
correlation_id:
|
|
6159
|
-
locus_id:
|
|
6180
|
+
correlation_id: _this55.correlationId,
|
|
6181
|
+
locus_id: _this55.locusUrl.split('/').pop(),
|
|
6160
6182
|
reason: error.message,
|
|
6161
6183
|
stack: error.stack,
|
|
6162
6184
|
code: error.code
|