@webex/plugin-meetings 3.6.0 → 3.7.0-ipv6-multi-turn-urls.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/README.md +2 -1
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/common/errors/join-webinar-error.js +50 -0
  5. package/dist/common/errors/join-webinar-error.js.map +1 -0
  6. package/dist/config.js +4 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/constants.js +54 -4
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controls-options-manager/enums.js +1 -0
  11. package/dist/controls-options-manager/enums.js.map +1 -1
  12. package/dist/controls-options-manager/index.js +10 -3
  13. package/dist/controls-options-manager/index.js.map +1 -1
  14. package/dist/controls-options-manager/types.js.map +1 -1
  15. package/dist/controls-options-manager/util.js +12 -0
  16. package/dist/controls-options-manager/util.js.map +1 -1
  17. package/dist/index.js +7 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/interpretation/index.js +1 -1
  20. package/dist/interpretation/siLanguage.js +1 -1
  21. package/dist/locus-info/controlsUtils.js +28 -4
  22. package/dist/locus-info/controlsUtils.js.map +1 -1
  23. package/dist/locus-info/fullState.js +2 -1
  24. package/dist/locus-info/fullState.js.map +1 -1
  25. package/dist/locus-info/index.js +61 -3
  26. package/dist/locus-info/index.js.map +1 -1
  27. package/dist/locus-info/parser.js +5 -1
  28. package/dist/locus-info/parser.js.map +1 -1
  29. package/dist/media/index.js +29 -1
  30. package/dist/media/index.js.map +1 -1
  31. package/dist/meeting/in-meeting-actions.js +29 -1
  32. package/dist/meeting/in-meeting-actions.js.map +1 -1
  33. package/dist/meeting/index.js +807 -540
  34. package/dist/meeting/index.js.map +1 -1
  35. package/dist/meeting/locusMediaRequest.js +2 -6
  36. package/dist/meeting/locusMediaRequest.js.map +1 -1
  37. package/dist/meeting/muteState.js +5 -2
  38. package/dist/meeting/muteState.js.map +1 -1
  39. package/dist/meeting/request.js +21 -29
  40. package/dist/meeting/request.js.map +1 -1
  41. package/dist/meeting/util.js +98 -61
  42. package/dist/meeting/util.js.map +1 -1
  43. package/dist/meeting-info/meeting-info-v2.js +80 -17
  44. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  45. package/dist/meetings/index.js +29 -2
  46. package/dist/meetings/index.js.map +1 -1
  47. package/dist/members/index.js +3 -2
  48. package/dist/members/index.js.map +1 -1
  49. package/dist/members/util.js +13 -7
  50. package/dist/members/util.js.map +1 -1
  51. package/dist/metrics/constants.js +4 -1
  52. package/dist/metrics/constants.js.map +1 -1
  53. package/dist/multistream/remoteMedia.js +34 -15
  54. package/dist/multistream/remoteMedia.js.map +1 -1
  55. package/dist/reachability/clusterReachability.js +12 -15
  56. package/dist/reachability/clusterReachability.js.map +1 -1
  57. package/dist/reachability/index.js +433 -136
  58. package/dist/reachability/index.js.map +1 -1
  59. package/dist/{rtcMetrics/constants.js → reachability/reachability.types.js} +1 -5
  60. package/dist/reachability/reachability.types.js.map +1 -0
  61. package/dist/reachability/request.js +23 -9
  62. package/dist/reachability/request.js.map +1 -1
  63. package/dist/recording-controller/enums.js +8 -4
  64. package/dist/recording-controller/enums.js.map +1 -1
  65. package/dist/recording-controller/index.js +18 -9
  66. package/dist/recording-controller/index.js.map +1 -1
  67. package/dist/recording-controller/util.js +13 -9
  68. package/dist/recording-controller/util.js.map +1 -1
  69. package/dist/roap/index.js +5 -7
  70. package/dist/roap/index.js.map +1 -1
  71. package/dist/roap/request.js +45 -79
  72. package/dist/roap/request.js.map +1 -1
  73. package/dist/roap/turnDiscovery.js +3 -6
  74. package/dist/roap/turnDiscovery.js.map +1 -1
  75. package/dist/{common/errors/parameter.d.ts → types/common/errors/join-webinar-error.d.ts} +4 -5
  76. package/dist/types/config.d.ts +3 -0
  77. package/dist/types/constants.d.ts +43 -0
  78. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  79. package/dist/types/controls-options-manager/index.d.ts +2 -1
  80. package/dist/types/controls-options-manager/types.d.ts +2 -0
  81. package/dist/types/index.d.ts +2 -1
  82. package/dist/types/locus-info/index.d.ts +9 -0
  83. package/dist/types/meeting/in-meeting-actions.d.ts +28 -0
  84. package/dist/types/meeting/index.d.ts +34 -3
  85. package/dist/types/meeting/locusMediaRequest.d.ts +2 -3
  86. package/dist/types/meeting/muteState.d.ts +2 -1
  87. package/dist/types/meeting/request.d.ts +2 -2
  88. package/dist/types/meeting/util.d.ts +2 -2
  89. package/dist/types/meeting-info/meeting-info-v2.d.ts +23 -0
  90. package/dist/types/meetings/index.d.ts +13 -1
  91. package/dist/types/members/index.d.ts +2 -1
  92. package/dist/types/members/util.d.ts +5 -1
  93. package/dist/types/metrics/constants.d.ts +3 -0
  94. package/dist/types/multistream/remoteMedia.d.ts +1 -0
  95. package/dist/types/reachability/clusterReachability.d.ts +1 -10
  96. package/dist/types/reachability/index.d.ts +74 -35
  97. package/dist/types/reachability/reachability.types.d.ts +64 -0
  98. package/dist/types/reachability/request.d.ts +5 -1
  99. package/dist/types/recording-controller/enums.d.ts +5 -2
  100. package/dist/types/recording-controller/index.d.ts +1 -0
  101. package/dist/types/recording-controller/util.d.ts +2 -1
  102. package/dist/types/roap/request.d.ts +1 -13
  103. package/dist/webinar/index.js +382 -19
  104. package/dist/webinar/index.js.map +1 -1
  105. package/package.json +22 -22
  106. package/src/common/errors/join-webinar-error.ts +24 -0
  107. package/src/config.ts +3 -0
  108. package/src/constants.ts +52 -0
  109. package/src/controls-options-manager/enums.ts +1 -0
  110. package/src/controls-options-manager/index.ts +19 -2
  111. package/src/controls-options-manager/types.ts +2 -0
  112. package/src/controls-options-manager/util.ts +12 -0
  113. package/src/index.ts +2 -0
  114. package/src/locus-info/controlsUtils.ts +46 -2
  115. package/src/locus-info/fullState.ts +1 -0
  116. package/src/locus-info/index.ts +60 -0
  117. package/src/locus-info/parser.ts +8 -1
  118. package/src/media/index.ts +15 -0
  119. package/src/meeting/in-meeting-actions.ts +58 -0
  120. package/src/meeting/index.ts +268 -32
  121. package/src/meeting/locusMediaRequest.ts +4 -8
  122. package/src/meeting/muteState.ts +6 -2
  123. package/src/meeting/request.ts +4 -11
  124. package/src/meeting/util.ts +31 -6
  125. package/src/meeting-info/meeting-info-v2.ts +63 -0
  126. package/src/meetings/index.ts +74 -40
  127. package/src/members/index.ts +4 -2
  128. package/src/members/util.ts +4 -1
  129. package/src/metrics/constants.ts +3 -0
  130. package/src/multistream/remoteMedia.ts +33 -15
  131. package/src/reachability/clusterReachability.ts +5 -15
  132. package/src/reachability/index.ts +285 -77
  133. package/src/reachability/reachability.types.ts +85 -0
  134. package/src/reachability/request.ts +55 -30
  135. package/src/recording-controller/enums.ts +5 -2
  136. package/src/recording-controller/index.ts +17 -4
  137. package/src/recording-controller/util.ts +20 -5
  138. package/src/roap/index.ts +4 -5
  139. package/src/roap/request.ts +32 -44
  140. package/src/roap/turnDiscovery.ts +2 -4
  141. package/src/webinar/index.ts +223 -17
  142. package/test/unit/spec/controls-options-manager/index.js +56 -32
  143. package/test/unit/spec/controls-options-manager/util.js +44 -0
  144. package/test/unit/spec/locus-info/controlsUtils.js +80 -4
  145. package/test/unit/spec/locus-info/index.js +88 -2
  146. package/test/unit/spec/meeting/in-meeting-actions.ts +31 -1
  147. package/test/unit/spec/meeting/index.js +407 -82
  148. package/test/unit/spec/meeting/locusMediaRequest.ts +18 -11
  149. package/test/unit/spec/meeting/muteState.js +8 -4
  150. package/test/unit/spec/meeting/request.js +3 -26
  151. package/test/unit/spec/meeting/utils.js +71 -14
  152. package/test/unit/spec/meeting-info/meetinginfov2.js +42 -0
  153. package/test/unit/spec/meetings/index.js +41 -6
  154. package/test/unit/spec/members/index.js +25 -2
  155. package/test/unit/spec/members/request.js +37 -3
  156. package/test/unit/spec/members/utils.js +110 -1
  157. package/test/unit/spec/multistream/remoteMedia.ts +27 -9
  158. package/test/unit/spec/reachability/clusterReachability.ts +7 -0
  159. package/test/unit/spec/reachability/index.ts +265 -1
  160. package/test/unit/spec/reachability/request.js +56 -15
  161. package/test/unit/spec/recording-controller/index.js +61 -5
  162. package/test/unit/spec/recording-controller/util.js +39 -3
  163. package/test/unit/spec/roap/index.ts +1 -1
  164. package/test/unit/spec/roap/request.ts +51 -109
  165. package/test/unit/spec/roap/turnDiscovery.ts +202 -147
  166. package/test/unit/spec/webinar/index.ts +443 -14
  167. package/dist/annotation/annotation.types.d.ts +0 -42
  168. package/dist/annotation/constants.d.ts +0 -31
  169. package/dist/annotation/index.d.ts +0 -117
  170. package/dist/breakouts/breakout.d.ts +0 -8
  171. package/dist/breakouts/collection.d.ts +0 -5
  172. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  173. package/dist/breakouts/events.d.ts +0 -8
  174. package/dist/breakouts/index.d.ts +0 -5
  175. package/dist/breakouts/request.d.ts +0 -22
  176. package/dist/breakouts/utils.d.ts +0 -15
  177. package/dist/common/browser-detection.d.ts +0 -9
  178. package/dist/common/collection.d.ts +0 -48
  179. package/dist/common/config.d.ts +0 -2
  180. package/dist/common/errors/captcha-error.d.ts +0 -15
  181. package/dist/common/errors/intent-to-join.d.ts +0 -16
  182. package/dist/common/errors/join-meeting.d.ts +0 -17
  183. package/dist/common/errors/media.d.ts +0 -15
  184. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  185. package/dist/common/errors/password-error.d.ts +0 -15
  186. package/dist/common/errors/permission.d.ts +0 -14
  187. package/dist/common/errors/reclaim-host-role-error.js +0 -149
  188. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  189. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  190. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  191. package/dist/common/errors/reconnection-in-progress.js +0 -33
  192. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  193. package/dist/common/errors/reconnection.d.ts +0 -15
  194. package/dist/common/errors/stats.d.ts +0 -15
  195. package/dist/common/errors/webex-errors.d.ts +0 -93
  196. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  197. package/dist/common/events/events-scope.d.ts +0 -17
  198. package/dist/common/events/events.d.ts +0 -12
  199. package/dist/common/events/trigger-proxy.d.ts +0 -2
  200. package/dist/common/events/util.d.ts +0 -2
  201. package/dist/common/logs/logger-config.d.ts +0 -2
  202. package/dist/common/logs/logger-proxy.d.ts +0 -2
  203. package/dist/common/logs/request.d.ts +0 -36
  204. package/dist/common/queue.d.ts +0 -34
  205. package/dist/config.d.ts +0 -72
  206. package/dist/constants.d.ts +0 -1088
  207. package/dist/controls-options-manager/constants.d.ts +0 -4
  208. package/dist/controls-options-manager/enums.d.ts +0 -15
  209. package/dist/controls-options-manager/index.d.ts +0 -136
  210. package/dist/controls-options-manager/types.d.ts +0 -43
  211. package/dist/controls-options-manager/util.d.ts +0 -1
  212. package/dist/index.d.ts +0 -7
  213. package/dist/interceptors/index.d.ts +0 -2
  214. package/dist/interceptors/locusRetry.d.ts +0 -27
  215. package/dist/interpretation/collection.d.ts +0 -5
  216. package/dist/interpretation/index.d.ts +0 -5
  217. package/dist/interpretation/siLanguage.d.ts +0 -5
  218. package/dist/locus-info/controlsUtils.d.ts +0 -2
  219. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  220. package/dist/locus-info/fullState.d.ts +0 -2
  221. package/dist/locus-info/hostUtils.d.ts +0 -2
  222. package/dist/locus-info/index.d.ts +0 -322
  223. package/dist/locus-info/infoUtils.d.ts +0 -2
  224. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  225. package/dist/locus-info/parser.d.ts +0 -272
  226. package/dist/locus-info/selfUtils.d.ts +0 -2
  227. package/dist/media/index.d.ts +0 -34
  228. package/dist/media/properties.d.ts +0 -93
  229. package/dist/media/util.d.ts +0 -2
  230. package/dist/mediaQualityMetrics/config.d.ts +0 -241
  231. package/dist/mediaQualityMetrics/config.js +0 -502
  232. package/dist/mediaQualityMetrics/config.js.map +0 -1
  233. package/dist/meeting/effectsState.js +0 -260
  234. package/dist/meeting/effectsState.js.map +0 -1
  235. package/dist/meeting/in-meeting-actions.d.ts +0 -167
  236. package/dist/meeting/index.d.ts +0 -1825
  237. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  238. package/dist/meeting/muteState.d.ts +0 -178
  239. package/dist/meeting/request.d.ts +0 -295
  240. package/dist/meeting/request.type.d.ts +0 -11
  241. package/dist/meeting/state.d.ts +0 -9
  242. package/dist/meeting/util.d.ts +0 -119
  243. package/dist/meeting/voicea-meeting.d.ts +0 -16
  244. package/dist/meeting-info/collection.d.ts +0 -20
  245. package/dist/meeting-info/index.d.ts +0 -69
  246. package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
  247. package/dist/meeting-info/request.d.ts +0 -22
  248. package/dist/meeting-info/util.d.ts +0 -2
  249. package/dist/meeting-info/utilv2.d.ts +0 -2
  250. package/dist/meetings/collection.d.ts +0 -40
  251. package/dist/meetings/index.d.ts +0 -390
  252. package/dist/meetings/meetings.types.d.ts +0 -4
  253. package/dist/meetings/request.d.ts +0 -27
  254. package/dist/meetings/util.d.ts +0 -18
  255. package/dist/member/index.d.ts +0 -160
  256. package/dist/member/member.types.js +0 -17
  257. package/dist/member/member.types.js.map +0 -1
  258. package/dist/member/types.d.ts +0 -32
  259. package/dist/member/util.d.ts +0 -2
  260. package/dist/members/collection.d.ts +0 -29
  261. package/dist/members/index.d.ts +0 -353
  262. package/dist/members/request.d.ts +0 -114
  263. package/dist/members/types.d.ts +0 -25
  264. package/dist/members/util.d.ts +0 -215
  265. package/dist/metrics/config.js +0 -276
  266. package/dist/metrics/config.js.map +0 -1
  267. package/dist/metrics/constants.d.ts +0 -70
  268. package/dist/metrics/index.d.ts +0 -45
  269. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  270. package/dist/multistream/receiveSlot.d.ts +0 -68
  271. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  272. package/dist/multistream/remoteMedia.d.ts +0 -72
  273. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  274. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  275. package/dist/multistream/sendSlotManager.d.ts +0 -69
  276. package/dist/networkQualityMonitor/index.d.ts +0 -70
  277. package/dist/networkQualityMonitor/index.js +0 -221
  278. package/dist/networkQualityMonitor/index.js.map +0 -1
  279. package/dist/peer-connection-manager/index.js +0 -671
  280. package/dist/peer-connection-manager/index.js.map +0 -1
  281. package/dist/peer-connection-manager/util.js +0 -109
  282. package/dist/peer-connection-manager/util.js.map +0 -1
  283. package/dist/personal-meeting-room/index.d.ts +0 -47
  284. package/dist/personal-meeting-room/request.d.ts +0 -14
  285. package/dist/personal-meeting-room/util.d.ts +0 -2
  286. package/dist/reachability/clusterReachability.d.ts +0 -109
  287. package/dist/reachability/index.d.ts +0 -105
  288. package/dist/reachability/request.d.ts +0 -39
  289. package/dist/reachability/util.d.ts +0 -8
  290. package/dist/reactions/constants.d.ts +0 -3
  291. package/dist/reactions/reactions.d.ts +0 -4
  292. package/dist/reactions/reactions.type.d.ts +0 -52
  293. package/dist/reconnection-manager/index.d.ts +0 -136
  294. package/dist/recording-controller/enums.d.ts +0 -7
  295. package/dist/recording-controller/index.d.ts +0 -207
  296. package/dist/recording-controller/util.d.ts +0 -14
  297. package/dist/roap/collection.js +0 -62
  298. package/dist/roap/collection.js.map +0 -1
  299. package/dist/roap/handler.js +0 -275
  300. package/dist/roap/handler.js.map +0 -1
  301. package/dist/roap/index.d.ts +0 -86
  302. package/dist/roap/request.d.ts +0 -39
  303. package/dist/roap/state.js +0 -126
  304. package/dist/roap/state.js.map +0 -1
  305. package/dist/roap/turnDiscovery.d.ts +0 -155
  306. package/dist/roap/util.js +0 -75
  307. package/dist/roap/util.js.map +0 -1
  308. package/dist/rtcMetrics/constants.d.ts +0 -4
  309. package/dist/rtcMetrics/constants.js.map +0 -1
  310. package/dist/rtcMetrics/index.d.ts +0 -61
  311. package/dist/rtcMetrics/index.js +0 -197
  312. package/dist/rtcMetrics/index.js.map +0 -1
  313. package/dist/statsAnalyzer/global.d.ts +0 -36
  314. package/dist/statsAnalyzer/global.js +0 -126
  315. package/dist/statsAnalyzer/global.js.map +0 -1
  316. package/dist/statsAnalyzer/index.d.ts +0 -217
  317. package/dist/statsAnalyzer/index.js +0 -1013
  318. package/dist/statsAnalyzer/index.js.map +0 -1
  319. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
  320. package/dist/statsAnalyzer/mqaUtil.js +0 -179
  321. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  322. package/dist/transcription/index.d.ts +0 -64
  323. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  324. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  325. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  326. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  327. package/dist/types/rtcMetrics/index.d.ts +0 -71
  328. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  329. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  330. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  331. package/dist/webinar/collection.d.ts +0 -16
  332. package/dist/webinar/index.d.ts +0 -5
