@webex/plugin-meetings 3.0.0-beta.8 → 3.0.0-bnr.0

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 (1048) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/breakouts/breakout.js +178 -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/edit-lock-error.js +52 -0
  8. package/dist/breakouts/edit-lock-error.js.map +1 -0
  9. package/dist/breakouts/index.js +843 -0
  10. package/dist/breakouts/index.js.map +1 -0
  11. package/dist/breakouts/request.js +78 -0
  12. package/dist/breakouts/request.js.map +1 -0
  13. package/dist/breakouts/utils.js +56 -0
  14. package/dist/breakouts/utils.js.map +1 -0
  15. package/dist/common/browser-detection.d.ts +9 -0
  16. package/dist/common/browser-detection.js +1 -20
  17. package/dist/common/browser-detection.js.map +1 -1
  18. package/dist/common/collection.d.ts +48 -0
  19. package/dist/common/collection.js +5 -20
  20. package/dist/common/collection.js.map +1 -1
  21. package/dist/common/config.d.ts +2 -0
  22. package/dist/common/config.js +0 -7
  23. package/dist/common/config.js.map +1 -1
  24. package/dist/common/errors/captcha-error.d.ts +15 -0
  25. package/dist/common/errors/captcha-error.js +10 -24
  26. package/dist/common/errors/captcha-error.js.map +1 -1
  27. package/dist/common/errors/intent-to-join.d.ts +16 -0
  28. package/dist/common/errors/intent-to-join.js +11 -24
  29. package/dist/common/errors/intent-to-join.js.map +1 -1
  30. package/dist/common/errors/join-meeting.d.ts +17 -0
  31. package/dist/common/errors/join-meeting.js +12 -25
  32. package/dist/common/errors/join-meeting.js.map +1 -1
  33. package/dist/common/errors/media.d.ts +15 -0
  34. package/dist/common/errors/media.js +10 -24
  35. package/dist/common/errors/media.js.map +1 -1
  36. package/dist/common/errors/parameter.d.ts +15 -0
  37. package/dist/common/errors/parameter.js +5 -33
  38. package/dist/common/errors/parameter.js.map +1 -1
  39. package/dist/common/errors/password-error.d.ts +15 -0
  40. package/dist/common/errors/password-error.js +10 -24
  41. package/dist/common/errors/password-error.js.map +1 -1
  42. package/dist/common/errors/permission.d.ts +14 -0
  43. package/dist/common/errors/permission.js +9 -23
  44. package/dist/common/errors/permission.js.map +1 -1
  45. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  46. package/dist/common/errors/reconnection-in-progress.js +0 -17
  47. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  48. package/dist/common/errors/reconnection.d.ts +15 -0
  49. package/dist/common/errors/reconnection.js +10 -24
  50. package/dist/common/errors/reconnection.js.map +1 -1
  51. package/dist/common/errors/stats.d.ts +15 -0
  52. package/dist/common/errors/stats.js +10 -24
  53. package/dist/common/errors/stats.js.map +1 -1
  54. package/dist/common/errors/webex-errors.d.ts +81 -0
  55. package/dist/common/errors/webex-errors.js +6 -41
  56. package/dist/common/errors/webex-errors.js.map +1 -1
  57. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  58. package/dist/common/errors/webex-meetings-error.js +5 -25
  59. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  60. package/dist/common/events/events-scope.d.ts +17 -0
  61. package/dist/common/events/events-scope.js +0 -22
  62. package/dist/common/events/events-scope.js.map +1 -1
  63. package/dist/common/events/events.d.ts +12 -0
  64. package/dist/common/events/events.js +0 -23
  65. package/dist/common/events/events.js.map +1 -1
  66. package/dist/common/events/trigger-proxy.d.ts +2 -0
  67. package/dist/common/events/trigger-proxy.js +0 -12
  68. package/dist/common/events/trigger-proxy.js.map +1 -1
  69. package/dist/common/events/util.d.ts +2 -0
  70. package/dist/common/events/util.js +0 -15
  71. package/dist/common/events/util.js.map +1 -1
  72. package/dist/common/logs/logger-config.d.ts +2 -0
  73. package/dist/common/logs/logger-config.js +0 -4
  74. package/dist/common/logs/logger-config.js.map +1 -1
  75. package/dist/common/logs/logger-proxy.d.ts +2 -0
  76. package/dist/common/logs/logger-proxy.js +1 -8
  77. package/dist/common/logs/logger-proxy.js.map +1 -1
  78. package/dist/common/logs/request.d.ts +34 -0
  79. package/dist/common/logs/request.js +37 -60
  80. package/dist/common/logs/request.js.map +1 -1
  81. package/dist/common/queue.d.ts +32 -0
  82. package/dist/common/queue.js +4 -14
  83. package/dist/common/queue.js.map +1 -1
  84. package/dist/config.d.ts +73 -0
  85. package/dist/config.js +6 -6
  86. package/dist/config.js.map +1 -1
  87. package/dist/constants.d.ts +924 -0
  88. package/dist/constants.js +143 -52
  89. package/dist/constants.js.map +1 -1
  90. package/dist/controls-options-manager/constants.d.ts +4 -0
  91. package/dist/controls-options-manager/constants.js +14 -0
  92. package/dist/controls-options-manager/constants.js.map +1 -0
  93. package/dist/controls-options-manager/enums.d.ts +5 -0
  94. package/dist/controls-options-manager/enums.js +16 -0
  95. package/dist/controls-options-manager/enums.js.map +1 -0
  96. package/dist/controls-options-manager/index.d.ts +120 -0
  97. package/dist/controls-options-manager/index.js +261 -0
  98. package/dist/controls-options-manager/index.js.map +1 -0
  99. package/dist/controls-options-manager/util.d.ts +7 -0
  100. package/dist/controls-options-manager/util.js +39 -0
  101. package/dist/controls-options-manager/util.js.map +1 -0
  102. package/dist/docs/markdown/index.md +12 -0
  103. package/dist/docs/markdown/plugin-meetings.constants._active_.md +11 -0
  104. package/dist/docs/markdown/plugin-meetings.constants._answer_.md +11 -0
  105. package/dist/docs/markdown/plugin-meetings.constants._call_.md +11 -0
  106. package/dist/docs/markdown/plugin-meetings.constants._conflict_.md +11 -0
  107. package/dist/docs/markdown/plugin-meetings.constants._conversation_url_.md +11 -0
  108. package/dist/docs/markdown/plugin-meetings.constants._created_.md +11 -0
  109. package/dist/docs/markdown/plugin-meetings.constants._error_.md +11 -0
  110. package/dist/docs/markdown/plugin-meetings.constants._forced_.md +11 -0
  111. package/dist/docs/markdown/plugin-meetings.constants._id_.md +11 -0
  112. package/dist/docs/markdown/plugin-meetings.constants._idle_.md +11 -0
  113. package/dist/docs/markdown/plugin-meetings.constants._in_.md +11 -0
  114. package/dist/docs/markdown/plugin-meetings.constants._in_lobby_.md +11 -0
  115. package/dist/docs/markdown/plugin-meetings.constants._in_meeting_.md +11 -0
  116. package/dist/docs/markdown/plugin-meetings.constants._inactive_.md +11 -0
  117. package/dist/docs/markdown/plugin-meetings.constants._incoming_.md +11 -0
  118. package/dist/docs/markdown/plugin-meetings.constants._join_.md +11 -0
  119. package/dist/docs/markdown/plugin-meetings.constants._joined_.md +11 -0
  120. package/dist/docs/markdown/plugin-meetings.constants._left_.md +11 -0
  121. package/dist/docs/markdown/plugin-meetings.constants._locus_id_.md +11 -0
  122. package/dist/docs/markdown/plugin-meetings.constants._meeting_.md +11 -0
  123. package/dist/docs/markdown/plugin-meetings.constants._meeting_center_.md +11 -0
  124. package/dist/docs/markdown/plugin-meetings.constants._meeting_id_.md +11 -0
  125. package/dist/docs/markdown/plugin-meetings.constants._meeting_link_.md +11 -0
  126. package/dist/docs/markdown/plugin-meetings.constants._meeting_uuid_.md +11 -0
  127. package/dist/docs/markdown/plugin-meetings.constants._move_media_.md +11 -0
  128. package/dist/docs/markdown/plugin-meetings.constants._none_.md +11 -0
  129. package/dist/docs/markdown/plugin-meetings.constants._not_in_meeting_.md +11 -0
  130. package/dist/docs/markdown/plugin-meetings.constants._observe_.md +11 -0
  131. package/dist/docs/markdown/plugin-meetings.constants._people_.md +11 -0
  132. package/dist/docs/markdown/plugin-meetings.constants._personal_room_.md +11 -0
  133. package/dist/docs/markdown/plugin-meetings.constants._receive_only_.md +11 -0
  134. package/dist/docs/markdown/plugin-meetings.constants._remove_.md +11 -0
  135. package/dist/docs/markdown/plugin-meetings.constants._requested_.md +11 -0
  136. package/dist/docs/markdown/plugin-meetings.constants._resource_room_.md +11 -0
  137. package/dist/docs/markdown/plugin-meetings.constants._room_.md +11 -0
  138. package/dist/docs/markdown/plugin-meetings.constants._s_line.md +11 -0
  139. package/dist/docs/markdown/plugin-meetings.constants._send_only_.md +11 -0
  140. package/dist/docs/markdown/plugin-meetings.constants._send_receive_.md +11 -0
  141. package/dist/docs/markdown/plugin-meetings.constants._sip_bridge_.md +11 -0
  142. package/dist/docs/markdown/plugin-meetings.constants._sip_uri_.md +11 -0
  143. package/dist/docs/markdown/plugin-meetings.constants._slides_.md +11 -0
  144. package/dist/docs/markdown/plugin-meetings.constants._unknown_.md +11 -0
  145. package/dist/docs/markdown/plugin-meetings.constants._user_.md +11 -0
  146. package/dist/docs/markdown/plugin-meetings.constants._wait_.md +11 -0
  147. package/dist/docs/markdown/plugin-meetings.constants._webex_meeting_.md +11 -0
  148. package/dist/docs/markdown/plugin-meetings.constants.alert.md +11 -0
  149. package/dist/docs/markdown/plugin-meetings.constants.alternate_redirect_true.md +11 -0
  150. package/dist/docs/markdown/plugin-meetings.constants.answer.md +11 -0
  151. package/dist/docs/markdown/plugin-meetings.constants.api.md +14 -0
  152. package/dist/docs/markdown/plugin-meetings.constants.audio.md +11 -0
  153. package/dist/docs/markdown/plugin-meetings.constants.audio_input.md +11 -0
  154. package/dist/docs/markdown/plugin-meetings.constants.audio_status.md +11 -0
  155. package/dist/docs/markdown/plugin-meetings.constants.available_resolutions.md +60 -0
  156. package/dist/docs/markdown/plugin-meetings.constants.bnr_status.md +16 -0
  157. package/dist/docs/markdown/plugin-meetings.constants.breakouts.md +51 -0
  158. package/dist/docs/markdown/plugin-meetings.constants.calendar.md +11 -0
  159. package/dist/docs/markdown/plugin-meetings.constants.calendar_events.md +17 -0
  160. package/dist/docs/markdown/plugin-meetings.constants.calendar_events_api.md +11 -0
  161. package/dist/docs/markdown/plugin-meetings.constants.call.md +11 -0
  162. package/dist/docs/markdown/plugin-meetings.constants.call_removed_reason.md +15 -0
  163. package/dist/docs/markdown/plugin-meetings.constants.claim.md +11 -0
  164. package/dist/docs/markdown/plugin-meetings.constants.cmr_meetings.md +11 -0
  165. package/dist/docs/markdown/plugin-meetings.constants.complete.md +11 -0
  166. package/dist/docs/markdown/plugin-meetings.constants.connection_state.md +18 -0
  167. package/dist/docs/markdown/plugin-meetings.constants.content.md +11 -0
  168. package/dist/docs/markdown/plugin-meetings.constants.controls.md +11 -0
  169. package/dist/docs/markdown/plugin-meetings.constants.conversation_service.md +11 -0
  170. package/dist/docs/markdown/plugin-meetings.constants.conversation_url.md +11 -0
  171. package/dist/docs/markdown/plugin-meetings.constants.correlation_id.md +11 -0
  172. package/dist/docs/markdown/plugin-meetings.constants.decline.md +11 -0
  173. package/dist/docs/markdown/plugin-meetings.constants.default_excluded_stats.md +11 -0
  174. package/dist/docs/markdown/plugin-meetings.constants.default_get_stats_filter.md +13 -0
  175. package/dist/docs/markdown/plugin-meetings.constants.development.md +11 -0
  176. package/dist/docs/markdown/plugin-meetings.constants.dialer_regex.md +15 -0
  177. package/dist/docs/markdown/plugin-meetings.constants.display_hints.md +51 -0
  178. package/dist/docs/markdown/plugin-meetings.constants.embedded_app_types.md +14 -0
  179. package/dist/docs/markdown/plugin-meetings.constants.end.md +11 -0
  180. package/dist/docs/markdown/plugin-meetings.constants.ended.md +11 -0
  181. package/dist/docs/markdown/plugin-meetings.constants.error.md +11 -0
  182. package/dist/docs/markdown/plugin-meetings.constants.error_dictionary.md +62 -0
  183. package/dist/docs/markdown/plugin-meetings.constants.event_triggers.md +82 -0
  184. package/dist/docs/markdown/plugin-meetings.constants.event_types.md +21 -0
  185. package/dist/docs/markdown/plugin-meetings.constants.events.md +26 -0
  186. package/dist/docs/markdown/plugin-meetings.constants.floor_action.md +15 -0
  187. package/dist/docs/markdown/plugin-meetings.constants.full_state.md +17 -0
  188. package/dist/docs/markdown/plugin-meetings.constants.gathering.md +11 -0
  189. package/dist/docs/markdown/plugin-meetings.constants.hecate.md +11 -0
  190. package/dist/docs/markdown/plugin-meetings.constants.host.md +11 -0
  191. package/dist/docs/markdown/plugin-meetings.constants.http_verbs.md +17 -0
  192. package/dist/docs/markdown/plugin-meetings.constants.https_protocol.md +11 -0
  193. package/dist/docs/markdown/plugin-meetings.constants.ice_fail_timeout.md +11 -0
  194. package/dist/docs/markdown/plugin-meetings.constants.ice_gathering_state.md +15 -0
  195. package/dist/docs/markdown/plugin-meetings.constants.ice_state.md +18 -0
  196. package/dist/docs/markdown/plugin-meetings.constants.ice_timeout.md +11 -0
  197. package/dist/docs/markdown/plugin-meetings.constants.intent_to_join.md +11 -0
  198. package/dist/docs/markdown/plugin-meetings.constants.ipv4_regex.md +11 -0
  199. package/dist/docs/markdown/plugin-meetings.constants.join.md +11 -0
  200. package/dist/docs/markdown/plugin-meetings.constants.layout_types.md +13 -0
  201. package/dist/docs/markdown/plugin-meetings.constants.leave.md +11 -0
  202. package/dist/docs/markdown/plugin-meetings.constants.live.md +11 -0
  203. package/dist/docs/markdown/plugin-meetings.constants.local.md +11 -0
  204. package/dist/docs/markdown/plugin-meetings.constants.loci.md +11 -0
  205. package/dist/docs/markdown/plugin-meetings.constants.locus.md +26 -0
  206. package/dist/docs/markdown/plugin-meetings.constants.locus_url.md +11 -0
  207. package/dist/docs/markdown/plugin-meetings.constants.locusevent.md +33 -0
  208. package/dist/docs/markdown/plugin-meetings.constants.locusinfo.md +43 -0
  209. package/dist/docs/markdown/plugin-meetings.constants.max_random_delay_for_meeting_info.md +11 -0
  210. package/dist/docs/markdown/plugin-meetings.constants.md +186 -0
  211. package/dist/docs/markdown/plugin-meetings.constants.media.md +11 -0
  212. package/dist/docs/markdown/plugin-meetings.constants.media_devices.md +15 -0
  213. package/dist/docs/markdown/plugin-meetings.constants.media_peer_connection_name.md +11 -0
  214. package/dist/docs/markdown/plugin-meetings.constants.media_state.md +14 -0
  215. package/dist/docs/markdown/plugin-meetings.constants.media_track_constraint.md +17 -0
  216. package/dist/docs/markdown/plugin-meetings.constants.mediacontent.md +14 -0
  217. package/dist/docs/markdown/plugin-meetings.constants.meet.md +11 -0
  218. package/dist/docs/markdown/plugin-meetings.constants.meet_m.md +11 -0
  219. package/dist/docs/markdown/plugin-meetings.constants.meeting_audio_state_machine.md +20 -0
  220. package/dist/docs/markdown/plugin-meetings.constants.meeting_end_reason.md +14 -0
  221. package/dist/docs/markdown/plugin-meetings.constants.meeting_errors.md +102 -0
  222. package/dist/docs/markdown/plugin-meetings.constants.meeting_info_failure_reason.md +16 -0
  223. package/dist/docs/markdown/plugin-meetings.constants.meeting_removed_reason.md +19 -0
  224. package/dist/docs/markdown/plugin-meetings.constants.meeting_state.md +25 -0
  225. package/dist/docs/markdown/plugin-meetings.constants.meeting_state_machine.md +31 -0
  226. package/dist/docs/markdown/plugin-meetings.constants.meeting_video_state_machine.md +20 -0
  227. package/dist/docs/markdown/plugin-meetings.constants.meetinginfo.md +11 -0
  228. package/dist/docs/markdown/plugin-meetings.constants.meetings.md +11 -0
  229. package/dist/docs/markdown/plugin-meetings.constants.metrics_join_times_max_duration.md +11 -0
  230. package/dist/docs/markdown/plugin-meetings.constants.moderator_false.md +11 -0
  231. package/dist/docs/markdown/plugin-meetings.constants.moderator_true.md +11 -0
  232. package/dist/docs/markdown/plugin-meetings.constants.mqa_inteval.md +11 -0
  233. package/dist/docs/markdown/plugin-meetings.constants.mqa_stats.md +82 -0
  234. package/dist/docs/markdown/plugin-meetings.constants.network_status.md +15 -0
  235. package/dist/docs/markdown/plugin-meetings.constants.network_type.md +16 -0
  236. package/dist/docs/markdown/plugin-meetings.constants.offline.md +11 -0
  237. package/dist/docs/markdown/plugin-meetings.constants.online.md +11 -0
  238. package/dist/docs/markdown/plugin-meetings.constants.participant.md +11 -0
  239. package/dist/docs/markdown/plugin-meetings.constants.participant_deltas.md +22 -0
  240. package/dist/docs/markdown/plugin-meetings.constants.password_status.md +16 -0
  241. package/dist/docs/markdown/plugin-meetings.constants.pc_bail_timeout.md +11 -0
  242. package/dist/docs/markdown/plugin-meetings.constants.peer_connection_state.md +14 -0
  243. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_in.md +11 -0
  244. package/dist/docs/markdown/plugin-meetings.constants.provisional_type_dial_out.md +11 -0
  245. package/dist/docs/markdown/plugin-meetings.constants.pstn_status.md +18 -0
  246. package/dist/docs/markdown/plugin-meetings.constants.quality_levels.md +19 -0
  247. package/dist/docs/markdown/plugin-meetings.constants.reachability.md +15 -0
  248. package/dist/docs/markdown/plugin-meetings.constants.ready.md +11 -0
  249. package/dist/docs/markdown/plugin-meetings.constants.reconnection.md +19 -0
  250. package/dist/docs/markdown/plugin-meetings.constants.recording_state.md +16 -0
  251. package/dist/docs/markdown/plugin-meetings.constants.remote.md +11 -0
  252. package/dist/docs/markdown/plugin-meetings.constants.resource.md +15 -0
  253. package/dist/docs/markdown/plugin-meetings.constants.retry_timeout.md +11 -0
  254. package/dist/docs/markdown/plugin-meetings.constants.roap.md +22 -0
  255. package/dist/docs/markdown/plugin-meetings.constants.self_roles.md +14 -0
  256. package/dist/docs/markdown/plugin-meetings.constants.send_dtmf_endpoint.md +11 -0
  257. package/dist/docs/markdown/plugin-meetings.constants.sendrecv.md +11 -0
  258. package/dist/docs/markdown/plugin-meetings.constants.share.md +11 -0
  259. package/dist/docs/markdown/plugin-meetings.constants.share_peer_connection_name.md +11 -0
  260. package/dist/docs/markdown/plugin-meetings.constants.share_status.md +16 -0
  261. package/dist/docs/markdown/plugin-meetings.constants.share_stopped_reason.md +14 -0
  262. package/dist/docs/markdown/plugin-meetings.constants.sip_uri.md +11 -0
  263. package/dist/docs/markdown/plugin-meetings.constants.stats.md +16 -0
  264. package/dist/docs/markdown/plugin-meetings.constants.type.md +11 -0
  265. package/dist/docs/markdown/plugin-meetings.constants.use_uri_lookup_false.md +11 -0
  266. package/dist/docs/markdown/plugin-meetings.constants.uuid_reg.md +11 -0
  267. package/dist/docs/markdown/plugin-meetings.constants.valid_email_address.md +11 -0
  268. package/dist/docs/markdown/plugin-meetings.constants.valid_pin.md +11 -0
  269. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_address.md +11 -0
  270. package/dist/docs/markdown/plugin-meetings.constants.valid_pmr_link.md +11 -0
  271. package/dist/docs/markdown/plugin-meetings.constants.video.md +11 -0
  272. package/dist/docs/markdown/plugin-meetings.constants.video_input.md +11 -0
  273. package/dist/docs/markdown/plugin-meetings.constants.video_resolutions.md +24 -0
  274. package/dist/docs/markdown/plugin-meetings.constants.video_status.md +11 -0
  275. package/dist/docs/markdown/plugin-meetings.constants.wbxappapi_service.md +11 -0
  276. package/dist/docs/markdown/plugin-meetings.constants.webex_dot_com.md +11 -0
  277. package/dist/docs/markdown/plugin-meetings.constants.whiteboard.md +11 -0
  278. package/dist/docs/markdown/plugin-meetings.constants.www_dot.md +11 -0
  279. package/dist/docs/markdown/plugin-meetings.md +28 -0
  280. package/dist/docs/markdown/plugin-meetings.meeting.default._constructor_.md +21 -0
  281. package/dist/docs/markdown/plugin-meetings.meeting.default.acknowledge.md +28 -0
  282. package/dist/docs/markdown/plugin-meetings.meeting.default.addmedia.md +28 -0
  283. package/dist/docs/markdown/plugin-meetings.meeting.default.admit.md +32 -0
  284. package/dist/docs/markdown/plugin-meetings.meeting.default.attrs.md +11 -0
  285. package/dist/docs/markdown/plugin-meetings.meeting.default.audio.md +11 -0
  286. package/dist/docs/markdown/plugin-meetings.meeting.default.breakouts.md +11 -0
  287. package/dist/docs/markdown/plugin-meetings.meeting.default.callevents.md +11 -0
  288. package/dist/docs/markdown/plugin-meetings.meeting.default.cancelphoneinvite.md +30 -0
  289. package/dist/docs/markdown/plugin-meetings.meeting.default.canupdatemedia.md +19 -0
  290. package/dist/docs/markdown/plugin-meetings.meeting.default.changevideolayout.md +38 -0
  291. package/dist/docs/markdown/plugin-meetings.meeting.default.clearmeetingdata.md +13 -0
  292. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalshare.md +21 -0
  293. package/dist/docs/markdown/plugin-meetings.meeting.default.closelocalstream.md +21 -0
  294. package/dist/docs/markdown/plugin-meetings.meeting.default.closepeerconnections.md +21 -0
  295. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotestream.md +26 -0
  296. package/dist/docs/markdown/plugin-meetings.meeting.default.closeremotetracks.md +19 -0
  297. package/dist/docs/markdown/plugin-meetings.meeting.default.controlsoptionsmanager.md +11 -0
  298. package/dist/docs/markdown/plugin-meetings.meeting.default.conversationurl.md +11 -0
  299. package/dist/docs/markdown/plugin-meetings.meeting.default.correlationid.md +11 -0
  300. package/dist/docs/markdown/plugin-meetings.meeting.default.createmediaconnection.md +26 -0
  301. package/dist/docs/markdown/plugin-meetings.meeting.default.decline.md +28 -0
  302. package/dist/docs/markdown/plugin-meetings.meeting.default.deferjoin.md +11 -0
  303. package/dist/docs/markdown/plugin-meetings.meeting.default.destination.md +11 -0
  304. package/dist/docs/markdown/plugin-meetings.meeting.default.destinationtype.md +11 -0
  305. package/dist/docs/markdown/plugin-meetings.meeting.default.deviceurl.md +11 -0
  306. package/dist/docs/markdown/plugin-meetings.meeting.default.dialindevicestatus.md +11 -0
  307. package/dist/docs/markdown/plugin-meetings.meeting.default.dialinurl.md +11 -0
  308. package/dist/docs/markdown/plugin-meetings.meeting.default.dialoutdevicestatus.md +11 -0
  309. package/dist/docs/markdown/plugin-meetings.meeting.default.dialouturl.md +11 -0
  310. package/dist/docs/markdown/plugin-meetings.meeting.default.disconnectphoneaudio.md +19 -0
  311. package/dist/docs/markdown/plugin-meetings.meeting.default.endcallinitiatejoinreq.md +11 -0
  312. package/dist/docs/markdown/plugin-meetings.meeting.default.endjoinreqresp.md +11 -0
  313. package/dist/docs/markdown/plugin-meetings.meeting.default.endlocalsdpgenremotesdprecvdelay.md +11 -0
  314. package/dist/docs/markdown/plugin-meetings.meeting.default.endmeetingforall.md +21 -0
  315. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfo.md +29 -0
  316. package/dist/docs/markdown/plugin-meetings.meeting.default.fetchmeetinginfotimeoutid.md +11 -0
  317. package/dist/docs/markdown/plugin-meetings.meeting.default.floorgrantpending.md +11 -0
  318. package/dist/docs/markdown/plugin-meetings.meeting.default.forwardevent.md +29 -0
  319. package/dist/docs/markdown/plugin-meetings.meeting.default.getanalyzermetricsprepayload.md +32 -0
  320. package/dist/docs/markdown/plugin-meetings.meeting.default.getcallinitiatejoinreq.md +17 -0
  321. package/dist/docs/markdown/plugin-meetings.meeting.default.getdevices.md +13 -0
  322. package/dist/docs/markdown/plugin-meetings.meeting.default.getjoinreqresp.md +17 -0
  323. package/dist/docs/markdown/plugin-meetings.meeting.default.getlocalsdpgenremotesdprecvdelay.md +17 -0
  324. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediaconnectiondebugid.md +15 -0
  325. package/dist/docs/markdown/plugin-meetings.meeting.default.getmediastreams.md +15 -0
  326. package/dist/docs/markdown/plugin-meetings.meeting.default.getmembers.md +21 -0
  327. package/dist/docs/markdown/plugin-meetings.meeting.default.getsendingmediadelayduration.md +24 -0
  328. package/dist/docs/markdown/plugin-meetings.meeting.default.getsetupdelayduration.md +24 -0
  329. package/dist/docs/markdown/plugin-meetings.meeting.default.getsupporteddevices.md +16 -0
  330. package/dist/docs/markdown/plugin-meetings.meeting.default.gettotaljmt.md +17 -0
  331. package/dist/docs/markdown/plugin-meetings.meeting.default.guest.md +11 -0
  332. package/dist/docs/markdown/plugin-meetings.meeting.default.handledatachannelurlchange.md +26 -0
  333. package/dist/docs/markdown/plugin-meetings.meeting.default.handleroapfailure.md +13 -0
  334. package/dist/docs/markdown/plugin-meetings.meeting.default.hasjoinedonce.md +11 -0
  335. package/dist/docs/markdown/plugin-meetings.meeting.default.haswebsocketconnected.md +11 -0
  336. package/dist/docs/markdown/plugin-meetings.meeting.default.hostid.md +11 -0
  337. package/dist/docs/markdown/plugin-meetings.meeting.default.id.md +11 -0
  338. package/dist/docs/markdown/plugin-meetings.meeting.default.inmeetingactions.md +11 -0
  339. package/dist/docs/markdown/plugin-meetings.meeting.default.invite.md +33 -0
  340. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioconnected.md +21 -0
  341. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudiomuted.md +21 -0
  342. package/dist/docs/markdown/plugin-meetings.meeting.default.isaudioself.md +21 -0
  343. package/dist/docs/markdown/plugin-meetings.meeting.default.islocalsharelive.md +11 -0
  344. package/dist/docs/markdown/plugin-meetings.meeting.default.ismultistream.md +11 -0
  345. package/dist/docs/markdown/plugin-meetings.meeting.default.isreactionssupported.md +19 -0
  346. package/dist/docs/markdown/plugin-meetings.meeting.default.isroapinprogress.md +11 -0
  347. package/dist/docs/markdown/plugin-meetings.meeting.default.issharing.md +11 -0
  348. package/dist/docs/markdown/plugin-meetings.meeting.default.istranscriptionsupported.md +23 -0
  349. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoconnected.md +21 -0
  350. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideomuted.md +21 -0
  351. package/dist/docs/markdown/plugin-meetings.meeting.default.isvideoself.md +21 -0
  352. package/dist/docs/markdown/plugin-meetings.meeting.default.join.md +28 -0
  353. package/dist/docs/markdown/plugin-meetings.meeting.default.joinedwith.md +11 -0
  354. package/dist/docs/markdown/plugin-meetings.meeting.default.joinwithmedia.md +36 -0
  355. package/dist/docs/markdown/plugin-meetings.meeting.default.keepalivetimerid.md +11 -0
  356. package/dist/docs/markdown/plugin-meetings.meeting.default.lastvideolayoutinfo.md +11 -0
  357. package/dist/docs/markdown/plugin-meetings.meeting.default.leave.md +31 -0
  358. package/dist/docs/markdown/plugin-meetings.meeting.default.lockmeeting.md +21 -0
  359. package/dist/docs/markdown/plugin-meetings.meeting.default.locusid.md +11 -0
  360. package/dist/docs/markdown/plugin-meetings.meeting.default.locusinfo.md +11 -0
  361. package/dist/docs/markdown/plugin-meetings.meeting.default.locusurl.md +11 -0
  362. package/dist/docs/markdown/plugin-meetings.meeting.default.md +227 -0
  363. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaconnections.md +11 -0
  364. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaid.md +11 -0
  365. package/dist/docs/markdown/plugin-meetings.meeting.default.medianegotiatedevent.md +13 -0
  366. package/dist/docs/markdown/plugin-meetings.meeting.default.mediaproperties.md +11 -0
  367. package/dist/docs/markdown/plugin-meetings.meeting.default.mediarequestmanagers.md +16 -0
  368. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingfinitestatemachine.md +11 -0
  369. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfo.md +11 -0
  370. package/dist/docs/markdown/plugin-meetings.meeting.default.meetinginfofailurereason.md +11 -0
  371. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingjoinurl.md +11 -0
  372. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingnumber.md +11 -0
  373. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingrequest.md +11 -0
  374. package/dist/docs/markdown/plugin-meetings.meeting.default.meetingstate.md +11 -0
  375. package/dist/docs/markdown/plugin-meetings.meeting.default.members.md +11 -0
  376. package/dist/docs/markdown/plugin-meetings.meeting.default.movefrom.md +28 -0
  377. package/dist/docs/markdown/plugin-meetings.meeting.default.moveto.md +28 -0
  378. package/dist/docs/markdown/plugin-meetings.meeting.default.mute.md +29 -0
  379. package/dist/docs/markdown/plugin-meetings.meeting.default.muteaudio.md +21 -0
  380. package/dist/docs/markdown/plugin-meetings.meeting.default.mutevideo.md +21 -0
  381. package/dist/docs/markdown/plugin-meetings.meeting.default.namespace.md +11 -0
  382. package/dist/docs/markdown/plugin-meetings.meeting.default.networkqualitymonitor.md +11 -0
  383. package/dist/docs/markdown/plugin-meetings.meeting.default.networkstatus.md +11 -0
  384. package/dist/docs/markdown/plugin-meetings.meeting.default.options.md +11 -0
  385. package/dist/docs/markdown/plugin-meetings.meeting.default.orgid.md +11 -0
  386. package/dist/docs/markdown/plugin-meetings.meeting.default.owner.md +11 -0
  387. package/dist/docs/markdown/plugin-meetings.meeting.default.parsemeetinginfo.md +34 -0
  388. package/dist/docs/markdown/plugin-meetings.meeting.default.partner.md +11 -0
  389. package/dist/docs/markdown/plugin-meetings.meeting.default.passwordstatus.md +11 -0
  390. package/dist/docs/markdown/plugin-meetings.meeting.default.pauserecording.md +21 -0
  391. package/dist/docs/markdown/plugin-meetings.meeting.default.permissiontoken.md +11 -0
  392. package/dist/docs/markdown/plugin-meetings.meeting.default.policy.md +11 -0
  393. package/dist/docs/markdown/plugin-meetings.meeting.default.processnextqueuedmediaupdate.md +13 -0
  394. package/dist/docs/markdown/plugin-meetings.meeting.default.publishtracks.md +33 -0
  395. package/dist/docs/markdown/plugin-meetings.meeting.default.queuedmediaupdates.md +11 -0
  396. package/dist/docs/markdown/plugin-meetings.meeting.default.receiveslotmanager.md +11 -0
  397. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnect.md +28 -0
  398. package/dist/docs/markdown/plugin-meetings.meeting.default.reconnectionmanager.md +11 -0
  399. package/dist/docs/markdown/plugin-meetings.meeting.default.recording.md +11 -0
  400. package/dist/docs/markdown/plugin-meetings.meeting.default.recordingcontroller.md +11 -0
  401. package/dist/docs/markdown/plugin-meetings.meeting.default.refreshcaptcha.md +21 -0
  402. package/dist/docs/markdown/plugin-meetings.meeting.default.remotemediamanager.md +11 -0
  403. package/dist/docs/markdown/plugin-meetings.meeting.default.remove.md +28 -0
  404. package/dist/docs/markdown/plugin-meetings.meeting.default.requiredcaptcha.md +11 -0
  405. package/dist/docs/markdown/plugin-meetings.meeting.default.resource.md +11 -0
  406. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceid.md +11 -0
  407. package/dist/docs/markdown/plugin-meetings.meeting.default.resourceurl.md +11 -0
  408. package/dist/docs/markdown/plugin-meetings.meeting.default.resumerecording.md +21 -0
  409. package/dist/docs/markdown/plugin-meetings.meeting.default.roap.md +11 -0
  410. package/dist/docs/markdown/plugin-meetings.meeting.default.roapseq.md +11 -0
  411. package/dist/docs/markdown/plugin-meetings.meeting.default.selfid.md +11 -0
  412. package/dist/docs/markdown/plugin-meetings.meeting.default.senddtmf.md +28 -0
  413. package/dist/docs/markdown/plugin-meetings.meeting.default.sendreaction.md +29 -0
  414. package/dist/docs/markdown/plugin-meetings.meeting.default.setdisallowunmute.md +26 -0
  415. package/dist/docs/markdown/plugin-meetings.meeting.default.setendcallinitiatejoinreq.md +17 -0
  416. package/dist/docs/markdown/plugin-meetings.meeting.default.setendjoinreqresp.md +17 -0
  417. package/dist/docs/markdown/plugin-meetings.meeting.default.setendlocalsdpgenremotesdprecvdelay.md +17 -0
  418. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsendingmediadelay.md +24 -0
  419. package/dist/docs/markdown/plugin-meetings.meeting.default.setendsetupdelay.md +24 -0
  420. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalsharetrack.md +28 -0
  421. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocaltracks.md +28 -0
  422. package/dist/docs/markdown/plugin-meetings.meeting.default.setlocalvideoquality.md +26 -0
  423. package/dist/docs/markdown/plugin-meetings.meeting.default.setmeetingquality.md +31 -0
  424. package/dist/docs/markdown/plugin-meetings.meeting.default.setmercurylistener.md +21 -0
  425. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteall.md +28 -0
  426. package/dist/docs/markdown/plugin-meetings.meeting.default.setmuteonentry.md +26 -0
  427. package/dist/docs/markdown/plugin-meetings.meeting.default.setremotequalitylevel.md +26 -0
  428. package/dist/docs/markdown/plugin-meetings.meeting.default.setsipuri.md +26 -0
  429. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartcallinitiatejoinreq.md +17 -0
  430. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartjoinreqresp.md +17 -0
  431. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartlocalsdpgenremotesdprecvdelay.md +17 -0
  432. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsendingmediadelay.md +24 -0
  433. package/dist/docs/markdown/plugin-meetings.meeting.default.setstartsetupdelay.md +24 -0
  434. package/dist/docs/markdown/plugin-meetings.meeting.default.setupbreakoutslistener.md +19 -0
  435. package/dist/docs/markdown/plugin-meetings.meeting.default.setupmediaconnectionlisteners.md +11 -0
  436. package/dist/docs/markdown/plugin-meetings.meeting.default.setupstatsanalyzereventhandlers.md +13 -0
  437. package/dist/docs/markdown/plugin-meetings.meeting.default.sharescreen.md +32 -0
  438. package/dist/docs/markdown/plugin-meetings.meeting.default.sharestatus.md +11 -0
  439. package/dist/docs/markdown/plugin-meetings.meeting.default.sipuri.md +11 -0
  440. package/dist/docs/markdown/plugin-meetings.meeting.default.startcallinitiatejoinreq.md +11 -0
  441. package/dist/docs/markdown/plugin-meetings.meeting.default.startjoinreqresp.md +11 -0
  442. package/dist/docs/markdown/plugin-meetings.meeting.default.startkeepalive.md +13 -0
  443. package/dist/docs/markdown/plugin-meetings.meeting.default.startlocalsdpgenremotesdprecvdelay.md +11 -0
  444. package/dist/docs/markdown/plugin-meetings.meeting.default.startrecording.md +21 -0
  445. package/dist/docs/markdown/plugin-meetings.meeting.default.startwhiteboardshare.md +29 -0
  446. package/dist/docs/markdown/plugin-meetings.meeting.default.state.md +11 -0
  447. package/dist/docs/markdown/plugin-meetings.meeting.default.statsanalyzer.md +11 -0
  448. package/dist/docs/markdown/plugin-meetings.meeting.default.stopkeepalive.md +13 -0
  449. package/dist/docs/markdown/plugin-meetings.meeting.default.stopreceivingtranscription.md +19 -0
  450. package/dist/docs/markdown/plugin-meetings.meeting.default.stoprecording.md +21 -0
  451. package/dist/docs/markdown/plugin-meetings.meeting.default.stopshare.md +28 -0
  452. package/dist/docs/markdown/plugin-meetings.meeting.default.stopwhiteboardshare.md +28 -0
  453. package/dist/docs/markdown/plugin-meetings.meeting.default.togglereactions.md +28 -0
  454. package/dist/docs/markdown/plugin-meetings.meeting.default.transcription.md +11 -0
  455. package/dist/docs/markdown/plugin-meetings.meeting.default.transfer.md +29 -0
  456. package/dist/docs/markdown/plugin-meetings.meeting.default.type.md +11 -0
  457. package/dist/docs/markdown/plugin-meetings.meeting.default.unlockmeeting.md +21 -0
  458. package/dist/docs/markdown/plugin-meetings.meeting.default.unmuteaudio.md +21 -0
  459. package/dist/docs/markdown/plugin-meetings.meeting.default.unmutevideo.md +21 -0
  460. package/dist/docs/markdown/plugin-meetings.meeting.default.unpublishtracks.md +26 -0
  461. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalsharetrack.md +21 -0
  462. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetlocalvideotrack.md +21 -0
  463. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetpeerconnections.md +21 -0
  464. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotestream.md +26 -0
  465. package/dist/docs/markdown/plugin-meetings.meeting.default.unsetremotetracks.md +19 -0
  466. package/dist/docs/markdown/plugin-meetings.meeting.default.updateaudio.md +34 -0
  467. package/dist/docs/markdown/plugin-meetings.meeting.default.updatellmconnection.md +19 -0
  468. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemedia.md +32 -0
  469. package/dist/docs/markdown/plugin-meetings.meeting.default.updatemediaconnections.md +11 -0
  470. package/dist/docs/markdown/plugin-meetings.meeting.default.updateshare.md +35 -0
  471. package/dist/docs/markdown/plugin-meetings.meeting.default.updatevideo.md +34 -0
  472. package/dist/docs/markdown/plugin-meetings.meeting.default.uploadlogs.md +28 -0
  473. package/dist/docs/markdown/plugin-meetings.meeting.default.usephoneaudio.md +28 -0
  474. package/dist/docs/markdown/plugin-meetings.meeting.default.userid.md +11 -0
  475. package/dist/docs/markdown/plugin-meetings.meeting.default.verifypassword.md +35 -0
  476. package/dist/docs/markdown/plugin-meetings.meeting.default.video.md +11 -0
  477. package/dist/docs/markdown/plugin-meetings.meeting.default.wirelessshare.md +11 -0
  478. package/dist/docs/markdown/plugin-meetings.meeting.md +18 -0
  479. package/dist/docs/markdown/plugin-meetings.meeting.media_update_type.md +17 -0
  480. package/dist/docs/markdown/plugin-meetings.meetings._constructor_.md +22 -0
  481. package/dist/docs/markdown/plugin-meetings.meetings.create.md +30 -0
  482. package/dist/docs/markdown/plugin-meetings.meetings.fetchuserpreferredwebexsite.md +19 -0
  483. package/dist/docs/markdown/plugin-meetings.meetings.geohintinfo.md +11 -0
  484. package/dist/docs/markdown/plugin-meetings.meetings.getallmeetings.md +31 -0
  485. package/dist/docs/markdown/plugin-meetings.meetings.getgeohint.md +19 -0
  486. package/dist/docs/markdown/plugin-meetings.meetings.getlogger.md +19 -0
  487. package/dist/docs/markdown/plugin-meetings.meetings.getmeetingbytype.md +29 -0
  488. package/dist/docs/markdown/plugin-meetings.meetings.getpersonalmeetingroom.md +21 -0
  489. package/dist/docs/markdown/plugin-meetings.meetings.getreachability.md +21 -0
  490. package/dist/docs/markdown/plugin-meetings.meetings.getscheduledmeetings.md +19 -0
  491. package/dist/docs/markdown/plugin-meetings.meetings.loggerrequest.md +11 -0
  492. package/dist/docs/markdown/plugin-meetings.meetings.md +57 -0
  493. package/dist/docs/markdown/plugin-meetings.meetings.media.md +11 -0
  494. package/dist/docs/markdown/plugin-meetings.meetings.meetingcollection.md +11 -0
  495. package/dist/docs/markdown/plugin-meetings.meetings.meetinginfo.md +11 -0
  496. package/dist/docs/markdown/plugin-meetings.meetings.namespace.md +11 -0
  497. package/dist/docs/markdown/plugin-meetings.meetings.personalmeetingroom.md +11 -0
  498. package/dist/docs/markdown/plugin-meetings.meetings.preferredwebexsite.md +11 -0
  499. package/dist/docs/markdown/plugin-meetings.meetings.reachability.md +11 -0
  500. package/dist/docs/markdown/plugin-meetings.meetings.register.md +21 -0
  501. package/dist/docs/markdown/plugin-meetings.meetings.registered.md +11 -0
  502. package/dist/docs/markdown/plugin-meetings.meetings.request.md +11 -0
  503. package/dist/docs/markdown/plugin-meetings.meetings.setreachability.md +21 -0
  504. package/dist/docs/markdown/plugin-meetings.meetings.startreachability.md +21 -0
  505. package/dist/docs/markdown/plugin-meetings.meetings.syncmeetings.md +21 -0
  506. package/dist/docs/markdown/plugin-meetings.meetings.unregister.md +21 -0
  507. package/dist/docs/markdown/plugin-meetings.meetings.uploadlogs.md +34 -0
  508. package/dist/docs/markdown/plugin-meetings.reactions.md +13 -0
  509. package/dist/docs/markdown/plugin-meetings.reactions.reactions.md +11 -0
  510. package/dist/docs/markdown/plugin-meetings.reactions.skintones.md +11 -0
  511. package/dist/docs/markdown/plugin-meetings.remotemedia.getmaxfs.md +26 -0
  512. package/dist/docs/markdown/plugin-meetings.remotemedia.md +31 -0
  513. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia._constructor_.md +22 -0
  514. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.csi.md +13 -0
  515. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.id.md +11 -0
  516. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.md +40 -0
  517. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.mediatype.md +13 -0
  518. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.memberid.md +13 -0
  519. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.setsizehint.md +25 -0
  520. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.sourcestate.md +13 -0
  521. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemedia.stream.md +13 -0
  522. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaevents.md +14 -0
  523. package/dist/docs/markdown/plugin-meetings.remotemedia.remotemediaid.md +11 -0
  524. package/dist/docs/markdown/plugin-meetings.remotemedia.remotevideoresolution.md +11 -0
  525. package/dist/docs/markdown/plugin-meetings.remotemediagroup.md +12 -0
  526. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup._constructor_.md +24 -0
  527. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.getremotemedia.md +26 -0
  528. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.includes.md +27 -0
  529. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.ispinned.md +22 -0
  530. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.md +28 -0
  531. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.pin.md +25 -0
  532. package/dist/docs/markdown/plugin-meetings.remotemediagroup.remotemediagroup.unpin.md +24 -0
  533. package/dist/docs/markdown/plugin-meetings.triggerproxy.md +11 -0
  534. package/dist/docs/metadata/index.api.json +14144 -0
  535. package/dist/docs/metadata/index.api.md +2075 -0
  536. package/dist/docs/metadata/index.d.ts +5594 -0
  537. package/dist/index.d.ts +4 -0
  538. package/dist/index.js +72 -17
  539. package/dist/index.js.map +1 -1
  540. package/dist/locus-info/controlsUtils.d.ts +2 -0
  541. package/dist/locus-info/controlsUtils.js +31 -29
  542. package/dist/locus-info/controlsUtils.js.map +1 -1
  543. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  544. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  545. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  546. package/dist/locus-info/fullState.d.ts +2 -0
  547. package/dist/locus-info/fullState.js +0 -15
  548. package/dist/locus-info/fullState.js.map +1 -1
  549. package/dist/locus-info/hostUtils.d.ts +2 -0
  550. package/dist/locus-info/hostUtils.js +4 -12
  551. package/dist/locus-info/hostUtils.js.map +1 -1
  552. package/dist/locus-info/index.d.ts +269 -0
  553. package/dist/locus-info/index.js +237 -198
  554. package/dist/locus-info/index.js.map +1 -1
  555. package/dist/locus-info/infoUtils.d.ts +2 -0
  556. package/dist/locus-info/infoUtils.js +3 -37
  557. package/dist/locus-info/infoUtils.js.map +1 -1
  558. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  559. package/dist/locus-info/mediaSharesUtils.js +12 -38
  560. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  561. package/dist/locus-info/parser.d.ts +212 -0
  562. package/dist/locus-info/parser.js +92 -118
  563. package/dist/locus-info/parser.js.map +1 -1
  564. package/dist/locus-info/selfUtils.d.ts +2 -0
  565. package/dist/locus-info/selfUtils.js +80 -89
  566. package/dist/locus-info/selfUtils.js.map +1 -1
  567. package/dist/media/index.d.ts +32 -0
  568. package/dist/media/index.js +56 -146
  569. package/dist/media/index.js.map +1 -1
  570. package/dist/media/properties.d.ts +108 -0
  571. package/dist/media/properties.js +83 -117
  572. package/dist/media/properties.js.map +1 -1
  573. package/dist/media/util.d.ts +2 -0
  574. package/dist/media/util.js +2 -9
  575. package/dist/media/util.js.map +1 -1
  576. package/dist/mediaQualityMetrics/config.d.ts +233 -0
  577. package/dist/mediaQualityMetrics/config.js +505 -495
  578. package/dist/mediaQualityMetrics/config.js.map +1 -1
  579. package/dist/meeting/effectsState.d.ts +42 -0
  580. package/dist/meeting/effectsState.js +123 -190
  581. package/dist/meeting/effectsState.js.map +1 -1
  582. package/dist/meeting/in-meeting-actions.d.ts +79 -0
  583. package/dist/meeting/in-meeting-actions.js +31 -14
  584. package/dist/meeting/in-meeting-actions.js.map +1 -1
  585. package/dist/meeting/index.d.ts +1621 -0
  586. package/dist/meeting/index.js +2281 -2249
  587. package/dist/meeting/index.js.map +1 -1
  588. package/dist/meeting/muteState.d.ts +116 -0
  589. package/dist/meeting/muteState.js +257 -112
  590. package/dist/meeting/muteState.js.map +1 -1
  591. package/dist/meeting/request.d.ts +255 -0
  592. package/dist/meeting/request.js +308 -264
  593. package/dist/meeting/request.js.map +1 -1
  594. package/dist/meeting/request.type.js +7 -0
  595. package/dist/meeting/request.type.js.map +1 -0
  596. package/dist/meeting/state.d.ts +9 -0
  597. package/dist/meeting/state.js +21 -31
  598. package/dist/meeting/state.js.map +1 -1
  599. package/dist/meeting/util.d.ts +2 -0
  600. package/dist/meeting/util.js +63 -217
  601. package/dist/meeting/util.js.map +1 -1
  602. package/dist/meeting-info/collection.d.ts +20 -0
  603. package/dist/meeting-info/collection.js +6 -25
  604. package/dist/meeting-info/collection.js.map +1 -1
  605. package/dist/meeting-info/index.d.ts +57 -0
  606. package/dist/meeting-info/index.js +14 -32
  607. package/dist/meeting-info/index.js.map +1 -1
  608. package/dist/meeting-info/meeting-info-v2.d.ts +93 -0
  609. package/dist/meeting-info/meeting-info-v2.js +193 -268
  610. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  611. package/dist/meeting-info/request.d.ts +22 -0
  612. package/dist/meeting-info/request.js +3 -15
  613. package/dist/meeting-info/request.js.map +1 -1
  614. package/dist/meeting-info/util.d.ts +2 -0
  615. package/dist/meeting-info/util.js +98 -183
  616. package/dist/meeting-info/util.js.map +1 -1
  617. package/dist/meeting-info/utilv2.d.ts +2 -0
  618. package/dist/meeting-info/utilv2.js +137 -228
  619. package/dist/meeting-info/utilv2.js.map +1 -1
  620. package/dist/meetings/collection.d.ts +23 -0
  621. package/dist/meetings/collection.js +26 -19
  622. package/dist/meetings/collection.js.map +1 -1
  623. package/dist/meetings/index.d.ts +297 -0
  624. package/dist/meetings/index.js +583 -552
  625. package/dist/meetings/index.js.map +1 -1
  626. package/dist/meetings/request.d.ts +27 -0
  627. package/dist/meetings/request.js +26 -41
  628. package/dist/meetings/request.js.map +1 -1
  629. package/dist/meetings/util.d.ts +18 -0
  630. package/dist/meetings/util.js +151 -155
  631. package/dist/meetings/util.js.map +1 -1
  632. package/dist/member/index.d.ts +145 -0
  633. package/dist/member/index.js +100 -85
  634. package/dist/member/index.js.map +1 -1
  635. package/dist/member/types.js +15 -0
  636. package/dist/member/types.js.map +1 -0
  637. package/dist/member/util.d.ts +2 -0
  638. package/dist/member/util.js +90 -68
  639. package/dist/member/util.js.map +1 -1
  640. package/dist/members/collection.d.ts +24 -0
  641. package/dist/members/collection.js +13 -12
  642. package/dist/members/collection.js.map +1 -1
  643. package/dist/members/index.d.ts +298 -0
  644. package/dist/members/index.js +152 -204
  645. package/dist/members/index.js.map +1 -1
  646. package/dist/members/request.d.ts +50 -0
  647. package/dist/members/request.js +35 -39
  648. package/dist/members/request.js.map +1 -1
  649. package/dist/members/types.js +15 -0
  650. package/dist/members/types.js.map +1 -0
  651. package/dist/members/util.d.ts +2 -0
  652. package/dist/members/util.js +76 -46
  653. package/dist/members/util.js.map +1 -1
  654. package/dist/metrics/config.d.ts +169 -0
  655. package/dist/metrics/config.js +4 -14
  656. package/dist/metrics/config.js.map +1 -1
  657. package/dist/metrics/constants.d.ts +57 -0
  658. package/dist/metrics/constants.js +1 -6
  659. package/dist/metrics/constants.js.map +1 -1
  660. package/dist/metrics/index.d.ts +152 -0
  661. package/dist/metrics/index.js +59 -156
  662. package/dist/metrics/index.js.map +1 -1
  663. package/dist/multistream/mediaRequestManager.js +116 -52
  664. package/dist/multistream/mediaRequestManager.js.map +1 -1
  665. package/dist/multistream/receiveSlot.js +58 -65
  666. package/dist/multistream/receiveSlot.js.map +1 -1
  667. package/dist/multistream/receiveSlotManager.js +58 -93
  668. package/dist/multistream/receiveSlotManager.js.map +1 -1
  669. package/dist/multistream/remoteMedia.js +55 -74
  670. package/dist/multistream/remoteMedia.js.map +1 -1
  671. package/dist/multistream/remoteMediaGroup.js +6 -40
  672. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  673. package/dist/multistream/remoteMediaManager.js +466 -442
  674. package/dist/multistream/remoteMediaManager.js.map +1 -1
  675. package/dist/networkQualityMonitor/index.d.ts +70 -0
  676. package/dist/networkQualityMonitor/index.js +40 -59
  677. package/dist/networkQualityMonitor/index.js.map +1 -1
  678. package/dist/peer-connection-manager/index.d.ts +6 -0
  679. package/dist/peer-connection-manager/index.js +671 -0
  680. package/dist/peer-connection-manager/index.js.map +1 -0
  681. package/dist/peer-connection-manager/util.d.ts +6 -0
  682. package/dist/peer-connection-manager/util.js +110 -0
  683. package/dist/peer-connection-manager/util.js.map +1 -0
  684. package/dist/personal-meeting-room/index.d.ts +47 -0
  685. package/dist/personal-meeting-room/index.js +21 -45
  686. package/dist/personal-meeting-room/index.js.map +1 -1
  687. package/dist/personal-meeting-room/request.d.ts +14 -0
  688. package/dist/personal-meeting-room/request.js +1 -31
  689. package/dist/personal-meeting-room/request.js.map +1 -1
  690. package/dist/personal-meeting-room/util.d.ts +2 -0
  691. package/dist/personal-meeting-room/util.js +0 -13
  692. package/dist/personal-meeting-room/util.js.map +1 -1
  693. package/dist/plugin-meetings.d.ts +5399 -0
  694. package/dist/reachability/index.d.ts +139 -0
  695. package/dist/reachability/index.js +192 -191
  696. package/dist/reachability/index.js.map +1 -1
  697. package/dist/reachability/request.d.ts +35 -0
  698. package/dist/reachability/request.js +15 -23
  699. package/dist/reachability/request.js.map +1 -1
  700. package/dist/reactions/constants.js +13 -0
  701. package/dist/reactions/constants.js.map +1 -0
  702. package/dist/reactions/reactions.d.ts +4 -0
  703. package/dist/reactions/reactions.js +109 -0
  704. package/dist/reactions/reactions.js.map +1 -0
  705. package/dist/reactions/reactions.type.d.ts +32 -0
  706. package/dist/reactions/reactions.type.js +36 -0
  707. package/dist/reactions/reactions.type.js.map +1 -0
  708. package/dist/reconnection-manager/index.d.ts +112 -0
  709. package/dist/reconnection-manager/index.js +342 -460
  710. package/dist/reconnection-manager/index.js.map +1 -1
  711. package/dist/recording-controller/enums.d.ts +7 -0
  712. package/dist/recording-controller/enums.js +17 -0
  713. package/dist/recording-controller/enums.js.map +1 -0
  714. package/dist/recording-controller/index.d.ts +193 -0
  715. package/dist/recording-controller/index.js +343 -0
  716. package/dist/recording-controller/index.js.map +1 -0
  717. package/dist/recording-controller/util.d.ts +13 -0
  718. package/dist/recording-controller/util.js +63 -0
  719. package/dist/recording-controller/util.js.map +1 -0
  720. package/dist/roap/collection.d.ts +10 -0
  721. package/dist/roap/collection.js +63 -0
  722. package/dist/roap/collection.js.map +1 -0
  723. package/dist/roap/handler.d.ts +47 -0
  724. package/dist/roap/handler.js +279 -0
  725. package/dist/roap/handler.js.map +1 -0
  726. package/dist/roap/index.d.ts +116 -0
  727. package/dist/roap/index.js +48 -70
  728. package/dist/roap/index.js.map +1 -1
  729. package/dist/roap/request.d.ts +35 -0
  730. package/dist/roap/request.js +143 -131
  731. package/dist/roap/request.js.map +1 -1
  732. package/dist/roap/state.d.ts +9 -0
  733. package/dist/roap/state.js +127 -0
  734. package/dist/roap/state.js.map +1 -0
  735. package/dist/roap/turnDiscovery.d.ts +67 -0
  736. package/dist/roap/turnDiscovery.js +91 -98
  737. package/dist/roap/turnDiscovery.js.map +1 -1
  738. package/dist/roap/util.d.ts +2 -0
  739. package/dist/roap/util.js +76 -0
  740. package/dist/roap/util.js.map +1 -0
  741. package/dist/statsAnalyzer/global.d.ts +126 -0
  742. package/dist/statsAnalyzer/global.js +1 -95
  743. package/dist/statsAnalyzer/global.js.map +1 -1
  744. package/dist/statsAnalyzer/index.d.ts +190 -0
  745. package/dist/statsAnalyzer/index.js +372 -455
  746. package/dist/statsAnalyzer/index.js.map +1 -1
  747. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
  748. package/dist/statsAnalyzer/mqaUtil.js +143 -87
  749. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  750. package/dist/transcription/index.d.ts +64 -0
  751. package/dist/transcription/index.js +22 -47
  752. package/dist/transcription/index.js.map +1 -1
  753. package/dist/types/breakouts/breakout.d.ts +8 -0
  754. package/dist/types/breakouts/collection.d.ts +5 -0
  755. package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
  756. package/dist/types/breakouts/index.d.ts +5 -0
  757. package/dist/types/breakouts/request.d.ts +22 -0
  758. package/dist/types/breakouts/utils.d.ts +8 -0
  759. package/dist/types/common/browser-detection.d.ts +9 -0
  760. package/dist/types/common/collection.d.ts +48 -0
  761. package/dist/types/common/config.d.ts +2 -0
  762. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  763. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  764. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  765. package/dist/types/common/errors/media.d.ts +15 -0
  766. package/dist/types/common/errors/parameter.d.ts +15 -0
  767. package/dist/types/common/errors/password-error.d.ts +15 -0
  768. package/dist/types/common/errors/permission.d.ts +14 -0
  769. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  770. package/dist/types/common/errors/reconnection.d.ts +15 -0
  771. package/dist/types/common/errors/stats.d.ts +15 -0
  772. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  773. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  774. package/dist/types/common/events/events-scope.d.ts +17 -0
  775. package/dist/types/common/events/events.d.ts +12 -0
  776. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  777. package/dist/types/common/events/util.d.ts +2 -0
  778. package/dist/types/common/logs/logger-config.d.ts +2 -0
  779. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  780. package/dist/types/common/logs/request.d.ts +34 -0
  781. package/dist/types/common/queue.d.ts +32 -0
  782. package/dist/types/config.d.ts +77 -0
  783. package/dist/types/constants.d.ts +944 -0
  784. package/dist/types/controls-options-manager/constants.d.ts +4 -0
  785. package/dist/types/controls-options-manager/enums.d.ts +6 -0
  786. package/dist/types/controls-options-manager/index.d.ts +128 -0
  787. package/dist/types/controls-options-manager/util.d.ts +9 -0
  788. package/dist/types/index.d.ts +7 -0
  789. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  790. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  791. package/dist/types/locus-info/fullState.d.ts +2 -0
  792. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  793. package/dist/types/locus-info/index.d.ts +276 -0
  794. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  795. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  796. package/dist/types/locus-info/parser.d.ts +212 -0
  797. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  798. package/dist/types/media/index.d.ts +32 -0
  799. package/dist/types/media/properties.d.ts +108 -0
  800. package/dist/types/media/util.d.ts +2 -0
  801. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  802. package/dist/types/meeting/effectsState.d.ts +42 -0
  803. package/dist/types/meeting/in-meeting-actions.d.ts +101 -0
  804. package/dist/types/meeting/index.d.ts +1723 -0
  805. package/dist/types/meeting/muteState.d.ts +185 -0
  806. package/dist/types/meeting/request.d.ts +271 -0
  807. package/dist/types/meeting/request.type.d.ts +11 -0
  808. package/dist/types/meeting/state.d.ts +9 -0
  809. package/dist/types/meeting/util.d.ts +2 -0
  810. package/dist/types/meeting-info/collection.d.ts +20 -0
  811. package/dist/types/meeting-info/index.d.ts +57 -0
  812. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  813. package/dist/types/meeting-info/request.d.ts +22 -0
  814. package/dist/types/meeting-info/util.d.ts +2 -0
  815. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  816. package/dist/types/meetings/collection.d.ts +31 -0
  817. package/dist/types/meetings/index.d.ts +316 -0
  818. package/dist/types/meetings/request.d.ts +27 -0
  819. package/dist/types/meetings/util.d.ts +18 -0
  820. package/dist/types/member/index.d.ts +156 -0
  821. package/dist/types/member/types.d.ts +21 -0
  822. package/dist/types/member/util.d.ts +2 -0
  823. package/dist/types/members/collection.d.ts +29 -0
  824. package/dist/types/members/index.d.ts +343 -0
  825. package/dist/types/members/request.d.ts +58 -0
  826. package/dist/types/members/types.d.ts +24 -0
  827. package/dist/types/members/util.d.ts +2 -0
  828. package/dist/types/metrics/config.d.ts +171 -0
  829. package/dist/types/metrics/constants.d.ts +53 -0
  830. package/dist/types/metrics/index.d.ts +152 -0
  831. package/dist/types/multistream/mediaRequestManager.d.ts +68 -0
  832. package/dist/types/multistream/receiveSlot.d.ts +68 -0
  833. package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
  834. package/dist/types/multistream/remoteMedia.d.ts +72 -0
  835. package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
  836. package/dist/types/multistream/remoteMediaManager.d.ts +263 -0
  837. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  838. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  839. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  840. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  841. package/dist/types/reachability/index.d.ts +152 -0
  842. package/dist/types/reachability/request.d.ts +37 -0
  843. package/dist/types/reactions/constants.d.ts +3 -0
  844. package/dist/types/reactions/reactions.d.ts +4 -0
  845. package/dist/types/reactions/reactions.type.d.ts +52 -0
  846. package/dist/types/reconnection-manager/index.d.ts +126 -0
  847. package/dist/types/recording-controller/enums.d.ts +7 -0
  848. package/dist/types/recording-controller/index.d.ts +193 -0
  849. package/dist/types/recording-controller/util.d.ts +13 -0
  850. package/dist/types/roap/index.d.ts +77 -0
  851. package/dist/types/roap/request.d.ts +38 -0
  852. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  853. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  854. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  855. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  856. package/dist/types/transcription/index.d.ts +64 -0
  857. package/dist/types/tsdoc-metadata.json +11 -0
  858. package/internal-README.md +7 -6
  859. package/package.json +28 -20
  860. package/src/breakouts/README.md +219 -0
  861. package/src/breakouts/breakout.ts +153 -0
  862. package/src/breakouts/collection.ts +19 -0
  863. package/src/breakouts/edit-lock-error.ts +25 -0
  864. package/src/breakouts/index.ts +745 -0
  865. package/src/breakouts/request.ts +55 -0
  866. package/src/breakouts/utils.ts +44 -0
  867. package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
  868. package/src/common/collection.ts +9 -7
  869. package/src/common/{config.js → config.ts} +1 -1
  870. package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
  871. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
  872. package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
  873. package/src/common/errors/{media.js → media.ts} +11 -7
  874. package/src/common/errors/parameter.ts +11 -7
  875. package/src/common/errors/{password-error.js → password-error.ts} +11 -7
  876. package/src/common/errors/{permission.js → permission.ts} +10 -6
  877. package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
  878. package/src/common/errors/{stats.js → stats.ts} +11 -7
  879. package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
  880. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
  881. package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
  882. package/src/common/events/{events.js → events.ts} +5 -1
  883. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
  884. package/src/common/events/{util.js → util.ts} +2 -3
  885. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  886. package/src/common/logs/logger-proxy.ts +44 -0
  887. package/src/common/logs/{request.js → request.ts} +22 -9
  888. package/src/common/queue.ts +1 -2
  889. package/src/{config.js → config.ts} +17 -12
  890. package/src/constants.ts +92 -5
  891. package/src/controls-options-manager/constants.ts +5 -0
  892. package/src/controls-options-manager/enums.ts +7 -0
  893. package/src/controls-options-manager/index.ts +240 -0
  894. package/src/controls-options-manager/util.ts +30 -0
  895. package/src/index.ts +33 -0
  896. package/src/locus-info/controlsUtils.ts +141 -0
  897. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  898. package/src/locus-info/{fullState.js → fullState.ts} +16 -12
  899. package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
  900. package/src/locus-info/{index.js → index.ts} +211 -71
  901. package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
  902. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
  903. package/src/locus-info/{parser.js → parser.ts} +67 -79
  904. package/src/locus-info/{selfUtils.js → selfUtils.ts} +183 -67
  905. package/src/media/{index.js → index.ts} +174 -176
  906. package/src/media/{properties.js → properties.ts} +56 -37
  907. package/src/media/{util.js → util.ts} +2 -2
  908. package/src/mediaQualityMetrics/config.ts +384 -0
  909. package/src/meeting/in-meeting-actions.ts +67 -3
  910. package/src/meeting/{index.js → index.ts} +2660 -1603
  911. package/src/meeting/muteState.ts +526 -0
  912. package/src/meeting/{request.js → request.ts} +326 -142
  913. package/src/meeting/request.type.ts +13 -0
  914. package/src/meeting/{state.js → state.ts} +50 -35
  915. package/src/meeting/{util.js → util.ts} +131 -115
  916. package/src/meeting-info/{collection.js → collection.ts} +6 -2
  917. package/src/meeting-info/{index.js → index.ts} +42 -36
  918. package/src/meeting-info/meeting-info-v2.ts +273 -0
  919. package/src/meeting-info/{request.js → request.ts} +14 -4
  920. package/src/meeting-info/{util.js → util.ts} +60 -51
  921. package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
  922. package/src/meetings/{collection.js → collection.ts} +26 -3
  923. package/src/meetings/index.ts +1289 -0
  924. package/src/meetings/{request.js → request.ts} +34 -25
  925. package/src/meetings/{util.js → util.ts} +99 -33
  926. package/src/member/{index.js → index.ts} +124 -56
  927. package/src/member/types.ts +24 -0
  928. package/src/member/{util.js → util.ts} +105 -25
  929. package/src/members/{collection.js → collection.ts} +10 -2
  930. package/src/members/{index.js → index.ts} +281 -144
  931. package/src/members/{request.js → request.ts} +80 -16
  932. package/src/members/types.ts +28 -0
  933. package/src/members/{util.js → util.ts} +108 -55
  934. package/src/metrics/{config.js → config.ts} +255 -92
  935. package/src/metrics/{constants.js → constants.ts} +0 -6
  936. package/src/metrics/{index.js → index.ts} +110 -94
  937. package/src/multistream/mediaRequestManager.ts +144 -40
  938. package/src/multistream/receiveSlot.ts +69 -26
  939. package/src/multistream/receiveSlotManager.ts +50 -38
  940. package/src/multistream/remoteMedia.ts +30 -4
  941. package/src/multistream/remoteMediaGroup.ts +4 -3
  942. package/src/multistream/remoteMediaManager.ts +230 -66
  943. package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
  944. package/src/personal-meeting-room/{index.js → index.ts} +28 -19
  945. package/src/personal-meeting-room/{request.js → request.ts} +13 -4
  946. package/src/personal-meeting-room/{util.js → util.ts} +4 -4
  947. package/src/reachability/{index.js → index.ts} +157 -94
  948. package/src/reachability/request.ts +46 -35
  949. package/src/reactions/constants.ts +4 -0
  950. package/src/reactions/reactions.ts +104 -0
  951. package/src/reactions/reactions.type.ts +62 -0
  952. package/src/reconnection-manager/{index.js → index.ts} +228 -120
  953. package/src/recording-controller/enums.ts +8 -0
  954. package/src/recording-controller/index.ts +315 -0
  955. package/src/recording-controller/util.ts +58 -0
  956. package/src/roap/{index.js → index.ts} +77 -60
  957. package/src/roap/request.ts +172 -0
  958. package/src/roap/turnDiscovery.ts +81 -41
  959. package/src/statsAnalyzer/global.ts +37 -0
  960. package/src/statsAnalyzer/index.ts +1242 -0
  961. package/src/statsAnalyzer/mqaUtil.ts +291 -0
  962. package/src/transcription/{index.js → index.ts} +46 -39
  963. package/test/integration/spec/converged-space-meetings.js +176 -0
  964. package/test/integration/spec/journey.js +665 -464
  965. package/test/integration/spec/space-meeting.js +320 -206
  966. package/test/integration/spec/transcription.js +7 -8
  967. package/test/unit/spec/breakouts/breakout.ts +178 -0
  968. package/test/unit/spec/breakouts/collection.ts +15 -0
  969. package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
  970. package/test/unit/spec/breakouts/index.ts +1252 -0
  971. package/test/unit/spec/breakouts/request.ts +104 -0
  972. package/test/unit/spec/breakouts/utils.js +54 -0
  973. package/test/unit/spec/common/browser-detection.js +9 -28
  974. package/test/unit/spec/controls-options-manager/index.js +204 -0
  975. package/test/unit/spec/controls-options-manager/util.js +86 -0
  976. package/test/unit/spec/fixture/locus.js +92 -90
  977. package/test/unit/spec/locus-info/controlsUtils.js +133 -34
  978. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  979. package/test/unit/spec/locus-info/index.js +303 -2
  980. package/test/unit/spec/locus-info/infoUtils.js +41 -32
  981. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  982. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  983. package/test/unit/spec/locus-info/parser.js +3 -9
  984. package/test/unit/spec/locus-info/selfConstant.js +101 -103
  985. package/test/unit/spec/locus-info/selfUtils.js +165 -12
  986. package/test/unit/spec/media/index.ts +72 -8
  987. package/test/unit/spec/media/properties.ts +9 -9
  988. package/test/unit/spec/meeting/in-meeting-actions.ts +29 -2
  989. package/test/unit/spec/meeting/index.js +2499 -802
  990. package/test/unit/spec/meeting/muteState.js +164 -70
  991. package/test/unit/spec/meeting/request.js +141 -43
  992. package/test/unit/spec/meeting/utils.js +135 -164
  993. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  994. package/test/unit/spec/meeting-info/request.js +7 -9
  995. package/test/unit/spec/meeting-info/util.js +11 -12
  996. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  997. package/test/unit/spec/meetings/collection.js +15 -1
  998. package/test/unit/spec/meetings/index.js +622 -263
  999. package/test/unit/spec/meetings/utils.js +65 -14
  1000. package/test/unit/spec/member/index.js +24 -1
  1001. package/test/unit/spec/member/util.js +359 -32
  1002. package/test/unit/spec/members/index.js +294 -54
  1003. package/test/unit/spec/members/request.js +50 -20
  1004. package/test/unit/spec/members/utils.js +147 -4
  1005. package/test/unit/spec/metrics/index.js +16 -21
  1006. package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
  1007. package/test/unit/spec/multistream/receiveSlot.ts +76 -17
  1008. package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
  1009. package/test/unit/spec/multistream/remoteMedia.ts +32 -2
  1010. package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
  1011. package/test/unit/spec/multistream/remoteMediaManager.ts +549 -65
  1012. package/test/unit/spec/networkQualityMonitor/index.js +24 -18
  1013. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  1014. package/test/unit/spec/reachability/index.ts +176 -27
  1015. package/test/unit/spec/reachability/request.js +66 -0
  1016. package/test/unit/spec/reconnection-manager/index.js +58 -30
  1017. package/test/unit/spec/recording-controller/index.js +231 -0
  1018. package/test/unit/spec/recording-controller/util.js +102 -0
  1019. package/test/unit/spec/roap/index.ts +12 -8
  1020. package/test/unit/spec/roap/request.ts +217 -0
  1021. package/test/unit/spec/roap/turnDiscovery.ts +72 -49
  1022. package/test/unit/spec/stats-analyzer/index.js +108 -57
  1023. package/test/utils/cmr.js +44 -42
  1024. package/test/utils/constants.js +9 -0
  1025. package/test/utils/testUtils.js +98 -77
  1026. package/test/utils/webex-config.js +22 -18
  1027. package/test/utils/webex-test-users.js +57 -50
  1028. package/tsconfig.json +6 -0
  1029. package/dist/media/internal-media-core-wrapper.js +0 -22
  1030. package/dist/media/internal-media-core-wrapper.js.map +0 -1
  1031. package/dist/multistream/multistreamMedia.js +0 -116
  1032. package/dist/multistream/multistreamMedia.js.map +0 -1
  1033. package/src/common/logs/logger-proxy.js +0 -33
  1034. package/src/index.js +0 -15
  1035. package/src/locus-info/controlsUtils.js +0 -102
  1036. package/src/media/internal-media-core-wrapper.ts +0 -9
  1037. package/src/mediaQualityMetrics/config.js +0 -382
  1038. package/src/meeting/effectsState.js +0 -205
  1039. package/src/meeting/muteState.js +0 -318
  1040. package/src/meeting-info/meeting-info-v2.js +0 -255
  1041. package/src/meetings/index.js +0 -1015
  1042. package/src/multistream/multistreamMedia.ts +0 -92
  1043. package/src/roap/request.js +0 -127
  1044. package/src/statsAnalyzer/global.js +0 -133
  1045. package/src/statsAnalyzer/index.js +0 -1006
  1046. package/src/statsAnalyzer/mqaUtil.js +0 -173
  1047. package/test/unit/spec/meeting/effectsState.js +0 -291
  1048. /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
