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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +8 -58
  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 -6
  54. package/dist/config.js +10 -8
  55. package/dist/config.js.map +1 -1
  56. package/dist/constants.d.ts +100 -234
  57. package/dist/constants.js +444 -433
  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 +5 -121
  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 +520 -705
  111. package/dist/meeting/index.js +3083 -5041
  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 -304
  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 -118
  122. package/dist/meeting/util.js +435 -676
  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 +20 -114
  142. package/dist/meetings/index.js +133 -540
  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 +95 -61
  193. package/dist/reachability/index.js +392 -304
  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 +232 -285
  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 +238 -100
  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 -50
  240. package/dist/statsAnalyzer/index.js +511 -436
  241. package/dist/statsAnalyzer/index.js.map +1 -1
  242. package/dist/statsAnalyzer/mqaUtil.d.ts +6 -8
  243. package/dist/statsAnalyzer/mqaUtil.js +90 -130
  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 -39
  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 -6
  253. package/src/constants.ts +100 -265
  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 -450
  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 +2581 -4306
  271. package/src/meeting/muteState.ts +138 -224
  272. package/src/meeting/request.ts +127 -214
  273. package/src/meeting/util.ts +423 -687
  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 +136 -531
  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 +347 -246
  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 -96
  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 +645 -479
  310. package/src/statsAnalyzer/mqaUtil.ts +126 -128
  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 -1437
  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 +2313 -8384
  328. package/test/unit/spec/meeting/muteState.js +213 -409
  329. package/test/unit/spec/meeting/request.js +43 -523
  330. package/test/unit/spec/meeting/utils.js +24 -834
  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 +232 -1445
  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 -532
  347. package/test/unit/spec/reconnection-manager/index.js +24 -163
  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 +77 -187
  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 +165 -644
  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/interceptors/index.d.ts +0 -2
  395. package/dist/interceptors/index.js +0 -15
  396. package/dist/interceptors/index.js.map +0 -1
  397. package/dist/interceptors/locusRetry.d.ts +0 -27
  398. package/dist/interceptors/locusRetry.js +0 -94
  399. package/dist/interceptors/locusRetry.js.map +0 -1
  400. package/dist/interpretation/collection.d.ts +0 -5
  401. package/dist/interpretation/collection.js +0 -22
  402. package/dist/interpretation/collection.js.map +0 -1
  403. package/dist/interpretation/index.d.ts +0 -5
  404. package/dist/interpretation/index.js +0 -365
  405. package/dist/interpretation/index.js.map +0 -1
  406. package/dist/interpretation/siLanguage.d.ts +0 -5
  407. package/dist/interpretation/siLanguage.js +0 -24
  408. package/dist/interpretation/siLanguage.js.map +0 -1
  409. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  410. package/dist/meeting/locusMediaRequest.js +0 -291
  411. package/dist/meeting/locusMediaRequest.js.map +0 -1
  412. package/dist/meeting/request.type.d.ts +0 -11
  413. package/dist/meeting/request.type.js +0 -7
  414. package/dist/meeting/request.type.js.map +0 -1
  415. package/dist/meeting/voicea-meeting.d.ts +0 -20
  416. package/dist/meeting/voicea-meeting.js +0 -201
  417. package/dist/meeting/voicea-meeting.js.map +0 -1
  418. package/dist/meetings/meetings.types.d.ts +0 -4
  419. package/dist/meetings/meetings.types.js +0 -7
  420. package/dist/meetings/meetings.types.js.map +0 -1
  421. package/dist/member/types.d.ts +0 -32
  422. package/dist/member/types.js +0 -23
  423. package/dist/member/types.js.map +0 -1
  424. package/dist/multistream/mediaRequestManager.d.ts +0 -118
  425. package/dist/multistream/mediaRequestManager.js +0 -344
  426. package/dist/multistream/mediaRequestManager.js.map +0 -1
  427. package/dist/multistream/receiveSlot.d.ts +0 -68
  428. package/dist/multistream/receiveSlot.js +0 -200
  429. package/dist/multistream/receiveSlot.js.map +0 -1
  430. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  431. package/dist/multistream/receiveSlotManager.js +0 -174
  432. package/dist/multistream/receiveSlotManager.js.map +0 -1
  433. package/dist/multistream/remoteMedia.d.ts +0 -72
  434. package/dist/multistream/remoteMedia.js +0 -268
  435. package/dist/multistream/remoteMedia.js.map +0 -1
  436. package/dist/multistream/remoteMediaGroup.d.ts +0 -47
  437. package/dist/multistream/remoteMediaGroup.js +0 -267
  438. package/dist/multistream/remoteMediaGroup.js.map +0 -1
  439. package/dist/multistream/remoteMediaManager.d.ts +0 -285
  440. package/dist/multistream/remoteMediaManager.js +0 -1211
  441. package/dist/multistream/remoteMediaManager.js.map +0 -1
  442. package/dist/multistream/sendSlotManager.d.ts +0 -61
  443. package/dist/multistream/sendSlotManager.js +0 -236
  444. package/dist/multistream/sendSlotManager.js.map +0 -1
  445. package/dist/reachability/clusterReachability.d.ts +0 -109
  446. package/dist/reachability/clusterReachability.js +0 -357
  447. package/dist/reachability/clusterReachability.js.map +0 -1
  448. package/dist/reachability/util.d.ts +0 -8
  449. package/dist/reachability/util.js +0 -29
  450. package/dist/reachability/util.js.map +0 -1
  451. package/dist/reactions/constants.d.ts +0 -3
  452. package/dist/reactions/constants.js +0 -12
  453. package/dist/reactions/constants.js.map +0 -1
  454. package/dist/rtcMetrics/constants.d.ts +0 -4
  455. package/dist/rtcMetrics/constants.js +0 -11
  456. package/dist/rtcMetrics/constants.js.map +0 -1
  457. package/dist/rtcMetrics/index.d.ts +0 -54
  458. package/dist/rtcMetrics/index.js +0 -140
  459. package/dist/rtcMetrics/index.js.map +0 -1
  460. package/dist/webinar/collection.d.ts +0 -16
  461. package/dist/webinar/collection.js +0 -43
  462. package/dist/webinar/collection.js.map +0 -1
  463. package/dist/webinar/index.d.ts +0 -5
  464. package/dist/webinar/index.js +0 -68
  465. package/dist/webinar/index.js.map +0 -1
  466. package/src/annotation/annotation.types.ts +0 -50
  467. package/src/annotation/constants.ts +0 -36
  468. package/src/annotation/index.ts +0 -328
  469. package/src/breakouts/README.md +0 -220
  470. package/src/breakouts/breakout.ts +0 -188
  471. package/src/breakouts/collection.ts +0 -19
  472. package/src/breakouts/edit-lock-error.ts +0 -25
  473. package/src/breakouts/events.ts +0 -56
  474. package/src/breakouts/index.ts +0 -925
  475. package/src/breakouts/request.ts +0 -55
  476. package/src/breakouts/utils.ts +0 -57
  477. package/src/common/errors/no-meeting-info.ts +0 -24
  478. package/src/controls-options-manager/types.ts +0 -59
  479. package/src/index.ts +0 -44
  480. package/src/interceptors/index.ts +0 -3
  481. package/src/interceptors/locusRetry.ts +0 -67
  482. package/src/interpretation/README.md +0 -60
  483. package/src/interpretation/collection.ts +0 -19
  484. package/src/interpretation/index.ts +0 -332
  485. package/src/interpretation/siLanguage.ts +0 -18
  486. package/src/meeting/locusMediaRequest.ts +0 -313
  487. package/src/meeting/request.type.ts +0 -13
  488. package/src/meeting/voicea-meeting.ts +0 -161
  489. package/src/meetings/meetings.types.ts +0 -12
  490. package/src/member/types.ts +0 -38
  491. package/src/multistream/mediaRequestManager.ts +0 -440
  492. package/src/multistream/receiveSlot.ts +0 -184
  493. package/src/multistream/receiveSlotManager.ts +0 -166
  494. package/src/multistream/remoteMedia.ts +0 -254
  495. package/src/multistream/remoteMediaGroup.ts +0 -284
  496. package/src/multistream/remoteMediaManager.ts +0 -1145
  497. package/src/multistream/sendSlotManager.ts +0 -170
  498. package/src/reachability/clusterReachability.ts +0 -320
  499. package/src/reachability/util.ts +0 -24
  500. package/src/reactions/constants.ts +0 -4
  501. package/src/rtcMetrics/constants.ts +0 -3
  502. package/src/rtcMetrics/index.ts +0 -124
  503. package/src/webinar/collection.ts +0 -31
  504. package/src/webinar/index.ts +0 -62
  505. package/test/integration/spec/converged-space-meetings.js +0 -233
  506. package/test/unit/spec/annotation/index.ts +0 -418
  507. package/test/unit/spec/breakouts/breakout.ts +0 -237
  508. package/test/unit/spec/breakouts/collection.ts +0 -15
  509. package/test/unit/spec/breakouts/edit-lock-error.ts +0 -30
  510. package/test/unit/spec/breakouts/events.ts +0 -89
  511. package/test/unit/spec/breakouts/index.ts +0 -1790
  512. package/test/unit/spec/breakouts/request.ts +0 -104
  513. package/test/unit/spec/breakouts/utils.js +0 -72
  514. package/test/unit/spec/interceptors/locusRetry.ts +0 -131
  515. package/test/unit/spec/interpretation/collection.ts +0 -15
  516. package/test/unit/spec/interpretation/index.ts +0 -589
  517. package/test/unit/spec/interpretation/siLanguage.ts +0 -28
  518. package/test/unit/spec/locus-info/mediaSharesUtils.ts +0 -32
  519. package/test/unit/spec/media/index.ts +0 -290
  520. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -442
  521. package/test/unit/spec/meeting-info/index.js +0 -300
  522. package/test/unit/spec/multistream/mediaRequestManager.ts +0 -1418
  523. package/test/unit/spec/multistream/receiveSlot.ts +0 -163
  524. package/test/unit/spec/multistream/receiveSlotManager.ts +0 -203
  525. package/test/unit/spec/multistream/remoteMedia.ts +0 -255
  526. package/test/unit/spec/multistream/remoteMediaGroup.ts +0 -662
  527. package/test/unit/spec/multistream/remoteMediaManager.ts +0 -1924
  528. package/test/unit/spec/multistream/sendSlotManager.ts +0 -242
  529. package/test/unit/spec/reachability/clusterReachability.ts +0 -279
  530. package/test/unit/spec/reachability/request.js +0 -68
  531. package/test/unit/spec/reachability/util.ts +0 -40
  532. package/test/unit/spec/roap/request.ts +0 -255
  533. package/test/unit/spec/rtcMetrics/index.ts +0 -93
  534. package/test/unit/spec/webinar/collection.ts +0 -13
  535. package/test/unit/spec/webinar/index.ts +0 -60
  536. package/test/utils/constants.js +0 -9
  537. package/test/utils/integrationTestUtils.js +0 -46
  538. /package/dist/common/errors/{reclaim-host-role-errors.d.ts → reclaim-host-role-error.d.ts} +0 -0
  539. /package/src/common/errors/{reclaim-host-role-errors.ts → reclaim-host-role-error.ts} +0 -0
