@webex/plugin-meetings 2.59.3-next.1 → 2.59.4

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 (420) hide show
  1. package/.eslintrc.js +6 -6
  2. package/LICENSE +1 -1
  3. package/README.md +1204 -1204
  4. package/UPGRADING.md +287 -287
  5. package/babel.config.js +3 -3
  6. package/browsers.js +108 -108
  7. package/dist/common/browser-detection.d.ts +9 -9
  8. package/dist/common/browser-detection.js.map +1 -1
  9. package/dist/common/collection.d.ts +48 -48
  10. package/dist/common/collection.js +43 -43
  11. package/dist/common/collection.js.map +1 -1
  12. package/dist/common/config.d.ts +2 -2
  13. package/dist/common/config.js.map +1 -1
  14. package/dist/common/errors/captcha-error.d.ts +15 -15
  15. package/dist/common/errors/captcha-error.js +7 -7
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.d.ts +16 -16
  18. package/dist/common/errors/intent-to-join.js +7 -7
  19. package/dist/common/errors/intent-to-join.js.map +1 -1
  20. package/dist/common/errors/join-meeting.d.ts +17 -17
  21. package/dist/common/errors/join-meeting.js +8 -8
  22. package/dist/common/errors/join-meeting.js.map +1 -1
  23. package/dist/common/errors/media.d.ts +15 -15
  24. package/dist/common/errors/media.js +7 -7
  25. package/dist/common/errors/media.js.map +1 -1
  26. package/dist/common/errors/parameter.d.ts +15 -15
  27. package/dist/common/errors/parameter.js +7 -7
  28. package/dist/common/errors/parameter.js.map +1 -1
  29. package/dist/common/errors/password-error.d.ts +15 -15
  30. package/dist/common/errors/password-error.js +7 -7
  31. package/dist/common/errors/password-error.js.map +1 -1
  32. package/dist/common/errors/permission.d.ts +14 -14
  33. package/dist/common/errors/permission.js +6 -6
  34. package/dist/common/errors/permission.js.map +1 -1
  35. package/dist/common/errors/reconnection-in-progress.d.ts +9 -9
  36. package/dist/common/errors/reconnection-in-progress.js +6 -6
  37. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  38. package/dist/common/errors/reconnection.d.ts +15 -15
  39. package/dist/common/errors/reconnection.js +7 -7
  40. package/dist/common/errors/reconnection.js.map +1 -1
  41. package/dist/common/errors/stats.d.ts +15 -15
  42. package/dist/common/errors/stats.js +7 -7
  43. package/dist/common/errors/stats.js.map +1 -1
  44. package/dist/common/errors/webex-errors.d.ts +81 -81
  45. package/dist/common/errors/webex-errors.js +42 -42
  46. package/dist/common/errors/webex-errors.js.map +1 -1
  47. package/dist/common/errors/webex-meetings-error.d.ts +20 -20
  48. package/dist/common/errors/webex-meetings-error.js +12 -12
  49. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  50. package/dist/common/events/events-scope.d.ts +17 -17
  51. package/dist/common/events/events-scope.js +10 -10
  52. package/dist/common/events/events-scope.js.map +1 -1
  53. package/dist/common/events/events.d.ts +12 -12
  54. package/dist/common/events/events.js +4 -4
  55. package/dist/common/events/events.js.map +1 -1
  56. package/dist/common/events/trigger-proxy.d.ts +2 -2
  57. package/dist/common/events/trigger-proxy.js.map +1 -1
  58. package/dist/common/events/util.d.ts +2 -2
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.d.ts +2 -2
  61. package/dist/common/logs/logger-config.js.map +1 -1
  62. package/dist/common/logs/logger-proxy.d.ts +2 -2
  63. package/dist/common/logs/logger-proxy.js.map +1 -1
  64. package/dist/common/logs/request.d.ts +34 -34
  65. package/dist/common/logs/request.js +18 -18
  66. package/dist/common/logs/request.js.map +1 -1
  67. package/dist/common/queue.d.ts +32 -32
  68. package/dist/common/queue.js +18 -18
  69. package/dist/common/queue.js.map +1 -1
  70. package/dist/config.d.ts +73 -73
  71. package/dist/config.js +2 -2
  72. package/dist/config.js.map +1 -1
  73. package/dist/constants.d.ts +926 -924
  74. package/dist/constants.js +11 -9
  75. package/dist/constants.js.map +1 -1
  76. package/dist/controls-options-manager/constants.d.ts +4 -4
  77. package/dist/controls-options-manager/constants.js.map +1 -1
  78. package/dist/controls-options-manager/enums.d.ts +5 -5
  79. package/dist/controls-options-manager/enums.js.map +1 -1
  80. package/dist/controls-options-manager/index.d.ts +120 -120
  81. package/dist/controls-options-manager/index.js +81 -81
  82. package/dist/controls-options-manager/index.js.map +1 -1
  83. package/dist/controls-options-manager/util.d.ts +7 -7
  84. package/dist/controls-options-manager/util.js.map +1 -1
  85. package/dist/index.d.ts +4 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/locus-info/controlsUtils.d.ts +2 -2
  88. package/dist/locus-info/controlsUtils.js +21 -21
  89. package/dist/locus-info/controlsUtils.js.map +1 -1
  90. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -2
  91. package/dist/locus-info/embeddedAppsUtils.js +14 -14
  92. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  93. package/dist/locus-info/fullState.d.ts +2 -2
  94. package/dist/locus-info/fullState.js.map +1 -1
  95. package/dist/locus-info/hostUtils.d.ts +2 -2
  96. package/dist/locus-info/hostUtils.js +19 -19
  97. package/dist/locus-info/hostUtils.js.map +1 -1
  98. package/dist/locus-info/index.d.ts +269 -269
  99. package/dist/locus-info/index.js +180 -180
  100. package/dist/locus-info/index.js.map +1 -1
  101. package/dist/locus-info/infoUtils.d.ts +2 -2
  102. package/dist/locus-info/infoUtils.js.map +1 -1
  103. package/dist/locus-info/mediaSharesUtils.d.ts +2 -2
  104. package/dist/locus-info/mediaSharesUtils.js +50 -50
  105. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  106. package/dist/locus-info/parser.d.ts +212 -212
  107. package/dist/locus-info/parser.js +136 -136
  108. package/dist/locus-info/parser.js.map +1 -1
  109. package/dist/locus-info/selfUtils.d.ts +2 -2
  110. package/dist/locus-info/selfUtils.js +52 -52
  111. package/dist/locus-info/selfUtils.js.map +1 -1
  112. package/dist/media/index.d.ts +32 -32
  113. package/dist/media/index.js +145 -145
  114. package/dist/media/index.js.map +1 -1
  115. package/dist/media/properties.d.ts +108 -108
  116. package/dist/media/properties.js +49 -49
  117. package/dist/media/properties.js.map +1 -1
  118. package/dist/media/util.d.ts +2 -2
  119. package/dist/media/util.js.map +1 -1
  120. package/dist/mediaQualityMetrics/config.d.ts +233 -233
  121. package/dist/mediaQualityMetrics/config.js.map +1 -1
  122. package/dist/meeting/effectsState.d.ts +42 -42
  123. package/dist/meeting/effectsState.js +24 -24
  124. package/dist/meeting/effectsState.js.map +1 -1
  125. package/dist/meeting/in-meeting-actions.d.ts +79 -79
  126. package/dist/meeting/in-meeting-actions.js +11 -11
  127. package/dist/meeting/in-meeting-actions.js.map +1 -1
  128. package/dist/meeting/index.d.ts +1621 -1621
  129. package/dist/meeting/index.js +1538 -1518
  130. package/dist/meeting/index.js.map +1 -1
  131. package/dist/meeting/muteState.d.ts +116 -116
  132. package/dist/meeting/muteState.js +85 -85
  133. package/dist/meeting/muteState.js.map +1 -1
  134. package/dist/meeting/request.d.ts +255 -255
  135. package/dist/meeting/request.js +141 -141
  136. package/dist/meeting/request.js.map +1 -1
  137. package/dist/meeting/state.d.ts +9 -9
  138. package/dist/meeting/state.js +30 -30
  139. package/dist/meeting/state.js.map +1 -1
  140. package/dist/meeting/util.d.ts +2 -2
  141. package/dist/meeting/util.js.map +1 -1
  142. package/dist/meeting-info/collection.d.ts +20 -20
  143. package/dist/meeting-info/collection.js +11 -11
  144. package/dist/meeting-info/collection.js.map +1 -1
  145. package/dist/meeting-info/index.d.ts +57 -57
  146. package/dist/meeting-info/index.js +50 -50
  147. package/dist/meeting-info/index.js.map +1 -1
  148. package/dist/meeting-info/meeting-info-v2.d.ts +93 -93
  149. package/dist/meeting-info/meeting-info-v2.js +52 -52
  150. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  151. package/dist/meeting-info/request.d.ts +22 -22
  152. package/dist/meeting-info/request.js +14 -14
  153. package/dist/meeting-info/request.js.map +1 -1
  154. package/dist/meeting-info/util.d.ts +2 -2
  155. package/dist/meeting-info/util.js +9 -9
  156. package/dist/meeting-info/util.js.map +1 -1
  157. package/dist/meeting-info/utilv2.d.ts +2 -2
  158. package/dist/meeting-info/utilv2.js +20 -20
  159. package/dist/meeting-info/utilv2.js.map +1 -1
  160. package/dist/meetings/collection.d.ts +23 -23
  161. package/dist/meetings/collection.js +14 -14
  162. package/dist/meetings/collection.js.map +1 -1
  163. package/dist/meetings/index.d.ts +296 -296
  164. package/dist/meetings/index.js +259 -259
  165. package/dist/meetings/index.js.map +1 -1
  166. package/dist/meetings/request.d.ts +27 -27
  167. package/dist/meetings/request.js +15 -15
  168. package/dist/meetings/request.js.map +1 -1
  169. package/dist/meetings/util.d.ts +18 -18
  170. package/dist/meetings/util.js +29 -29
  171. package/dist/meetings/util.js.map +1 -1
  172. package/dist/member/index.d.ts +147 -147
  173. package/dist/member/index.js +214 -214
  174. package/dist/member/index.js.map +1 -1
  175. package/dist/member/member.types.d.ts +11 -11
  176. package/dist/member/member.types.js.map +1 -1
  177. package/dist/member/util.d.ts +2 -2
  178. package/dist/member/util.js +60 -60
  179. package/dist/member/util.js.map +1 -1
  180. package/dist/members/collection.d.ts +24 -24
  181. package/dist/members/collection.js +11 -11
  182. package/dist/members/collection.js.map +1 -1
  183. package/dist/members/index.d.ts +298 -298
  184. package/dist/members/index.js +275 -275
  185. package/dist/members/index.js.map +1 -1
  186. package/dist/members/request.d.ts +50 -50
  187. package/dist/members/request.js +27 -27
  188. package/dist/members/request.js.map +1 -1
  189. package/dist/members/util.d.ts +2 -2
  190. package/dist/members/util.js +21 -21
  191. package/dist/members/util.js.map +1 -1
  192. package/dist/metrics/config.d.ts +169 -169
  193. package/dist/metrics/config.js.map +1 -1
  194. package/dist/metrics/constants.d.ts +59 -57
  195. package/dist/metrics/constants.js +2 -0
  196. package/dist/metrics/constants.js.map +1 -1
  197. package/dist/metrics/index.d.ts +152 -152
  198. package/dist/metrics/index.js +90 -90
  199. package/dist/metrics/index.js.map +1 -1
  200. package/dist/networkQualityMonitor/index.d.ts +70 -70
  201. package/dist/networkQualityMonitor/index.js +65 -65
  202. package/dist/networkQualityMonitor/index.js.map +1 -1
  203. package/dist/peer-connection-manager/index.d.ts +6 -6
  204. package/dist/peer-connection-manager/index.js +87 -87
  205. package/dist/peer-connection-manager/index.js.map +1 -1
  206. package/dist/peer-connection-manager/util.d.ts +6 -6
  207. package/dist/peer-connection-manager/util.js +9 -9
  208. package/dist/peer-connection-manager/util.js.map +1 -1
  209. package/dist/personal-meeting-room/index.d.ts +47 -47
  210. package/dist/personal-meeting-room/index.js +67 -67
  211. package/dist/personal-meeting-room/index.js.map +1 -1
  212. package/dist/personal-meeting-room/request.d.ts +14 -14
  213. package/dist/personal-meeting-room/request.js +7 -7
  214. package/dist/personal-meeting-room/request.js.map +1 -1
  215. package/dist/personal-meeting-room/util.d.ts +2 -2
  216. package/dist/personal-meeting-room/util.js.map +1 -1
  217. package/dist/reachability/index.d.ts +139 -139
  218. package/dist/reachability/index.js +110 -110
  219. package/dist/reachability/index.js.map +1 -1
  220. package/dist/reachability/request.d.ts +35 -35
  221. package/dist/reachability/request.js +15 -15
  222. package/dist/reachability/request.js.map +1 -1
  223. package/dist/reactions/reactions.d.ts +4 -4
  224. package/dist/reactions/reactions.js.map +1 -1
  225. package/dist/reactions/reactions.type.d.ts +32 -32
  226. package/dist/reactions/reactions.type.js.map +1 -1
  227. package/dist/reconnection-manager/index.d.ts +112 -112
  228. package/dist/reconnection-manager/index.js +112 -112
  229. package/dist/reconnection-manager/index.js.map +1 -1
  230. package/dist/recording-controller/enums.d.ts +7 -7
  231. package/dist/recording-controller/enums.js.map +1 -1
  232. package/dist/recording-controller/index.d.ts +193 -193
  233. package/dist/recording-controller/index.js +127 -127
  234. package/dist/recording-controller/index.js.map +1 -1
  235. package/dist/recording-controller/util.d.ts +13 -13
  236. package/dist/recording-controller/util.js.map +1 -1
  237. package/dist/roap/collection.d.ts +10 -10
  238. package/dist/roap/collection.js.map +1 -1
  239. package/dist/roap/handler.d.ts +47 -47
  240. package/dist/roap/handler.js +27 -27
  241. package/dist/roap/handler.js.map +1 -1
  242. package/dist/roap/index.d.ts +116 -116
  243. package/dist/roap/index.js +111 -111
  244. package/dist/roap/index.js.map +1 -1
  245. package/dist/roap/request.d.ts +35 -35
  246. package/dist/roap/request.js +17 -17
  247. package/dist/roap/request.js.map +1 -1
  248. package/dist/roap/state.d.ts +9 -9
  249. package/dist/roap/state.js +14 -14
  250. package/dist/roap/state.js.map +1 -1
  251. package/dist/roap/turnDiscovery.d.ts +67 -67
  252. package/dist/roap/turnDiscovery.js +46 -46
  253. package/dist/roap/turnDiscovery.js.map +1 -1
  254. package/dist/roap/util.d.ts +2 -2
  255. package/dist/roap/util.js.map +1 -1
  256. package/dist/statsAnalyzer/global.d.ts +118 -126
  257. package/dist/statsAnalyzer/global.js +4 -12
  258. package/dist/statsAnalyzer/global.js.map +1 -1
  259. package/dist/statsAnalyzer/index.d.ts +193 -190
  260. package/dist/statsAnalyzer/index.js +182 -140
  261. package/dist/statsAnalyzer/index.js.map +1 -1
  262. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -22
  263. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  264. package/dist/transcription/index.d.ts +64 -64
  265. package/dist/transcription/index.js +42 -42
  266. package/dist/transcription/index.js.map +1 -1
  267. package/internal-README.md +172 -172
  268. package/jest.config.js +3 -3
  269. package/package.json +21 -22
  270. package/process +1 -1
  271. package/src/common/browser-detection.ts +39 -39
  272. package/src/common/collection.ts +94 -94
  273. package/src/common/config.ts +9 -9
  274. package/src/common/errors/captcha-error.ts +25 -25
  275. package/src/common/errors/intent-to-join.ts +27 -27
  276. package/src/common/errors/join-meeting.ts +32 -32
  277. package/src/common/errors/media.ts +25 -25
  278. package/src/common/errors/parameter.ts +33 -33
  279. package/src/common/errors/password-error.ts +25 -25
  280. package/src/common/errors/permission.ts +24 -24
  281. package/src/common/errors/reconnection-in-progress.ts +8 -8
  282. package/src/common/errors/reconnection.ts +25 -25
  283. package/src/common/errors/stats.ts +25 -25
  284. package/src/common/errors/webex-errors.ts +140 -140
  285. package/src/common/errors/webex-meetings-error.ts +35 -35
  286. package/src/common/events/events-scope.ts +30 -30
  287. package/src/common/events/events.ts +25 -25
  288. package/src/common/events/trigger-proxy.ts +25 -25
  289. package/src/common/events/util.ts +39 -39
  290. package/src/common/logs/logger-config.ts +8 -8
  291. package/src/common/logs/logger-proxy.ts +44 -44
  292. package/src/common/logs/request.ts +65 -65
  293. package/src/common/queue.ts +50 -50
  294. package/src/config.ts +96 -96
  295. package/src/constants.ts +1123 -1121
  296. package/src/controls-options-manager/constants.ts +5 -5
  297. package/src/controls-options-manager/enums.ts +6 -6
  298. package/src/controls-options-manager/index.ts +183 -183
  299. package/src/controls-options-manager/util.ts +20 -20
  300. package/src/index.js +15 -15
  301. package/src/locus-info/controlsUtils.ts +112 -112
  302. package/src/locus-info/embeddedAppsUtils.ts +57 -57
  303. package/src/locus-info/fullState.ts +69 -69
  304. package/src/locus-info/hostUtils.ts +60 -60
  305. package/src/locus-info/index.ts +1303 -1303
  306. package/src/locus-info/infoUtils.ts +101 -101
  307. package/src/locus-info/mediaSharesUtils.ts +173 -173
  308. package/src/locus-info/parser.ts +680 -680
  309. package/src/locus-info/selfUtils.ts +428 -428
  310. package/src/media/index.ts +675 -675
  311. package/src/media/properties.ts +313 -313
  312. package/src/media/util.ts +37 -37
  313. package/src/mediaQualityMetrics/config.ts +382 -382
  314. package/src/meeting/effectsState.ts +209 -209
  315. package/src/meeting/in-meeting-actions.ts +153 -153
  316. package/src/meeting/index.ts +6572 -6537
  317. package/src/meeting/muteState.ts +365 -365
  318. package/src/meeting/request.ts +810 -810
  319. package/src/meeting/state.ts +194 -194
  320. package/src/meeting/util.ts +530 -530
  321. package/src/meeting-info/collection.ts +41 -41
  322. package/src/meeting-info/index.ts +137 -137
  323. package/src/meeting-info/meeting-info-v2.ts +273 -273
  324. package/src/meeting-info/request.ts +46 -46
  325. package/src/meeting-info/util.ts +314 -314
  326. package/src/meeting-info/utilv2.ts +324 -324
  327. package/src/meetings/collection.ts +43 -43
  328. package/src/meetings/index.ts +1128 -1128
  329. package/src/meetings/request.ts +81 -81
  330. package/src/meetings/util.ts +181 -181
  331. package/src/member/index.ts +446 -446
  332. package/src/member/member.types.ts +13 -13
  333. package/src/member/util.ts +286 -286
  334. package/src/members/collection.ts +40 -40
  335. package/src/members/index.ts +900 -900
  336. package/src/members/request.ts +175 -175
  337. package/src/members/util.ts +260 -260
  338. package/src/metrics/config.ts +485 -485
  339. package/src/metrics/constants.ts +63 -61
  340. package/src/metrics/index.ts +543 -543
  341. package/src/networkQualityMonitor/index.ts +211 -211
  342. package/src/peer-connection-manager/index.ts +847 -847
  343. package/src/peer-connection-manager/util.ts +119 -119
  344. package/src/personal-meeting-room/index.ts +157 -157
  345. package/src/personal-meeting-room/request.ts +48 -48
  346. package/src/personal-meeting-room/util.ts +49 -49
  347. package/src/reachability/index.ts +478 -478
  348. package/src/reachability/request.ts +81 -81
  349. package/src/reactions/reactions.ts +104 -104
  350. package/src/reactions/reactions.type.ts +36 -36
  351. package/src/reconnection-manager/index.ts +622 -622
  352. package/src/recording-controller/enums.ts +8 -8
  353. package/src/recording-controller/index.ts +315 -315
  354. package/src/recording-controller/util.ts +58 -58
  355. package/src/roap/collection.ts +62 -62
  356. package/src/roap/handler.ts +294 -294
  357. package/src/roap/index.ts +413 -413
  358. package/src/roap/request.ts +229 -229
  359. package/src/roap/state.ts +156 -156
  360. package/src/roap/turnDiscovery.ts +283 -283
  361. package/src/roap/util.ts +100 -100
  362. package/src/statsAnalyzer/global.ts +120 -128
  363. package/src/statsAnalyzer/index.ts +1329 -1266
  364. package/src/statsAnalyzer/mqaUtil.ts +290 -290
  365. package/src/transcription/index.ts +154 -154
  366. package/test/integration/spec/journey.js +941 -941
  367. package/test/integration/spec/space-meeting.js +457 -457
  368. package/test/integration/spec/transcription.js +55 -55
  369. package/test/unit/spec/common/browser-detection.js +119 -119
  370. package/test/unit/spec/common/queue.js +69 -69
  371. package/test/unit/spec/controls-options-manager/index.js +123 -123
  372. package/test/unit/spec/controls-options-manager/util.js +65 -65
  373. package/test/unit/spec/fixture/locus.js +406 -406
  374. package/test/unit/spec/locus-info/controlsUtils.js +82 -82
  375. package/test/unit/spec/locus-info/embeddedAppsUtils.js +104 -104
  376. package/test/unit/spec/locus-info/index.js +1272 -1272
  377. package/test/unit/spec/locus-info/infoUtils.js +138 -138
  378. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +975 -975
  379. package/test/unit/spec/locus-info/lib/SeqCmp.json +522 -522
  380. package/test/unit/spec/locus-info/lib/selfConstant.js +286 -286
  381. package/test/unit/spec/locus-info/parser.js +298 -298
  382. package/test/unit/spec/locus-info/selfUtils.js +185 -185
  383. package/test/unit/spec/media/properties.ts +305 -305
  384. package/test/unit/spec/meeting/effectsState.js +281 -281
  385. package/test/unit/spec/meeting/in-meeting-actions.ts +90 -90
  386. package/test/unit/spec/meeting/index.js +5298 -5227
  387. package/test/unit/spec/meeting/muteState.js +430 -430
  388. package/test/unit/spec/meeting/request.js +317 -317
  389. package/test/unit/spec/meeting/utils.js +319 -319
  390. package/test/unit/spec/meeting-info/meetinginfov2.js +376 -376
  391. package/test/unit/spec/meeting-info/request.js +64 -64
  392. package/test/unit/spec/meeting-info/util.js +37 -37
  393. package/test/unit/spec/meeting-info/utilv2.js +330 -330
  394. package/test/unit/spec/meetings/collection.js +52 -52
  395. package/test/unit/spec/meetings/index.js +1375 -1375
  396. package/test/unit/spec/meetings/utils.js +66 -66
  397. package/test/unit/spec/member/index.js +47 -47
  398. package/test/unit/spec/member/util.js +80 -80
  399. package/test/unit/spec/members/index.js +364 -364
  400. package/test/unit/spec/members/request.js +200 -200
  401. package/test/unit/spec/members/utils.js +42 -42
  402. package/test/unit/spec/metrics/index.js +111 -111
  403. package/test/unit/spec/networkQualityMonitor/index.js +99 -99
  404. package/test/unit/spec/peerconnection-manager/index.js +218 -218
  405. package/test/unit/spec/peerconnection-manager/utils.js +49 -49
  406. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -388
  407. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +29 -29
  408. package/test/unit/spec/reachability/index.ts +50 -50
  409. package/test/unit/spec/reconnection-manager/index.js +206 -206
  410. package/test/unit/spec/recording-controller/index.js +230 -230
  411. package/test/unit/spec/recording-controller/util.js +101 -101
  412. package/test/unit/spec/roap/index.ts +128 -128
  413. package/test/unit/spec/roap/turnDiscovery.ts +372 -372
  414. package/test/unit/spec/roap/util.js +30 -30
  415. package/test/unit/spec/stats-analyzer/index.js +438 -287
  416. package/test/utils/cmr.js +104 -104
  417. package/test/utils/testUtils.js +287 -287
  418. package/test/utils/webex-config.js +77 -77
  419. package/test/utils/webex-test-users.js +82 -82
  420. package/tsconfig.json +5 -5
