@webex/plugin-meetings 2.60.0-next.1 → 2.60.0-next.11

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.
Files changed (185) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/breakouts/breakout.d.ts +8 -0
  5. package/dist/breakouts/breakout.js +1 -1
  6. package/dist/breakouts/collection.d.ts +5 -0
  7. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  8. package/dist/breakouts/events.d.ts +8 -0
  9. package/dist/breakouts/index.d.ts +5 -0
  10. package/dist/breakouts/index.js +1 -1
  11. package/dist/breakouts/request.d.ts +22 -0
  12. package/dist/breakouts/utils.d.ts +15 -0
  13. package/dist/common/browser-detection.d.ts +9 -0
  14. package/dist/common/collection.d.ts +48 -0
  15. package/dist/common/config.d.ts +2 -0
  16. package/dist/common/errors/captcha-error.d.ts +15 -0
  17. package/dist/common/errors/intent-to-join.d.ts +16 -0
  18. package/dist/common/errors/join-meeting.d.ts +17 -0
  19. package/dist/common/errors/media.d.ts +15 -0
  20. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  21. package/dist/common/errors/parameter.d.ts +15 -0
  22. package/dist/common/errors/password-error.d.ts +15 -0
  23. package/dist/common/errors/permission.d.ts +14 -0
  24. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  25. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  26. package/dist/common/errors/reconnection.d.ts +15 -0
  27. package/dist/common/errors/stats.d.ts +15 -0
  28. package/dist/common/errors/webex-errors.d.ts +93 -0
  29. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  30. package/dist/common/events/events-scope.d.ts +17 -0
  31. package/dist/common/events/events.d.ts +12 -0
  32. package/dist/common/events/trigger-proxy.d.ts +2 -0
  33. package/dist/common/events/util.d.ts +2 -0
  34. package/dist/common/logs/logger-config.d.ts +2 -0
  35. package/dist/common/logs/logger-proxy.d.ts +2 -0
  36. package/dist/common/logs/request.d.ts +36 -0
  37. package/dist/common/queue.d.ts +34 -0
  38. package/dist/config.d.ts +71 -0
  39. package/dist/constants.d.ts +1072 -0
  40. package/dist/constants.js +1 -1
  41. package/dist/constants.js.map +1 -1
  42. package/dist/controls-options-manager/constants.d.ts +4 -0
  43. package/dist/controls-options-manager/enums.d.ts +15 -0
  44. package/dist/controls-options-manager/enums.js +2 -1
  45. package/dist/controls-options-manager/enums.js.map +1 -1
  46. package/dist/controls-options-manager/index.d.ts +136 -0
  47. package/dist/controls-options-manager/types.d.ts +43 -0
  48. package/dist/controls-options-manager/util.d.ts +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/interpretation/collection.d.ts +5 -0
  51. package/dist/interpretation/index.d.ts +5 -0
  52. package/dist/interpretation/index.js +1 -1
  53. package/dist/interpretation/siLanguage.d.ts +5 -0
  54. package/dist/interpretation/siLanguage.js +1 -1
  55. package/dist/locus-info/controlsUtils.d.ts +2 -0
  56. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  57. package/dist/locus-info/fullState.d.ts +2 -0
  58. package/dist/locus-info/hostUtils.d.ts +2 -0
  59. package/dist/locus-info/index.d.ts +322 -0
  60. package/dist/locus-info/infoUtils.d.ts +2 -0
  61. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  62. package/dist/locus-info/parser.d.ts +272 -0
  63. package/dist/locus-info/parser.js +5 -5
  64. package/dist/locus-info/parser.js.map +1 -1
  65. package/dist/locus-info/selfUtils.d.ts +2 -0
  66. package/dist/media/index.d.ts +34 -0
  67. package/dist/media/index.js +6 -5
  68. package/dist/media/index.js.map +1 -1
  69. package/dist/media/properties.d.ts +93 -0
  70. package/dist/media/util.d.ts +2 -0
  71. package/dist/mediaQualityMetrics/config.d.ts +237 -0
  72. package/dist/mediaQualityMetrics/config.js +1 -202
  73. package/dist/mediaQualityMetrics/config.js.map +1 -1
  74. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  75. package/dist/meeting/in-meeting-actions.js +4 -0
  76. package/dist/meeting/in-meeting-actions.js.map +1 -1
  77. package/dist/meeting/index.d.ts +1719 -0
  78. package/dist/meeting/index.js +288 -155
  79. package/dist/meeting/index.js.map +1 -1
  80. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  81. package/dist/meeting/muteState.d.ts +184 -0
  82. package/dist/meeting/request.d.ts +290 -0
  83. package/dist/meeting/request.type.d.ts +11 -0
  84. package/dist/meeting/state.d.ts +9 -0
  85. package/dist/meeting/util.d.ts +103 -0
  86. package/dist/meeting-info/collection.d.ts +20 -0
  87. package/dist/meeting-info/index.d.ts +69 -0
  88. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  89. package/dist/meeting-info/meeting-info-v2.js +3 -0
  90. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  91. package/dist/meeting-info/request.d.ts +22 -0
  92. package/dist/meeting-info/util.d.ts +2 -0
  93. package/dist/meeting-info/utilv2.d.ts +2 -0
  94. package/dist/meeting-info/utilv2.js +14 -29
  95. package/dist/meeting-info/utilv2.js.map +1 -1
  96. package/dist/meetings/collection.d.ts +40 -0
  97. package/dist/meetings/collection.js +17 -0
  98. package/dist/meetings/collection.js.map +1 -1
  99. package/dist/meetings/index.d.ts +378 -0
  100. package/dist/meetings/index.js +30 -9
  101. package/dist/meetings/index.js.map +1 -1
  102. package/dist/meetings/meetings.types.d.ts +4 -0
  103. package/dist/meetings/request.d.ts +27 -0
  104. package/dist/meetings/util.d.ts +18 -0
  105. package/dist/member/index.d.ts +160 -0
  106. package/dist/member/member.types.d.ts +11 -0
  107. package/dist/member/types.d.ts +32 -0
  108. package/dist/member/util.d.ts +2 -0
  109. package/dist/members/collection.d.ts +29 -0
  110. package/dist/members/index.d.ts +353 -0
  111. package/dist/members/request.d.ts +114 -0
  112. package/dist/members/types.d.ts +25 -0
  113. package/dist/members/util.d.ts +215 -0
  114. package/dist/metrics/constants.d.ts +68 -0
  115. package/dist/metrics/constants.js +3 -0
  116. package/dist/metrics/constants.js.map +1 -1
  117. package/dist/metrics/index.d.ts +45 -0
  118. package/dist/multistream/mediaRequestManager.d.ts +118 -0
  119. package/dist/multistream/receiveSlot.d.ts +68 -0
  120. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  121. package/dist/multistream/remoteMedia.d.ts +72 -0
  122. package/dist/multistream/remoteMediaGroup.d.ts +47 -0
  123. package/dist/multistream/remoteMediaManager.d.ts +285 -0
  124. package/dist/multistream/sendSlotManager.d.ts +61 -0
  125. package/dist/networkQualityMonitor/index.d.ts +70 -0
  126. package/dist/personal-meeting-room/index.d.ts +47 -0
  127. package/dist/personal-meeting-room/request.d.ts +14 -0
  128. package/dist/personal-meeting-room/util.d.ts +2 -0
  129. package/dist/reachability/index.d.ts +194 -0
  130. package/dist/reachability/request.d.ts +39 -0
  131. package/dist/reactions/constants.d.ts +3 -0
  132. package/dist/reactions/reactions.d.ts +4 -0
  133. package/dist/reactions/reactions.type.d.ts +52 -0
  134. package/dist/reconnection-manager/index.d.ts +136 -0
  135. package/dist/reconnection-manager/index.js +27 -28
  136. package/dist/reconnection-manager/index.js.map +1 -1
  137. package/dist/recording-controller/enums.d.ts +7 -0
  138. package/dist/recording-controller/index.d.ts +207 -0
  139. package/dist/recording-controller/util.d.ts +14 -0
  140. package/dist/roap/index.d.ts +78 -0
  141. package/dist/roap/request.d.ts +41 -0
  142. package/dist/roap/turnDiscovery.d.ts +92 -0
  143. package/dist/rtcMetrics/constants.d.ts +4 -0
  144. package/dist/rtcMetrics/index.d.ts +54 -0
  145. package/dist/rtcMetrics/index.js +25 -0
  146. package/dist/rtcMetrics/index.js.map +1 -1
  147. package/dist/statsAnalyzer/global.d.ts +36 -0
  148. package/dist/statsAnalyzer/index.d.ts +191 -0
  149. package/dist/statsAnalyzer/index.js +53 -146
  150. package/dist/statsAnalyzer/index.js.map +1 -1
  151. package/dist/statsAnalyzer/mqaUtil.d.ts +24 -0
  152. package/dist/statsAnalyzer/mqaUtil.js +11 -12
  153. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  154. package/dist/transcription/index.d.ts +64 -0
  155. package/dist/webinar/collection.d.ts +16 -0
  156. package/dist/webinar/index.d.ts +5 -0
  157. package/dist/webinar/index.js +1 -1
  158. package/package.json +26 -27
  159. package/src/constants.ts +10 -4
  160. package/src/controls-options-manager/enums.ts +2 -0
  161. package/src/locus-info/parser.ts +6 -6
  162. package/src/media/index.ts +5 -5
  163. package/src/mediaQualityMetrics/config.ts +0 -135
  164. package/src/meeting/in-meeting-actions.ts +8 -0
  165. package/src/meeting/index.ts +263 -125
  166. package/src/meeting-info/meeting-info-v2.ts +4 -0
  167. package/src/meeting-info/utilv2.ts +6 -19
  168. package/src/meetings/collection.ts +13 -0
  169. package/src/meetings/index.ts +28 -10
  170. package/src/metrics/constants.ts +3 -0
  171. package/src/reconnection-manager/index.ts +63 -68
  172. package/src/rtcMetrics/index.ts +24 -0
  173. package/src/statsAnalyzer/index.ts +68 -216
  174. package/src/statsAnalyzer/mqaUtil.ts +17 -22
  175. package/test/unit/spec/media/index.ts +20 -4
  176. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  177. package/test/unit/spec/meeting/index.js +1376 -189
  178. package/test/unit/spec/meeting/muteState.js +2 -1
  179. package/test/unit/spec/meeting-info/meetinginfov2.js +28 -0
  180. package/test/unit/spec/meetings/collection.js +12 -0
  181. package/test/unit/spec/meetings/index.js +382 -118
  182. package/test/unit/spec/member/util.js +0 -31
  183. package/test/unit/spec/reconnection-manager/index.js +42 -12
  184. package/test/unit/spec/rtcMetrics/index.ts +20 -0
  185. package/test/unit/spec/stats-analyzer/index.js +12 -2