@@ -1,91 +1,22 @@
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
- import { NETWORK_STATUS } from '../constants';
14
- import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
15
- import { MediaRequestManager } from '../multistream/mediaRequestManager';
16
- import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
17
- import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
10
+ import Transcription from '../transcription';
11
+ import { ReactionType, SkinToneType } from '../reactions/reactions.type';
18
12
  import InMeetingActions from './in-meeting-actions';
19
13
  import RecordingController from '../recording-controller';
20
14
  import ControlsOptionsManager from '../controls-options-manager';
21
- import { LocusMediaRequest } from './locusMediaRequest';
22
- export type CaptionData = {
23
- id: string;
24
- isFinal: boolean;
25
- translations: Array<string>;
26
- text: string;
27
- currentCaptionLanguage: string;
28
- timestamp: string;
29
- speaker: string;
30
- };
31
- export type Transcription = {
32
- languageOptions: {
33
- captionLanguages?: string;
34
- maxLanguages?: number;
35
- spokenLanguages?: Array<string>;
36
- currentCaptionLanguage?: string;
37
- requestedCaptionLanguage?: string;
38
- currentSpokenLanguage?: string;
39
- };
40
- status: string;
41
- isListening: boolean;
42
- commandText: string;
43
- captions: Array<CaptionData>;
44
- highlights: Array<any>;
45
- showCaptionBox: boolean;
46
- transcribingRequestStatus: string;
47
- isCaptioning: boolean;
48
- speakerProxy: Map<string, any>;
49
- interimCaptions: Map<string, CaptionData>;
50
- };
51
- export type LocalStreams = {
52
- microphone?: LocalMicrophoneStream;
53
- camera?: LocalCameraStream;
54
- screenShare?: {
55
- audio?: LocalSystemAudioStream;
56
- video?: LocalDisplayStream;
57
- };
58
- };
59
- export type AddMediaOptions = {
60
- localStreams?: LocalStreams;
61
- audioEnabled?: boolean;
62
- videoEnabled?: boolean;
63
- shareAudioEnabled?: boolean;
64
- shareVideoEnabled?: boolean;
65
- remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
66
- bundlePolicy?: BundlePolicy;
67
- allowMediaInLobby?: boolean;
68
- };
69
- export type CallStateForMetrics = {
70
- correlationId?: string;
71
- joinTrigger?: string;
72
- loginType?: string;
73
- };
74
15
  export declare const MEDIA_UPDATE_TYPE: {
75
- TRANSCODED_MEDIA_CONNECTION: string;
76
- SHARE_FLOOR_REQUEST: string;
77
- UPDATE_MEDIA: string;
78
- };
79
- export declare enum ScreenShareFloorStatus {
80
- PENDING = "floor_request_pending",
81
- GRANTED = "floor_request_granted",
82
- RELEASED = "floor_released"
83
- }
84
- type FetchMeetingInfoParams = {
85
- password?: string;
86
- captchaCode?: string;
87
- extraParams?: Record<string, any>;
88
- sendCAevents?: boolean;
16
+ ALL: string;
17
+ AUDIO: string;
18
+ VIDEO: string;
19
+ SHARE: string;
89
20
  };
90
21
  /**
91
22
  * MediaDirection
@@ -98,6 +29,15 @@ type FetchMeetingInfoParams = {
98
29
  * @property {boolean} receiveShare
99
30
  * @property {boolean} isSharing
100
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
+ */
101
41
  /**
102
42
  * SharePreferences
103
43
  * @typedef {Object} SharePreferences
@@ -111,9 +51,16 @@ type FetchMeetingInfoParams = {
111
51
  * @property {String} [pin]
112
52
  * @property {Boolean} [moderator]
113
53
  * @property {String|Object} [meetingQuality]
54
+ * @property {String} [meetingQuality.local]
114
55
  * @property {String} [meetingQuality.remote]
115
56
  * @property {Boolean} [rejoin]
116
- * @property {Boolean} [enableMultistream]
57
+ */
58
+ /**
59
+ * SendOptions
60
+ * @typedef {Object} SendOptions
61
+ * @property {Boolean} sendAudio
62
+ * @property {Boolean} sendVideo
63
+ * @property {Boolean} sendShare
117
64
  */
118
65
  /**
119
66
  * Recording
@@ -196,11 +143,7 @@ type FetchMeetingInfoParams = {
196
143
  * @instance
197
144
  * @type {Object}
198
145
  * @property {Boolean} memberId id of the meeting member that started screen share
199
- * @property {String} url of this content share
200
- * @property {String} shareInstanceId of this content share
201
- * @property {Object} annotation Info of this content share
202
146
  * @memberof Meeting
203
- *
204
147
  */