package/src/constants.ts CHANGED
@@ -198,6 +198,8 @@ export const RETRY_TIMEOUT = 3000;
198
198
 
199
199
  export const ICE_AND_DTLS_CONNECTION_TIMEOUT = 20000;
200
200
  export const ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = 35000;
201
+ export const WEBINAR_ERROR_WEBCAST = [403026];
202
+ export const WEBINAR_ERROR_REGISTRATIONID = [403037, 403137];
201
203
 
202
204
  // ******************** REGEX **********************
203
205
  // Please alphabetize
@@ -356,6 +358,11 @@ export const EVENT_TRIGGERS = {
356
358
  'meeting:controls:view-the-participants-list:updated',
357
359
  MEETING_CONTROLS_RAISE_HAND_UPDATED: 'meeting:controls:raise-hand:updated',
358
360
  MEETING_CONTROLS_VIDEO_UPDATED: 'meeting:controls:video:updated',
361
+ MEETING_CONTROLS_STAGE_VIEW_UPDATED: 'meeting:controls:stage-view:updated',
362
+ MEETING_CONTROLS_WEBCAST_UPDATED: 'meeting:controls:webcast:updated',
363
+ MEETING_CONTROLS_MEETING_FULL_UPDATED: 'meeting:controls:meeting-full:updated',
364
+ MEETING_CONTROLS_PRACTICE_SESSION_STATUS_UPDATED:
365
+ 'meeting:controls:practice-session-status:updated',
359
366
  // Locus URL changed
360
367
  MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
361
368
  MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
@@ -378,6 +385,13 @@ export const EVENT_TYPES = {
378
385
  ERROR: 'error',
379
386
  };
380
387
 
388
+ export const HEADERS = {
389
+ CONTENT_TYPE: 'Content-Type',
390
+ CONTENT_TYPE_VALUE: {
391
+ APPLICATION_JSON: 'application/json',
392
+ },
393
+ };
394
+
381
395
  // Handles the reason when meeting gets destroyed
382
396
  // host removed you from the meeting
383
397
  // You are the host and you left the meeting
@@ -524,6 +538,11 @@ export const ERROR_DICTIONARY = {
524
538
  'Reconnection was not started, because there is one already in progress or reconnections are disabled in config.',
525
539
  CODE: 15,
526
540
  },
541
+ JoinWebinarError: {
542
+ NAME: 'JoinWebinarError',
543
+ MESSAGE: 'An error occurred while the join webinar.',
544
+ CODE: 16,
545
+ },
527
546
  };