@@ -102,313 +102,313 @@ var MEDIA_UPDATE_TYPE = {
102
102
  SHARE: 'SHARE'
103
103
  };
104
104
 
105
- /**
106
- * MediaDirection
107
- * @typedef {Object} MediaDirection
108
- * @property {boolean} sendAudio
109
- * @property {boolean} receiveAudio
110
- * @property {boolean} sendVideo
111
- * @property {boolean} receiveVideo
112
- * @property {boolean} sendShare
113
- * @property {boolean} receiveShare
114
- * @property {boolean} isSharing
105
+ /**
106
+ * MediaDirection
107
+ * @typedef {Object} MediaDirection
108
+ * @property {boolean} sendAudio
109
+ * @property {boolean} receiveAudio
110
+ * @property {boolean} sendVideo
111
+ * @property {boolean} receiveVideo
112
+ * @property {boolean} sendShare
113
+ * @property {boolean} receiveShare
114
+ * @property {boolean} isSharing
115
115
  */
116
116
 
117
- /**
118
- * AudioVideo
119
- * @typedef {Object} AudioVideo
120
- * @property {Object} audio
121
- * @property {String} audio.deviceId
122
- * @property {Object} video
123
- * @property {String} video.deviceId
124
- * @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
117
+ /**
118
+ * AudioVideo
119
+ * @typedef {Object} AudioVideo
120
+ * @property {Object} audio
121
+ * @property {String} audio.deviceId
122
+ * @property {Object} video
123
+ * @property {String} video.deviceId
124
+ * @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
125
125
  */
126
126
 
127
- /**
128
- * SharePreferences
129
- * @typedef {Object} SharePreferences
130
- * @property {Object} [shareConstraints]
131
- * @property {Boolean} [highFrameRate]
127
+ /**
128
+ * SharePreferences
129
+ * @typedef {Object} SharePreferences
130
+ * @property {Object} [shareConstraints]
131
+ * @property {Boolean} [highFrameRate]
132
132
  */
133
133
 
134
- /**
135
- * JoinOptions
136
- * @typedef {Object} JoinOptions
137
- * @property {String} [resourceId]
138
- * @property {String} [pin]
139
- * @property {Boolean} [moderator]
140
- * @property {String|Object} [meetingQuality]
141
- * @property {String} [meetingQuality.local]
142
- * @property {String} [meetingQuality.remote]
143
- * @property {Boolean} [rejoin]
134
+ /**
135
+ * JoinOptions
136
+ * @typedef {Object} JoinOptions
137
+ * @property {String} [resourceId]
138
+ * @property {String} [pin]
139
+ * @property {Boolean} [moderator]
140
+ * @property {String|Object} [meetingQuality]
141
+ * @property {String} [meetingQuality.local]
142
+ * @property {String} [meetingQuality.remote]
143
+ * @property {Boolean} [rejoin]
144
144
  */
145
145
 
146
- /**
147
- * SendOptions
148
- * @typedef {Object} SendOptions
149
- * @property {Boolean} sendAudio
150
- * @property {Boolean} sendVideo
151
- * @property {Boolean} sendShare
146
+ /**
147
+ * SendOptions
148
+ * @typedef {Object} SendOptions
149
+ * @property {Boolean} sendAudio
150
+ * @property {Boolean} sendVideo
151
+ * @property {Boolean} sendShare
152
152
  */
153
153
 
154
- /**
155
- * Recording
156
- * @typedef {Object} Recording
157
- * @property {Object} state
158
- * @property {String} modifiedBy
154
+ /**
155
+ * Recording
156
+ * @typedef {Object} Recording
157
+ * @property {Object} state
158
+ * @property {String} modifiedBy
159
159
  */
160
160
 
161
- /**
162
- * Meeting State Change Event
163
- * Emitted when ever there is a meeting state change
164
- * @event meeting:stateChange
165
- * @instance
166
- * @type {Object}
167
- * @property {String} currentState current state of the meeting
168
- * @property {String} previousState previous state of the meeting
169
- * @memberof Meeting
161
+ /**
162
+ * Meeting State Change Event
163
+ * Emitted when ever there is a meeting state change
164
+ * @event meeting:stateChange
165
+ * @instance
166
+ * @type {Object}
167
+ * @property {String} currentState current state of the meeting
168
+ * @property {String} previousState previous state of the meeting
169
+ * @memberof Meeting
170
170
  */
171
171
 
172
- /**
173
- * Media Ready Event
174
- * Emitted when a stream is ready to be rendered
175
- * @event media:ready
176
- * @instance
177
- * @type {Object}
178
- * @property {MediaStream} stream the media stream
179
- * @property {String} type what type of stream, remote, local
180
- * @memberof Meeting
172
+ /**
173
+ * Media Ready Event
174
+ * Emitted when a stream is ready to be rendered
175
+ * @event media:ready
176
+ * @instance
177
+ * @type {Object}
178
+ * @property {MediaStream} stream the media stream
179
+ * @property {String} type what type of stream, remote, local
180
+ * @memberof Meeting
181
181
  */
182
182
 
183
- /**
184
- * Media Stopped Event
185
- * Emitted when a stream has stopped sending
186
- * @event media:stopped
187
- * @instance
188
- * @type {Object}
189
- * @property {String} type what type of stream, remote, local
190
- * @memberof Meeting
183
+ /**
184
+ * Media Stopped Event
185
+ * Emitted when a stream has stopped sending
186
+ * @event media:stopped
187
+ * @instance
188
+ * @type {Object}
189
+ * @property {String} type what type of stream, remote, local
190
+ * @memberof Meeting
191
191
  */
192
192
 
193
- /**
194
- * Meeting Ringing Event
195
- * Emitted when this client should play a ringing sound, because this member is getting an incoming meeting
196
- * or sending out an incoming meeting
197
- * @event meeting:ringing
198
- * @instance
199
- * @type {Object}
200
- * @property {String} type // INCOMING or JOIN
201
- * @property {String} id
202
- * @memberof Meeting
193
+ /**
194
+ * Meeting Ringing Event
195
+ * Emitted when this client should play a ringing sound, because this member is getting an incoming meeting
196
+ * or sending out an incoming meeting
197
+ * @event meeting:ringing
198
+ * @instance
199
+ * @type {Object}
200
+ * @property {String} type // INCOMING or JOIN
201
+ * @property {String} id
202
+ * @memberof Meeting
203
203
  */
204
204
 
205
- /**
206
- * Meeting Ringing Stop Event
207
- * Emitted when this client should stop playing a ringing sound
208
- * @event meeting:ringingStop
209
- * @instance
210
- * @type {Object}
211
- * @property {Object} type
212
- * @property {Boolean} type.remoteAnswered
213
- * @property {Boolean} type.remoteDeclined
214
- * @property {String} id
215
- * @memberof Meeting
205
+ /**
206
+ * Meeting Ringing Stop Event
207
+ * Emitted when this client should stop playing a ringing sound
208
+ * @event meeting:ringingStop
209
+ * @instance
210
+ * @type {Object}
211
+ * @property {Object} type
212
+ * @property {Boolean} type.remoteAnswered
213
+ * @property {Boolean} type.remoteDeclined
214
+ * @property {String} id
215
+ * @memberof Meeting
216
216
  */
217
217
 
218
- /**
219
- * Meeting Started Sharing Local Event
220
- * Emitted when this member starts sharing
221
- * @event meeting:startedSharingLocal
222
- * @instance
223
- * @type {Object}
224
- * @memberof Meeting
218
+ /**
219
+ * Meeting Started Sharing Local Event
220
+ * Emitted when this member starts sharing
221
+ * @event meeting:startedSharingLocal
222
+ * @instance
223
+ * @type {Object}
224
+ * @memberof Meeting
225
225
  */
226
226
 
227
- /**
228
- * Meeting Stopped Sharing Local Event
229
- * Emitted when this member stops sharing
230
- * @event meeting:stoppedSharingLocal
231
- * @instance
232
- * @type {Object}
233
- * @memberof Meeting
227
+ /**
228
+ * Meeting Stopped Sharing Local Event
229
+ * Emitted when this member stops sharing
230
+ * @event meeting:stoppedSharingLocal
231
+ * @instance
232
+ * @type {Object}
233
+ * @memberof Meeting
234
234
  */
235
235
 
236
- /**
237
- * Meeting Started Sharing Remote Event
238
- * Emitted when remote sharing starts
239
- * @event meeting:startedSharingRemote
240
- * @instance
241
- * @type {Object}
242
- * @property {Boolean} memberId id of the meeting member that started screen share
243
- * @memberof Meeting
236
+ /**
237
+ * Meeting Started Sharing Remote Event
238
+ * Emitted when remote sharing starts
239
+ * @event meeting:startedSharingRemote
240
+ * @instance
241
+ * @type {Object}
242
+ * @property {Boolean} memberId id of the meeting member that started screen share
243
+ * @memberof Meeting
244
244
  */
245
245
 
246
- /**
247
- * Meeting Stopped Sharing Remote Event
248
- * Emitted when remote screen sharing ends
249
- * @event meeting:stoppedSharingRemote
250
- * @instance
251
- * @type {Object}
252
- * @memberof Meeting
246
+ /**
247
+ * Meeting Stopped Sharing Remote Event
248
+ * Emitted when remote screen sharing ends
249
+ * @event meeting:stoppedSharingRemote
250
+ * @instance
251
+ * @type {Object}
252
+ * @memberof Meeting
253
253
  */
254
254
 
255
- /**
256
- * Meeting Locked Event
257
- * Emitted when a meeting is locked
258
- * @event meeting:locked
259
- * @instance
260
- * @type {Object}
261
- * @property {Object} info
262
- * @memberof Meeting
255
+ /**
256
+ * Meeting Locked Event
257
+ * Emitted when a meeting is locked
258
+ * @event meeting:locked
259
+ * @instance
260
+ * @type {Object}
261
+ * @property {Object} info
262
+ * @memberof Meeting
263
263
  */
264
264
 
265
- /**
266
- * Meeting Unlocked Event
267
- * Emitted when a meeting is unlocked
268
- * @event meeting:unlocked
269
- * @instance
270
- * @type {Object}
271
- * @property {Object} info
272
- * @memberof Meeting
265
+ /**
266
+ * Meeting Unlocked Event
267
+ * Emitted when a meeting is unlocked
268
+ * @event meeting:unlocked
269
+ * @instance
270
+ * @type {Object}
271
+ * @property {Object} info
272
+ * @memberof Meeting
273
273
  */
274
274
 
275
- /**
276
- * Meeting Actions Update Event
277
- * Emitted when a user can take actions on a meeting such as lock, unlock, assign host
278
- * @event meeting:actionsUpdate
279
- * @instance
280
- * @type {Object}
281
- * @property {Boolean} canLock
282
- * @property {Boolean} canUnlock
283
- * @property {Boolean} canAssignHost
284
- * @memberof Meeting
275
+ /**
276
+ * Meeting Actions Update Event
277
+ * Emitted when a user can take actions on a meeting such as lock, unlock, assign host
278
+ * @event meeting:actionsUpdate
279
+ * @instance
280
+ * @type {Object}
281
+ * @property {Boolean} canLock
282
+ * @property {Boolean} canUnlock
283
+ * @property {Boolean} canAssignHost
284
+ * @memberof Meeting
285
285
  */
286
286
 
287
- /**
288
- * Meeting Unmuted By Others Event
289
- * Emitted when a member is unmuted by another member
290
- * @event meeting:self:unmutedByOthers
291
- * @instance
292
- * @type {Object}
293
- * @property {Object} payload
294
- * @memberof Meeting
287
+ /**
288
+ * Meeting Unmuted By Others Event
289
+ * Emitted when a member is unmuted by another member
290
+ * @event meeting:self:unmutedByOthers
291
+ * @instance
292
+ * @type {Object}
293
+ * @property {Object} payload
294
+ * @memberof Meeting
295
295
  */
296
296
 
297
- /**
298
- * Meeting Muted By Others Event
299
- * Emitted when a member is muted by another member
300
- * @event meeting:self:mutedByOthers
301
- * @instance
302
- * @type {Object}
303
- * @property {Object} payload
304
- * @property {Boolean} payload.unmuteAllowed - whether the user is allowed to unmute self
305
- * @memberof Meeting
297
+ /**
298
+ * Meeting Muted By Others Event
299
+ * Emitted when a member is muted by another member
300
+ * @event meeting:self:mutedByOthers
301
+ * @instance
302
+ * @type {Object}
303
+ * @property {Object} payload
304
+ * @property {Boolean} payload.unmuteAllowed - whether the user is allowed to unmute self
305
+ * @memberof Meeting
306
306
  */
307
307
 
308
- /**
309
- * Meeting Muted By Others Event
310
- * Emitted when the host(moderator)/co-host requests a user to unmute
311
- * @event meeting:self:requestedToUnmute
312
- * @instance
313
- * @type {Object}
314
- * @property {Object} payload
315
- * @memberof Meeting
308
+ /**
309
+ * Meeting Muted By Others Event
310
+ * Emitted when the host(moderator)/co-host requests a user to unmute
311
+ * @event meeting:self:requestedToUnmute
312
+ * @instance
313
+ * @type {Object}
314
+ * @property {Object} payload
315
+ * @memberof Meeting
316
316
  */
317
317
 
318
- /**
319
- * Meeting Self Guest Admitted Event
320
- * Emitted when a joined user get admitted to the meeting by another member or host
321
- * @event meeting:self:guestAdmitted
322
- * @instance
323
- * @type {Object}
324
- * @property {Object} payload
325
- * @memberof Meeting
318
+ /**
319
+ * Meeting Self Guest Admitted Event
320
+ * Emitted when a joined user get admitted to the meeting by another member or host
321
+ * @event meeting:self:guestAdmitted
322
+ * @instance
323
+ * @type {Object}
324
+ * @property {Object} payload
325
+ * @memberof Meeting
326
326
  */
327
327
 
328
- /**
329
- * Meeting Self Lobby Waiting Event
330
- * Emitted when joined user enters the lobby and is waiting for the webex meeting to begin
331
- * @event meeting:self:lobbyWaiting
332
- * @instance
333
- * @type {Object}
334
- * @property {Object} reason Reason why user left the meeting
335
- * @memberof Meeting
328
+ /**
329
+ * Meeting Self Lobby Waiting Event
330
+ * Emitted when joined user enters the lobby and is waiting for the webex meeting to begin
331
+ * @event meeting:self:lobbyWaiting
332
+ * @instance
333
+ * @type {Object}
334
+ * @property {Object} reason Reason why user left the meeting
335
+ * @memberof Meeting
336
336
  */
337
337
 
338
- /**
339
- * Meeting Self Left State
340
- * Emitted when user is inactive for more then 40 seconds, User can rejoin the meeting again
341
- * @event meeting:self:left
342
- * @instance
343
- * @type {Object}
344
- * @property {Object} payload
345
- * @memberof Meeting
338
+ /**
339
+ * Meeting Self Left State
340
+ * Emitted when user is inactive for more then 40 seconds, User can rejoin the meeting again
341
+ * @event meeting:self:left
342
+ * @instance
343
+ * @type {Object}
344
+ * @property {Object} payload
345
+ * @memberof Meeting
346
346
  */
347
347
 
348
- /**
349
- * Reconnection Starting Event
350
- * Emitted when reconnection of media to the active meeting was successful
351
- * @event meeting:reconnectionStarting
352
- * @instance
353
- * @memberof Meeting
348
+ /**
349
+ * Reconnection Starting Event
350
+ * Emitted when reconnection of media to the active meeting was successful
351
+ * @event meeting:reconnectionStarting
352
+ * @instance
353
+ * @memberof Meeting
354
354
  */
355
355
 
356
- /**
357
- * Reconnection Success Event
358
- * Emitted when reconnection of media to the active meeting was successful
359
- * @event meeting:reconnectionSuccess
360
- * @instance
361
- * @type {Object}
362
- * @property {Object} reconnect
363
- * @memberof Meeting
356
+ /**
357
+ * Reconnection Success Event
358
+ * Emitted when reconnection of media to the active meeting was successful
359
+ * @event meeting:reconnectionSuccess
360
+ * @instance
361
+ * @type {Object}
362
+ * @property {Object} reconnect
363
+ * @memberof Meeting
364
364
  */
365
365
 
366
- /**
367
- * Reconnection Failure Event
368
- * Emitted when reconnection of media to the active meeting was successful
369
- * @event meeting:reconnectionFailure
370
- * @instance
371
- * @type {Object}
372
- * @property {Error} error
373
- * @memberof Meeting
366
+ /**
367
+ * Reconnection Failure Event
368
+ * Emitted when reconnection of media to the active meeting was successful
369
+ * @event meeting:reconnectionFailure
370
+ * @instance
371
+ * @type {Object}
372
+ * @property {Error} error
373
+ * @memberof Meeting
374
374
  */
375
375
 
376
- /**
377
- * Meeting network quality event
378
- * Emitted on each interval of retrieving stats Analyzer data
379
- * @event network:quality
380
- * @type {Object}
381
- * @property {string} mediaType {video|audio}
382
- * @property {number} networkQualityScore - {1|0} 1 indicates acceptable uplink 0 indicates unacceptable uplink based on threshold
383
- * @memberof Meeting
376
+ /**
377
+ * Meeting network quality event
378
+ * Emitted on each interval of retrieving stats Analyzer data
379
+ * @event network:quality
380
+ * @type {Object}
381
+ * @property {string} mediaType {video|audio}
382
+ * @property {number} networkQualityScore - {1|0} 1 indicates acceptable uplink 0 indicates unacceptable uplink based on threshold
383
+ * @memberof Meeting
384
384
  */
385
385
 
386
- /**
387
- * @description Meeting is the crux of the plugin
388
- * @export
389
- * @class Meeting
386
+ /**
387
+ * @description Meeting is the crux of the plugin
388
+ * @export
389
+ * @class Meeting
390
390
  */
391
391
  exports.MEDIA_UPDATE_TYPE = MEDIA_UPDATE_TYPE;
392
392
  var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
393
393
  (0, _inherits2.default)(Meeting, _StatelessWebexPlugin);
394
394
  var _super = _createSuper(Meeting);
395
- /**
396
- * @param {Object} attrs
397
- * @param {Object} options
398
- * @constructor
399
- * @memberof Meeting
395
+ /**
396
+ * @param {Object} attrs
397
+ * @param {Object} options
398
+ * @constructor
399
+ * @memberof Meeting
400
400
  */
401
401
  function Meeting(attrs, _options) {
402
402
  var _this$locusInfo, _this$locusInfo$links, _this$locusInfo$links2, _this$locusInfo$links3, _this$locusInfo2, _this$locusInfo2$full, _this$locusInfo3, _this$locusInfo4;
403
403
  var _this;
404
404
  (0, _classCallCheck2.default)(this, Meeting);
405
405
  _this = _super.call(this, {}, _options);
406
- /**
407
- * @instance
408
- * @type {Object}
409
- * @readonly
410
- * @private
411
- * @memberof Meeting
406
+ /**
407
+ * @instance
408
+ * @type {Object}
409
+ * @readonly
410
+ * @private
411
+ * @memberof Meeting
412
412
  */
413
413
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "attrs", void 0);
414
414
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "audio", void 0);
@@ -488,15 +488,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
488
488
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
489
489
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
490
490
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
491
- /**
492
- * Get local media streams based on options passed
493
- * @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
494
- * @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
495
- * @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
496
- * @returns {Promise} see #Media.getUserMedia
497
- * @public
498
- * @todo should be static, or moved so can be called outside of a meeting
499
- * @memberof Meeting
491
+ /**
492
+ * Get local media streams based on options passed
493
+ * @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
494
+ * @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
495
+ * @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
496
+ * @returns {Promise} see #Media.getUserMedia
497
+ * @public
498
+ * @todo should be static, or moved so can be called outside of a meeting
499
+ * @memberof Meeting
500
500
  */