205
148
  /**
206
149
  * Meeting Stopped Sharing Remote Event
@@ -336,23 +279,18 @@ type FetchMeetingInfoParams = {
336
279
  export default class Meeting extends StatelessWebexPlugin {
337
280
  attrs: any;
338
281
  audio: any;
339
- breakouts: any;
340
- simultaneousInterpretation: any;
341
- annotation: any;
342
- webinar: any;
343
282
  conversationUrl: string;
344
- callStateForMetrics: CallStateForMetrics;
283
+ correlationId: string;
345
284
  destination: string;
346
285
  destinationType: string;
347
286
  deviceUrl: string;
287
+ effects: any;
348
288
  hostId: string;
349
289
  id: string;
350
- isMultistream: boolean;
351
290
  locusUrl: string;
352
291
  mediaConnections: any[];
353
- mediaId?: string;
354
292
  meetingFiniteStateMachine: any;
355
- meetingInfo: any;
293
+ meetingInfo: object;
356
294
  meetingRequest: MeetingRequest;
357
295
  members: Members;
358
296
  options: object;
@@ -364,13 +302,11 @@ export default class Meeting extends StatelessWebexPlugin {
364
302
  resource: string;
365
303
  roap: Roap;
366
304
  roapSeq: number;
367
- selfUrl?: string;
368
305
  sipUri: string;
369
306
  type: string;
370
307
  userId: string;
371
308
  video: any;
372
309
  callEvents: any[];
373
- datachannelUrl: string;
374
310
  deferJoin: Promise<any>;
375
311
  dialInDeviceStatus: string;
376
312
  dialInUrl: string;
@@ -382,45 +318,31 @@ export default class Meeting extends StatelessWebexPlugin {
382
318
  hasWebsocketConnected: boolean;
383
319
  inMeetingActions: InMeetingActions;
384
320
  isLocalShareLive: boolean;
385
- isRoapInProgress: boolean;
321
+ isSharing: boolean;
386
322
  keepAliveTimerId: NodeJS.Timeout;
387
323
  lastVideoLayoutInfo: any;
388
324
  locusInfo: any;
389
- locusMediaRequest?: LocusMediaRequest;
390
325
  mediaProperties: MediaProperties;
391
- mediaRequestManagers: {
392
- audio: MediaRequestManager;
393
- video: MediaRequestManager;
394
- screenShareAudio: MediaRequestManager;
395
- screenShareVideo: MediaRequestManager;
396
- };
397
326
  meetingInfoFailureReason: string;
398
- meetingInfoFailureCode?: number;
399
- meetingInfoExtraParams?: Record<string, any>;
400
327
  networkQualityMonitor: NetworkQualityMonitor;
401
- networkStatus?: NETWORK_STATUS;
328
+ networkStatus: string;
402
329
  passwordStatus: string;
403
330
  queuedMediaUpdates: any[];
404
331
  recording: any;
405
- remoteMediaManager: RemoteMediaManager | null;
406
332
  recordingController: RecordingController;
407
333
  controlsOptionsManager: ControlsOptionsManager;
408
334
  requiredCaptcha: any;
409
- receiveSlotManager: ReceiveSlotManager;
410
- selfUserPolicies: any;
411
- enforceVBGImagesURL: string;
412
335
  shareStatus: string;
413
- screenShareFloorState: ScreenShareFloorStatus;
414
336
  statsAnalyzer: StatsAnalyzer;
415
337
  transcription: Transcription;
338
+ receiveTranscription: boolean;
416
339
  updateMediaConnections: (mediaConnections: any[]) => void;
417
- userDisplayHints: any;
418
- endCallInitJoinReq: any;
340
+ endCallInitiateJoinReq: any;
419
341
  endJoinReqResp: any;
420
342
  endLocalSDPGenRemoteSDPRecvDelay: any;
421
343
  joinedWith: any;
422
344
  locusId: any;
423
- startCallInitJoinReq: any;
345
+ startCallInitiateJoinReq: any;
424
346
  startJoinReqResp: any;
425
347
  startLocalSDPGenRemoteSDPRecvDelay: any;
426
348
  wirelessShare: any;
@@ -428,31 +350,12 @@ export default class Meeting extends StatelessWebexPlugin {
428
350
  meetingJoinUrl: any;
429
351
  meetingNumber: any;
430
352
  meetingState: any;
431
- permissionToken: string;
432
- permissionTokenPayload: any;
433
- permissionTokenReceivedLocalTime: number;
353
+ permissionToken: any;
434
354
  resourceId: any;
435
355
  resourceUrl: string;
436
356
  selfId: string;
437
357
  state: any;
438
- localAudioStreamMuteStateHandler: (muted: boolean) => void;
439
- localVideoStreamMuteStateHandler: (muted: boolean) => void;
440
- localOutputTrackChangeHandler: () => void;
441
- roles: any[];
442
- environment: string;
443
358
  namespace: string;
444
- allowMediaInLobby: boolean;
445
- localShareInstanceId: string;
446
- remoteShareInstanceId: string;
447
- turnDiscoverySkippedReason: string;
448
- turnServerUsed: boolean;
449
- areVoiceaEventsSetup: boolean;
450
- voiceaListenerCallbacks: object;
451
- private retriedWithTurnServer;
452
- private sendSlotManager;
453
- private deferSDPAnswer?;
454
- private sdpResponseTimer?;
455
- private hasMediaConnectionConnectedAtLeastOnce;
456
359
  /**
457
360
  * @param {Object} attrs
458
361
  * @param {Object} options
@@ -460,91 +363,29 @@ export default class Meeting extends StatelessWebexPlugin {
460
363
  * @memberof Meeting
461
364
  */
462
365
  constructor(attrs: any, options: object);
463
- /**
464
- * returns meeting is joined
465
- * @private
466
- * @memberof Meeting
467
- * @returns {Boolean}
468
- */
469
- private isJoined;
470
- /**
471
- * Returns whether this meeting is a Locus CALL
472
- * @returns {Boolean}
473
- */
474
- isLocusCall(): boolean;
475
- /**
476
- * Getter - Returns callStateForMetrics.correlationId
477
- * @returns {string}
478
- */
479
- get correlationId(): string;
480
- /**
481
- * Setter - sets callStateForMetrics.correlationId
482
- * @param {string} correlationId
483
- */
484
- set correlationId(correlationId: string);
485
- /**
486
- * Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
487
- * @param {any} info
488
- * @param {string} [meetingLookupUrl] Lookup url, defined when the meeting info fetched
489
- * @returns {void}
490
- */
491
- private setMeetingInfo;
492
- /**
493
- * Add pre-fetched meeting info
494
- *
495
- * The passed meeting info should be be complete, e.g.: fetched after password or captcha provided
496
- *
497
- * @param {Object} meetingInfo - Complete meeting info
498
- * @param {FetchMeetingInfoParams} fetchParams - Fetch parameters for validation
499
- * @param {String|undefined} meetingLookupUrl - Lookup url, defined when the meeting info fetched
500
- * @returns {Promise<void>}
501
- */
502
- injectMeetingInfo(meetingInfo: any, fetchParams: FetchMeetingInfoParams, meetingLookupUrl: string | undefined): Promise<void>;
503
- /**
504
- * Validate fetch parameters and clear the fetchMeetingInfoTimeout timeout
505
- *
506
- * @param {FetchMeetingInfoParams} fetchParams - fetch parameters for validation
507
- * @param {String} caller - Name of the caller for logging
508
- *
509
- * @returns {Promise<void>}
510
- * @private
511
- */
512
- private prepForFetchMeetingInfo;
513
- /**
514
- * Internal method for fetching meeting info
515
- *
516
- * @returns {Promise}
517
- */
518
- private fetchMeetingInfoInternal;
519
- /**
520
- * Refreshes the meeting info permission token (it's required for joining meetings)
521
- *
522
- * @param {string} [reason] used for metrics and logging purposes (optional)
523
- * @returns {Promise}
524
- */
525
- refreshPermissionToken(reason?: string): Promise<void>;
526
366
  /**
527
367
  * Fetches meeting information.
528
368
  * @param {Object} options
529
369
  * @param {String} [options.password] optional
530
370
  * @param {String} [options.captchaCode] optional
531
- * @param {Boolean} [options.sendCAevents] optional - Whether to submit Call Analyzer events or not. Default: false.
532
371
  * @public
533
372
  * @memberof Meeting
534
373
  * @returns {Promise}
535
374
  */
536
- fetchMeetingInfo(options: FetchMeetingInfoParams): Promise<void>;
375
+ fetchMeetingInfo({ password, captchaCode, }: {
376
+ password?: string;
377
+ captchaCode?: string;
378
+ }): Promise<void>;
537
379
  /**
538
380
  * Checks if the supplied password/host key is correct. It returns a promise with information whether the
539
381
  * password and captcha code were correct or not.
540
382
  * @param {String} password - this can be either a password or a host key, can be undefined if only captcha was required
541
383
  * @param {String} captchaCode - can be undefined if captcha was not required by the server
542
- * @param {Boolean} sendCAevents - whether Call Analyzer events should be sent when fetching meeting information
543
384
  * @public
544
385
  * @memberof Meeting
545
386
  * @returns {Promise<{isPasswordValid: boolean, requiredCaptcha: boolean, failureReason: MEETING_INFO_FAILURE_REASON}>}
546
387
  */