@@ -0,0 +1,40 @@
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @export
4
+ * @class MeetingCollection
5
+ */
6
+ export default class MeetingCollection extends Collection {
7
+ /**
8
+ * @constructor
9
+ * @public
10
+ * @memberof MeetingCollection
11
+ */
12
+ constructor();
13
+ set(meeting: any): any;
14
+ /**
15
+ * get a specific meeting searching for key
16
+ * @param {String} key
17
+ * @param {Any} value
18
+ * @returns {Meeting} if found, else returns null
19
+ * @public
20
+ * @memberof MeetingCollection
21
+ */
22
+ getByKey(key: string, value: any): any;
23
+ /**
24
+ * get a specific meeting searching for key
25
+ * @param {String} breakoutUrl
26
+ * @returns {Meeting} if found, else returns null
27
+ * @public
28
+ * @memberof MeetingCollection
29
+ */
30
+ getActiveBreakoutLocus(breakoutUrl: string): any;
31
+ /**
32
+ * Gets the meeting that has a webrtc media connection
33
+ * NOTE: this function assumes there is no more than 1 such meeting
34
+ *
35
+ * @returns {Meeting} first meeting found, else undefined
36
+ * @public
37
+ * @memberof MeetingCollection
38
+ */
39
+ getActiveWebrtcMeeting(): any;
40
+ }
@@ -83,6 +83,23 @@ var MeetingCollection = exports.default = /*#__PURE__*/function (_Collection) {
83
83
  }
