@webex/plugin-meetings 1.147.1 → 1.149.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -149,12 +149,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
149
149
  }
150
150
 
151
151
  url = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
152
- _context.next = 37;
152
+ _context.next = 23;
153
153
  break;
154
154
 
155
155
  case 11:
156
- if (!meetingNumber) {
157
- _context.next = 25;
156
+ if (!(sipUri || meetingNumber)) {
157
+ _context.next = 23;
158
158
  break;
159
159
  }
160
160
 
@@ -165,7 +165,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
165
165
  case 15:
166
166
  url = "".concat(this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
167
167
  body.invitee = {
168
- address: "wbxmn:".concat(meetingNumber)
168
+ address: sipUri || "wbxmn:".concat(meetingNumber)
169
169
  };
170
170
  _context.next = 23;
171
171
  break;
@@ -174,41 +174,11 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
174
174
  _context.prev = 19;
175
175
  _context.t0 = _context["catch"](12);
176
176
 
177
- _loggerProxy.default.logger.error("Meeting:request#joinMeeting webex meeting id--> ".concat(_context.t0));
177
+ _loggerProxy.default.logger.error("Meeting:request#joinMeeting ".concat(sipUri ? 'sipUri' : 'meetingNumber', " --> ").concat(_context.t0));
178
178
 
179
179
  throw _context.t0;
180
180
 
181
181
  case 23:
182
- _context.next = 37;
183
- break;
184
-
185
- case 25:
186
- if (!sipUri) {
187
- _context.next = 37;
188
- break;
189
- }
190
-
191
- _context.prev = 26;
192
- _context.next = 29;
193
- return this.webex.internal.services.waitForCatalog('postauth');
194
-
195
- case 29:
196
- url = "".concat(this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
197
- body.invitee = {
198
- address: sipUri
199
- };
200
- _context.next = 37;
201
- break;
202
-
203
- case 33:
204
- _context.prev = 33;
205
- _context.t1 = _context["catch"](26);
206
-
207
- _loggerProxy.default.logger.error("Meeting:request#joinMeeting sipUrl --> ".concat(_context.t1));
208
-
209
- throw _context.t1;
210
-
211
- case 37:
212
182
  // TODO: -- this will be resolved in SDK request
213
183
  url = url.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
214
184
 
@@ -228,12 +198,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
228
198
  body: body
229
199
  }));
230
200
 
231
- case 41:
201
+ case 27:
232
202
  case "end":
233
203
  return _context.stop();
234
204
  }
235
205
  }
236
- }, _callee, this, [[12, 19], [26, 33]]);
206
+ }, _callee, this, [[12, 19]]);
237
207
  }));
238
208
 
239
209
  function joinMeeting(_x) {
@@ -283,6 +253,50 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
283
253
  throw err;
284
254
  });
285
255
  }
256
+ /**
257
+ * Make a network request to add a dial out device
258
+ * @param {Object} options
259
+ * @param {String} options.correlationId
260
+ * @param {String} options.localUrl url for the meeting
261
+ * @param {String} options.dialOutUrl identifier for the to-be provisioned device
262
+ * @param {String} options.phoneNumber phone number to dial out to
263
+ * @param {String} options.clientUrl identifier for the web device
264
+ * @returns {Promise}
265
+ * @private
266
+ */
267
+
268
+ }, {
269
+ key: "dialOut",
270
+ value: function dialOut(_ref2) {
271
+ var locusUrl = _ref2.locusUrl,
272
+ dialOutUrl = _ref2.dialOutUrl,
273
+ phoneNumber = _ref2.phoneNumber,
274
+ clientUrl = _ref2.clientUrl,
275
+ correlationId = _ref2.correlationId;
276
+
277
+ _loggerProxy.default.logger.info('Meeting:request#dialOut --> Provisioning a dial out device', correlationId);
278
+
279
+ var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT);
280
+ var body = {
281
+ device: {
282
+ deviceType: _common.deviceType.PROVISIONAL,
283
+ provisionalType: _constants.PROVISIONAL_TYPE_DIAL_OUT,
284
+ url: dialOutUrl,
285
+ dialoutAddress: phoneNumber,
286
+ clientUrl: clientUrl
287
+ },
288
+ correlationId: correlationId
289
+ };
290
+ return this.request({
291
+ method: _constants.HTTP_VERBS.POST,
292
+ uri: uri,
293
+ body: body
294
+ }).catch(function (err) {
295
+ _loggerProxy.default.logger.error("Meeting:request#dialOut --> Error provisioning a dial out device, error ".concat(err));
296
+
297
+ throw err;
298
+ });
299
+ }
286
300
  /**
287
301
  * Syns the missed delta event
288
302
  * @param {Object} options
@@ -346,32 +360,31 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
346
360
  return _promise.default.reject();
347
361
  }
348
362
  /**
349
- * Make a network request to make a provisioned pstn device leave the meeting
363
+ * Make a network request to make a provisioned phone leave the meeting
350
364
  * @param {Object} options
351
365
  * @param {String} options.locusUrl
352
- * @param {String} options.selfId
353
- * @param {String} options.deviceUrl
354
- * @param {String} options.resourceId,
366
+ * @param {String} options.phoneUrl
355
367
  * @param {String} options.correlationId
368
+ * @param {String} options.selfId
356
369
  * @returns {Promise}
357
370
  * @private
358
371
  */