547
- verifyPassword(password: string, captchaCode: string, sendCAevents?: boolean): Promise<{
388
+ verifyPassword(password: string, captchaCode: string): Promise<{
548
389
  isPasswordValid: boolean;
549
390
  requiredCaptcha: any;
550
391
  failureReason: string;
@@ -561,14 +402,6 @@ export default class Meeting extends StatelessWebexPlugin {
561
402
  * @returns {Promise}
562
403
  */
563
404
  refreshCaptcha(): any;
564
- /**
565
- * Posts metrics event for this meeting. Allows the app to send Call Analyzer events.
566
- * @param {String} eventName - Call Analyzer event
567
- * @public
568
- * @memberof Meeting
569
- * @returns {Promise}
570
- */
571
- postMetrics(eventName: ClientEvent['name']): void;
572
405
  /**
573
406
  * Proxy function for all the listener set ups
574
407
  * @returns {undefined}
@@ -577,50 +410,70 @@ export default class Meeting extends StatelessWebexPlugin {
577
410
  */
578
411
  private setUpLocusInfoListeners;
579
412
  /**
580
- * Set up the listeners for breakouts
413
+ * Set up the locus info listener for meetings disconnected due to inactivity
581
414
  * @returns {undefined}
582
415
  * @private
583
416
  * @memberof Meeting
584
417
  */
585
- setUpBreakoutsListener(): void;
418
+ private setUpLocusInfoMediaInactiveListener;
586
419
  /**
587
- * Set up the listeners for interpretation
420
+ * Set up the locus info listener for assign host permissions on a meeting
588
421
  * @returns {undefined}
589
422
  * @private
590
423
  * @memberof Meeting
591
424
  */
592
- private setUpInterpretationListener;
425
+ private setUpLocusInfoAssignHostListener;
593
426
  /**
594
- * Set up the listeners for captions
427
+ * Set up the internal locus info full state object listener
595
428
  * @returns {undefined}
596
429
  * @private
597
430
  * @memberof Meeting
598
431
  */
599
- private setUpVoiceaListeners;
432
+ private setUpLocusFullStateListener;
600
433
  /**
601
- * Set up the locus info listener for meetings disconnected due to inactivity
602
- * @returns {undefined}
603
- * @private
604
- * @memberof Meeting
605
- */
606
- private setUpLocusInfoMediaInactiveListener;
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): {};
607
451
  /**
608
- * Set up the locus info listener for assign host permissions on a meeting
609
- * @returns {undefined}
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}
610
459
  * @private
611
460
  * @memberof Meeting
612
461
  */
613
- private setUpLocusInfoAssignHostListener;
462
+ private sendCallAnalyzerMetrics;
614
463
  /**
615
- * Set up the internal locus info full state object listener
616
- * @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}
617
470
  * @private
618
471
  * @memberof Meeting
619
472
  */
620
- private setUpLocusFullStateListener;
473
+ private sendMediaQualityAnalyzerMetrics;
621
474
  /**
622
475
  * sets the network status on meeting object
623
- * @param {NETWORK_STATUS} networkStatus
476
+ * @param {String} networkStatus
624
477
  * @private
625
478
  * @returns {undefined}
626
479
  * @memberof Meeting
@@ -680,13 +533,6 @@ export default class Meeting extends StatelessWebexPlugin {
680
533
  * @memberof Meeting
681
534
  */
682
535
  private setupLocusControlsListener;
683
- /**
684
- * Trigger annotation info update event
685
- @returns {undefined}
686
- @param {object} contentShare
687
- @param {object} previousContentShare
688
- */
689
- private triggerAnnotationInfoEvent;
690
536
  /**
691
537
  * Set up the locus info media shares listener
692
538
  * update content and whiteboard sharing id value for members, and updates the member
@@ -721,12 +567,6 @@ export default class Meeting extends StatelessWebexPlugin {
721
567
  * @memberof meeting
722
568
  */
723
569
  private setUpLocusInfoMeetingInfoListener;
724
- /**
725
- * Handles a data channel URL change
726
- * @param {String} datachannelUrl
727
- * @returns {void}
728
- */
729
- handleDataChannelUrlChange(datachannelUrl: any): void;
730
570
  /**
731
571
  * Set up the locus info embedded apps listener
732
572
  * @returns {undefined}
@@ -785,23 +625,13 @@ export default class Meeting extends StatelessWebexPlugin {
785
625
  phoneNumber: string;
786
626
  }): any;
787
627
  /**
788
- * Admit the guest(s) to the call once they are waiting.
789
- * If the host/cohost is in a breakout session, the locus url
790
- * of the session must be provided as the authorizingLocusUrl.
791
- * Regardless of host/cohost location, the locus Id (lid) in
792
- * the path should be the locus Id of the main, which means the
793
- * locus url of the api call must be from the main session.
794
- * 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
795
629
  * @param {Array} memberIds
796
- * @param {Object} sessionLocusUrls: {authorizingLocusUrl, mainLocusUrl}
797
630
  * @returns {Promise} see #members.admitMembers
798
631
  * @public
799
632
  * @memberof Meeting
800
633
  */
801
- admit(memberIds: Array<any>, sessionLocusUrls?: {
802
- authorizingLocusUrl: string;
803
- mainLocusUrl: string;
804
- }): any;
634
+ admit(memberIds: Array<any>): any;
805
635
  /**
806
636
  * Remove the member from the meeting, boot them
807
637
  * @param {String} memberId
@@ -835,63 +665,80 @@ export default class Meeting extends StatelessWebexPlugin {
835
665
  * @memberof Meeting
836
666
  */
837
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;
838
710
  /**
839
711
  * Sets the meeting info on the class instance
840
712
  * @param {Object} meetingInfo
841
- * @param {String} meetingInfo.conversationUrl
842
- * @param {String} meetingInfo.locusUrl
843
- * @param {String} meetingInfo.sipUri
844
- * @param {String} [meetingInfo.sipUrl]
845
- * @param {String} [meetingInfo.sipMeetingUri]
846
- * @param {String} [meetingInfo.meetingNumber]
847
- * @param {String} [meetingInfo.meetingJoinUrl]
848
- * @param {String} [meetingInfo.hostId]
849
- * @param {String} [meetingInfo.permissionToken]
850
- * @param {String} [meetingInfo.channel]
851
- * @param {Object} meetingInfo.owner
713
+ * @param {Object} meetingInfo.body
714
+ * @param {String} meetingInfo.body.conversationUrl
715
+ * @param {String} meetingInfo.body.locusUrl
716
+ * @param {String} meetingInfo.body.sipUri
717
+ * @param {Object} meetingInfo.body.owner
852
718
  * @param {Object | String} destination locus object with meeting data or destination string (sip url, meeting link, etc)
853
- * @param {Object | String} errors Meeting info request error
854
719
  * @returns {undefined}
855
720
  * @private
856
721
  * @memberof Meeting
857
722
  */
858
723
  parseMeetingInfo(meetingInfo: {
859
- conversationUrl: string;
860
- locusUrl: string;
861
- sipUri: string;
862
- owner: object;
863
- sipUrl?: string;
864
- sipMeetingUri?: string;
865
- meetingNumber?: string;
866
- meetingJoinUrl?: string;
867
- hostId?: string;
868
- permissionToken?: string;
869
- channel?: string;
870
- }, destination?: object | string | null, errors?: any): void;
871
- /**
872
- * Indicates whether policy can be applied
873
- * @returns {boolean}
874
- */
875
- private arePolicyRestrictionsSupported;
724
+ body: {
725
+ conversationUrl: string;
726
+ locusUrl: string;
727
+ sipUri: string;
728
+ owner: object;
729
+ };
730
+ } | any, destination?: object | string | null): void;
876
731
  /**
877
- * 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
878
737
  * @returns {undefined}
879
738
  * @private
880
739
  * @memberof Meeting
881
740
  */