501
501
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "getMediaStreams", function (mediaDirection) {
502
502
  var audioVideo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.VIDEO_RESOLUTIONS[_this.mediaProperties.localQualityLevel];
@@ -577,13 +577,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
577
577
  }
578
578
  return _promise.default.reject(new _media2.default('At least one of the mediaDirection value should be true'));
579
579
  });
580
- /**
581
- * Checks if the machine has at least one audio or video device
582
- * @param {Object} options
583
- * @param {Boolean} options.sendAudio
584
- * @param {Boolean} options.sendVideo
585
- * @returns {Object}
586
- * @memberof Meetings
580
+ /**
581
+ * Checks if the machine has at least one audio or video device
582
+ * @param {Object} options
583
+ * @param {Boolean} options.sendAudio
584
+ * @param {Boolean} options.sendVideo
585
+ * @returns {Object}
586
+ * @memberof Meetings
587
587
  */
588
588
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "getSupportedDevices", function (_ref3) {
589
589
  var _ref3$sendAudio = _ref3.sendAudio,
@@ -595,19 +595,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
595
595
  sendVideo: sendVideo
596
596
  });
597
597
  });
598
- /**
599
- * Get the devices from the Media module
600
- * @returns {Promise} resolves to an array of DeviceInfo
601
- * @memberof Meetings
598
+ /**
599
+ * Get the devices from the Media module
600
+ * @returns {Promise} resolves to an array of DeviceInfo
601
+ * @memberof Meetings
602
602
  */
603
603
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "getDevices", function () {
604
604
  return _media.default.getDevices();
605
605
  });
606
- /**
607
- * Registers for all required StatsAnalyzer events
608
- * @private
609
- * @returns {void}
610
- * @memberof Meetings
606
+ /**
607
+ * Registers for all required StatsAnalyzer events
608
+ * @private
609
+ * @returns {void}
610
+ * @memberof Meetings
611
611
  */
612
612
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "setupStatsAnalyzerEventHandlers", function () {
613
613
  _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.MEDIA_QUALITY, function (options) {
@@ -671,12 +671,29 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
671
671
  }
672
672
  });
673
673
  });
674
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_VIDEO_ENCODED, function (data) {
675
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_VIDEO_ENCODED);
676
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
677
+ file: 'meeting/index',
678
+ function: 'compareLastStatsResult'
679
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_VIDEO_ENCODED, data);
680
+ });
681
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_FRAMES_SENT, function (data) {
682
+ var _this$mediaProperties, _this$mediaProperties2;
683
+ if ((_this$mediaProperties = _this.mediaProperties.mediaDirection) !== null && _this$mediaProperties !== void 0 && _this$mediaProperties.sendVideo && data.mediaType === 'video' || (_this$mediaProperties2 = _this.mediaProperties.mediaDirection) !== null && _this$mediaProperties2 !== void 0 && _this$mediaProperties2.sendShare && data.mediaType === 'share') {
684
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_FRAMES_SENT);
685
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
686
+ file: 'meeting/index',
687
+ function: 'compareLastStatsResult'
688
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_FRAMES_SENT, data);
689
+ }
690
+ });
674
691
  });
675
- /**
676
- * emits event when the negotation is completed
677
- * @returns {void}
678
- * @private
679
- * @memberof Meeting
692
+ /**
693
+ * emits event when the negotation is completed
694
+ * @returns {void}
695
+ * @private
696
+ * @memberof Meeting
680
697
  */
681
698
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaNegotiatedEvent", function () {
682
699
  // @ts-ignore - config coming from registerPlugin
@@ -688,12 +705,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
688
705
  }, _constants.EVENT_TRIGGERS.MEDIA_NEGOTIATED);
689
706
  }
690
707
  });
691
- /**
692
- * Checks if there are any queued media updates and runs the first one from
693
- * the queue if we are in a state that allows doing that.
694
- * @returns {undefined}
695
- * @public
696
- * @memberof Meeting
708
+ /**
709
+ * Checks if there are any queued media updates and runs the first one from
710
+ * the queue if we are in a state that allows doing that.
711
+ * @returns {undefined}
712
+ * @public
713
+ * @memberof Meeting
697
714
  */
698
715
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "processNextQueuedMediaUpdate", function () {
699
716
  if (_this.canUpdateMedia() && _this.queuedMediaUpdates.length > 0) {
@@ -722,11 +739,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
722
739
  }
723
740
  }
724
741
  });
725
- /**
726
- * clear the meeting data
727
- * @returns {undefined}
728
- * @public
729
- * @memberof Meeting
742
+ /**
743
+ * clear the meeting data
744
+ * @returns {undefined}
745
+ * @public
746
+ * @memberof Meeting
730
747
  */
731
748
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "clearMeetingData", function () {
732
749
  _this.audio = null;
@@ -742,11 +759,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
742
759
  _this.transcription = undefined;
743
760
  }
744
761
  });
745
- /**
746
- * starts keepAlives being sent
747
- * @returns {void}
748
- * @private
749
- * @memberof Meeting
762
+ /**
763
+ * starts keepAlives being sent
764
+ * @returns {void}
765
+ * @private
766
+ * @memberof Meeting
750
767
  */
751
768
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "startKeepAlive", function () {
752
769
  var _this$joinedWith, _this$joinedWith2;
@@ -778,11 +795,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
778
795
  });
779
796
  }, keepAliveInterval);
780
797
  });
781
- /**
782
- * stops keepAlives being sent
783
- * @returns {void}
784
- * @private
785
- * @memberof Meeting
798
+ /**
799
+ * stops keepAlives being sent
800
+ * @returns {void}
801
+ * @private
802
+ * @memberof Meeting
786
803
  */
787
804
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "stopKeepAlive", function () {
788
805
  if (!_this.keepAliveTimerId) {
@@ -792,87 +809,87 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
792
809
  _this.keepAliveTimerId = null;
793
810
  });
794
811
  _this.attrs = attrs;
795
- /**
796
- * @instance
797
- * @type {Object}
798
- * @readonly
799
- * @private
800
- * @memberof Meeting
812
+ /**
813
+ * @instance
814
+ * @type {Object}
815
+ * @readonly
816
+ * @private
817
+ * @memberof Meeting
801
818
  */
802
819
  _this.options = _options;
803
- /**
804
- * @instance
805
- * @type {String}
806
- * @readonly
807
- * @public
808
- * @memberof Meeting
820
+ /**
821
+ * @instance
822
+ * @type {String}
823
+ * @readonly
824
+ * @public
825
+ * @memberof Meeting
809
826
  */
810
827
  _this.id = _uuid.default.v4();
811
- /**
812
- * Correlation ID used for network tracking of meeting join
813
- * @instance
814
- * @type {String}
815
- * @readonly
816
- * @public
817
- * @memberof Meeting
828
+ /**
829
+ * Correlation ID used for network tracking of meeting join
830
+ * @instance
831
+ * @type {String}
832
+ * @readonly
833
+ * @public
834
+ * @memberof Meeting
818
835
  */
819
836
  _this.correlationId = _this.id;
820
- /**
821
- * @instance
822
- * @type {String}
823
- * @readonly
824
- * @public
825
- * @memberof Meeting
837
+ /**
838
+ * @instance
839
+ * @type {String}
840
+ * @readonly
841
+ * @public
842
+ * @memberof Meeting
826
843
  */
827
844
  _this.userId = attrs.userId;
828
- /**
829
- * Organization ID
830
- * @instance
831
- * @type {String}
832
- * @readonly
833
- * @public
834
- * @memberof Meeting
845
+ /**
846
+ * Organization ID
847
+ * @instance
848
+ * @type {String}
849
+ * @readonly
850
+ * @public
851
+ * @memberof Meeting
835
852
  */
836
853
  _this.orgId = attrs.orgId;
837
- /**
838
- * @instance
839
- * @type {String}
840
- * @readonly
841
- * @public
842
- * @memberof Meeting
854
+ /**
855
+ * @instance
856
+ * @type {String}
857
+ * @readonly
858
+ * @public
859
+ * @memberof Meeting
843
860
  */
844
861
  _this.resource = attrs.resource;
845
- /**
846
- * @instance
847
- * @type {String}
848
- * @readonly
849
- * @public
850
- * @memberof Meeting
862
+ /**
863
+ * @instance
864
+ * @type {String}
865
+ * @readonly
866
+ * @public
867
+ * @memberof Meeting
851
868
  */
852
869
  _this.deviceUrl = attrs.deviceUrl;
853
- /**
854
- * @description set you -1 as default values is 0 (used to idenfify if 1st roap request was sent)
855
- * @instance
856
- * @type {Number}
857
- * @readonly
858
- * @private
859
- * @memberof Meeting
870
+ /**
871
+ * @description set you -1 as default values is 0 (used to idenfify if 1st roap request was sent)
872
+ * @instance
873
+ * @type {Number}
874
+ * @readonly
875
+ * @private
876
+ * @memberof Meeting
860
877
  */
861
878
  _this.roapSeq = _constants.ROAP_SEQ_PRE;
862
- /**
863
- * @instance
864
- * @type {Object}
865
- * @readonly
866
- * @public
867
- * @memberof Meeting
879
+ /**
880
+ * @instance
881
+ * @type {Object}
882
+ * @readonly
883
+ * @public
884
+ * @memberof Meeting
868
885
  */
869
886
  // TODO: needs to be defined as a class
870
887
  _this.meetingInfo = {};
871
- /**
872
- * @instance
873
- * @type {Members}
874
- * @public
875
- * @memberof Meeting
888
+ /**
889
+ * @instance
890
+ * @type {Members}
891
+ * @public
892
+ * @memberof Meeting
876
893
  */
877
894
  // @ts-ignore - Fix type
878
895
  _this.members = new _index2.default({
@@ -880,171 +897,171 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
880
897
  }, {
881
898
  parent: _this.webex
882
899
  });
883
- /**
884
- * @instance
885
- * @type {Roap}
886
- * @readonly
887
- * @private
888
- * @memberof Meeting
900
+ /**
901
+ * @instance
902
+ * @type {Roap}
903
+ * @readonly
904
+ * @private
905
+ * @memberof Meeting
889
906
  */
890
907
  // @ts-ignore - Fix type
891
908
  _this.roap = new _index.default({}, {
892
909
  parent: _this.webex
893
910
  });
894
- /**
895
- * created later
896
- * @instance
897
- * @type {ReconnectionManager}
898
- * @readonly
899
- * @private
900
- * @memberof Meeting
911
+ /**
912
+ * created later
913
+ * @instance
914
+ * @type {ReconnectionManager}
915
+ * @readonly
916
+ * @private
917
+ * @memberof Meeting
901
918
  */
902
919
  _this.reconnectionManager = new _reconnectionManager.default((0, _assertThisInitialized2.default)(_this));
903
- /**
904
- * created later
905
- * @instance
906
- * @type {MuteState}
907
- * @private
908
- * @memberof Meeting
920
+ /**
921
+ * created later
922
+ * @instance
923
+ * @type {MuteState}
924
+ * @private
925
+ * @memberof Meeting
909
926
  */
910
927
  _this.audio = null;
911
- /**
912
- * created later
913
- * @instance
914
- * @type {MuteState}
915
- * @private
916
- * @memberof Meeting
928
+ /**
929
+ * created later
930
+ * @instance
931
+ * @type {MuteState}
932
+ * @private
933
+ * @memberof Meeting
917
934
  */
918
935
  _this.video = null;
919
- /**
920
- * created later
921
- * @instance
922
- * @type {EffectsState}
923
- * @private
924
- * @memberof Meeting
936
+ /**
937
+ * created later
938
+ * @instance
939
+ * @type {EffectsState}
940
+ * @private
941
+ * @memberof Meeting
925
942
  */
926
943
  _this.effects = null;
927
- /**
928
- * @instance
929
- * @type {MeetingStateMachine}
930
- * @readonly
931
- * @public
932
- * @memberof Meeting
944
+ /**
945
+ * @instance
946
+ * @type {MeetingStateMachine}
947
+ * @readonly
948
+ * @public
949
+ * @memberof Meeting
933
950
  */
934
951
  _this.meetingFiniteStateMachine = _state.default.create((0, _assertThisInitialized2.default)(_this));
935
- /**
936
- * @instance
937
- * @type {String}
938
- * @readonly
939
- * @public
940
- * @memberof Meeting
952
+ /**
953
+ * @instance
954
+ * @type {String}
955
+ * @readonly
956
+ * @public
957
+ * @memberof Meeting
941
958
  */
942
959
  _this.conversationUrl = null;
943
- /**
944
- * @instance
945
- * @type {String}
946
- * @readonly
947
- * @public
948
- * @memberof Meeting
960
+ /**
961
+ * @instance
962
+ * @type {String}
963
+ * @readonly
964
+ * @public
965
+ * @memberof Meeting
949
966
  */
950
967
  _this.locusUrl = attrs.locus && attrs.locus.url || null;
951
- /**
952
- * @instance
953
- * @type {String}
954
- * @readonly
955
- * @public
956
- * @memberof Meeting
968
+ /**
969
+ * @instance
970
+ * @type {String}
971
+ * @readonly
972
+ * @public
973
+ * @memberof Meeting
957
974
  */
958
975
  _this.sipUri = null;
959
- /**
960
- * @instance
961
- * @type {String}
962
- * @readonly
963
- * @public
964
- * @memberof Meeting
976
+ /**
977
+ * @instance
978
+ * @type {String}
979
+ * @readonly
980
+ * @public
981
+ * @memberof Meeting
965
982
  */
966
983
  _this.destination = attrs.destination;
967
- /**
968
- * @instance
969
- * @type {String}
970
- * @readonly
971
- * @public
972
- * @memberof Meeting
984
+ /**
985
+ * @instance
986
+ * @type {String}
987
+ * @readonly
988
+ * @public
989
+ * @memberof Meeting
973
990
  */
974
991
  _this.destinationType = attrs.destinationType;
975
- /**
976
- * @instance
977
- * @type {String}
978
- * @readonly
979
- * @public
980
- * @memberof Meeting
992
+ /**
993
+ * @instance
994
+ * @type {String}
995
+ * @readonly
996
+ * @public
997
+ * @memberof Meeting
981
998
  */
982
999
  _this.partner = null;
983
- /**
984
- * @instance
985
- * @type {String}
986
- * @readonly
987
- * @public
988
- * @memberof Meeting
1000
+ /**
1001
+ * @instance
1002
+ * @type {String}
1003
+ * @readonly
1004
+ * @public
1005
+ * @memberof Meeting
989
1006
  */
990
1007
  _this.type = null;
991
- /**
992
- * @instance
993
- * @type {String}
994
- * @readonly
995
- * @public
996
- * @memberof Meeting
1008
+ /**
1009
+ * @instance
1010
+ * @type {String}
1011
+ * @readonly
1012
+ * @public
1013
+ * @memberof Meeting
997
1014
  */
998
1015
  _this.owner = null;
999
- /**
1000
- * @instance
1001
- * @type {String}
1002
- * @readonly
1003
- * @public
1004
- * @memberof Meeting
1016
+ /**
1017
+ * @instance
1018
+ * @type {String}
1019
+ * @readonly
1020
+ * @public
1021
+ * @memberof Meeting
1005
1022
  */
1006
1023
  _this.hostId = null;
1007
- /**
1008
- * @instance
1009
- * @type {String}
1010
- * @readonly
1011
- * @public
1012
- * @memberof Meeting
1024
+ /**
1025
+ * @instance
1026
+ * @type {String}
1027
+ * @readonly
1028
+ * @public
1029
+ * @memberof Meeting
1013
1030
  */
1014
1031
  _this.policy = null;
1015
- /**
1016
- * @instance
1017
- * @type {MeetingRequest}
1018
- * @private
1019
- * @memberof Meeting
1032
+ /**
1033
+ * @instance
1034
+ * @type {MeetingRequest}
1035
+ * @private
1036
+ * @memberof Meeting
1020
1037
  */
1021
1038
  _this.meetingRequest = new _request.default({}, _options);
1022
- /**
1023
- * @instance
1024
- * @type {Array}
1025
- * @readonly
1026
- * @public
1027
- * @memberof Meeting
1039
+ /**
1040
+ * @instance
1041
+ * @type {Array}
1042
+ * @readonly
1043
+ * @public
1044
+ * @memberof Meeting
1028
1045
  */
1029
1046
  _this.mediaConnections = null;
1030
1047
 
1031
- /**
1032
- * Fetching meeting info can be done randomly 2-5 mins before meeting start
1033
- * In case it is done before the timer expires, this timeout id is reset to cancel the timer.
1034
- * @instance
1035
- * @type {Number}
1036
- * @readonly
1037
- * @private
1038
- * @memberof Meeting
1048
+ /**
1049
+ * Fetching meeting info can be done randomly 2-5 mins before meeting start
1050
+ * In case it is done before the timer expires, this timeout id is reset to cancel the timer.
1051
+ * @instance
1052
+ * @type {Number}
1053
+ * @readonly
1054
+ * @private
1055
+ * @memberof Meeting
1039
1056
  */
1040
1057
  _this.fetchMeetingInfoTimeoutId = null;
1041
1058
 
1042
- /**
1043
- * Update the MediaConnections property with new information
1044
- * @param {array} mediaConnections
1045
- * @returns {undefined}
1046
- * @private
1047
- * @memberof Meeting
1059
+ /**
1060
+ * Update the MediaConnections property with new information
1061
+ * @param {array} mediaConnections
1062
+ * @returns {undefined}
1063
+ * @private
1064
+ * @memberof Meeting
1048
1065
  */
1049
1066
  _this.updateMediaConnections = function (mediaConnections) {
1050
1067
  if (!(0, _isEqual2.default)(_this.mediaConnections, mediaConnections)) {
@@ -1052,45 +1069,45 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1052
1069
  _this.mediaConnections = mediaConnections.slice(-1);
1053
1070
  }
1054
1071
  };
1055
- /**
1056
- * Passing only info as we send basic info for meeting added event
1057
- * @instance
1058
- * @type {MediaProperties}
1059
- * @public
1060
- * @memberof Meeting
1072
+ /**
1073
+ * Passing only info as we send basic info for meeting added event
1074
+ * @instance
1075
+ * @type {MediaProperties}
1076
+ * @public
1077
+ * @memberof Meeting
1061
1078
  */
1062
1079
  _this.mediaProperties = new _properties.default();
1063
- /**
1064
- * @instance
1065
- * @type {InMeetingActions}
1066
- * @public
1067
- * @memberof Meeting
1080
+ /**
1081
+ * @instance
1082
+ * @type {InMeetingActions}
1083
+ * @public
1084
+ * @memberof Meeting
1068
1085
  */
1069
1086
  _this.inMeetingActions = new _inMeetingActions.default();
1070
- /**
1071
- * This is deprecated, please use shareStatus instead.
1072
- * @instance
1073
- * @type {Boolean}
1074
- * @readonly
1075
- * @public
1076
- * @memberof Meeting
1077
- * @deprecated after v1.118.13
1087
+ /**
1088
+ * This is deprecated, please use shareStatus instead.
1089
+ * @instance
1090
+ * @type {Boolean}
1091
+ * @readonly
1092
+ * @public
1093
+ * @memberof Meeting
1094
+ * @deprecated after v1.118.13
1078
1095
  */
1079
1096
  _this.isSharing = false;
1080
- /**
1081
- * @instance
1082
- * @type {string}
1083
- * @readonly
1084
- * @public
1085
- * @memberof Meeting
1097
+ /**
1098
+ * @instance
1099
+ * @type {string}
1100
+ * @readonly
1101
+ * @public
1102
+ * @memberof Meeting
1086
1103
  */
1087
1104
  _this.shareStatus = _constants.SHARE_STATUS.NO_SHARE;
1088
- /**
1089
- * @instance
1090
- * @type {Boolean}
1091
- * @readonly
1092
- * @private
1093
- * @memberof Meeting
1105
+ /**
1106
+ * @instance
1107
+ * @type {Boolean}
1108
+ * @readonly
1109
+ * @private
1110
+ * @memberof Meeting
1094
1111
  */
1095
1112
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'isLocalShareLive', {
1096
1113
  get: function get() {
@@ -1107,123 +1124,123 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1107
1124
  },
1108
1125
  configurable: true
1109
1126
  });
1110
- /**
1111
- * @instance
1112
- * @type {Array}
1113
- * @readonly
1114
- * @public
1115
- * @memberof Meeting
1127
+ /**
1128
+ * @instance
1129
+ * @type {Array}
1130
+ * @readonly
1131
+ * @public
1132
+ * @memberof Meeting
1116
1133
  */
1117
1134
  _this.callEvents = [];
1118
- /**
1119
- * There is a pending floor requested by the user
1120
- * @instance
1121
- * @type {boolean}
1122
- * @private
1123
- * @memberof Meeting
1135
+ /**
1136
+ * There is a pending floor requested by the user
1137
+ * @instance
1138
+ * @type {boolean}
1139
+ * @private
1140
+ * @memberof Meeting
1124
1141
  */
1125
1142
  _this.floorGrantPending = false;
1126
- /**
1127
- * The latest status of the dial in device (can be "JOINED", "CONNECTED", "LEFT",
1128
- * "TRANSFERRING", "SUCCESS" or "")
1129
- * @instance
1130
- * @type {String}
1131
- * @private
1132
- * @memberof Meeting
1143
+ /**
1144
+ * The latest status of the dial in device (can be "JOINED", "CONNECTED", "LEFT",
1145
+ * "TRANSFERRING", "SUCCESS" or "")
1146
+ * @instance
1147
+ * @type {String}
1148
+ * @private
1149
+ * @memberof Meeting
1133
1150
  */
1134
1151
  _this.dialInDeviceStatus = _constants.PSTN_STATUS.UNKNOWN;
1135
- /**
1136
- * the url for provisioned device used to dial in
1137
- * @instance
1138
- * @type {String}
1139
- * @private
1140
- * @memberof Meeting
1152
+ /**
1153
+ * the url for provisioned device used to dial in
1154
+ * @instance
1155
+ * @type {String}
1156
+ * @private
1157
+ * @memberof Meeting
1141
1158
  */
