@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.20

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 (365) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +116 -0
  4. package/dist/breakouts/breakout.js.map +1 -0
  5. package/dist/breakouts/collection.js +23 -0
  6. package/dist/breakouts/collection.js.map +1 -0
  7. package/dist/breakouts/index.js +226 -0
  8. package/dist/breakouts/index.js.map +1 -0
  9. package/dist/common/browser-detection.js +1 -20
  10. package/dist/common/browser-detection.js.map +1 -1
  11. package/dist/common/collection.js +5 -20
  12. package/dist/common/collection.js.map +1 -1
  13. package/dist/common/config.js +0 -7
  14. package/dist/common/config.js.map +1 -1
  15. package/dist/common/errors/captcha-error.js +10 -24
  16. package/dist/common/errors/captcha-error.js.map +1 -1
  17. package/dist/common/errors/intent-to-join.js +11 -24
  18. package/dist/common/errors/intent-to-join.js.map +1 -1
  19. package/dist/common/errors/join-meeting.js +12 -25
  20. package/dist/common/errors/join-meeting.js.map +1 -1
  21. package/dist/common/errors/media.js +10 -24
  22. package/dist/common/errors/media.js.map +1 -1
  23. package/dist/common/errors/parameter.js +5 -33
  24. package/dist/common/errors/parameter.js.map +1 -1
  25. package/dist/common/errors/password-error.js +10 -24
  26. package/dist/common/errors/password-error.js.map +1 -1
  27. package/dist/common/errors/permission.js +9 -23
  28. package/dist/common/errors/permission.js.map +1 -1
  29. package/dist/common/errors/reconnection-in-progress.js +0 -17
  30. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  31. package/dist/common/errors/reconnection.js +10 -24
  32. package/dist/common/errors/reconnection.js.map +1 -1
  33. package/dist/common/errors/stats.js +10 -24
  34. package/dist/common/errors/stats.js.map +1 -1
  35. package/dist/common/errors/webex-errors.js +6 -41
  36. package/dist/common/errors/webex-errors.js.map +1 -1
  37. package/dist/common/errors/webex-meetings-error.js +5 -25
  38. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  39. package/dist/common/events/events-scope.js +0 -22
  40. package/dist/common/events/events-scope.js.map +1 -1
  41. package/dist/common/events/events.js +0 -23
  42. package/dist/common/events/events.js.map +1 -1
  43. package/dist/common/events/trigger-proxy.js +0 -12
  44. package/dist/common/events/trigger-proxy.js.map +1 -1
  45. package/dist/common/events/util.js +0 -15
  46. package/dist/common/events/util.js.map +1 -1
  47. package/dist/common/logs/logger-config.js +0 -4
  48. package/dist/common/logs/logger-config.js.map +1 -1
  49. package/dist/common/logs/logger-proxy.js +1 -8
  50. package/dist/common/logs/logger-proxy.js.map +1 -1
  51. package/dist/common/logs/request.js +37 -60
  52. package/dist/common/logs/request.js.map +1 -1
  53. package/dist/common/queue.js +4 -14
  54. package/dist/common/queue.js.map +1 -1
  55. package/dist/config.js +6 -6
  56. package/dist/config.js.map +1 -1
  57. package/dist/constants.js +88 -46
  58. package/dist/constants.js.map +1 -1
  59. package/dist/index.js +1 -17
  60. package/dist/index.js.map +1 -1
  61. package/dist/locus-info/controlsUtils.js +12 -29
  62. package/dist/locus-info/controlsUtils.js.map +1 -1
  63. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  64. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  65. package/dist/locus-info/fullState.js +0 -15
  66. package/dist/locus-info/fullState.js.map +1 -1
  67. package/dist/locus-info/hostUtils.js +4 -12
  68. package/dist/locus-info/hostUtils.js.map +1 -1
  69. package/dist/locus-info/index.js +184 -190
  70. package/dist/locus-info/index.js.map +1 -1
  71. package/dist/locus-info/infoUtils.js +3 -37
  72. package/dist/locus-info/infoUtils.js.map +1 -1
  73. package/dist/locus-info/mediaSharesUtils.js +12 -38
  74. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  75. package/dist/locus-info/parser.js +92 -118
  76. package/dist/locus-info/parser.js.map +1 -1
  77. package/dist/locus-info/selfUtils.js +34 -91
  78. package/dist/locus-info/selfUtils.js.map +1 -1
  79. package/dist/media/index.js +67 -111
  80. package/dist/media/index.js.map +1 -1
  81. package/dist/media/properties.js +80 -114
  82. package/dist/media/properties.js.map +1 -1
  83. package/dist/media/util.js +2 -9
  84. package/dist/media/util.js.map +1 -1
  85. package/dist/mediaQualityMetrics/config.js +10 -12
  86. package/dist/mediaQualityMetrics/config.js.map +1 -1
  87. package/dist/meeting/effectsState.js +125 -190
  88. package/dist/meeting/effectsState.js.map +1 -1
  89. package/dist/meeting/in-meeting-actions.js +5 -14
  90. package/dist/meeting/in-meeting-actions.js.map +1 -1
  91. package/dist/meeting/index.js +1692 -1925
  92. package/dist/meeting/index.js.map +1 -1
  93. package/dist/meeting/muteState.js +36 -77
  94. package/dist/meeting/muteState.js.map +1 -1
  95. package/dist/meeting/request.js +224 -230
  96. package/dist/meeting/request.js.map +1 -1
  97. package/dist/meeting/request.type.js +7 -0
  98. package/dist/meeting/request.type.js.map +1 -0
  99. package/dist/meeting/state.js +21 -31
  100. package/dist/meeting/state.js.map +1 -1
  101. package/dist/meeting/util.js +43 -215
  102. package/dist/meeting/util.js.map +1 -1
  103. package/dist/meeting-info/collection.js +6 -25
  104. package/dist/meeting-info/collection.js.map +1 -1
  105. package/dist/meeting-info/index.js +14 -32
  106. package/dist/meeting-info/index.js.map +1 -1
  107. package/dist/meeting-info/meeting-info-v2.js +193 -268
  108. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  109. package/dist/meeting-info/request.js +3 -15
  110. package/dist/meeting-info/request.js.map +1 -1
  111. package/dist/meeting-info/util.js +98 -183
  112. package/dist/meeting-info/util.js.map +1 -1
  113. package/dist/meeting-info/utilv2.js +137 -228
  114. package/dist/meeting-info/utilv2.js.map +1 -1
  115. package/dist/meetings/collection.js +5 -20
  116. package/dist/meetings/collection.js.map +1 -1
  117. package/dist/meetings/index.js +490 -560
  118. package/dist/meetings/index.js.map +1 -1
  119. package/dist/meetings/request.js +24 -41
  120. package/dist/meetings/request.js.map +1 -1
  121. package/dist/meetings/util.js +99 -155
  122. package/dist/meetings/util.js.map +1 -1
  123. package/dist/member/index.js +78 -86
  124. package/dist/member/index.js.map +1 -1
  125. package/dist/member/util.js +31 -68
  126. package/dist/member/util.js.map +1 -1
  127. package/dist/members/collection.js +3 -12
  128. package/dist/members/collection.js.map +1 -1
  129. package/dist/members/index.js +93 -200
  130. package/dist/members/index.js.map +1 -1
  131. package/dist/members/request.js +16 -39
  132. package/dist/members/request.js.map +1 -1
  133. package/dist/members/util.js +9 -38
  134. package/dist/members/util.js.map +1 -1
  135. package/dist/metrics/config.js +0 -2
  136. package/dist/metrics/config.js.map +1 -1
  137. package/dist/metrics/constants.js +1 -2
  138. package/dist/metrics/constants.js.map +1 -1
  139. package/dist/metrics/index.js +55 -135
  140. package/dist/metrics/index.js.map +1 -1
  141. package/dist/multistream/mediaRequestManager.js +57 -32
  142. package/dist/multistream/mediaRequestManager.js.map +1 -1
  143. package/dist/multistream/multistreamMedia.js +15 -21
  144. package/dist/multistream/multistreamMedia.js.map +1 -1
  145. package/dist/multistream/receiveSlot.js +10 -50
  146. package/dist/multistream/receiveSlot.js.map +1 -1
  147. package/dist/multistream/receiveSlotManager.js +45 -82
  148. package/dist/multistream/receiveSlotManager.js.map +1 -1
  149. package/dist/multistream/remoteMedia.js +18 -58
  150. package/dist/multistream/remoteMedia.js.map +1 -1
  151. package/dist/multistream/remoteMediaGroup.js +6 -40
  152. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  153. package/dist/multistream/remoteMediaManager.js +362 -416
  154. package/dist/multistream/remoteMediaManager.js.map +1 -1
  155. package/dist/networkQualityMonitor/index.js +36 -57
  156. package/dist/networkQualityMonitor/index.js.map +1 -1
  157. package/dist/personal-meeting-room/index.js +21 -45
  158. package/dist/personal-meeting-room/index.js.map +1 -1
  159. package/dist/personal-meeting-room/request.js +1 -31
  160. package/dist/personal-meeting-room/request.js.map +1 -1
  161. package/dist/personal-meeting-room/util.js +0 -13
  162. package/dist/personal-meeting-room/util.js.map +1 -1
  163. package/dist/reachability/index.js +138 -182
  164. package/dist/reachability/index.js.map +1 -1
  165. package/dist/reachability/request.js +3 -18
  166. package/dist/reachability/request.js.map +1 -1
  167. package/dist/reactions/constants.js +13 -0
  168. package/dist/reactions/constants.js.map +1 -0
  169. package/dist/reactions/reactions.js +109 -0
  170. package/dist/reactions/reactions.js.map +1 -0
  171. package/dist/reactions/reactions.type.js +36 -0
  172. package/dist/reactions/reactions.type.js.map +1 -0
  173. package/dist/reconnection-manager/index.js +322 -455
  174. package/dist/reconnection-manager/index.js.map +1 -1
  175. package/dist/recording-controller/enums.js +17 -0
  176. package/dist/recording-controller/enums.js.map +1 -0
  177. package/dist/recording-controller/index.js +343 -0
  178. package/dist/recording-controller/index.js.map +1 -0
  179. package/dist/recording-controller/util.js +63 -0
  180. package/dist/recording-controller/util.js.map +1 -0
  181. package/dist/roap/index.js +39 -64
  182. package/dist/roap/index.js.map +1 -1
  183. package/dist/roap/request.js +94 -113
  184. package/dist/roap/request.js.map +1 -1
  185. package/dist/roap/turnDiscovery.js +85 -94
  186. package/dist/roap/turnDiscovery.js.map +1 -1
  187. package/dist/statsAnalyzer/global.js +0 -2
  188. package/dist/statsAnalyzer/global.js.map +1 -1
  189. package/dist/statsAnalyzer/index.js +85 -175
  190. package/dist/statsAnalyzer/index.js.map +1 -1
  191. package/dist/statsAnalyzer/mqaUtil.js +72 -53
  192. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  193. package/dist/transcription/index.js +22 -47
  194. package/dist/transcription/index.js.map +1 -1
  195. package/internal-README.md +7 -6
  196. package/package.json +25 -20
  197. package/src/breakouts/README.md +190 -0
  198. package/src/breakouts/breakout.ts +110 -0
  199. package/src/breakouts/collection.ts +19 -0
  200. package/src/breakouts/index.ts +225 -0
  201. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  202. package/src/common/collection.ts +9 -7
  203. package/src/common/{config.js → config.ts} +1 -1
  204. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  205. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  206. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  207. package/src/common/errors/{media.js → media.ts} +11 -7
  208. package/src/common/errors/parameter.ts +11 -7
  209. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  210. package/src/common/errors/{permission.js → permission.ts} +10 -6
  211. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  212. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  213. package/src/common/errors/{stats.js → stats.ts} +11 -7
  214. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  215. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  216. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  217. package/src/common/events/{events.js → events.ts} +5 -1
  218. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  219. package/src/common/events/{util.js → util.ts} +2 -3
  220. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  221. package/src/common/logs/logger-proxy.ts +44 -0
  222. package/src/common/logs/{request.js → request.ts} +22 -9
  223. package/src/common/queue.ts +1 -2
  224. package/src/{config.js → config.ts} +17 -12
  225. package/src/constants.ts +40 -1
  226. package/src/index.js +1 -1
  227. package/src/locus-info/controlsUtils.ts +114 -0
  228. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  229. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  230. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  231. package/src/locus-info/{index.js → index.ts} +148 -64
  232. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  233. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  234. package/src/locus-info/{parser.js → parser.ts} +67 -79
  235. package/src/locus-info/{selfUtils.js → selfUtils.ts} +123 -68
  236. package/src/media/{index.js → index.ts} +181 -131
  237. package/src/media/{properties.js → properties.ts} +47 -28
  238. package/src/media/{util.js → util.ts} +2 -2
  239. package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
  240. package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
  241. package/src/meeting/in-meeting-actions.ts +15 -3
  242. package/src/meeting/{index.js → index.ts} +2263 -1427
  243. package/src/meeting/{muteState.js → muteState.ts} +78 -42
  244. package/src/meeting/{request.js → request.ts} +292 -142
  245. package/src/meeting/request.type.ts +13 -0
  246. package/src/meeting/{state.js → state.ts} +50 -35
  247. package/src/meeting/{util.js → util.ts} +112 -115
  248. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  249. package/src/meeting-info/{index.js → index.ts} +42 -36
  250. package/src/meeting-info/meeting-info-v2.ts +273 -0
  251. package/src/meeting-info/{request.js → request.ts} +14 -4
  252. package/src/meeting-info/{util.js → util.ts} +60 -51
  253. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  254. package/src/meetings/{collection.js → collection.ts} +6 -3
  255. package/src/meetings/index.ts +1159 -0
  256. package/src/meetings/{request.js → request.ts} +32 -25
  257. package/src/meetings/{util.js → util.ts} +34 -32
  258. package/src/member/{index.js → index.ts} +102 -56
  259. package/src/member/{util.js → util.ts} +52 -25
  260. package/src/members/{collection.js → collection.ts} +2 -2
  261. package/src/members/{index.js → index.ts} +219 -142
  262. package/src/members/{request.js → request.ts} +60 -16
  263. package/src/members/{util.js → util.ts} +50 -48
  264. package/src/metrics/{config.js → config.ts} +254 -83
  265. package/src/metrics/{constants.js → constants.ts} +0 -2
  266. package/src/metrics/{index.js → index.ts} +106 -74
  267. package/src/multistream/mediaRequestManager.ts +81 -15
  268. package/src/multistream/multistreamMedia.ts +5 -0
  269. package/src/multistream/receiveSlot.ts +18 -12
  270. package/src/multistream/receiveSlotManager.ts +23 -21
  271. package/src/multistream/remoteMedia.ts +15 -5
  272. package/src/multistream/remoteMediaGroup.ts +4 -3
  273. package/src/multistream/remoteMediaManager.ts +153 -37
  274. package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
  275. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  276. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  277. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  278. package/src/reachability/{index.js → index.ts} +99 -83
  279. package/src/reachability/request.ts +39 -33
  280. package/src/reactions/constants.ts +4 -0
  281. package/src/reactions/reactions.ts +104 -0
  282. package/src/reactions/reactions.type.ts +62 -0
  283. package/src/reconnection-manager/{index.js → index.ts} +195 -102
  284. package/src/recording-controller/enums.ts +8 -0
  285. package/src/recording-controller/index.ts +315 -0
  286. package/src/recording-controller/util.ts +58 -0
  287. package/src/roap/{index.js → index.ts} +73 -56
  288. package/src/roap/request.ts +157 -0
  289. package/src/roap/turnDiscovery.ts +77 -37
  290. package/src/statsAnalyzer/{global.js → global.ts} +30 -33
  291. package/src/statsAnalyzer/{index.js → index.ts} +468 -192
  292. package/src/statsAnalyzer/mqaUtil.ts +290 -0
  293. package/src/transcription/{index.js → index.ts} +46 -39
  294. package/test/integration/spec/journey.js +664 -463
  295. package/test/integration/spec/space-meeting.js +320 -206
  296. package/test/integration/spec/transcription.js +7 -8
  297. package/test/unit/spec/breakouts/breakout.ts +119 -0
  298. package/test/unit/spec/breakouts/collection.ts +15 -0
  299. package/test/unit/spec/breakouts/index.ts +293 -0
  300. package/test/unit/spec/common/browser-detection.js +9 -28
  301. package/test/unit/spec/fixture/locus.js +92 -90
  302. package/test/unit/spec/locus-info/controlsUtils.js +25 -5
  303. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  304. package/test/unit/spec/locus-info/index.js +104 -2
  305. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  306. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  307. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  308. package/test/unit/spec/locus-info/parser.js +3 -9
  309. package/test/unit/spec/locus-info/selfConstant.js +97 -103
  310. package/test/unit/spec/locus-info/selfUtils.js +105 -12
  311. package/test/unit/spec/media/index.ts +31 -47
  312. package/test/unit/spec/media/properties.ts +9 -9
  313. package/test/unit/spec/meeting/effectsState.js +39 -45
  314. package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
  315. package/test/unit/spec/meeting/index.js +2017 -742
  316. package/test/unit/spec/meeting/muteState.js +42 -33
  317. package/test/unit/spec/meeting/request.js +115 -44
  318. package/test/unit/spec/meeting/utils.js +104 -171
  319. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  320. package/test/unit/spec/meeting-info/request.js +7 -9
  321. package/test/unit/spec/meeting-info/util.js +11 -12
  322. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  323. package/test/unit/spec/meetings/collection.js +1 -1
  324. package/test/unit/spec/meetings/index.js +439 -257
  325. package/test/unit/spec/meetings/utils.js +14 -12
  326. package/test/unit/spec/member/index.js +0 -1
  327. package/test/unit/spec/member/util.js +31 -7
  328. package/test/unit/spec/members/index.js +104 -54
  329. package/test/unit/spec/members/request.js +29 -20
  330. package/test/unit/spec/members/utils.js +8 -5
  331. package/test/unit/spec/metrics/index.js +16 -21
  332. package/test/unit/spec/multistream/mediaRequestManager.ts +316 -50
  333. package/test/unit/spec/multistream/receiveSlot.ts +6 -6
  334. package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
  335. package/test/unit/spec/multistream/remoteMedia.ts +10 -2
  336. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  337. package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
  338. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  339. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  340. package/test/unit/spec/reachability/index.ts +58 -26
  341. package/test/unit/spec/reconnection-manager/index.js +102 -9
  342. package/test/unit/spec/recording-controller/index.js +231 -0
  343. package/test/unit/spec/recording-controller/util.js +102 -0
  344. package/test/unit/spec/roap/index.ts +2 -1
  345. package/test/unit/spec/roap/request.ts +114 -0
  346. package/test/unit/spec/roap/turnDiscovery.ts +64 -45
  347. package/test/unit/spec/stats-analyzer/index.js +27 -22
  348. package/test/utils/cmr.js +44 -42
  349. package/test/utils/testUtils.js +83 -74
  350. package/test/utils/webex-config.js +18 -18
  351. package/test/utils/webex-test-users.js +54 -50
  352. package/tsconfig.json +6 -0
  353. package/dist/media/internal-media-core-wrapper.js +0 -22
  354. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  355. package/dist/peer-connection-manager/util.js +0 -124
  356. package/dist/peer-connection-manager/util.js.map +0 -1
  357. package/src/common/logs/logger-proxy.js +0 -33
  358. package/src/locus-info/controlsUtils.js +0 -102
  359. package/src/media/internal-media-core-wrapper.ts +0 -9
  360. package/src/meeting-info/meeting-info-v2.js +0 -255
  361. package/src/meetings/index.js +0 -1015
  362. package/src/peer-connection-manager/util.ts +0 -117
  363. package/src/roap/request.js +0 -127
  364. package/src/statsAnalyzer/mqaUtil.js +0 -173
  365. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