882
- private updateMeetingActions;
883
- /**
884
- * Sets the self user policies based on the contents of the permission token
885
- * @returns {void}
886
- */
887
- setSelfUserPolicies(): void;
888
- /**
889
- * Sets the permission token payload on the class instance
890
- *
891
- * @param {String} permissionToken
892
- * @returns {void}
893
- */
894
- setPermissionTokenPayload(permissionToken: string): void;
741
+ private parseLocus;
895
742
  /**
896
743
  * Sets the sip uri on the class instance
897
744
  * uses meeting info as precedence
@@ -901,6 +748,14 @@ export default class Meeting extends StatelessWebexPlugin {
901
748
  * @memberof Meeting
902
749
  */
903
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;
904
759
  /**
905
760
  * Set the locus info the class instance
906
761
  * @param {Object} locus
@@ -914,13 +769,16 @@ export default class Meeting extends StatelessWebexPlugin {
914
769
  * @private
915
770
  * @memberof Meeting
916
771
  */
917
- setLocus(locus: {
918
- mediaConnections: Array<any>;
919
- locusUrl: string;
920
- locusId: string;
921
- mediaId: string;
922
- host: object;
923
- } | 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;
924
782
  /**
925
783
  * Upload logs for the current meeting
926
784
  * @param {object} options file name and function name
@@ -930,10 +788,19 @@ export default class Meeting extends StatelessWebexPlugin {
930
788
  */
931
789
  uploadLogs(options?: object): void;
932
790
  /**
933
- * 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
793
+ * @returns {undefined}
794
+ * @public
795
+ * @memberof Meeting
796
+ * @deprecated after v1.89.3
797
+ */
798
+ unsetRemoteStream(): void;
799
+ /**
800
+ * Removes remote audio, video and share tracks from class instance's mediaProperties
934
801
  * @returns {undefined}
935
802
  */
936
- unsetRemoteStreams(): void;
803
+ unsetRemoteTracks(): void;
937
804
  /**
938
805
  * Removes the remote stream on the class instance and triggers an event
939
806
  * to developers
@@ -944,92 +811,115 @@ export default class Meeting extends StatelessWebexPlugin {
944
811
  */
945
812
  closeRemoteStream(): void;
946
813
  /**
947
- * 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
948
815
  * to developers
949
816
  * @returns {undefined}
950
817
  * @memberof Meeting
951
818
  */
952
- closeRemoteStreams(): Promise<[any, any, any]>;
819
+ closeRemoteTracks(): Promise<[any, any, any]>;
953
820
  /**
954
- * Stores the reference to a new microphone stream, sets up the required event listeners
955
- * on it, cleans up previous stream, etc.
956
- *
957
- * @param {LocalMicrophoneStream | null} localStream local microphone stream
958
- * @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
959
825
  */
960
- private setLocalAudioStream;
826
+ private sendLocalMediaReadyEvent;
961
827
  /**
962
- * Stores the reference to a new camera stream, sets up the required event listeners
963
- * on it, cleans up previous stream, etc.
964
- *
965
- * @param {LocalCameraStream | null} localStream local camera stream
966
- * @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
967
834
  */
968
- private setLocalVideoStream;
835
+ private setLocalAudioTrack;
969
836
  /**
970
- * Stores the reference to a new screen share stream, sets up the required event listeners
971
- * on it, cleans up previous stream, etc.
972
- * It also sends the floor grant/release request.
973
- *
974
- * @param {LocalDisplayStream | undefined} localDisplayStream local display stream
975
- * @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
976
843
  */
977
- private setLocalShareVideoStream;
844
+ private setLocalVideoTrack;
978
845
  /**
979
- * Stores the reference to a new screen share audio stream, sets up the required event listeners
980
- * on it, cleans up previous stream, etc.
981
- *
982
- * @param {LocalSystemAudioStream | undefined} localSystemAudioStream local system audio stream
983
- * @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
984
851
  */
985
- private setLocalShareAudioStream;
852
+ setLocalTracks(localStream: any): void;
986
853
  /**
987
- * 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
988
856
  * @returns {undefined}
989
857
  * @public
990
858
  * @memberof Meeting
991
859
  */
992
- setMercuryListener(): void;
860
+ setLocalShareTrack(localShare: MediaStream): void;
993
861
  /**
994
- * Close the peer connections and remove them from the class.
995
- * Cleanup any media connection related things.
996
- *
997
- * @returns {Promise}
862
+ * Closes the local stream from the class and emits an event to the developer
863
+ * @returns {undefined}
864
+ * @event media:stopped
998
865
  * @public
999
866
  * @memberof Meeting
1000
867
  */
1001
- closePeerConnections(): Promise<void>;
868
+ closeLocalStream(): any;
1002
869
  /**
1003
- * Unsets the peer connections on the class
1004
- * warning DO NOT CALL WITHOUT CLOSING PEER CONNECTIONS FIRST
870
+ * Closes the local stream from the class and emits an event to the developer
1005
871
  * @returns {undefined}
872
+ * @event media:stopped
1006
873
  * @public
1007
874
  * @memberof Meeting
1008
875
  */
1009
- unsetPeerConnections(): void;
876
+ closeLocalShare(): any;
1010
877
  /**
1011
- * Convenience method to set the correlation id for the callStateForMetrics
1012
- * @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
1013
879
  * @returns {undefined}
1014
880
  * @public
1015
881
  * @memberof Meeting
1016
882
  */
1017
- setCorrelationId(id: string): void;
883
+ unsetLocalVideoTrack(): void;
1018
884
  /**
1019
- * Update the callStateForMetrics
1020
- * @param {CallStateForMetrics} callStateForMetrics updated values for callStateForMetrics
885
+ * Removes the local share from the class and emits an event to the developer
1021
886
  * @returns {undefined}
1022
887
  * @public
1023
888
  * @memberof Meeting
1024
889
  */
1025
- updateCallStateForMetrics(callStateForMetrics: CallStateForMetrics): void;
890
+ unsetLocalShareTrack(): void;
1026
891
  /**
1027
- * Enqueue request for screenshare floor and set the status to pending
1028
- * @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}
1029
919
  * @private
1030
920
  * @memberof Meeting
1031
921
  */
1032
- private enqueueScreenShareFloorRequest;
922
+ private setCorrelationId;
1033
923
  /**
1034
924
  * Mute the audio for a meeting
1035
925
  * @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
@@ -1062,25 +952,32 @@ export default class Meeting extends StatelessWebexPlugin {
1062
952
  * Shorthand function to join AND set up media
1063
953
  * @param {Object} options - options to join with media
1064
954
  * @param {JoinOptions} [options.joinOptions] - see #join()
1065
- * @param {AddMediaOptions} [options.mediaOptions] - see #addMedia()
1066
- * @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()}
1067
958
  * @public
1068
959
  * @memberof Meeting
1069
960
  * @example
1070
961
  * joinWithMedia({
1071
962
  * joinOptions: {resourceId: 'resourceId' },
1072
- * mediaOptions: {
1073
- * localStreams: { microphone: microphoneStream, camera: cameraStream }
1074
- * }
1075
- * })
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
+ * }})
1076
975
  */
1077
976
  joinWithMedia(options?: {
1078
977
  joinOptions?: any;
1079
- mediaOptions?: AddMediaOptions;
1080
- }): Promise<{
1081
- join: any;
1082
- media: void;
1083
- }>;
978
+ mediaSettings: any;
979
+ audioVideoOptions?: any;
980
+ }): any;
1084
981
  /**
1085
982
  * Initiates the reconnection of the media in the meeting
1086
983
  *
@@ -1097,43 +994,23 @@ export default class Meeting extends StatelessWebexPlugin {
1097
994
  */
1098
995
  isTranscriptionSupported(): boolean;
1099
996
  /**
1100
- * Check if the meeting supports the Reactions
1101
- * @returns {boolean}
1102
- */
1103
- isReactionsSupported(): boolean;
1104
- /**
1105
- * sets Caption language for the meeting
1106
- * @param {string} language
1107
- * @returns {Promise}
1108
- */
1109
- setCaptionLanguage(language: string): Promise<unknown>;
1110
- /**
1111
- * sets Spoken language for the meeting
1112
- * @param {string} language
1113
- * @returns {Promise}
997
+ * Monitor the Low-Latency Mercury (LLM) web socket connection on `onError` and `onClose` states
998
+ * @private
999
+ * @returns {void}
1114
1000
  */