1142
1159
  _this.dialInUrl = '';
1143
- /**
1144
- * The latest status of the dial out device (can be "JOINED", "CONNECTED", "LEFT",
1145
- * "TRANSFERRING", "SUCCESS" or "")
1146
- * @instance
1147
- * @type {String}
1148
- * @private
1149
- * @memberof Meeting
1160
+ /**
1161
+ * The latest status of the dial out device (can be "JOINED", "CONNECTED", "LEFT",
1162
+ * "TRANSFERRING", "SUCCESS" or "")
1163
+ * @instance
1164
+ * @type {String}
1165
+ * @private
1166
+ * @memberof Meeting
1150
1167
  */
1151
1168
  _this.dialOutDeviceStatus = _constants.PSTN_STATUS.UNKNOWN;
1152
- /**
1153
- * the url for provisioned device used to dial out
1154
- * @instance
1155
- * @type {String}
1156
- * @private
1157
- * @memberof Meeting
1169
+ /**
1170
+ * the url for provisioned device used to dial out
1171
+ * @instance
1172
+ * @type {String}
1173
+ * @private
1174
+ * @memberof Meeting
1158
1175
  */
1159
1176
  _this.dialOutUrl = '';
1160
- /**
1161
- * @instance
1162
- * @type {StatsAnalyzer}
1163
- * @private
1164
- * @memberof Meeting
1177
+ /**
1178
+ * @instance
1179
+ * @type {StatsAnalyzer}
1180
+ * @private
1181
+ * @memberof Meeting
1165
1182
  */
1166
1183
  _this.statsAnalyzer = null;
1167
- /**
1168
- * @instance
1169
- * @type {NetworkQualityMonitor}
1170
- * @private
1171
- * @memberof Meeting
1184
+ /**
1185
+ * @instance
1186
+ * @type {NetworkQualityMonitor}
1187
+ * @private
1188
+ * @memberof Meeting
1172
1189
  */
1173
1190
  _this.networkQualityMonitor = null;
1174
- /**
1175
- * @instance
1176
- * @type {String}
1177
- * @readonly
1178
- * @public
1179
- * @memberof Meeting
1191
+ /**
1192
+ * @instance
1193
+ * @type {String}
1194
+ * @readonly
1195
+ * @public
1196
+ * @memberof Meeting
1180
1197
  */
1181
1198
  _this.networkStatus = null;
1182
- /**
1183
- * Passing only info as we send basic info for meeting added event
1184
- * @instance
1185
- * @type {MeetingRequest}
1186
- * @private
1187
- * @memberof Meeting
1199
+ /**
1200
+ * Passing only info as we send basic info for meeting added event
1201
+ * @instance
1202
+ * @type {MeetingRequest}
1203
+ * @private
1204
+ * @memberof Meeting
1188
1205
  */
1189
1206
  // @ts-ignore - Fix type
1190
1207
  _this.locusInfo = new _locusInfo.default(_this.updateMeetingObject.bind((0, _assertThisInitialized2.default)(_this)), _this.webex, _this.id);
1191
1208
 
1192
1209
  // We had to add listeners first before setting up the locus instance
1193
- /**
1194
- * @instance
1195
- * @type {Recording}
1196
- * @readonly
1197
- * @public
1198
- * @memberof Meeting
1210
+ /**
1211
+ * @instance
1212
+ * @type {Recording}
1213
+ * @readonly
1214
+ * @public
1215
+ * @memberof Meeting
1199
1216
  */
1200
1217
  _this.recording = null;
1201
1218
 
1202
- /**
1203
- * Promise that exists if joining, and resolves upon method completion.
1204
- * @instance
1205
- * @type {Promise}
1206
- * @private
1207
- * @memberof Meeting
1219
+ /**
1220
+ * Promise that exists if joining, and resolves upon method completion.
1221
+ * @instance
1222
+ * @type {Promise}
1223
+ * @private
1224
+ * @memberof Meeting
1208
1225
  */
1209
1226
  _this.deferJoin = undefined;
1210
1227
 
1211
- /**
1212
- * Staus of websocket connection/mercury connection.
1213
- * @instance
1214
- * @type {Boolean}
1215
- * @private
1216
- * @memberof Meeting
1228
+ /**
1229
+ * Staus of websocket connection/mercury connection.
1230
+ * @instance
1231
+ * @type {Boolean}
1232
+ * @private
1233
+ * @memberof Meeting
1217
1234
  */
1218
1235
  // @ts-ignore - Fix type
1219
1236
  _this.hasWebsocketConnected = _this.webex.internal.mercury.connected;
1220
1237
 
1221
- /**
1222
- * Last sent render information
1223
- * @instance
1224
- * @type {Object}
1225
- * @private
1226
- * @memberof Meeting
1238
+ /**
1239
+ * Last sent render information
1240
+ * @instance
1241
+ * @type {Object}
1242
+ * @private
1243
+ * @memberof Meeting
1227
1244
  */
1228
1245
  _this.lastVideoLayoutInfo = {
1229
1246
  layoutType: undefined,
@@ -1231,73 +1248,73 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1231
1248
  content: undefined
1232
1249
  };
1233
1250
 
1234
- /**
1235
- * Queue of pending media updates requested by the app
1236
- * @instance
1237
- * @type {Array}
1238
- * @private
1239
- * @memberof Meeting
1251
+ /**
1252
+ * Queue of pending media updates requested by the app
1253
+ * @instance
1254
+ * @type {Array}
1255
+ * @private
1256
+ * @memberof Meeting
1240
1257
  */
1241
1258
  _this.queuedMediaUpdates = [];
1242
1259
 
1243
- /**
1244
- * Meeting transcription object
1245
- * @instance
1246
- * @type {Transcription}
1247
- * @private
1248
- * @memberof Meeting
1260
+ /**
1261
+ * Meeting transcription object
1262
+ * @instance
1263
+ * @type {Transcription}
1264
+ * @private
1265
+ * @memberof Meeting
1249
1266
  */
1250
1267
  _this.transcription = undefined;
1251
1268
 
1252
- /**
1253
- * Password status. If it's PASSWORD_STATUS.REQUIRED then verifyPassword() needs to be called
1254
- * with the correct password before calling join()
1255
- * @instance
1256
- * @type {PASSWORD_STATUS}
1257
- * @public
1258
- * @memberof Meeting
1269
+ /**
1270
+ * Password status. If it's PASSWORD_STATUS.REQUIRED then verifyPassword() needs to be called
1271
+ * with the correct password before calling join()
1272
+ * @instance
1273
+ * @type {PASSWORD_STATUS}
1274
+ * @public
1275
+ * @memberof Meeting
1259
1276
  */
1260
1277
  _this.passwordStatus = _constants.PASSWORD_STATUS.UNKNOWN;
1261
1278
 
1262
- /**
1263
- * Information about required captcha. If null, then no captcha is required. status. If it's PASSWORD_STATUS.REQUIRED then verifyPassword() needs to be called
1264
- * with the correct password before calling join()
1265
- * @instance
1266
- * @type {Object}
1267
- * @property {string} captchaId captcha id
1268
- * @property {string} verificationImageURL Url of the captcha image
1269
- * @property {string} verificationAudioURL Url of the captcha audio file
1270
- * @property {string} refreshURL Url used for refreshing the captcha (don't use it directly, call refreshCaptcha() instead)
1271
- * @public
1272
- * @memberof Meeting
1279
+ /**
1280
+ * Information about required captcha. If null, then no captcha is required. status. If it's PASSWORD_STATUS.REQUIRED then verifyPassword() needs to be called
1281
+ * with the correct password before calling join()
1282
+ * @instance
1283
+ * @type {Object}
1284
+ * @property {string} captchaId captcha id
1285
+ * @property {string} verificationImageURL Url of the captcha image
1286
+ * @property {string} verificationAudioURL Url of the captcha audio file
1287
+ * @property {string} refreshURL Url used for refreshing the captcha (don't use it directly, call refreshCaptcha() instead)
1288
+ * @public
1289
+ * @memberof Meeting
1273
1290
  */
1274
1291
  _this.requiredCaptcha = null;
1275
1292
 
1276
- /**
1277
- * Indicates the reason for last failure to obtain meeting.meetingInfo. MEETING_INFO_FAILURE_REASON.NONE if meeting info was
1278
- * retrieved successfully
1279
- * @instance
1280
- * @type {MEETING_INFO_FAILURE_REASON}
1281
- * @private
1282
- * @memberof Meeting
1293
+ /**
1294
+ * Indicates the reason for last failure to obtain meeting.meetingInfo. MEETING_INFO_FAILURE_REASON.NONE if meeting info was
1295
+ * retrieved successfully
1296
+ * @instance
1297
+ * @type {MEETING_INFO_FAILURE_REASON}
1298
+ * @private
1299
+ * @memberof Meeting
1283
1300
  */
1284
1301
  _this.meetingInfoFailureReason = undefined;
1285
1302
 
1286
- /**
1287
- * Repeating timer used to send keepAlives when in lobby
1288
- * @instance
1289
- * @type {String}
1290
- * @private
1291
- * @memberof Meeting
1303
+ /**
1304
+ * Repeating timer used to send keepAlives when in lobby
1305
+ * @instance
1306
+ * @type {String}
1307
+ * @private
1308
+ * @memberof Meeting
1292
1309
  */
1293
1310
  _this.keepAliveTimerId = null;
1294
1311
 
1295
- /**
1296
- * The class that helps to control recording functions: start, stop, pause, resume, etc
1297
- * @instance
1298
- * @type {RecordingController}
1299
- * @public
1300
- * @memberof Meeting
1312
+ /**
1313
+ * The class that helps to control recording functions: start, stop, pause, resume, etc
1314
+ * @instance
1315
+ * @type {RecordingController}
1316
+ * @public
1317
+ * @memberof Meeting
1301
1318
  */
1302
1319
  _this.recordingController = new _recordingController.default(_this.meetingRequest, {
1303
1320
  serviceUrl: (_this$locusInfo = _this.locusInfo) === null || _this$locusInfo === void 0 ? void 0 : (_this$locusInfo$links = _this$locusInfo.links) === null || _this$locusInfo$links === void 0 ? void 0 : (_this$locusInfo$links2 = _this$locusInfo$links.services) === null || _this$locusInfo$links2 === void 0 ? void 0 : (_this$locusInfo$links3 = _this$locusInfo$links2.record) === null || _this$locusInfo$links3 === void 0 ? void 0 : _this$locusInfo$links3.url,
@@ -1306,12 +1323,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1306
1323
  displayHints: []
1307
1324
  });
1308
1325
 
1309
- /**
1310
- * The class that helps to control recording functions: start, stop, pause, resume, etc
1311
- * @instance
1312
- * @type {ControlsOptionsManager}
1313
- * @public
1314
- * @memberof Meeting
1326
+ /**
1327
+ * The class that helps to control recording functions: start, stop, pause, resume, etc
1328
+ * @instance
1329
+ * @type {ControlsOptionsManager}
1330
+ * @public
1331
+ * @memberof Meeting
1315
1332
  */
1316
1333
  _this.controlsOptionsManager = new _controlsOptionsManager.default(_this.meetingRequest, {
1317
1334
  locusUrl: (_this$locusInfo4 = _this.locusInfo) === null || _this$locusInfo4 === void 0 ? void 0 : _this$locusInfo4.url,
@@ -1323,14 +1340,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1323
1340
  return _this;
1324
1341
  }
1325
1342
 
1326
- /**
1327
- * Fetches meeting information.
1328
- * @param {Object} options
1329
- * @param {String} [options.password] optional
1330
- * @param {String} [options.captchaCode] optional
1331
- * @public
1332
- * @memberof Meeting
1333
- * @returns {Promise}
1343
+ /**
1344
+ * Fetches meeting information.
1345
+ * @param {Object} options
1346
+ * @param {String} [options.password] optional
1347
+ * @param {String} [options.captchaCode] optional
1348
+ * @public
1349
+ * @memberof Meeting
1350
+ * @returns {Promise}
1334
1351
  */
1335
1352
  (0, _createClass2.default)(Meeting, [{
1336
1353
  key: "fetchMeetingInfo",
@@ -1433,14 +1450,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1433
1450
  }
1434
1451
  return fetchMeetingInfo;
1435
1452
  }()
1436
- /**
1437
- * Checks if the supplied password/host key is correct. It returns a promise with information whether the
1438
- * password and captcha code were correct or not.
1439
- * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
1440
- * @param {String} captchaCode - can be undefined if captcha was not required by the server
1441
- * @public
1442
- * @memberof Meeting
1443
- * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
1453
+ /**
1454
+ * Checks if the supplied password/host key is correct. It returns a promise with information whether the
1455
+ * password and captcha code were correct or not.
1456
+ * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
1457
+ * @param {String} captchaCode - can be undefined if captcha was not required by the server
1458
+ * @public
1459
+ * @memberof Meeting
1460
+ * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
1444
1461
  */
1445
1462
  }, {
1446
1463
  key: "verifyPassword",
@@ -1468,12 +1485,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1468
1485
  });
1469
1486
  }
1470
1487
 
1471
- /**
1472
- * Refreshes the captcha. As a result the meeting will have new captcha id, image and audio.
1473
- * If the refresh operation fails, meeting remains with the old captcha properties.
1474
- * @public
1475
- * @memberof Meeting
1476
- * @returns {Promise}
1488
+ /**
1489
+ * Refreshes the captcha. As a result the meeting will have new captcha id, image and audio.
1490
+ * If the refresh operation fails, meeting remains with the old captcha properties.
1491
+ * @public
1492
+ * @memberof Meeting
1493
+ * @returns {Promise}
1477
1494
  */
1478
1495
  }, {
1479
1496
  key: "refreshCaptcha",
@@ -1502,11 +1519,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1502
1519
  });
1503
1520
  }
1504
1521
 
1505
- /**
1506
- * Proxy function for all the listener set ups
1507
- * @returns {undefined}
1508
- * @private
1509
- * @memberof Meeting
1522
+ /**
1523
+ * Proxy function for all the listener set ups
1524
+ * @returns {undefined}
1525
+ * @private
1526
+ * @memberof Meeting
1510
1527
  */
1511
1528
  }, {
1512
1529
  key: "setUpLocusInfoListeners",
@@ -1529,11 +1546,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1529
1546
  this.setUpLocusInfoMediaInactiveListener();
1530
1547
  }
1531
1548
 
1532
- /**
1533
- * Set up the locus info listener for meetings disconnected due to inactivity
1534
- * @returns {undefined}
1535
- * @private
1536
- * @memberof Meeting
1549
+ /**
1550
+ * Set up the locus info listener for meetings disconnected due to inactivity
1551
+ * @returns {undefined}
1552
+ * @private
1553
+ * @memberof Meeting
1537
1554
  */
1538
1555
  }, {
1539
1556
  key: "setUpLocusInfoMediaInactiveListener",
@@ -1569,11 +1586,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1569
1586
  });
1570
1587
  }
1571
1588
 
1572
- /**
1573
- * Set up the locus info listener for assign host permissions on a meeting
1574
- * @returns {undefined}
1575
- * @private
1576
- * @memberof Meeting
1589
+ /**
1590
+ * Set up the locus info listener for assign host permissions on a meeting
1591
+ * @returns {undefined}
1592
+ * @private
1593
+ * @memberof Meeting
1577
1594
  */
1578
1595
  }, {
1579
1596
  key: "setUpLocusInfoAssignHostListener",
@@ -1592,11 +1609,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1592
1609
  });
1593
1610
  }
1594
1611
 
1595
- /**
1596
- * Set up the internal locus info full state object listener
1597
- * @returns {undefined}
1598
- * @private
1599
- * @memberof Meeting
1612
+ /**
1613
+ * Set up the internal locus info full state object listener
1614
+ * @returns {undefined}
1615
+ * @private
1616
+ * @memberof Meeting
1600
1617
  */
1601
1618
  }, {
1602
1619
  key: "setUpLocusFullStateListener",
@@ -1615,16 +1632,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1615
1632
  });
1616
1633
  }
1617
1634
 
1618
- /**
1619
- * get the metrics payload pre
1620
- * @param {Object} options
1621
- * @param {String} options.event
1622
- * @param {String} options.trackingId
1623
- * @param {Object} options.locus
1624
- * @param {Array} options.mediaConnections
1625
- * @param {Object} options.errors
1626
- * @returns {Object}
1627
- * @memberof Meeting
1635
+ /**
1636
+ * get the metrics payload pre
1637
+ * @param {Object} options
1638
+ * @param {String} options.event
1639
+ * @param {String} options.trackingId
1640
+ * @param {Object} options.locus
1641
+ * @param {Array} options.mediaConnections
1642
+ * @param {Object} options.errors
1643
+ * @returns {Object}
1644
+ * @memberof Meeting
1628
1645
  */
1629
1646
  }, {
1630
1647
  key: "getAnalyzerMetricsPrePayload",
@@ -1724,16 +1741,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1724
1741
  return null;
1725
1742
  }
1726
1743
 
1727
- /**
1728
- * Send the metrics to call-analyzer dashboard
1729
- * @param {Object} options
1730
- * @param {String} options.event
1731
- * @param {String} options.trackingId
1732
- * @param {Object} options.locus
1733
- * @param {Object} options.errors
1734
- * @returns {Promise}
1735
- * @private
1736
- * @memberof Meeting
1744
+ /**
1745
+ * Send the metrics to call-analyzer dashboard
1746
+ * @param {Object} options
1747
+ * @param {String} options.event
1748
+ * @param {String} options.trackingId
1749
+ * @param {Object} options.locus
1750
+ * @param {Object} options.errors
1751
+ * @returns {Promise}
1752
+ * @private
1753
+ * @memberof Meeting
1737
1754
  */
1738
1755
  }, {
1739
1756
  key: "sendCallAnalyzerMetrics",
@@ -1744,15 +1761,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1744
1761
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
1745
1762
  }
1746
1763
 
1747
- /**
1748
- * Send the metrics to Media Quality Analyzer dashboard
1749
- * @param {Object} options
1750
- * @param {String} options.event
1751
- * @param {String} options.trackingId
1752
- * @param {Object} options.locus
1753
- * @returns {Promise}
1754
- * @private
1755
- * @memberof Meeting
1764
+ /**
1765
+ * Send the metrics to Media Quality Analyzer dashboard
1766
+ * @param {Object} options
1767
+ * @param {String} options.event
1768
+ * @param {String} options.trackingId
1769
+ * @param {Object} options.locus
1770
+ * @returns {Promise}
1771
+ * @private
1772
+ * @memberof Meeting
1756
1773
  */
1757
1774
  }, {
1758
1775
  key: "sendMediaQualityAnalyzerMetrics",
@@ -1765,12 +1782,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1765
1782
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
1766
1783
  }
1767
1784
 
1768
- /**
1769
- * sets the network status on meeting object
1770
- * @param {String} networkStatus
1771
- * @private
1772
- * @returns {undefined}
1773
- * @memberof Meeting
1785
+ /**
1786
+ * sets the network status on meeting object
1787
+ * @param {String} networkStatus
1788
+ * @private
1789
+ * @returns {undefined}
1790
+ * @memberof Meeting
1774
1791
  */
1775
1792
  }, {
1776
1793
  key: "setNetworkStatus",
@@ -1789,13 +1806,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1789
1806
  this.networkStatus = networkStatus;
1790
1807
  }
1791
1808
 
1792
- /**
1793
- * Set up the locus info self listener
1794
- * update self value for members and updates the member
1795
- * notifies consumer with members:self:update {activeSelfId endedSelfId}
1796
- * @returns {undefined}
1797
- * @private
1798
- * @memberof Meeting
1809
+ /**
1810
+ * Set up the locus info self listener
1811
+ * update self value for members and updates the member
1812
+ * notifies consumer with members:self:update {activeSelfId endedSelfId}
1813
+ * @returns {undefined}
1814
+ * @private
1815
+ * @memberof Meeting
1799
1816
  */
1800
1817
  }, {
1801
1818
  key: "setUpLocusSelfListener",
@@ -1814,12 +1831,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1814
1831
  });
1815
1832
  }
1816
1833
 
1817
- /**
1818
- * Notify any changes on the pstn devices
1819
- * @param {Object} payload
1820
- * @returns {undefined}
1821
- * @private
1822
- * @memberof Meeting
1834
+ /**
1835
+ * Notify any changes on the pstn devices
1836
+ * @param {Object} payload
1837
+ * @returns {undefined}
1838
+ * @private
1839
+ * @memberof Meeting
1823
1840
  */
1824
1841
  }, {
1825
1842
  key: "pstnUpdate",
@@ -1868,13 +1885,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1868
1885
  }
1869
1886
  }
1870
1887
 
1871
- /**
1872
- * Set up the locus info host listener
1873
- * update host value for members and updates the member
1874
- * notifies consumer with members:host:update: {activeHostId, endedHostId}
1875
- * @returns {undefined}
1876
- * @private
1877
- * @memberof Meeting
1888
+ /**
1889
+ * Set up the locus info host listener
1890
+ * update host value for members and updates the member
1891
+ * notifies consumer with members:host:update: {activeHostId, endedHostId}
1892
+ * @returns {undefined}
1893
+ * @private
1894
+ * @memberof Meeting
1878
1895
  */
1879
1896
  }, {
1880
1897
  key: "setUpLocusHostListener",
@@ -1885,13 +1902,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1885
1902
  });
1886
1903
  }
1887
1904
 
1888
- /**
1889
- * Set up the locus info participants update listener
1890
- * update members collection value for members
1891
- * notifies consumer with members:update
1892
- * @returns {undefined}
1893
- * @private
1894
- * @memberof Meeting
1905
+ /**
1906
+ * Set up the locus info participants update listener
1907
+ * update members collection value for members
1908
+ * notifies consumer with members:update
1909
+ * @returns {undefined}
1910
+ * @private
1911
+ * @memberof Meeting
1895
1912
  */
1896
1913
  }, {
1897
1914
  key: "setUpLocusParticipantsListener",
@@ -1902,23 +1919,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1902
1919
  });
1903
1920
  }
1904
1921
 
