@webex/plugin-meetings 2.60.0-next.9 → 2.60.1

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 (516) hide show
  1. package/README.md +8 -46
  2. package/dist/common/browser-detection.js +3 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js +4 -3
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/config.js +2 -1
  7. package/dist/common/config.js.map +1 -1
  8. package/dist/common/errors/captcha-error.js +2 -1
  9. package/dist/common/errors/captcha-error.js.map +1 -1
  10. package/dist/common/errors/intent-to-join.js +2 -1
  11. package/dist/common/errors/intent-to-join.js.map +1 -1
  12. package/dist/common/errors/join-meeting.js +2 -1
  13. package/dist/common/errors/join-meeting.js.map +1 -1
  14. package/dist/common/errors/media.js +2 -1
  15. package/dist/common/errors/media.js.map +1 -1
  16. package/dist/common/errors/parameter.js +4 -3
  17. package/dist/common/errors/parameter.js.map +1 -1
  18. package/dist/common/errors/password-error.js +2 -1
  19. package/dist/common/errors/password-error.js.map +1 -1
  20. package/dist/common/errors/permission.js +2 -1
  21. package/dist/common/errors/permission.js.map +1 -1
  22. package/dist/common/errors/{reclaim-host-role-errors.js → reclaim-host-role-error.js} +11 -7
  23. package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
  24. package/dist/common/errors/reconnection-in-progress.js +2 -1
  25. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  26. package/dist/common/errors/reconnection.js +2 -1
  27. package/dist/common/errors/reconnection.js.map +1 -1
  28. package/dist/common/errors/stats.js +2 -1
  29. package/dist/common/errors/stats.js.map +1 -1
  30. package/dist/common/errors/webex-errors.d.ts +8 -20
  31. package/dist/common/errors/webex-errors.js +28 -48
  32. package/dist/common/errors/webex-errors.js.map +1 -1
  33. package/dist/common/errors/webex-meetings-error.js +2 -1
  34. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  35. package/dist/common/events/events-scope.js +2 -1
  36. package/dist/common/events/events-scope.js.map +1 -1
  37. package/dist/common/events/events.js +2 -1
  38. package/dist/common/events/events.js.map +1 -1
  39. package/dist/common/events/trigger-proxy.js +2 -1
  40. package/dist/common/events/trigger-proxy.js.map +1 -1
  41. package/dist/common/events/util.js +2 -1
  42. package/dist/common/events/util.js.map +1 -1
  43. package/dist/common/logs/logger-config.js +2 -1
  44. package/dist/common/logs/logger-config.js.map +1 -1
  45. package/dist/common/logs/logger-proxy.js +3 -2
  46. package/dist/common/logs/logger-proxy.js.map +1 -1
  47. package/dist/common/logs/request.d.ts +1 -3
  48. package/dist/common/logs/request.js +5 -8
  49. package/dist/common/logs/request.js.map +1 -1
  50. package/dist/common/queue.d.ts +7 -9
  51. package/dist/common/queue.js +9 -22
  52. package/dist/common/queue.js.map +1 -1
  53. package/dist/config.d.ts +7 -5
  54. package/dist/config.js +11 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +97 -217
  57. package/dist/constants.js +441 -416
  58. package/dist/constants.js.map +1 -1
  59. package/dist/controls-options-manager/constants.js +6 -3
  60. package/dist/controls-options-manager/constants.js.map +1 -1
  61. package/dist/controls-options-manager/enums.d.ts +1 -11
  62. package/dist/controls-options-manager/enums.js +6 -15
  63. package/dist/controls-options-manager/enums.js.map +1 -1
  64. package/dist/controls-options-manager/index.d.ts +1 -17
  65. package/dist/controls-options-manager/index.js +38 -127
  66. package/dist/controls-options-manager/index.js.map +1 -1
  67. package/dist/controls-options-manager/util.d.ts +7 -1
  68. package/dist/controls-options-manager/util.js +19 -309
  69. package/dist/controls-options-manager/util.js.map +1 -1
  70. package/dist/index.d.ts +3 -6
  71. package/dist/index.js +4 -116
  72. package/dist/index.js.map +1 -1
  73. package/dist/locus-info/controlsUtils.js +11 -100
  74. package/dist/locus-info/controlsUtils.js.map +1 -1
  75. package/dist/locus-info/embeddedAppsUtils.js +4 -3
  76. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  77. package/dist/locus-info/fullState.js +2 -1
  78. package/dist/locus-info/fullState.js.map +1 -1
  79. package/dist/locus-info/hostUtils.js +2 -1
  80. package/dist/locus-info/hostUtils.js.map +1 -1
  81. package/dist/locus-info/index.d.ts +4 -57
  82. package/dist/locus-info/index.js +84 -425
  83. package/dist/locus-info/index.js.map +1 -1
  84. package/dist/locus-info/infoUtils.js +5 -13
  85. package/dist/locus-info/infoUtils.js.map +1 -1
  86. package/dist/locus-info/mediaSharesUtils.js +3 -58
  87. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  88. package/dist/locus-info/parser.d.ts +6 -66
  89. package/dist/locus-info/parser.js +80 -253
  90. package/dist/locus-info/parser.js.map +1 -1
  91. package/dist/locus-info/selfUtils.js +13 -97
  92. package/dist/locus-info/selfUtils.js.map +1 -1
  93. package/dist/media/index.d.ts +0 -2
  94. package/dist/media/index.js +319 -107
  95. package/dist/media/index.js.map +1 -1
  96. package/dist/media/properties.d.ts +53 -38
  97. package/dist/media/properties.js +153 -96
  98. package/dist/media/properties.js.map +1 -1
  99. package/dist/media/util.js +22 -1
  100. package/dist/media/util.js.map +1 -1
  101. package/dist/mediaQualityMetrics/config.d.ts +230 -234
  102. package/dist/mediaQualityMetrics/config.js +498 -302
  103. package/dist/mediaQualityMetrics/config.js.map +1 -1
  104. package/dist/meeting/effectsState.d.ts +42 -0
  105. package/dist/meeting/effectsState.js +260 -0
  106. package/dist/meeting/effectsState.js.map +1 -0
  107. package/dist/meeting/in-meeting-actions.d.ts +0 -88
  108. package/dist/meeting/in-meeting-actions.js +3 -94
  109. package/dist/meeting/in-meeting-actions.js.map +1 -1
  110. package/dist/meeting/index.d.ts +494 -591
  111. package/dist/meeting/index.js +2969 -4707
  112. package/dist/meeting/index.js.map +1 -1
  113. package/dist/meeting/muteState.d.ts +25 -93
  114. package/dist/meeting/muteState.js +133 -224
  115. package/dist/meeting/muteState.js.map +1 -1
  116. package/dist/meeting/request.d.ts +47 -82
  117. package/dist/meeting/request.js +199 -297
  118. package/dist/meeting/request.js.map +1 -1
  119. package/dist/meeting/state.js +2 -1
  120. package/dist/meeting/state.js.map +1 -1
  121. package/dist/meeting/util.d.ts +1 -102
  122. package/dist/meeting/util.js +435 -605
  123. package/dist/meeting/util.js.map +1 -1
  124. package/dist/meeting-info/collection.js +4 -3
  125. package/dist/meeting-info/collection.js.map +1 -1
  126. package/dist/meeting-info/index.d.ts +1 -13
  127. package/dist/meeting-info/index.js +7 -74
  128. package/dist/meeting-info/index.js.map +1 -1
  129. package/dist/meeting-info/meeting-info-v2.d.ts +1 -31
  130. package/dist/meeting-info/meeting-info-v2.js +63 -200
  131. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  132. package/dist/meeting-info/request.js +2 -1
  133. package/dist/meeting-info/request.js.map +1 -1
  134. package/dist/meeting-info/util.js +3 -2
  135. package/dist/meeting-info/util.js.map +1 -1
  136. package/dist/meeting-info/utilv2.js +41 -39
  137. package/dist/meeting-info/utilv2.js.map +1 -1
  138. package/dist/meetings/collection.d.ts +0 -17
  139. package/dist/meetings/collection.js +4 -42
  140. package/dist/meetings/collection.js.map +1 -1
  141. package/dist/meetings/index.d.ts +21 -103
  142. package/dist/meetings/index.js +124 -486
  143. package/dist/meetings/index.js.map +1 -1
  144. package/dist/meetings/request.js +3 -4
  145. package/dist/meetings/request.js.map +1 -1
  146. package/dist/meetings/util.js +6 -107
  147. package/dist/meetings/util.js.map +1 -1
  148. package/dist/member/index.d.ts +1 -13
  149. package/dist/member/index.js +2 -45
  150. package/dist/member/index.js.map +1 -1
  151. package/dist/member/member.types.js +4 -3
  152. package/dist/member/member.types.js.map +1 -1
  153. package/dist/member/util.js +29 -120
  154. package/dist/member/util.js.map +1 -1
  155. package/dist/members/collection.d.ts +0 -5
  156. package/dist/members/collection.js +2 -11
  157. package/dist/members/collection.js.map +1 -1
  158. package/dist/members/index.d.ts +11 -56
  159. package/dist/members/index.js +47 -174
  160. package/dist/members/index.js.map +1 -1
  161. package/dist/members/request.d.ts +11 -67
  162. package/dist/members/request.js +54 -102
  163. package/dist/members/request.js.map +1 -1
  164. package/dist/members/types.js +4 -3
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.d.ts +1 -214
  167. package/dist/members/util.js +284 -327
  168. package/dist/members/util.js.map +1 -1
  169. package/dist/metrics/config.d.ts +169 -0
  170. package/dist/metrics/config.js +289 -0
  171. package/dist/metrics/config.js.map +1 -0
  172. package/dist/metrics/constants.d.ts +6 -15
  173. package/dist/metrics/constants.js +9 -17
  174. package/dist/metrics/constants.js.map +1 -1
  175. package/dist/metrics/index.d.ts +111 -4
  176. package/dist/metrics/index.js +452 -4
  177. package/dist/metrics/index.js.map +1 -1
  178. package/dist/networkQualityMonitor/index.js +4 -5
  179. package/dist/networkQualityMonitor/index.js.map +1 -1
  180. package/dist/peer-connection-manager/index.d.ts +6 -0
  181. package/dist/peer-connection-manager/index.js +671 -0
  182. package/dist/peer-connection-manager/index.js.map +1 -0
  183. package/dist/peer-connection-manager/util.d.ts +6 -0
  184. package/dist/peer-connection-manager/util.js +110 -0
  185. package/dist/peer-connection-manager/util.js.map +1 -0
  186. package/dist/personal-meeting-room/index.js +3 -2
  187. package/dist/personal-meeting-room/index.js.map +1 -1
  188. package/dist/personal-meeting-room/request.js +3 -2
  189. package/dist/personal-meeting-room/request.js.map +1 -1
  190. package/dist/personal-meeting-room/util.js +2 -1
  191. package/dist/personal-meeting-room/util.js.map +1 -1
  192. package/dist/reachability/index.d.ts +7 -62
  193. package/dist/reachability/index.js +72 -265
  194. package/dist/reachability/index.js.map +1 -1
  195. package/dist/reachability/request.d.ts +3 -7
  196. package/dist/reachability/request.js +10 -18
  197. package/dist/reachability/request.js.map +1 -1
  198. package/dist/reactions/reactions.d.ts +2 -2
  199. package/dist/reactions/reactions.js +6 -4
  200. package/dist/reactions/reactions.js.map +1 -1
  201. package/dist/reactions/reactions.type.d.ts +3 -23
  202. package/dist/reactions/reactions.type.js +23 -21
  203. package/dist/reactions/reactions.type.js.map +1 -1
  204. package/dist/reconnection-manager/index.d.ts +8 -32
  205. package/dist/reconnection-manager/index.js +231 -282
  206. package/dist/reconnection-manager/index.js.map +1 -1
  207. package/dist/recording-controller/enums.js +5 -4
  208. package/dist/recording-controller/enums.js.map +1 -1
  209. package/dist/recording-controller/index.d.ts +1 -15
  210. package/dist/recording-controller/index.js +46 -57
  211. package/dist/recording-controller/index.js.map +1 -1
  212. package/dist/recording-controller/util.d.ts +4 -5
  213. package/dist/recording-controller/util.js +10 -10
  214. package/dist/recording-controller/util.js.map +1 -1
  215. package/dist/roap/collection.d.ts +10 -0
  216. package/dist/roap/collection.js +63 -0
  217. package/dist/roap/collection.js.map +1 -0
  218. package/dist/roap/handler.d.ts +47 -0
  219. package/dist/roap/handler.js +279 -0
  220. package/dist/roap/handler.js.map +1 -0
  221. package/dist/roap/index.d.ts +47 -9
  222. package/dist/roap/index.js +235 -101
  223. package/dist/roap/index.js.map +1 -1
  224. package/dist/roap/request.d.ts +12 -18
  225. package/dist/roap/request.js +180 -126
  226. package/dist/roap/request.js.map +1 -1
  227. package/dist/roap/state.d.ts +9 -0
  228. package/dist/roap/state.js +127 -0
  229. package/dist/roap/state.js.map +1 -0
  230. package/dist/roap/turnDiscovery.d.ts +16 -27
  231. package/dist/roap/turnDiscovery.js +105 -115
  232. package/dist/roap/turnDiscovery.js.map +1 -1
  233. package/dist/roap/util.d.ts +2 -0
  234. package/dist/roap/util.js +76 -0
  235. package/dist/roap/util.js.map +1 -0
  236. package/dist/statsAnalyzer/global.d.ts +83 -1
  237. package/dist/statsAnalyzer/global.js +85 -2
  238. package/dist/statsAnalyzer/global.js.map +1 -1
  239. package/dist/statsAnalyzer/index.d.ts +30 -28
  240. package/dist/statsAnalyzer/index.js +509 -374
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +83 -116
  244. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  245. package/dist/transcription/index.js +2 -1
  246. package/dist/transcription/index.js.map +1 -1
  247. package/package.json +26 -35
  248. package/src/common/errors/webex-errors.ts +12 -36
  249. package/src/common/logs/logger-proxy.ts +1 -1
  250. package/src/common/logs/request.ts +1 -5
  251. package/src/common/queue.ts +8 -22
  252. package/src/config.ts +7 -5
  253. package/src/constants.ts +97 -244
  254. package/src/controls-options-manager/enums.ts +0 -12
  255. package/src/controls-options-manager/index.ts +21 -116
  256. package/src/controls-options-manager/util.ts +14 -294
  257. package/src/index.js +15 -0
  258. package/src/locus-info/controlsUtils.ts +0 -110
  259. package/src/locus-info/index.ts +61 -449
  260. package/src/locus-info/infoUtils.ts +2 -14
  261. package/src/locus-info/mediaSharesUtils.ts +0 -64
  262. package/src/locus-info/parser.ts +47 -258
  263. package/src/locus-info/selfUtils.ts +2 -85
  264. package/src/media/index.ts +370 -153
  265. package/src/media/properties.ts +136 -106
  266. package/src/media/util.ts +21 -0
  267. package/src/mediaQualityMetrics/config.ts +377 -244
  268. package/src/meeting/effectsState.ts +209 -0
  269. package/src/meeting/in-meeting-actions.ts +0 -176
  270. package/src/meeting/index.ts +2482 -3929
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -207
  273. package/src/meeting/util.ts +423 -590
  274. package/src/meeting-info/index.ts +8 -81
  275. package/src/meeting-info/meeting-info-v2.ts +13 -163
  276. package/src/meeting-info/util.ts +1 -1
  277. package/src/meeting-info/utilv2.ts +28 -28
  278. package/src/meetings/collection.ts +0 -33
  279. package/src/meetings/index.ts +126 -486
  280. package/src/meetings/request.ts +0 -2
  281. package/src/meetings/util.ts +5 -116
  282. package/src/member/index.ts +1 -43
  283. package/src/member/util.ts +28 -125
  284. package/src/members/collection.ts +0 -8
  285. package/src/members/index.ts +52 -187
  286. package/src/members/request.ts +27 -87
  287. package/src/members/util.ts +291 -332
  288. package/src/metrics/config.ts +485 -0
  289. package/src/metrics/constants.ts +6 -15
  290. package/src/metrics/index.ts +471 -1
  291. package/src/networkQualityMonitor/index.ts +6 -6
  292. package/src/peer-connection-manager/index.ts +847 -0
  293. package/src/peer-connection-manager/util.ts +119 -0
  294. package/src/reachability/index.ts +45 -238
  295. package/src/reachability/request.ts +8 -17
  296. package/src/reactions/reactions.ts +4 -4
  297. package/src/reactions/reactions.type.ts +4 -30
  298. package/src/reconnection-manager/index.ts +156 -168
  299. package/src/recording-controller/index.ts +3 -20
  300. package/src/recording-controller/util.ts +9 -26
  301. package/src/roap/collection.ts +62 -0
  302. package/src/roap/handler.ts +294 -0
  303. package/src/roap/index.ts +241 -98
  304. package/src/roap/request.ts +148 -74
  305. package/src/roap/state.ts +156 -0
  306. package/src/roap/turnDiscovery.ts +56 -62
  307. package/src/roap/util.ts +100 -0
  308. package/src/statsAnalyzer/global.ts +84 -1
  309. package/src/statsAnalyzer/index.ts +642 -413
  310. package/src/statsAnalyzer/mqaUtil.ts +114 -111
  311. package/test/integration/spec/journey.js +264 -320
  312. package/test/integration/spec/space-meeting.js +4 -77
  313. package/test/unit/spec/common/queue.js +2 -31
  314. package/test/unit/spec/controls-options-manager/index.js +0 -163
  315. package/test/unit/spec/controls-options-manager/util.js +60 -576
  316. package/test/unit/spec/fixture/locus.js +0 -1
  317. package/test/unit/spec/locus-info/controlsUtils.js +30 -323
  318. package/test/unit/spec/locus-info/index.js +15 -1389
  319. package/test/unit/spec/locus-info/infoUtils.js +16 -54
  320. package/test/unit/spec/locus-info/lib/SeqCmp.json +0 -16
  321. package/test/unit/spec/locus-info/lib/selfConstant.js +0 -48
  322. package/test/unit/spec/locus-info/parser.js +35 -116
  323. package/test/unit/spec/locus-info/selfUtils.js +0 -275
  324. package/test/unit/spec/media/properties.ts +84 -75
  325. package/test/unit/spec/meeting/effectsState.js +281 -0
  326. package/test/unit/spec/meeting/in-meeting-actions.ts +0 -86
  327. package/test/unit/spec/meeting/index.js +3136 -8547
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +42 -512
  330. package/test/unit/spec/meeting/utils.js +24 -741
  331. package/test/unit/spec/meeting-info/meetinginfov2.js +5 -527
  332. package/test/unit/spec/meeting-info/utilv2.js +0 -21
  333. package/test/unit/spec/meetings/collection.js +0 -26
  334. package/test/unit/spec/meetings/index.js +211 -1278
  335. package/test/unit/spec/meetings/utils.js +2 -202
  336. package/test/unit/spec/member/index.js +9 -32
  337. package/test/unit/spec/member/util.js +61 -499
  338. package/test/unit/spec/members/index.js +5 -394
  339. package/test/unit/spec/members/request.js +27 -206
  340. package/test/unit/spec/members/utils.js +38 -173
  341. package/test/unit/spec/metrics/index.js +50 -1
  342. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  343. package/test/unit/spec/peerconnection-manager/index.js +218 -0
  344. package/test/unit/spec/peerconnection-manager/utils.js +49 -0
  345. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +388 -0
  346. package/test/unit/spec/reachability/index.ts +24 -598
  347. package/test/unit/spec/reconnection-manager/index.js +24 -162
  348. package/test/unit/spec/recording-controller/index.js +218 -293
  349. package/test/unit/spec/recording-controller/util.js +96 -223
  350. package/test/unit/spec/roap/index.ts +76 -200
  351. package/test/unit/spec/roap/turnDiscovery.ts +48 -86
  352. package/test/unit/spec/roap/util.js +30 -0
  353. package/test/unit/spec/stats-analyzer/index.js +174 -188
  354. package/test/utils/testUtils.js +45 -0
  355. package/test/utils/webex-config.js +0 -4
  356. package/test/utils/webex-test-users.js +3 -7
  357. package/dist/annotation/annotation.types.d.ts +0 -42
  358. package/dist/annotation/annotation.types.js +0 -7
  359. package/dist/annotation/annotation.types.js.map +0 -1
  360. package/dist/annotation/constants.d.ts +0 -31
  361. package/dist/annotation/constants.js +0 -41
  362. package/dist/annotation/constants.js.map +0 -1
  363. package/dist/annotation/index.d.ts +0 -117
  364. package/dist/annotation/index.js +0 -357
  365. package/dist/annotation/index.js.map +0 -1
  366. package/dist/breakouts/breakout.d.ts +0 -8
  367. package/dist/breakouts/breakout.js +0 -215
  368. package/dist/breakouts/breakout.js.map +0 -1
  369. package/dist/breakouts/collection.d.ts +0 -5
  370. package/dist/breakouts/collection.js +0 -22
  371. package/dist/breakouts/collection.js.map +0 -1
  372. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  373. package/dist/breakouts/edit-lock-error.js +0 -51
  374. package/dist/breakouts/edit-lock-error.js.map +0 -1
  375. package/dist/breakouts/events.d.ts +0 -8
  376. package/dist/breakouts/events.js +0 -44
  377. package/dist/breakouts/events.js.map +0 -1
  378. package/dist/breakouts/index.d.ts +0 -5
  379. package/dist/breakouts/index.js +0 -1047
  380. package/dist/breakouts/index.js.map +0 -1
  381. package/dist/breakouts/request.d.ts +0 -22
  382. package/dist/breakouts/request.js +0 -77
  383. package/dist/breakouts/request.js.map +0 -1
  384. package/dist/breakouts/utils.d.ts +0 -15
  385. package/dist/breakouts/utils.js +0 -64
  386. package/dist/breakouts/utils.js.map +0 -1
  387. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  388. package/dist/common/errors/no-meeting-info.js +0 -50
  389. package/dist/common/errors/no-meeting-info.js.map +0 -1
  390. package/dist/common/errors/reclaim-host-role-errors.js.map +0 -1
  391. package/dist/controls-options-manager/types.d.ts +0 -43
  392. package/dist/controls-options-manager/types.js +0 -7
  393. package/dist/controls-options-manager/types.js.map +0 -1
  394. package/dist/interpretation/collection.d.ts +0 -5
  395. package/dist/interpretation/collection.js +0 -22
  396. package/dist/interpretation/collection.js.map +0 -1
  397. package/dist/interpretation/index.d.ts +0 -5
  398. package/dist/interpretation/index.js +0 -365
  399. package/dist/interpretation/index.js.map +0 -1
  400. package/dist/interpretation/siLanguage.d.ts +0 -5
  401. package/dist/interpretation/siLanguage.js +0 -24
  402. package/dist/interpretation/siLanguage.js.map +0 -1
  403. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  404. package/dist/meeting/locusMediaRequest.js +0 -291
  405. package/dist/meeting/locusMediaRequest.js.map +0 -1
  406. package/dist/meeting/request.type.d.ts +0 -11
  407. package/dist/meeting/request.type.js +0 -7
  408. package/dist/meeting/request.type.js.map +0 -1
  409. package/dist/meetings/meetings.types.d.ts +0 -4
  410. package/dist/meetings/meetings.types.js +0 -7
  411. package/dist/meetings/meetings.types.js.map +0 -1
  412. package/dist/member/types.d.ts +0 -32
  413. package/dist/member/types.js +0 -23
  414. package/dist/member/types.js.map +0 -1
  415. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  416. package/dist/multistream/mediaRequestManager.js +0 -344
  417. package/dist/multistream/mediaRequestManager.js.map +0 -1
  418. package/dist/multistream/receiveSlot.d.ts +0 -68
  419. package/dist/multistream/receiveSlot.js +0 -200
  420. package/dist/multistream/receiveSlot.js.map +0 -1
  421. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  422. package/dist/multistream/receiveSlotManager.js +0 -174
  423. package/dist/multistream/receiveSlotManager.js.map +0 -1
  424. package/dist/multistream/remoteMedia.d.ts +0 -72
  425. package/dist/multistream/remoteMedia.js +0 -268
  426. package/dist/multistream/remoteMedia.js.map +0 -1
  427. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  428. package/dist/multistream/remoteMediaGroup.js +0 -267
  429. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  430. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  431. package/dist/multistream/remoteMediaManager.js +0 -1211
  432. package/dist/multistream/remoteMediaManager.js.map +0 -1
  433. package/dist/multistream/sendSlotManager.d.ts +0 -61
  434. package/dist/multistream/sendSlotManager.js +0 -236
  435. package/dist/multistream/sendSlotManager.js.map +0 -1
  436. package/dist/reactions/constants.d.ts +0 -3
  437. package/dist/reactions/constants.js +0 -12
  438. package/dist/reactions/constants.js.map +0 -1
  439. package/dist/rtcMetrics/constants.d.ts +0 -4
  440. package/dist/rtcMetrics/constants.js +0 -11
  441. package/dist/rtcMetrics/constants.js.map +0 -1
  442. package/dist/rtcMetrics/index.d.ts +0 -54
  443. package/dist/rtcMetrics/index.js +0 -140
  444. package/dist/rtcMetrics/index.js.map +0 -1
  445. package/dist/webinar/collection.d.ts +0 -16
  446. package/dist/webinar/collection.js +0 -43
  447. package/dist/webinar/collection.js.map +0 -1
  448. package/dist/webinar/index.d.ts +0 -5
  449. package/dist/webinar/index.js +0 -68
  450. package/dist/webinar/index.js.map +0 -1
  451. package/src/annotation/annotation.types.ts +0 -50
  452. package/src/annotation/constants.ts +0 -36
  453. package/src/annotation/index.ts +0 -328
  454. package/src/breakouts/README.md +0 -220
  455. package/src/breakouts/breakout.ts +0 -188
  456. package/src/breakouts/collection.ts +0 -19
  457. package/src/breakouts/edit-lock-error.ts +0 -25
  458. package/src/breakouts/events.ts +0 -56
  459. package/src/breakouts/index.ts +0 -925
  460. package/src/breakouts/request.ts +0 -55
  461. package/src/breakouts/utils.ts +0 -57
  462. package/src/common/errors/no-meeting-info.ts +0 -24
  463. package/src/controls-options-manager/types.ts +0 -59
  464. package/src/index.ts +0 -40
  465. package/src/interpretation/README.md +0 -60
  466. package/src/interpretation/collection.ts +0 -19
  467. package/src/interpretation/index.ts +0 -332
  468. package/src/interpretation/siLanguage.ts +0 -18
  469. package/src/meeting/locusMediaRequest.ts +0 -313
  470. package/src/meeting/request.type.ts +0 -13
  471. package/src/meetings/meetings.types.ts +0 -12
  472. package/src/member/types.ts +0 -38
  473. package/src/multistream/mediaRequestManager.ts +0 -440
  474. package/src/multistream/receiveSlot.ts +0 -184
  475. package/src/multistream/receiveSlotManager.ts +0 -166
  476. package/src/multistream/remoteMedia.ts +0 -254
  477. package/src/multistream/remoteMediaGroup.ts +0 -284
  478. package/src/multistream/remoteMediaManager.ts +0 -1145
  479. package/src/multistream/sendSlotManager.ts +0 -170
  480. package/src/reactions/constants.ts +0 -4
  481. package/src/rtcMetrics/constants.ts +0 -3
  482. package/src/rtcMetrics/index.ts +0 -124
  483. package/src/webinar/collection.ts +0 -31
  484. package/src/webinar/index.ts +0 -62
  485. package/test/integration/spec/converged-space-meetings.js +0 -233
  486. package/test/unit/spec/annotation/index.ts +0 -418
  487. package/test/unit/spec/breakouts/breakout.ts +0 -237
  488. package/test/unit/spec/breakouts/collection.ts +0 -15
  489. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  490. package/test/unit/spec/breakouts/events.ts +0 -89
  491. package/test/unit/spec/breakouts/index.ts +0 -1790
  492. package/test/unit/spec/breakouts/request.ts +0 -104
  493. package/test/unit/spec/breakouts/utils.js +0 -72
  494. package/test/unit/spec/interpretation/collection.ts +0 -15
  495. package/test/unit/spec/interpretation/index.ts +0 -589
  496. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  497. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  498. package/test/unit/spec/media/index.ts +0 -290
  499. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  500. package/test/unit/spec/meeting-info/index.js +0 -300
  501. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  502. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  503. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  504. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  505. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  506. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  507. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  508. package/test/unit/spec/reachability/request.js +0 -68
  509. package/test/unit/spec/roap/request.ts +0 -232
  510. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  511. package/test/unit/spec/webinar/collection.ts +0 -13
  512. package/test/unit/spec/webinar/index.ts +0 -60
  513. package/test/utils/constants.js +0 -9
  514. package/test/utils/integrationTestUtils.js +0 -46
  515. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  516. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -1,58 +1,23 @@