1115
- setSpokenLanguage(language: string): Promise<unknown>;
1001
+ private monitorTranscriptionSocketConnection;
1116
1002
  /**
1117
- * This method will enable the transcription for the current meeting if the meeting has enabled/supports Webex Assistant
1118
- * @param {Object} options object with spokenlanguage setting
1119
- * @public
1120
- * @returns {Promise<void>} a promise to open the WebSocket connection
1121
- */
1122
- startTranscription(options?: {
1123
- spokenLanguage?: string;
1124
- }): Promise<void>;
1125
- /**
1126
- * Callback called when a relay event is received from meeting LLM Connection
1127
- * @param {RelayEvent} e Event object coming from LLM Connection
1003
+ * Request for a WebSocket Url, open and monitor the WebSocket connection
1128
1004
  * @private
1129
- * @returns {void}
1005
+ * @returns {Promise<void>} a promise to open the WebSocket connection
1130
1006
  */
1131
- private processRelayEvent;
1007
+ private startTranscription;
1132
1008
  /**
1133
- * This method stops receiving transcription for the current meeting
1009
+ * stop recieving Transcription by closing
1010
+ * the web socket connection properly
1134
1011
  * @returns {void}
1135
1012
  */
1136
- stopTranscription(): void;
1013
+ stopReceivingTranscription(): void;
1137
1014
  /**
1138
1015
  * triggers an event to notify that the user
1139
1016
  * will not receive any more transcription
@@ -1153,14 +1030,7 @@ export default class Meeting extends StatelessWebexPlugin {
1153
1030
  * if joining as host on second loop, pass pin and pass moderator if joining as guest on second loop
1154
1031
  * Scenario D: Joining any other way (sip, pstn, conversationUrl, link just need to specify resourceId)
1155
1032
  */
1156
- join(options?: any): Promise<any>;
1157
- /**
1158
- * Connects to low latency mercury and reconnects if the address has changed
1159
- * It will also disconnect if called when the meeting has ended
1160
- * @param {String} datachannelUrl
1161
- * @returns {Promise}
1162
- */
1163
- updateLLMConnection(): Promise<any>;
1033
+ join(options?: any): any;
1164
1034
  /**
1165
1035
  * Use phone for meeting audio
1166
1036
  * @param {String} phoneNumber If provided, it will dial-out using this number. If not provided, dial-in will be used
@@ -1168,7 +1038,7 @@ export default class Meeting extends StatelessWebexPlugin {
1168
1038
  * @public
1169
1039
  * @memberof Meeting
1170
1040
  */
1171
- usePhoneAudio(phoneNumber: string): Promise<any>;
1041
+ usePhoneAudio(phoneNumber: string): any;
1172
1042
  /**
1173
1043
  * Determines if the given pstnStatus is in a state which implies the phone is provisioned
1174
1044
  * @param {String} pstnStatus
@@ -1217,162 +1087,58 @@ export default class Meeting extends StatelessWebexPlugin {
1217
1087
  */
1218
1088
  moveFrom(resourceId: string): any;
1219
1089
  /**
1220
- * Handles ROAP_FAILURE event from the webrtc media connection
1221
- *
1222
- * @param {Error} error
1223
- * @returns {void}
1224
- */
1225
- handleRoapFailure: (error: any) => void;
1226
- /**
1227
- * This function makes sure we send the right metrics when local and remote SDPs are processed/generated
1228
- *
1229
- * @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
1230
1098
  */
1231
- setupSdpListeners: () => void;
1232
- setupMediaConnectionListeners: () => void;
1099
+ getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
1233
1100
  /**
1234
- * Registers for all required StatsAnalyzer events
1235
- * @private
1236
- * @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}
1237
1106
  * @memberof Meetings
1238
1107
  */
1239
- setupStatsAnalyzerEventHandlers: () => void;
1240
- getMediaConnectionDebugId(): string;
1241
- /**
1242
- * Creates a webrtc media connection and publishes streams to it
1243
- *
1244
- * @param {Object} turnServerInfo TURN server information
1245
- * @param {BundlePolicy} [bundlePolicy] Bundle policy settings
1246
- * @param {AddMediaOptions} [options] Options for enabling/disabling audio/video
1247
- * @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
1248
- */
1249
- private createMediaConnection;
1250
- /**
1251
- * Listens for an event emitted by eventEmitter and emits it from the meeting object
1252
- *
1253
- * @private
1254
- * @param {*} eventEmitter object from which to forward the event
1255
- * @param {*} eventTypeToForward which event type to listen on and to forward
1256
- * @param {string} meetingEventType event type to be used in the event emitted from the meeting object
1257
- * @returns {void}
1258
- */
1259
- forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
1108
+ getSupportedDevices: ({ sendAudio, sendVideo, }: {
1109
+ sendAudio: boolean;
1110
+ sendVideo: boolean;
1111
+ }) => any;
1260
1112
  /**
1261
- * Sets up all the references to local streams in this.mediaProperties before creating media connection
1262
- * and before TURN discovery, so that the correct mute state is sent with TURN discovery roap messages.
1263
- *
1264
- * @private
1265
- * @param {LocalStreams} localStreams
1266
- * @returns {Promise<void>}
1267
- */
1268
- private setUpLocalStreamReferences;
1269
- /**
1270
- * Calls mediaProperties.waitForMediaConnectionConnected() and sends CA client.ice.end metric on failure
1271
- *
1272
- * @private
1273
- * @returns {Promise<void>}
1113
+ * Get the devices from the Media module
1114
+ * @returns {Promise} resolves to an array of DeviceInfo
1115
+ * @memberof Meetings
1274
1116
  */
1275
- private waitForMediaConnectionConnected;
1117
+ getDevices: () => any;
1276
1118
  /**
1277
- * Enables statsAnalyser if config allows it
1278
- *
1119
+ * Registers for all required StatsAnalyzer events
1279
1120
  * @private
1280
1121
  * @returns {void}
1122
+ * @memberof Meetings
1281
1123
  */
1282
- private createStatsAnalyzer;
1283
- /**
1284
- * Handles device logging
1285
- *
1286
- * @private
1287
- * @static
1288
- * @returns {Promise<void>}
1289
- */
1290
- private static handleDeviceLogging;
1291
- /**
1292
- * Returns a promise. This promise is created once the local sdp offer has been successfully created and is resolved
1293
- * once the remote sdp answer has been received.
1294
- *
1295
- * @private
1296
- * @returns {Promise<void>}
1297
- */
1298
- private waitForRemoteSDPAnswer;
1299
- /**
1300
- * Calls establishMediaConnection with isForced = true to force turn discovery to happen
1301
- *
1302
- * @private
1303
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1304
- * @param {BundlePolicy} [bundlePolicy]
1305
- * @returns {Promise<void>}
1306
- */
1307
- private retryEstablishMediaConnectionWithForcedTurnDiscovery;
1308
- /**
1309
- * Does relevant clean up before retrying to establish media connection
1310
- * and performs the retry with forced turn discovery
1311
- *
1312
- * @private
1313
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1314
- * @param {BundlePolicy} [bundlePolicy]
1315
- * @returns {Promise<void>}
1316
- */
1317
- private retryWithForcedTurnDiscovery;
1318
- /**
1319
- * If waitForMediaConnectionConnected() fails when we haven't done turn discovery then we
1320
- * attempt to establish a media connection again, but this time using turn discovery. If we
1321
- * used turn discovery on the first pass we do not attempt connection again.
1322
- *
1323
- * @private
1324
- * @param {Error} error
1325
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1326
- * @param {BundlePolicy} [bundlePolicy]
1327
- * @returns {Promise<void>}
1328
- */
1329
- private handleWaitForMediaConnectionConnectedError;
1330
- /**
1331
- * Does TURN discovery, SDP offer/answer exhange, establishes ICE connection and DTLS handshake.
1332
- *
1333
- * @private
1334
- * @param {RemoteMediaManagerConfiguration} [remoteMediaManagerConfig]
1335
- * @param {BundlePolicy} [bundlePolicy]
1336
- * @param {boolean} [isForced] - let isForced be true to do turn discovery regardless of reachability results
1337
- * @returns {Promise<void>}
1338
- */
1339
- private establishMediaConnection;
1340
- /**
1341
- * Cleans up stats analyzer, peer connection, and turns off listeners
1342
- *
1343
- * @private
1344
- * @returns {Promise<void>}
1345
- */
1346
- private cleanUpOnAddMediaFailure;
1347
- /**
1348
- * Sends stats report, closes peer connection and cleans up any media connection
1349
- * related things before trying to establish media connection again with turn server
1350
- *
1351
- * @private
1352
- * @returns {Promise<void>}
1353
- */
1354
- private cleanUpBeforeRetryWithTurnServer;
1124
+ setupStatsAnalyzerEventHandlers: () => void;
1355
1125
  /**
1356
- * Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
1357
- *
1358
- * @param {AddMediaOptions} options
1359
- * @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}
1360
1133
  * @public
1361
1134
  * @memberof Meeting
1362
1135
  */
