@webex/plugin-meetings 3.0.0-beta.28 → 3.0.0-beta.280

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 (363) hide show
  1. package/README.md +46 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +114 -14
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/edit-lock-error.js +52 -0
  11. package/dist/breakouts/edit-lock-error.js.map +1 -0
  12. package/dist/breakouts/events.js +45 -0
  13. package/dist/breakouts/events.js.map +1 -0
  14. package/dist/breakouts/index.js +763 -31
  15. package/dist/breakouts/index.js.map +1 -1
  16. package/dist/breakouts/request.js +78 -0
  17. package/dist/breakouts/request.js.map +1 -0
  18. package/dist/breakouts/utils.js +67 -0
  19. package/dist/breakouts/utils.js.map +1 -0
  20. package/dist/common/errors/no-meeting-info.js +51 -0
  21. package/dist/common/errors/no-meeting-info.js.map +1 -0
  22. package/dist/common/errors/webex-errors.js +28 -7
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/logs/logger-proxy.js +1 -1
  25. package/dist/common/logs/logger-proxy.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +203 -28
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +112 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/interpretation/collection.js +23 -0
  43. package/dist/interpretation/collection.js.map +1 -0
  44. package/dist/interpretation/index.js +366 -0
  45. package/dist/interpretation/index.js.map +1 -0
  46. package/dist/interpretation/siLanguage.js +25 -0
  47. package/dist/interpretation/siLanguage.js.map +1 -0
  48. package/dist/locus-info/controlsUtils.js +91 -2
  49. package/dist/locus-info/controlsUtils.js.map +1 -1
  50. package/dist/locus-info/index.js +383 -62
  51. package/dist/locus-info/index.js.map +1 -1
  52. package/dist/locus-info/infoUtils.js +7 -1
  53. package/dist/locus-info/infoUtils.js.map +1 -1
  54. package/dist/locus-info/mediaSharesUtils.js +57 -1
  55. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  56. package/dist/locus-info/parser.js +249 -72
  57. package/dist/locus-info/parser.js.map +1 -1
  58. package/dist/locus-info/selfUtils.js +89 -14
  59. package/dist/locus-info/selfUtils.js.map +1 -1
  60. package/dist/media/index.js +58 -116
  61. package/dist/media/index.js.map +1 -1
  62. package/dist/media/properties.js +72 -123
  63. package/dist/media/properties.js.map +1 -1
  64. package/dist/meeting/in-meeting-actions.js +82 -2
  65. package/dist/meeting/in-meeting-actions.js.map +1 -1
  66. package/dist/meeting/index.js +3123 -2814
  67. package/dist/meeting/index.js.map +1 -1
  68. package/dist/meeting/locusMediaRequest.js +292 -0
  69. package/dist/meeting/locusMediaRequest.js.map +1 -0
  70. package/dist/meeting/muteState.js +230 -124
  71. package/dist/meeting/muteState.js.map +1 -1
  72. package/dist/meeting/request.js +256 -196
  73. package/dist/meeting/request.js.map +1 -1
  74. package/dist/meeting/util.js +601 -417
  75. package/dist/meeting/util.js.map +1 -1
  76. package/dist/meeting-info/index.js +73 -7
  77. package/dist/meeting-info/index.js.map +1 -1
  78. package/dist/meeting-info/meeting-info-v2.js +192 -51
  79. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  80. package/dist/meeting-info/util.js +1 -1
  81. package/dist/meeting-info/util.js.map +1 -1
  82. package/dist/meeting-info/utilv2.js +36 -36
  83. package/dist/meeting-info/utilv2.js.map +1 -1
  84. package/dist/meetings/collection.js +22 -0
  85. package/dist/meetings/collection.js.map +1 -1
  86. package/dist/meetings/index.js +394 -94
  87. package/dist/meetings/index.js.map +1 -1
  88. package/dist/meetings/meetings.types.js +7 -0
  89. package/dist/meetings/meetings.types.js.map +1 -0
  90. package/dist/meetings/request.js +2 -0
  91. package/dist/meetings/request.js.map +1 -1
  92. package/dist/meetings/util.js +71 -1
  93. package/dist/meetings/util.js.map +1 -1
  94. package/dist/member/index.js +49 -0
  95. package/dist/member/index.js.map +1 -1
  96. package/dist/member/types.js +25 -0
  97. package/dist/member/types.js.map +1 -0
  98. package/dist/member/util.js +121 -25
  99. package/dist/member/util.js.map +1 -1
  100. package/dist/members/collection.js +10 -0
  101. package/dist/members/collection.js.map +1 -1
  102. package/dist/members/index.js +86 -6
  103. package/dist/members/index.js.map +1 -1
  104. package/dist/members/request.js +106 -38
  105. package/dist/members/request.js.map +1 -1
  106. package/dist/members/types.js +15 -0
  107. package/dist/members/types.js.map +1 -0
  108. package/dist/members/util.js +316 -233
  109. package/dist/members/util.js.map +1 -1
  110. package/dist/metrics/constants.js +12 -5
  111. package/dist/metrics/constants.js.map +1 -1
  112. package/dist/metrics/index.js +1 -468
  113. package/dist/metrics/index.js.map +1 -1
  114. package/dist/multistream/mediaRequestManager.js +238 -49
  115. package/dist/multistream/mediaRequestManager.js.map +1 -1
  116. package/dist/multistream/receiveSlot.js +40 -16
  117. package/dist/multistream/receiveSlot.js.map +1 -1
  118. package/dist/multistream/receiveSlotManager.js +39 -36
  119. package/dist/multistream/receiveSlotManager.js.map +1 -1
  120. package/dist/multistream/remoteMedia.js +44 -18
  121. package/dist/multistream/remoteMedia.js.map +1 -1
  122. package/dist/multistream/remoteMediaGroup.js +60 -3
  123. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  124. package/dist/multistream/remoteMediaManager.js +209 -59
  125. package/dist/multistream/remoteMediaManager.js.map +1 -1
  126. package/dist/multistream/sendSlotManager.js +233 -0
  127. package/dist/multistream/sendSlotManager.js.map +1 -0
  128. package/dist/reachability/index.js +225 -59
  129. package/dist/reachability/index.js.map +1 -1
  130. package/dist/reachability/request.js +17 -8
  131. package/dist/reachability/request.js.map +1 -1
  132. package/dist/reconnection-manager/index.js +199 -154
  133. package/dist/reconnection-manager/index.js.map +1 -1
  134. package/dist/recording-controller/index.js +21 -2
  135. package/dist/recording-controller/index.js.map +1 -1
  136. package/dist/recording-controller/util.js +9 -8
  137. package/dist/recording-controller/util.js.map +1 -1
  138. package/dist/roap/index.js +23 -29
  139. package/dist/roap/index.js.map +1 -1
  140. package/dist/roap/request.js +112 -97
  141. package/dist/roap/request.js.map +1 -1
  142. package/dist/roap/turnDiscovery.js +96 -36
  143. package/dist/roap/turnDiscovery.js.map +1 -1
  144. package/dist/rtcMetrics/constants.js +12 -0
  145. package/dist/rtcMetrics/constants.js.map +1 -0
  146. package/dist/rtcMetrics/index.js +117 -0
  147. package/dist/rtcMetrics/index.js.map +1 -0
  148. package/dist/statsAnalyzer/index.js +67 -73
  149. package/dist/statsAnalyzer/index.js.map +1 -1
  150. package/dist/statsAnalyzer/mqaUtil.js +11 -10
  151. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  152. package/dist/types/annotation/annotation.types.d.ts +42 -0
  153. package/dist/types/annotation/constants.d.ts +31 -0
  154. package/dist/types/annotation/index.d.ts +117 -0
  155. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  156. package/dist/types/breakouts/events.d.ts +8 -0
  157. package/dist/types/breakouts/request.d.ts +22 -0
  158. package/dist/types/breakouts/utils.d.ts +15 -0
  159. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  160. package/dist/types/common/errors/webex-errors.d.ts +13 -1
  161. package/dist/types/common/queue.d.ts +9 -7
  162. package/dist/types/config.d.ts +1 -6
  163. package/dist/types/constants.d.ts +161 -21
  164. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  165. package/dist/types/controls-options-manager/index.d.ts +17 -1
  166. package/dist/types/controls-options-manager/types.d.ts +43 -0
  167. package/dist/types/controls-options-manager/util.d.ts +1 -7
  168. package/dist/types/index.d.ts +6 -4
  169. package/dist/types/interpretation/collection.d.ts +5 -0
  170. package/dist/types/interpretation/index.d.ts +5 -0
  171. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  172. package/dist/types/locus-info/index.d.ts +57 -4
  173. package/dist/types/locus-info/parser.d.ts +67 -6
  174. package/dist/types/media/index.d.ts +2 -0
  175. package/dist/types/media/properties.d.ts +34 -48
  176. package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
  177. package/dist/types/meeting/index.d.ts +345 -507
  178. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  179. package/dist/types/meeting/muteState.d.ts +99 -23
  180. package/dist/types/meeting/request.d.ts +72 -43
  181. package/dist/types/meeting/util.d.ts +101 -1
  182. package/dist/types/meeting-info/index.d.ts +13 -1
  183. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  184. package/dist/types/meetings/collection.d.ts +8 -0
  185. package/dist/types/meetings/index.d.ts +88 -12
  186. package/dist/types/meetings/meetings.types.d.ts +4 -0
  187. package/dist/types/member/index.d.ts +13 -0
  188. package/dist/types/member/types.d.ts +32 -0
  189. package/dist/types/members/collection.d.ts +5 -0
  190. package/dist/types/members/index.d.ts +35 -2
  191. package/dist/types/members/request.d.ts +73 -9
  192. package/dist/types/members/types.d.ts +24 -0
  193. package/dist/types/members/util.d.ts +209 -1
  194. package/dist/types/metrics/constants.d.ts +11 -4
  195. package/dist/types/metrics/index.d.ts +4 -119
  196. package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
  197. package/dist/types/multistream/receiveSlot.d.ts +13 -11
  198. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  199. package/dist/types/multistream/remoteMedia.d.ts +8 -29
  200. package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
  201. package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
  202. package/dist/types/multistream/sendSlotManager.d.ts +61 -0
  203. package/dist/types/reachability/index.d.ts +61 -7
  204. package/dist/types/reachability/request.d.ts +7 -3
  205. package/dist/types/reconnection-manager/index.d.ts +9 -0
  206. package/dist/types/recording-controller/index.d.ts +15 -1
  207. package/dist/types/recording-controller/util.d.ts +5 -4
  208. package/dist/types/roap/request.d.ts +15 -11
  209. package/dist/types/roap/turnDiscovery.d.ts +18 -1
  210. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  211. package/dist/types/rtcMetrics/index.d.ts +47 -0
  212. package/dist/types/statsAnalyzer/index.d.ts +6 -1
  213. package/package.json +23 -20
  214. package/src/annotation/annotation.types.ts +50 -0
  215. package/src/annotation/constants.ts +36 -0
  216. package/src/annotation/index.ts +328 -0
  217. package/src/breakouts/README.md +44 -14
  218. package/src/breakouts/breakout.ts +87 -9
  219. package/src/breakouts/edit-lock-error.ts +25 -0
  220. package/src/breakouts/events.ts +56 -0
  221. package/src/breakouts/index.ts +646 -18
  222. package/src/breakouts/request.ts +55 -0
  223. package/src/breakouts/utils.ts +57 -0
  224. package/src/common/errors/no-meeting-info.ts +24 -0
  225. package/src/common/errors/webex-errors.ts +27 -2
  226. package/src/common/logs/logger-proxy.ts +1 -1
  227. package/src/common/queue.ts +22 -8
  228. package/src/config.ts +4 -9
  229. package/src/constants.ts +184 -18
  230. package/src/controls-options-manager/enums.ts +12 -0
  231. package/src/controls-options-manager/index.ts +116 -21
  232. package/src/controls-options-manager/types.ts +59 -0
  233. package/src/controls-options-manager/util.ts +294 -14
  234. package/src/index.ts +40 -0
  235. package/src/interpretation/README.md +60 -0
  236. package/src/interpretation/collection.ts +19 -0
  237. package/src/interpretation/index.ts +332 -0
  238. package/src/interpretation/siLanguage.ts +18 -0
  239. package/src/locus-info/controlsUtils.ts +108 -0
  240. package/src/locus-info/index.ts +413 -59
  241. package/src/locus-info/infoUtils.ts +10 -2
  242. package/src/locus-info/mediaSharesUtils.ts +64 -0
  243. package/src/locus-info/parser.ts +258 -47
  244. package/src/locus-info/selfUtils.ts +81 -5
  245. package/src/media/index.ts +100 -122
  246. package/src/media/properties.ts +85 -108
  247. package/src/meeting/in-meeting-actions.ts +163 -3
  248. package/src/meeting/index.ts +2541 -2309
  249. package/src/meeting/locusMediaRequest.ts +313 -0
  250. package/src/meeting/muteState.ts +229 -131
  251. package/src/meeting/request.ts +172 -121
  252. package/src/meeting/util.ts +588 -394
  253. package/src/meeting-info/index.ts +81 -8
  254. package/src/meeting-info/meeting-info-v2.ts +170 -14
  255. package/src/meeting-info/util.ts +1 -1
  256. package/src/meeting-info/utilv2.ts +23 -23
  257. package/src/meetings/collection.ts +20 -0
  258. package/src/meetings/index.ts +428 -108
  259. package/src/meetings/meetings.types.ts +12 -0
  260. package/src/meetings/request.ts +2 -0
  261. package/src/meetings/util.ts +79 -4
  262. package/src/member/index.ts +49 -0
  263. package/src/member/types.ts +38 -0
  264. package/src/member/util.ts +127 -25
  265. package/src/members/collection.ts +8 -0
  266. package/src/members/index.ts +106 -7
  267. package/src/members/request.ts +97 -17
  268. package/src/members/types.ts +28 -0
  269. package/src/members/util.ts +319 -240
  270. package/src/metrics/constants.ts +11 -4
  271. package/src/metrics/index.ts +1 -490
  272. package/src/multistream/mediaRequestManager.ts +289 -79
  273. package/src/multistream/receiveSlot.ts +47 -17
  274. package/src/multistream/receiveSlotManager.ts +34 -24
  275. package/src/multistream/remoteMedia.ts +27 -2
  276. package/src/multistream/remoteMediaGroup.ts +59 -0
  277. package/src/multistream/remoteMediaManager.ts +148 -30
  278. package/src/multistream/sendSlotManager.ts +170 -0
  279. package/src/reachability/index.ts +228 -37
  280. package/src/reachability/request.ts +17 -8
  281. package/src/reconnection-manager/index.ts +81 -54
  282. package/src/recording-controller/index.ts +20 -3
  283. package/src/recording-controller/util.ts +26 -9
  284. package/src/roap/index.ts +23 -30
  285. package/src/roap/request.ts +100 -104
  286. package/src/roap/turnDiscovery.ts +51 -25
  287. package/src/rtcMetrics/constants.ts +3 -0
  288. package/src/rtcMetrics/index.ts +100 -0
  289. package/src/statsAnalyzer/index.ts +88 -88
  290. package/src/statsAnalyzer/mqaUtil.ts +13 -14
  291. package/test/integration/spec/converged-space-meetings.js +60 -3
  292. package/test/integration/spec/journey.js +320 -261
  293. package/test/integration/spec/space-meeting.js +76 -3
  294. package/test/unit/spec/annotation/index.ts +418 -0
  295. package/test/unit/spec/breakouts/breakout.ts +142 -24
  296. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  297. package/test/unit/spec/breakouts/events.ts +89 -0
  298. package/test/unit/spec/breakouts/index.ts +1488 -67
  299. package/test/unit/spec/breakouts/request.ts +104 -0
  300. package/test/unit/spec/breakouts/utils.js +72 -0
  301. package/test/unit/spec/common/queue.js +31 -2
  302. package/test/unit/spec/controls-options-manager/index.js +163 -0
  303. package/test/unit/spec/controls-options-manager/util.js +576 -60
  304. package/test/unit/spec/fixture/locus.js +1 -0
  305. package/test/unit/spec/interpretation/collection.ts +15 -0
  306. package/test/unit/spec/interpretation/index.ts +589 -0
  307. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  308. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  309. package/test/unit/spec/locus-info/index.js +1304 -33
  310. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  311. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  312. package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
  313. package/test/unit/spec/locus-info/parser.js +116 -35
  314. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  315. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  316. package/test/unit/spec/media/index.ts +104 -37
  317. package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
  318. package/test/unit/spec/meeting/index.js +4515 -1932
  319. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  320. package/test/unit/spec/meeting/muteState.js +408 -208
  321. package/test/unit/spec/meeting/request.js +440 -45
  322. package/test/unit/spec/meeting/utils.js +679 -64
  323. package/test/unit/spec/meeting-info/index.js +295 -0
  324. package/test/unit/spec/meeting-info/meetinginfov2.js +521 -5
  325. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  326. package/test/unit/spec/meetings/collection.js +14 -0
  327. package/test/unit/spec/meetings/index.js +1007 -177
  328. package/test/unit/spec/meetings/utils.js +206 -2
  329. package/test/unit/spec/member/index.js +58 -4
  330. package/test/unit/spec/member/util.js +479 -35
  331. package/test/unit/spec/members/index.js +319 -1
  332. package/test/unit/spec/members/request.js +206 -27
  333. package/test/unit/spec/members/utils.js +184 -0
  334. package/test/unit/spec/metrics/index.js +1 -50
  335. package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
  336. package/test/unit/spec/multistream/receiveSlot.ts +43 -20
  337. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  338. package/test/unit/spec/multistream/remoteMedia.ts +30 -0
  339. package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
  340. package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
  341. package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
  342. package/test/unit/spec/reachability/index.ts +549 -9
  343. package/test/unit/spec/reachability/request.js +68 -0
  344. package/test/unit/spec/reconnection-manager/index.js +84 -9
  345. package/test/unit/spec/recording-controller/index.js +294 -218
  346. package/test/unit/spec/recording-controller/util.js +223 -96
  347. package/test/unit/spec/roap/index.ts +31 -51
  348. package/test/unit/spec/roap/request.ts +203 -85
  349. package/test/unit/spec/roap/turnDiscovery.ts +48 -13
  350. package/test/unit/spec/rtcMetrics/index.ts +68 -0
  351. package/test/unit/spec/stats-analyzer/index.js +64 -2
  352. package/test/utils/integrationTestUtils.js +46 -0
  353. package/test/utils/testUtils.js +0 -52
  354. package/dist/meeting/effectsState.js +0 -262
  355. package/dist/meeting/effectsState.js.map +0 -1
  356. package/dist/metrics/config.js +0 -299
  357. package/dist/metrics/config.js.map +0 -1
  358. package/dist/types/meeting/effectsState.d.ts +0 -42
  359. package/dist/types/metrics/config.d.ts +0 -178
  360. package/src/index.js +0 -16
  361. package/src/meeting/effectsState.ts +0 -211
  362. package/src/metrics/config.ts +0 -495
  363. package/test/unit/spec/meeting/effectsState.js +0 -285