1
1
  /// <reference types="node" />
2
2
  import { StatelessWebexPlugin } from '@webex/webex-core';
3
- import { ClientEvent, ClientEventLeaveReason } from '@webex/internal-plugin-metrics';
4
- import { LocalStream, LocalCameraStream, LocalDisplayStream, LocalSystemAudioStream, LocalMicrophoneStream } from '@webex/media-helpers';
5
3
  import { StatsAnalyzer } from '../statsAnalyzer';
6
4
  import NetworkQualityMonitor from '../networkQualityMonitor';
7
5
  import Roap from '../roap/index';
8
- import { type BundlePolicy } from '../media';
9
6
  import MediaProperties from '../media/properties';
10
7
  import ReconnectionManager from '../reconnection-manager';
11
8
  import MeetingRequest from './request';
12
9
  import Members from '../members/index';
13
10
  import Transcription from '../transcription';
14
- import { NETWORK_STATUS } from '../constants';
15
- import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
16
- import { MediaRequestManager } from '../multistream/mediaRequestManager';
17
- import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
18
- import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
11
+ import { ReactionType, SkinToneType } from '../reactions/reactions.type';
19
12
  import InMeetingActions from './in-meeting-actions';
20
13
  import RecordingController from '../recording-controller';
21
14
  import ControlsOptionsManager from '../controls-options-manager';