528
547
 
529
548
  export const FLOOR_ACTION = {
@@ -671,7 +690,11 @@ export const LOCUSINFO = {
671
690
  CONTROLS_REACTIONS_CHANGED: 'CONTROLS_REACTIONS_CHANGED',
672
691
  CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED: 'CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED',
673
692
  CONTROLS_RAISE_HAND_CHANGED: 'CONTROLS_RAISE_HAND_CHANGED',
693
+ CONTROLS_WEBCAST_CHANGED: 'CONTROLS_WEBCAST_CHANGED',
694
+ CONTROLS_MEETING_FULL_CHANGED: 'CONTROLS_MEETING_FULL_CHANGED',
695
+ CONTROLS_PRACTICE_SESSION_STATUS_UPDATED: 'CONTROLS_PRACTICE_SESSION_STATUS_UPDATED',
674
696
  CONTROLS_VIDEO_CHANGED: 'CONTROLS_VIDEO_CHANGED',
697
+ CONTROLS_STAGE_VIEW_UPDATED: 'CONTROLS_STAGE_VIEW_UPDATED',
675
698
  SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
676
699
  SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
677
700
  SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
@@ -697,6 +720,7 @@ export const LOCUSINFO = {
697
720
  SELF_MEETING_INTERPRETATION_CHANGED: 'SELF_MEETING_INTERPRETATION_CHANGED',
698
721
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
699
722
  LINKS_SERVICES: 'LINKS_SERVICES',
723
+ LINKS_RESOURCES: 'LINKS_RESOURCES',
700
724
  },
701
725
  };
702
726
 
@@ -889,6 +913,10 @@ export const DISPLAY_HINTS = {
889
913
  RECORDING_CONTROL_PAUSE: 'RECORDING_CONTROL_PAUSE',
890
914
  RECORDING_CONTROL_STOP: 'RECORDING_CONTROL_STOP',
891
915
  RECORDING_CONTROL_RESUME: 'RECORDING_CONTROL_RESUME',
916
+ PREMISE_RECORDING_CONTROL_START: 'PREMISE_RECORDING_CONTROL_START',
917
+ PREMISE_RECORDING_CONTROL_PAUSE: 'PREMISE_RECORDING_CONTROL_PAUSE',
918
+ PREMISE_RECORDING_CONTROL_STOP: 'PREMISE_RECORDING_CONTROL_STOP',
919
+ PREMISE_RECORDING_CONTROL_RESUME: 'PREMISE_RECORDING_CONTROL_RESUME',
892
920
  LOCK_CONTROL_UNLOCK: 'LOCK_CONTROL_UNLOCK',
893
921
  LOCK_CONTROL_LOCK: 'LOCK_CONTROL_LOCK',
894
922
  LOCK_STATUS_LOCKED: 'LOCK_STATUS_LOCKED',
@@ -939,6 +967,11 @@ export const DISPLAY_HINTS = {
939
967
  // participants list
940
968
  DISABLE_VIEW_THE_PARTICIPANT_LIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST',
941
969
  ENABLE_VIEW_THE_PARTICIPANT_LIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST',
970
+ // for webinar participants list
971
+ DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST: 'DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST',
972
+ ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST: 'ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST',
973
+ DISABLE_SHOW_ATTENDEE_COUNT: 'DISABLE_SHOW_ATTENDEE_COUNT',
974
+ ENABLE_SHOW_ATTENDEE_COUNT: 'ENABLE_SHOW_ATTENDEE_COUNT',
942
975
 
943
976
  // raise hand
944
977
  DISABLE_RAISE_HAND: 'DISABLE_RAISE_HAND',
@@ -958,6 +991,22 @@ export const DISPLAY_HINTS = {
958
991
 
959
992
  // Voip (audio/video)
960
993
  VOIP_IS_ENABLED: 'VOIP_IS_ENABLED',
994
+
995
+ // Webcast
996
+ WEBCAST_CONTROL_START: 'WEBCAST_CONTROL_START',
997
+ WEBCAST_CONTROL_STOP: 'WEBCAST_CONTROL_STOP',
998
+
999
+ // Stage View
1000
+ STAGE_VIEW_ACTIVE: 'STAGE_VIEW_ACTIVE',
1001
+ STAGE_VIEW_INACTIVE: 'STAGE_VIEW_INACTIVE',
1002
+ ENABLE_STAGE_VIEW: 'ENABLE_STAGE_VIEW',
1003
+ DISABLE_STAGE_VIEW: 'DISABLE_STAGE_VIEW',
1004
+
1005
+ // Practice Session
1006
+ PRACTICE_SESSION_ON: 'PRACTICE_SESSION_ON',
1007
+ PRACTICE_SESSION_OFF: 'PRACTICE_SESSION_OFF',
1008
+ SHOW_PRACTICE_SESSION_START: 'SHOW_PRACTICE_SESSION_START',
1009
+ SHOW_PRACTICE_SESSION_STOP: 'SHOW_PRACTICE_SESSION_STOP',
961
1010
  };
962
1011
 
963
1012
  export const INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];
@@ -1269,6 +1318,9 @@ export const MEETING_INFO_FAILURE_REASON = {
1269
1318
  WRONG_PASSWORD: 'WRONG_PASSWORD', // meeting requires password and no password or wrong one was provided
1270
1319
  WRONG_CAPTCHA: 'WRONG_CAPTCHA', // wbxappapi requires a captcha code or a wrong captcha code was provided
1271
1320
  POLICY: 'POLICY', // meeting info request violates some meeting policy
1321
+ WEBINAR_REGISTRATION: 'WEBINAR_REGISTRATION', // webinar need registration
1322
+ NEED_JOIN_WITH_WEBCAST: 'NEED_JOIN_WITH_WEBCAST', // webinar need using webcast join
1323
+ WEBINAR_NEED_REGISTRATIONID: 'WEBINAR_NEED_REGISTRATIONID', // webinar need registrationID
1272
1324
  OTHER: 'OTHER', // any other error (network, etc)
1273
1325
  };
1274
1326
 
@@ -2,6 +2,7 @@ enum Setting {
2
2
  disallowUnmute = 'DisallowUnmute',
3
3
  muteOnEntry = 'MuteOnEntry',
4
4
  muted = 'Muted',
5
+ roles = 'Roles',
5
6
  }
6
7
 
7
8
  enum Control {
@@ -177,7 +177,12 @@ export default class ControlsOptionsManager {
177
177
  * @memberof ControlsOptionsManager
178
178
  * @returns {Promise}
179
179
  */
180
- private setControls(setting: {[key in Setting]?: boolean}): Promise<any> {
180
+ private setControls(setting: {
181
+ [Setting.muted]?: boolean;
182
+ [Setting.disallowUnmute]?: boolean;
183
+ [Setting.muteOnEntry]?: boolean;
184
+ [Setting.roles]?: Array<string>;
185
+ }): Promise<any> {
181
186
  LoggerProxy.logger.log(
182
187
  `ControlsOptionsManager:index#setControls --> ${JSON.stringify(setting)}`
183
188
  );
@@ -190,6 +195,7 @@ export default class ControlsOptionsManager {
190
195
  Object.entries(setting).forEach(([key, value]) => {
191
196
  if (
192
197
  !shouldSkipCheckToMergeBody &&
198
+ value !== undefined &&
193
199
  !Util?.[`${value ? CAN_SET : CAN_UNSET}${key}`](this.displayHints)
194
200
  ) {
195
201
  error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);
@@ -219,6 +225,14 @@ export default class ControlsOptionsManager {
219
225
  }
220
226
  break;
221
227
 
228
+ case Setting.roles:
229
+ if (Array.isArray(value)) {
230
+ body.audio = body.audio
231
+ ? {...body.audio, [camelCase(key)]: value}
232
+ : {[camelCase(key)]: value};
233
+ }
234
+ break;
235
+
222
236
  default:
223
237
  error = new PermissionError(`${key} [${value}] not allowed, due to moderator property.`);
224
238
  }
@@ -261,18 +275,21 @@ export default class ControlsOptionsManager {
261
275
  * @param {boolean} mutedEnabled
262
276
  * @param {boolean} disallowUnmuteEnabled
263
277
  * @param {boolean} muteOnEntryEnabled
278
+ * @param {array} roles which should be muted
264
279
  * @memberof ControlsOptionsManager
265
280
  * @returns {Promise}
266
281
  */
267
282
  public setMuteAll(
268
283
  mutedEnabled: boolean,
269
284
  disallowUnmuteEnabled: boolean,
270
- muteOnEntryEnabled: boolean
285
+ muteOnEntryEnabled: boolean,
286
+ roles: Array<string>
271
287
  ): Promise<any> {
272
288
  return this.setControls({
273
289
  [Setting.muted]: mutedEnabled,
274
290
  [Setting.disallowUnmute]: disallowUnmuteEnabled,
275
291
  [Setting.muteOnEntry]: muteOnEntryEnabled,
292
+ [Setting.roles]: roles,
276
293
  });
277
294
  }
278
295
  }
@@ -36,6 +36,8 @@ export interface VideoProperties {
36
36
 
37
37
  export interface ViewTheParticipantListProperties {
38
38
  enabled?: boolean;
39
+ panelistEnabled?: boolean;
40
+ attendeeCount?: boolean;
39
41
  }
40
42
 
41
43
  export type Properties =
@@ -217,6 +217,18 @@ class Utils {
217
217
  if (control.properties.enabled === false) {
218
218
  requiredHints.push(DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST);
219
219
  }
220
+ if (control.properties.panelistEnabled === true) {
221
+ requiredHints.push(DISPLAY_HINTS.ENABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);
222
+ }
223
+ if (control.properties.panelistEnabled === false) {
224
+ requiredHints.push(DISPLAY_HINTS.DISABLE_VIEW_THE_PARTICIPANT_LIST_PANELIST);
225
+ }
226
+ if (control.properties.attendeeCount === true) {
227
+ requiredHints.push(DISPLAY_HINTS.ENABLE_SHOW_ATTENDEE_COUNT);
228
+ }
229
+ if (control.properties.attendeeCount === false) {
230
+ requiredHints.push(DISPLAY_HINTS.DISABLE_SHOW_ATTENDEE_COUNT);
231
+ }
220
232
 
221
233
  return Utils.hasHints({requiredHints, displayHints});
222
234
  }
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ import CaptchaError from './common/errors/captcha-error';
8
8
  import IntentToJoinError from './common/errors/intent-to-join';
9
9
  import PasswordError from './common/errors/password-error';
10
10
  import PermissionError from './common/errors/permission';
11
+ import JoinWebinarError from './common/errors/join-webinar-error';
11
12
  import {
12
13
  ReclaimHostEmptyWrongKeyError,
13
14
  ReclaimHostIsHostAlreadyError,
@@ -68,6 +69,7 @@ export {
68
69
  ReclaimHostEmptyWrongKeyError,
69
70
  Meeting,
70
71
  MeetingInfoUtil,
72
+ JoinWebinarError,
71
73
  };
72
74
 
73
75
  export {RemoteMedia} from './multistream/remoteMedia';
@@ -79,7 +79,11 @@ ControlsUtils.parse = (controls: any) => {
79
79
  }
80
80
 
81
81
  if (controls?.viewTheParticipantList) {
82
- parsedControls.viewTheParticipantList = {enabled: controls.viewTheParticipantList.enabled};
82
+ parsedControls.viewTheParticipantList = {
83
+ enabled: controls.viewTheParticipantList?.enabled ?? false,
84
+ panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,
85
+ attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,
86
+ };
83
87
  }
84
88
 
85
89
  if (controls?.raiseHand) {
@@ -90,6 +94,23 @@ ControlsUtils.parse = (controls: any) => {
90
94
  parsedControls.video = {enabled: controls.video.enabled};
91
95
  }
92
96
 
97
+ if (controls?.webcastControl) {
98
+ parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};
99
+ }
100
+
101
+ if (controls?.meetingFull) {
102
+ parsedControls.meetingFull = {
103
+ meetingFull: controls.meetingFull?.meetingFull ?? false,
104
+ meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,
105
+ };
106
+ }
107
+
108
+ if (controls?.practiceSession) {
109
+ parsedControls.practiceSession = {
110
+ enabled: controls.practiceSession.enabled,
111
+ };
112
+ }
113
+
93
114
  return parsedControls;
94
115
  };
95
116
 
@@ -121,7 +142,11 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
121
142
  previous?.reactions?.showDisplayNameWithReactions,
122
143
 
123
144
  hasViewTheParticipantListChanged:
124
- current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled,
145
+ current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||
146
+ current?.viewTheParticipantList?.panelistEnabled !==
147
+ previous?.viewTheParticipantList?.panelistEnabled ||
148
+ current?.viewTheParticipantList?.attendeeCount !==
149
+ previous?.viewTheParticipantList?.attendeeCount,
125
150
 
126
151
  hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,
127
152
 
@@ -167,6 +192,25 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
167
192
  hasVideoEnabledChanged:
168
193
  newControls.video?.enabled !== undefined &&
169
194
  !isEqual(previous?.videoEnabled, current?.videoEnabled),
195
+
196
+ hasWebcastChanged: !isEqual(
197
+ previous?.webcastControl?.streaming,
198
+ current?.webcastControl?.streaming
199
+ ),
200
+
201
+ hasMeetingFullChanged:
202
+ !isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||
203
+ !isEqual(
204
+ previous?.meetingFull?.meetingPanelistFull,
205
+ current?.meetingFull?.meetingPanelistFull
206
+ ),
207
+
208
+ hasPracticeSessionEnabledChanged: !isEqual(
209
+ previous?.practiceSession?.enabled,
210
+ current?.practiceSession?.enabled
211
+ ),
212
+
213
+ hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),
170
214
  },
171
215
  };
172
216
  };
@@ -6,6 +6,7 @@ FullState.parse = (fullState) => ({
6
6
  type: fullState.type || FULL_STATE.UNKNOWN,
7
7
  meetingState: fullState.state,
8
8
  locked: fullState.locked,
9
+ attendeeCount: typeof fullState.attendeeCount === 'number' ? fullState.attendeeCount : 0,
9
10
  });
10
11
 
11
12
  FullState.getFullState = (oldFullState, newFullState) => {
@@ -64,6 +64,7 @@ export default class LocusInfo extends EventsScope {
64
64
  replace: any;
65
65
  url: any;
66
66
  services: any;
67
+ resources: any;
67
68
  mainSessionLocusCache: any;
68
69
  /**
69
70
  * Constructor
@@ -263,6 +264,7 @@ export default class LocusInfo extends EventsScope {
263
264
  this.updateHostInfo(locus.host);
264
265
  this.updateMediaShares(locus.mediaShares);
265
266
  this.updateServices(locus.links?.services);
267
+ this.updateResources(locus.links?.resources);
266
268
  }
267
269
 
268
270
  /**
@@ -452,6 +454,7 @@ export default class LocusInfo extends EventsScope {
452
454
  this.updateIdentifiers(locus.identities);
453
455
  this.updateEmbeddedApps(locus.embeddedApps);
454
456
  this.updateServices(locus.links?.services);
457
+ this.updateResources(locus.links?.resources);
455
458
  this.compareAndUpdate();
456
459
  // update which required to compare different objects from locus
457
460
  }
@@ -805,6 +808,10 @@ export default class LocusInfo extends EventsScope {
805
808
  hasRaiseHandChanged,
806
809
  hasVideoChanged,
807
810
  hasInterpretationChanged,
811
+ hasWebcastChanged,
812
+ hasMeetingFullChanged,
813
+ hasPracticeSessionEnabledChanged,
814
+ hasStageViewChanged,
808
815
  },
809
816
  current,
810
817
  } = ControlsUtils.getControls(this.controls, controls);
@@ -1008,6 +1015,38 @@ export default class LocusInfo extends EventsScope {
1008
1015
  );
1009
1016
  }
1010
1017
 
1018
+ if (hasWebcastChanged) {
1019
+ this.emitScoped(
1020
+ {file: 'locus-info', function: 'updateControls'},
1021
+ LOCUSINFO.EVENTS.CONTROLS_WEBCAST_CHANGED,
1022
+ {state: current.webcastControl}
1023
+ );
1024
+ }
1025
+
1026
+ if (hasMeetingFullChanged) {
1027
+ this.emitScoped(
1028
+ {file: 'locus-info', function: 'updateControls'},
1029
+ LOCUSINFO.EVENTS.CONTROLS_MEETING_FULL_CHANGED,
1030
+ {state: current.meetingFull}
1031
+ );
1032
+ }
1033
+
1034
+ if (hasPracticeSessionEnabledChanged) {
1035
+ this.emitScoped(
1036
+ {file: 'locus-info', function: 'updateControls'},
1037
+ LOCUSINFO.EVENTS.CONTROLS_PRACTICE_SESSION_STATUS_UPDATED,
1038
+ {state: current.practiceSession}
1039
+ );
1040
+ }
1041
+
1042
+ if (hasStageViewChanged) {
1043
+ this.emitScoped(
1044
+ {file: 'locus-info', function: 'updateControls'},
1045
+ LOCUSINFO.EVENTS.CONTROLS_STAGE_VIEW_UPDATED,
1046
+ {state: current.videoLayout}
1047
+ );
1048
+ }
1049
+
1011
1050
  this.controls = controls;
1012
1051
  }
1013
1052
  }
@@ -1064,6 +1103,27 @@ export default class LocusInfo extends EventsScope {
1064
1103
  }
1065
1104
  }
1066
1105
 
1106
+ /**
1107
+ * @param {Object} resources
1108
+ * @returns {undefined}
1109
+ * @memberof LocusInfo
1110
+ */
1111
+ updateResources(resources: Record<'webcastInstance', {url: string}>) {
1112
+ if (resources && !isEqual(this.resources, resources)) {
1113
+ this.resources = resources;
1114
+ this.emitScoped(
1115
+ {
1116
+ file: 'locus-info',
1117
+ function: 'updateResources',
1118
+ },
1119
+ LOCUSINFO.EVENTS.LINKS_RESOURCES,
1120
+ {
1121
+ resources,
1122
+ }
1123
+ );
1124
+ }
1125
+ }
1126
+
1067
1127
  /**
1068
1128
  * @param {Object} fullState
1069
1129
  * @returns {undefined}
@@ -771,7 +771,14 @@ export default class Parser {
771
771
  )}, Action: ${lociComparison}`
772
772
  );
773
773
 
774
- this.onDeltaAction(lociComparison, newLoci);
774
+ try {
775
+ this.onDeltaAction(lociComparison, newLoci);
776
+ } catch (error) {
777
+ LoggerProxy.logger.error(
778
+ 'Locus-info:parser#processDeltaEvent --> Error in onDeltaAction',
779
+ error
780
+ );
781
+ }
775
782
  }
776
783
 
777
784
  this.nextEvent();
@@ -183,6 +183,21 @@ Media.createMediaConnection = (
183
183
  });
184
184
  }
185
185
 
186
+ const devTurnServers = (window as any).webexTurnServers;
187
+
188
+ if (devTurnServers) {
189
+ console.log('adding webexTurnServers:', devTurnServers);
190
+
191
+ for (const devTurnServer of devTurnServers) {
192
+ iceServers.push({
193
+ urls: devTurnServer.url || turnServerInfo.url.replace('.public', '.ds.public'),
194
+ username: devTurnServer.username || turnServerInfo?.username || '',
195
+ credential: devTurnServer.password || turnServerInfo?.password || '',
196
+ });
197
+ }
198
+ }
199
+ console.log('iceServers:', iceServers);
200
+
186
201
  if (isMultistream) {
187
202
  const config: MultistreamConnectionConfig = {
188
203
  iceServers,
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import {MEETINGS} from '../constants';
6
+ import ControlsOptionsUtil from '../controls-options-manager/util';
6
7
 
7
8
  /**
8
9
  * IInMeetingActions
@@ -25,6 +26,7 @@ interface IInMeetingActions {
25
26
  canStartRecording?: boolean;
26
27
  canPauseRecording?: boolean;
27
28
  canResumeRecording?: boolean;
29
+ isPremiseRecordingEnabled?: boolean;
28
30
  canStopRecording?: boolean;
29
31
  canRaiseHand?: boolean;
30
32
  canLowerAllHands?: boolean;
@@ -64,6 +66,10 @@ interface IInMeetingActions {
64
66
  canUpdateShareControl?: boolean;
65
67
  canEnableViewTheParticipantsList?: boolean;
66
68
  canDisableViewTheParticipantsList?: boolean;
69
+ canEnableViewTheParticipantsListPanelist?: boolean;
70
+ canDisableViewTheParticipantsListPanelist?: boolean;
71
+ canEnableShowAttendeeCount?: boolean;
72
+ canDisableShowAttendeeCount?: boolean;
67
73
  canEnableRaiseHand?: boolean;
68
74
  canDisableRaiseHand?: boolean;
69
75
  canEnableVideo?: boolean;
@@ -83,6 +89,15 @@ interface IInMeetingActions {
83
89
  canShareWhiteBoard?: boolean;
84
90
  enforceVirtualBackground?: boolean;
85
91
  canPollingAndQA?: boolean;
92
+ canStartWebcast?: boolean;
93
+ canStopWebcast?: boolean;
94
+ canShowStageView?: boolean;
95
+ canEnableStageView?: boolean;
96
+ canDisableStageView?: boolean;
97
+ isPracticeSessionOn?: boolean;
98
+ isPracticeSessionOff?: boolean;
99
+ canStartPracticeSession?: boolean;
100
+ canStopPracticeSession?: boolean;
86
101
  }
87
102
 
88
103
  /**
@@ -107,6 +122,8 @@ export default class InMeetingActions implements IInMeetingActions {
107
122
 
108
123
  canResumeRecording = null;
109
124
 
125
+ isPremiseRecordingEnabled = null;
126
+
110
127
  canStopRecording = null;
111
128
 
112
129
  canSetMuteOnEntry = null;
@@ -201,6 +218,14 @@ export default class InMeetingActions implements IInMeetingActions {
201
218
 
202
219
  canDisableViewTheParticipantsList = null;
203
220
 
221
+ canEnableViewTheParticipantsListPanelist = null;
222
+
223
+ canDisableViewTheParticipantsListPanelist = null;
224
+
225
+ canEnableShowAttendeeCount = null;
226
+
227
+ canDisableShowAttendeeCount = null;
228
+
204
229
  canEnableRaiseHand = null;
205
230
 
206
231
  canDisableRaiseHand = null;
@@ -238,6 +263,25 @@ export default class InMeetingActions implements IInMeetingActions {
238
263
  canShareWhiteBoard = null;
239
264
 
240
265
  canPollingAndQA = null;
266
+
267
+ canStartWebcast = null;
268
+
269
+ canStopWebcast = null;
270
+
271
+ canShowStageView = null;
272
+
273
+ canEnableStageView = null;
274
+
275
+ canDisableStageView = null;
276
+
277
+ isPracticeSessionOn = null;
278
+
279
+ isPracticeSessionOff = null;
280
+
281
+ canStartPracticeSession = null;
282
+
283
+ canStopPracticeSession = null;
284
+
241
285
  /**
242
286
  * Returns all meeting action options
243
287
  * @returns {Object}
@@ -260,6 +304,7 @@ export default class InMeetingActions implements IInMeetingActions {
260
304
  canPauseRecording: this.canPauseRecording,
261
305
  canResumeRecording: this.canResumeRecording,
262
306
  canStopRecording: this.canStopRecording,
307
+ isPremiseRecordingEnabled: this.isPremiseRecordingEnabled,
263
308
  canRaiseHand: this.canRaiseHand,
264
309
  canLowerAllHands: this.canLowerAllHands,
265
310
  canLowerSomeoneElsesHand: this.canLowerSomeoneElsesHand,
@@ -298,6 +343,10 @@ export default class InMeetingActions implements IInMeetingActions {
298
343
  canUpdateShareControl: this.canUpdateShareControl,
299
344
  canEnableViewTheParticipantsList: this.canEnableViewTheParticipantsList,
300
345
  canDisableViewTheParticipantsList: this.canDisableViewTheParticipantsList,
346
+ canEnableViewTheParticipantsListPanelist: this.canEnableViewTheParticipantsListPanelist,
347
+ canDisableViewTheParticipantsListPanelist: this.canDisableViewTheParticipantsListPanelist,
348
+ canEnableShowAttendeeCount: this.canEnableShowAttendeeCount,
349
+ canDisableShowAttendeeCount: this.canDisableShowAttendeeCount,
301
350
  canEnableRaiseHand: this.canEnableRaiseHand,
302
351
  canDisableRaiseHand: this.canDisableRaiseHand,
303
352
  canEnableVideo: this.canEnableVideo,
@@ -317,6 +366,15 @@ export default class InMeetingActions implements IInMeetingActions {
317
366
  supportHDV: this.supportHDV,
318
367
  canShareWhiteBoard: this.canShareWhiteBoard,
319
368
  canPollingAndQA: this.canPollingAndQA,
369
+ canStartWebcast: this.canStartWebcast,
370
+ canStopWebcast: this.canStopWebcast,
371
+ canShowStageView: this.canShowStageView,
372
+ canEnableStageView: this.canEnableStageView,
373
+ canDisableStageView: this.canDisableStageView,
374
+ isPracticeSessionOn: this.isPracticeSessionOn,
375
+ isPracticeSessionOff: this.isPracticeSessionOff,
376
+ canStartPracticeSession: this.canStartPracticeSession,
377
+ canStopPracticeSession: this.canStopPracticeSession,
320
378
  });
321
379
 
322
380
  /**