1905
- /**
1906
- * Set up the locus info recording update listener
1907
- * update recording value for the meeting
1908
- * notifies consumer with:
1909
- * meeting:recording:started
1910
- * meeting:recording:stopped
1911
- * meeting:recording:paused
1912
- * meeting:recording:resumed
1913
- *
1914
- * Set up the locus info meeeting container listener
1915
- * update meetingContainerUrl value for the meeting
1916
- * notifies consumer with:
1917
- * meeting:meetingContainer:update
1918
- *
1919
- * @returns {undefined}
1920
- * @private
1921
- * @memberof Meeting
1922
+ /**
1923
+ * Set up the locus info recording update listener
1924
+ * update recording value for the meeting
1925
+ * notifies consumer with:
1926
+ * meeting:recording:started
1927
+ * meeting:recording:stopped
1928
+ * meeting:recording:paused
1929
+ * meeting:recording:resumed
1930
+ *
1931
+ * Set up the locus info meeeting container listener
1932
+ * update meetingContainerUrl value for the meeting
1933
+ * notifies consumer with:
1934
+ * meeting:meetingContainer:update
1935
+ *
1936
+ * @returns {undefined}
1937
+ * @private
1938
+ * @memberof Meeting
1922
1939
  */
1923
1940
  }, {
1924
1941
  key: "setupLocusControlsListener",
@@ -1994,13 +2011,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1994
2011
  });
1995
2012
  }
1996
2013
 
1997
- /**
1998
- * Set up the locus info media shares listener
1999
- * update content and whiteboard sharing id value for members, and updates the member
2000
- * notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
2001
- * @returns {undefined}
2002
- * @private
2003
- * @memberof Meeting
2014
+ /**
2015
+ * Set up the locus info media shares listener
2016
+ * update content and whiteboard sharing id value for members, and updates the member
2017
+ * notifies consumer with members:content:update {activeContentSharingId, endedContentSharingId}
2018
+ * @returns {undefined}
2019
+ * @private
2020
+ * @memberof Meeting
2004
2021
  */
2005
2022
  }, {
2006
2023
  key: "setUpLocusMediaSharesListener",
@@ -2172,12 +2189,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2172
2189
  });
2173
2190
  }
2174
2191
 
2175
- /**
2176
- * Set up the locus info url listener
2177
- * update locus_url value for members
2178
- * @returns {undefined}
2179
- * @private
2180
- * @memberof Meeting
2192
+ /**
2193
+ * Set up the locus info url listener
2194
+ * update locus_url value for members
2195
+ * @returns {undefined}
2196
+ * @private
2197
+ * @memberof Meeting
2181
2198
  */
2182
2199
  }, {
2183
2200
  key: "setUpLocusUrlListener",
@@ -2193,14 +2210,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2193
2210
  });
2194
2211
  }
2195
2212
 
2196
- /**
2197
- * Set up the locus info service link listener
2198
- * update the locusInfo for recording controller
2199
- * does not currently re-emit the event as it's internal only
2200
- * payload is unused
2201
- * @returns {undefined}
2202
- * @private
2203
- * @memberof Meeting
2213
+ /**
2214
+ * Set up the locus info service link listener
2215
+ * update the locusInfo for recording controller
2216
+ * does not currently re-emit the event as it's internal only
2217
+ * payload is unused
2218
+ * @returns {undefined}
2219
+ * @private
2220
+ * @memberof Meeting
2204
2221
  */
2205
2222
  }, {
2206
2223
  key: "setUpLocusServicesListener",
@@ -2213,11 +2230,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2213
2230
  });
2214
2231
  }
2215
2232
 
2216
- /**
2217
- * Set up the locus info meeting info listener
2218
- * @returns {undefined}
2219
- * @private
2220
- * @memberof meeting
2233
+ /**
2234
+ * Set up the locus info meeting info listener
2235
+ * @returns {undefined}
2236
+ * @private
2237
+ * @memberof meeting
2221
2238
  */
2222
2239
  }, {
2223
2240
  key: "setUpLocusInfoMeetingInfoListener",
@@ -2284,11 +2301,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2284
2301
  });
2285
2302
  }
2286
2303
 
2287
- /**
2288
- * Set up the locus info embedded apps listener
2289
- * @returns {undefined}
2290
- * @private
2291
- * @memberof meeting
2304
+ /**
2305
+ * Set up the locus info embedded apps listener
2306
+ * @returns {undefined}
2307
+ * @private
2308
+ * @memberof meeting
2292
2309
  */
2293
2310
  }, {
2294
2311
  key: "setUpLocusEmbeddedAppsListener",
@@ -2304,11 +2321,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2304
2321
  });
2305
2322
  }
2306
2323
 
2307
- /**
2308
- * Internal function to listen to the self object changes
2309
- * @returns {undefined}
2310
- * @private
2311
- * @memberof Meeting
2324
+ /**
2325
+ * Internal function to listen to the self object changes
2326
+ * @returns {undefined}
2327
+ * @private
2328
+ * @memberof Meeting
2312
2329
  */
2313
2330
  }, {
2314
2331
  key: "setUpLocusInfoSelfListener",
@@ -2430,11 +2447,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2430
2447
  });
2431
2448
  }
2432
2449
 
2433
- /**
2434
- * Add LocusInfo nested object listeners (from child to parent)
2435
- * @returns {undefined}
2436
- * @private
2437
- * @memberof Meeting
2450
+ /**
2451
+ * Add LocusInfo nested object listeners (from child to parent)
2452
+ * @returns {undefined}
2453
+ * @private
2454
+ * @memberof Meeting
2438
2455
  */
2439
2456
  }, {
2440
2457
  key: "setUpLocusInfoMeetingListener",
@@ -2496,13 +2513,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2496
2513
  });
2497
2514
  }
2498
2515
 
2499
- /**
2500
- * Set meeting values rather than events
2501
- * @param {Object} object
2502
- * @returns {undefined}
2503
- * @private
2504
- * @memberof Meeting
2505
- * // TODO: is this function necessary?
2516
+ /**
2517
+ * Set meeting values rather than events
2518
+ * @param {Object} object
2519
+ * @returns {undefined}
2520
+ * @private
2521
+ * @memberof Meeting
2522
+ * // TODO: is this function necessary?
2506
2523
  */
2507
2524
  }, {
2508
2525
  key: "updateMeetingObject",
@@ -2518,16 +2535,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2518
2535
  }
2519
2536
  }
2520
2537
 
2521
- /**
2522
- * Invite a guest to the call that isn't normally part of this call
2523
- * @param {Object} invitee
2524
- * @param {String} invitee.emailAddress
2525
- * @param {String} invitee.email
2526
- * @param {String} invitee.phoneNumber
2527
- * @param {Boolean} [alertIfActive]
2528
- * @returns {Promise} see #members.addMember
2529
- * @public
2530
- * @memberof Meeting
2538
+ /**
2539
+ * Invite a guest to the call that isn't normally part of this call
2540
+ * @param {Object} invitee
2541
+ * @param {String} invitee.emailAddress
2542
+ * @param {String} invitee.email
2543
+ * @param {String} invitee.phoneNumber
2544
+ * @param {Boolean} [alertIfActive]
2545
+ * @returns {Promise} see #members.addMember
2546
+ * @public
2547
+ * @memberof Meeting
2531
2548
  */
2532
2549
  }, {
2533
2550
  key: "invite",
@@ -2536,13 +2553,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2536
2553
  return this.members.addMember(invitee, alertIfActive);
2537
2554
  }
2538
2555
 
2539
- /**
2540
- * Cancel an outgoing phone call invitation made during a meeting
2541
- * @param {Object} invitee
2542
- * @param {String} invitee.phoneNumber
2543
- * @returns {Promise} see #members.cancelPhoneInvite
2544
- * @public
2545
- * @memberof Meeting
2556
+ /**
2557
+ * Cancel an outgoing phone call invitation made during a meeting
2558
+ * @param {Object} invitee
2559
+ * @param {String} invitee.phoneNumber
2560
+ * @returns {Promise} see #members.cancelPhoneInvite
2561
+ * @public
2562
+ * @memberof Meeting
2546
2563
  */
2547
2564
  }, {
2548
2565
  key: "cancelPhoneInvite",
@@ -2550,12 +2567,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2550
2567
  return this.members.cancelPhoneInvite(invitee);
2551
2568
  }
2552
2569
 
2553
- /**
2554
- * Admit the guest(s) to the call once they are waiting
2555
- * @param {Array} memberIds
2556
- * @returns {Promise} see #members.admitMembers
2557
- * @public
2558
- * @memberof Meeting
2570
+ /**
2571
+ * Admit the guest(s) to the call once they are waiting
2572
+ * @param {Array} memberIds
2573
+ * @returns {Promise} see #members.admitMembers
2574
+ * @public
2575
+ * @memberof Meeting
2559
2576
  */
2560
2577
  }, {
2561
2578
  key: "admit",
@@ -2563,12 +2580,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2563
2580
  return this.members.admitMembers(memberIds);
2564
2581
  }
2565
2582
 
2566
- /**
2567
- * Remove the member from the meeting, boot them
2568
- * @param {String} memberId
2569
- * @returns {Promise} see #members.removeMember
2570
- * @public
2571
- * @memberof Meeting
2583
+ /**
2584
+ * Remove the member from the meeting, boot them
2585
+ * @param {String} memberId
2586
+ * @returns {Promise} see #members.removeMember
2587
+ * @public
2588
+ * @memberof Meeting
2572
2589
  */
2573
2590
  }, {
2574
2591
  key: "remove",
@@ -2576,13 +2593,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2576
2593
  return this.members.removeMember(memberId);
2577
2594
  }
2578
2595
 
2579
- /**
2580
- * Mute another member from the meeting
2581
- * @param {String} memberId
2582
- * @param {Boolean} mute
2583
- * @returns {Promise} see #members.muteMember
2584
- * @public
2585
- * @memberof Meeting
2596
+ /**
2597
+ * Mute another member from the meeting
2598
+ * @param {String} memberId
2599
+ * @param {Boolean} mute
2600
+ * @returns {Promise} see #members.muteMember
2601
+ * @public
2602
+ * @memberof Meeting
2586
2603
  */
2587
2604
  }, {
2588
2605
  key: "mute",
@@ -2591,13 +2608,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2591
2608
  return this.members.muteMember(memberId, _mute);
2592
2609
  }
2593
2610
 
2594
- /**
2595
- * Transfer the moderator role to another eligible member
2596
- * @param {String} memberId
2597
- * @param {Boolean} moderator
2598
- * @returns {Promise} see #members.transferHostToMember
2599
- * @public
2600
- * @memberof Meeting
2611
+ /**
2612
+ * Transfer the moderator role to another eligible member
2613
+ * @param {String} memberId
2614
+ * @param {Boolean} moderator
2615
+ * @returns {Promise} see #members.transferHostToMember
2616
+ * @public
2617
+ * @memberof Meeting
2601
2618
  */
2602
2619
  }, {
2603
2620
  key: "transfer",
@@ -2606,11 +2623,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2606
2623
  return this.members.transferHostToMember(memberId, moderator);
2607
2624
  }
2608
2625
 
2609
- /**
2610
- * Reference to the Members object
2611
- * @returns {Members}
2612
- * @public
2613
- * @memberof Meeting
2626
+ /**
2627
+ * Reference to the Members object
2628
+ * @returns {Members}
2629
+ * @public
2630
+ * @memberof Meeting
2614
2631
  */
2615
2632
  }, {
2616
2633
  key: "getMembers",
@@ -2618,11 +2635,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2618
2635
  return this.members;
2619
2636
  }
2620
2637
 
2621
- /**
2622
- * Truthy when a meeting has an audio connection established
2623
- * @returns {Boolean} true if meeting audio is connected otherwise false
2624
- * @public
2625
- * @memberof Meeting
2638
+ /**
2639
+ * Truthy when a meeting has an audio connection established
2640
+ * @returns {Boolean} true if meeting audio is connected otherwise false
2641
+ * @public
2642
+ * @memberof Meeting
2626
2643
  */
2627
2644
  }, {
2628
2645
  key: "isAudioConnected",
@@ -2630,11 +2647,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2630
2647
  return !!this.audio;
2631
2648
  }
2632
2649
 
2633
- /**
2634
- * Convenience function to tell whether a meeting is muted
2635
- * @returns {Boolean} if meeting audio muted or not
2636
- * @public
2637
- * @memberof Meeting
2650
+ /**
2651
+ * Convenience function to tell whether a meeting is muted
2652
+ * @returns {Boolean} if meeting audio muted or not
2653
+ * @public
2654
+ * @memberof Meeting
2638
2655
  */
2639
2656
  }, {
2640
2657
  key: "isAudioMuted",
@@ -2642,11 +2659,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2642
2659
  return this.audio && this.audio.isMuted();
2643
2660
  }
2644
2661
 
2645
- /**
2646
- * Convenience function to tell if the end user last changed the audio state
2647
- * @returns {Boolean} if audio was manipulated by the end user
2648
- * @public
2649
- * @memberof Meeting
2662
+ /**
2663
+ * Convenience function to tell if the end user last changed the audio state
2664
+ * @returns {Boolean} if audio was manipulated by the end user
2665
+ * @public
2666
+ * @memberof Meeting
2650
2667
  */
2651
2668
  }, {
2652
2669
  key: "isAudioSelf",
@@ -2654,11 +2671,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2654
2671
  return this.audio && this.audio.isSelf();
2655
2672
  }
2656
2673
 
2657
- /**
2658
- * Truthy when a meeting has a video connection established
2659
- * @returns {Boolean} true if meeting video connected otherwise false
2660
- * @public
2661
- * @memberof Meeting
2674
+ /**
2675
+ * Truthy when a meeting has a video connection established
2676
+ * @returns {Boolean} true if meeting video connected otherwise false
2677
+ * @public
2678
+ * @memberof Meeting
2662
2679
  */
2663
2680
  }, {
2664
2681
  key: "isVideoConnected",
@@ -2666,11 +2683,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2666
2683
  return !!this.video;
2667
2684
  }
2668
2685
 
2669
- /**
2670
- * Convenience function to tell whether video is muted
2671
- * @returns {Boolean} if meeting video is muted or not
2672
- * @public
2673
- * @memberof Meeting
2686
+ /**
2687
+ * Convenience function to tell whether video is muted
2688
+ * @returns {Boolean} if meeting video is muted or not
2689
+ * @public
2690
+ * @memberof Meeting
2674
2691
  */
2675
2692
  }, {
2676
2693
  key: "isVideoMuted",
@@ -2678,11 +2695,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2678
2695
  return this.video && this.video.isMuted();
2679
2696
  }
2680
2697
 
2681
- /**
2682
- * Convenience function to tell whether the end user changed the video state
2683
- * @returns {Boolean} if meeting video is muted or not
2684
- * @public
2685
- * @memberof Meeting
2698
+ /**
2699
+ * Convenience function to tell whether the end user changed the video state
2700
+ * @returns {Boolean} if meeting video is muted or not
2701
+ * @public
2702
+ * @memberof Meeting
2686
2703
  */
2687
2704
  }, {
2688
2705
  key: "isVideoSelf",
@@ -2690,18 +2707,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2690
2707
  return this.video && this.video.isSelf();
2691
2708
  }
2692
2709
 
2693
- /**
2694
- * Sets the meeting info on the class instance
2695
- * @param {Object} meetingInfo
2696
- * @param {Object} meetingInfo.body
2697
- * @param {String} meetingInfo.body.conversationUrl
2698
- * @param {String} meetingInfo.body.locusUrl
2699
- * @param {String} meetingInfo.body.sipUri
2700
- * @param {Object} meetingInfo.body.owner
2701
- * @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
2702
- * @returns {undefined}
2703
- * @private
2704
- * @memberof Meeting
2710
+ /**
2711
+ * Sets the meeting info on the class instance
2712
+ * @param {Object} meetingInfo
2713
+ * @param {Object} meetingInfo.body
2714
+ * @param {String} meetingInfo.body.conversationUrl
2715
+ * @param {String} meetingInfo.body.locusUrl
2716
+ * @param {String} meetingInfo.body.sipUri
2717
+ * @param {Object} meetingInfo.body.owner
2718
+ * @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
2719
+ * @returns {undefined}
2720
+ * @private
2721
+ * @memberof Meeting
2705
2722
  */
2706
2723
  }, {
2707
2724
  key: "parseMeetingInfo",
@@ -2735,15 +2752,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2735
2752
  }
2736
2753
  }
2737
2754
 
2738
- /**
2739
- * Sets the first locus info on the class instance
2740
- * @param {Object} locus
2741
- * @param {String} locus.url
2742
- * @param {Array} locus.participants
2743
- * @param {Object} locus.self
2744
- * @returns {undefined}
2745
- * @private
2746
- * @memberof Meeting
2755
+ /**
2756
+ * Sets the first locus info on the class instance
2757
+ * @param {Object} locus
2758
+ * @param {String} locus.url
2759
+ * @param {Array} locus.participants
2760
+ * @param {Object} locus.self
2761
+ * @returns {undefined}
2762
+ * @private
2763
+ * @memberof Meeting
2747
2764
  */
2748
2765
  }, {
2749
2766
  key: "parseLocus",
@@ -2766,13 +2783,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2766
2783
  }
2767
2784
  }
2768
2785
 
2769
- /**
2770
- * Sets the sip uri on the class instance
2771
- * uses meeting info as precedence
2772
- * @param {String} sipUri
2773
- * @returns {undefined}
2774
- * @private
2775
- * @memberof Meeting
2786
+ /**
2787
+ * Sets the sip uri on the class instance
2788
+ * uses meeting info as precedence
2789
+ * @param {String} sipUri
2790
+ * @returns {undefined}
2791
+ * @private
2792
+ * @memberof Meeting
2776
2793
  */
2777
2794
  }, {
2778
2795
  key: "setSipUri",
@@ -2781,12 +2798,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2781
2798
  this.sipUri = sipUri;
2782
2799
  }
2783
2800
 
2784
- /**
2785
- * Set the roap seq on the class instance
2786
- * @param {Number} seq
2787
- * @returns {undefined}
2788
- * @private
2789
- * @memberof Meeting
2801
+ /**
2802
+ * Set the roap seq on the class instance
2803
+ * @param {Number} seq
2804
+ * @returns {undefined}
2805
+ * @private
2806
+ * @memberof Meeting
2790
2807
  */
2791
2808
  }, {
2792
2809
  key: "setRoapSeq",
@@ -2796,18 +2813,18 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2796
2813
  }
2797
2814
  }
2798
2815
 
2799
- /**
2800
- * Set the locus info the class instance
2801
- * @param {Object} locus
2802
- * @param {Array} locus.mediaConnections
2803
- * @param {String} locus.locusUrl
2804
- * @param {String} locus.locusId
2805
- * @param {String} locus.mediaId
2806
- * @param {Object} locus.host
2807
- * @todo change name to genertic parser
2808
- * @returns {undefined}
2809
- * @private
2810
- * @memberof Meeting
2816
+ /**
2817
+ * Set the locus info the class instance
2818
+ * @param {Object} locus
2819
+ * @param {Array} locus.mediaConnections
2820
+ * @param {String} locus.locusUrl
2821
+ * @param {String} locus.locusId
2822
+ * @param {String} locus.mediaId
2823
+ * @param {Object} locus.host
2824
+ * @todo change name to genertic parser
2825
+ * @returns {undefined}
2826
+ * @private
2827
+ * @memberof Meeting
2811
2828
  */
2812
2829
  }, {
2813
2830
  key: "setLocus",
@@ -2826,13 +2843,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2826
2843
  this.locusInfo.initialSetup(mtgLocus);
2827
2844
  }
2828
2845
 
2829
- /**
2830
- * Sets the remote stream on the class instance and emits and
2831
- * event to developers
2832
- * @param {Object} pc The remote stream peer connection
2833
- * @returns {undefined}
2834
- * @public
2835
- * @memberof Meeting
2846
+ /**
2847
+ * Sets the remote stream on the class instance and emits and
2848
+ * event to developers
2849
+ * @param {Object} pc The remote stream peer connection
2850
+ * @returns {undefined}
2851
+ * @public
2852
+ * @memberof Meeting
2836
2853
  */
2837
2854
  }, {
2838
2855
  key: "setRemoteStream",
@@ -2920,12 +2937,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2920
2937
  };
2921
2938
  }
2922
2939
 
2923
- /**
2924
- * Upload logs for the current meeting
2925
- * @param {object} options file name and function name
2926
- * @returns {undefined}
2927
- * @public
2928
- * @memberof Meeting
2940
+ /**
2941
+ * Upload logs for the current meeting
2942
+ * @param {object} options file name and function name
2943
+ * @returns {undefined}
2944
+ * @public
2945
+ * @memberof Meeting
2929
2946
  */
2930
2947
  }, {
2931
2948
  key: "uploadLogs",
@@ -2937,13 +2954,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2937
2954
  _triggerProxy.default.trigger(this, options, _constants.EVENTS.REQUEST_UPLOAD_LOGS, this);
2938
2955
  }
2939
2956
 
2940
- /**
2941
- * Removes remote audio and video stream on the class instance and triggers an event
2942
- * to developers
2943
- * @returns {undefined}
2944
- * @public
2945
- * @memberof Meeting
2946
- * @deprecated after v1.89.3
2957
+ /**
2958
+ * Removes remote audio and video stream on the class instance and triggers an event
2959
+ * to developers
2960
+ * @returns {undefined}
2961
+ * @public
2962
+ * @memberof Meeting
2963
+ * @deprecated after v1.89.3
2947
2964
  */
2948
2965
  }, {
2949
2966
  key: "unsetRemoteStream",
@@ -2952,9 +2969,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2952
2969
  this.mediaProperties.unsetRemoteMedia();
2953
2970
  }
2954
2971
 
2955
- /**
2956
- * Removes remote audio, video and share tracks from class instance's mediaProperties
2957
- * @returns {undefined}
2972
+ /**
2973
+ * Removes remote audio, video and share tracks from class instance's mediaProperties
2974
+ * @returns {undefined}
2958
2975
  */
2959
2976
  }, {
2960
2977
  key: "unsetRemoteTracks",
@@ -2962,13 +2979,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2962
2979
  this.mediaProperties.unsetRemoteTracks();
2963
2980
  }