1363
- addMedia(options?: AddMediaOptions): Promise<void>;
1136
+ addMedia(options?: any): any;
1364
1137
  /**
1365
1138
  * Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
1366
1139
  * @returns {Boolean}
1367
1140
  */
1368
1141
  canUpdateMedia(): boolean;
1369
- /**
1370
- * media failed, so collect a stats report from webrtc using the wcme connection to grab the rtc stats report
1371
- * send a webrtc telemetry dump to the configured server using the internal media core check metrics configured callback
1372
- * @param {String} callFrom - the function calling this function, optional.
1373
- * @returns {Promise<void>}
1374
- */
1375
- private forceSendStatsReport;
1376
1142
  /**
1377
1143
  * Enqueues a media update operation.
1378
1144
  * @param {String} mediaUpdateType one of MEDIA_UPDATE_TYPE values
@@ -1398,26 +1164,86 @@ export default class Meeting extends StatelessWebexPlugin {
1398
1164
  */
1399
1165
  processNextQueuedMediaUpdate: () => void;
1400
1166
  /**
1401
- * Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
1402
- * This does not affect the published tracks, so for example if a microphone track is published and
1403
- * updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
1404
- * but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
1405
- * the sending of the audio from the same track will resume.
1406
- *
1167
+ * A confluence of updateAudio, updateVideo, and updateShare
1168
+ * this function re-establishes all of the media streams with new options
1407
1169
  * @param {Object} options
1408
- * @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
1409
- * @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
1410
- * @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
1411
1173
  * @returns {Promise}
1174
+ * @todo fix setRemoteStream for updateMedia
1412
1175
  * @public
1413
1176
  * @memberof Meeting
1414
1177
  */
1415
- updateMedia(options: {
1416
- audioEnabled?: boolean;
1417
- videoEnabled?: boolean;
1418
- shareAudioEnabled?: boolean;
1419
- shareVideoEnabled?: boolean;
1420
- }): 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;
1421
1247
  /**
1422
1248
  * Acknowledge the meeting, outgoing or incoming
1423
1249
  * @param {String} type
@@ -1425,11 +1251,7 @@ export default class Meeting extends StatelessWebexPlugin {
1425
1251
  * @public
1426
1252
  * @memberof Meeting
1427
1253
  */
1428
- acknowledge(type: string): Promise<{
1429
- response: any;
1430
- }> | Promise<{
1431
- message: string;
1432
- }>;
1254
+ acknowledge(type: string): any;
1433
1255
  /**
1434
1256
  * Decline this meeting
1435
1257
  * @param {String} reason
@@ -1439,45 +1261,15 @@ export default class Meeting extends StatelessWebexPlugin {
1439
1261
  */
1440
1262
  decline(reason: string): any;
1441
1263
  /**
1442
- * Returns a promise that will resolve to fetch options for leaving a meeting.
1443
- *
1444
- * This is to support quickly submitting a leave request when the browser/tab is closing.
1445
- * Calling meeting.leave will not work because there are some async steps that will
1446
- * not complete before the browser is closed. Instead, we pre-gather all the
1447
- * information/options needed for the request(s), and then simply and quickly
1448
- * fire the fetch(es) when pagehide is triggered.
1449
- *
1450
- * We must use fetch instead of request because fetch has a keepalive option that
1451
- * allows the request it to outlive the page.
1452
- *
1453
- * Note: the $timings values will be wrong, but setRequestTimingsAndFetch() will
1454
- * properly adjust them before submitting.
1455
- *
1456
- * @public
1264
+ * Leave the current meeting
1457
1265
  * @param {Object} options leave options
1458
1266
  * @param {String} options.resourceId the device with which to leave from, empty if just the computer
1459
- * @param {any} options.reason the reason for leaving
1460
- * @returns {Promise} resolves to options to be used with fetch
1461
- */
1462
- buildLeaveFetchRequestOptions(options?: {
1463
- resourceId?: string;
1464
- reason?: any;
1465
- }): any;
1466
- /**
1467
- * Leave the current meeting
1468
- * @param {Object} options - leave options
1469
- * @param {String} [options.resourceId] - the device with which to leave from, empty if just the computer
1470
- * @param {String} [options.clientEventLeaveReason] - the leaveReason to include in the Call Analyzer event.
1471
- * Must be one of: 'paired-leave' | 'one-to-one' | 'ended-by-locus' (defaults to no reason)
1472
- * https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/main/diagnostic-events.raml#L796
1473
- * @param {String} [options.reason] - only used for logging
1474
1267
  * @returns {Promise}
1475
1268
  * @public
1476
1269
  * @memberof Meeting
1477
1270
  */
1478
1271
  leave(options?: {
1479
1272
  resourceId?: string;
1480
- clientEventLeaveReason?: ClientEventLeaveReason;
1481
1273
  reason?: any;
1482
1274
  }): any;
1483
1275
  /**
@@ -1505,12 +1297,12 @@ export default class Meeting extends StatelessWebexPlugin {
1505
1297
  */
1506
1298
  private requestScreenShareFloor;
1507
1299
  /**
1508
- * Requests screen share floor if such request is pending.
1509
- * It should be called whenever meeting state changes to JOINED
1510
- *
1511
- * @returns {void}
1300
+ * Stops the screen share
1301
+ * @returns {Promise} see #updateShare
1302
+ * @public
1303
+ * @memberof Meeting
1512
1304
  */
1513
- private requestScreenShareFloorIfPending;
1305
+ stopShare(options?: {}): any;
1514
1306
  /**
1515
1307
  * Sends a request to Locus to release the screen share floor.
1516
1308
  * @returns {Promise} see #meetingRequest.changeMeetingFloor
@@ -1541,16 +1333,6 @@ export default class Meeting extends StatelessWebexPlugin {
1541
1333
  * @memberof Meeting
1542
1334
  */
1543
1335
  setDisallowUnmute(enabled: boolean): Promise<any>;
1544
- /**
1545
- * set the mute all flag for participants if you're the host
1546
- * @returns {Promise}
1547
- * @param {boolean} mutedEnabled
1548
- * @param {boolean} disallowUnmuteEnabled
1549
- * @param {boolean} muteOnEntryEnabled
1550
- * @public
1551
- * @memberof Meeting
1552
- */
1553
- setMuteAll(mutedEnabled: boolean, disallowUnmuteEnabled: boolean, muteOnEntryEnabled: boolean): Promise<any>;
1554
1336
  /**
1555
1337
  * End the recording of this meeting
1556
1338
  * @returns {Promise}
@@ -1601,7 +1383,7 @@ export default class Meeting extends StatelessWebexPlugin {
1601
1383
  * @public
1602
1384
  * @memberof Meeting
1603
1385
  */
1604
- sendDTMF(tones: string): Promise<any>;
1386
+ sendDTMF(tones: string): any;
1605
1387
  /**
1606
1388
  * Sends request to change layout type for the current meeting for the specific participant/device only
1607
1389
  * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
@@ -1626,41 +1408,50 @@ export default class Meeting extends StatelessWebexPlugin {
1626
1408
  height: number;
1627
1409
  };
1628
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;
1629
1417
  /**
1630
1418
  * Sets the quality level of the remote incoming media
1631
1419
  * @param {String} level {LOW|MEDIUM|HIGH}
1632
1420
  * @returns {Promise}
1633
1421
  */
1634
- setRemoteQualityLevel(level: string): Promise<void>;
1422
+ setRemoteQualityLevel(level: string): any;
1635
1423
  /**
1636
- * Functionality for when a share audio is ended.
1637
- * @private
1638
- * @memberof Meeting
1639
- * @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
1640
1428
  */