359
372
 
360
373
  }, {
361
- key: "leavePstn",
362
- value: function leavePstn(_ref2) {
363
- var locusUrl = _ref2.locusUrl,
364
- dialInUrl = _ref2.dialInUrl,
365
- correlationId = _ref2.correlationId,
366
- selfId = _ref2.selfId;
374
+ key: "disconnectPhoneAudio",
375
+ value: function disconnectPhoneAudio(_ref3) {
376
+ var locusUrl = _ref3.locusUrl,
377
+ phoneUrl = _ref3.phoneUrl,
378
+ correlationId = _ref3.correlationId,
379
+ selfId = _ref3.selfId;
367
380
 
368
- _loggerProxy.default.logger.info("Meeting:request#leavePstn --> request device ".concat(dialInUrl, " to leaving"), correlationId);
381
+ _loggerProxy.default.logger.info("Meeting:request#disconnectPhoneAudio --> request phone ".concat(phoneUrl, " to leave"), correlationId);
369
382
 
370
383
  var uri = "".concat(locusUrl, "/").concat(_constants.PARTICIPANT, "/").concat(selfId, "/").concat(_constants.LEAVE);
371
384
  var body = {
372
385
  device: {
373
386
  deviceType: _common.deviceType.PROVISIONAL,
374
- url: dialInUrl
387
+ url: phoneUrl
375
388
  },
376
389
  correlationId: correlationId
377
390
  };
@@ -380,7 +393,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
380
393
  uri: uri,
381
394
  body: body
382
395
  }).catch(function (err) {
383
- _loggerProxy.default.logger.error("Meeting:request#leavePstn --> Error when requesting pstn device ".concat(dialInUrl, " to leave, error ").concat(err));
396
+ _loggerProxy.default.logger.error("Meeting:request#disconnectPhoneAudio --> Error when requesting phone ".concat(phoneUrl, " to leave, error ").concat(err));
384
397
 
385
398
  throw err;
386
399
  });
@@ -398,12 +411,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
398
411
 
399
412
  }, {
400
413
  key: "leaveMeeting",
401
- value: function leaveMeeting(_ref3) {
402
- var locusUrl = _ref3.locusUrl,
403
- selfId = _ref3.selfId,
404
- url = _ref3.deviceUrl,
405
- resourceId = _ref3.resourceId,
406
- correlationId = _ref3.correlationId;
414
+ value: function leaveMeeting(_ref4) {
415
+ var locusUrl = _ref4.locusUrl,
416
+ selfId = _ref4.selfId,
417
+ url = _ref4.deviceUrl,
418
+ resourceId = _ref4.resourceId,
419
+ correlationId = _ref4.correlationId;
407
420
 
408
421
  _loggerProxy.default.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);
409
422
 
@@ -608,10 +621,10 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
608
621
 
609
622
  }, {
610
623
  key: "sendDTMF",
611
- value: function sendDTMF(_ref4) {
612
- var locusUrl = _ref4.locusUrl,
613
- deviceUrl = _ref4.deviceUrl,
614
- tones = _ref4.tones;
624
+ value: function sendDTMF(_ref5) {
625
+ var locusUrl = _ref5.locusUrl,
626
+ deviceUrl = _ref5.deviceUrl,
627
+ tones = _ref5.tones;
615
628
  return this.request({
616
629
  method: _constants.HTTP_VERBS.POST,
617
630
  uri: "".concat(locusUrl, "/").concat(_constants.SEND_DTMF_ENDPOINT),
@@ -641,12 +654,12 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
641
654
 
642
655
  }, {
643
656
  key: "changeVideoLayout",
644
- value: function changeVideoLayout(_ref5) {
645
- var locusUrl = _ref5.locusUrl,
646
- deviceUrl = _ref5.deviceUrl,
647
- layoutType = _ref5.layoutType,
648
- main = _ref5.main,
649
- content = _ref5.content;
657
+ value: function changeVideoLayout(_ref6) {
658
+ var locusUrl = _ref6.locusUrl,
659
+ deviceUrl = _ref6.deviceUrl,
660
+ layoutType = _ref6.layoutType,
661
+ main = _ref6.main,
662
+ content = _ref6.content;
650
663
 
651
664
  // send main/content renderInfo only if both width and height are specified
652
665
  if (main && (!main.width || !main.height)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["request.js"],"names":["MeetingRequest","attrs","options","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","sipUri","meetingNumber","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","LoggerProxy","logger","info","url","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","error","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","catch","err","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","reject","selfId","LEAVE","PUT","ALERT","CONTROLS","record","recording","paused","PATCH","lock","locked","DECLINE","reason","MEDIA","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","StatelessWebexPlugin"],"mappings":"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","sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\nimport {StatelessWebexPlugin} from '@webex/webex-core';\nimport {\n deviceType\n} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n SEND_DTMF_ENDPOINT,\n _SLIDES_\n} from '../constants';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n constructor(attrs, options) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {leading: true, trailing: true});\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options) {\n const {\n asResourceOccupant, sipUri, meetingNumber, deviceUrl, locusUrl, resourceId, correlationId, ensureConversation, moderator, pin, moveToResource, roapMessage, preferTranscoding\n } = options;\n\n LoggerProxy.logger.info(\n 'Meeting:request#joinMeeting --> Joining a meeting',\n correlationId\n );\n\n let url = '';\n\n const body = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n deviceType: this.config.meetings.deviceType\n },\n usingResource: resourceId || null,\n moveMediaToResource: resourceId && moveToResource || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true\n }\n };\n\n if (this.webex.meetings.clientRegion) {\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n }\n else if (meetingNumber) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: `wbxmn:${meetingNumber}`\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Meeting:request#joinMeeting webex meeting id--> ${e}`);\n throw (e);\n }\n }\n else if (sipUri) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: sipUri\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Meeting:request#joinMeeting sipUrl --> ${e}`);\n throw (e);\n }\n }\n\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === sipUri) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_]\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.localUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n dialIn({\n locusUrl, dialInUrl, clientUrl, correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl\n },\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`);\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned pstn device leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.selfId\n * @param {String} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n * @private\n */\n leavePstn({\n locusUrl, dialInUrl, correlationId, selfId\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#leavePstn --> request device ${dialInUrl} to leaving`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: dialInUrl\n },\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#leavePstn --> Error when requesting pstn device ${dialInUrl} to leave, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl, selfId, deviceUrl: url, resourceId, correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#leaveMeeting --> Leaving a meeting',\n correlationId\n );\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url\n },\n usingResource: resourceId || null,\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n correlationId: options.correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.id\n * @returns {Promise}\n */\n recordMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n record: {\n recording: options.recording,\n paused: options.paused\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n ...(options.reason && {reason: options.reason})\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(options) {\n let floorReq = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n }\n ]\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl\n }\n };\n }\n\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body: {\n floor: floorReq,\n resourceUrl: options.resourceUrl\n }\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}) {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones\n }\n }\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants LAYOUT_TYPES\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl, deviceUrl, layoutType, main, content\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(main)}`));\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(content)}`));\n }\n\n const renderInfoMain = (main) ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = (content) ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams = (renderInfoMain || renderInfoContent) ?\n {\n renderInfo:\n {\n main: renderInfoMain,\n content: renderInfoContent\n }\n } : undefined;\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams\n }\n }\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["request.js"],"names":["MeetingRequest","attrs","options","changeVideoLayoutDebounced","changeVideoLayout","leading","trailing","asResourceOccupant","sipUri","meetingNumber","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","LoggerProxy","logger","info","url","body","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","error","concat","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","request","method","HTTP_VERBS","POST","uri","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","catch","err","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","reject","phoneUrl","selfId","LEAVE","PUT","ALERT","CONTROLS","record","recording","paused","PATCH","lock","locked","DECLINE","reason","MEDIA","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","layoutType","main","content","width","height","Error","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","StatelessWebexPlugin"],"mappings":"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","sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\nimport {StatelessWebexPlugin} from '@webex/webex-core';\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_\n} from '../constants';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n constructor(attrs, options) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {leading: true, trailing: true});\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options) {\n const {\n asResourceOccupant,\n sipUri,\n meetingNumber,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding\n } = options;\n\n LoggerProxy.logger.info(\n 'Meeting:request#joinMeeting --> Joining a meeting',\n correlationId\n );\n\n let url = '';\n\n const body = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n deviceType: this.config.meetings.deviceType\n },\n usingResource: resourceId || null,\n moveMediaToResource: resourceId && moveToResource || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true\n }\n };\n\n if (this.webex.meetings.clientRegion) {\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n }\n else if (sipUri || meetingNumber) {\n try {\n await this.webex.internal.services.waitForCatalog('postauth');\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: sipUri || `wbxmn:${meetingNumber}`\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Meeting:request#joinMeeting ${sipUri ? 'sipUri' : 'meetingNumber'} --> ${e}`);\n throw (e);\n }\n }\n\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === sipUri) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_]\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.localUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl\n },\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.localUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl\n },\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl.concat(syncUrl.split('?')[1] ? '&' : '?').concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`);\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolen} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#getFullLocus --> Error getting full locus, error ${err}`);\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl\n },\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#leaveMeeting --> Leaving a meeting',\n correlationId\n );\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url\n },\n usingResource: resourceId || null,\n correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n correlationId: options.correlationId\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.id\n * @returns {Promise}\n */\n recordMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n record: {\n recording: options.recording,\n paused: options.paused\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n ...(options.reason && {reason: options.reason})\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(options) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(options) {\n let floorReq = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl\n }\n ]\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl\n }\n };\n }\n\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body: {\n floor: floorReq,\n resourceUrl: options.resourceUrl\n }\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}) {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones\n }\n }\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants LAYOUT_TYPES\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for main: ${JSON.stringify(main)}`));\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(new Error(`Both width and height must be specified. One of them is missing for content: ${JSON.stringify(content)}`));\n }\n\n const renderInfoMain = (main) ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = (content) ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams = (renderInfoMain || renderInfoContent) ?\n {\n renderInfo:\n {\n main: renderInfoMain,\n content: renderInfoContent\n }\n } : undefined;\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams\n }\n }\n });\n }\n}\n"]}
@@ -188,7 +188,7 @@ MeetingUtil.cleanUp = function (meeting) {
188
188
  });
189
189
  };
190
190
 
191
- MeetingUtil.leavePstn = function (meeting, dialInUrl) {
191
+ MeetingUtil.disconnectPhoneAudio = function (meeting, phoneUrl) {
192
192
  if (meeting.meetingState === _constants.FULL_STATE.INACTIVE) {
193
193
  return _promise.default.reject(new _webexErrors.MeetingNotActiveError());
194
194
  }
@@ -197,16 +197,16 @@ MeetingUtil.leavePstn = function (meeting, dialInUrl) {
197
197
  locusUrl: meeting.locusUrl,
198
198
  selfId: meeting.selfId,
199
199
  correlationId: meeting.correlationId,
200
- dialInUrl: dialInUrl
200
+ phoneUrl: phoneUrl
201
201
  };
202
- return meeting.meetingRequest.leavePstn(options).then(function (response) {
202
+ return meeting.meetingRequest.disconnectPhoneAudio(options).then(function (response) {
203
203
  var _response$body;
204
204
 
205
205
  if (response !== null && response !== void 0 && (_response$body = response.body) !== null && _response$body !== void 0 && _response$body.locus) {
206
206
  meeting.locusInfo.onFullLocus(response.body.locus);
207
207
  }
208
208
  }).catch(function (err) {
209
- _loggerProxy.default.logger.error("Meeting:util#leavePstn --> An error occured while trying to leave pstn with an id of ".concat(meeting.id, ", error: ").concat(err));
209
+ _loggerProxy.default.logger.error("Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ".concat(meeting.id, ", error: ").concat(err));
210
210
 
211
211
  return _promise.default.reject(err);
212
212
  });