@webex/plugin-meetings 1.148.0 → 1.150.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 +12 -4
- package/dist/constants.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +88 -11
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/meeting/index.js +247 -38
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +17 -41
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting-info/index.js +1 -1
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/util.js +14 -0
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meetings/index.js +12 -13
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +0 -16
- package/dist/meetings/util.js.map +1 -1
- package/dist/members/index.js +72 -11
- package/dist/members/index.js.map +1 -1
- package/dist/metrics/config.js +6 -0
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/index.js +6 -0
- package/dist/metrics/index.js.map +1 -1
- package/package.json +5 -5
- package/src/constants.js +9 -2
- package/src/locus-info/mediaSharesUtils.js +84 -12
- package/src/meeting/index.js +225 -19
- package/src/meeting/request.js +50 -29
- package/src/meeting-info/index.js +4 -1
- package/src/meeting-info/util.js +13 -0
- package/src/meetings/index.js +10 -11
- package/src/meetings/util.js +0 -14
- package/src/members/index.js +80 -11
- package/src/metrics/config.js +6 -0
- package/src/metrics/index.js +5 -1
- package/test/integration/spec/journey.js +141 -5
- package/test/integration/spec/space-meeting.js +10 -1
- package/test/unit/spec/meeting/index.js +547 -2
|
@@ -20,8 +20,15 @@ var MediaSharesUtils = {};
|
|
|
20
20
|
MediaSharesUtils.parse = function (mediaShares) {
|
|
21
21
|
if (mediaShares) {
|
|
22
22
|
return {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
content: {
|
|
24
|
+
beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),
|
|
25
|
+
disposition: MediaSharesUtils.getContentDisposition(mediaShares)
|
|
26
|
+
},
|
|
27
|
+
whiteboard: {
|
|
28
|
+
beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),
|
|
29
|
+
disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),
|
|
30
|
+
resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares)
|
|
31
|
+
}
|
|
25
32
|
};
|
|
26
33
|
}
|
|
27
34
|
|
|
@@ -45,16 +52,27 @@ MediaSharesUtils.getMediaShares = function (oldShare, newShare) {
|
|
|
45
52
|
};
|
|
46
53
|
};
|
|
47
54
|
/**
|
|
48
|
-
* get the floor disposition (released, granted)
|
|
55
|
+
* get the content floor disposition (released, granted)
|
|
49
56
|
* @param {Object} mediaShares
|
|
50
57
|
* @returns {Boolean} disposition
|
|
51
58
|
*/
|
|
52
59
|
|
|
53
60
|
|
|
54
|
-
MediaSharesUtils.
|
|
61
|
+
MediaSharesUtils.getContentDisposition = function (mediaShares) {
|
|
55
62
|
var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);
|
|
56
63
|
return contentFloor ? contentFloor.disposition : null;
|
|
57
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* get the whiteboard floor disposition (released, granted)
|
|
67
|
+
* @param {Object} mediaShares
|
|
68
|
+
* @returns {Boolean} disposition
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
MediaSharesUtils.getWhiteboardDisposition = function (mediaShares) {
|
|
73
|
+
var whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);
|
|
74
|
+
return whiteboardFloor ? whiteboardFloor.disposition : null;
|
|
75
|
+
};
|
|
58
76
|
/**
|
|
59
77
|
* extract the content property from media shares
|
|
60
78
|
* @param {Object} mediaShares
|
|
@@ -72,18 +90,34 @@ MediaSharesUtils.extractContent = function (mediaShares) {
|
|
|
72
90
|
}) || null;
|
|
73
91
|
};
|
|
74
92
|
/**
|
|
75
|
-
* extract the
|
|
76
|
-
* @param {Object}
|
|
93
|
+
* extract the whiteboard property from media shares
|
|
94
|
+
* @param {Object} mediaShares
|
|
77
95
|
* @returns {Object}
|
|
78
96
|
*/
|
|
79
97
|
|
|
80
98
|
|
|
81
|
-
MediaSharesUtils.
|
|
82
|
-
if (!
|
|
99
|
+
MediaSharesUtils.extractWhiteboard = function (mediaShares) {
|
|
100
|
+
if (!mediaShares || !mediaShares.length) {
|
|
83
101
|
return null;
|
|
84
102
|
}
|
|
85
103
|
|
|
86
|
-
return
|
|
104
|
+
return mediaShares.find(function (share) {
|
|
105
|
+
return share.name === _constants.WHITEBOARD;
|
|
106
|
+
}) || null;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* extract the media stream floor property from content object
|
|
110
|
+
* @param {Object} mediaStream
|
|
111
|
+
* @returns {Object}
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
MediaSharesUtils.extractFloor = function (mediaStream) {
|
|
116
|
+
if (!mediaStream) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return mediaStream.floor;
|
|
87
121
|
};
|
|
88
122
|
/**
|
|
89
123
|
* extract the content's floor from media shares
|
|
@@ -97,13 +131,24 @@ MediaSharesUtils.extractContentFloor = function (mediaShares) {
|
|
|
97
131
|
return MediaSharesUtils.extractFloor(content);
|
|
98
132
|
};
|
|
99
133
|
/**
|
|
100
|
-
*
|
|
134
|
+
* extract the whiteboard's floor from media shares
|
|
101
135
|
* @param {Object} mediaShares
|
|
102
136
|
* @returns {Object}
|
|
103
137
|
*/
|
|
104
138
|
|
|
105
139
|
|
|
106
|
-
MediaSharesUtils.
|
|
140
|
+
MediaSharesUtils.extractWhiteboardFloor = function (mediaShares) {
|
|
141
|
+
var whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);
|
|
142
|
+
return MediaSharesUtils.extractFloor(whiteboard);
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* get who is sharing from media shares (content)
|
|
146
|
+
* @param {Object} mediaShares
|
|
147
|
+
* @returns {Object}
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
MediaSharesUtils.getContentBeneficiaryId = function (mediaShares) {
|
|
107
152
|
var contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);
|
|
108
153
|
|
|
109
154
|
if (!contentFloor || !contentFloor.beneficiary) {
|
|
@@ -112,6 +157,38 @@ MediaSharesUtils.getContentId = function (mediaShares) {
|
|
|
112
157
|
|
|
113
158
|
return contentFloor.beneficiary.id;
|
|
114
159
|
};
|
|
160
|
+
/**
|
|
161
|
+
* get who is sharing from media shares (whiteboard)
|
|
162
|
+
* @param {Object} mediaShares
|
|
163
|
+
* @returns {Object}
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
MediaSharesUtils.getWhiteboardBeneficiaryId = function (mediaShares) {
|
|
168
|
+
var whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);
|
|
169
|
+
|
|
170
|
+
if (!whiteboardFloor || !whiteboardFloor.beneficiary) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return whiteboardFloor.beneficiary.id;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* get the which whiteboard is being shared via resource url
|
|
178
|
+
* @param {Object} mediaShares
|
|
179
|
+
* @returns {Object}
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
MediaSharesUtils.getWhiteboardResourceUrl = function (mediaShares) {
|
|
184
|
+
var whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);
|
|
185
|
+
|
|
186
|
+
if (!whiteboard || !whiteboard.resourceUrl) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return whiteboard.resourceUrl;
|
|
191
|
+
};
|
|
115
192
|
|
|
116
193
|
var _default = MediaSharesUtils;
|
|
117
194
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mediaSharesUtils.js"],"names":["MediaSharesUtils","parse","mediaShares","
|
|
1
|
+
{"version":3,"sources":["mediaSharesUtils.js"],"names":["MediaSharesUtils","parse","mediaShares","content","beneficiaryId","getContentBeneficiaryId","disposition","getContentDisposition","whiteboard","getWhiteboardBeneficiaryId","getWhiteboardDisposition","resourceUrl","getWhiteboardResourceUrl","getMediaShares","oldShare","newShare","previous","current","contentFloor","extractContentFloor","whiteboardFloor","extractWhiteboardFloor","extractContent","length","find","share","name","CONTENT","extractWhiteboard","WHITEBOARD","extractFloor","mediaStream","floor","beneficiary","id"],"mappings":";;;;;;;;;;AAAA;;AAEA,IAAMA,gBAAgB,GAAG,EAAzB;AAEA;AACA;AACA;AACA;AACA;;AACAA,gBAAgB,CAACC,KAAjB,GAAyB,UAACC,WAAD,EAAiB;AACxC,MAAIA,WAAJ,EAAiB;AACf,WAAO;AACLC,MAAAA,OAAO,EAAE;AACPC,QAAAA,aAAa,EAAEJ,gBAAgB,CAACK,uBAAjB,CAAyCH,WAAzC,CADR;AAEPI,QAAAA,WAAW,EAAEN,gBAAgB,CAACO,qBAAjB,CAAuCL,WAAvC;AAFN,OADJ;AAKLM,MAAAA,UAAU,EAAE;AACVJ,QAAAA,aAAa,EAAEJ,gBAAgB,CAACS,0BAAjB,CAA4CP,WAA5C,CADL;AAEVI,QAAAA,WAAW,EAAEN,gBAAgB,CAACU,wBAAjB,CAA0CR,WAA1C,CAFH;AAGVS,QAAAA,WAAW,EAAEX,gBAAgB,CAACY,wBAAjB,CAA0CV,WAA1C;AAHH;AALP,KAAP;AAWD;;AAED,SAAO,IAAP;AACD,CAhBD;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAF,gBAAgB,CAACa,cAAjB,GAAkC,UAACC,QAAD,EAAWC,QAAX,EAAwB;AACxD,MAAMC,QAAQ,GAAGF,QAAQ,IAAId,gBAAgB,CAACC,KAAjB,CAAuBa,QAAvB,CAA7B;AACA,MAAMG,OAAO,GAAGF,QAAQ,IAAIf,gBAAgB,CAACC,KAAjB,CAAuBc,QAAvB,CAA5B;AAEA,SAAO;AACLC,IAAAA,QAAQ,EAARA,QADK;AAELC,IAAAA,OAAO,EAAPA;AAFK,GAAP;AAID,CARD;AAUA;AACA;AACA;AACA;AACA;;;AACAjB,gBAAgB,CAACO,qBAAjB,GAAyC,UAACL,WAAD,EAAiB;AACxD,MAAMgB,YAAY,GAAGlB,gBAAgB,CAACmB,mBAAjB,CAAqCjB,WAArC,CAArB;AAEA,SAAOgB,YAAY,GAAGA,YAAY,CAACZ,WAAhB,GAA8B,IAAjD;AACD,CAJD;AAMA;AACA;AACA;AACA;AACA;;;AACAN,gBAAgB,CAACU,wBAAjB,GAA4C,UAACR,WAAD,EAAiB;AAC3D,MAAMkB,eAAe,GAAGpB,gBAAgB,CAACqB,sBAAjB,CAAwCnB,WAAxC,CAAxB;AAEA,SAAOkB,eAAe,GAAGA,eAAe,CAACd,WAAnB,GAAiC,IAAvD;AACD,CAJD;AAMA;AACA;AACA;AACA;AACA;;;AACAN,gBAAgB,CAACsB,cAAjB,GAAkC,UAACpB,WAAD,EAAiB;AACjD,MAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACqB,MAAjC,EAAyC;AACvC,WAAO,IAAP;AACD;;AAED,SAAOrB,WAAW,CAACsB,IAAZ,CAAiB,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACC,IAAN,KAAeC,kBAA1B;AAAA,GAAjB,KAAuD,IAA9D;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACA3B,gBAAgB,CAAC4B,iBAAjB,GAAqC,UAAC1B,WAAD,EAAiB;AACpD,MAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACqB,MAAjC,EAAyC;AACvC,WAAO,IAAP;AACD;;AAED,SAAOrB,WAAW,CAACsB,IAAZ,CAAiB,UAACC,KAAD;AAAA,WAAWA,KAAK,CAACC,IAAN,KAAeG,qBAA1B;AAAA,GAAjB,KAA0D,IAAjE;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACA7B,gBAAgB,CAAC8B,YAAjB,GAAgC,UAACC,WAAD,EAAiB;AAC/C,MAAI,CAACA,WAAL,EAAkB;AAChB,WAAO,IAAP;AACD;;AAED,SAAOA,WAAW,CAACC,KAAnB;AACD,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACAhC,gBAAgB,CAACmB,mBAAjB,GAAuC,UAACjB,WAAD,EAAiB;AACtD,MAAMC,OAAO,GAAGH,gBAAgB,CAACsB,cAAjB,CAAgCpB,WAAhC,CAAhB;AAEA,SAAOF,gBAAgB,CAAC8B,YAAjB,CAA8B3B,OAA9B,CAAP;AACD,CAJD;AAMA;AACA;AACA;AACA;AACA;;;AACAH,gBAAgB,CAACqB,sBAAjB,GAA0C,UAACnB,WAAD,EAAiB;AACzD,MAAMM,UAAU,GAAGR,gBAAgB,CAAC4B,iBAAjB,CAAmC1B,WAAnC,CAAnB;AAEA,SAAOF,gBAAgB,CAAC8B,YAAjB,CAA8BtB,UAA9B,CAAP;AACD,CAJD;AAMA;AACA;AACA;AACA;AACA;;;AACAR,gBAAgB,CAACK,uBAAjB,GAA2C,UAACH,WAAD,EAAiB;AAC1D,MAAMgB,YAAY,GAAGlB,gBAAgB,CAACmB,mBAAjB,CAAqCjB,WAArC,CAArB;;AAEA,MAAI,CAACgB,YAAD,IAAiB,CAACA,YAAY,CAACe,WAAnC,EAAgD;AAC9C,WAAO,IAAP;AACD;;AAED,SAAOf,YAAY,CAACe,WAAb,CAAyBC,EAAhC;AACD,CARD;AAUA;AACA;AACA;AACA;AACA;;;AACAlC,gBAAgB,CAACS,0BAAjB,GAA8C,UAACP,WAAD,EAAiB;AAC7D,MAAMkB,eAAe,GAAGpB,gBAAgB,CAACqB,sBAAjB,CAAwCnB,WAAxC,CAAxB;;AAEA,MAAI,CAACkB,eAAD,IAAoB,CAACA,eAAe,CAACa,WAAzC,EAAsD;AACpD,WAAO,IAAP;AACD;;AAED,SAAOb,eAAe,CAACa,WAAhB,CAA4BC,EAAnC;AACD,CARD;AAUA;AACA;AACA;AACA;AACA;;;AACAlC,gBAAgB,CAACY,wBAAjB,GAA4C,UAACV,WAAD,EAAiB;AAC3D,MAAMM,UAAU,GAAGR,gBAAgB,CAAC4B,iBAAjB,CAAmC1B,WAAnC,CAAnB;;AAEA,MAAI,CAACM,UAAD,IAAe,CAACA,UAAU,CAACG,WAA/B,EAA4C;AAC1C,WAAO,IAAP;AACD;;AAED,SAAOH,UAAU,CAACG,WAAlB;AACD,CARD;;eAUeX,gB","sourcesContent":["import {CONTENT, WHITEBOARD} from '../constants';\n\nconst MediaSharesUtils = {};\n\n/**\n * parses the relevant values for mediaShares: contentId, disposition\n * @param {Object} mediaShares\n * @returns {undefined}\n */\nMediaSharesUtils.parse = (mediaShares) => {\n if (mediaShares) {\n return {\n content: {\n beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getContentDisposition(mediaShares)\n },\n whiteboard: {\n beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),\n disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),\n resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares)\n }\n };\n }\n\n return null;\n};\n\n/**\n * get the previous and current mediaShares values parsed, as well as the boolean updates\n * @param {Object} oldShare\n * @param {Object} newShare\n * @returns {Object}\n * previous: {Object} old share, current: {Object} new share,\n */\nMediaSharesUtils.getMediaShares = (oldShare, newShare) => {\n const previous = oldShare && MediaSharesUtils.parse(oldShare);\n const current = newShare && MediaSharesUtils.parse(newShare);\n\n return {\n previous,\n current\n };\n};\n\n/**\n * get the content floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getContentDisposition = (mediaShares) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n return contentFloor ? contentFloor.disposition : null;\n};\n\n/**\n * get the whiteboard floor disposition (released, granted)\n * @param {Object} mediaShares\n * @returns {Boolean} disposition\n */\nMediaSharesUtils.getWhiteboardDisposition = (mediaShares) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n return whiteboardFloor ? whiteboardFloor.disposition : null;\n};\n\n/**\n * extract the content property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContent = (mediaShares) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === CONTENT) || null;\n};\n\n/**\n * extract the whiteboard property from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboard = (mediaShares) => {\n if (!mediaShares || !mediaShares.length) {\n return null;\n }\n\n return mediaShares.find((share) => share.name === WHITEBOARD) || null;\n};\n\n/**\n * extract the media stream floor property from content object\n * @param {Object} mediaStream\n * @returns {Object}\n */\nMediaSharesUtils.extractFloor = (mediaStream) => {\n if (!mediaStream) {\n return null;\n }\n\n return mediaStream.floor;\n};\n\n/**\n * extract the content's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractContentFloor = (mediaShares) => {\n const content = MediaSharesUtils.extractContent(mediaShares);\n\n return MediaSharesUtils.extractFloor(content);\n};\n\n/**\n * extract the whiteboard's floor from media shares\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.extractWhiteboardFloor = (mediaShares) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n return MediaSharesUtils.extractFloor(whiteboard);\n};\n\n/**\n * get who is sharing from media shares (content)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getContentBeneficiaryId = (mediaShares) => {\n const contentFloor = MediaSharesUtils.extractContentFloor(mediaShares);\n\n if (!contentFloor || !contentFloor.beneficiary) {\n return null;\n }\n\n return contentFloor.beneficiary.id;\n};\n\n/**\n * get who is sharing from media shares (whiteboard)\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardBeneficiaryId = (mediaShares) => {\n const whiteboardFloor = MediaSharesUtils.extractWhiteboardFloor(mediaShares);\n\n if (!whiteboardFloor || !whiteboardFloor.beneficiary) {\n return null;\n }\n\n return whiteboardFloor.beneficiary.id;\n};\n\n/**\n * get the which whiteboard is being shared via resource url\n * @param {Object} mediaShares\n * @returns {Object}\n */\nMediaSharesUtils.getWhiteboardResourceUrl = (mediaShares) => {\n const whiteboard = MediaSharesUtils.extractWhiteboard(mediaShares);\n\n if (!whiteboard || !whiteboard.resourceUrl) {\n return null;\n }\n\n return whiteboard.resourceUrl;\n};\n\nexport default MediaSharesUtils;\n"]}
|
package/dist/meeting/index.js
CHANGED
|
@@ -1305,6 +1305,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1305
1305
|
};
|
|
1306
1306
|
}
|
|
1307
1307
|
|
|
1308
|
+
var joinRespTxStartAudio = this.getSendingMediaDelayDuration('audio');
|
|
1309
|
+
|
|
1310
|
+
if (joinRespTxStartAudio) {
|
|
1311
|
+
options.audioSetupDelay = _objectSpread(_objectSpread({}, options.audioSetupDelay), {}, {
|
|
1312
|
+
joinRespTxStart: joinRespTxStartAudio
|
|
1313
|
+
});
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
var joinRespTxStartVideo = this.getSendingMediaDelayDuration('video');
|
|
1317
|
+
|
|
1318
|
+
if (joinRespTxStartVideo) {
|
|
1319
|
+
options.videoSetupDelay = _objectSpread(_objectSpread({}, options.videoSetupDelay), {}, {
|
|
1320
|
+
joinRespTxStart: joinRespTxStartVideo
|
|
1321
|
+
});
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1308
1324
|
if (options.type === _constants.MQA_STATS.CA_TYPE) {
|
|
1309
1325
|
payload = _metrics.default.initMediaPayload(options.event, identifiers, options);
|
|
1310
1326
|
} else {
|
|
@@ -1564,7 +1580,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1564
1580
|
}
|
|
1565
1581
|
/**
|
|
1566
1582
|
* Set up the locus info media shares listener
|
|
1567
|
-
* update content sharing id value for members, and updates the member
|
|
1583
|
+
* update content and whiteboard sharing id value for members, and updates the member
|
|
1568
1584
|
* notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
|
|
1569
1585
|
* @returns {undefined}
|
|
1570
1586
|
* @private
|
|
@@ -1581,10 +1597,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1581
1597
|
var _payload$previous, _payload$previous2;
|
|
1582
1598
|
|
|
1583
1599
|
var _payload$current = payload.current,
|
|
1584
|
-
|
|
1585
|
-
|
|
1600
|
+
contentShare = _payload$current.content,
|
|
1601
|
+
whiteboardShare = _payload$current.whiteboard;
|
|
1602
|
+
var previousContentShare = (_payload$previous = payload.previous) === null || _payload$previous === void 0 ? void 0 : _payload$previous.content;
|
|
1603
|
+
var previousWhiteboardShare = (_payload$previous2 = payload.previous) === null || _payload$previous2 === void 0 ? void 0 : _payload$previous2.whiteboard;
|
|
1586
1604
|
|
|
1587
|
-
if (
|
|
1605
|
+
if (contentShare.beneficiaryId === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.beneficiaryId) && contentShare.disposition === (previousContentShare === null || previousContentShare === void 0 ? void 0 : previousContentShare.disposition) && whiteboardShare.beneficiaryId === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.beneficiaryId) && whiteboardShare.disposition === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.disposition) && whiteboardShare.resourceUrl === (previousWhiteboardShare === null || previousWhiteboardShare === void 0 ? void 0 : previousWhiteboardShare.resourceUrl)) {
|
|
1588
1606
|
// nothing changed, so ignore
|
|
1589
1607
|
// (this happens when we steal presentation from remote)
|
|
1590
1608
|
return;
|
|
@@ -1592,10 +1610,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1592
1610
|
|
|
1593
1611
|
var newShareStatus = _this10.shareStatus; // REMOTE - check if remote started sharing
|
|
1594
1612
|
|
|
1595
|
-
if (_this10.selfId !==
|
|
1613
|
+
if (_this10.selfId !== contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1614
|
+
// CONTENT - sharing content remote
|
|
1596
1615
|
newShareStatus = _constants.SHARE_STATUS.REMOTE_SHARE_ACTIVE;
|
|
1597
|
-
} // LOCAL - check if we started sharing
|
|
1598
|
-
else if (_this10.selfId ===
|
|
1616
|
+
} // LOCAL - check if we started sharing content
|
|
1617
|
+
else if (_this10.selfId === contentShare.beneficiaryId && contentShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1599
1618
|
var _this10$mediaProperti;
|
|
1600
1619
|
|
|
1601
1620
|
if (((_this10$mediaProperti = _this10.mediaProperties.shareTrack) === null || _this10$mediaProperti === void 0 ? void 0 : _this10$mediaProperti.readyState) === 'ended') {
|
|
@@ -1605,10 +1624,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1605
1624
|
_loggerProxy.default.logger.log('Meeting:index#setUpLocusMediaSharesListener --> Error stopping share: ', error);
|
|
1606
1625
|
});
|
|
1607
1626
|
} else {
|
|
1627
|
+
// CONTENT - sharing content local
|
|
1608
1628
|
newShareStatus = _constants.SHARE_STATUS.LOCAL_SHARE_ACTIVE;
|
|
1609
1629
|
}
|
|
1610
|
-
} //
|
|
1611
|
-
|
|
1630
|
+
} // If we did not hit the cases above, no one is sharng content, so we check if we are sharing whiteboard
|
|
1631
|
+
// There is no concept of local/remote share for whiteboard
|
|
1632
|
+
// It does not matter who requested to share the whiteboard, everyone gets the same view
|
|
1633
|
+
else if (whiteboardShare.disposition === _constants.FLOOR_ACTION.GRANTED) {
|
|
1634
|
+
// WHITEBOARD - sharing whiteboard
|
|
1635
|
+
newShareStatus = _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE;
|
|
1636
|
+
} // or if content share is either released or null and whiteboard share is either released or null, no one is sharing
|
|
1637
|
+
else if ((previousContentShare && contentShare.disposition === _constants.FLOOR_ACTION.RELEASED || contentShare.disposition === null) && (previousWhiteboardShare && whiteboardShare.disposition === _constants.FLOOR_ACTION.RELEASED || whiteboardShare.disposition === null)) {
|
|
1612
1638
|
newShareStatus = _constants.SHARE_STATUS.NO_SHARE;
|
|
1613
1639
|
}
|
|
1614
1640
|
|
|
@@ -1636,6 +1662,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1636
1662
|
|
|
1637
1663
|
break;
|
|
1638
1664
|
|
|
1665
|
+
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
1666
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1667
|
+
file: 'meeting/index',
|
|
1668
|
+
function: 'stopWhiteboardShare'
|
|
1669
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STOPPED_SHARING_WHITEBOARD);
|
|
1670
|
+
|
|
1671
|
+
break;
|
|
1672
|
+
|
|
1639
1673
|
case _constants.SHARE_STATUS.NO_SHARE:
|
|
1640
1674
|
// nothing to do
|
|
1641
1675
|
break;
|
|
@@ -1655,20 +1689,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1655
1689
|
file: 'meetings/index',
|
|
1656
1690
|
function: 'remoteShare'
|
|
1657
1691
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
1658
|
-
memberId:
|
|
1692
|
+
memberId: contentShare.beneficiaryId
|
|
1659
1693
|
});
|
|
1660
1694
|
}; // if a remote participant is stealing the presentation from us
|
|
1661
1695
|
|
|
1662
1696
|
|
|
1663
|
-
if ((_this10$mediaProperti2 = _this10.mediaProperties.mediaDirection) !== null && _this10$mediaProperti2 !== void 0 && _this10$mediaProperti2.sendShare) {
|
|
1697
|
+
if (!((_this10$mediaProperti2 = _this10.mediaProperties.mediaDirection) !== null && _this10$mediaProperti2 !== void 0 && _this10$mediaProperti2.sendShare) || oldShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
1698
|
+
sendStartedSharingRemote();
|
|
1699
|
+
} else {
|
|
1664
1700
|
_this10.updateShare({
|
|
1665
1701
|
sendShare: false,
|
|
1666
1702
|
receiveShare: _this10.mediaProperties.mediaDirection.receiveShare
|
|
1667
1703
|
}).finally(function () {
|
|
1668
1704
|
sendStartedSharingRemote();
|
|
1669
1705
|
});
|
|
1670
|
-
} else {
|
|
1671
|
-
sendStartedSharingRemote();
|
|
1672
1706
|
}
|
|
1673
1707
|
|
|
1674
1708
|
break;
|
|
@@ -1687,6 +1721,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1687
1721
|
|
|
1688
1722
|
break;
|
|
1689
1723
|
|
|
1724
|
+
case _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE:
|
|
1725
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1726
|
+
file: 'meeting/index',
|
|
1727
|
+
function: 'startWhiteboardShare'
|
|
1728
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
1729
|
+
resourceUrl: whiteboardShare.resourceUrl,
|
|
1730
|
+
memberId: whiteboardShare.beneficiaryId
|
|
1731
|
+
});
|
|
1732
|
+
|
|
1733
|
+
_metrics.default.postEvent({
|
|
1734
|
+
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
1735
|
+
meeting: _this10
|
|
1736
|
+
});
|
|
1737
|
+
|
|
1738
|
+
break;
|
|
1739
|
+
|
|
1690
1740
|
case _constants.SHARE_STATUS.NO_SHARE:
|
|
1691
1741
|
// nothing to do
|
|
1692
1742
|
break;
|
|
@@ -1703,7 +1753,24 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
1703
1753
|
file: 'meetings/index',
|
|
1704
1754
|
function: 'remoteShare'
|
|
1705
1755
|
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_REMOTE, {
|
|
1706
|
-
memberId:
|
|
1756
|
+
memberId: contentShare.beneficiaryId
|
|
1757
|
+
});
|
|
1758
|
+
|
|
1759
|
+
_this10.members.locusMediaSharesUpdate(payload);
|
|
1760
|
+
} else if (newShareStatus === _constants.SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) {
|
|
1761
|
+
// if we got here, then some remote participant has stolen
|
|
1762
|
+
// the presentation from another remote participant
|
|
1763
|
+
_triggerProxy.default.trigger(_this10, {
|
|
1764
|
+
file: 'meeting/index',
|
|
1765
|
+
function: 'startWhiteboardShare'
|
|
1766
|
+
}, _constants.EVENT_TRIGGERS.MEETING_STARTED_SHARING_WHITEBOARD, {
|
|
1767
|
+
resourceUrl: whiteboardShare.resourceUrl,
|
|
1768
|
+
memberId: whiteboardShare.beneficiaryId
|
|
1769
|
+
});
|
|
1770
|
+
|
|
1771
|
+
_metrics.default.postEvent({
|
|
1772
|
+
event: _config.eventType.WHITEBOARD_SHARE_FLOOR_GRANTED,
|
|
1773
|
+
meeting: _this10
|
|
1707
1774
|
});
|
|
1708
1775
|
|
|
1709
1776
|
_this10.members.locusMediaSharesUpdate(payload);
|
|
@@ -4779,6 +4846,115 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4779
4846
|
return _promise.default.reject(error);
|
|
4780
4847
|
});
|
|
4781
4848
|
}
|
|
4849
|
+
/**
|
|
4850
|
+
* Start sharing whiteboard given channelUrl
|
|
4851
|
+
* @param {string} channelUrl whiteboard url
|
|
4852
|
+
* @param {String} resourceToken token created by authorize media injector
|
|
4853
|
+
* @returns {Promise}
|
|
4854
|
+
* @public
|
|
4855
|
+
* @memberof Meeting
|
|
4856
|
+
*/
|
|
4857
|
+
|
|
4858
|
+
}, {
|
|
4859
|
+
key: "startWhiteboardShare",
|
|
4860
|
+
value: function startWhiteboardShare(channelUrl, resourceToken) {
|
|
4861
|
+
var _this46 = this;
|
|
4862
|
+
|
|
4863
|
+
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
4864
|
+
return element.name === 'whiteboard';
|
|
4865
|
+
});
|
|
4866
|
+
|
|
4867
|
+
if (!channelUrl) {
|
|
4868
|
+
return _promise.default.reject(new _parameter.default('Cannot share without channelUrl.'));
|
|
4869
|
+
}
|
|
4870
|
+
|
|
4871
|
+
if (whiteboard) {
|
|
4872
|
+
_metrics.default.postEvent({
|
|
4873
|
+
event: _config.eventType.WHITEBOARD_SHARE_INITIATED,
|
|
4874
|
+
meeting: this
|
|
4875
|
+
});
|
|
4876
|
+
|
|
4877
|
+
var body = {
|
|
4878
|
+
disposition: _constants.FLOOR_ACTION.GRANTED,
|
|
4879
|
+
personUrl: this.locusInfo.self.url,
|
|
4880
|
+
deviceUrl: this.deviceUrl,
|
|
4881
|
+
uri: whiteboard.url,
|
|
4882
|
+
resourceUrl: channelUrl
|
|
4883
|
+
};
|
|
4884
|
+
|
|
4885
|
+
if (resourceToken) {
|
|
4886
|
+
body.resourceToken = resourceToken;
|
|
4887
|
+
}
|
|
4888
|
+
|
|
4889
|
+
return this.meetingRequest.changeMeetingFloor(body).then(function () {
|
|
4890
|
+
_this46.isSharing = false;
|
|
4891
|
+
return _promise.default.resolve();
|
|
4892
|
+
}).catch(function (error) {
|
|
4893
|
+
_loggerProxy.default.logger.error('Meeting:index#startWhiteboardShare --> Error ', error);
|
|
4894
|
+
|
|
4895
|
+
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.MEETING_START_WHITEBOARD_SHARE_FAILURE, {
|
|
4896
|
+
correlation_id: _this46.correlationId,
|
|
4897
|
+
locus_id: _this46.locusUrl.split('/').pop(),
|
|
4898
|
+
reason: error.message,
|
|
4899
|
+
stack: error.stack,
|
|
4900
|
+
board: {
|
|
4901
|
+
channelUrl: channelUrl
|
|
4902
|
+
}
|
|
4903
|
+
});
|
|
4904
|
+
|
|
4905
|
+
return _promise.default.reject(error);
|
|
4906
|
+
});
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4909
|
+
return _promise.default.reject(new _parameter.default('Cannot share without whiteboard.'));
|
|
4910
|
+
}
|
|
4911
|
+
/**
|
|
4912
|
+
* Stop sharing whiteboard given channelUrl
|
|
4913
|
+
* @param {string} channelUrl whiteboard url
|
|
4914
|
+
* @returns {Promise}
|
|
4915
|
+
* @public
|
|
4916
|
+
* @memberof Meeting
|
|
4917
|
+
*/
|
|
4918
|
+
|
|
4919
|
+
}, {
|
|
4920
|
+
key: "stopWhiteboardShare",
|
|
4921
|
+
value: function stopWhiteboardShare(channelUrl) {
|
|
4922
|
+
var _this47 = this;
|
|
4923
|
+
|
|
4924
|
+
var whiteboard = this.locusInfo.mediaShares.find(function (element) {
|
|
4925
|
+
return element.name === 'whiteboard';
|
|
4926
|
+
});
|
|
4927
|
+
|
|
4928
|
+
if (whiteboard) {
|
|
4929
|
+
_metrics.default.postEvent({
|
|
4930
|
+
event: _config.eventType.WHITEBOARD_SHARE_STOPPED,
|
|
4931
|
+
meeting: this
|
|
4932
|
+
});
|
|
4933
|
+
|
|
4934
|
+
return this.meetingRequest.changeMeetingFloor({
|
|
4935
|
+
disposition: _constants.FLOOR_ACTION.RELEASED,
|
|
4936
|
+
personUrl: this.locusInfo.self.url,
|
|
4937
|
+
deviceUrl: this.deviceUrl,
|
|
4938
|
+
uri: whiteboard.url
|
|
4939
|
+
}).catch(function (error) {
|
|
4940
|
+
_loggerProxy.default.logger.error('Meeting:index#stopWhiteboardShare --> Error ', error);
|
|
4941
|
+
|
|
4942
|
+
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.STOP_WHITEBOARD_SHARE_FAILURE, {
|
|
4943
|
+
correlation_id: _this47.correlationId,
|
|
4944
|
+
locus_id: _this47.locusUrl.split('/').pop(),
|
|
4945
|
+
reason: error.message,
|
|
4946
|
+
stack: error.stack,
|
|
4947
|
+
board: {
|
|
4948
|
+
channelUrl: channelUrl
|
|
4949
|
+
}
|
|
4950
|
+
});
|
|
4951
|
+
|
|
4952
|
+
return _promise.default.reject(error);
|
|
4953
|
+
}).finally(function () {});
|
|
4954
|
+
}
|
|
4955
|
+
|
|
4956
|
+
return _promise.default.reject(new _parameter.default('Cannot stop share without whiteboard.'));
|
|
4957
|
+
}
|
|
4782
4958
|
/**
|
|
4783
4959
|
* Start sharing content with server
|
|
4784
4960
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -4789,7 +4965,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4789
4965
|
}, {
|
|
4790
4966
|
key: "share",
|
|
4791
4967
|
value: function share() {
|
|
4792
|
-
var
|
|
4968
|
+
var _this48 = this;
|
|
4793
4969
|
|
|
4794
4970
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
4795
4971
|
return element.name === _constants.CONTENT;
|
|
@@ -4808,14 +4984,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4808
4984
|
uri: content.url,
|
|
4809
4985
|
resourceUrl: this.resourceUrl
|
|
4810
4986
|
}).then(function () {
|
|
4811
|
-
|
|
4987
|
+
_this48.isSharing = true;
|
|
4812
4988
|
return _promise.default.resolve();
|
|
4813
4989
|
}).catch(function (error) {
|
|
4814
4990
|
_loggerProxy.default.logger.error('Meeting:index#share --> Error ', error);
|
|
4815
4991
|
|
|
4816
4992
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.MEETING_SHARE_FAILURE, {
|
|
4817
|
-
correlation_id:
|
|
4818
|
-
locus_id:
|
|
4993
|
+
correlation_id: _this48.correlationId,
|
|
4994
|
+
locus_id: _this48.locusUrl.split('/').pop(),
|
|
4819
4995
|
reason: error.message,
|
|
4820
4996
|
stack: error.stack
|
|
4821
4997
|
});
|
|
@@ -4854,7 +5030,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4854
5030
|
}, {
|
|
4855
5031
|
key: "stopFloorRequest",
|
|
4856
5032
|
value: function stopFloorRequest() {
|
|
4857
|
-
var
|
|
5033
|
+
var _this49 = this;
|
|
4858
5034
|
|
|
4859
5035
|
var content = this.locusInfo.mediaShares.find(function (element) {
|
|
4860
5036
|
return element.name === _constants.CONTENT;
|
|
@@ -4868,7 +5044,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4868
5044
|
|
|
4869
5045
|
_media.default.stopTracks(this.mediaProperties.shareTrack);
|
|
4870
5046
|
|
|
4871
|
-
if (
|
|
5047
|
+
if (content.floor.beneficiary.id !== this.selfId) {
|
|
4872
5048
|
// remote participant started sharing and caused our sharing to stop, we don't want to send any floor action request in that case
|
|
4873
5049
|
this.isSharing = false;
|
|
4874
5050
|
return _promise.default.resolve();
|
|
@@ -4884,15 +5060,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
4884
5060
|
_loggerProxy.default.logger.error('Meeting:index#stopFloorRequest --> Error ', error);
|
|
4885
5061
|
|
|
4886
5062
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.STOP_FLOOR_REQUEST_FAILURE, {
|
|
4887
|
-
correlation_id:
|
|
4888
|
-
locus_id:
|
|
5063
|
+
correlation_id: _this49.correlationId,
|
|
5064
|
+
locus_id: _this49.locusUrl.split('/').pop(),
|
|
4889
5065
|
reason: error.message,
|
|
4890
5066
|
stack: error.stack
|
|
4891
5067
|
});
|
|
4892
5068
|
|
|
4893
5069
|
return _promise.default.reject(error);
|
|
4894
5070
|
}).finally(function () {
|
|
4895
|
-
|
|
5071
|
+
_this49.isSharing = false;
|
|
4896
5072
|
});
|
|
4897
5073
|
}
|
|
4898
5074
|
|
|
@@ -5028,7 +5204,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5028
5204
|
}, {
|
|
5029
5205
|
key: "changeVideoLayout",
|
|
5030
5206
|
value: function changeVideoLayout(layoutType) {
|
|
5031
|
-
var
|
|
5207
|
+
var _this50 = this;
|
|
5032
5208
|
|
|
5033
5209
|
var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5034
5210
|
var main = renderInfo.main,
|
|
@@ -5091,7 +5267,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5091
5267
|
content: layoutInfo.content
|
|
5092
5268
|
}).then(function (response) {
|
|
5093
5269
|
if (response && response.body && response.body.locus) {
|
|
5094
|
-
|
|
5270
|
+
_this50.locusInfo.onFullLocus(response.body.locus);
|
|
5095
5271
|
}
|
|
5096
5272
|
}).catch(function (error) {
|
|
5097
5273
|
_loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
|
|
@@ -5108,7 +5284,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5108
5284
|
}, {
|
|
5109
5285
|
key: "setLocalVideoQuality",
|
|
5110
5286
|
value: function setLocalVideoQuality(level) {
|
|
5111
|
-
var
|
|
5287
|
+
var _this51 = this;
|
|
5112
5288
|
|
|
5113
5289
|
_loggerProxy.default.logger.log("Meeting:index#setLocalVideoQuality --> Setting quality to ".concat(level));
|
|
5114
5290
|
|
|
@@ -5138,7 +5314,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5138
5314
|
var _ref11 = (0, _slicedToArray2.default)(_ref10, 1),
|
|
5139
5315
|
localStream = _ref11[0];
|
|
5140
5316
|
|
|
5141
|
-
return
|
|
5317
|
+
return _this51.updateVideo({
|
|
5142
5318
|
sendVideo: true,
|
|
5143
5319
|
receiveVideo: true,
|
|
5144
5320
|
stream: localStream
|
|
@@ -5186,7 +5362,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5186
5362
|
}, {
|
|
5187
5363
|
key: "setMeetingQuality",
|
|
5188
5364
|
value: function setMeetingQuality(level) {
|
|
5189
|
-
var
|
|
5365
|
+
var _this52 = this;
|
|
5190
5366
|
|
|
5191
5367
|
_loggerProxy.default.logger.log("Meeting:index#setMeetingQuality --> Setting quality to ".concat(level));
|
|
5192
5368
|
|
|
@@ -5211,18 +5387,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5211
5387
|
receiveVideo = _this$mediaProperties4.receiveVideo,
|
|
5212
5388
|
sendVideo = _this$mediaProperties4.sendVideo;
|
|
5213
5389
|
return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
|
|
5214
|
-
return receiveAudio || receiveVideo ?
|
|
5390
|
+
return receiveAudio || receiveVideo ? _this52.setRemoteQualityLevel(level) : _promise.default.resolve();
|
|
5215
5391
|
}).catch(function (error) {
|
|
5216
5392
|
// From troubleshooting it seems that the stream itself doesn't change the max-fs if the peer connection isn't stable
|
|
5217
|
-
|
|
5393
|
+
_this52.mediaProperties.setLocalQualityLevel(previousLevel.local);
|
|
5218
5394
|
|
|
5219
|
-
|
|
5395
|
+
_this52.mediaProperties.setRemoteQualityLevel(previousLevel.remote);
|
|
5220
5396
|
|
|
5221
5397
|
_loggerProxy.default.logger.error("Meeting:index#setMeetingQuality --> ".concat(error.message));
|
|
5222
5398
|
|
|
5223
5399
|
_metrics.default.sendOperationalMetric(_constants.METRICS_OPERATIONAL_MEASURES.SET_MEETING_QUALITY_FAILURE, {
|
|
5224
|
-
correlation_id:
|
|
5225
|
-
locus_id:
|
|
5400
|
+
correlation_id: _this52.correlationId,
|
|
5401
|
+
locus_id: _this52.locusUrl.split('/').pop(),
|
|
5226
5402
|
reason: error.message,
|
|
5227
5403
|
stack: error.stack
|
|
5228
5404
|
}, {
|
|
@@ -5246,7 +5422,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5246
5422
|
}, {
|
|
5247
5423
|
key: "shareScreen",
|
|
5248
5424
|
value: function shareScreen() {
|
|
5249
|
-
var
|
|
5425
|
+
var _this53 = this;
|
|
5250
5426
|
|
|
5251
5427
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5252
5428
|
|
|
@@ -5258,9 +5434,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5258
5434
|
}, options);
|
|
5259
5435
|
|
|
5260
5436
|
return _media.default.getDisplayMedia(shareConstraints, this.config).then(function (shareStream) {
|
|
5261
|
-
return
|
|
5437
|
+
return _this53.updateShare({
|
|
5262
5438
|
sendShare: true,
|
|
5263
|
-
receiveShare:
|
|
5439
|
+
receiveShare: _this53.mediaProperties.mediaDirection.receiveShare,
|
|
5264
5440
|
stream: shareStream
|
|
5265
5441
|
});
|
|
5266
5442
|
}).catch(function (error) {
|
|
@@ -5272,8 +5448,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5272
5448
|
// TODO: The getDisplayMedia errors need to be moved inside `media.getDisplayMedia`
|
|
5273
5449
|
var metricName = _constants.METRICS_OPERATIONAL_MEASURES.GET_DISPLAY_MEDIA_FAILURE;
|
|
5274
5450
|
var data = {
|
|
5275
|
-
correlation_id:
|
|
5276
|
-
locus_id:
|
|
5451
|
+
correlation_id: _this53.correlationId,
|
|
5452
|
+
locus_id: _this53.locusUrl.split('/').pop(),
|
|
5277
5453
|
reason: error.message,
|
|
5278
5454
|
stack: error.stack
|
|
5279
5455
|
};
|
|
@@ -5393,6 +5569,39 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
|
|
|
5393
5569
|
var end = this["endSetupDelay".concat(typeMedia)];
|
|
5394
5570
|
return start && end ? end - start : undefined;
|
|
5395
5571
|
}
|
|
5572
|
+
/**
|
|
5573
|
+
* @param {string} typeMedia 'audio' or 'video'
|
|
5574
|
+
* @returns {undefined}
|
|
5575
|
+
*/
|
|
5576
|
+
|
|
5577
|
+
}, {
|
|
5578
|
+
key: "setStartSendingMediaDelay",
|
|
5579
|
+
value: function setStartSendingMediaDelay(typeMedia) {
|
|
5580
|
+
this["startSendingMediaDelay".concat(typeMedia)] = performance.now();
|
|
5581
|
+
this["endSendingMediaDelay".concat(typeMedia)] = undefined;
|
|
5582
|
+
}
|
|
5583
|
+
/**
|
|
5584
|
+
* @param {string} typeMedia 'audio' or 'video'
|
|
5585
|
+
* @returns {undefined}
|
|
5586
|
+
*/
|
|
5587
|
+
|
|
5588
|
+
}, {
|
|
5589
|
+
key: "setEndSendingMediaDelay",
|
|
5590
|
+
value: function setEndSendingMediaDelay(typeMedia) {
|
|
5591
|
+
this["endSendingMediaDelay".concat(typeMedia)] = performance.now();
|
|
5592
|
+
}
|
|
5593
|
+
/**
|
|
5594
|
+
* @param {string} typeMedia 'audio' or 'video'
|
|
5595
|
+
* @returns {string} duration between join response and first media tx
|
|
5596
|
+
*/
|
|
5597
|
+
|
|
5598
|
+
}, {
|
|
5599
|
+
key: "getSendingMediaDelayDuration",
|
|
5600
|
+
value: function getSendingMediaDelayDuration(typeMedia) {
|
|
5601
|
+
var start = this["startSendingMediaDelay".concat(typeMedia)];
|
|
5602
|
+
var end = this["endSendingMediaDelay".concat(typeMedia)];
|
|
5603
|
+
return start && end ? end - start : undefined;
|
|
5604
|
+
}
|
|
5396
5605
|
}]);
|
|
5397
5606
|
return Meeting;
|
|
5398
5607
|
}(_webexCore.StatelessWebexPlugin);
|