1641
- private handleShareAudioStreamEnded;
1429
+ setMeetingQuality(level: string): any;
1642
1430
  /**
1643
- * Functionality for when a share video is muted or unmuted.
1644
- * @private
1645
- * @memberof Meeting
1646
- * @param {boolean} muted
1647
- * @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}
1648
1439
  */
1649
- private handleShareVideoStreamMuteStateChange;
1440
+ shareScreen(options?: {
1441
+ sendAudio: boolean;
1442
+ sendShare: boolean;
1443
+ sharePreferences: {
1444
+ shareConstraints: MediaTrackConstraints;
1445
+ };
1446
+ }): any;
1650
1447
  /**
1651
- * Functionality for when a share video is ended.
1448
+ * Functionality for when a share is ended.
1652
1449
  * @private
1653
1450
  * @memberof Meeting
1451
+ * @param {MediaStream} localShare
1654
1452
  * @returns {undefined}
1655
1453
  */
1656
- private handleShareVideoStreamEnded;
1657
- /**
1658
- * Emits meeting:stoppedSharingLocal
1659
- * @private
1660
- * @returns {undefined}
1661
- * @memberof Meeting
1662
- */
1663
- private triggerStoppedSharing;
1454
+ private handleShareTrackEnded;
1664
1455
  /**
1665
1456
  * Emits the 'network:quality' event
1666
1457
  * 1 indicates an acceptable uplink network.
@@ -1675,133 +1466,157 @@ export default class Meeting extends StatelessWebexPlugin {
1675
1466
  private sendNetworkQualityEvent;
1676
1467
  /**
1677
1468
  * Handle logging the media
1678
- * @param {Object} mediaProperties
1469
+ * @param {Object} audioTrack The audio track
1470
+ * @param {Object} videoTrack The video track
1679
1471
  * @private
1680
1472
  * @returns {undefined}
1681
1473
  */
1682
1474
  private handleMediaLogging;
1683
1475
  /**
1684
- *
1685
- * @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}
1686
1478
  */
1687
- getCurUserType(): "host" | "cohost" | "presenter" | "attendee";
1479
+ setStartSetupDelay(typeMedia: string): void;
1688
1480
  /**
1689
- * End the current meeting for all
1690
- * @returns {Promise}
1691
- * @public
1692
- * @memberof Meeting
1481
+ * @param {string} typeMedia 'audio' or 'video'
1482
+ * @returns {undefined}
1693
1483
  */
1694
- endMeetingForAll(): any;
1484
+ setEndSetupDelay(typeMedia: string): void;
1695
1485
  /**
1696
- * 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'
1697
1492
  * @returns {undefined}
1698
- * @public
1699
- * @memberof Meeting
1700
1493
  */
1701
- clearMeetingData: () => void;
1494
+ setStartSendingMediaDelay(typeMedia: string): void;
1702
1495
  /**
1703
- * starts keepAlives being sent
1704
- * @returns {void}
1705
- * @private
1706
- * @memberof Meeting
1496
+ * @param {string} typeMedia 'audio' or 'video'
1497
+ * @returns {undefined}
1707
1498
  */
1708
- startKeepAlive: () => void;
1499
+ setEndSendingMediaDelay(typeMedia: string): void;
1709
1500
  /**
1710
- * stops keepAlives being sent
1711
- * @returns {void}
1712
- * @private
1713
- * @memberof Meeting
1501
+ * @param {string} typeMedia 'audio' or 'video'
1502
+ * @returns {string} duration between join response and first media tx
1714
1503
  */
1715
- stopKeepAlive: () => void;
1504
+ getSendingMediaDelayDuration(typeMedia: string): number;
1716
1505
  /**
1717
- * Send a reaction inside the meeting.
1718
1506
  *
1719
- * @param {ReactionServerType} reactionType - type of reaction to be sent. Example: "thumbs_up"
1720
- * @param {SkinToneType} skinToneType - skin tone for the reaction. Example: "medium_dark"
1721
- * @returns {Promise}
1722
- * @public
1723
- * @memberof Meeting
1507
+ * @returns {undefined}
1724
1508
  */
1725
- sendReaction(reactionType: ReactionServerType, skinToneType?: SkinToneType): any;
1509
+ setStartLocalSDPGenRemoteSDPRecvDelay(): void;
1726
1510
  /**
1727
- * Method to enable or disable reactions inside the meeting.
1728
1511
  *
1729
- * @param {boolean} enable - enable or disable reactions
1730
- * @returns {Promise}
1731
- * @public
1732
- * @memberof Meeting
1512
+ * @returns {undefined}
1733
1513
  */
1734
- toggleReactions(enable: boolean): Promise<any>;
1514
+ setEndLocalSDPGenRemoteSDPRecvDelay(): void;
1735
1515
  /**
1736
- * Throws if we don't have a media connection created
1737
1516
  *
1738
- * @returns {void}
1517
+ * @returns {string} duration between local SDP generation and remote SDP reception
1739
1518
  */
1740
- private checkMediaConnection;
1519
+ getLocalSDPGenRemoteSDPRecvDelay(): number;
1741
1520
  /**
1742
- * Method to enable or disable the 'Music mode' effect on audio stream
1743
1521
  *
1744
- * @param {boolean} shouldEnableMusicMode
1745
- * @returns {Promise}
1522
+ * @returns {undefined}
1746
1523
  */
1747
- enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
1748
- /** Updates the tracks being sent on the transcoded media connection
1524
+ setStartCallInitiateJoinReq(): void;
1525
+ /**
1749
1526
  *
1750
- * @returns {Promise<void>}
1527
+ * @returns {undefined}
1751
1528
  */
1752
- private updateTranscodedMediaConnection;
1529
+ setEndCallInitiateJoinReq(): void;
1753
1530
  /**
1754
- * Publishes a stream.
1755
1531
  *
1756
- * @param {MediaType} mediaType of the stream
1757
- * @param {LocalStream} stream to publish
1758
- * @returns {Promise}
1532
+ * @returns {string} duration between call initiate and sending join request to locus
1759
1533
  */
1760
- private publishStream;
1534
+ getCallInitiateJoinReq(): number;
1761
1535
  /**
1762
- * Un-publishes a stream.
1763
1536
  *
1764
- * @param {MediaType} mediaType of the stream
1765
- * @param {LocalStream} stream to unpublish
1766
- * @returns {Promise}
1537
+ * @returns {undefined}
1767
1538
  */
1768
- private unpublishStream;
1539
+ setStartJoinReqResp(): void;
1769
1540
  /**
1770
- * Publishes specified local streams in the meeting
1771
1541
  *
1772
- * @param {Object} streams
1773
- * @returns {Promise}
1542
+ * @returns {undefined}
1774
1543
  */
1775
- publishStreams(streams: LocalStreams): Promise<void>;
1544
+ setEndJoinReqResp(): void;
1776
1545
  /**
1777
- * Un-publishes specified local streams in the meeting
1778
1546
  *
1779
- * @param {Array<LocalStream>} streams
1780
- * @returns {Promise}
1547
+ * @returns {string} duration between sending locus join request and receiving join response
1781
1548
  */
1782
- unpublishStreams(streams: LocalStream[]): Promise<void>;
1549
+ getJoinReqResp(): number;
1783
1550
  /**
1784
- * Gets permission token expiry information including timeLeft, expiryTime, currentTime
1785
- * (from the time the function has been fired)
1786
1551
  *
1787
- * @returns {object} permissionTokenExpiryInfo
1788
- * @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
1789
- * @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
1790
- * @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
1791
- */
1792
- getPermissionTokenExpiryInfo(): {
1793
- timeLeft: number;
1794
- expiryTime: number;
1795
- currentTime: number;
1796
- };
1797
- /**
1798
- * Check if there is enough time left till the permission token expires
1799
- * 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.
1800
1614
  *
1801
- * @param {number} threshold - time in seconds
1802
- * @param {string} reason - reason for refreshing the permission token
1803
- * @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
1804
1620
  */
1805
- checkAndRefreshPermissionToken(threshold: number, reason: string): Promise<void>;
1621
+ sendReaction(reactionType: ReactionType, skinToneType?: SkinToneType): any;
1806
1622
  }
1807
- export {};