@@ -1,23 +1,31 @@
1
- import {MediaConnection as MC} from '@webex/internal-media-core';
1
+ import {ConnectionState, Event} from '@webex/internal-media-core';
2
2
 
3
- import {
4
- MEETINGS,
5
- PC_BAIL_TIMEOUT,
6
- QUALITY_LEVELS
7
- } from '../constants';
3
+ import {MEETINGS, PC_BAIL_TIMEOUT, QUALITY_LEVELS} from '../constants';
8
4
  import LoggerProxy from '../common/logs/logger-proxy';
9
5
 
10
6
  /**
11
7
  * @class MediaProperties
12
8
  */
13
9
  export default class MediaProperties {
10
+ audioTrack: any;
11
+ localQualityLevel: any;
12
+ mediaDirection: any;
13
+ mediaSettings: any;
14
+ webrtcMediaConnection: any;
15
+ remoteAudioTrack: any;
16
+ remoteQualityLevel: any;
17
+ remoteShare: any;
18
+ remoteVideoTrack: any;
19
+ shareTrack: any;
20
+ videoDeviceId: any;
21
+ videoTrack: any;
14
22
  namespace = MEETINGS;
15
23
 
16
24
  /**
17
25
  * @param {Object} [options] -- to auto construct
18
26
  * @returns {MediaProperties}
19
27
  */
20
- constructor(options = {}) {
28
+ constructor(options: any = {}) {
21
29
  this.webrtcMediaConnection = null;
22
30
  this.mediaDirection = options.mediaDirection;
23
31
  this.videoTrack = options.videoTrack;
@@ -81,7 +89,7 @@ export default class MediaProperties {
81
89
  * @param {MediaTrack} remoteAudioTrack MediaTrack to save
82
90
  * @returns {void}
83
91
  */
84
- setRemoteAudioTrack(remoteAudioTrack) {
92
+ setRemoteAudioTrack(remoteAudioTrack: any) {
85
93
  this.remoteAudioTrack = remoteAudioTrack;
86
94
  }
87
95
 
@@ -90,7 +98,7 @@ export default class MediaProperties {
90
98
  * @param {MediaTrack} remoteVideoTrack MediaTrack to save
91
99
  * @returns {void}
92
100
  */
93
- setRemoteVideoTrack(remoteVideoTrack) {
101
+ setRemoteVideoTrack(remoteVideoTrack: any) {
94
102
  this.remoteVideoTrack = remoteVideoTrack;
95
103
  }
96
104
 
@@ -99,7 +107,7 @@ export default class MediaProperties {
99
107
  * @param {string} deviceId Preferred video input device
100
108
  * @returns {void}
101
109
  */
102
- setVideoDeviceId(deviceId) {
110
+ setVideoDeviceId(deviceId: string) {
103
111
  this.videoDeviceId = deviceId;
104
112
  }
105
113
 
@@ -125,7 +133,9 @@ export default class MediaProperties {
125
133
  * @returns {void}
126
134
  */
127
135
  unsetRemoteStream() {
128
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
136
+ LoggerProxy.logger.warn(
137
+ 'Media:properties#unsetRemoteStream --> [DEPRECATION WARNING]: unsetRemoteStream has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
138
+ );
129
139
  // unsets audio and video only
130
140
  this.unsetRemoteMedia();
131
141
  }
@@ -154,7 +164,9 @@ export default class MediaProperties {
154
164
  * @returns {void}
155
165
  */
156
166
  unsetRemoteStreams() {
157
- LoggerProxy.logger.warn('Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)');
167
+ LoggerProxy.logger.warn(
168
+ 'Media:properties#unsetRemoteStreams --> [DEPRECATION WARNING]: unsetRemoteStreams has been deprecated after v1.89.3 (use unsetRemoteTracks instead)'
169
+ );
158
170
  this.unsetRemoteStream();
159
171
  this.unsetRemoteShare();
160
172
  }
@@ -179,7 +191,9 @@ export default class MediaProperties {
179
191
  * @returns {void}
180
192
  */
181
193
  unsetMediaStreams() {
182
- LoggerProxy.logger.warn('Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)');
194
+ LoggerProxy.logger.warn(
195
+ 'Media:properties#unsetMediaStreams --> [DEPRECATION WARNING]: unsetMediaStreams has been deprecated after v1.89.3 (use unsetMediaTracks instead)'
196
+ );
183
197
  this.unsetLocalVideoTrack();
184
198
  this.unsetRemoteStream();
185
199
  }
@@ -199,33 +213,34 @@ export default class MediaProperties {
199
213
  * @returns {Promise<void>}
200
214
  */
201
215
  waitForMediaConnectionConnected() {
202
- const isConnected = () => (
203
- this.webrtcMediaConnection.getConnectionState() === MC.ConnectionState.Connected
204
- );
216
+ const isConnected = () =>
217
+ this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
205
218
 
206
219
  if (isConnected()) {
207
220
  return Promise.resolve();
208
221
  }
209
222
 
210
- return new Promise((resolve, reject) => {
223
+ return new Promise<void>((resolve, reject) => {
211
224
  let timer;
212
225
 
213
226
  const connectionStateListener = () => {
214
- LoggerProxy.logger.log(`Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`);
227
+ LoggerProxy.logger.log(
228
+ `Media:properties#waitForMediaConnectionConnected --> connection state: ${this.webrtcMediaConnection.getConnectionState()}`
229
+ );
215
230
 
216
231
  if (isConnected()) {
217
232
  clearTimeout(timer);
218
- this.webrtcMediaConnection.off(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
233
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
219
234
  resolve();
220
235
  }
221
236
  };
222
237
 
223
238
  timer = setTimeout(() => {
224
- this.webrtcMediaConnection.off(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
239
+ this.webrtcMediaConnection.off(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
225
240
  reject();
226
241
  }, PC_BAIL_TIMEOUT);
227
242
 
228
- this.webrtcMediaConnection.on(MC.Event.CONNECTION_STATE_CHANGED, connectionStateListener);
243
+ this.webrtcMediaConnection.on(Event.CONNECTION_STATE_CHANGED, connectionStateListener);
229
244
  });
230
245
  }
231
246
 
@@ -245,9 +260,10 @@ export default class MediaProperties {
245
260
  const statsResult = await this.webrtcMediaConnection.getStats();
246
261
 
247
262
  statsResult.forEach((report) => allStatsReports.push(report));
248
- }
249
- catch (error) {
250
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`);
263
+ } catch (error) {
264
+ LoggerProxy.logger.warn(
265
+ `Media:properties#getCurrentConnectionType --> getStats() failed: ${error}`
266
+ );
251
267
  }
252
268
 
253
269
  const successfulCandidatePairs = allStatsReports.filter(
@@ -258,10 +274,14 @@ export default class MediaProperties {
258
274
 
259
275
  // all of the successful pairs should have the same connection type, so just return the type for the first one
260
276
  successfulCandidatePairs.some((pair) => {
261
- const localCandidate = allStatsReports.find((report) => report.type === 'local-candidate' && report.id === pair.localCandidateId);
277
+ const localCandidate = allStatsReports.find(
278
+ (report) => report.type === 'local-candidate' && report.id === pair.localCandidateId
279
+ );
262
280
 
263
281
  if (localCandidate === undefined) {
264
- LoggerProxy.logger.warn(`Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`);
282
+ LoggerProxy.logger.warn(
283
+ `Media:properties#getCurrentConnectionType --> failed to find local candidate "${pair.localCandidateId}" in getStats() results`
284
+ );
265
285
 
266
286
  return false;
267
287
  }
@@ -270,8 +290,7 @@ export default class MediaProperties {
270
290
 
271
291
  if (localCandidate.relayProtocol) {
272
292
  connectionType = `TURN-${localCandidate.relayProtocol.toUpperCase()}`;
273
- }
274
- else {
293
+ } else {
275
294
  connectionType = localCandidate.protocol?.toUpperCase(); // it will be UDP or TCP
276
295
  }
277
296
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  import LoggerProxy from '../common/logs/logger-proxy';
4
4
 
5
- const MediaUtil = {};
5
+ const MediaUtil: any = {};
6
6
 
7
7
  MediaUtil.createMediaStream = (tracks) => {
8
8
  if (!tracks) {
9
- LoggerProxy.logger.error('Media:util#createMediaStream --> Tracks don\'t exist');
9
+ LoggerProxy.logger.error("Media:util#createMediaStream --> Tracks don't exist");
10
10
  }
11
11
  const filtredTracks = tracks.filter((element) => !!element);
12
12
 
@@ -1,4 +1,3 @@
1
-
2
1
  export default {
3
2
  intervals: [
4
3
  {
@@ -10,7 +9,7 @@ export default {
10
9
  isMain: true,
11
10
  mariFecEnabled: false,
12
11
  mariQosEnabled: false,
13
- multistreamEnabled: false
12
+ multistreamEnabled: false,
14
13
  },
15
14
  dtlsBitrate: 0,
16
15
  dtlsPackets: 0,
@@ -30,7 +29,7 @@ export default {
30
29
  srtpUnprotectErrors: 0,
31
30
  stunBitrate: 0,
32
31
  stunPackets: 0,
33
- transportType: 'UDP'
32
+ transportType: 'UDP',
34
33
  },
35
34
  streams: [
36
35
  {
@@ -50,11 +49,11 @@ export default {
50
49
  maxRtpJitter: 0,
51
50
  meanRtpJitter: 0,
52
51
  rtpPackets: 0,
53
- ssci: 0
54
- }
55
- }
56
- ]
57
- }
52
+ ssci: 0,
53
+ },
54
+ },
55
+ ],
56
+ },
58
57
  ],
59
58
  audioTransmit: [
60
59
  {
@@ -65,7 +64,7 @@ export default {
65
64
  isMain: true,
66
65
  mariFecEnabled: false,
67
66
  mariQosEnabled: false,
68
- multistreamEnabled: false
67
+ multistreamEnabled: false,
69
68
  },
70
69
  dtlsBitrate: 0,
71
70
  dtlsPackets: 0,
@@ -85,7 +84,7 @@ export default {
85
84
  rtxPackets: 0,
86
85
  stunBitrate: 0,
87
86
  stunPackets: 0,
88
- transportType: 'UDP'
87
+ transportType: 'UDP',
89
88
  },
90
89
  streams: [
91
90
  {
@@ -96,11 +95,11 @@ export default {
96
95
  rtpPackets: 0,
97
96
  ssci: 0,
98
97
  transmittedBitrate: 0,
99
- transmittedFrameRate: 0
100
- }
101
- }
102
- ]
103
- }
98
+ transmittedFrameRate: 0,
99
+ },
100
+ },
101
+ ],
102
+ },
104
103
  ],
105
104
  intervalMetadata: {
106
105
  peerReflexiveIP: '0.0.0.0',
@@ -108,7 +107,7 @@ export default {
108
107
  processAverageCPU: 0,
109
108
  processMaximumCPU: 0,
110
109
  systemAverageCPU: 0,
111
- systemMaximumCPU: 0
110
+ systemMaximumCPU: 0,
112
111
  },
113
112
  intervalNumber: 0,
114
113
  videoReceive: [
@@ -119,7 +118,7 @@ export default {
119
118
  isMain: true, // Not avaliable
120
119
  mariFecEnabled: true, // Not avaliable
121
120
  mariQosEnabled: true, // Not avaliable
122
- multistreamEnabled: true// Not avaliable
121
+ multistreamEnabled: true, // Not avaliable
123
122
  },
124
123
  dtlsBitrate: 0, // Not avaliable
125
124
  dtlsPackets: 0, // Not avaliable
@@ -139,7 +138,7 @@ export default {
139
138
  srtpUnprotectErrors: 0, // Not avaliable
140
139
  stunBitrate: 0, // Not avaliable
141
140
  stunPackets: 0, // Not avaliable
142
- transportType: 'UDP'
141
+ transportType: 'UDP',
143
142
  },
144
143
  streams: [
145
144
  {
@@ -158,7 +157,7 @@ export default {
158
157
  rtpEndToEndLost: 0,
159
158
  rtpJitter: 0,
160
159
  rtpPackets: 0,
161
- ssci: 0// Not avaliable
160
+ ssci: 0, // Not avaliable
162
161
  },
163
162
  h264CodecProfile: 'BP',
164
163
  isActiveSpeaker: true,
@@ -171,9 +170,9 @@ export default {
171
170
  receivedKeyFramesUnknown: 0,
172
171
  receivedWidth: 0,
173
172
  requestedFrameSize: 0,
174
- requestedKeyFrames: 0
175
- }
176
- ]
173
+ requestedKeyFrames: 0,
174
+ },
175
+ ],
177
176
  },
178
177
  {
179
178
  common: {
@@ -182,7 +181,7 @@ export default {
182
181
  isMain: false, // Not avaliable
183
182
  mariFecEnabled: true, // Not avaliable
184
183
  mariQosEnabled: true, // Not avaliable
185
- multistreamEnabled: true// Not avaliable
184
+ multistreamEnabled: true, // Not avaliable
186
185
  },
187
186
  dtlsBitrate: 0, // Not avaliable
188
187
  dtlsPackets: 0, // Not avaliable
@@ -202,7 +201,7 @@ export default {
202
201
  srtpUnprotectErrors: 0, // Not avaliable
203
202
  stunBitrate: 0, // Not avaliable
204
203
  stunPackets: 0, // Not avaliable
205
- transportType: 'UDP'
204
+ transportType: 'UDP',
206
205
  },
207
206
  streams: [
208
207
  {
@@ -221,7 +220,7 @@ export default {
221
220
  rtpEndToEndLost: 0,
222
221
  rtpJitter: 0,
223
222
  rtpPackets: 0,
224
- ssci: 0// Not avaliable
223
+ ssci: 0, // Not avaliable
225
224
  },
226
225
  h264CodecProfile: 'BP',
227
226
  isActiveSpeaker: true,
@@ -234,10 +233,10 @@ export default {
234
233
  receivedKeyFramesUnknown: 0,
235
234
  receivedWidth: 0,
236
235
  requestedFrameSize: 0,
237
- requestedKeyFrames: 0
238
- }
239
- ]
240
- }
236
+ requestedKeyFrames: 0,
237
+ },
238
+ ],
239
+ },
241
240
  ],
242
241
  videoTransmit: [
243
242
  {
@@ -248,7 +247,7 @@ export default {
248
247
  isMain: true,
249
248
  mariFecEnabled: false, // Not avaliable
250
249
  mariQosEnabled: false, // Not avaliable
251
- multistreamEnabled: false// Not avaliable
250
+ multistreamEnabled: false, // Not avaliable
252
251
  },
253
252
  dtlsBitrate: 0, // Not avaliable
254
253
  dtlsPackets: 0, // Not avaliable
@@ -268,7 +267,7 @@ export default {
268
267
  rtxPackets: 0, // Dont have access to it
269
268
  stunBitrate: 0, // Dont have access to it
270
269
  stunPackets: 0, // Dont have access to it
271
- transportType: 'UDP' // TODO: need to calculate
270
+ transportType: 'UDP', // TODO: need to calculate
272
271
  },
273
272
  streams: [
274
273
  {
@@ -280,7 +279,7 @@ export default {
280
279
  rtpPackets: 0, // same as rtp packets
281
280
  ssci: 0,
282
281
  transmittedBitrate: 0, // TODO: get in the candidate pair
283
- transmittedFrameRate: 0 // TODO: from track info
282
+ transmittedFrameRate: 0, // TODO: from track info
284
283
  },
285
284
  h264CodecProfile: 'BP', // TODO: from localSDP
286
285
  isAvatar: false, // Not Avaliable
@@ -304,11 +303,12 @@ export default {
304
303
  transmittedKeyFramesSceneChange: 0, // Not Avaliable
305
304
  transmittedKeyFramesStartup: 0, // Not Avaliable
306
305
  transmittedKeyFramesUnknown: 0, // Not Avaliable
307
- transmittedWidth: 0
308
- }
309
- ]
306
+ transmittedWidth: 0,
307
+ },
308
+ ],
310
309
  },
311
- { // sceen sharing
310
+ {
311
+ // sceen sharing
312
312
  common: {
313
313
  availableBitrate: 0, // Not avaliable currently hardcoded
314
314
  common: {
@@ -316,7 +316,7 @@ export default {
316
316
  isMain: false,
317
317
  mariFecEnabled: false, // Not avaliable
318
318
  mariQosEnabled: false, // Not avaliable
319
- multistreamEnabled: false// Not avaliable
319
+ multistreamEnabled: false, // Not avaliable
320
320
  },
321
321
  dtlsBitrate: 0, // Not avaliable
322
322
  dtlsPackets: 0, // Not avaliable
@@ -336,7 +336,7 @@ export default {
336
336
  rtxPackets: 0, // Dont have access to it
337
337
  stunBitrate: 0, // Dont have access to it
338
338
  stunPackets: 0, // Dont have access to it
339
- transportType: 'UDP' // TODO: need to calculate
339
+ transportType: 'UDP', // TODO: need to calculate
340
340
  },
341
341
  streams: [
342
342
  {
@@ -348,7 +348,7 @@ export default {
348
348
  rtpPackets: 0, // same as rtp packets
349
349
  ssci: 0,
350
350
  transmittedBitrate: 0, // TODO: get in the candidate pair
351
- transmittedFrameRate: 0 // TODO: from track info
351
+ transmittedFrameRate: 0, // TODO: from track info
352
352
  },
353
353
  h264CodecProfile: 'BP', // TODO: from localSDP
354
354
  isAvatar: false, // Not Avaliable
@@ -372,11 +372,11 @@ export default {
372
372
  transmittedKeyFramesSceneChange: 0, // Not Avaliable
373
373
  transmittedKeyFramesStartup: 0, // Not Avaliable
374
374
  transmittedKeyFramesUnknown: 0, // Not Avaliable
375
- transmittedWidth: 0
376
- }
377
- ]
378
- }
379
- ]
380
- }
381
- ]
375
+ transmittedWidth: 0,
376
+ },
377
+ ],
378
+ },
379
+ ],
380
+ },
381
+ ],
382
382
  };
@@ -7,22 +7,29 @@ import MediaUtil from '../media/util';
7
7
  import LoggerProxy from '../common/logs/logger-proxy';
8
8
  import {BNR_STATUS} from '../constants';
9
9
 
10
- const createEffectsState = (type) => {
11
- LoggerProxy.logger.info(`Meeting:effectState#createEffectsState --> creating effectsState for effect ${type}`);
10
+ const createEffectsState = (type: any) => {
11
+ LoggerProxy.logger.info(
12
+ `Meeting:effectState#createEffectsState --> creating effectsState for effect ${type}`
13
+ );
12
14
 
13
15
  return new EffectsState(type);
14
16
  };
15
17
 
16
18
  /* The purpose of this class is to manage the effects state(for eg., BNR).
17
- */
19
+ */
18
20
  class EffectsState {
19
- constructor(type) {
21
+ effectType: any;
22
+ pendingPromiseReject: any;
23
+ pendingPromiseResolve: any;
24
+ state: any;
25
+
26
+ constructor(type: any) {
20
27
  this.effectType = type;
21
28
  this.state = {
22
29
  bnr: {
23
- enabled: BNR_STATUS.NOT_ENABLED
30
+ enabled: BNR_STATUS.NOT_ENABLED,
24
31
  },
25
- callToWebrtcBNRInProgress: false
32
+ callToWebrtcBNRInProgress: false,
26
33
  };
27
34
  // these 2 hold the resolve, reject methods for the promise we returned to the client in last handleClientRequest() call
28
35
  this.pendingPromiseResolve = null;
@@ -35,7 +42,7 @@ class EffectsState {
35
42
  * @param {Object} [meeting] the meeting object
36
43
  * @returns {Promise}
37
44
  */
38
- async handleClientRequest(isEnable, meeting) {
45
+ async handleClientRequest(isEnable?: boolean, meeting?: object) {
39
46
  return new Promise((resolve, reject) => {
40
47
  if (this.pendingPromiseResolve) {
41
48
  // resolve the last promise we returned to the client as the client has issued a new request that has superseded the previous one
@@ -56,7 +63,7 @@ class EffectsState {
56
63
  * @public
57
64
  * @memberof Meeting
58
65
  */
59
- isBnrEnabled() {
66
+ public isBnrEnabled() {
60
67
  return this.state.bnr.enabled === BNR_STATUS.ENABLED;
61
68
  }
62
69
 
@@ -83,7 +90,7 @@ class EffectsState {
83
90
  * @public
84
91
  * @memberof EffectsState
85
92
  */
86
- async enableBNR(meeting) {
93
+ public async enableBNR(meeting: any) {
87
94
  LoggerProxy.logger.info('Meeting:effectState#enableBNR. Enable BNR called');
88
95
 
89
96
  if (this.isBnrEnabled()) {
@@ -93,7 +100,9 @@ class EffectsState {
93
100
  }
94
101
 
95
102
  if (this.state.callToWebrtcBNRInProgress) {
96
- LoggerProxy.logger.warn('Meeting:effectState#enableBNR. Call to WebRTC in progress, we need to wait for it to complete');
103
+ LoggerProxy.logger.warn(
104
+ 'Meeting:effectState#enableBNR. Call to WebRTC in progress, we need to wait for it to complete'
105
+ );
97
106
 
98
107
  return this.resolvePromise();
99
108
  }
@@ -105,32 +114,30 @@ class EffectsState {
105
114
  this.state.callToWebrtcBNRInProgress = true;
106
115
  const audioStream = MediaUtil.createMediaStream([meeting.mediaProperties.audioTrack]);
107
116
 
108
- LoggerProxy.logger.info('Meeting:effectState#enableBNR. MediaStream created from meeting & sent to updateAudio');
117
+ LoggerProxy.logger.info(
118
+ 'Meeting:effectState#enableBNR. MediaStream created from meeting & sent to updateAudio'
119
+ );
109
120
  await meeting.updateAudio({
110
121
  sendAudio: true,
111
122
  receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
112
- stream: audioStream
123
+ stream: audioStream,
113
124
  });
114
125
 
115
- LoggerProxy.logger.info('Meeting:effectState#enableBNR. Updated meeting audio with bnr enabled track');
126
+ LoggerProxy.logger.info(
127
+ 'Meeting:effectState#enableBNR. Updated meeting audio with bnr enabled track'
128
+ );
116
129
  bnr.enabled = BNR_STATUS.ENABLED;
117
130
  this.state.callToWebrtcBNRInProgress = false;
118
- Metrics.sendBehavioralMetric(
119
- BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS,
120
- );
121
- }
122
- catch (error) {
131
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_BNR_SUCCESS);
132
+ } catch (error) {
123
133
  bnr.enabled = BNR_STATUS.NOT_ENABLED;
124
134
  this.state.callToWebrtcBNRInProgress = false;
125
135
  LoggerProxy.logger.error('Meeting:index#enableBNR.', error);
126
136
 
127
- Metrics.sendBehavioralMetric(
128
- BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE,
129
- {
130
- reason: error.message,
131
- stack: error.stack
132
- }
133
- );
137
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_BNR_FAILURE, {
138
+ reason: error.message,
139
+ stack: error.stack,
140
+ });
134
141
  this.rejectPromise(error);
135
142
 
136
143
  throw error;
@@ -146,14 +153,16 @@ class EffectsState {
146
153
  * @public
147
154
  * @memberof EffectsState
148
155
  */
149
- async disableBNR(meeting) {
156
+ public async disableBNR(meeting: any) {
150
157
  LoggerProxy.logger.info('Meeting:effectState#disableBNR. Disable BNR called');
151
158
 
152
159
  const {bnr} = this.state;
153
160
 
154
161
  try {
155
162
  if (this.state.callToWebrtcBNRInProgress) {
156
- LoggerProxy.logger.info('Meeting:effectState#disableBNR. Call to WebRTC in progress, we need to wait for it to complete');
163
+ LoggerProxy.logger.info(
164
+ 'Meeting:effectState#disableBNR. Call to WebRTC in progress, we need to wait for it to complete'
165
+ );
157
166
 
158
167
  return this.resolvePromise();
159
168
  }
@@ -161,38 +170,35 @@ class EffectsState {
161
170
  bnr.enabled = BNR_STATUS.SHOULD_DISABLE;
162
171
  this.state.callToWebrtcBNRInProgress = true;
163
172
 
173
+ // @ts-ignore - disableBNR does not expect an argument
164
174
  const audioTrack = WebRTCMedia.Effects.BNR.disableBNR(meeting.mediaProperties.audioTrack);
165
175
 
166
176
  const audioStream = MediaUtil.createMediaStream([audioTrack]);
167
177
 
168
- LoggerProxy.logger.info('Meeting:effectState#disableBNR. Raw media track obtained from WebRTC & sent to updateAudio');
178
+ LoggerProxy.logger.info(
179
+ 'Meeting:effectState#disableBNR. Raw media track obtained from WebRTC & sent to updateAudio'
180
+ );
169
181
 
170
182
  await meeting.updateAudio({
171
183
  sendAudio: true,
172
184
  receiveAudio: meeting.mediaProperties.mediaDirection.receiveAudio,
173
- stream: audioStream
185
+ stream: audioStream,
174
186
  });
175
187
 
176
188
  bnr.enabled = BNR_STATUS.NOT_ENABLED;
177
189
 
178
190
  this.state.callToWebrtcBNRInProgress = false;
179
191
 
180
- Metrics.sendBehavioralMetric(
181
- BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS
182
- );
183
- }
184
- catch (error) {
192
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_BNR_SUCCESS);
193
+ } catch (error) {
185
194
  bnr.enabled = BNR_STATUS.ENABLED;
186
195
  this.state.callToWebrtcBNRInProgress = false;
187
196
  LoggerProxy.logger.error(`Meeting:index#disableBNR. ${error}`);
188
197
 
189
- Metrics.sendBehavioralMetric(
190
- BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE,
191
- {
192
- reason: error.message,
193
- stack: error.stack
194
- }
195
- );
198
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.DISABLE_BNR_FAILURE, {
199
+ reason: error.message,
200
+ stack: error.stack,
201
+ });
196
202
  this.rejectPromise(error);
197
203
 
198
204
  throw error;
@@ -2,9 +2,7 @@
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
4
 
5
- import {
6
- MEETINGS
7
- } from '../constants';
5
+ import {MEETINGS} from '../constants';
8
6
 
9
7
  /**
10
8
  * IInMeetingActions
@@ -33,6 +31,8 @@ interface IInMeetingActions {
33
31
  isRealTimeTranslationEnabled?: boolean;
34
32
  canSelectSpokenLanguages?: boolean;
35
33
  waitingForOthersToJoin?: boolean;
34
+ canEnableReactions?: boolean;
35
+ canSendReactions?: boolean;
36
36
  }
37
37
 
38
38
  /**
@@ -85,6 +85,10 @@ export default class InMeetingActions implements IInMeetingActions {
85
85
 
86
86
  waitingForOthersToJoin = null;
87
87
 
88
+ canEnableReactions = null;
89
+
90
+ canSendReactions = null;
91
+
88
92
  /**
89
93
  * Returns all meeting action options
90
94
  * @returns {Object}
@@ -112,8 +116,16 @@ export default class InMeetingActions implements IInMeetingActions {
112
116
  isRealTimeTranslationEnabled: this.isRealTimeTranslationEnabled,
113
117
  canSelectSpokenLanguages: this.canSelectSpokenLanguages,
114
118
  waitingForOthersToJoin: this.waitingForOthersToJoin,
119
+ canEnableReactions: this.canEnableReactions,
120
+ canSendReactions: this.canSendReactions,
115
121
  });
116
122
 
123
+ /**
124
+ *
125
+ * @param actions
126
+ * @returns
127
+ */
128
+
117
129
  set = (actions: Partial<IInMeetingActions>) => {
118
130
  const old = this.get();
119
131