84
84
  return null;
85
85
  }
86
+
87
+ /**
88
+ * Gets the meeting that has a webrtc media connection
89
+ * NOTE: this function assumes there is no more than 1 such meeting
90
+ *
91
+ * @returns {Meeting} first meeting found, else undefined
92
+ * @public
93
+ * @memberof MeetingCollection
94
+ */
95
+ }, {
96
+ key: "getActiveWebrtcMeeting",
97
+ value: function getActiveWebrtcMeeting() {
98
+ // @ts-ignore
99
+ return (0, _lodash.find)(this.meetings, function (meeting) {
100
+ return meeting.mediaProperties.webrtcMediaConnection;
101
+ });
102
+ }
86
103
  }]);
87
104
  return MeetingCollection;
88
105
  }(_collection.default);
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingCollection","exports","_Collection","_inherits2","_super","_classCallCheck2","_createClass2","key","value","set","meeting","meetings","id","getByKey","find","getActiveBreakoutLocus","breakoutUrl","_meeting$breakouts","_meeting$breakouts2","breakouts","url","isActiveBreakout","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} breakoutUrl\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getActiveBreakoutLocus(breakoutUrl: string) {\n if (breakoutUrl) {\n // @ts-ignore\n return find(\n // @ts-ignore\n this.meetings,\n (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout\n );\n }\n\n return null;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA8C,SAAAG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAE9C;AACA;AACA;AACA;AAHA,IAIqBC,iBAAiB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,WAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,iBAAA,EAAAE,WAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,iBAAA;EACpC;AACF;AACA;AACA;AACA;EACE,SAAAA,kBAAA,EAAc;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,iBAAA;IAAA,OAAAI,MAAA,CAAAN,IAAA,OACN,UAAU;EAClB;EAAC,IAAAQ,aAAA,CAAAtB,OAAA,EAAAgB,iBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,OAAO,EAAE;MACX;MACA,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC,GAAGF,OAAO;;MAEnC;MACA,OAAO,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAL,GAAA;IAAAC,KAAA,EAQA,SAAAK,SAAgBN,GAAW,EAAEC,KAAU,EAAE;MACvC,IAAID,GAAG,IAAIC,KAAK,EAAE;QAChB;QACA,OAAO,IAAAM,YAAI,EAAC,IAAI,CAACH,QAAQ,EAAE,UAACD,OAAO;UAAA,OAAKA,OAAO,CAACH,GAAG,CAAC,KAAKC,KAAK;QAAA,EAAC;MACjE;MAEA,OAAO,IAAI;IACb;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAD,GAAA;IAAAC,KAAA,EAOA,SAAAO,uBAA8BC,WAAmB,EAAE;MACjD,IAAIA,WAAW,EAAE;QACf;QACA,OAAO,IAAAF,YAAI;QACT;QACA,IAAI,CAACH,QAAQ,EACb,UAACD,OAAO;UAAA,IAAAO,kBAAA,EAAAC,mBAAA;UAAA,OAAK,EAAAD,kBAAA,GAAAP,OAAO,CAACS,SAAS,cAAAF,kBAAA,uBAAjBA,kBAAA,CAAmBG,GAAG,MAAKJ,WAAW,MAAAE,mBAAA,GAAIR,OAAO,CAACS,SAAS,cAAAD,mBAAA,uBAAjBA,mBAAA,CAAmBG,gBAAgB;QAAA,CAC5F,CAAC;MACH;MAEA,OAAO,IAAI;IACb;EAAC;EAAA,OAAArB,iBAAA;AAAA,EArD4CsB,mBAAU"}
1
+ {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingCollection","exports","_Collection","_inherits2","_super","_classCallCheck2","_createClass2","key","value","set","meeting","meetings","id","getByKey","find","getActiveBreakoutLocus","breakoutUrl","_meeting$breakouts","_meeting$breakouts2","breakouts","url","isActiveBreakout","getActiveWebrtcMeeting","mediaProperties","webrtcMediaConnection","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} breakoutUrl\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getActiveBreakoutLocus(breakoutUrl: string) {\n if (breakoutUrl) {\n // @ts-ignore\n return find(\n // @ts-ignore\n this.meetings,\n (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout\n );\n }\n\n return null;\n }\n\n /**\n * Gets the meeting that has a webrtc media connection\n * NOTE: this function assumes there is no more than 1 such meeting\n *\n * @returns {Meeting} first meeting found, else undefined\n * @public\n * @memberof MeetingCollection\n */\n public getActiveWebrtcMeeting() {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting.mediaProperties.webrtcMediaConnection);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,378 @@
1
+ import '@webex/internal-plugin-mercury';
2
+ import '@webex/internal-plugin-conversation';
3
+ import '@webex/internal-plugin-metrics';
4
+ import { WebexPlugin } from '@webex/webex-core';
5
+ import * as mediaHelpersModule from '@webex/media-helpers';
6
+ import 'webrtc-adapter';
7
+ import { CallStateForMetrics } from '../meeting';
8
+ import Reachability from '../reachability';
9
+ import { INoiseReductionEffect, IVirtualBackgroundEffect } from './meetings.types';
10
+ /**
11
+ * Meetings Ready Event
12
+ * Emitted when the meetings instance on webex is ready
13
+ * @event meetings:ready
14
+ * @instance
15
+ * @memberof Meetings
16
+ */
17
+ /**
18
+ * Meetings Network Disconnected Event
19
+ * Emitted when the meetings instance is disconnected from
20
+ * the internal mercury server
21
+ * @event network:disconnected
22
+ * @instance
23
+ * @memberof Meetings
24
+ */
25
+ /**
26
+ * Meetings Registered Event
27
+ * Emitted when the meetings instance has been registered and listening
28
+ * @event meetings:registered
29
+ * @instance
30
+ * @memberof Meetings
31
+ */
32
+ /**
33
+ * Meeting Removed Event
34
+ * Emitted when a meeting was removed from the cache of meetings
35
+ * @event meeting:removed
36
+ * @instance
37
+ * @type {Object}
38
+ * @property {String} meetingId the removed meeting
39
+ * @property {Object} response the server response
40
+ * @property {String} type what type of meeting it was
41
+ * @memberof Meetings
42
+ */
43
+ /**
44
+ * Meeting Added Event
45
+ * Emitted when a meeting was added to the cache of meetings
46
+ * @event meeting:added
47
+ * @instance
48
+ * @type {Object}
49
+ * @property {String} meetingId the added meeting
50
+ * @property {String} type what type of meeting it was
51
+ * @memberof Meetings
52
+ */
53
+ /**
54
+ * Maintain a cache of meetings and sync with services.
55
+ * @class
56
+ */
57
+ export default class Meetings extends WebexPlugin {
58
+ loggerRequest: any;
59
+ media: any;
60
+ meetingCollection: any;
61
+ personalMeetingRoom: any;
62
+ preferredWebexSite: any;
63
+ reachability: Reachability;
64
+ registered: any;
65
+ request: any;
66
+ geoHintInfo: any;
67
+ meetingInfo: any;
68
+ mediaHelpers: any;
69
+ breakoutLocusForHandleLater: any;
70
+ namespace: string;
71
+ /**
72
+ * Initializes the Meetings Plugin
73
+ * @constructor
74
+ * @public
75
+ * @memberof Meetings
76
+ */
77
+ constructor(...args: any[]);
78
+ /**
79
+ * check whether you need to handle this main session's locus data or not
80
+ * @param {Object} meeting current meeting data
81
+ * @param {Object} newLocus new locus data
82
+ * @returns {boolean}
83
+ * @private
84
+ * @memberof Meetings
85
+ */
86
+ private isNeedHandleMainLocus;
87
+ /**
88
+ * check whether you need to handle this locus data or not
89
+ * @param {Object} meeting old locus data
90
+ * @param {Object} newLocus new locus data
91
+ * @returns {boolean}
92
+ * @private
93
+ * @memberof Meetings
94
+ */
95
+ private isNeedHandleLocusDTO;
96
+ /**
97
+ * get corresponding meeting object by locus data
98
+ * @param {Object} data a locus event
99
+ * @param {String} data.locusUrl
100
+ * @param {Object} data.locus
101
+ * @returns {Object}
102
+ * @private
103
+ * @memberof Meetings
104
+ */
105
+ getCorrespondingMeetingByLocus(data: any): any;
106
+ /**
107
+ * handle locus events and takes meeting actions with them as they come in
108
+ * @param {Object} data a locus event
109
+ * @param {String} data.locusUrl
110
+ * @param {Object} data.locus
111
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
112
+ * @param {String} data.eventType
113
+ * @returns {undefined}
114
+ * @private
115
+ * @memberof Meetings
116
+ */
117
+ private handleLocusEvent;
118
+ /**
119
+ * handles locus events through mercury that are not roap
120
+ * @param {Object} envelope
121
+ * @param {Object} envelope.data
122
+ * @param {String} envelope.data.eventType
123
+ * @returns {undefined}
124
+ * @private
125
+ * @memberof Meetings
126
+ */
127
+ private handleLocusMercury;
128
+ /**
129
+ * handles mecury offline event
130
+ * @returns {undefined}
131
+ * @private
132
+ * @memberof Meetings
133
+ */
134
+ private handleMercuryOffline;
135
+ /**
136
+ * registers for locus and roap mercury events
137
+ * @returns {undefined}
138
+ * @private
139
+ * @memberof Meetings
140
+ */
141
+ private listenForEvents;
142
+ /**
143
+ * stops listening for locus and roap mercury events
144
+ * @returns {undefined}
145
+ * @private
146
+ * @memberof Meetings
147
+ */
148
+ private stopListeningForEvents;
149
+ /**
150
+ * @returns {undefined}
151
+ * @private
152
+ * @memberof Meetings
153
+ */
154
+ private onReady;
155
+ /**
156
+ * API to toggle unified meetings
157
+ * @param {Boolean} changeState
158
+ * @private
159
+ * @memberof Meetings
160
+ * @returns {undefined}
161
+ */
162
+ private _toggleUnifiedMeetings;
163
+ /**
164
+ * API to toggle starting adhoc meeting
165
+ * @param {Boolean} changeState
166
+ * @private
167
+ * @memberof Meetings
168
+ * @returns {undefined}
169
+ */
170
+ private _toggleAdhocMeetings;
171
+ /**
172
+ * Explicitly sets up the meetings plugin by registering
173
+ * the device, connecting to mercury, and listening for locus events.
174
+ *
175
+ * @returns {Promise}
176
+ * @public
177
+ * @memberof Meetings
178
+ */
179
+ register(): Promise<void>;
180
+ /**
181
+ * Explicitly tears down the meetings plugin by deregistering
182
+ * the device, disconnecting from mercury, and stops listening to locus events
183
+ *
184
+ * @returns {Promise}
185
+ * @public
186
+ * @memberof Meetings
187
+ */
188
+ unregister(): any;
189
+ /**
190
+ * Creates a noise reduction effect
191
+ *
192
+ * @param {INoiseReductionEffect} options optional custom effect options
193
+ * @returns {Promise<effect>} noise reduction effect.
194
+ * @public
195
+ * @memberof Meetings
196
+ */
197
+ createNoiseReductionEffect: (options?: INoiseReductionEffect) => Promise<mediaHelpersModule.NoiseReductionEffect>;
198
+ /**
199
+ * Creates a virtual background effect
200
+ *
201
+ * @param {IVirtualBackgroundEffect} options optional custom effect options
202
+ * @returns {Promise<effect>} virtual background effect.
203
+ * @public
204
+ * @memberof Meetings
205
+ */
206
+ createVirtualBackgroundEffect: (options?: IVirtualBackgroundEffect) => Promise<mediaHelpersModule.VirtualBackgroundEffect>;
207
+ /**
208
+ * Uploads logs to the webex services for tracking
209
+ * @param {Object} [options={}]
210
+ * @param {String} [options.callStart] Call Start Time
211
+ * @param {String} [options.feedbackId] ID used for tracking
212
+ * @param {String} [options.locusId]
213
+ * @param {String} [options.correlationId]
214
+ * @param {String} [options.meetingId] webex meeting ID
215
+ * @param {String} [options.userId] userId
216
+ * @param {String} [options.orgId] org id
217
+ * @returns {String} feedback ID logs were submitted under
218
+ */
219
+ uploadLogs(options?: {
220
+ autoupload?: boolean;
221
+ callStart?: string;
222
+ feedbackId?: string;
223
+ locussessionid?: string;
224
+ locusId?: string;
225
+ correlationId?: string;
226
+ meetingId?: string;
227
+ userId?: string;
228
+ orgId?: string;
229
+ }): any;
230
+ /**
231
+ * gets the reachability instance for Meetings
232
+ * @returns {Reachability}
233
+ * @public
234
+ * @memberof Meetings
235
+ */
236
+ getReachability(): Reachability;
237
+ /**
238
+ * initializes and starts gathering reachability for Meetings
239
+ * @returns {Promise}
240
+ * @public
241
+ * @memberof Meetings
242
+ */
243
+ startReachability(): Promise<{
244
+ [x: string]: {
245
+ udp: import("../reachability").TransportResult;
246
+ tcp: import("../reachability").TransportResult;
247
+ xtls: {
248
+ untested: "true";
249
+ };
250
+ } & {
251
+ isVideoMesh?: boolean;
252
+ };
253
+ }>;
254
+ /**
255
+ * Get geoHint for info for meetings
256
+ * @returns {Promise}
257
+ * @private
258
+ * @memberof Meetings
259
+ */
260
+ getGeoHint(): any;
261
+ /**
262
+ * Fetch user preferred webex site information
263
+ * This also has other infomation about the user
264
+ * @returns {Promise}
265
+ * @private
266
+ * @memberof Meetings
267
+ */
268
+ fetchUserPreferredWebexSite(): any;
269
+ /**
270
+ * gets the personal meeting room instance, for saved PMR values for this user
271
+ * @returns {PersonalMeetingRoom}
272
+ * @public
273
+ * @memberof Meetings
274
+ */
275
+ getPersonalMeetingRoom(): any;
276
+ /**
277
+ * @param {Meeting} meeting
278
+ * @param {Object} reason
279
+ * @param {String} type
280
+ * @returns {Undefined}
281
+ * @private
282
+ * @memberof Meetings
283
+ */
284
+ private destroy;
285
+ /**
286
+ * Create a meeting or return an existing meeting.
287
+ * @param {string} destination - sipURL, phonenumber, or locus object}
288
+ * @param {string} [type] - the optional specified type, such as locusId
289
+ * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
290
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
291
+ * @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
292
+ * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
293
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
294
+ * @returns {Promise<Meeting>} A new Meeting.
295
+ * @public
296
+ * @memberof Meetings
297
+ */
298
+ create(destination: string, type?: string, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string, failOnMissingMeetingInfo?: boolean, callStateForMetrics?: CallStateForMetrics): any;
299
+ /**
300
+ * @param {String} destination see create()
301
+ * @param {String} type see create()
302
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
303
+ * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
304
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
305
+ * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
306
+ * @returns {Promise} a new meeting instance complete with meeting info and destination
307
+ * @private
308
+ * @memberof Meetings
309
+ */
310
+ private createMeeting;
311
+ /**
312
+ * get a specifc meeting given it's type matched to the value, i.e., locus url
313
+ * @param {String} type
314
+ * @param {Object} value
315
+ * @returns {Meeting}
316
+ * @public
317
+ * @memberof Meetings
318
+ */
319
+ getMeetingByType(type: string, value: object): any;
320
+ /**
321
+ * Get all meetings.
322
+ * @param {object} options
323
+ * @param {object} options.startDate - get meetings after this start date
324
+ * @param {object} options.endDate - get meetings before this end date
325
+ * @returns {Object} All currently active meetings.
326
+ * @public
327
+ * @memberof Meetings
328
+ */
329
+ getAllMeetings(options?: {
330
+ startDate: object;
331
+ endDate: object;
332
+ }): any;
333
+ /**
334
+ * syncs all the meeting from server
335
+ * @returns {undefined}
336
+ * @public
337
+ * @memberof Meetings
338
+ */
339
+ syncMeetings(): any;
340
+ /**
341
+ * sort out locus array for initial creating
342
+ * @param {Array} loci original locus array
343
+ * @returns {undefined}
344
+ * @public
345
+ * @memberof Meetings
346
+ */
347
+ sortLocusArrayToUpdate(loci: any[]): any[];
348
+ /**
349
+ * check breakout locus which waiting for main locus's meeting to be created, then handle the breakout locus
350
+ * @param {Object} newCreatedLocus the locus which just create meeting object of it
351
+ * @returns {undefined}
352
+ * @public
353
+ * @memberof Meetings
354
+ */
355
+ checkHandleBreakoutLocus(newCreatedLocus: any): void;
356
+ /**
357
+ * Get all scheduled meetings.
358
+ * @param {object} options
359
+ * @param {object} options.startDate - get meetings after this start date
360
+ * @param {object} options.endDate - get meetings before this end date
361
+ * @returns {Object} All scheduled meetings.
362
+ * @memberof Meetings
363
+ */
364
+ getScheduledMeetings(): any;
365
+ /**
366
+ * Get the logger instance for plugin-meetings
367
+ * @returns {Logger}
368
+ */
369
+ getLogger(): any;
370
+ /**
371
+ * Returns the first meeting it finds that has the webrtc media connection created.
372
+ * Useful for debugging in the console.
373
+ *
374
+ * @private
375
+ * @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
376
+ */
377
+ getActiveWebrtcMeeting(): any;
378
+ }
@@ -963,13 +963,14 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
963
963
  }
964
964
 
965
965
  /**
966
- * Create a meeting.
966
+ * Create a meeting or return an existing meeting.
967
967
  * @param {string} destination - sipURL, phonenumber, or locus object}
968
968
  * @param {string} [type] - the optional specified type, such as locusId
969
969
  * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
970
970
  * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
971
- * @param {string} correlationId - the optional specified correlationId
971
+ * @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
972
972
  * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
973
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
973
974
  * @returns {Promise<Meeting>} A new Meeting.
974
975
  * @public
975
976
  * @memberof Meetings
@@ -983,12 +984,18 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
983
984
  var infoExtraParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
984
985
  var correlationId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
985
986
  var failOnMissingMeetingInfo = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
987
+ var callStateForMetrics = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;
986
988
  // TODO: type should be from a dictionary
987
989
 
988
990
  // Validate meeting information based on the provided destination and
989
991
  // type. This must be performed prior to determining if the meeting is
990
992
  // found in the collection, as we mutate the destination for hydra person
991
993
  // id values.
994
+ if (correlationId) {
995
+ callStateForMetrics = _objectSpread(_objectSpread({}, callStateForMetrics || {}), {}, {
996
+ correlationId: correlationId
997
+ });
998
+ }
992
999
  return this.meetingInfo.fetchInfoOptions(destination, type)
993
1000
  // Catch a failure to fetch info options.
994
1001
  .catch(function (error) {
@@ -1024,7 +1031,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1024
1031
  // Validate if a meeting was found.
1025
1032
  if (!meeting) {
1026
1033
  // Create a meeting based on the normalized destination and type.
1027
- return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, correlationId, failOnMissingMeetingInfo).then(function (createdMeeting) {
1034
+ return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, callStateForMetrics, failOnMissingMeetingInfo).then(function (createdMeeting) {
1028
1035
  // If the meeting was successfully created.
1029
1036
  if (createdMeeting && createdMeeting.on) {
1030
1037
  // Create a destruction event for the meeting.
@@ -1070,6 +1077,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1070
1077
  return _promise.default.resolve(createdMeeting);
1071
1078
  });
1072
1079
  }
1080
+ meeting.setCallStateForMetrics(callStateForMetrics);
1073
1081
 
1074
1082
  // Return the existing meeting.
1075
1083
  return _promise.default.resolve(meeting);
@@ -1081,7 +1089,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1081
1089
  * @param {String} type see create()
1082
1090
  * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
1083
1091
  * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
1084
- * @param {String} correlationId the optional specified correlationId
1092
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
1085
1093
  * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
1086
1094
  * @returns {Promise} a new meeting instance complete with meeting info and destination
1087
1095
  * @private
@@ -1094,7 +1102,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1094
1102
  var type,
1095
1103
  useRandomDelayForInfo,
1096
1104
  infoExtraParams,
1097
- correlationId,
1105
+ callStateForMetrics,
1098
1106
  failOnMissingMeetingInfo,
1099
1107
  meeting,
1100
1108
  _destination$fullStat,
@@ -1114,7 +1122,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1114
1122
  type = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
1115
1123
  useRandomDelayForInfo = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
1116
1124
  infoExtraParams = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
1117
- correlationId = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
1125
+ callStateForMetrics = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
1118
1126
  failOnMissingMeetingInfo = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : false;
1119
1127
  meeting = new _meeting.default({
1120
1128
  // @ts-ignore
@@ -1128,7 +1136,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1128
1136
  meetingInfoProvider: this.meetingInfo,
1129
1137
  destination: destination,
1130
1138
  destinationType: type,
1131
- correlationId: correlationId
1139
+ callStateForMetrics: callStateForMetrics
1132
1140
  }, {
1133
1141
  // @ts-ignore
1134
1142
  parent: this.webex
@@ -1157,7 +1165,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1157
1165
  meeting.fetchMeetingInfoTimeoutId = setTimeout(function () {
1158
1166
  return meeting.fetchMeetingInfo({
1159
1167
  extraParams: infoExtraParams,
1160
- sendCAevents: !!correlationId // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1168
+ sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1161
1169
  });
1162
1170
  }, waitingTime);
1163
1171
  meeting.parseMeetingInfo(undefined, destination);
@@ -1167,7 +1175,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1167
1175
  _context3.next = 19;
1168
1176
  return meeting.fetchMeetingInfo({
1169
1177
  extraParams: infoExtraParams,
1170
- sendCAevents: !!correlationId // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1178
+ sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1171
1179
  });
1172
1180
  case 19:
1173
1181
  _context3.next = 31;
@@ -1399,6 +1407,19 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1399
1407
  value: function getLogger() {
1400
1408
  return _loggerProxy.default.get();
1401
1409
  }
1410
+
1411
+ /**
1412
+ * Returns the first meeting it finds that has the webrtc media connection created.
1413
+ * Useful for debugging in the console.
1414
+ *
1415
+ * @private
1416
+ * @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
1417
+ */
1418
+ }, {
1419
+ key: "getActiveWebrtcMeeting",
1420
+ value: function getActiveWebrtcMeeting() {
1421
+ return this.meetingCollection.getActiveWebrtcMeeting();
1422
+ }
1402
1423
  }]);
1403
1424
  return Meetings;
1404
1425
  }(_webexCore.WebexPlugin);