22
- import { LocusMediaRequest } from './locusMediaRequest';
23
- export type LocalStreams = {
24
- microphone?: LocalMicrophoneStream;
25
- camera?: LocalCameraStream;
26
- screenShare?: {
27
- audio?: LocalSystemAudioStream;
28
- video?: LocalDisplayStream;
29
- };
30
- };
31
- export type AddMediaOptions = {
32
- localStreams?: LocalStreams;
33
- audioEnabled?: boolean;
34
- videoEnabled?: boolean;
35
- shareAudioEnabled?: boolean;
36
- shareVideoEnabled?: boolean;
37
- remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
38
- bundlePolicy?: BundlePolicy;
39
- allowMediaInLobby?: boolean;
40
- };
41
- export type CallStateForMetrics = {
42
- correlationId?: string;
43
- joinTrigger?: string;
44
- loginType?: string;
45
- };
46
15
  export declare const MEDIA_UPDATE_TYPE: {
47
- TRANSCODED_MEDIA_CONNECTION: string;
48
- SHARE_FLOOR_REQUEST: string;
49
- UPDATE_MEDIA: string;
16
+ ALL: string;
17
+ AUDIO: string;
18
+ VIDEO: string;
19
+ SHARE: string;
50
20
  };
51
- export declare enum ScreenShareFloorStatus {
52
- PENDING = "floor_request_pending",
53
- GRANTED = "floor_request_granted",
54
- RELEASED = "floor_released"
55
- }
56
21
  /**
57
22
  * MediaDirection
58
23
  * @typedef {Object} MediaDirection
@@ -64,6 +29,15 @@ export declare enum ScreenShareFloorStatus {
64
29
  * @property {boolean} receiveShare
65
30
  * @property {boolean} isSharing
66
31
  */
32
+ /**
33
+ * AudioVideo
34
+ * @typedef {Object} AudioVideo
35
+ * @property {Object} audio
36
+ * @property {String} audio.deviceId
37
+ * @property {Object} video
38
+ * @property {String} video.deviceId
39
+ * @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
40
+ */
67
41
  /**
68
42
  * SharePreferences
69
43
  * @typedef {Object} SharePreferences
@@ -77,9 +51,16 @@ export declare enum ScreenShareFloorStatus {
77
51
  * @property {String} [pin]
78
52
  * @property {Boolean} [moderator]
79
53
  * @property {String|Object} [meetingQuality]
54
+ * @property {String} [meetingQuality.local]
80
55
  * @property {String} [meetingQuality.remote]
81
56
  * @property {Boolean} [rejoin]
82
- * @property {Boolean} [enableMultistream]
57
+ */
58
+ /**
59
+ * SendOptions
60
+ * @typedef {Object} SendOptions
61
+ * @property {Boolean} sendAudio
62
+ * @property {Boolean} sendVideo
63
+ * @property {Boolean} sendShare
83
64
  */
84
65
  /**
85
66
  * Recording
@@ -162,11 +143,7 @@ export declare enum ScreenShareFloorStatus {
162
143
  * @instance
163
144
  * @type {Object}
164
145
  * @property {Boolean} memberId id of the meeting member that started screen share
165
- * @property {String} url of this content share
166
- * @property {String} shareInstanceId of this content share
167
- * @property {Object} annotation Info of this content share
168
146
  * @memberof Meeting
169
- *
170
147
  */