@@ -0,0 +1,1289 @@
1
+ /* eslint no-shadow: ["error", { "allow": ["eventType"] }] */
2
+
3
+ import '@webex/internal-plugin-mercury';
4
+ import '@webex/internal-plugin-conversation';
5
+ // @ts-ignore
6
+ import {WebexPlugin} from '@webex/webex-core';
7
+ import {setLogger} from '@webex/internal-media-core';
8
+
9
+ import * as mediaHelpersModule from '@webex/media-helpers';
10
+
11
+ import 'webrtc-adapter';
12
+
13
+ import Metrics from '../metrics';
14
+ import {trigger, eventType} from '../metrics/config';
15
+ import LoggerConfig from '../common/logs/logger-config';
16
+ import StaticConfig from '../common/config';
17
+ import LoggerProxy from '../common/logs/logger-proxy';
18
+ import LoggerRequest from '../common/logs/request';
19
+ import Trigger from '../common/events/trigger-proxy';
20
+ import Media from '../media';
21
+ import MeetingUtil from '../meeting/util';
22
+ import {
23
+ MEETINGS,
24
+ EVENTS,
25
+ EVENT_TRIGGERS,
26
+ READY,
27
+ LOCUSEVENT,
28
+ LOCUS_URL,
29
+ MAX_RANDOM_DELAY_FOR_MEETING_INFO,
30
+ ROAP,
31
+ ONLINE,
32
+ OFFLINE,
33
+ _MEETING_,
34
+ _JOIN_,
35
+ _LOCUS_ID_,
36
+ _INCOMING_,
37
+ LOCUS,
38
+ CORRELATION_ID,
39
+ SIP_URI,
40
+ _LEFT_,
41
+ _ID_,
42
+ MEETING_REMOVED_REASON,
43
+ _CONVERSATION_URL_,
44
+ CONVERSATION_URL,
45
+ MEETINGNUMBER,
46
+ BREAKOUTS,
47
+ _JOINED_,
48
+ _MOVED_,
49
+ } from '../constants';
50
+ import BEHAVIORAL_METRICS from '../metrics/constants';
51
+ import MeetingInfo from '../meeting-info';
52
+ import MeetingInfoV2 from '../meeting-info/meeting-info-v2';
53
+ import Meeting from '../meeting';
54
+ import PersonalMeetingRoom from '../personal-meeting-room';
55
+ import Reachability from '../reachability';
56
+ import Request from './request';
57
+ import PasswordError from '../common/errors/password-error';
58
+ import CaptchaError from '../common/errors/captcha-error';
59
+
60
+ import MeetingCollection from './collection';
61
+ import MeetingsUtil from './util';
62
+
63
+ let mediaLogger;
64
+
65
+ class MediaLogger {
66
+ info(...args) {
67
+ LoggerProxy.logger.info(...args);
68
+ }
69
+
70
+ log(...args) {
71
+ LoggerProxy.logger.log(...args);
72
+ }
73
+
74
+ error(...args) {
75
+ LoggerProxy.logger.error(...args);
76
+ }
77
+
78
+ warn(...args) {
79
+ LoggerProxy.logger.warn(...args);
80
+ }
81
+
82
+ trace(...args) {
83
+ LoggerProxy.logger.trace(...args);
84
+ }
85
+
86
+ debug(...args) {
87
+ LoggerProxy.logger.debug(...args);
88
+ }
89
+ }
90
+ /**
91
+ * Meetings Ready Event
92
+ * Emitted when the meetings instance on webex is ready
93
+ * @event meetings:ready
94
+ * @instance
95
+ * @memberof Meetings
96
+ */
97
+
98
+ /**
99
+ * Meetings Network Disconnected Event
100
+ * Emitted when the meetings instance is disconnected from
101
+ * the internal mercury server
102
+ * @event network:disconnected
103
+ * @instance
104
+ * @memberof Meetings
105
+ */
106
+
107
+ /**
108
+ * Meetings Registered Event
109
+ * Emitted when the meetings instance has been registered and listening
110
+ * @event meetings:registered
111
+ * @instance
112
+ * @memberof Meetings
113
+ */
114
+
115
+ /**
116
+ * Meeting Removed Event
117
+ * Emitted when a meeting was removed from the cache of meetings
118
+ * @event meeting:removed
119
+ * @instance
120
+ * @type {Object}
121
+ * @property {String} meetingId the removed meeting
122
+ * @property {Object} response the server response
123
+ * @property {String} type what type of meeting it was
124
+ * @memberof Meetings
125
+ */
126
+
127
+ /**
128
+ * Meeting Added Event
129
+ * Emitted when a meeting was added to the cache of meetings
130
+ * @event meeting:added
131
+ * @instance
132
+ * @type {Object}
133
+ * @property {String} meetingId the added meeting
134
+ * @property {String} type what type of meeting it was
135
+ * @memberof Meetings
136
+ */
137
+
138
+ /**
139
+ * Maintain a cache of meetings and sync with services.
140
+ * @class
141
+ */
142
+ export default class Meetings extends WebexPlugin {
143
+ loggerRequest: any;
144
+ media: any;
145
+ meetingCollection: any;
146
+ personalMeetingRoom: any;
147
+ preferredWebexSite: any;
148
+ reachability: any;
149
+ registered: any;
150
+ request: any;
151
+ geoHintInfo: any;
152
+ meetingInfo: any;
153
+ mediaHelpers: any;
154
+
155
+ namespace = MEETINGS;
156
+
157
+ /**
158
+ * Initializes the Meetings Plugin
159
+ * @constructor
160
+ * @public
161
+ * @memberof Meetings
162
+ */
163
+ constructor(...args) {
164
+ super(...args);
165
+
166
+ /**
167
+ * The webrtc-core media helpers. This is a temporary solution required for the SDK sample app
168
+ * to be able to call media helper functions.
169
+ *
170
+ * @instance
171
+ * @type {Object}
172
+ * @private
173
+ * @memberof Meetings
174
+ */
175
+ this.mediaHelpers = mediaHelpersModule;
176
+
177
+ /**
178
+ * The Meetings request to interact with server
179
+ * @instance
180
+ * @type {Object}
181
+ * @private
182
+ * @memberof Meetings
183
+ */
184
+ // @ts-ignore
185
+ this.request = new Request({}, {parent: this.webex});
186
+ /**
187
+ * Log upload request helper
188
+ * @instance
189
+ * @type {Object}
190
+ * @private
191
+ * @memberof Meetings
192
+ */
193
+ // @ts-ignore
194
+ this.loggerRequest = new LoggerRequest({webex: this.webex});
195
+ this.meetingCollection = new MeetingCollection();
196
+ /**
197
+ * The PersonalMeetingRoom object to interact with server
198
+ * @instance
199
+ * @type {Object}
200
+ * @public
201
+ * @memberof Meetings
202
+ */
203
+ this.personalMeetingRoom = null;
204
+ /**
205
+ * The Reachability object to interact with server, starts as null until {@link Meeting#setReachability} is called
206
+ * starts as null
207
+ * @instance
208
+ * @type {Object}
209
+ * @private
210
+ * @memberof Meetings
211
+ */
212
+ this.reachability = null;
213
+
214
+ /**
215
+ * If the meetings plugin has been registered and listening via {@link Meetings#register}
216
+ * @instance
217
+ * @type {Boolean}
218
+ * @public
219
+ * @memberof Meetings
220
+ */
221
+ this.registered = false;
222
+
223
+ /**
224
+ * This values indicates the preferred webex site the user will start there meeting, getsits value from {@link Meetings#register}
225
+ * @instance
226
+ * @type {String}
227
+ * @private
228
+ * @memberof Meetings
229
+ */
230
+ this.preferredWebexSite = '';
231
+
232
+ /**
233
+ * The public interface for the internal Media util files. These are helpful to expose outside the context
234
+ * of a meeting so that a user can access media without creating a meeting instance.
235
+ * @instance
236
+ * @type {Object}
237
+ * @private
238
+ * @memberof Meetings
239
+ */
240
+ this.media = {
241
+ getUserMedia: Media.getUserMedia,
242
+ getSupportedDevice: Media.getSupportedDevice,
243
+ };
244
+
245
+ this.onReady();
246
+ }
247
+
248
+ /**
249
+ * check whether you need to handle this main session's locus data or not
250
+ * @param {Object} meeting current meeting data
251
+ * @param {Object} newLocus new locus data
252
+ * @returns {boolean}
253
+ * @private
254
+ * @memberof Meetings
255
+ */
256
+ private isNeedHandleMainLocus(meeting: any, newLocus: any) {
257
+ const breakoutUrl = newLocus.controls?.breakout?.url;
258
+ const breakoutLocus = this.meetingCollection.getActiveBreakoutLocus(breakoutUrl);
259
+
260
+ const isSelfJoined = newLocus?.self?.state === _JOINED_;
261
+ const isSelfMoved = newLocus?.self?.state === _LEFT_ && newLocus?.self?.reason === _MOVED_;
262
+ const deviceFromNewLocus = MeetingsUtil.getThisDevice(newLocus);
263
+ const isNewLocusJoinThisDevice = MeetingsUtil.joinedOnThisDevice(meeting, newLocus);
264
+ const isBreakoutLocusJoinThisDevice =
265
+ breakoutLocus?.joinedWith?.correlationId &&
266
+ breakoutLocus.joinedWith.correlationId === meeting?.correlationId;
267
+
268
+ if (isSelfJoined && isNewLocusJoinThisDevice) {
269
+ LoggerProxy.logger.log(
270
+ 'Meetings:index#isNeedHandleMainLocus --> self this device shown as JOINED in the main session'
271
+ );
272
+ if (breakoutLocus?.joinedWith && deviceFromNewLocus) {
273
+ const breakoutReplaceAt =
274
+ breakoutLocus.joinedWith.replaces?.length > 0
275
+ ? breakoutLocus.joinedWith.replaces[0].replaceAt
276
+ : '';
277
+ const newLocusReplaceAt =
278
+ deviceFromNewLocus.replaces?.length > 0 ? deviceFromNewLocus.replaces[0].replaceAt : '';
279
+ if (breakoutReplaceAt && newLocusReplaceAt && breakoutReplaceAt > newLocusReplaceAt) {
280
+ LoggerProxy.logger.log(
281
+ `Meetings:index#isNeedHandleMainLocus --> this is expired main joined status locus_dto replacedAt ${newLocusReplaceAt} bo replacedAt ${breakoutReplaceAt}`
282
+ );
283
+
284
+ return false;
285
+ }
286
+ }
287
+
288
+ return true;
289
+ }
290
+ if (isBreakoutLocusJoinThisDevice) {
291
+ LoggerProxy.logger.log(
292
+ `Meetings:index#isNeedHandleMainLocus --> there is active breakout session and joined on this device, and don't need to handle main session: ${breakoutUrl}`
293
+ );
294
+
295
+ return false;
296
+ }
297
+ if (isSelfMoved && newLocus?.self?.removed) {
298
+ LoggerProxy.logger.log(
299
+ 'Meetings:index#isNeedHandleMainLocus --> self moved main locus with self removed status, not need to handle'
300
+ );
301
+
302
+ return false;
303
+ }
304
+ LoggerProxy.logger.log(
305
+ 'Meetings:index#isNeedHandleMainLocus --> this is a normal main session locusDTO update case'
306
+ );
307
+
308
+ return true;
309
+ }
310
+
311
+ /**
312
+ * check whether you need to handle this locus data or not
313
+ * @param {Object} meeting old locus data
314
+ * @param {Object} newLocus new locus data
315
+ * @returns {boolean}
316
+ * @private
317
+ * @memberof Meetings
318
+ */
319
+ private isNeedHandleLocusDTO(meeting: any, newLocus: any) {
320
+ if (newLocus) {
321
+ const isNewLocusAsBreakout =
322
+ newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;
323
+ const isSelfMoved = newLocus?.self?.state === _LEFT_ && newLocus?.self?.reason === _MOVED_;
324
+ if (!meeting) {
325
+ if (isNewLocusAsBreakout) {
326
+ LoggerProxy.logger.log(
327
+ `Meetings:index#isNeedHandleLocusDTO --> the first breakout session locusDTO active status: ${newLocus.fullState?.active}`
328
+ );
329
+
330
+ return newLocus.self?.state === _JOINED_;
331
+ }
332
+
333
+ return this.isNeedHandleMainLocus(meeting, newLocus);
334
+ }
335
+ if (!isNewLocusAsBreakout) {
336
+ return this.isNeedHandleMainLocus(meeting, newLocus);
337
+ }
338
+
339
+ return !isSelfMoved;
340
+ }
341
+
342
+ return true;
343
+ }
344
+
345
+ /**
346
+ * handle locus events and takes meeting actions with them as they come in
347
+ * @param {Object} data a locus event
348
+ * @param {String} data.locusUrl
349
+ * @param {Object} data.locus
350
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
351
+ * @param {String} data.eventType
352
+ * @returns {undefined}
353
+ * @private
354
+ * @memberof Meetings
355
+ */
356
+ private handleLocusEvent(data: {locusUrl: string; locus: any}, useRandomDelayForInfo = false) {
357
+ let meeting = null;
358
+ // getting meeting by correlationId. This will happen for the new event
359
+ // Either the locus
360
+ // TODO : Add check for the callBack Address
361
+ meeting =
362
+ this.meetingCollection.getByKey(LOCUS_URL, data.locusUrl) ||
363
+ // @ts-ignore
364
+ this.meetingCollection.getByKey(
365
+ CORRELATION_ID,
366
+ // @ts-ignore
367
+ MeetingsUtil.checkForCorrelationId(this.webex.internal.device.url, data.locus)
368
+ ) ||
369
+ this.meetingCollection.getByKey(
370
+ SIP_URI,
371
+ data.locus.self &&
372
+ data.locus.self.callbackInfo &&
373
+ data.locus.self.callbackInfo.callbackAddress
374
+ ) ||
375
+ (data.locus.info?.isUnifiedSpaceMeeting
376
+ ? undefined
377
+ : this.meetingCollection.getByKey(CONVERSATION_URL, data.locus.conversationUrl)) ||
378
+ this.meetingCollection.getByKey(MEETINGNUMBER, data.locus?.info?.webExMeetingId);
379
+
380
+ // Special case when locus has got replaced, This only happend once if a replace locus exists
381
+ // https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-changing-mid-call
382
+
383
+ if (!meeting && data.locus?.replaces?.length > 0) {
384
+ // Always the last element in the replace is the active one
385
+ meeting = this.meetingCollection.getByKey(
386
+ LOCUS_URL,
387
+ data.locus.replaces[data.locus.replaces.length - 1].locusUrl
388
+ );
389
+ }
390
+
391
+ if (!this.isNeedHandleLocusDTO(meeting, data.locus)) {
392
+ LoggerProxy.logger.log(
393
+ `Meetings:index#handleLocusEvent --> doesn't need to process locus event`
394
+ );
395
+
396
+ return;
397
+ }
398
+ if (!meeting) {
399
+ // TODO: create meeting when we get a meeting object
400
+ // const checkForEnded = (locus) => {
401
+ // TODO: you already ended the meeting but you got an event later
402
+ // Mainly for 1:1 Callsor meeting
403
+ // Happens mainly after refresh
404
+
405
+ // 1:1 Meeting
406
+ // 1) You ended a call before but you got a mercury event
407
+ // Make sure end the call and cleanup the meeting only if the mercury
408
+ // event says so
409
+ // 2) Maintain lastSync time in the meetings object which helps to compare
410
+ // If the meeting came befor or after the sync . ANy meeting start time before the sync time is invalid
411
+
412
+ // For space Meeting
413
+ // Check the locus object and see who has joined
414
+
415
+ // };
416
+ // rather then locus object change to locus url
417
+
418
+ if (
419
+ data.locus &&
420
+ data.locus.fullState &&
421
+ data.locus.fullState.state === LOCUS.STATE.INACTIVE
422
+ ) {
423
+ // just ignore the event as its already ended and not active
424
+ LoggerProxy.logger.warn(
425
+ 'Meetings:index#handleLocusEvent --> Locus event received for meeting, after it was ended.'
426
+ );
427
+
428
+ return;
429
+ }
430
+
431
+ // When its wireless share or guest and user leaves the meeting we dont have to keep the meeting object
432
+ // Any future events will be neglected
433
+
434
+ if (
435
+ data.locus &&
436
+ data.locus.self &&
437
+ data.locus.self.state === _LEFT_ &&
438
+ data.locus.self.removed === true
439
+ ) {
440
+ // just ignore the event as its already ended and not active
441
+ LoggerProxy.logger.warn(
442
+ 'Meetings:index#handleLocusEvent --> Locus event received for meeting, after it was ended.'
443
+ );
444
+
445
+ return;
446
+ }
447
+
448
+ this.create(data.locus, _LOCUS_ID_, useRandomDelayForInfo)
449
+ .then((newMeeting) => {
450
+ meeting = newMeeting;
451
+
452
+ // It's a new meeting so initialize the locus data
453
+ meeting.locusInfo.initialSetup(data.locus);
454
+ })
455
+ .catch((e) => {
456
+ LoggerProxy.logger.error(e);
457
+ })
458
+ .finally(() => {
459
+ // There will be cases where locus event comes in gets created and deleted because its a 1:1 and meeting gets deleted
460
+ // because the other user left so before sending 'added' event make sure it exists in the collection
461
+
462
+ if (this.getMeetingByType(_ID_, meeting.id)) {
463
+ Metrics.postEvent({
464
+ event: eventType.REMOTE_STARTED,
465
+ meeting,
466
+ data: {trigger: trigger.MERCURY_EVENT},
467
+ });
468
+ Trigger.trigger(
469
+ this,
470
+ {
471
+ file: 'meetings',
472
+ function: 'handleLocusEvent',
473
+ },
474
+ EVENT_TRIGGERS.MEETING_ADDED,
475
+ {
476
+ meeting,
477
+ type: meeting.type === _MEETING_ ? _JOIN_ : _INCOMING_,
478
+ }
479
+ );
480
+ } else {
481
+ // Meeting got added but was not found in the collection. It might have got destroyed
482
+ LoggerProxy.logger.warn(
483
+ 'Meetings:index#handleLocusEvent --> Created and destroyed meeting object before sending an event'
484
+ );
485
+ }
486
+ });
487
+ } else {
488
+ meeting.locusInfo.parse(meeting, data);
489
+ }
490
+ }
491
+
492
+ /**
493
+ * handles locus events through mercury that are not roap
494
+ * @param {Object} envelope
495
+ * @param {Object} envelope.data
496
+ * @param {String} envelope.data.eventType
497
+ * @returns {undefined}
498
+ * @private
499
+ * @memberof Meetings
500
+ */
501
+ private handleLocusMercury(envelope: {data: any}) {
502
+ const {data} = envelope;
503
+ // eslint-disable-next-line @typescript-eslint/no-shadow
504
+ const {eventType} = data;
505
+
506
+ if (eventType && eventType !== LOCUSEVENT.MESSAGE_ROAP) {
507
+ this.handleLocusEvent(data, true);
508
+ }
509
+ }
510
+
511
+ /**
512
+ * handles mecury offline event
513
+ * @returns {undefined}
514
+ * @private
515
+ * @memberof Meetings
516
+ */
517
+ private handleMercuryOffline() {
518
+ Trigger.trigger(
519
+ this,
520
+ {
521
+ file: 'meetings/index',
522
+ function: 'handleMercuryOffline',
523
+ },
524
+ EVENT_TRIGGERS.MEETINGS_NETWORK_DISCONNECTED
525
+ );
526
+ }
527
+
528
+ /**
529
+ * registers for locus and roap mercury events
530
+ * @returns {undefined}
531
+ * @private
532
+ * @memberof Meetings
533
+ */
534
+ private listenForEvents() {
535
+ // @ts-ignore
536
+ this.webex.internal.mercury.on(LOCUSEVENT.LOCUS_MERCURY, (envelope) => {
537
+ this.handleLocusMercury(envelope);
538
+ });
539
+ // @ts-ignore
540
+ this.webex.internal.mercury.on(ROAP.ROAP_MERCURY, (envelope) => {
541
+ MeetingsUtil.handleRoapMercury(envelope, this.meetingCollection);
542
+ });
543
+
544
+ // @ts-ignore
545
+ this.webex.internal.mercury.on(ONLINE, () => {
546
+ this.syncMeetings();
547
+ });
548
+
549
+ // @ts-ignore
550
+ this.webex.internal.mercury.on(OFFLINE, () => {
551
+ this.handleMercuryOffline();
552
+ });
553
+ }
554
+
555
+ /**
556
+ * stops listening for locus and roap mercury events
557
+ * @returns {undefined}
558
+ * @private
559
+ * @memberof Meetings
560
+ */
561
+ private stopListeningForEvents() {
562
+ // @ts-ignore
563
+ this.webex.internal.mercury.off(LOCUSEVENT.LOCUS_MERCURY);
564
+ // @ts-ignore
565
+ this.webex.internal.mercury.off(ROAP.ROAP_MERCURY);
566
+ // @ts-ignore
567
+ this.webex.internal.mercury.off(ONLINE);
568
+ }
569
+
570
+ /**
571
+ * @returns {undefined}
572
+ * @private
573
+ * @memberof Meetings
574
+ */
575
+ private onReady() {
576
+ // @ts-ignore
577
+ this.webex.once(READY, () => {
578
+ // @ts-ignore
579
+ StaticConfig.set(this.config);
580
+ // @ts-ignore
581
+ LoggerConfig.set(this.config.logging);
582
+ // @ts-ignore
583
+ LoggerProxy.set(this.webex.logger);
584
+
585
+ mediaLogger = new MediaLogger();
586
+ setLogger(mediaLogger);
587
+
588
+ /**
589
+ * The MeetingInfo object to interact with server
590
+ * @instance
591
+ * @type {Object}
592
+ * @private
593
+ * @memberof Meetings
594
+ */
595
+ // @ts-ignore
596
+ this.meetingInfo = this.config.experimental.enableUnifiedMeetings
597
+ ? // @ts-ignore
598
+ new MeetingInfoV2(this.webex)
599
+ : // @ts-ignore
600
+ new MeetingInfo(this.webex);
601
+ // @ts-ignore
602
+ this.personalMeetingRoom = new PersonalMeetingRoom(
603
+ {meetingInfo: this.meetingInfo},
604
+ // @ts-ignore
605
+ {parent: this.webex}
606
+ );
607
+
608
+ Trigger.trigger(
609
+ this,
610
+ {
611
+ file: 'meetings',
612
+ function: 'onReady',
613
+ },
614
+ EVENT_TRIGGERS.MEETINGS_READY
615
+ );
616
+
617
+ MeetingsUtil.checkH264Support({disableNotifications: true});
618
+ // @ts-ignore
619
+ Metrics.initialSetup(this.meetingCollection, this.webex);
620
+ });
621
+ }
622
+
623
+ /**
624
+ * API to toggle unified meetings
625
+ * @param {Boolean} changeState
626
+ * @private
627
+ * @memberof Meetings
628
+ * @returns {undefined}
629
+ */
630
+ private _toggleUnifiedMeetings(changeState: boolean) {
631
+ if (typeof changeState !== 'boolean') {
632
+ return;
633
+ }
634
+ // @ts-ignore
635
+ if (this.config?.experimental?.enableUnifiedMeetings !== changeState) {
636
+ // @ts-ignore
637
+ this.config.experimental.enableUnifiedMeetings = changeState;
638
+ // @ts-ignore
639
+ this.meetingInfo = changeState ? new MeetingInfoV2(this.webex) : new MeetingInfo(this.webex);
640
+ }
641
+ }
642
+
643
+ /**
644
+ * API to enable or disable TURN discovery
645
+ * @param {Boolean} enable
646
+ * @private
647
+ * @memberof Meetings
648
+ * @returns {undefined}
649
+ */
650
+ private _toggleTurnDiscovery(enable: boolean) {
651
+ if (typeof enable !== 'boolean') {
652
+ return;
653
+ }
654
+ // @ts-ignore
655
+ this.config.experimental.enableTurnDiscovery = enable;
656
+ }
657
+
658
+ /**
659
+ * API to toggle starting adhoc meeting
660
+ * @param {Boolean} changeState
661
+ * @private
662
+ * @memberof Meetings
663
+ * @returns {undefined}
664
+ */
665
+ private _toggleAdhocMeetings(changeState: boolean) {
666
+ if (typeof changeState !== 'boolean') {
667
+ return;
668
+ }
669
+ // @ts-ignore
670
+ if (this.config?.experimental?.enableAdhocMeetings !== changeState) {
671
+ // @ts-ignore
672
+ this.config.experimental.enableAdhocMeetings = changeState;
673
+ }
674
+ }
675
+
676
+ /**
677
+ * Explicitly sets up the meetings plugin by registering
678
+ * the device, connecting to mercury, and listening for locus events.
679
+ *
680
+ * @returns {Promise}
681
+ * @public
682
+ * @memberof Meetings
683
+ */
684
+ public register() {
685
+ // @ts-ignore
686
+ if (!this.webex.canAuthorize) {
687
+ LoggerProxy.logger.error(
688
+ 'Meetings:index#register --> ERROR, Unable to register, SDK cannot authorize'
689
+ );
690
+
691
+ return Promise.reject(new Error('SDK cannot authorize'));
692
+ }
693
+
694
+ if (this.registered) {
695
+ LoggerProxy.logger.info(
696
+ 'Meetings:index#register --> INFO, Meetings plugin already registered'
697
+ );
698
+
699
+ return Promise.resolve();
700
+ }
701
+
702
+ return Promise.all([
703
+ this.fetchUserPreferredWebexSite(),
704
+ this.getGeoHint(),
705
+ this.startReachability().catch((error) => {
706
+ LoggerProxy.logger.error(`Meetings:index#register --> GDM error, ${error.message}`);
707
+ }),
708
+ // @ts-ignore
709
+ this.webex.internal.device
710
+ .register()
711
+ // @ts-ignore
712
+ .then(() =>
713
+ LoggerProxy.logger.info(
714
+ // @ts-ignore
715
+ `Meetings:index#register --> INFO, Device registered ${this.webex.internal.device.url}`
716
+ )
717
+ )
718
+ // @ts-ignore
719
+ .then(() => this.webex.internal.mercury.connect()),
720
+ MeetingsUtil.checkH264Support.call(this),
721
+ ])
722
+ .then(() => {
723
+ this.listenForEvents();
724
+ Trigger.trigger(
725
+ this,
726
+ {
727
+ file: 'meetings',
728
+ function: 'register',
729
+ },
730
+ EVENT_TRIGGERS.MEETINGS_REGISTERED
731
+ );
732
+ this.registered = true;
733
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETINGS_REGISTRATION_SUCCESS);
734
+ })
735
+ .catch((error) => {
736
+ LoggerProxy.logger.error(
737
+ `Meetings:index#register --> ERROR, Unable to register, ${error.message}`
738
+ );
739
+
740
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETINGS_REGISTRATION_FAILED, {
741
+ reason: error.message,
742
+ stack: error.stack,
743
+ });
744
+
745
+ return Promise.reject(error);
746
+ });
747
+ }
748
+
749
+ /**
750
+ * Explicitly tears down the meetings plugin by deregistering
751
+ * the device, disconnecting from mercury, and stops listening to locus events
752
+ *
753
+ * @returns {Promise}
754
+ * @public
755
+ * @memberof Meetings
756
+ */
757
+ unregister() {
758
+ if (!this.registered) {
759
+ LoggerProxy.logger.info(
760
+ 'Meetings:index#unregister --> INFO, Meetings plugin already unregistered'
761
+ );
762
+
763
+ return Promise.resolve();
764
+ }
765
+
766
+ this.stopListeningForEvents();
767
+
768
+ return (
769
+ // @ts-ignore
770
+ this.webex.internal.mercury
771
+ .disconnect()
772
+ // @ts-ignore
773
+ .then(() => this.webex.internal.device.unregister())
774
+ .then(() => {
775
+ Trigger.trigger(
776
+ this,
777
+ {
778
+ file: 'meetings',
779
+ function: 'unregister',
780
+ },
781
+ EVENT_TRIGGERS.MEETINGS_UNREGISTERED
782
+ );
783
+ this.registered = false;
784
+ })
785
+ );
786
+ }
787
+
788
+ /**
789
+ * Uploads logs to the webex services for tracking
790
+ * @param {Object} [options={}]
791
+ * @param {String} [options.callStart] Call Start Time
792
+ * @param {String} [options.feedbackId] ID used for tracking
793
+ * @param {String} [options.locusId]
794
+ * @param {String} [options.correlationId]
795
+ * @param {String} [options.meetingId] webex meeting ID
796
+ * @param {String} [options.userId] userId
797
+ * @param {String} [options.orgId] org id
798
+ * @returns {String} feedback ID logs were submitted under
799
+ */
800
+ uploadLogs(
801
+ options: {
802
+ callStart?: string;
803
+ feedbackId?: string;
804
+ locusId?: string;
805
+ correlationId?: string;
806
+ meetingId?: string;
807
+ userId?: string;
808
+ orgId?: string;
809
+ } = {}
810
+ ) {
811
+ LoggerProxy.logger.info('Meetings:index#uploadLogs --> uploading logs');
812
+
813
+ return this.loggerRequest
814
+ .uploadLogs(options)
815
+ .then((uploadResult) => {
816
+ LoggerProxy.logger.info(
817
+ 'Meetings:index#uploadLogs --> Upload logs for meeting completed.',
818
+ uploadResult
819
+ );
820
+ Trigger.trigger(
821
+ this,
822
+ {
823
+ file: 'meetings',
824
+ function: 'uploadLogs',
825
+ },
826
+ EVENT_TRIGGERS.MEETING_LOG_UPLOAD_SUCCESS,
827
+ {
828
+ meetingId: options.meetingId,
829
+ details: uploadResult,
830
+ }
831
+ );
832
+
833
+ return uploadResult;
834
+ })
835
+ .catch((uploadError) => {
836
+ LoggerProxy.logger.error(
837
+ 'Meetings:index#uploadLogs --> Unable to upload logs for meeting',
838
+ uploadError
839
+ );
840
+ Trigger.trigger(
841
+ this,
842
+ {
843
+ file: 'meetings',
844
+ function: 'uploadLogs',
845
+ },
846
+ EVENT_TRIGGERS.MEETING_LOG_UPLOAD_FAILURE,
847
+ {
848
+ meetingId: options.meetingId,
849
+ reason: uploadError,
850
+ }
851
+ );
852
+
853
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.UPLOAD_LOGS_FAILURE, {
854
+ // @ts-ignore - seems like typo
855
+ meetingId: options.meetingsId,
856
+ reason: uploadError.message,
857
+ stack: uploadError.stack,
858
+ code: uploadError.code,
859
+ });
860
+ });
861
+ }
862
+
863
+ /**
864
+ * initializes the reachability instance for Meetings
865
+ * @returns {undefined}
866
+ * @public
867
+ * @memberof Meetings
868
+ */
869
+ setReachability() {
870
+ // @ts-ignore
871
+ this.reachability = new Reachability(this.webex);
872
+ }
873
+
874
+ /**
875
+ * gets the reachability instance for Meetings
876
+ * @returns {Reachability}
877
+ * @public
878
+ * @memberof Meetings
879
+ */
880
+ getReachability() {
881
+ return this.reachability;
882
+ }
883
+
884
+ /**
885
+ * initializes and starts gathering reachability for Meetings
886
+ * @returns {Promise}
887
+ * @public
888
+ * @memberof Meetings
889
+ */
890
+ startReachability() {
891
+ if (!this.reachability) {
892
+ this.setReachability();
893
+ }
894
+
895
+ return this.getReachability().gatherReachability();
896
+ }
897
+
898
+ /**
899
+ * Get geoHint for info for meetings
900
+ * @returns {Promise}
901
+ * @private
902
+ * @memberof Meetings
903
+ */
904
+ getGeoHint() {
905
+ return this.request.fetchGeoHint().then((res) => {
906
+ this.geoHintInfo = res;
907
+ });
908
+ }
909
+
910
+ /**
911
+ * Fetch user preferred webex site information
912
+ * This also has other infomation about the user
913
+ * @returns {Promise}
914
+ * @private
915
+ * @memberof Meetings
916
+ */
917
+ fetchUserPreferredWebexSite() {
918
+ return this.request.getMeetingPreferences().then((res) => {
919
+ if (res) {
920
+ this.preferredWebexSite = MeetingsUtil.parseDefaultSiteFromMeetingPreferences(res);
921
+ }
922
+ });
923
+ }
924
+
925
+ /**
926
+ * gets the personal meeting room instance, for saved PMR values for this user
927
+ * @returns {PersonalMeetingRoom}
928
+ * @public
929
+ * @memberof Meetings
930
+ */
931
+
932
+ getPersonalMeetingRoom() {
933
+ return this.personalMeetingRoom;
934
+ }
935
+
936
+ /**
937
+ * @param {Meeting} meeting
938
+ * @param {Object} reason
939
+ * @param {String} type
940
+ * @returns {Undefined}
941
+ * @private
942
+ * @memberof Meetings
943
+ */
944
+ private destroy(meeting: Meeting, reason: object) {
945
+ MeetingUtil.cleanUp(meeting);
946
+ this.meetingCollection.delete(meeting.id);
947
+ Trigger.trigger(
948
+ this,
949
+ {
950
+ file: 'meetings',
951
+ function: 'destroy',
952
+ },
953
+ EVENT_TRIGGERS.MEETING_REMOVED,
954
+ {
955
+ meetingId: meeting.id,
956
+ reason,
957
+ }
958
+ );
959
+ }
960
+
961
+ /**
962
+ * Create a meeting.
963
+ * @param {string} destination - sipURL, spaceId, phonenumber, or locus object}
964
+ * @param {string} [type] - the optional specified type, such as locusId
965
+ * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
966
+ * @returns {Promise<Meeting>} A new Meeting.
967
+ * @public
968
+ * @memberof Meetings
969
+ */
970
+ public create(destination: string, type: string = null, useRandomDelayForInfo = false) {
971
+ // TODO: type should be from a dictionary
972
+
973
+ // Validate meeting information based on the provided destination and
974
+ // type. This must be performed prior to determining if the meeting is
975
+ // found in the collection, as we mutate the destination for hydra person
976
+ // id values.
977
+ return (
978
+ this.meetingInfo
979
+ .fetchInfoOptions(destination, type)
980
+ // Catch a failure to fetch info options.
981
+ .catch((error) => {
982
+ LoggerProxy.logger.info(
983
+ `Meetings:index#create --> INFO, unable to determine info options: ${error.message}`
984
+ );
985
+ })
986
+ .then((options: any = {}) => {
987
+ // Normalize the destination.
988
+ const targetDest = options.destination || destination;
989
+
990
+ // check for the conversation URL then sip Url
991
+ let meeting = null;
992
+
993
+ if (type === _CONVERSATION_URL_ || options.type === _CONVERSATION_URL_) {
994
+ const foundMeeting = this.meetingCollection.getByKey(CONVERSATION_URL, targetDest);
995
+
996
+ if (foundMeeting) {
997
+ const foundMeetingIsNotCalendarMeeting = !foundMeeting.locusInfo.scheduledMeeting;
998
+
999
+ // If the found meeting is not a calendar meeting, return that meeting.
1000
+ // This allows for the creation of instant-meetings when calendar meetings are present.
1001
+ if (foundMeetingIsNotCalendarMeeting) {
1002
+ meeting = foundMeeting;
1003
+ }
1004
+ }
1005
+ }
1006
+
1007
+ // Attempt to collect the meeting if it exists.
1008
+ if (!meeting) {
1009
+ meeting = this.meetingCollection.getByKey(SIP_URI, targetDest);
1010
+ }
1011
+
1012
+ // Validate if a meeting was found.
1013
+ if (!meeting) {
1014
+ // Create a meeting based on the normalized destination and type.
1015
+ return this.createMeeting(targetDest, type, useRandomDelayForInfo).then(
1016
+ (createdMeeting: any) => {
1017
+ // If the meeting was successfully created.
1018
+ if (createdMeeting && createdMeeting.on) {
1019
+ // Create a destruction event for the meeting.
1020
+ createdMeeting.on(EVENTS.DESTROY_MEETING, (payload) => {
1021
+ // @ts-ignore
1022
+ if (this.config.autoUploadLogs) {
1023
+ this.uploadLogs({
1024
+ callStart: createdMeeting.locusInfo?.fullState?.lastActive,
1025
+ correlationId: createdMeeting.correlationId,
1026
+ feedbackId: createdMeeting.correlationId,
1027
+ locusId: createdMeeting.locusId,
1028
+ meetingId: createdMeeting.locusInfo?.info?.webExMeetingId,
1029
+ }).then(() => this.destroy(createdMeeting, payload.reason));
1030
+ } else {
1031
+ this.destroy(createdMeeting, payload.reason);
1032
+ }
1033
+ });
1034
+
1035
+ createdMeeting.on(EVENTS.REQUEST_UPLOAD_LOGS, (meetingInstance) => {
1036
+ // @ts-ignore
1037
+ if (this.config.autoUploadLogs) {
1038
+ this.uploadLogs({
1039
+ callStart: meetingInstance?.locusInfo?.fullState?.lastActive,
1040
+ correlationId: meetingInstance.correlationId,
1041
+ feedbackId: meetingInstance.correlationId,
1042
+ locusId: meetingInstance.locusId,
1043
+ meetingId: meetingInstance.locusInfo?.info?.webExMeetingId,
1044
+ });
1045
+ }
1046
+ });
1047
+ } else {
1048
+ LoggerProxy.logger.error(
1049
+ `Meetings:index#create --> ERROR, meeting does not have on method, will not be destroyed, meeting cleanup impossible for meeting: ${meeting}`
1050
+ );
1051
+ }
1052
+
1053
+ // Return the newly created meeting.
1054
+ return Promise.resolve(createdMeeting);
1055
+ }
1056
+ );
1057
+ }
1058
+
1059
+ // Return the existing meeting.
1060
+ return Promise.resolve(meeting);
1061
+ })
1062
+ );
1063
+ }
1064
+
1065
+ /**
1066
+ * @param {String} destination see create()
1067
+ * @param {String} type see create()
1068
+ * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
1069
+ * @returns {Promise} a new meeting instance complete with meeting info and destination
1070
+ * @private
1071
+ * @memberof Meetings
1072
+ */
1073
+ private async createMeeting(
1074
+ destination: any,
1075
+ type: string = null,
1076
+ useRandomDelayForInfo = false
1077
+ ) {
1078
+ const meeting = new Meeting(
1079
+ {
1080
+ // @ts-ignore
1081
+ userId: this.webex.internal.device.userId,
1082
+ // @ts-ignore
1083
+ deviceUrl: this.webex.internal.device.url,
1084
+ // @ts-ignore
1085
+ orgId: this.webex.internal.device.orgId,
1086
+ locus: type === _LOCUS_ID_ ? destination : null, // pass the locus object if present
1087
+ meetingInfoProvider: this.meetingInfo,
1088
+ destination,
1089
+ destinationType: type,
1090
+ },
1091
+ {
1092
+ // @ts-ignore
1093
+ parent: this.webex,
1094
+ }
1095
+ );
1096
+
1097
+ this.meetingCollection.set(meeting);
1098
+
1099
+ try {
1100
+ // if no participant has joined the scheduled meeting (meaning meeting is not active) and we get a locusEvent,
1101
+ // it means the meeting will start in 5-6 min. In that case, we want to fetchMeetingInfo
1102
+ // between 5 and 2 min (random between 3 minutes) before the meeting starts
1103
+ // to avoid a spike in traffic to the wbxappi service
1104
+ let waitingTime = 0;
1105
+
1106
+ if (destination.meeting) {
1107
+ const {startTime} = destination.meeting;
1108
+ const startTimeDate = new Date(startTime);
1109
+ const startTimeDatestamp = startTimeDate.getTime();
1110
+ const timeToStart = startTimeDatestamp - Date.now();
1111
+ const maxWaitingTime = Math.max(
1112
+ Math.min(timeToStart, MAX_RANDOM_DELAY_FOR_MEETING_INFO),
1113
+ 0
1114
+ );
1115
+
1116
+ waitingTime = Math.round(Math.random() * maxWaitingTime);
1117
+ }
1118
+ const isMeetingActive = !!destination.fullState?.active;
1119
+ // @ts-ignore
1120
+ const {enableUnifiedMeetings} = this.config.experimental;
1121
+
1122
+ if (enableUnifiedMeetings && !isMeetingActive && useRandomDelayForInfo && waitingTime > 0) {
1123
+ meeting.fetchMeetingInfoTimeoutId = setTimeout(
1124
+ () => meeting.fetchMeetingInfo({}),
1125
+ waitingTime
1126
+ );
1127
+ meeting.parseMeetingInfo(undefined, destination);
1128
+ } else {
1129
+ await meeting.fetchMeetingInfo({});
1130
+ }
1131
+ } catch (err) {
1132
+ if (!(err instanceof CaptchaError) && !(err instanceof PasswordError)) {
1133
+ // if there is no meeting info we assume its a 1:1 call or wireless share
1134
+ LoggerProxy.logger.info(
1135
+ `Meetings:index#createMeeting --> Info Unable to fetch meeting info for ${destination}.`
1136
+ );
1137
+ LoggerProxy.logger.info(
1138
+ 'Meetings:index#createMeeting --> Info assuming this destination is a 1:1 or wireless share'
1139
+ );
1140
+ }
1141
+ LoggerProxy.logger.debug(
1142
+ `Meetings:index#createMeeting --> Debug ${err} fetching /meetingInfo for creation.`
1143
+ );
1144
+ } finally {
1145
+ // For type LOCUS_ID we need to parse the locus object to get the information
1146
+ // about the caller and callee
1147
+ // Meeting Added event will be created in `handleLocusEvent`
1148
+ if (type !== _LOCUS_ID_) {
1149
+ if (!meeting.sipUri) {
1150
+ meeting.setSipUri(destination);
1151
+ }
1152
+
1153
+ // TODO: check if we have to move this to parser
1154
+ const meetingAddedType = MeetingsUtil.getMeetingAddedType(type);
1155
+
1156
+ // We typically shouldn't need to trigger both and event and return a promise.
1157
+ // Is this a special case? We want to make the public API usage as simple as possible.
1158
+ Trigger.trigger(
1159
+ this,
1160
+ {
1161
+ file: 'meetings',
1162
+ function: 'createMeeting',
1163
+ },
1164
+ EVENT_TRIGGERS.MEETING_ADDED,
1165
+ {
1166
+ meeting,
1167
+ type: meetingAddedType,
1168
+ }
1169
+ );
1170
+ }
1171
+ }
1172
+
1173
+ return meeting;
1174
+
1175
+ // Create the meeting calling the necessary service endpoints.
1176
+
1177
+ // Internally, there are many more destinations:
1178
+ //
1179
+ // - locusID
1180
+ // - meetingURL
1181
+ // - globalMeetingID, e.g, *00*meetingID
1182
+ // - meetingID
1183
+ // - meetingURL
1184
+ // - PSTN
1185
+ // - phone number
1186
+ //
1187
+ // Our job is to determine the appropriate one
1188
+ // and its corresponding service so that developers
1189
+ // need only sipURL or spaceID to get a meeting
1190
+ // and its ID, but have the option to use createWithType()
1191
+ // and specify those types to get meetingInfo
1192
+ }
1193
+
1194
+ /**
1195
+ * get a specifc meeting given it's type matched to the value, i.e., locus url
1196
+ * @param {String} type
1197
+ * @param {Object} value
1198
+ * @returns {Meeting}
1199
+ * @public
1200
+ * @memberof Meetings
1201
+ */
1202
+ public getMeetingByType(type: string, value: object) {
1203
+ return this.meetingCollection.getByKey(type, value);
1204
+ }
1205
+
1206
+ /**
1207
+ * Get all meetings.
1208
+ * @param {object} options
1209
+ * @param {object} options.startDate - get meetings after this start date
1210
+ * @param {object} options.endDate - get meetings before this end date
1211
+ * @returns {Object} All currently active meetings.
1212
+ * @public
1213
+ * @memberof Meetings
1214
+ */
1215
+ public getAllMeetings(
1216
+ options: {
1217
+ startDate: object;
1218
+ endDate: object;
1219
+ } = {} as any
1220
+ ) {
1221
+ // Options may include other parameters to filter this collection
1222
+ // of meetings.
1223
+ return this.meetingCollection.getAll(options);
1224
+ }
1225
+
1226
+ /**
1227
+ * syncs all the meeting from server
1228
+ * @returns {undefined}
1229
+ * @public
1230
+ * @memberof Meetings
1231
+ */
1232
+ public syncMeetings() {
1233
+ return this.request
1234
+ .getActiveMeetings()
1235
+ .then((locusArray) => {
1236
+ const activeLocusUrl = [];
1237
+
1238
+ if (locusArray?.loci && locusArray.loci.length > 0) {
1239
+ locusArray.loci.forEach((locus) => {
1240
+ activeLocusUrl.push(locus.url);
1241
+ this.handleLocusEvent({
1242
+ locus,
1243
+ locusUrl: locus.url,
1244
+ });
1245
+ });
1246
+ }
1247
+ const meetingsCollection = this.meetingCollection.getAll();
1248
+
1249
+ if (Object.keys(meetingsCollection).length > 0) {
1250
+ // Some time the mercury event is missed after mercury reconnect
1251
+ // if sync returns no locus then clear all the meetings
1252
+ for (const meeting of Object.values(meetingsCollection)) {
1253
+ // @ts-ignore
1254
+ if (!activeLocusUrl.includes(meeting.locusUrl)) {
1255
+ // destroy function also uploads logs
1256
+ // @ts-ignore
1257
+ this.destroy(meeting, MEETING_REMOVED_REASON.NO_MEETINGS_TO_SYNC);
1258
+ }
1259
+ }
1260
+ }
1261
+ })
1262
+ .catch((error) => {
1263
+ LoggerProxy.logger.error(
1264
+ `Meetings:index#syncMeetings --> failed to sync meetings, ${error}`
1265
+ );
1266
+ throw new Error(error);
1267
+ });
1268
+ }
1269
+
1270
+ /**
1271
+ * Get all scheduled meetings.
1272
+ * @param {object} options
1273
+ * @param {object} options.startDate - get meetings after this start date
1274
+ * @param {object} options.endDate - get meetings before this end date
1275
+ * @returns {Object} All scheduled meetings.
1276
+ * @memberof Meetings
1277
+ */
1278
+ getScheduledMeetings() {
1279
+ return this.meetingCollection.getAll({scheduled: true});
1280
+ }
1281
+
1282
+ /**
1283
+ * Get the logger instance for plugin-meetings
1284
+ * @returns {Logger}
1285
+ */
1286
+ getLogger() {
1287
+ return LoggerProxy.get();
1288
+ }
1289
+ }