2964
2981
 
2965
- /**
2966
- * Removes the remote stream on the class instance and triggers an event
2967
- * to developers
2968
- * @returns {undefined}
2969
- * @public
2970
- * @memberof Meeting
2971
- * @deprecated after v1.89.3
2982
+ /**
2983
+ * Removes the remote stream on the class instance and triggers an event
2984
+ * to developers
2985
+ * @returns {undefined}
2986
+ * @public
2987
+ * @memberof Meeting
2988
+ * @deprecated after v1.89.3
2972
2989
  */
2973
2990
  }, {
2974
2991
  key: "closeRemoteStream",
@@ -2977,26 +2994,26 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2977
2994
  this.closeRemoteTracks();
2978
2995
  }
2979
2996
 
2980
- /**
2981
- * Removes the remote tracks on the class instance and triggers an event
2982
- * to developers
2983
- * @returns {undefined}
2984
- * @memberof Meeting
2997
+ /**
2998
+ * Removes the remote tracks on the class instance and triggers an event
2999
+ * to developers
3000
+ * @returns {undefined}
3001
+ * @memberof Meeting
2985
3002
  */
2986
3003
  }, {
2987
3004
  key: "closeRemoteTracks",
2988
3005
  value: function closeRemoteTracks() {
2989
3006
  var _this21 = this;
2990
- var _this$mediaProperties = this.mediaProperties,
2991
- remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
2992
- remoteVideoTrack = _this$mediaProperties.remoteVideoTrack,
2993
- remoteShare = _this$mediaProperties.remoteShare;
2994
-
2995
- /**
2996
- * Triggers an event to the developer
2997
- * @param {string} mediaType Type of media that was stopped
2998
- * @returns {void}
2999
- * @inner
3007
+ var _this$mediaProperties3 = this.mediaProperties,
3008
+ remoteAudioTrack = _this$mediaProperties3.remoteAudioTrack,
3009
+ remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack,
3010
+ remoteShare = _this$mediaProperties3.remoteShare;
3011
+
3012
+ /**
3013
+ * Triggers an event to the developer
3014
+ * @param {string} mediaType Type of media that was stopped
3015
+ * @returns {void}
3016
+ * @inner
3000
3017
  */
3001
3018
  // eslint-disable-next-line @typescript-eslint/no-shadow
3002
3019
  var triggerMediaStoppedEvent = function triggerMediaStoppedEvent(mediaType) {
@@ -3008,12 +3025,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3008
3025
  });
3009
3026
  };
3010
3027
 
3011
- /**
3012
- * Stops a media track and emits an event
3013
- * @param {MediaStreamTrack} track Media track to stop
3014
- * @param {string} type Media track type
3015
- * @returns {Promise}
3016
- * @inner
3028
+ /**
3029
+ * Stops a media track and emits an event
3030
+ * @param {MediaStreamTrack} track Media track to stop
3031
+ * @param {string} type Media track type
3032
+ * @returns {Promise}
3033
+ * @inner
3017
3034
  */
3018
3035
  // eslint-disable-next-line arrow-body-style
3019
3036
  var stopTrack = function stopTrack(track, type) {
@@ -3030,11 +3047,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3030
3047
  return _promise.default.all([stopTrack(remoteAudioTrack, _constants.EVENT_TYPES.REMOTE_AUDIO), stopTrack(remoteVideoTrack, _constants.EVENT_TYPES.REMOTE_VIDEO), stopTrack(remoteShare, _constants.EVENT_TYPES.REMOTE_SHARE)]);
3031
3048
  }
3032
3049
 
3033
- /**
3034
- * Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
3035
- * @returns {undefined}
3036
- * @private
3037
- * @memberof Meeting
3050
+ /**
3051
+ * Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
3052
+ * @returns {undefined}
3053
+ * @private
3054
+ * @memberof Meeting
3038
3055
  */
3039
3056
  }, {
3040
3057
  key: "sendLocalMediaReadyEvent",
@@ -3048,13 +3065,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3048
3065
  });
3049
3066
  }
3050
3067
 
3051
- /**
3052
- * Sets the local audio track on the class and emits an event to the developer
3053
- * @param {MediaStreamTrack} audioTrack
3054
- * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
3055
- * @returns {undefined}
3056
- * @private
3057
- * @memberof Meeting
3068
+ /**
3069
+ * Sets the local audio track on the class and emits an event to the developer
3070
+ * @param {MediaStreamTrack} audioTrack
3071
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
3072
+ * @returns {undefined}
3073
+ * @private
3074
+ * @memberof Meeting
3058
3075
  */
3059
3076
  }, {
3060
3077
  key: "setLocalAudioTrack",
@@ -3075,13 +3092,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3075
3092
  }
3076
3093
  }
3077
3094
 
3078
- /**
3079
- * Sets the local video track on the class and emits an event to the developer
3080
- * @param {MediaStreamTrack} videoTrack
3081
- * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
3082
- * @returns {undefined}
3083
- * @private
3084
- * @memberof Meeting
3095
+ /**
3096
+ * Sets the local video track on the class and emits an event to the developer
3097
+ * @param {MediaStreamTrack} videoTrack
3098
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
3099
+ * @returns {undefined}
3100
+ * @private
3101
+ * @memberof Meeting
3085
3102
  */
3086
3103
  }, {
3087
3104
  key: "setLocalVideoTrack",
@@ -3118,12 +3135,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3118
3135
  }
3119
3136
  }
3120
3137
 
3121
- /**
3122
- * Sets the local media stream on the class and emits an event to the developer
3123
- * @param {Stream} localStream the local media stream
3124
- * @returns {undefined}
3125
- * @public
3126
- * @memberof Meeting
3138
+ /**
3139
+ * Sets the local media stream on the class and emits an event to the developer
3140
+ * @param {Stream} localStream the local media stream
3141
+ * @returns {undefined}
3142
+ * @public
3143
+ * @memberof Meeting
3127
3144
  */
3128
3145
  }, {
3129
3146
  key: "setLocalTracks",
@@ -3138,12 +3155,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3138
3155
  }
3139
3156
  }
3140
3157
 
3141
- /**
3142
- * Sets the local media stream on the class and emits an event to the developer
3143
- * @param {MediaStream} localShare the local media stream
3144
- * @returns {undefined}
3145
- * @public
3146
- * @memberof Meeting
3158
+ /**
3159
+ * Sets the local media stream on the class and emits an event to the developer
3160
+ * @param {MediaStream} localShare the local media stream
3161
+ * @returns {undefined}
3162
+ * @public
3163
+ * @memberof Meeting
3147
3164
  */
3148
3165
  }, {
3149
3166
  key: "setLocalShareTrack",
@@ -3178,20 +3195,20 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3178
3195
  }
3179
3196
  }
3180
3197
 
3181
- /**
3182
- * Closes the local stream from the class and emits an event to the developer
3183
- * @returns {undefined}
3184
- * @event media:stopped
3185
- * @public
3186
- * @memberof Meeting
3198
+ /**
3199
+ * Closes the local stream from the class and emits an event to the developer
3200
+ * @returns {undefined}
3201
+ * @event media:stopped
3202
+ * @public
3203
+ * @memberof Meeting
3187
3204
  */
3188
3205
  }, {
3189
3206
  key: "closeLocalStream",
3190
3207
  value: function closeLocalStream() {
3191
3208
  var _this23 = this;
3192
- var _this$mediaProperties2 = this.mediaProperties,
3193
- audioTrack = _this$mediaProperties2.audioTrack,
3194
- videoTrack = _this$mediaProperties2.videoTrack;
3209
+ var _this$mediaProperties4 = this.mediaProperties,
3210
+ audioTrack = _this$mediaProperties4.audioTrack,
3211
+ videoTrack = _this$mediaProperties4.videoTrack;
3195
3212
  return _media.default.stopTracks(audioTrack).then(function () {
3196
3213
  return _media.default.stopTracks(videoTrack);
3197
3214
  }).then(function () {
@@ -3212,12 +3229,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3212
3229
  });
3213
3230
  }
3214
3231
 
3215
- /**
3216
- * Closes the local stream from the class and emits an event to the developer
3217
- * @returns {undefined}
3218
- * @event media:stopped
3219
- * @public
3220
- * @memberof Meeting
3232
+ /**
3233
+ * Closes the local stream from the class and emits an event to the developer
3234
+ * @returns {undefined}
3235
+ * @event media:stopped
3236
+ * @public
3237
+ * @memberof Meeting
3221
3238
  */
3222
3239
  }, {
3223
3240
  key: "closeLocalShare",
@@ -3239,11 +3256,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3239
3256
  });
3240
3257
  }
3241
3258
 
3242
- /**
3243
- * Removes the local stream from the class and emits an event to the developer
3244
- * @returns {undefined}
3245
- * @public
3246
- * @memberof Meeting
3259
+ /**
3260
+ * Removes the local stream from the class and emits an event to the developer
3261
+ * @returns {undefined}
3262
+ * @public
3263
+ * @memberof Meeting
3247
3264
  */
3248
3265
  }, {
3249
3266
  key: "unsetLocalVideoTrack",
@@ -3251,11 +3268,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3251
3268
  this.mediaProperties.unsetLocalVideoTrack();
3252
3269
  }
3253
3270
 
3254
- /**
3255
- * Removes the local share from the class and emits an event to the developer
3256
- * @returns {undefined}
3257
- * @public
3258
- * @memberof Meeting
3271
+ /**
3272
+ * Removes the local share from the class and emits an event to the developer
3273
+ * @returns {undefined}
3274
+ * @public
3275
+ * @memberof Meeting
3259
3276
  */
3260
3277
  }, {
3261
3278
  key: "unsetLocalShareTrack",
@@ -3263,11 +3280,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3263
3280
  this.mediaProperties.unsetLocalShareTrack();
3264
3281
  }
3265
3282
 
3266
- /**
3267
- * sets up listner for mercury event
3268
- * @returns {undefined}
3269
- * @public
3270
- * @memberof Meeting
3283
+ /**
3284
+ * sets up listner for mercury event
3285
+ * @returns {undefined}
3286
+ * @public
3287
+ * @memberof Meeting
3271
3288
  */
3272
3289
  }, {
3273
3290
  key: "setMercuryListener",
@@ -3305,12 +3322,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3305
3322
  });
3306
3323
  }
3307
3324
 
3308
- /**
3309
- * Close the peer connections and remove them from the class. Triggers an event
3310
- * when each is closed.
3311
- * @returns {Promise} returns a resolved promise with an array of closed peer connections
3312
- * @public
3313
- * @memberof Meeting
3325
+ /**
3326
+ * Close the peer connections and remove them from the class. Triggers an event
3327
+ * when each is closed.
3328
+ * @returns {Promise} returns a resolved promise with an array of closed peer connections
3329
+ * @public
3330
+ * @memberof Meeting
3314
3331
  */
3315
3332
  }, {
3316
3333
  key: "closePeerConnections",
@@ -3318,13 +3335,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3318
3335
  return _peerConnectionManager.default.close(this.mediaProperties.peerConnection);
3319
3336
  }
3320
3337
 
3321
- /**
3322
- * Unsets the peer connections on the class
3323
- * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
3324
- * @param {PeerConnection} peerConnection
3325
- * @returns {undefined}
3326
- * @public
3327
- * @memberof Meeting
3338
+ /**
3339
+ * Unsets the peer connections on the class
3340
+ * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
3341
+ * @param {PeerConnection} peerConnection
3342
+ * @returns {undefined}
3343
+ * @public
3344
+ * @memberof Meeting
3328
3345
  */
3329
3346
  }, {
3330
3347
  key: "unsetPeerConnections",
@@ -3337,12 +3354,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3337
3354
  }
3338
3355
  }
3339
3356
 
3340
- /**
3341
- * Convenience method to set the correlation id for the Meeting
3342
- * @param {String} id correlation id to set on the class
3343
- * @returns {undefined}
3344
- * @private
3345
- * @memberof Meeting
3357
+ /**
3358
+ * Convenience method to set the correlation id for the Meeting
3359
+ * @param {String} id correlation id to set on the class
3360
+ * @returns {undefined}
3361
+ * @private
3362
+ * @memberof Meeting
3346
3363
  */
3347
3364
  }, {
3348
3365
  key: "setCorrelationId",
@@ -3350,11 +3367,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3350
3367
  this.correlationId = id;
3351
3368
  }
3352
3369
 
3353
- /**
3354
- * Mute the audio for a meeting
3355
- * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
3356
- * @public
3357
- * @memberof Meeting
3370
+ /**
3371
+ * Mute the audio for a meeting
3372
+ * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
3373
+ * @public
3374
+ * @memberof Meeting
3358
3375
  */
3359
3376
  }, {
3360
3377
  key: "muteAudio",
@@ -3400,11 +3417,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3400
3417
  });
3401
3418
  }
3402
3419
 
3403
- /**
3404
- * Unmute meeting audio
3405
- * @returns {Promise} resolves data from muting audio {mute, self} or rejects if there is no audio set
3406
- * @public
3407
- * @memberof Meeting
3420
+ /**
3421
+ * Unmute meeting audio
3422
+ * @returns {Promise} resolves data from muting audio {mute, self} or rejects if there is no audio set
3423
+ * @public
3424
+ * @memberof Meeting
3408
3425
  */
3409
3426
  }, {
3410
3427
  key: "unmuteAudio",
@@ -3450,11 +3467,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3450
3467
  });
3451
3468
  }
3452
3469
 
3453
- /**
3454
- * Mute the video for a meeting
3455
- * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
3456
- * @public
3457
- * @memberof Meeting
3470
+ /**
3471
+ * Mute the video for a meeting
3472
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
3473
+ * @public
3474
+ * @memberof Meeting
3458
3475
  */
3459
3476
  }, {
3460
3477
  key: "muteVideo",
@@ -3498,11 +3515,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3498
3515
  });
3499
3516
  }
3500
3517
 
3501
- /**
3502
- * Unmute meeting video
3503
- * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
3504
- * @public
3505
- * @memberof Meeting
3518
+ /**
3519
+ * Unmute meeting video
3520
+ * @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
3521
+ * @public
3522
+ * @memberof Meeting
3506
3523
  */
3507
3524
  }, {
3508
3525
  key: "unmuteVideo",
@@ -3546,30 +3563,30 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3546
3563
  });
3547
3564
  }
3548
3565
 
3549
- /**
3550
- * Shorthand function to join AND set up media
3551
- * @param {Object} options - options to join with media
3552
- * @param {JoinOptions} [options.joinOptions] - see #join()
3553
- * @param {MediaDirection} options.mediaSettings - see #addMedia()
3554
- * @param {AudioVideo} [options.audioVideoOptions] - see #getMediaStreams()
3555
- * @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
3556
- * @public
3557
- * @memberof Meeting
3558
- * @example
3559
- * joinWithMedia({
3560
- * joinOptions: {resourceId: 'resourceId' },
3561
- * mediaSettings: {
3562
- * sendAudio: true,
3563
- * sendVideo: true,
3564
- * sendShare: false,
3565
- * receiveVideo:true,
3566
- * receiveAudio: true,
3567
- * receiveShare: true
3568
- * }
3569
- * audioVideoOptions: {
3570
- * audio: 'audioDeviceId',
3571
- * video: 'videoDeviceId'
3572
- * }})
3566
+ /**
3567
+ * Shorthand function to join AND set up media
3568
+ * @param {Object} options - options to join with media
3569
+ * @param {JoinOptions} [options.joinOptions] - see #join()
3570
+ * @param {MediaDirection} options.mediaSettings - see #addMedia()
3571
+ * @param {AudioVideo} [options.audioVideoOptions] - see #getMediaStreams()
3572
+ * @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
3573
+ * @public
3574
+ * @memberof Meeting
3575
+ * @example
3576
+ * joinWithMedia({
3577
+ * joinOptions: {resourceId: 'resourceId' },
3578
+ * mediaSettings: {
3579
+ * sendAudio: true,
3580
+ * sendVideo: true,
3581
+ * sendShare: false,
3582
+ * receiveVideo:true,
3583
+ * receiveAudio: true,
3584
+ * receiveShare: true
3585
+ * }
3586
+ * audioVideoOptions: {
3587
+ * audio: 'audioDeviceId',
3588
+ * video: 'videoDeviceId'
3589
+ * }})
3573
3590
  */
3574
3591
  }, {
3575
3592
  key: "joinWithMedia",
@@ -3611,13 +3628,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3611
3628
  });
3612
3629
  }
3613
3630
 
3614
- /**
3615
- * Initiates the reconnection of the media in the meeting
3616
- *
3617
- * @param {object} options
3618
- * @returns {Promise} resolves with {reconnect} or errors with {error}
3619
- * @public
3620
- * @memberof Meeting
3631
+ /**
3632
+ * Initiates the reconnection of the media in the meeting
3633
+ *
3634
+ * @param {object} options
3635
+ * @returns {Promise} resolves with {reconnect} or errors with {error}
3636
+ * @public
3637
+ * @memberof Meeting
3621
3638
  */
3622
3639
  }, {
3623
3640
  key: "reconnect",
@@ -3679,10 +3696,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3679
3696
  });
3680
3697
  }
3681
3698
 
3682
- /**
3683
- * Check if the meeting supports the Webex Assistant feature
3684
- * @returns {boolean}
3685
- * @throws TranscriptionNotSupportedError
3699
+ /**
3700
+ * Check if the meeting supports the Webex Assistant feature
3701
+ * @returns {boolean}
3702
+ * @throws TranscriptionNotSupportedError
3686
3703
  */
3687
3704
  }, {
3688
3705
  key: "isTranscriptionSupported",
@@ -3695,10 +3712,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3695
3712
  return false;
3696
3713
  }
3697
3714
 
3698
- /**
3699
- * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
3700
- * @private
3701
- * @returns {void}
3715
+ /**
3716
+ * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
3717
+ * @private
3718
+ * @returns {void}
3702
3719
  */
3703
3720
  }, {
3704
3721
  key: "monitorTranscriptionSocketConnection",
@@ -3719,10 +3736,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3719
3736
  });
3720
3737
  }
3721
3738
 
3722
- /**
3723
- * Request for a WebSocket Url, open and monitor the WebSocket connection
3724
- * @private
3725
- * @returns {Promise<void>} a promise to open the WebSocket connection
3739
+ /**
3740
+ * Request for a WebSocket Url, open and monitor the WebSocket connection
3741
+ * @private
3742
+ * @returns {Promise<void>} a promise to open the WebSocket connection
3726
3743
  */
3727
3744
  }, {
3728
3745
  key: "receiveTranscription",
@@ -3752,6 +3769,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3752
3769
  // @ts-ignore - fix type
3753
3770
  this.webex.sessionId, this.members);
3754
3771
  _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n opened LLM web socket connection successfully.");
3772
+ if (!this.inMeetingActions.isClosedCaptionActive) {
3773
+ _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> Transcription cannot be started until a licensed user enables it");
3774
+ }
3755
3775
 
3756
3776
  // retrieve and pass the payload
3757
3777
  this.transcription.subscribe(function (payload) {
@@ -3763,10 +3783,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3763
3783
  this.monitorTranscriptionSocketConnection();
3764
3784
  // @ts-ignore - fix type
3765
3785
  this.transcription.connect(this.webex.credentials.supertoken.access_token);
3766
- _context2.next = 19;
3786
+ _context2.next = 20;
3767
3787
  break;
3768
- case 15:
3769
- _context2.prev = 15;
3788
+ case 16:
3789
+ _context2.prev = 16;
3770
3790
  _context2.t0 = _context2["catch"](1);
3771
3791
  _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> ".concat(_context2.t0));
3772
3792
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
@@ -3774,21 +3794,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3774
3794
  reason: _context2.t0.message,
3775
3795
  stack: _context2.t0.stack
3776
3796
  });
3777
- case 19:
3797
+ case 20:
3778
3798
  case "end":
3779
3799
  return _context2.stop();
3780
3800
  }
3781
- }, _callee2, this, [[1, 15]]);
3801
+ }, _callee2, this, [[1, 16]]);
3782
3802
  }));
3783
3803
  function receiveTranscription() {
3784
3804
  return _receiveTranscription.apply(this, arguments);
3785
3805
  }
3786
3806
  return receiveTranscription;
3787
3807
  }()
3788
- /**
3789
- * stop recieving Transcription by closing
3790
- * the web socket connection properly
3791
- * @returns {void}
3808
+ /**
3809
+ * stop recieving Transcription by closing
3810
+ * the web socket connection properly
3811
+ * @returns {void}
3792
3812
  */
3793
3813
  }, {
3794
3814
  key: "stopReceivingTranscription",
@@ -3798,11 +3818,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3798
3818
  }
3799
3819
  }
3800
3820
 
3801
- /**
3802
- * triggers an event to notify that the user
3803
- * will not receive any more transcription
3804
- * @private
3805
- * @returns{void}
3821
+ /**
3822
+ * triggers an event to notify that the user
3823
+ * will not receive any more transcription
3824
+ * @private
3825
+ * @returns{void}
3806
3826
  */
3807
3827
  }, {
3808
3828
  key: "triggerStopReceivingTranscriptionEvent",
@@ -3814,17 +3834,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3814
3834
  }, _constants.EVENT_TRIGGERS.MEETING_STOPPED_RECEIVING_TRANSCRIPTION);
3815
3835
  }
3816
3836
 
3817
- /**
3818
- * Specify joining via audio (option: pstn), video, screenshare
3819
- * @param {JoinOptions} options A configurable options object for joining a meeting
3820
- * @returns {Promise} the join response
3821
- * @public
3822
- * @memberof Meeting
3823
- * Scenario A: Joining own claimed personal meeting room
3824
- * Scenario B: Joining other's claimed personal meeting room, do pass pin (if desired to join as host, or nullify), do pass moderator
3825
- * Scenario C: Joining an unclaimed personal meeting room, -do not- pass pin or moderator on first try, -do- pass pin and moderator
3826
- * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
3827
- * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
3837
+ /**
3838
+ * Specify joining via audio (option: pstn), video, screenshare
3839
+ * @param {JoinOptions} options A configurable options object for joining a meeting
3840
+ * @returns {Promise} the join response
3841
+ * @public
3842
+ * @memberof Meeting
3843
+ * Scenario A: Joining own claimed personal meeting room
3844
+ * Scenario B: Joining other's claimed personal meeting room, do pass pin (if desired to join as host, or nullify), do pass moderator
3845
+ * Scenario C: Joining an unclaimed personal meeting room, -do not- pass pin or moderator on first try, -do- pass pin and moderator
3846
+ * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
3847
+ * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
3828
3848
  */