171
148
  /**
172
149
  * Meeting Stopped Sharing Remote Event
@@ -302,23 +279,18 @@ export declare enum ScreenShareFloorStatus {
302
279
  export default class Meeting extends StatelessWebexPlugin {
303
280
  attrs: any;
304
281
  audio: any;
305
- breakouts: any;
306
- simultaneousInterpretation: any;
307
- annotation: any;
308
- webinar: any;
309
282
  conversationUrl: string;
310
- callStateForMetrics: CallStateForMetrics;
283
+ correlationId: string;
311
284
  destination: string;
312
285
  destinationType: string;
313
286
  deviceUrl: string;
287
+ effects: any;
314
288
  hostId: string;
315
289
  id: string;
316
- isMultistream: boolean;
317
290
  locusUrl: string;
318
291
  mediaConnections: any[];
319
- mediaId?: string;
320
292
  meetingFiniteStateMachine: any;
321
- meetingInfo: any;
293
+ meetingInfo: object;
322
294
  meetingRequest: MeetingRequest;
323
295
  members: Members;
324
296
  options: object;
@@ -330,13 +302,11 @@ export default class Meeting extends StatelessWebexPlugin {
330
302
  resource: string;
331
303
  roap: Roap;
332
304
  roapSeq: number;
333
- selfUrl?: string;
334
305
  sipUri: string;
335
306
  type: string;
336
307
  userId: string;
337
308
  video: any;
338
309
  callEvents: any[];
339
- datachannelUrl: string;
340
310
  deferJoin: Promise<any>;
341
311
  dialInDeviceStatus: string;
342
312
  dialInUrl: string;
@@ -348,46 +318,31 @@ export default class Meeting extends StatelessWebexPlugin {
348
318
  hasWebsocketConnected: boolean;
349
319
  inMeetingActions: InMeetingActions;
350
320
  isLocalShareLive: boolean;
351
- isRoapInProgress: boolean;
321
+ isSharing: boolean;
352
322
  keepAliveTimerId: NodeJS.Timeout;
353
323
  lastVideoLayoutInfo: any;
354
324
  locusInfo: any;
355
- locusMediaRequest?: LocusMediaRequest;
356
325
  mediaProperties: MediaProperties;
357
- mediaRequestManagers: {
358
- audio: MediaRequestManager;
359
- video: MediaRequestManager;
360
- screenShareAudio: MediaRequestManager;
361
- screenShareVideo: MediaRequestManager;
362
- };
363
326
  meetingInfoFailureReason: string;
364
- meetingInfoFailureCode?: number;
365
- meetingInfoExtraParams?: Record<string, any>;
366
327
  networkQualityMonitor: NetworkQualityMonitor;
367
- networkStatus?: NETWORK_STATUS;
328
+ networkStatus: string;
368
329
  passwordStatus: string;
369
330
  queuedMediaUpdates: any[];
370
331
  recording: any;
371
- remoteMediaManager: RemoteMediaManager | null;
372
332
  recordingController: RecordingController;
373
333
  controlsOptionsManager: ControlsOptionsManager;
374
334
  requiredCaptcha: any;
375
- receiveSlotManager: ReceiveSlotManager;
376
- selfUserPolicies: any;
377
- enforceVBGImagesURL: string;
378
335
  shareStatus: string;
379
- screenShareFloorState: ScreenShareFloorStatus;
380
336
  statsAnalyzer: StatsAnalyzer;
381
337
  transcription: Transcription;
382
338
  receiveTranscription: boolean;
383
339
  updateMediaConnections: (mediaConnections: any[]) => void;
384
- userDisplayHints: any;
385
- endCallInitJoinReq: any;
340
+ endCallInitiateJoinReq: any;
386
341
  endJoinReqResp: any;
387
342
  endLocalSDPGenRemoteSDPRecvDelay: any;
388
343
  joinedWith: any;
389
344
  locusId: any;
390
- startCallInitJoinReq: any;
345
+ startCallInitiateJoinReq: any;
391
346
  startJoinReqResp: any;
392
347
  startLocalSDPGenRemoteSDPRecvDelay: any;
393
348
  wirelessShare: any;
@@ -395,27 +350,12 @@ export default class Meeting extends StatelessWebexPlugin {
395
350
  meetingJoinUrl: any;
396
351
  meetingNumber: any;
397
352
  meetingState: any;
398
- permissionToken: string;
399
- permissionTokenPayload: any;
400
- permissionTokenReceivedLocalTime: number;
353
+ permissionToken: any;
401
354
  resourceId: any;
402
355
  resourceUrl: string;
403
356
  selfId: string;
404
357
  state: any;
405
- localAudioStreamMuteStateHandler: (muted: boolean) => void;
406
- localVideoStreamMuteStateHandler: (muted: boolean) => void;
407
- localOutputTrackChangeHandler: () => void;
408
- roles: any[];
409
- environment: string;
410
358
  namespace: string;
411
- allowMediaInLobby: boolean;
412
- turnDiscoverySkippedReason: string;
413
- turnServerUsed: boolean;
414
- private retriedWithTurnServer;
415
- private sendSlotManager;
416
- private deferSDPAnswer?;
417
- private sdpResponseTimer?;
418
- private hasMediaConnectionConnectedAtLeastOnce;
419
359
  /**
420
360
  * @param {Object} attrs
421
361
  * @param {Object} options
@@ -423,68 +363,29 @@ export default class Meeting extends StatelessWebexPlugin {
423
363
  * @memberof Meeting
424
364
  */
425
365
  constructor(attrs: any, options: object);
426
- /**
427
- * returns meeting is joined
428
- * @private
429
- * @memberof Meeting
430
- * @returns {Boolean}
431
- */
432
- private isJoined;
433
- /**
434
- * Returns whether this meeting is a Locus CALL
435
- * @returns {Boolean}
436
- */
437
- isLocusCall(): boolean;
438
- /**
439
- * Getter - Returns callStateForMetrics.correlationId
440
- * @returns {string}
441
- */
442
- get correlationId(): string;
443
- /**
444
- * Setter - sets callStateForMetrics.correlationId
445
- * @param {string} correlationId
446
- */
447
- set correlationId(correlationId: string);
448
- /**
449
- * Internal method for fetching meeting info
450
- *
451
- * @returns {Promise}
452
- */
453
- private fetchMeetingInfoInternal;
454
- /**
455
- * Refreshes the meeting info permission token (it's required for joining meetings)
456
- *
457
- * @param {string} [reason] used for metrics and logging purposes (optional)
458
- * @returns {Promise}
459
- */
460
- refreshPermissionToken(reason?: string): Promise<void>;
461
366
  /**
462
367
  * Fetches meeting information.
463
368
  * @param {Object} options
464
369
  * @param {String} [options.password] optional
465
370
  * @param {String} [options.captchaCode] optional
466
- * @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
467
371
  * @public
468
372
  * @memberof Meeting
469
373
  * @returns {Promise}
470
374
  */