@@ -1,41 +1,65 @@
1
1
  import {ConnectionState, Event} from '@webex/internal-media-core';
2
2
 
3
+ import {
4
+ LocalCameraStream,
5
+ LocalMicrophoneStream,
6
+ LocalDisplayStream,
7
+ LocalSystemAudioStream,
8
+ RemoteStream,
9
+ } from '@webex/media-helpers';
10
+
3
11
  import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
4
12
  import LoggerProxy from '../common/logs/logger-proxy';
5
13
 
14
+ export type MediaDirection = {
15
+ sendAudio: boolean;
16
+ sendVideo: boolean;
17
+ sendShare: boolean;
18
+ receiveAudio: boolean;
19
+ receiveVideo: boolean;
20
+ receiveShare: boolean;
21
+ };
22
+
6
23
  /**
7
24
  * @class MediaProperties
8
25
  */
9
26
  export default class MediaProperties {
10
- audioTrack: any;
11
- localQualityLevel: any;
12
- mediaDirection: any;
27
+ audioStream?: LocalMicrophoneStream;
28
+ mediaDirection: MediaDirection;
13
29
  mediaSettings: any;
14
30
  webrtcMediaConnection: any;
15
- remoteAudioTrack: any;
31
+ remoteAudioStream: RemoteStream;
16
32
  remoteQualityLevel: any;
17
- remoteShare: any;
18
- remoteVideoTrack: any;
19
- shareTrack: any;
33
+ remoteShareStream: RemoteStream;
34
+ remoteVideoStream: RemoteStream;
35
+ shareVideoStream?: LocalDisplayStream;
36
+ shareAudioStream?: LocalSystemAudioStream;
20
37
  videoDeviceId: any;
21
- videoTrack: any;
38
+ videoStream?: LocalCameraStream;
22
39
  namespace = MEETINGS;
23
40
 
24
41
  /**
25
42
  * @param {Object} [options] -- to auto construct
26
43
  * @returns {MediaProperties}
27
44
  */
28
- constructor(options: any = {}) {
45
+ constructor() {
29
46
  this.webrtcMediaConnection = null;
30
- this.mediaDirection = options.mediaDirection;
31
- this.videoTrack = options.videoTrack;
32
- this.audioTrack = options.audioTrack;
33
- this.shareTrack = options.shareTrack;
34
- this.remoteShare = options.remoteShare;
35
- this.remoteAudioTrack = options.remoteAudioTrack;
36
- this.remoteVideoTrack = options.remoteVideoTrack;
37
- this.localQualityLevel = options.localQualityLevel || QUALITY_LEVELS['720p'];
38
- this.remoteQualityLevel = options.remoteQualityLevel || QUALITY_LEVELS.HIGH;
47
+ this.mediaDirection = {
48
+ receiveAudio: false,
49
+ receiveVideo: false,
50
+ receiveShare: false,
51
+ sendAudio: false,
52
+ sendVideo: false,
53
+ sendShare: false,
54
+ };
55
+ this.videoStream = null;
56
+ this.audioStream = null;
57
+ this.shareVideoStream = null;
58
+ this.shareAudioStream = null;
59
+ this.remoteShareStream = undefined;
60
+ this.remoteAudioStream = undefined;
61
+ this.remoteVideoStream = undefined;
62
+ this.remoteQualityLevel = QUALITY_LEVELS.HIGH;
39
63
  this.mediaSettings = {};
40
64
  this.videoDeviceId = null;
41
65
  }
@@ -60,46 +84,46 @@ export default class MediaProperties {
60
84
  this.webrtcMediaConnection = mediaPeerConnection;
61
85
  }
62
86
 
63
- setLocalVideoTrack(videoTrack) {
64
- this.videoTrack = videoTrack;
87
+ setLocalVideoStream(videoStream?: LocalCameraStream) {
88
+ this.videoStream = videoStream;
65
89
  }
66
90
 
67
- setLocalAudioTrack(audioTrack) {
68
- this.audioTrack = audioTrack;
91
+ setLocalAudioStream(audioStream?: LocalMicrophoneStream) {
92
+ this.audioStream = audioStream;
69
93
  }
70
94
 
71
- setLocalQualityLevel(localQualityLevel) {
72
- this.localQualityLevel = localQualityLevel;
95
+ setLocalShareVideoStream(shareVideoStream?: LocalDisplayStream) {
96
+ this.shareVideoStream = shareVideoStream;
73
97
  }
74
98
 
75
- setLocalShareTrack(shareTrack) {
76
- this.shareTrack = shareTrack;
99
+ setLocalShareAudioStream(shareAudioStream?: LocalSystemAudioStream) {
100
+ this.shareAudioStream = shareAudioStream;
77
101
  }
78
102
 
79
103
  setRemoteQualityLevel(remoteQualityLevel) {
80
104
  this.remoteQualityLevel = remoteQualityLevel;
81
105
  }
82
106
 
83
- setRemoteShare(remoteShare) {
84
- this.remoteShare = remoteShare;
107
+ setRemoteShareStream(remoteShareStream: RemoteStream) {
108
+ this.remoteShareStream = remoteShareStream;
85
109
  }
86
110
 
87
111
  /**
88
- * Sets the remote audio track
89
- * @param {MediaTrack} remoteAudioTrack MediaTrack to save
112
+ * Sets the remote audio stream
113
+ * @param {RemoteStream} remoteAudioStream RemoteStream to save
90
114
  * @returns {void}
91
115
  */
92
- setRemoteAudioTrack(remoteAudioTrack: any) {
93
- this.remoteAudioTrack = remoteAudioTrack;
116
+ setRemoteAudioStream(remoteAudioStream: RemoteStream) {
117
+ this.remoteAudioStream = remoteAudioStream;
94
118
  }
95
119
 
96
120
  /**
97
- * Sets the remote video track
98
- * @param {MediaTrack} remoteVideoTrack MediaTrack to save
121
+ * Sets the remote video stream
122
+ * @param {RemoteStream} remoteVideoStream RemoteStream to save
99
123
  * @returns {void}
100
124
  */
101
- setRemoteVideoTrack(remoteVideoTrack: any) {
102
- this.remoteVideoTrack = remoteVideoTrack;
125
+ setRemoteVideoStream(remoteVideoStream: RemoteStream) {
126
+ this.remoteVideoStream = remoteVideoStream;
103
127
  }
104
128
 
105
129
  /**
@@ -115,96 +139,34 @@ export default class MediaProperties {
115
139
  this.webrtcMediaConnection = null;
116
140
  }
117
141
 
118
- unsetLocalVideoTrack() {
119
- this.videoTrack = null;
120
- }
121
-
122
- unsetLocalShareTrack() {
123
- this.shareTrack = null;
124
- }
125
-
126
- unsetLocalAudioTrack() {
127
- this.audioTrack = null;
128
- }
129
-
130
- /**
131
- * Removes remote stream from class instance
132
- * @deprecated after v1.89.3
133
- * @returns {void}
134
- */
135
- unsetRemoteStream() {
136
- LoggerProxy.logger.warn(
137
- 'Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
138
- );
139
- // unsets audio and video only
140
- this.unsetRemoteMedia();
141
- }
142
-
143
142
  /**
144
143
  * Removes both remote audio and video from class instance
145
144
  * @returns {void}
146
145
  */
147
146
  unsetRemoteMedia() {
148
- this.remoteAudioTrack = null;
149
- this.remoteVideoTrack = null;
147
+ this.remoteAudioStream = null;
148
+ this.remoteVideoStream = null;
150
149
  }
151
150
 
152
- unsetRemoteShare() {
153
- this.remoteShare = null;
154
- }
155
-
156
- unsetLocalVideoTracks() {
157
- this.unsetLocalVideoTrack();
158
- this.unsetLocalShareTrack();
151
+ unsetRemoteShareStream() {
152
+ this.remoteShareStream = null;
159
153
  }
160
154
 
161
155
  /**
162
- * Removes remote stream and remote share from class instance
163
- * @deprecated after v1.89.3
156
+ * Unsets all remote streams
164
157
  * @returns {void}
165
158
  */
166
159
  unsetRemoteStreams() {
167
- LoggerProxy.logger.warn(
168
- 'Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
169
- );
170
- this.unsetRemoteStream();
171
- this.unsetRemoteShare();
172
- }
173
-
174
- /**
175
- * Unsets all remote tracks
176
- * @returns {void}
177
- */
178
- unsetRemoteTracks() {
179
160
  this.unsetRemoteMedia();
180
- this.unsetRemoteShare();
181
- }
182
-
183
- unsetShareStreams() {
184
- this.unsetLocalShareTrack();
185
- this.unsetRemoteShare();
186
- }
187
-
188
- /**
189
- * Removes both local and remote video stream from class instance
190
- * @deprecated after v1.89.3
191
- * @returns {void}
192
- */
193
- unsetMediaStreams() {
194
- LoggerProxy.logger.warn(
195
- 'Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)'
196
- );
197
- this.unsetLocalVideoTrack();
198
- this.unsetRemoteStream();
161
+ this.unsetRemoteShareStream();
199
162
  }
200
163
 
201
164
  /**
202
- * Removes both local and remote video stream from class instance
203
- * @returns {void}
165
+ * Returns if we have at least one local share stream or not.
166
+ * @returns {Boolean}
204
167
  */
205
- unsetMediaTracks() {
206
- this.unsetLocalVideoTrack();
207
- this.unsetRemoteMedia();
168
+ hasLocalShareStream() {
169
+ return !!(this.shareAudioStream || this.shareVideoStream);
208
170
  }
209
171
 
210
172
  /**
@@ -297,10 +259,25 @@ export default class MediaProperties {
297
259
 
298
260
  return true;
299
261
  }
262
+ LoggerProxy.logger.warn(
263
+ `Media:properties#getCurrentConnectionType --> missing localCandidate.protocol, candidateType=${localCandidate.candidateType}`
264
+ );
300
265
 
301
266
  return false;
302
267
  });
303
268
 
269
+ if (foundConnectionType === 'unknown') {
270
+ const candidatePairStates = allStatsReports
271
+ .filter((report) => report.type === 'candidate-pair')
272
+ .map((report) => report.state);
273
+
274
+ LoggerProxy.logger.warn(
275
+ `Media:properties#getCurrentConnectionType --> all candidate pair states: ${JSON.stringify(
276
+ candidatePairStates
277
+ )}`
278
+ );
279
+ }
280
+
304
281
  return foundConnectionType;
305
282
  }
306
283
  }
@@ -17,7 +17,11 @@ interface IInMeetingActions {
17
17
  canUnsetMuteOnEntry?: boolean;
18
18
  canSetDisallowUnmute?: boolean;
19
19
  canUnsetDisallowUnmute?: boolean;
20
+ canSetMuted?: boolean;
21
+ canUnsetMuted?: boolean;
20
22
  canAssignHost?: boolean;
23
+ canSetPresenter?: boolean;
24
+ canUnsetPresenter?: boolean;
21
25
  canStartRecording?: boolean;
22
26
  canPauseRecording?: boolean;
23
27
  canResumeRecording?: boolean;
@@ -30,13 +34,49 @@ interface IInMeetingActions {
30
34
  canStartTranscribing?: boolean;
31
35
  canStopTranscribing?: boolean;
32
36
  isClosedCaptionActive?: boolean;
37
+ isSaveTranscriptsEnabled?: boolean;
33
38
  isWebexAssistantActive?: boolean;
34
39
  canViewCaptionPanel?: boolean;
35
40
  isRealTimeTranslationEnabled?: boolean;
36
41
  canSelectSpokenLanguages?: boolean;
37
42
  waitingForOthersToJoin?: boolean;
38
- canEnableReactions?: boolean;
39
43
  canSendReactions?: boolean;
44
+ canManageBreakout?: boolean;
45
+ canBroadcastMessageToBreakout?: boolean;
46
+ canAdmitLobbyToBreakout?: boolean;
47
+ isBreakoutPreassignmentsEnabled?: boolean;
48
+ canUserAskForHelp?: boolean;
49
+ canUserRenameSelfAndObserved?: boolean;
50
+ canUserRenameOthers?: boolean;
51
+ canMuteAll?: boolean;
52
+ canUnmuteAll?: boolean;
53
+ canEnableHardMute?: boolean;
54
+ canDisableHardMute?: boolean;
55
+ canEnableMuteOnEntry?: boolean;
56
+ canDisableMuteOnEntry?: boolean;
57
+ canEnableReactions?: boolean;
58
+ canDisableReactions?: boolean;
59
+ canEnableReactionDisplayNames?: boolean;
60
+ canDisableReactionDisplayNames?: boolean;
61
+ canUpdateShareControl?: boolean;
62
+ canEnableViewTheParticipantsList?: boolean;
63
+ canDisableViewTheParticipantsList?: boolean;
64
+ canEnableRaiseHand?: boolean;
65
+ canDisableRaiseHand?: boolean;
66
+ canEnableVideo?: boolean;
67
+ canDisableVideo?: boolean;
68
+ canShareFile?: boolean;
69
+ canShareApplication?: boolean;
70
+ canShareCamera?: boolean;
71
+ canShareDesktop?: boolean;
72
+ canShareContent?: boolean;
73
+ canTransferFile?: boolean;
74
+ canDoVideo?: boolean;
75
+ canAnnotate?: boolean;
76
+ canUseVoip?: boolean;
77
+ supportHQV?: boolean;
78
+ supportHDV?: boolean;
79
+ canShareWhiteBoard?: boolean;
40
80
  }
41
81
 
42
82
  /**
@@ -65,12 +105,20 @@ export default class InMeetingActions implements IInMeetingActions {
65
105
 
66
106
  canSetMuteOnEntry = null;
67
107
 
108
+ canSetPresenter = null;
109
+
110
+ canUnsetPresenter = null;
111
+
68
112
  canUnsetMuteOnEntry = null;
69
113
 
70
114
  canSetDisallowUnmute = null;
71
115
 
72
116
  canUnsetDisallowUnmute = null;
73
117
 
118
+ canSetMuted = null;
119
+
120
+ canUnsetMuted = null;
121
+
74
122
  canRaiseHand = null;
75
123
 
76
124
  canLowerAllHands = null;
@@ -87,6 +135,8 @@ export default class InMeetingActions implements IInMeetingActions {
87
135
 
88
136
  isClosedCaptionActive = null;
89
137
 
138
+ isSaveTranscriptsEnabled = null;
139
+
90
140
  isWebexAssistantActive = null;
91
141
 
92
142
  canViewCaptionPanel = null;
@@ -97,9 +147,79 @@ export default class InMeetingActions implements IInMeetingActions {
97
147
 
98
148
  waitingForOthersToJoin = null;
99
149
 
150
+ canSendReactions = null;
151
+
152
+ canManageBreakout = null;
153
+
154
+ canBroadcastMessageToBreakout = null;
155
+
156
+ canAdmitLobbyToBreakout = null;
157
+
158
+ isBreakoutPreassignmentsEnabled = null;
159
+
160
+ canUserAskForHelp = null;
161
+
162
+ canUserRenameSelfAndObserved = null;
163
+
164
+ canUserRenameOthers = null;
165
+
166
+ canMuteAll = null;
167
+
168
+ canUnmuteAll = null;
169
+
170
+ canEnableHardMute = null;
171
+
172
+ canDisableHardMute = null;
173
+
174
+ canEnableMuteOnEntry = null;
175
+
176
+ canDisableMuteOnEntry = null;
177
+
100
178
  canEnableReactions = null;
101
179
 
102
- canSendReactions = null;
180
+ canDisableReactions = null;
181
+
182
+ canEnableReactionDisplayNames = null;
183
+
184
+ canDisableReactionDisplayNames = null;
185
+
186
+ canUpdateShareControl = null;
187
+
188
+ canEnableViewTheParticipantsList = null;
189
+
190
+ canDisableViewTheParticipantsList = null;
191
+
192
+ canEnableRaiseHand = null;
193
+
194
+ canDisableRaiseHand = null;
195
+
196
+ canEnableVideo = null;
197
+
198
+ canDisableVideo = null;
199
+
200
+ canShareFile = null;
201
+
202
+ canShareApplication = null;
203
+
204
+ canShareCamera = null;
205
+
206
+ canShareDesktop = null;
207
+
208
+ canShareContent = null;
209
+
210
+ canTransferFile = null;
211
+
212
+ canDoVideo = null;
213
+
214
+ canAnnotate = null;
215
+
216
+ canUseVoip = null;
217
+
218
+ supportHQV = null;
219
+
220
+ supportHDV = null;
221
+
222
+ canShareWhiteBoard = null;
103
223
 
104
224
  /**
105
225
  * Returns all meeting action options
@@ -114,6 +234,10 @@ export default class InMeetingActions implements IInMeetingActions {
114
234
  canSetMuteOnEntry: this.canSetMuteOnEntry,
115
235
  canUnsetMuteOnEntry: this.canUnsetMuteOnEntry,
116
236
  canSetDisallowUnmute: this.canSetDisallowUnmute,
237
+ canSetMuted: this.canSetMuted,
238
+ canUnsetMuted: this.canUnsetMuted,
239
+ canSetPresenter: this.canSetPresenter,
240
+ canUnsetPresenter: this.canUnsetPresenter,
117
241
  canUnsetDisallowUnmute: this.canUnsetDisallowUnmute,
118
242
  canStartRecording: this.canStartRecording,
119
243
  canPauseRecording: this.canPauseRecording,
@@ -127,13 +251,49 @@ export default class InMeetingActions implements IInMeetingActions {
127
251
  canStartTranscribing: this.canStartTranscribing,
128
252
  canStopTranscribing: this.canStopTranscribing,
129
253
  isClosedCaptionActive: this.isClosedCaptionActive,
254
+ isSaveTranscriptsEnabled: this.isSaveTranscriptsEnabled,
130
255
  isWebexAssistantActive: this.isWebexAssistantActive,
131
256
  canViewCaptionPanel: this.canViewCaptionPanel,
132
257
  isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,
133
258
  canSelectSpokenLanguages: this.canSelectSpokenLanguages,
134
259
  waitingForOthersToJoin: this.waitingForOthersToJoin,
135
- canEnableReactions: this.canEnableReactions,
136
260
  canSendReactions: this.canSendReactions,
261
+ canManageBreakout: this.canManageBreakout,
262
+ canBroadcastMessageToBreakout: this.canBroadcastMessageToBreakout,
263
+ canAdmitLobbyToBreakout: this.canAdmitLobbyToBreakout,
264
+ isBreakoutPreassignmentsEnabled: this.isBreakoutPreassignmentsEnabled,
265
+ canUserAskForHelp: this.canUserAskForHelp,
266
+ canUserRenameSelfAndObserved: this.canUserRenameSelfAndObserved,
267
+ canUserRenameOthers: this.canUserRenameOthers,
268
+ canMuteAll: this.canMuteAll,
269
+ canUnmuteAll: this.canUnmuteAll,
270
+ canEnableHardMute: this.canEnableHardMute,
271
+ canDisableHardMute: this.canDisableHardMute,
272
+ canEnableMuteOnEntry: this.canEnableMuteOnEntry,
273
+ canDisableMuteOnEntry: this.canDisableMuteOnEntry,
274
+ canEnableReactions: this.canEnableReactions,
275
+ canDisableReactions: this.canDisableReactions,
276
+ canEnableReactionDisplayNames: this.canEnableReactionDisplayNames,
277
+ canDisableReactionDisplayNames: this.canDisableReactionDisplayNames,
278
+ canUpdateShareControl: this.canUpdateShareControl,
279
+ canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,
280
+ canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,
281
+ canEnableRaiseHand: this.canEnableRaiseHand,
282
+ canDisableRaiseHand: this.canDisableRaiseHand,
283
+ canEnableVideo: this.canEnableVideo,
284
+ canDisableVideo: this.canDisableVideo,
285
+ canShareFile: this.canShareFile,
286
+ canShareApplication: this.canShareApplication,
287
+ canShareCamera: this.canShareCamera,
288
+ canShareDesktop: this.canShareDesktop,
289
+ canShareContent: this.canShareContent,
290
+ canTransferFile: this.canTransferFile,
291
+ canDoVideo: this.canDoVideo,
292
+ canAnnotate: this.canAnnotate,
293
+ canUseVoip: this.canUseVoip,
294
+ supportHQV: this.supportHQV,
295
+ supportHDV: this.supportHDV,
296
+ canShareWhiteBoard: this.canShareWhiteBoard,
137
297
  });
138
298
 
139
299
  /**