3829
3849
  }, {
3830
3850
  key: "join",
@@ -3994,12 +4014,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3994
4014
  });
3995
4015
  }
3996
4016
 
3997
- /**
3998
- * Use phone for meeting audio
3999
- * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
4000
- * @returns {Promise} Resolves once the dial-in or dial-out request has completed, or rejects if it failed
4001
- * @public
4002
- * @memberof Meeting
4017
+ /**
4018
+ * Use phone for meeting audio
4019
+ * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
4020
+ * @returns {Promise} Resolves once the dial-in or dial-out request has completed, or rejects if it failed
4021
+ * @public
4022
+ * @memberof Meeting
4003
4023
  */
4004
4024
  }, {
4005
4025
  key: "usePhoneAudio",
@@ -4010,12 +4030,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4010
4030
  return this.dialOutPstn(phoneNumber);
4011
4031
  }
4012
4032
 
4013
- /**
4014
- * Determines if the given pstnStatus is in a state which implies the phone is provisioned
4015
- * @param {String} pstnStatus
4016
- * @returns {Boolean}
4017
- * @private
4018
- * @memberof Meeting
4033
+ /**
4034
+ * Determines if the given pstnStatus is in a state which implies the phone is provisioned
4035
+ * @param {String} pstnStatus
4036
+ * @returns {Boolean}
4037
+ * @private
4038
+ * @memberof Meeting
4019
4039
  */
4020
4040
  }, {
4021
4041
  key: "isPhoneProvisioned",
@@ -4023,11 +4043,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4023
4043
  return [_constants.PSTN_STATUS.JOINED, _constants.PSTN_STATUS.CONNECTED, _constants.PSTN_STATUS.SUCCESS].includes(pstnStatus);
4024
4044
  }
4025
4045
 
4026
- /**
4027
- * Enable dial-in for audio
4028
- * @returns {Promise} Resolves once the dial-in request has completed, or rejects if it failed
4029
- * @private
4030
- * @memberof Meeting
4046
+ /**
4047
+ * Enable dial-in for audio
4048
+ * @returns {Promise} Resolves once the dial-in request has completed, or rejects if it failed
4049
+ * @private
4050
+ * @memberof Meeting
4031
4051
  */
4032
4052
  }, {
4033
4053
  key: "dialInPstn",
@@ -4061,12 +4081,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4061
4081
  });
4062
4082
  }
4063
4083
 
4064
- /**
4065
- * Enable dial-out for audio
4066
- * @param {String} phoneNumber Phone number to dial out to
4067
- * @returns {Promise} Resolves once the dial-out request has completed (it doesn't wait for the user to answer the phone), or rejects if it failed
4068
- * @private
4069
- * @memberof Meeting
4084
+ /**
4085
+ * Enable dial-out for audio
4086
+ * @param {String} phoneNumber Phone number to dial out to
4087
+ * @returns {Promise} Resolves once the dial-out request has completed (it doesn't wait for the user to answer the phone), or rejects if it failed
4088
+ * @private
4089
+ * @memberof Meeting
4070
4090
  */
4071
4091
  }, {
4072
4092
  key: "dialOutPstn",
@@ -4101,12 +4121,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4101
4121
  });
4102
4122
  }
4103
4123
 
4104
- /**
4105
- * Disconnect meeting audio via phone.
4106
- * @returns {Promise} Resolves once the phone audio disconnection has completed
4107
- * @public
4108
- * @memberof Meeting
4109
- * @returns {Promise}
4124
+ /**
4125
+ * Disconnect meeting audio via phone.
4126
+ * @returns {Promise} Resolves once the phone audio disconnection has completed
4127
+ * @public
4128
+ * @memberof Meeting
4129
+ * @returns {Promise}
4110
4130
  */
4111
4131
  }, {
4112
4132
  key: "disconnectPhoneAudio",
@@ -4114,12 +4134,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4114
4134
  return _promise.default.all([this.isPhoneProvisioned(this.dialInDeviceStatus) ? _util.default.disconnectPhoneAudio(this, this.dialInUrl) : _promise.default.resolve(), this.isPhoneProvisioned(this.dialOutDeviceStatus) ? _util.default.disconnectPhoneAudio(this, this.dialOutUrl) : _promise.default.resolve()]);
4115
4135
  }
4116
4136
 
4117
- /**
4118
- * Moves the call to the specified resourceId
4119
- * @param {String} resourceId
4120
- * @returns {Promise} once the move has been completed
4121
- * @public
4122
- * @memberof Meeting
4137
+ /**
4138
+ * Moves the call to the specified resourceId
4139
+ * @param {String} resourceId
4140
+ * @returns {Promise} once the move has been completed
4141
+ * @public
4142
+ * @memberof Meeting
4123
4143
  */
4124
4144
  }, {
4125
4145
  key: "moveTo",
@@ -4233,12 +4253,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4233
4253
  });
4234
4254
  }
4235
4255
 
4236
- /**
4237
- * Moves the call from the specified resourceId, back to computer
4238
- * @param {String} resourceId
4239
- * @returns {Promise} once the move has been completed
4240
- * @public
4241
- * @memberof Meeting
4256
+ /**
4257
+ * Moves the call from the specified resourceId, back to computer
4258
+ * @param {String} resourceId
4259
+ * @returns {Promise} once the move has been completed
4260
+ * @public
4261
+ * @memberof Meeting
4242
4262
  */
4243
4263
  }, {
4244
4264
  key: "moveFrom",
@@ -4277,16 +4297,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4277
4297
  }, {
4278
4298
  key: "addMedia",
4279
4299
  value:
4280
- /**
4281
- * Specify joining via audio (option: pstn), video, screenshare
4282
- * @param {Object} options A configurable options object for joining a meeting
4283
- * @param {Object} options.resourceId pass the deviceId
4284
- * @param {MediaDirection} options.mediaSettings pass media options
4285
- * @param {MediaStream} options.localStream
4286
- * @param {MediaStream} options.localShare
4287
- * @returns {Promise}
4288
- * @public
4289
- * @memberof Meeting
4300
+ /**
4301
+ * Specify joining via audio (option: pstn), video, screenshare
4302
+ * @param {Object} options A configurable options object for joining a meeting
4303
+ * @param {Object} options.resourceId pass the deviceId
4304
+ * @param {MediaDirection} options.mediaSettings pass media options
4305
+ * @param {MediaStream} options.localStream
4306
+ * @param {MediaStream} options.localShare
4307
+ * @returns {Promise}
4308
+ * @public
4309
+ * @memberof Meeting
4290
4310
  */
4291
4311
  function addMedia() {
4292
4312
  var _this39 = this;
@@ -4466,9 +4486,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4466
4486
  });
4467
4487
  }
4468
4488
 
4469
- /**
4470
- * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
4471
- * @returns {Boolean}
4489
+ /**
4490
+ * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
4491
+ * @returns {Boolean}
4472
4492
  */
4473
4493
  }, {
4474
4494
  key: "canUpdateMedia",
@@ -4476,13 +4496,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4476
4496
  return this.mediaProperties.peerConnection.signalingState === _constants.SDP.STABLE && !_collection.default.isBusy(this.correlationId);
4477
4497
  }
4478
4498
 
4479
- /**
4480
- * Enqueues a media update operation.
4481
- * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
4482
- * @param {Object} options
4483
- * @returns {Promise}
4484
- * @private
4485
- * @memberof Meeting
4499
+ /**
4500
+ * Enqueues a media update operation.
4501
+ * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
4502
+ * @param {Object} options
4503
+ * @returns {Promise}
4504
+ * @private
4505
+ * @memberof Meeting
4486
4506
  */
4487
4507
  }, {
4488
4508
  key: "enqueueMediaUpdate",
@@ -4502,17 +4522,17 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4502
4522
  }, {
4503
4523
  key: "updateMedia",
4504
4524
  value:
4505
- /**
4506
- * A confluence of updateAudio, updateVideo, and updateShare
4507
- * this function re-establishes all of the media streams with new options
4508
- * @param {Object} options
4509
- * @param {MediaStream} options.localStream
4510
- * @param {MediaStream} options.localShare
4511
- * @param {MediaDirection} options.mediaSettings
4512
- * @returns {Promise}
4513
- * @todo fix setRemoteStream for updateMedia
4514
- * @public
4515
- * @memberof Meeting
4525
+ /**
4526
+ * A confluence of updateAudio, updateVideo, and updateShare
4527
+ * this function re-establishes all of the media streams with new options
4528
+ * @param {Object} options
4529
+ * @param {MediaStream} options.localStream
4530
+ * @param {MediaStream} options.localShare
4531
+ * @param {MediaDirection} options.mediaSettings
4532
+ * @returns {Promise}
4533
+ * @todo fix setRemoteStream for updateMedia
4534
+ * @public
4535
+ * @memberof Meeting
4516
4536
  */
4517
4537
  function updateMedia() {
4518
4538
  var _this41 = this;
@@ -4574,15 +4594,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4574
4594
  });
4575
4595
  }
4576
4596
 
4577
- /**
4578
- * Update the main audio track with new parameters
4579
- * @param {Object} options
4580
- * @param {boolean} options.sendAudio
4581
- * @param {boolean} options.receiveAudio
4582
- * @param {MediaStream} options.stream Stream that contains the audio track to update
4583
- * @returns {Promise}
4584
- * @public
4585
- * @memberof Meeting
4597
+ /**
4598
+ * Update the main audio track with new parameters
4599
+ * @param {Object} options
4600
+ * @param {boolean} options.sendAudio
4601
+ * @param {boolean} options.receiveAudio
4602
+ * @param {MediaStream} options.stream Stream that contains the audio track to update
4603
+ * @returns {Promise}
4604
+ * @public
4605
+ * @memberof Meeting
4586
4606
  */
4587
4607
  }, {
4588
4608
  key: "updateAudio",
@@ -4669,15 +4689,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4669
4689
  }
4670
4690
  return updateAudio;
4671
4691
  }()
4672
- /**
4673
- * Update the main video track with new parameters
4674
- * @param {Object} options
4675
- * @param {boolean} options.sendVideo
4676
- * @param {boolean} options.receiveVideo
4677
- * @param {MediaStream} options.stream Stream that contains the video track to update
4678
- * @returns {Promise}
4679
- * @public
4680
- * @memberof Meeting
4692
+ /**
4693
+ * Update the main video track with new parameters
4694
+ * @param {Object} options
4695
+ * @param {boolean} options.sendVideo
4696
+ * @param {boolean} options.receiveVideo
4697
+ * @param {MediaStream} options.stream Stream that contains the video track to update
4698
+ * @returns {Promise}
4699
+ * @public
4700
+ * @memberof Meeting
4681
4701
  */
4682
4702
  }, {
4683
4703
  key: "updateVideo",
@@ -4724,13 +4744,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4724
4744
  });
4725
4745
  }
4726
4746
 
4727
- /**
4728
- * Internal function when stopping a share stream, cleanup
4729
- * @param {boolean} sendShare
4730
- * @param {boolean} previousShareStatus
4731
- * @returns {Promise}
4732
- * @private
4733
- * @memberof Meeting
4747
+ /**
4748
+ * Internal function when stopping a share stream, cleanup
4749
+ * @param {boolean} sendShare
4750
+ * @param {boolean} previousShareStatus
4751
+ * @returns {Promise}
4752
+ * @private
4753
+ * @memberof Meeting
4734
4754
  */
4735
4755
  }, {
4736
4756
  key: "checkForStopShare",
@@ -4748,14 +4768,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4748
4768
  return _promise.default.resolve();
4749
4769
  }
4750
4770
 
4751
- /**
4752
- * Update the share streams, can be used to start sharing
4753
- * @param {Object} options
4754
- * @param {boolean} options.sendShare
4755
- * @param {boolean} options.receiveShare
4756
- * @returns {Promise}
4757
- * @public
4758
- * @memberof Meeting
4771
+ /**
4772
+ * Update the share streams, can be used to start sharing
4773
+ * @param {Object} options
4774
+ * @param {boolean} options.sendShare
4775
+ * @param {boolean} options.receiveShare
4776
+ * @returns {Promise}
4777
+ * @public
4778
+ * @memberof Meeting
4759
4779
  */
4760
4780
  }, {
4761
4781
  key: "updateShare",
@@ -4823,14 +4843,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4823
4843
  });
4824
4844
  }
4825
4845
 
4826
- /**
4827
- * Do all the attach media pre set up before executing the actual attach
4828
- * @param {MediaStream} localStream
4829
- * @param {MediaStream} localShare
4830
- * @param {MediaDirection} mediaSettings
4831
- * @returns {undefined}
4832
- * @private
4833
- * @memberof Meeting
4846
+ /**
4847
+ * Do all the attach media pre set up before executing the actual attach
4848
+ * @param {MediaStream} localStream
4849
+ * @param {MediaStream} localShare
4850
+ * @param {MediaDirection} mediaSettings
4851
+ * @returns {undefined}
4852
+ * @private
4853
+ * @memberof Meeting
4834
4854
  */
4835
4855
  }, {
4836
4856
  key: "preMedia",
@@ -4848,12 +4868,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4848
4868
  this.setLocalShareTrack(localShare);
4849
4869
  }
4850
4870
 
4851
- /**
4852
- * Acknowledge the meeting, outgoing or incoming
4853
- * @param {String} type
4854
- * @returns {Promise} resolve {message, ringing, response}
4855
- * @public
4856
- * @memberof Meeting
4871
+ /**
4872
+ * Acknowledge the meeting, outgoing or incoming
4873
+ * @param {String} type
4874
+ * @returns {Promise} resolve {message, ringing, response}
4875
+ * @public
4876
+ * @memberof Meeting
4857
4877
  */
4858
4878
  }, {
4859
4879
  key: "acknowledge",
@@ -4887,12 +4907,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4887
4907
  });
4888
4908
  }
4889
4909
 
4890
- /**
4891
- * Decline this meeting
4892
- * @param {String} reason
4893
- * @returns {undefined}
4894
- * @public
4895
- * @memberof Meeting
4910
+ /**
4911
+ * Decline this meeting
4912
+ * @param {String} reason
4913
+ * @returns {undefined}
4914
+ * @public
4915
+ * @memberof Meeting
4896
4916
  */
4897
4917
  }, {
4898
4918
  key: "decline",
@@ -4907,13 +4927,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4907
4927
  });
4908
4928
  }
4909
4929
 
4910
- /**
4911
- * Leave the current meeting
4912
- * @param {Object} options leave options
4913
- * @param {String} options.resourceId the device with which to leave from, empty if just the computer
4914
- * @returns {Promise}
4915
- * @public
4916
- * @memberof Meeting
4930
+ /**
4931
+ * Leave the current meeting
4932
+ * @param {Object} options leave options
4933
+ * @param {String} options.resourceId the device with which to leave from, empty if just the computer
4934
+ * @returns {Promise}
4935
+ * @public
4936
+ * @memberof Meeting
4917
4937
  */
4918
4938
  }, {
4919
4939
  key: "leave",
@@ -4972,13 +4992,13 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4972
4992
  });
4973
4993
  }
4974
4994
 
4975
- /**
4976
- * Start sharing whiteboard given channelUrl
4977
- * @param {string} channelUrl whiteboard url
4978
- * @param {String} resourceToken token created by authorize media injector
4979
- * @returns {Promise}
4980
- * @public
4981
- * @memberof Meeting
4995
+ /**
4996
+ * Start sharing whiteboard given channelUrl
4997
+ * @param {string} channelUrl whiteboard url
4998
+ * @param {String} resourceToken token created by authorize media injector
4999
+ * @returns {Promise}
5000
+ * @public
5001
+ * @memberof Meeting
4982
5002
  */
4983
5003
  }, {
4984
5004
  key: "startWhiteboardShare",
@@ -5025,12 +5045,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5025
5045
  return _promise.default.reject(new _parameter.default('Cannot share without whiteboard.'));
5026
5046
  }
5027
5047
 
5028
- /**
5029
- * Stop sharing whiteboard given channelUrl
5030
- * @param {string} channelUrl whiteboard url
5031
- * @returns {Promise}
5032
- * @public
5033
- * @memberof Meeting
5048
+ /**
5049
+ * Stop sharing whiteboard given channelUrl
5050
+ * @param {string} channelUrl whiteboard url
5051
+ * @returns {Promise}
5052
+ * @public
5053
+ * @memberof Meeting
5034
5054
  */
5035
5055
  }, {
5036
5056
  key: "stopWhiteboardShare",
@@ -5068,11 +5088,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5068
5088
  return _promise.default.reject(new _parameter.default('Cannot stop share without whiteboard.'));
5069
5089
  }
5070
5090
 
5071
- /**
5072
- * Sends a request to Locus to obtain the screen share floor
5073
- * @returns {Promise} see #meetingRequest.changeMeetingFloor
5074
- * @private
5075
- * @memberof Meeting
5091
+ /**
5092
+ * Sends a request to Locus to obtain the screen share floor
5093
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
5094
+ * @private
5095
+ * @memberof Meeting
5076
5096
  */
5077
5097
  }, {
5078
5098
  key: "requestScreenShareFloor",
@@ -5109,11 +5129,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5109
5129
  return _promise.default.reject(new _parameter.default('Cannot share without content.'));
5110
5130
  }
5111
5131
 
5112
- /**
5113
- * Stops the screen share
5114
- * @returns {Promise} see #updateShare
5115
- * @public
5116
- * @memberof Meeting
5132
+ /**
5133
+ * Stops the screen share
5134
+ * @returns {Promise} see #updateShare
5135
+ * @public
5136
+ * @memberof Meeting
5117
5137
  */
5118
5138
  // Internal only, temporarily allows optional params
5119
5139
  // eslint-disable-next-line valid-jsdoc
@@ -5127,11 +5147,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5127
5147
  }, options));
5128
5148
  }
5129
5149
 
5130
- /**
5131
- * Sends a request to Locus to release the screen share floor.
5132
- * @returns {Promise} see #meetingRequest.changeMeetingFloor
5133
- * @private
5134
- * @memberof Meeting
5150
+ /**
5151
+ * Sends a request to Locus to release the screen share floor.
5152
+ * @returns {Promise} see #meetingRequest.changeMeetingFloor
5153
+ * @private
5154
+ * @memberof Meeting
5135
5155
  */
5136
5156
  }, {
5137
5157
  key: "releaseScreenShareFloor",
@@ -5173,11 +5193,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5173
5193
  return _promise.default.reject(new _parameter.default('Cannot stop share without content'));
5174
5194
  }
5175
5195
 
5176
- /**
5177
- * Intiate a recording of this meeting
5178
- * @returns {Promise}
5179
- * @public
5180
- * @memberof Meeting
5196
+ /**
5197
+ * Intiate a recording of this meeting
5198
+ * @returns {Promise}
5199
+ * @public
5200
+ * @memberof Meeting
5181
5201
  */
5182
5202
  }, {
5183
5203
  key: "startRecording",
@@ -5185,12 +5205,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5185
5205
  return this.recordingController.startRecording();
5186
5206
  }
5187
5207
 
5188
- /**
5189
- * set the mute on entry flag for participants if you're the host
5190
- * @returns {Promise}
5191
- * @param {boolean} enabled
5192
- * @public
5193
- * @memberof Meeting
5208
+ /**
5209
+ * set the mute on entry flag for participants if you're the host
5210
+ * @returns {Promise}
5211
+ * @param {boolean} enabled
5212
+ * @public
5213
+ * @memberof Meeting
5194
5214
  */
5195
5215
  }, {
5196
5216
  key: "setMuteOnEntry",
@@ -5198,12 +5218,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5198
5218
  return this.controlsOptionsManager.setMuteOnEntry(enabled);
5199
5219
  }
5200
5220
 
5201
- /**
5202
- * set the disallow unmute flag for participants if you're the host
5203
- * @returns {Promise}
5204
- * @param {boolean} enabled
5205
- * @public
5206
- * @memberof Meeting
5221
+ /**
5222
+ * set the disallow unmute flag for participants if you're the host
5223
+ * @returns {Promise}
5224
+ * @param {boolean} enabled
5225
+ * @public
5226
+ * @memberof Meeting
5207
5227
  */
5208
5228
  }, {
5209
5229
  key: "setDisallowUnmute",
@@ -5211,11 +5231,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5211
5231
  return this.controlsOptionsManager.setDisallowUnmute(enabled);
5212
5232
  }
5213
5233
 
5214
- /**
5215
- * End the recording of this meeting
5216
- * @returns {Promise}
5217
- * @public
5218
- * @memberof Meeting
5234
+ /**
5235
+ * End the recording of this meeting
5236
+ * @returns {Promise}
5237
+ * @public
5238
+ * @memberof Meeting
5219
5239
  */
5220
5240
  }, {
5221
5241
  key: "stopRecording",
@@ -5223,11 +5243,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5223
5243
  return this.recordingController.stopRecording();
5224
5244
  }
5225
5245
 
5226
- /**
5227
- * Pauses the recording of this meeting
5228
- * @returns {Promise}
5229
- * @public
5230
- * @memberof Meeting
5246
+ /**
5247
+ * Pauses the recording of this meeting
5248
+ * @returns {Promise}
5249
+ * @public
5250
+ * @memberof Meeting
5231
5251
  */
5232
5252
  }, {
5233
5253
  key: "pauseRecording",
@@ -5235,11 +5255,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5235
5255
  return this.recordingController.pauseRecording();
5236
5256
  }
5237
5257
 
5238
- /**
5239
- * Resumes the recording of this meeting
5240
- * @returns {Promise}
5241
- * @public
5242
- * @memberof Meeting
5258
+ /**
5259
+ * Resumes the recording of this meeting
5260
+ * @returns {Promise}
5261
+ * @public
5262
+ * @memberof Meeting
5243
5263
  */