471
- fetchMeetingInfo({ password, captchaCode, extraParams, sendCAevents, }: {
375
+ fetchMeetingInfo({ password, captchaCode, }: {
472
376
  password?: string;
473
377
  captchaCode?: string;
474
- extraParams?: Record<string, any>;
475
- sendCAevents?: boolean;
476
378
  }): Promise<void>;
477
379
  /**
478
380
  * Checks if the supplied password/host key is correct. It returns a promise with information whether the
479
381
  * password and captcha code were correct or not.
480
382
  * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
481
383
  * @param {String} captchaCode - can be undefined if captcha was not required by the server
482
- * @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
483
384
  * @public
484
385
  * @memberof Meeting
485
386
  * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
486
387
  */
487
- verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
388
+ verifyPassword(password: string, captchaCode: string): Promise<{
488
389
  isPasswordValid: boolean;
489
390
  requiredCaptcha: any;
490
391
  failureReason: string;
@@ -501,14 +402,6 @@ export default class Meeting extends StatelessWebexPlugin {
501
402
  * @returns {Promise}
502
403
  */
503
404
  refreshCaptcha(): any;
504
- /**
505
- * Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
506
- * @param {String} eventName - Call Analyzer event
507
- * @public
508
- * @memberof Meeting
509
- * @returns {Promise}
510
- */
511
- postMetrics(eventName: ClientEvent['name']): void;
512
405
  /**
513
406
  * Proxy function for all the listener set ups
514
407
  * @returns {undefined}
@@ -517,43 +410,70 @@ export default class Meeting extends StatelessWebexPlugin {
517
410
  */
518
411
  private setUpLocusInfoListeners;
519
412
  /**
520
- * Set up the listeners for breakouts
413
+ * Set up the locus info listener for meetings disconnected due to inactivity
521
414
  * @returns {undefined}
522
415
  * @private
523
416
  * @memberof Meeting
524
417
  */
525
- setUpBreakoutsListener(): void;
418
+ private setUpLocusInfoMediaInactiveListener;
526
419
  /**
527
- * Set up the listeners for interpretation
420
+ * Set up the locus info listener for assign host permissions on a meeting
528
421
  * @returns {undefined}
529
422
  * @private
530
423
  * @memberof Meeting
531
424
  */
532
- private setUpInterpretationListener;
425
+ private setUpLocusInfoAssignHostListener;
533
426
  /**
534
- * Set up the locus info listener for meetings disconnected due to inactivity
427
+ * Set up the internal locus info full state object listener
535
428
  * @returns {undefined}
536
429
  * @private
537
430
  * @memberof Meeting
538
431
  */
539
- private setUpLocusInfoMediaInactiveListener;
432
+ private setUpLocusFullStateListener;
540
433
  /**
541
- * Set up the locus info listener for assign host permissions on a meeting
542
- * @returns {undefined}
434
+ * get the metrics payload pre
435
+ * @param {Object} options
436
+ * @param {String} options.event
437
+ * @param {String} options.trackingId
438
+ * @param {Object} options.locus
439
+ * @param {Array} options.mediaConnections
440
+ * @param {Object} options.errors
441
+ * @returns {Object}
442
+ * @memberof Meeting
443
+ */
444
+ getAnalyzerMetricsPrePayload(options: {
445
+ event: string;
446
+ trackingId: string;
447
+ locus: object;
448
+ mediaConnections: Array<any>;
449
+ errors: object;
450
+ } | any): {};
451
+ /**
452
+ * Send the metrics to call-analyzer dashboard
453
+ * @param {Object} options
454
+ * @param {String} options.event
455
+ * @param {String} options.trackingId
456
+ * @param {Object} options.locus
457
+ * @param {Object} options.errors
458
+ * @returns {Promise}
543
459
  * @private
544
460
  * @memberof Meeting
545
461
  */
546
- private setUpLocusInfoAssignHostListener;
462
+ private sendCallAnalyzerMetrics;
547
463
  /**
548
- * Set up the internal locus info full state object listener
549
- * @returns {undefined}
464
+ * Send the metrics to Media Quality Analyzer dashboard
465
+ * @param {Object} options
466
+ * @param {String} options.event
467
+ * @param {String} options.trackingId
468
+ * @param {Object} options.locus
469
+ * @returns {Promise}
550
470
  * @private
551
471
  * @memberof Meeting
552
472
  */
553
- private setUpLocusFullStateListener;
473
+ private sendMediaQualityAnalyzerMetrics;
554
474
  /**
555
475
  * sets the network status on meeting object
556
- * @param {NETWORK_STATUS} networkStatus
476
+ * @param {String} networkStatus
557
477
  * @private
558
478
  * @returns {undefined}
559
479
  * @memberof Meeting
@@ -613,13 +533,6 @@ export default class Meeting extends StatelessWebexPlugin {
613
533
  * @memberof Meeting
614
534
  */
615
535
  private setupLocusControlsListener;
616
- /**
617
- * Trigger annotation info update event
618
- @returns {undefined}
619
- @param {object} contentShare
620
- @param {object} previousContentShare
621
- */
622
- private triggerAnnotationInfoEvent;
623
536
  /**
624
537
  * Set up the locus info media shares listener
625
538
  * update content and whiteboard sharing id value for members, and updates the member
@@ -654,12 +567,6 @@ export default class Meeting extends StatelessWebexPlugin {
654
567
  * @memberof meeting
655
568
  */
656
569
  private setUpLocusInfoMeetingInfoListener;
657
- /**
658
- * Handles a data channel URL change
659
- * @param {String} datachannelUrl
660
- * @returns {void}
661
- */
662
- handleDataChannelUrlChange(datachannelUrl: any): void;
663
570
  /**
664
571
  * Set up the locus info embedded apps listener
665
572
  * @returns {undefined}
@@ -718,23 +625,13 @@ export default class Meeting extends StatelessWebexPlugin {
718
625
  phoneNumber: string;
719
626
  }): any;
720
627
  /**
721
- * Admit the guest(s) to the call once they are waiting.
722
- * If the host/cohost is in a breakout session, the locus url
723
- * of the session must be provided as the authorizingLocusUrl.
724
- * Regardless of host/cohost location, the locus Id (lid) in
725
- * the path should be the locus Id of the main, which means the
726
- * locus url of the api call must be from the main session.
727
- * If these loucs urls are not provided, the function will do the check.
628
+ * Admit the guest(s) to the call once they are waiting
728
629
  * @param {Array} memberIds
729
- * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
730
630
  * @returns {Promise} see #members.admitMembers
731
631
  * @public
732
632
  * @memberof Meeting
733
633
  */
734
- admit(memberIds: Array<any>, sessionLocusUrls?: {
735
- authorizingLocusUrl: string;
736
- mainLocusUrl: string;
737
- }): any;
634
+ admit(memberIds: Array<any>): any;
738
635
  /**
739
636
  * Remove the member from the meeting, boot them
740
637
  * @param {String} memberId
@@ -768,6 +665,48 @@ export default class Meeting extends StatelessWebexPlugin {
768
665
  * @memberof Meeting
769
666
  */
770
667
  getMembers(): Members;
668
+ /**
669
+ * Truthy when a meeting has an audio connection established
670
+ * @returns {Boolean} true if meeting audio is connected otherwise false
671
+ * @public
672
+ * @memberof Meeting
673
+ */
674
+ isAudioConnected(): boolean;
675
+ /**
676
+ * Convenience function to tell whether a meeting is muted
677
+ * @returns {Boolean} if meeting audio muted or not
678
+ * @public
679
+ * @memberof Meeting
680
+ */
681
+ isAudioMuted(): any;
682
+ /**
683
+ * Convenience function to tell if the end user last changed the audio state
684
+ * @returns {Boolean} if audio was manipulated by the end user
685
+ * @public
686
+ * @memberof Meeting
687
+ */
688
+ isAudioSelf(): any;
689
+ /**
690
+ * Truthy when a meeting has a video connection established
691
+ * @returns {Boolean} true if meeting video connected otherwise false
692
+ * @public
693
+ * @memberof Meeting
694
+ */
695
+ isVideoConnected(): boolean;
696
+ /**
697
+ * Convenience function to tell whether video is muted
698
+ * @returns {Boolean} if meeting video is muted or not
699
+ * @public
700
+ * @memberof Meeting
701
+ */
702
+ isVideoMuted(): any;
703
+ /**
704
+ * Convenience function to tell whether the end user changed the video state
705
+ * @returns {Boolean} if meeting video is muted or not
706
+ * @public
707
+ * @memberof Meeting
708
+ */
709
+ isVideoSelf(): any;
771
710
  /**
772
711
  * Sets the meeting info on the class instance
773
712
  * @param {Object} meetingInfo
@@ -790,29 +729,16 @@ export default class Meeting extends StatelessWebexPlugin {
790
729
  };
791
730
  } | any, destination?: object | string | null): void;
792
731
  /**
793
- * Indicates whether policy can be applied
794
- * @returns {boolean}
795
- */
796
- private arePolicyRestrictionsSupported;
797
- /**
798
- * Updates the meeting actions (display hints), depends on locus display hints, user policy and app api info
732
+ * Sets the first locus info on the class instance
733
+ * @param {Object} locus
734
+ * @param {String} locus.url
735
+ * @param {Array} locus.participants
736
+ * @param {Object} locus.self
799
737
  * @returns {undefined}
800
738
  * @private
801
739
  * @memberof Meeting
802
740
  */
803
- private updateMeetingActions;
804
- /**
805
- * Sets the self user policies based on the contents of the permission token
806
- * @returns {void}
807
- */
808
- setSelfUserPolicies(): void;
809
- /**
810
- * Sets the permission token payload on the class instance
811
- *
812
- * @param {String} permissionToken
813
- * @returns {void}
814
- */
815
- setPermissionTokenPayload(permissionToken: string): void;
741
+ private parseLocus;
816
742
  /**
817
743
  * Sets the sip uri on the class instance
818
744
  * uses meeting info as precedence
@@ -822,6 +748,14 @@ export default class Meeting extends StatelessWebexPlugin {
822
748
  * @memberof Meeting
823
749
  */
824
750
  setSipUri(sipUri: string): void;
751
+ /**
752
+ * Set the roap seq on the class instance
753
+ * @param {Number} seq
754
+ * @returns {undefined}
755
+ * @private
756
+ * @memberof Meeting
757
+ */
758
+ setRoapSeq(seq: number): void;
825
759
  /**
826
760
  * Set the locus info the class instance
827
761
  * @param {Object} locus
@@ -835,13 +769,16 @@ export default class Meeting extends StatelessWebexPlugin {
835
769
  * @private
836
770
  * @memberof Meeting
837
771
  */
838
- setLocus(locus: {
839
- mediaConnections: Array<any>;
840
- locusUrl: string;
841
- locusId: string;
842
- mediaId: string;
843
- host: object;
844
- } | any): void;
772
+ private setLocus;
773
+ /**
774
+ * Sets the remote stream on the class instance and emits and
775
+ * event to developers
776
+ * @param {Object} pc The remote stream peer connection
777
+ * @returns {undefined}
778
+ * @public
779
+ * @memberof Meeting
780
+ */
781
+ setRemoteStream(pc: any): void;
845
782
  /**
846
783
  * Upload logs for the current meeting
847
784
  * @param {object} options file name and function name
@@ -851,10 +788,19 @@ export default class Meeting extends StatelessWebexPlugin {
851
788
  */
852
789
  uploadLogs(options?: object): void;
853
790
  /**
854
- * Removes remote audio, video and share streams from class instance's mediaProperties
791
+ * Removes remote audio and video stream on the class instance and triggers an event
792
+ * to developers
855
793
  * @returns {undefined}
794
+ * @public
795
+ * @memberof Meeting
796
+ * @deprecated after v1.89.3
856
797
  */
857
- unsetRemoteStreams(): void;
798
+ unsetRemoteStream(): void;
799
+ /**
800
+ * Removes remote audio, video and share tracks from class instance's mediaProperties
801
+ * @returns {undefined}
802
+ */
803
+ unsetRemoteTracks(): void;
858
804
  /**
859
805
  * Removes the remote stream on the class instance and triggers an event
860
806
  * to developers
@@ -865,92 +811,115 @@ export default class Meeting extends StatelessWebexPlugin {
865
811
  */
866
812
  closeRemoteStream(): void;
867
813
  /**
868
- * Removes the remote streams on the class instance and triggers an event
814
+ * Removes the remote tracks on the class instance and triggers an event
869
815
  * to developers
870
816
  * @returns {undefined}
871
817
  * @memberof Meeting
872
818
  */
873
- closeRemoteStreams(): Promise<[any, any, any]>;
819
+ closeRemoteTracks(): Promise<[any, any, any]>;
874
820
  /**
875
- * Stores the reference to a new microphone stream, sets up the required event listeners
876
- * on it, cleans up previous stream, etc.
877
- *
878
- * @param {LocalMicrophoneStream | null} localStream local microphone stream
879
- * @returns {Promise<void>}
821
+ * Emits the 'media:ready' event with a local stream that consists of 1 local audio and 1 local video track
822
+ * @returns {undefined}
823
+ * @private
824
+ * @memberof Meeting
880
825
  */
881
- private setLocalAudioStream;
826
+ private sendLocalMediaReadyEvent;
882
827
  /**
883
- * Stores the reference to a new camera stream, sets up the required event listeners
884
- * on it, cleans up previous stream, etc.
885
- *
886
- * @param {LocalCameraStream | null} localStream local camera stream
887
- * @returns {Promise<void>}
828
+ * Sets the local audio track on the class and emits an event to the developer
829
+ * @param {MediaStreamTrack} audioTrack
830
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
831
+ * @returns {undefined}
832
+ * @private
833
+ * @memberof Meeting
888
834
  */
889
- private setLocalVideoStream;
835
+ private setLocalAudioTrack;
890
836
  /**
891
- * Stores the reference to a new screen share stream, sets up the required event listeners
892
- * on it, cleans up previous stream, etc.
893
- * It also sends the floor grant/release request.
894
- *
895
- * @param {LocalDisplayStream | undefined} localDisplayStream local display stream
896
- * @returns {Promise<void>}
837
+ * Sets the local video track on the class and emits an event to the developer
838
+ * @param {MediaStreamTrack} videoTrack
839
+ * @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
840
+ * @returns {undefined}
841
+ * @private
842
+ * @memberof Meeting
897
843
  */
898
- private setLocalShareVideoStream;
844
+ private setLocalVideoTrack;
899
845
  /**
900
- * Stores the reference to a new screen share audio stream, sets up the required event listeners
901
- * on it, cleans up previous stream, etc.
902
- *
903
- * @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
904
- * @returns {Promise<void>}
846
+ * Sets the local media stream on the class and emits an event to the developer
847
+ * @param {Stream} localStream the local media stream
848
+ * @returns {undefined}
849
+ * @public
850
+ * @memberof Meeting
905
851
  */
906
- private setLocalShareAudioStream;
852
+ setLocalTracks(localStream: any): void;
907
853
  /**
908
- * sets up listner for mercury event
854
+ * Sets the local media stream on the class and emits an event to the developer
855
+ * @param {MediaStream} localShare the local media stream
909
856
  * @returns {undefined}
910
857
  * @public
911
858
  * @memberof Meeting
912
859
  */
913
- setMercuryListener(): void;
860
+ setLocalShareTrack(localShare: MediaStream): void;
914
861
  /**
915
- * Close the peer connections and remove them from the class.
916
- * Cleanup any media connection related things.
917
- *
918
- * @returns {Promise}
862
+ * Closes the local stream from the class and emits an event to the developer
863
+ * @returns {undefined}
864
+ * @event media:stopped
919
865
  * @public
920
866
  * @memberof Meeting
921
867
  */
922
- closePeerConnections(): Promise<void>;
868
+ closeLocalStream(): any;
923
869
  /**
924
- * Unsets the peer connections on the class
925
- * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
870
+ * Closes the local stream from the class and emits an event to the developer
926
871
  * @returns {undefined}
872
+ * @event media:stopped
927
873
  * @public
928
874
  * @memberof Meeting
929
875
  */
930
- unsetPeerConnections(): void;
876
+ closeLocalShare(): any;
931
877
  /**
932
- * Convenience method to set the correlation id for the callStateForMetrics
933
- * @param {String} id correlation id to set on the callStateForMetrics
878
+ * Removes the local stream from the class and emits an event to the developer
934
879
  * @returns {undefined}
935
880
  * @public
936
881
  * @memberof Meeting
937
882
  */
938
- setCorrelationId(id: string): void;
883
+ unsetLocalVideoTrack(): void;
939
884
  /**
940
- * Update the callStateForMetrics
941
- * @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
885
+ * Removes the local share from the class and emits an event to the developer
942
886
  * @returns {undefined}
943
887
  * @public
944
888
  * @memberof Meeting
945
889
  */
946
- updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
890
+ unsetLocalShareTrack(): void;
947
891
  /**
948
- * Enqueue request for screenshare floor and set the status to pending
949
- * @returns {Promise}
892
+ * sets up listner for mercury event
893
+ * @returns {undefined}
894
+ * @public
895
+ * @memberof Meeting
896
+ */
897
+ setMercuryListener(): void;
898
+ /**
899
+ * Close the peer connections and remove them from the class. Triggers an event
900
+ * when each is closed.
901
+ * @returns {Promise} returns a resolved promise with an array of closed peer connections
902
+ * @public
903
+ * @memberof Meeting
904
+ */
905
+ closePeerConnections(): any;
906
+ /**
907
+ * Unsets the peer connections on the class
908
+ * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
909
+ * @param {PeerConnection} peerConnection
910
+ * @returns {undefined}
911
+ * @public
912
+ * @memberof Meeting
913
+ */
914
+ unsetPeerConnections(): void;
915
+ /**
916
+ * Convenience method to set the correlation id for the Meeting
917
+ * @param {String} id correlation id to set on the class
918
+ * @returns {undefined}
950
919
  * @private
951
920
  * @memberof Meeting
952
921
  */
953
- private enqueueScreenShareFloorRequest;
922
+ private setCorrelationId;
954
923
  /**
955
924
  * Mute the audio for a meeting
956
925
  * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
@@ -983,25 +952,32 @@ export default class Meeting extends StatelessWebexPlugin {
983
952
  * Shorthand function to join AND set up media
984
953
  * @param {Object} options - options to join with media
985
954
  * @param {JoinOptions} [options.joinOptions] - see #join()
986
- * @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
987
- * @returns {Promise} -- {join: see join(), media: see addMedia()}
955
+ * @param {MediaDirection} options.mediaSettings - see #addMedia()
956
+ * @param {AudioVideo} [options.audioVideoOptions] - see #getMediaStreams()
957
+ * @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
988
958
  * @public
989
959
  * @memberof Meeting
990
960
  * @example
991
961
  * joinWithMedia({
992
962
  * joinOptions: {resourceId: 'resourceId' },
993
- * mediaOptions: {
994
- * localStreams: { microphone: microphoneStream, camera: cameraStream }
995
- * }
996
- * })
963
+ * mediaSettings: {
964
+ * sendAudio: true,
965
+ * sendVideo: true,
966
+ * sendShare: false,
967
+ * receiveVideo:true,
968
+ * receiveAudio: true,
969
+ * receiveShare: true
970
+ * }
971
+ * audioVideoOptions: {
972
+ * audio: 'audioDeviceId',
973
+ * video: 'videoDeviceId'
974
+ * }})
997
975
  */
998
976
  joinWithMedia(options?: {
999
977
  joinOptions?: any;
1000
- mediaOptions?: AddMediaOptions;
1001
- }): Promise<{
1002
- join: any;
1003
- media: void;
1004
- }>;
978
+ mediaSettings: any;
979
+ audioVideoOptions?: any;
980
+ }): any;
1005
981
  /**
1006
982
  * Initiates the reconnection of the media in the meeting
1007
983
  *
@@ -1017,11 +993,6 @@ export default class Meeting extends StatelessWebexPlugin {
1017
993
  * @throws TranscriptionNotSupportedError
1018
994
  */
1019
995
  isTranscriptionSupported(): boolean;
1020
- /**
1021
- * Check if the meeting supports the Reactions
1022
- * @returns {boolean}
1023
- */
1024
- isReactionsSupported(): boolean;
1025
996
  /**
1026
997
  * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
1027
998
  * @private
@@ -1034,13 +1005,6 @@ export default class Meeting extends StatelessWebexPlugin {
1034
1005
  * @returns {Promise<void>} a promise to open the WebSocket connection
1035
1006
  */
1036
1007
  private startTranscription;
1037
- /**
1038
- * Callback called when a relay event is received from meeting LLM Connection
1039
- * @param {RelayEvent} e Event object coming from LLM Connection
1040
- * @private
1041
- * @returns {void}
1042
- */
1043
- private processRelayEvent;
1044
1008
  /**
1045
1009
  * stop recieving Transcription by closing
1046
1010
  * the web socket connection properly
@@ -1066,14 +1030,7 @@ export default class Meeting extends StatelessWebexPlugin {
1066
1030
  * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
1067
1031
  * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
1068
1032
  */
1069
- join(options?: any): Promise<any>;
1070
- /**
1071
- * Connects to low latency mercury and reconnects if the address has changed
1072
- * It will also disconnect if called when the meeting has ended
1073
- * @param {String} datachannelUrl
1074
- * @returns {Promise}
1075
- */
1076
- updateLLMConnection(): Promise<any>;
1033
+ join(options?: any): any;
1077
1034
  /**
1078
1035
  * Use phone for meeting audio
1079
1036
  * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
@@ -1081,7 +1038,7 @@ export default class Meeting extends StatelessWebexPlugin {
1081
1038
  * @public
1082
1039
  * @memberof Meeting
1083
1040
  */
1084
- usePhoneAudio(phoneNumber: string): Promise<any>;
1041
+ usePhoneAudio(phoneNumber: string): any;
1085
1042
  /**
1086
1043
  * Determines if the given pstnStatus is in a state which implies the phone is provisioned
1087
1044
  * @param {String} pstnStatus
@@ -1130,162 +1087,58 @@ export default class Meeting extends StatelessWebexPlugin {
1130
1087
  */
1131
1088
  moveFrom(resourceId: string): any;
1132
1089
  /**
1133
- * Handles ROAP_FAILURE event from the webrtc media connection
1134
- *
1135
- * @param {Error} error
1136
- * @returns {void}
1137
- */
1138
- handleRoapFailure: (error: any) => void;
1139
- /**
1140
- * This function makes sure we send the right metrics when local and remote SDPs are processed/generated
1141
- *
1142
- * @returns {undefined}
1090
+ * Get local media streams based on options passed
1091
+ * @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
1092
+ * @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
1093
+ * @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
1094
+ * @returns {Promise} see #Media.getUserMedia
1095
+ * @public
1096
+ * @todo should be static, or moved so can be called outside of a meeting
1097
+ * @memberof Meeting
1143
1098
  */
1144
- setupSdpListeners: () => void;
1145
- setupMediaConnectionListeners: () => void;
1099
+ getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
1146
1100
  /**
1147
- * Registers for all required StatsAnalyzer events
1148
- * @private
1149
- * @returns {void}
1101
+ * Checks if the machine has at least one audio or video device
1102
+ * @param {Object} options
1103
+ * @param {Boolean} options.sendAudio
1104
+ * @param {Boolean} options.sendVideo
1105
+ * @returns {Object}
1150
1106
  * @memberof Meetings
1151
1107
  */
1152
- setupStatsAnalyzerEventHandlers: () => void;
1153
- getMediaConnectionDebugId(): string;
1108
+ getSupportedDevices: ({ sendAudio, sendVideo, }: {
1109
+ sendAudio: boolean;
1110
+ sendVideo: boolean;
1111
+ }) => any;
1154
1112
  /**
1155
- * Creates a webrtc media connection and publishes streams to it
1156
- *
1157
- * @param {Object} turnServerInfo TURN server information
1158
- * @param {BundlePolicy} [bundlePolicy] Bundle policy settings
1159
- * @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
1160
- * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
1161
- */
1162
- private createMediaConnection;
1163
- /**
1164
- * Listens for an event emitted by eventEmitter and emits it from the meeting object
1165
- *
1166
- * @private
1167
- * @param {*} eventEmitter object from which to forward the event
1168
- * @param {*} eventTypeToForward which event type to listen on and to forward
1169
- * @param {string} meetingEventType event type to be used in the event emitted from the meeting object
1170
- * @returns {void}
1171
- */
1172
- forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
1173
- /**
1174
- * Sets up all the references to local streams in this.mediaProperties before creating media connection
1175
- * and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
1176
- *
1177
- * @private
1178
- * @param {LocalStreams} localStreams
1179
- * @returns {Promise<void>}
1180
- */
1181
- private setUpLocalStreamReferences;
1182
- /**
1183
- * Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
1184
- *
1185
- * @private
1186
- * @returns {Promise<void>}
1113
+ * Get the devices from the Media module
1114
+ * @returns {Promise} resolves to an array of DeviceInfo
1115
+ * @memberof Meetings
1187
1116
  */
1188
- private waitForMediaConnectionConnected;
1117
+ getDevices: () => any;
1189
1118
  /**
1190
- * Enables statsAnalyser if config allows it
1191
- *
1119
+ * Registers for all required StatsAnalyzer events
1192
1120
  * @private
1193
1121
  * @returns {void}
1122
+ * @memberof Meetings
1194
1123
  */
1195
- private createStatsAnalyzer;
1196
- /**
1197
- * Handles device logging
1198
- *
1199
- * @private
1200
- * @static
1201
- * @returns {Promise<void>}
1202
- */
1203
- private static handleDeviceLogging;
1204
- /**
1205
- * Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
1206
- * once the remote sdp answer has been received.
1207
- *
1208
- * @private
1209
- * @returns {Promise<void>}
1210
- */
1211
- private waitForRemoteSDPAnswer;
1212
- /**
1213
- * Calls establishMediaConnection with isForced = true to force turn discovery to happen
1214
- *
1215
- * @private
1216
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1217
- * @param {BundlePolicy} [bundlePolicy]
1218
- * @returns {Promise<void>}
1219
- */
1220
- private retryEstablishMediaConnectionWithForcedTurnDiscovery;
1221
- /**
1222
- * Does relevant clean up before retrying to establish media connection
1223
- * and performs the retry with forced turn discovery
1224
- *
1225
- * @private
1226
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1227
- * @param {BundlePolicy} [bundlePolicy]
1228
- * @returns {Promise<void>}
1229
- */
1230
- private retryWithForcedTurnDiscovery;
1231
- /**
1232
- * If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
1233
- * attempt to establish a media connection again, but this time using turn discovery. If we
1234
- * used turn discovery on the first pass we do not attempt connection again.
1235
- *
1236
- * @private
1237
- * @param {Error} error
1238
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1239
- * @param {BundlePolicy} [bundlePolicy]
1240
- * @returns {Promise<void>}
1241
- */
1242
- private handleWaitForMediaConnectionConnectedError;
1243
- /**
1244
- * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
1245
- *
1246
- * @private
1247
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1248
- * @param {BundlePolicy} [bundlePolicy]
1249
- * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
1250
- * @returns {Promise<void>}
1251
- */
1252
- private establishMediaConnection;
1253
- /**
1254
- * Cleans up stats analyzer, peer connection, and turns off listeners
1255
- *
1256
- * @private
1257
- * @returns {Promise<void>}
1258
- */
1259
- private cleanUpOnAddMediaFailure;
1260
- /**
1261
- * Sends stats report, closes peer connection and cleans up any media connection
1262
- * related things before trying to establish media connection again with turn server
1263
- *
1264
- * @private
1265
- * @returns {Promise<void>}
1266
- */
1267
- private cleanUpBeforeRetryWithTurnServer;
1124
+ setupStatsAnalyzerEventHandlers: () => void;
1268
1125
  /**
1269
- * Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
1270
- *
1271
- * @param {AddMediaOptions} options
1272
- * @returns {Promise<void>}
1126
+ * Specify joining via audio (option: pstn), video, screenshare
1127
+ * @param {Object} options A configurable options object for joining a meeting
1128
+ * @param {Object} options.resourceId pass the deviceId
1129
+ * @param {MediaDirection} options.mediaSettings pass media options
1130
+ * @param {MediaStream} options.localStream
1131
+ * @param {MediaStream} options.localShare
1132
+ * @returns {Promise}
1273
1133
  * @public
1274
1134
  * @memberof Meeting
1275
1135
  */
1276
- addMedia(options?: AddMediaOptions): Promise<void>;
1136
+ addMedia(options?: any): any;
1277
1137
  /**
1278
1138
  * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
1279
1139
  * @returns {Boolean}
1280
1140
  */
1281
1141
  canUpdateMedia(): boolean;
1282
- /**
1283
- * media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
1284
- * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
1285
- * @param {String} callFrom - the function calling this function, optional.
1286
- * @returns {Promise<void>}
1287
- */
1288
- private forceSendStatsReport;
1289
1142
  /**
1290
1143
  * Enqueues a media update operation.
1291
1144
  * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
@@ -1311,26 +1164,86 @@ export default class Meeting extends StatelessWebexPlugin {
1311
1164
  */
1312
1165
  processNextQueuedMediaUpdate: () => void;
1313
1166
  /**
1314
- * Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
1315
- * This does not affect the published tracks, so for example if a microphone track is published and
1316
- * updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
1317
- * but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
1318
- * the sending of the audio from the same track will resume.
1319
- *
1167
+ * A confluence of updateAudio, updateVideo, and updateShare
1168
+ * this function re-establishes all of the media streams with new options
1320
1169
  * @param {Object} options
1321
- * @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
1322
- * @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
1323
- * @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
1170
+ * @param {MediaStream} options.localStream
1171
+ * @param {MediaStream} options.localShare
1172
+ * @param {MediaDirection} options.mediaSettings
1324
1173
  * @returns {Promise}
1174
+ * @todo fix setRemoteStream for updateMedia
1325
1175
  * @public
1326
1176
  * @memberof Meeting
1327
1177
  */
1328
- updateMedia(options: {
1329
- audioEnabled?: boolean;
1330
- videoEnabled?: boolean;
1331
- shareAudioEnabled?: boolean;
1332
- shareVideoEnabled?: boolean;
1333
- }): Promise<void>;
1178
+ updateMedia(options?: {
1179
+ localStream?: MediaStream;
1180
+ localShare?: MediaStream;
1181
+ mediaSettings?: any;
1182
+ }): any;
1183
+ /**
1184
+ * Update the main audio track with new parameters
1185
+ * @param {Object} options
1186
+ * @param {boolean} options.sendAudio
1187
+ * @param {boolean} options.receiveAudio
1188
+ * @param {MediaStream} options.stream Stream that contains the audio track to update
1189
+ * @returns {Promise}
1190
+ * @public
1191
+ * @memberof Meeting
1192
+ */
1193
+ updateAudio(options: {
1194
+ sendAudio: boolean;
1195
+ receiveAudio: boolean;
1196
+ stream: MediaStream;
1197
+ }): Promise<any>;
1198
+ /**
1199
+ * Update the main video track with new parameters
1200
+ * @param {Object} options
1201
+ * @param {boolean} options.sendVideo
1202
+ * @param {boolean} options.receiveVideo
1203
+ * @param {MediaStream} options.stream Stream that contains the video track to update
1204
+ * @returns {Promise}
1205
+ * @public
1206
+ * @memberof Meeting
1207
+ */
1208
+ updateVideo(options: {
1209
+ sendVideo: boolean;
1210
+ receiveVideo: boolean;
1211
+ stream: MediaStream;
1212
+ }): any;
1213
+ /**
1214
+ * Internal function when stopping a share stream, cleanup
1215
+ * @param {boolean} sendShare
1216
+ * @param {boolean} previousShareStatus
1217
+ * @returns {Promise}
1218
+ * @private
1219
+ * @memberof Meeting
1220
+ */
1221
+ private checkForStopShare;
1222
+ /**
1223
+ * Update the share streams, can be used to start sharing
1224
+ * @param {Object} options
1225
+ * @param {boolean} options.sendShare
1226
+ * @param {boolean} options.receiveShare
1227
+ * @returns {Promise}
1228
+ * @public
1229
+ * @memberof Meeting
1230
+ */
1231
+ updateShare(options: {
1232
+ sendShare?: boolean;
1233
+ receiveShare?: boolean;
1234
+ stream?: any;
1235
+ skipSignalingCheck?: boolean;
1236
+ }): any;
1237
+ /**
1238
+ * Do all the attach media pre set up before executing the actual attach
1239
+ * @param {MediaStream} localStream
1240
+ * @param {MediaStream} localShare
1241
+ * @param {MediaDirection} mediaSettings
1242
+ * @returns {undefined}
1243
+ * @private
1244
+ * @memberof Meeting
1245
+ */
1246
+ private preMedia;
1334
1247
  /**
1335
1248
  * Acknowledge the meeting, outgoing or incoming
1336
1249
  * @param {String} type
@@ -1338,11 +1251,7 @@ export default class Meeting extends StatelessWebexPlugin {
1338
1251
  * @public
1339
1252
  * @memberof Meeting
1340
1253
  */
1341
- acknowledge(type: string): Promise<{
1342
- response: any;
1343
- }> | Promise<{
1344
- message: string;
1345
- }>;
1254
+ acknowledge(type: string): any;
1346
1255
  /**
1347
1256
  * Decline this meeting
1348
1257
  * @param {String} reason
@@ -1352,45 +1261,15 @@ export default class Meeting extends StatelessWebexPlugin {
1352
1261
  */
1353
1262
  decline(reason: string): any;
1354
1263
  /**
1355
- * Returns a promise that will resolve to fetch options for leaving a meeting.
1356
- *
1357
- * This is to support quickly submitting a leave request when the browser/tab is closing.
1358
- * Calling meeting.leave will not work because there are some async steps that will
1359
- * not complete before the browser is closed. Instead, we pre-gather all the
1360
- * information/options needed for the request(s), and then simply and quickly
1361
- * fire the fetch(es) when pagehide is triggered.
1362
- *
1363
- * We must use fetch instead of request because fetch has a keepalive option that
1364
- * allows the request it to outlive the page.
1365
- *
1366
- * Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
1367
- * properly adjust them before submitting.
1368
- *
1369
- * @public
1264
+ * Leave the current meeting
1370
1265
  * @param {Object} options leave options
1371
1266
  * @param {String} options.resourceId the device with which to leave from, empty if just the computer
1372
- * @param {any} options.reason the reason for leaving
1373
- * @returns {Promise} resolves to options to be used with fetch
1374
- */
1375
- buildLeaveFetchRequestOptions(options?: {
1376
- resourceId?: string;
1377
- reason?: any;
1378
- }): any;
1379
- /**
1380
- * Leave the current meeting
1381
- * @param {Object} options - leave options
1382
- * @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
1383
- * @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
1384
- * Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
1385
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
1386
- * @param {String} [options.reason] - only used for logging
1387
1267
  * @returns {Promise}
1388
1268
  * @public
1389
1269
  * @memberof Meeting
1390
1270
  */
1391
1271
  leave(options?: {
1392
1272
  resourceId?: string;
1393
- clientEventLeaveReason?: ClientEventLeaveReason;
1394
1273
  reason?: any;
1395
1274
  }): any;
1396
1275
  /**
@@ -1418,12 +1297,12 @@ export default class Meeting extends StatelessWebexPlugin {
1418
1297
  */
1419
1298
  private requestScreenShareFloor;
1420
1299
  /**
1421
- * Requests screen share floor if such request is pending.
1422
- * It should be called whenever meeting state changes to JOINED
1423
- *
1424
- * @returns {void}
1300
+ * Stops the screen share
1301
+ * @returns {Promise} see #updateShare
1302
+ * @public
1303
+ * @memberof Meeting
1425
1304
  */
1426
- private requestScreenShareFloorIfPending;
1305
+ stopShare(options?: {}): any;
1427
1306
  /**
1428
1307
  * Sends a request to Locus to release the screen share floor.
1429
1308
  * @returns {Promise} see #meetingRequest.changeMeetingFloor
@@ -1454,16 +1333,6 @@ export default class Meeting extends StatelessWebexPlugin {
1454
1333
  * @memberof Meeting
1455
1334
  */
1456
1335
  setDisallowUnmute(enabled: boolean): Promise<any>;
1457
- /**
1458
- * set the mute all flag for participants if you're the host
1459
- * @returns {Promise}
1460
- * @param {boolean} mutedEnabled
1461
- * @param {boolean} disallowUnmuteEnabled
1462
- * @param {boolean} muteOnEntryEnabled
1463
- * @public
1464
- * @memberof Meeting
1465
- */
1466
- setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
1467
1336
  /**
1468
1337
  * End the recording of this meeting
1469
1338
  * @returns {Promise}
@@ -1514,7 +1383,7 @@ export default class Meeting extends StatelessWebexPlugin {
1514
1383
  * @public
1515
1384
  * @memberof Meeting
1516
1385
  */
1517
- sendDTMF(tones: string): Promise<any>;
1386
+ sendDTMF(tones: string): any;
1518
1387
  /**
1519
1388
  * Sends request to change layout type for the current meeting for the specific participant/device only
1520
1389
  * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
@@ -1539,41 +1408,50 @@ export default class Meeting extends StatelessWebexPlugin {
1539
1408
  height: number;
1540
1409
  };
1541
1410
  }): any;
1411
+ /**
1412
+ * Sets the quality of the local video stream
1413
+ * @param {String} level {LOW|MEDIUM|HIGH}
1414
+ * @returns {Promise<MediaStream>} localStream
1415
+ */
1416
+ setLocalVideoQuality(level: string): any;
1542
1417
  /**
1543
1418
  * Sets the quality level of the remote incoming media
1544
1419
  * @param {String} level {LOW|MEDIUM|HIGH}
1545
1420
  * @returns {Promise}
1546
1421
  */
1547
- setRemoteQualityLevel(level: string): Promise<void>;
1422
+ setRemoteQualityLevel(level: string): any;
1548
1423
  /**
1549
- * Functionality for when a share audio is ended.
1550
- * @private
1551
- * @memberof Meeting
1552
- * @returns {undefined}
1424
+ * This is deprecated, please use setLocalVideoQuality for setting local and setRemoteQualityLevel for remote
1425
+ * @param {String} level {LOW|MEDIUM|HIGH}
1426
+ * @returns {Promise}
1427
+ * @deprecated After FHD support
1553
1428
  */
1554
- private handleShareAudioStreamEnded;
1429
+ setMeetingQuality(level: string): any;
1555
1430
  /**
1556
- * Functionality for when a share video is muted or unmuted.
1557
- * @private
1558
- * @memberof Meeting
1559
- * @param {boolean} muted
1560
- * @returns {undefined}
1431
+ * @param {Object} options parameter
1432
+ * @param {Boolean} options.sendAudio send audio from the display share
1433
+ * @param {Boolean} options.sendShare send video from the display share
1434
+ * @param {Object} options.sharePreferences
1435
+ * @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
1436
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
1437
+ * @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
1438
+ * @returns {Promise}
1561
1439
  */
1562
- private handleShareVideoStreamMuteStateChange;
1440
+ shareScreen(options?: {
1441
+ sendAudio: boolean;
1442
+ sendShare: boolean;
1443
+ sharePreferences: {
1444
+ shareConstraints: MediaTrackConstraints;
1445
+ };
1446
+ }): any;
1563
1447
  /**
1564
- * Functionality for when a share video is ended.
1448
+ * Functionality for when a share is ended.
1565
1449
  * @private
1566
1450
  * @memberof Meeting
1451
+ * @param {MediaStream} localShare
1567
1452
  * @returns {undefined}
1568
1453
  */
1569
- private handleShareVideoStreamEnded;
1570
- /**
1571
- * Emits meeting:stoppedSharingLocal
1572
- * @private
1573
- * @returns {undefined}
1574
- * @memberof Meeting
1575
- */
1576
- private triggerStoppedSharing;
1454
+ private handleShareTrackEnded;
1577
1455
  /**
1578
1456
  * Emits the 'network:quality' event
1579
1457
  * 1 indicates an acceptable uplink network.
@@ -1588,132 +1466,157 @@ export default class Meeting extends StatelessWebexPlugin {
1588
1466
  private sendNetworkQualityEvent;
1589
1467
  /**
1590
1468
  * Handle logging the media
1591
- * @param {Object} mediaProperties
1469
+ * @param {Object} audioTrack The audio track
1470
+ * @param {Object} videoTrack The video track
1592
1471
  * @private
1593
1472
  * @returns {undefined}
1594
1473
  */
1595
1474
  private handleMediaLogging;
1596
1475
  /**
1597
- *
1598
- * @returns {string} one of 'attendee','host','cohost', returns the user type of the current user
1476
+ * @param {string} typeMedia 'audio' or 'video'
1477
+ * @returns {undefined}
1599
1478
  */
1600
- getCurUserType(): "host" | "cohost" | "attendee";
1479
+ setStartSetupDelay(typeMedia: string): void;
1601
1480
  /**
1602
- * End the current meeting for all
1603
- * @returns {Promise}
1604
- * @public
1605
- * @memberof Meeting
1481
+ * @param {string} typeMedia 'audio' or 'video'
1482
+ * @returns {undefined}
1606
1483
  */
1607
- endMeetingForAll(): any;
1484
+ setEndSetupDelay(typeMedia: string): void;
1608
1485
  /**
1609
- * clear the meeting data
1486
+ * @param {string} typeMedia 'audio' or 'video'
1487
+ * @returns {string} duration between start and end of setup
1488
+ */
1489
+ getSetupDelayDuration(typeMedia: string): number;
1490
+ /**
1491
+ * @param {string} typeMedia 'audio' or 'video'
1610
1492
  * @returns {undefined}
1611
- * @public
1612
- * @memberof Meeting
1613
1493
  */
1614
- clearMeetingData: () => void;
1494
+ setStartSendingMediaDelay(typeMedia: string): void;
1615
1495
  /**
1616
- * starts keepAlives being sent
1617
- * @returns {void}
1618
- * @private
1619
- * @memberof Meeting
1496
+ * @param {string} typeMedia 'audio' or 'video'
1497
+ * @returns {undefined}
1620
1498
  */
1621
- startKeepAlive: () => void;
1499
+ setEndSendingMediaDelay(typeMedia: string): void;
1622
1500
  /**
1623
- * stops keepAlives being sent
1624
- * @returns {void}
1625
- * @private
1626
- * @memberof Meeting
1501
+ * @param {string} typeMedia 'audio' or 'video'
1502
+ * @returns {string} duration between join response and first media tx
1627
1503
  */
1628
- stopKeepAlive: () => void;
1504
+ getSendingMediaDelayDuration(typeMedia: string): number;
1629
1505
  /**
1630
- * Send a reaction inside the meeting.
1631
1506
  *
1632
- * @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
1633
- * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
1634
- * @returns {Promise}
1635
- * @public
1636
- * @memberof Meeting
1507
+ * @returns {undefined}
1637
1508
  */
1638
- sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
1509
+ setStartLocalSDPGenRemoteSDPRecvDelay(): void;
1639
1510
  /**
1640
- * Method to enable or disable reactions inside the meeting.
1641
1511
  *
1642
- * @param {boolean} enable - enable or disable reactions
1643
- * @returns {Promise}
1644
- * @public
1645
- * @memberof Meeting
1512
+ * @returns {undefined}
1646
1513
  */
1647
- toggleReactions(enable: boolean): Promise<any>;
1514
+ setEndLocalSDPGenRemoteSDPRecvDelay(): void;
1648
1515
  /**
1649
- * Throws if we don't have a media connection created
1650
1516
  *
1651
- * @returns {void}
1517
+ * @returns {string} duration between local SDP generation and remote SDP reception
1652
1518
  */
1653
- private checkMediaConnection;
1519
+ getLocalSDPGenRemoteSDPRecvDelay(): number;
1654
1520
  /**
1655
- * Method to enable or disable the 'Music mode' effect on audio stream
1656
1521
  *
1657
- * @param {boolean} shouldEnableMusicMode
1658
- * @returns {Promise}
1522
+ * @returns {undefined}
1659
1523
  */
1660
- enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
1661
- /** Updates the tracks being sent on the transcoded media connection
1524
+ setStartCallInitiateJoinReq(): void;
1525
+ /**
1662
1526
  *
1663
- * @returns {Promise<void>}
1527
+ * @returns {undefined}
1664
1528
  */
1665
- private updateTranscodedMediaConnection;
1529
+ setEndCallInitiateJoinReq(): void;
1666
1530
  /**
1667
- * Publishes a stream.
1668
1531
  *
1669
- * @param {MediaType} mediaType of the stream
1670
- * @param {LocalStream} stream to publish
1671
- * @returns {Promise}
1532
+ * @returns {string} duration between call initiate and sending join request to locus
1672
1533
  */
1673
- private publishStream;
1534
+ getCallInitiateJoinReq(): number;
1674
1535
  /**
1675
- * Un-publishes a stream.
1676
1536
  *
1677
- * @param {MediaType} mediaType of the stream
1678
- * @param {LocalStream} stream to unpublish
1679
- * @returns {Promise}
1537
+ * @returns {undefined}
1680
1538
  */
1681
- private unpublishStream;
1539
+ setStartJoinReqResp(): void;
1682
1540
  /**
1683
- * Publishes specified local streams in the meeting
1684
1541
  *
1685
- * @param {Object} streams
1686
- * @returns {Promise}
1542
+ * @returns {undefined}
1687
1543
  */
1688
- publishStreams(streams: LocalStreams): Promise<void>;
1544
+ setEndJoinReqResp(): void;
1689
1545
  /**
1690
- * Un-publishes specified local streams in the meeting
1691
1546
  *
1692
- * @param {Array<LocalStream>} streams
1693
- * @returns {Promise}
1547
+ * @returns {string} duration between sending locus join request and receiving join response
1694
1548
  */
1695
- unpublishStreams(streams: LocalStream[]): Promise<void>;
1549
+ getJoinReqResp(): number;
1696
1550
  /**
1697
- * Gets permission token expiry information including timeLeft, expiryTime, currentTime
1698
- * (from the time the function has been fired)
1699
1551
  *
1700
- * @returns {object} permissionTokenExpiryInfo
1701
- * @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
1702
- * @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
1703
- * @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
1704
- */
1705
- getPermissionTokenExpiryInfo(): {
1706
- timeLeft: number;
1707
- expiryTime: number;
1708
- currentTime: number;
1709
- };
1710
- /**
1711
- * Check if there is enough time left till the permission token expires
1712
- * If not - refresh the permission token
1552
+ * @returns {string} duration between call initiate and successful locus join (even if it is in lobby)
1553
+ */
1554
+ getTotalJmt(): number;
1555
+ /**
1556
+ * End the current meeting for all
1557
+ * @returns {Promise}
1558
+ * @public
1559
+ * @memberof Meeting
1560
+ */
1561
+ endMeetingForAll(): any;
1562
+ /**
1563
+ * clear the meeting data
1564
+ * @returns {undefined}
1565
+ * @public
1566
+ * @memberof Meeting
1567
+ */
1568
+ clearMeetingData: () => void;
1569
+ /**
1570
+ * Internal API to return status of BNR
1571
+ * @returns {Boolean}
1572
+ * @public
1573
+ * @memberof Meeting
1574
+ */
1575
+ isBnrEnabled(): any;
1576
+ /**
1577
+ * Internal API to obtain BNR enabled MediaStream
1578
+ * @returns {Promise<MediaStreamTrack>}
1579
+ * @private
1580
+ * @param {MedaiStreamTrack} audioTrack from updateAudio
1581
+ * @memberof Meeting
1582
+ */
1583
+ private internal_enableBNR;
1584
+ /**
1585
+ * Enable the audio track with BNR for a meeting
1586
+ * @returns {Promise} resolves the data from enable bnr or rejects if there is no audio or audio is muted
1587
+ * @public
1588
+ * @memberof Meeting
1589
+ */
1590
+ enableBNR(): any;
1591
+ /**
1592
+ * Disable the BNR for an audio track
1593
+ * @returns {Promise} resolves the data from disable bnr or rejects if there is no audio set
1594
+ * @public
1595
+ * @memberof Meeting
1596
+ */
1597
+ disableBNR(): any;
1598
+ /**
1599
+ * starts keepAlives being sent
1600
+ * @returns {void}
1601
+ * @private
1602
+ * @memberof Meeting
1603
+ */
1604
+ startKeepAlive: () => void;
1605
+ /**
1606
+ * stops keepAlives being sent
1607
+ * @returns {void}
1608
+ * @private
1609
+ * @memberof Meeting
1610
+ */
1611
+ stopKeepAlive: () => void;
1612
+ /**
1613
+ * Send a reaction inside the meeting.
1713
1614
  *
1714
- * @param {number} threshold - time in seconds
1715
- * @param {string} reason - reason for refreshing the permission token
1716
- * @returns {Promise<void>}
1615
+ * @param {ReactionType} reactionType - type of reaction to be sent. Example: "thumbs_up"
1616
+ * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
1617
+ * @returns {Promise}
1618
+ * @public
1619
+ * @memberof Meeting
1717
1620
  */
1718
- checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
1621
+ sendReaction(reactionType: ReactionType, skinToneType?: SkinToneType): any;
1719
1622
  }