5244
5264
  }, {
5245
5265
  key: "resumeRecording",
@@ -5247,11 +5267,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5247
5267
  return this.recordingController.resumeRecording();
5248
5268
  }
5249
5269
 
5250
- /**
5251
- * Locks the current meeting if possible
5252
- * @returns {Promise}
5253
- * @public
5254
- * @memberof Meeting
5270
+ /**
5271
+ * Locks the current meeting if possible
5272
+ * @returns {Promise}
5273
+ * @public
5274
+ * @memberof Meeting
5255
5275
  */
5256
5276
  }, {
5257
5277
  key: "lockMeeting",
@@ -5259,11 +5279,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5259
5279
  return _util.default.lockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
5260
5280
  }
5261
5281
 
5262
- /**
5263
- * Unlocks the current meeting if possible
5264
- * @returns {Promise}
5265
- * @public
5266
- * @memberof Meeting
5282
+ /**
5283
+ * Unlocks the current meeting if possible
5284
+ * @returns {Promise}
5285
+ * @public
5286
+ * @memberof Meeting
5267
5287
  */
5268
5288
  }, {
5269
5289
  key: "unlockMeeting",
@@ -5271,12 +5291,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5271
5291
  return _util.default.unlockMeeting(this.inMeetingActions, this.meetingRequest, this.locusUrl);
5272
5292
  }
5273
5293
 
5274
- /**
5275
- * Logs an error message and returns a rejected promise with same message
5276
- * @param {String} message
5277
- * @returns {Promise}
5278
- * @private
5279
- * @memberof Meeting
5294
+ /**
5295
+ * Logs an error message and returns a rejected promise with same message
5296
+ * @param {String} message
5297
+ * @returns {Promise}
5298
+ * @private
5299
+ * @memberof Meeting
5280
5300
  */
5281
5301
  }, {
5282
5302
  key: "rejectWithErrorLog",
@@ -5285,12 +5305,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5285
5305
  return _promise.default.reject(new Error(message));
5286
5306
  }
5287
5307
 
5288
- /**
5289
- * Sends DTMF tones to the current meeting
5290
- * @param {String} tones a string of one or more DTMF tones to send
5291
- * @returns {Promise}
5292
- * @public
5293
- * @memberof Meeting
5308
+ /**
5309
+ * Sends DTMF tones to the current meeting
5310
+ * @param {String} tones a string of one or more DTMF tones to send
5311
+ * @returns {Promise}
5312
+ * @public
5313
+ * @memberof Meeting
5294
5314
  */
5295
5315
  }, {
5296
5316
  key: "sendDTMF",
@@ -5308,19 +5328,19 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5308
5328
  return this.rejectWithErrorLog('Meeting:index#sendDTMF --> cannot send DTMF, meeting does not have a connection to the "locus" call control service. Have you joined?');
5309
5329
  }
5310
5330
 
5311
- /**
5312
- * Sends request to change layout type for the current meeting for the specific participant/device only
5313
- * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
5314
- * @param {Object} renderInfo preferred dimensions for the remote main and content streams (server can ignore it)
5315
- * @param {Object} renderInfo.main preferred dimensions for the remote main video stream
5316
- * @param {Number} renderInfo.main.width preferred width of main video stream
5317
- * @param {Number} renderInfo.main.height preferred height of main video stream
5318
- * @param {Object} renderInfo.content preferred dimensions for the remote content share stream
5319
- * @param {Number} renderInfo.content.width preferred width of content share stream
5320
- * @param {Number} renderInfo.content.height preferred height of content share stream
5321
- * @returns {Promise}
5322
- * @public
5323
- * @memberof Meeting
5331
+ /**
5332
+ * Sends request to change layout type for the current meeting for the specific participant/device only
5333
+ * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
5334
+ * @param {Object} renderInfo preferred dimensions for the remote main and content streams (server can ignore it)
5335
+ * @param {Object} renderInfo.main preferred dimensions for the remote main video stream
5336
+ * @param {Number} renderInfo.main.width preferred width of main video stream
5337
+ * @param {Number} renderInfo.main.height preferred height of main video stream
5338
+ * @param {Object} renderInfo.content preferred dimensions for the remote content share stream
5339
+ * @param {Number} renderInfo.content.width preferred width of content share stream
5340
+ * @param {Number} renderInfo.content.height preferred height of content share stream
5341
+ * @returns {Promise}
5342
+ * @public
5343
+ * @memberof Meeting
5324
5344
  */
5325
5345
  }, {
5326
5346
  key: "changeVideoLayout",
@@ -5329,10 +5349,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5329
5349
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5330
5350
  var main = renderInfo.main,
5331
5351
  content = renderInfo.content;
5332
- var _this$mediaProperties3 = this.mediaProperties,
5333
- mediaDirection = _this$mediaProperties3.mediaDirection,
5334
- remoteShare = _this$mediaProperties3.remoteShare,
5335
- remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack;
5352
+ var _this$mediaProperties5 = this.mediaProperties,
5353
+ mediaDirection = _this$mediaProperties5.mediaDirection,
5354
+ remoteShare = _this$mediaProperties5.remoteShare,
5355
+ remoteVideoTrack = _this$mediaProperties5.remoteVideoTrack;
5336
5356
  var layoutInfo = (0, _cloneDeep2.default)(this.lastVideoLayoutInfo);
5337
5357
 
5338
5358
  // TODO: We need a real time value for Audio, Video and Share send indicator
@@ -5402,10 +5422,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5402
5422
  });
5403
5423
  }
5404
5424
 
5405
- /**
5406
- * Sets the quality of the local video stream
5407
- * @param {String} level {LOW|MEDIUM|HIGH}
5408
- * @returns {Promise<MediaStream>} localStream
5425
+ /**
5426
+ * Sets the quality of the local video stream
5427
+ * @param {String} level {LOW|MEDIUM|HIGH}
5428
+ * @returns {Promise<MediaStream>} localStream
5409
5429
  */
5410
5430
  }, {
5411
5431
  key: "setLocalVideoQuality",
@@ -5465,10 +5485,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5465
5485
  }());
5466
5486
  }
5467
5487
 
5468
- /**
5469
- * Sets the quality level of the remote incoming media
5470
- * @param {String} level {LOW|MEDIUM|HIGH}
5471
- * @returns {Promise}
5488
+ /**
5489
+ * Sets the quality level of the remote incoming media
5490
+ * @param {String} level {LOW|MEDIUM|HIGH}
5491
+ * @returns {Promise}
5472
5492
  */
5473
5493
  }, {
5474
5494
  key: "setRemoteQualityLevel",
@@ -5494,11 +5514,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5494
5514
  });
5495
5515
  }
5496
5516
 
5497
- /**
5498
- * This is deprecated, please use setLocalVideoQuality for setting local and setRemoteQualityLevel for remote
5499
- * @param {String} level {LOW|MEDIUM|HIGH}
5500
- * @returns {Promise}
5501
- * @deprecated After FHD support
5517
+ /**
5518
+ * This is deprecated, please use setLocalVideoQuality for setting local and setRemoteQualityLevel for remote
5519
+ * @param {String} level {LOW|MEDIUM|HIGH}
5520
+ * @returns {Promise}
5521
+ * @deprecated After FHD support
5502
5522
  */
5503
5523
  }, {
5504
5524
  key: "setMeetingQuality",
@@ -5520,10 +5540,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5520
5540
  }
5521
5541
 
5522
5542
  // Determine the direction of our current media
5523
- var _this$mediaProperties4 = this.mediaProperties.mediaDirection,
5524
- receiveAudio = _this$mediaProperties4.receiveAudio,
5525
- receiveVideo = _this$mediaProperties4.receiveVideo,
5526
- sendVideo = _this$mediaProperties4.sendVideo;
5543
+ var _this$mediaProperties6 = this.mediaProperties.mediaDirection,
5544
+ receiveAudio = _this$mediaProperties6.receiveAudio,
5545
+ receiveVideo = _this$mediaProperties6.receiveVideo,
5546
+ sendVideo = _this$mediaProperties6.sendVideo;
5527
5547
  return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
5528
5548
  return receiveAudio || receiveVideo ? _this54.setRemoteQualityLevel(level) : _promise.default.resolve();
5529
5549
  }).catch(function (error) {
@@ -5543,15 +5563,15 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5543
5563
  });
5544
5564
  }
5545
5565
 
5546
- /**
5547
- * @param {Object} options parameter
5548
- * @param {Boolean} options.sendAudio send audio from the display share
5549
- * @param {Boolean} options.sendShare send video from the display share
5550
- * @param {Object} options.sharePreferences
5551
- * @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
5552
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
5553
- * @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
5554
- * @returns {Promise}
5566
+ /**
5567
+ * @param {Object} options parameter
5568
+ * @param {Boolean} options.sendAudio send audio from the display share
5569
+ * @param {Boolean} options.sendShare send video from the display share
5570
+ * @param {Object} options.sharePreferences
5571
+ * @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
5572
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
5573
+ * @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
5574
+ * @returns {Promise}
5555
5575
  */
5556
5576
  }, {
5557
5577
  key: "shareScreen",
@@ -5594,12 +5614,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5594
5614
  });
5595
5615
  }
5596
5616
 
5597
- /**
5598
- * Functionality for when a share is ended.
5599
- * @private
5600
- * @memberof Meeting
5601
- * @param {MediaStream} localShare
5602
- * @returns {undefined}
5617
+ /**
5618
+ * Functionality for when a share is ended.
5619
+ * @private
5620
+ * @memberof Meeting
5621
+ * @param {MediaStream} localShare
5622
+ * @returns {undefined}
5603
5623
  */
5604
5624
  }, {
5605
5625
  key: "handleShareTrackEnded",
@@ -5626,16 +5646,16 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5626
5646
  });
5627
5647
  }
5628
5648
 
5629
- /**
5630
- * Emits the 'network:quality' event
5631
- * 1 indicates an acceptable uplink network.
5632
- * 0 indicates an unacceptable uplink network based on a predefined threshold
5633
- * @returns {undefined}
5634
- * @param {Object} res - payload of emitNetworkQuality
5635
- * @property {string} mediaType {video|audio}
5636
- * @property {number} networkQualityScore - {1|0}
5637
- * @private
5638
- * @memberof Meeting
5649
+ /**
5650
+ * Emits the 'network:quality' event
5651
+ * 1 indicates an acceptable uplink network.
5652
+ * 0 indicates an unacceptable uplink network based on a predefined threshold
5653
+ * @returns {undefined}
5654
+ * @param {Object} res - payload of emitNetworkQuality
5655
+ * @property {string} mediaType {video|audio}
5656
+ * @property {number} networkQualityScore - {1|0}
5657
+ * @private
5658
+ * @memberof Meeting
5639
5659
  */
5640
5660
  }, {
5641
5661
  key: "sendNetworkQualityEvent",
@@ -5649,12 +5669,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5649
5669
  });
5650
5670
  }
5651
5671
 
5652
- /**
5653
- * Handle logging the media
5654
- * @param {Object} audioTrack The audio track
5655
- * @param {Object} videoTrack The video track
5656
- * @private
5657
- * @returns {undefined}
5672
+ /**
5673
+ * Handle logging the media
5674
+ * @param {Object} audioTrack The audio track
5675
+ * @param {Object} videoTrack The video track
5676
+ * @private
5677
+ * @returns {undefined}
5658
5678
  */
5659
5679
  }, {
5660
5680
  key: "handleMediaLogging",
@@ -5665,9 +5685,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5665
5685
  _util.default.handleAudioLogging(audioTrack);
5666
5686
  }
5667
5687
 
5668
- /**
5669
- * @param {string} typeMedia 'audio' or 'video'
5670
- * @returns {undefined}
5688
+ /**
5689
+ * @param {string} typeMedia 'audio' or 'video'
5690
+ * @returns {undefined}
5671
5691
  */
5672
5692
  }, {
5673
5693
  key: "setStartSetupDelay",
@@ -5676,9 +5696,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5676
5696
  this["endSetupDelay".concat(typeMedia)] = undefined;
5677
5697
  }
5678
5698
 
5679
- /**
5680
- * @param {string} typeMedia 'audio' or 'video'
5681
- * @returns {undefined}
5699
+ /**
5700
+ * @param {string} typeMedia 'audio' or 'video'
5701
+ * @returns {undefined}
5682
5702
  */
5683
5703
  }, {
5684
5704
  key: "setEndSetupDelay",
@@ -5686,9 +5706,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5686
5706
  this["endSetupDelay".concat(typeMedia)] = performance.now();
5687
5707
  }
5688
5708
 
5689
- /**
5690
- * @param {string} typeMedia 'audio' or 'video'
5691
- * @returns {string} duration between start and end of setup
5709
+ /**
5710
+ * @param {string} typeMedia 'audio' or 'video'
5711
+ * @returns {string} duration between start and end of setup
5692
5712
  */
5693
5713
  }, {
5694
5714
  key: "getSetupDelayDuration",
@@ -5698,9 +5718,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5698
5718
  return start && end ? end - start : undefined;
5699
5719
  }
5700
5720
 
5701
- /**
5702
- * @param {string} typeMedia 'audio' or 'video'
5703
- * @returns {undefined}
5721
+ /**
5722
+ * @param {string} typeMedia 'audio' or 'video'
5723
+ * @returns {undefined}
5704
5724
  */
5705
5725
  }, {
5706
5726
  key: "setStartSendingMediaDelay",
@@ -5709,9 +5729,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5709
5729
  this["endSendingMediaDelay".concat(typeMedia)] = undefined;
5710
5730
  }
5711
5731
 
5712
- /**
5713
- * @param {string} typeMedia 'audio' or 'video'
5714
- * @returns {undefined}
5732
+ /**
5733
+ * @param {string} typeMedia 'audio' or 'video'
5734
+ * @returns {undefined}
5715
5735
  */
5716
5736
  }, {
5717
5737
  key: "setEndSendingMediaDelay",
@@ -5719,9 +5739,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5719
5739
  this["endSendingMediaDelay".concat(typeMedia)] = performance.now();
5720
5740
  }
5721
5741
 
5722
- /**
5723
- * @param {string} typeMedia 'audio' or 'video'
5724
- * @returns {string} duration between join response and first media tx
5742
+ /**
5743
+ * @param {string} typeMedia 'audio' or 'video'
5744
+ * @returns {string} duration between join response and first media tx
5725
5745
  */
5726
5746
  }, {
5727
5747
  key: "getSendingMediaDelayDuration",
@@ -5731,9 +5751,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5731
5751
  return start && end ? end - start : undefined;
5732
5752
  }
5733
5753
 
5734
- /**
5735
- *
5736
- * @returns {undefined}
5754
+ /**
5755
+ *
5756
+ * @returns {undefined}
5737
5757
  */
5738
5758
  }, {
5739
5759
  key: "setStartLocalSDPGenRemoteSDPRecvDelay",
@@ -5744,9 +5764,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5744
5764
  }
5745
5765
  }
5746
5766
 
5747
- /**
5748
- *
5749
- * @returns {undefined}
5767
+ /**
5768
+ *
5769
+ * @returns {undefined}
5750
5770
  */
5751
5771
  }, {
5752
5772
  key: "setEndLocalSDPGenRemoteSDPRecvDelay",
@@ -5756,9 +5776,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5756
5776
  }
5757
5777
  }
5758
5778
 
5759
- /**
5760
- *
5761
- * @returns {string} duration between local SDP generation and remote SDP reception
5779
+ /**
5780
+ *
5781
+ * @returns {string} duration between local SDP generation and remote SDP reception
5762
5782
  */
5763
5783
  }, {
5764
5784
  key: "getLocalSDPGenRemoteSDPRecvDelay",
@@ -5772,9 +5792,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5772
5792
  return undefined;
5773
5793
  }
5774
5794
 
5775
- /**
5776
- *
5777
- * @returns {undefined}
5795
+ /**
5796
+ *
5797
+ * @returns {undefined}
5778
5798
  */
5779
5799
  }, {
5780
5800
  key: "setStartCallInitiateJoinReq",
@@ -5783,9 +5803,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5783
5803
  this.endCallInitiateJoinReq = undefined;
5784
5804
  }
5785
5805
 
5786
- /**
5787
- *
5788
- * @returns {undefined}
5806
+ /**
5807
+ *
5808
+ * @returns {undefined}
5789
5809
  */
5790
5810
  }, {
5791
5811
  key: "setEndCallInitiateJoinReq",
@@ -5793,9 +5813,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5793
5813
  this.endCallInitiateJoinReq = performance.now();
5794
5814
  }
5795
5815
 
5796
- /**
5797
- *
5798
- * @returns {string} duration between call initiate and sending join request to locus
5816
+ /**
5817
+ *
5818
+ * @returns {string} duration between call initiate and sending join request to locus
5799
5819
  */
5800
5820
  }, {
5801
5821
  key: "getCallInitiateJoinReq",
@@ -5809,9 +5829,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5809
5829
  return undefined;
5810
5830
  }
5811
5831
 
5812
- /**
5813
- *
5814
- * @returns {undefined}
5832
+ /**
5833
+ *
5834
+ * @returns {undefined}
5815
5835
  */
5816
5836
  }, {
5817
5837
  key: "setStartJoinReqResp",
@@ -5820,9 +5840,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5820
5840
  this.endJoinReqResp = undefined;
5821
5841
  }
5822
5842
 
5823
- /**
5824
- *
5825
- * @returns {undefined}
5843
+ /**
5844
+ *
5845
+ * @returns {undefined}
5826
5846
  */
5827
5847
  }, {
5828
5848
  key: "setEndJoinReqResp",
@@ -5830,9 +5850,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5830
5850
  this.endJoinReqResp = performance.now();
5831
5851
  }
5832
5852
 
5833
- /**
5834
- *
5835
- * @returns {string} duration between sending locus join request and receiving join response
5853
+ /**
5854
+ *
5855
+ * @returns {string} duration between sending locus join request and receiving join response
5836
5856
  */
5837
5857
  }, {
5838
5858
  key: "getJoinReqResp",
@@ -5846,9 +5866,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5846
5866
  return undefined;
5847
5867
  }
5848
5868
 
5849
- /**
5850
- *
5851
- * @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
5869
+ /**
5870
+ *
5871
+ * @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
5852
5872
  */
5853
5873
  }, {
5854
5874
  key: "getTotalJmt",
@@ -5858,11 +5878,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5858
5878
  return start && end ? end - start : undefined;
5859
5879
  }
5860
5880
 
5861
- /**
5862
- * End the current meeting for all
5863
- * @returns {Promise}
5864
- * @public
5865
- * @memberof Meeting
5881
+ /**
5882
+ * End the current meeting for all
5883
+ * @returns {Promise}
5884
+ * @public
5885
+ * @memberof Meeting
5866
5886
  */
5867
5887
  }, {
5868
5888
  key: "endMeetingForAll",
@@ -5911,22 +5931,22 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5911
5931
  }, {
5912
5932
  key: "isBnrEnabled",
5913
5933
  value:
5914
- /**
5915
- * Internal API to return status of BNR
5916
- * @returns {Boolean}
5917
- * @public
5918
- * @memberof Meeting
5934
+ /**
5935
+ * Internal API to return status of BNR
5936
+ * @returns {Boolean}
5937
+ * @public
5938
+ * @memberof Meeting
5919
5939
  */
5920
5940
  function isBnrEnabled() {
5921
5941
  return this.effects && this.effects.isBnrEnabled();
5922
5942
  }
5923
5943
 
5924
- /**
5925
- * Internal API to obtain BNR enabled MediaStream
5926
- * @returns {Promise<MediaStreamTrack>}
5927
- * @private
5928
- * @param {MedaiStreamTrack} audioTrack from updateAudio
5929
- * @memberof Meeting
5944
+ /**
5945
+ * Internal API to obtain BNR enabled MediaStream
5946
+ * @returns {Promise<MediaStreamTrack>}
5947
+ * @private
5948
+ * @param {MedaiStreamTrack} audioTrack from updateAudio
5949
+ * @memberof Meeting
5930
5950
  */
5931
5951
  }, {
5932
5952
  key: "internal_enableBNR",
@@ -5960,11 +5980,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5960
5980
  }
5961
5981
  return internal_enableBNR;
5962
5982
  }()
5963
- /**
5964
- * Enable the audio track with BNR for a meeting
5965
- * @returns {Promise} resolves the data from enable bnr or rejects if there is no audio or audio is muted
5966
- * @public
5967
- * @memberof Meeting
5983
+ /**
5984
+ * Enable the audio track with BNR for a meeting
5985
+ * @returns {Promise} resolves the data from enable bnr or rejects if there is no audio or audio is muted
5986
+ * @public
5987
+ * @memberof Meeting
5968
5988
  */
5969
5989
  }, {
5970
5990
  key: "enableBNR",
@@ -5989,11 +6009,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5989
6009
  });
5990
6010
  }
5991
6011
 
5992
- /**
5993
- * Disable the BNR for an audio track
5994
- * @returns {Promise} resolves the data from disable bnr or rejects if there is no audio set
5995
- * @public
5996
- * @memberof Meeting
6012
+ /**
6013
+ * Disable the BNR for an audio track
6014
+ * @returns {Promise} resolves the data from disable bnr or rejects if there is no audio set
6015
+ * @public
6016
+ * @memberof Meeting
5997
6017
  */
5998
6018
  }, {
5999
6019
  key: "disableBNR",
@@ -6020,14 +6040,14 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6020
6040
  }, {
6021
6041
  key: "sendReaction",
6022
6042
  value:
6023
- /**
6024
- * Send a reaction inside the meeting.
6025
- *
6026
- * @param {ReactionType} reactionType - type of reaction to be sent. Example: "thumbs_up"
6027
- * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
6028
- * @returns {Promise}
6029
- * @public
6030
- * @memberof Meeting
6043
+ /**
6044
+ * Send a reaction inside the meeting.
6045
+ *
6046
+ * @param {ReactionType} reactionType - type of reaction to be sent. Example: "thumbs_up"
6047
+ * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
6048
+ * @returns {Promise}
6049
+ * @public
6050
+ * @memberof Meeting
6031
6051
  */
6032
6052
  function sendReaction(reactionType, skinToneType) {
6033
6053
  var _this$locusInfo5, _this$locusInfo5$cont, _this$locusInfo5$cont2;