@webex/plugin-meetings 3.0.0-beta.0 → 3.0.0-beta.10

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 (274) hide show
  1. package/dist/common/browser-detection.js.map +1 -1
  2. package/dist/common/collection.js.map +1 -1
  3. package/dist/common/config.js.map +1 -1
  4. package/dist/common/errors/captcha-error.js +7 -0
  5. package/dist/common/errors/captcha-error.js.map +1 -1
  6. package/dist/common/errors/intent-to-join.js +8 -0
  7. package/dist/common/errors/intent-to-join.js.map +1 -1
  8. package/dist/common/errors/join-meeting.js +8 -0
  9. package/dist/common/errors/join-meeting.js.map +1 -1
  10. package/dist/common/errors/media.js +7 -0
  11. package/dist/common/errors/media.js.map +1 -1
  12. package/dist/common/errors/parameter.js.map +1 -1
  13. package/dist/common/errors/password-error.js +7 -0
  14. package/dist/common/errors/password-error.js.map +1 -1
  15. package/dist/common/errors/permission.js +7 -0
  16. package/dist/common/errors/permission.js.map +1 -1
  17. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  18. package/dist/common/errors/reconnection.js +7 -0
  19. package/dist/common/errors/reconnection.js.map +1 -1
  20. package/dist/common/errors/stats.js +7 -0
  21. package/dist/common/errors/stats.js.map +1 -1
  22. package/dist/common/errors/webex-errors.js +5 -29
  23. package/dist/common/errors/webex-errors.js.map +1 -1
  24. package/dist/common/errors/webex-meetings-error.js +5 -2
  25. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  26. package/dist/common/events/events-scope.js.map +1 -1
  27. package/dist/common/events/events.js.map +1 -1
  28. package/dist/common/events/trigger-proxy.js.map +1 -1
  29. package/dist/common/events/util.js.map +1 -1
  30. package/dist/common/logs/logger-config.js.map +1 -1
  31. package/dist/common/logs/logger-proxy.js.map +1 -1
  32. package/dist/common/logs/request.js +3 -0
  33. package/dist/common/logs/request.js.map +1 -1
  34. package/dist/common/queue.js.map +1 -1
  35. package/dist/config.js +1 -0
  36. package/dist/config.js.map +1 -1
  37. package/dist/constants.js +15 -74
  38. package/dist/constants.js.map +1 -1
  39. package/dist/locus-info/controlsUtils.js.map +1 -1
  40. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  41. package/dist/locus-info/fullState.js.map +1 -1
  42. package/dist/locus-info/hostUtils.js.map +1 -1
  43. package/dist/locus-info/index.js +43 -5
  44. package/dist/locus-info/index.js.map +1 -1
  45. package/dist/locus-info/infoUtils.js +4 -0
  46. package/dist/locus-info/infoUtils.js.map +1 -1
  47. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  48. package/dist/locus-info/parser.js +12 -3
  49. package/dist/locus-info/parser.js.map +1 -1
  50. package/dist/locus-info/selfUtils.js.map +1 -1
  51. package/dist/media/index.js +71 -210
  52. package/dist/media/index.js.map +1 -1
  53. package/dist/media/internal-media-core-wrapper.js +22 -0
  54. package/dist/media/internal-media-core-wrapper.js.map +1 -0
  55. package/dist/media/properties.js +32 -25
  56. package/dist/media/properties.js.map +1 -1
  57. package/dist/media/util.js +0 -27
  58. package/dist/media/util.js.map +1 -1
  59. package/dist/mediaQualityMetrics/config.js.map +1 -1
  60. package/dist/meeting/effectsState.js +8 -1
  61. package/dist/meeting/effectsState.js.map +1 -1
  62. package/dist/meeting/index.js +1130 -647
  63. package/dist/meeting/index.js.map +1 -1
  64. package/dist/meeting/muteState.js +6 -0
  65. package/dist/meeting/muteState.js.map +1 -1
  66. package/dist/meeting/request.js +55 -24
  67. package/dist/meeting/request.js.map +1 -1
  68. package/dist/meeting/state.js.map +1 -1
  69. package/dist/meeting/util.js +5 -44
  70. package/dist/meeting/util.js.map +1 -1
  71. package/dist/meeting-info/collection.js +4 -1
  72. package/dist/meeting-info/collection.js.map +1 -1
  73. package/dist/meeting-info/index.js +5 -0
  74. package/dist/meeting-info/index.js.map +1 -1
  75. package/dist/meeting-info/meeting-info-v2.js +14 -2
  76. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  77. package/dist/meeting-info/request.js +3 -0
  78. package/dist/meeting-info/request.js.map +1 -1
  79. package/dist/meeting-info/util.js.map +1 -1
  80. package/dist/meeting-info/utilv2.js.map +1 -1
  81. package/dist/meetings/collection.js +4 -1
  82. package/dist/meetings/collection.js.map +1 -1
  83. package/dist/meetings/index.js +136 -25
  84. package/dist/meetings/index.js.map +1 -1
  85. package/dist/meetings/request.js +4 -0
  86. package/dist/meetings/request.js.map +1 -1
  87. package/dist/meetings/util.js +24 -1
  88. package/dist/meetings/util.js.map +1 -1
  89. package/dist/member/index.js +30 -7
  90. package/dist/member/index.js.map +1 -1
  91. package/dist/member/util.js +2 -1
  92. package/dist/member/util.js.map +1 -1
  93. package/dist/members/collection.js +1 -0
  94. package/dist/members/collection.js.map +1 -1
  95. package/dist/members/index.js +82 -1
  96. package/dist/members/index.js.map +1 -1
  97. package/dist/members/request.js +19 -9
  98. package/dist/members/request.js.map +1 -1
  99. package/dist/members/util.js.map +1 -1
  100. package/dist/metrics/config.js.map +1 -1
  101. package/dist/metrics/constants.js.map +1 -1
  102. package/dist/metrics/index.js +8 -0
  103. package/dist/metrics/index.js.map +1 -1
  104. package/dist/multistream/mediaRequestManager.js +133 -0
  105. package/dist/multistream/mediaRequestManager.js.map +1 -0
  106. package/dist/multistream/multistreamMedia.js +116 -0
  107. package/dist/multistream/multistreamMedia.js.map +1 -0
  108. package/dist/multistream/receiveSlot.js +209 -0
  109. package/dist/multistream/receiveSlot.js.map +1 -0
  110. package/dist/multistream/receiveSlotManager.js +195 -0
  111. package/dist/multistream/receiveSlotManager.js.map +1 -0
  112. package/dist/multistream/remoteMedia.js +289 -0
  113. package/dist/multistream/remoteMedia.js.map +1 -0
  114. package/dist/multistream/remoteMediaGroup.js +243 -0
  115. package/dist/multistream/remoteMediaGroup.js.map +1 -0
  116. package/dist/multistream/remoteMediaManager.js +1113 -0
  117. package/dist/multistream/remoteMediaManager.js.map +1 -0
  118. package/dist/networkQualityMonitor/index.js +10 -2
  119. package/dist/networkQualityMonitor/index.js.map +1 -1
  120. package/dist/personal-meeting-room/index.js +11 -0
  121. package/dist/personal-meeting-room/index.js.map +1 -1
  122. package/dist/personal-meeting-room/request.js +2 -1
  123. package/dist/personal-meeting-room/request.js.map +1 -1
  124. package/dist/personal-meeting-room/util.js.map +1 -1
  125. package/dist/reachability/index.js +17 -7
  126. package/dist/reachability/index.js.map +1 -1
  127. package/dist/reachability/request.js +1 -0
  128. package/dist/reachability/request.js.map +1 -1
  129. package/dist/reconnection-manager/index.js +130 -132
  130. package/dist/reconnection-manager/index.js.map +1 -1
  131. package/dist/roap/index.js +58 -231
  132. package/dist/roap/index.js.map +1 -1
  133. package/dist/roap/request.js +7 -116
  134. package/dist/roap/request.js.map +1 -1
  135. package/dist/roap/turnDiscovery.js +20 -6
  136. package/dist/roap/turnDiscovery.js.map +1 -1
  137. package/dist/statsAnalyzer/global.js +2 -0
  138. package/dist/statsAnalyzer/global.js.map +1 -1
  139. package/dist/statsAnalyzer/index.js +58 -37
  140. package/dist/statsAnalyzer/index.js.map +1 -1
  141. package/dist/statsAnalyzer/mqaUtil.js +9 -3
  142. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  143. package/dist/transcription/index.js +10 -3
  144. package/dist/transcription/index.js.map +1 -1
  145. package/package.json +21 -20
  146. package/src/common/{browser-detection.js → browser-detection.ts} +1 -1
  147. package/src/common/collection.ts +6 -6
  148. package/src/common/{config.js → config.ts} +1 -1
  149. package/src/common/errors/{captcha-error.js → captcha-error.ts} +5 -1
  150. package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +6 -1
  151. package/src/common/errors/{join-meeting.js → join-meeting.ts} +6 -1
  152. package/src/common/errors/{media.js → media.ts} +5 -1
  153. package/src/common/errors/parameter.ts +3 -2
  154. package/src/common/errors/{password-error.js → password-error.ts} +5 -1
  155. package/src/common/errors/{permission.js → permission.ts} +5 -1
  156. package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
  157. package/src/common/errors/{reconnection.js → reconnection.ts} +5 -1
  158. package/src/common/errors/{stats.js → stats.ts} +5 -1
  159. package/src/common/errors/{webex-errors.js → webex-errors.ts} +1 -20
  160. package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +3 -1
  161. package/src/common/events/{events-scope.js → events-scope.ts} +1 -1
  162. package/src/common/events/{events.js → events.ts} +0 -0
  163. package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +1 -2
  164. package/src/common/events/{util.js → util.ts} +1 -1
  165. package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
  166. package/src/common/logs/{logger-proxy.js → logger-proxy.ts} +1 -1
  167. package/src/common/logs/{request.js → request.ts} +12 -2
  168. package/src/common/queue.ts +1 -2
  169. package/src/{config.js → config.ts} +2 -0
  170. package/src/constants.ts +139 -179
  171. package/src/locus-info/{controlsUtils.js → controlsUtils.ts} +4 -4
  172. package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
  173. package/src/locus-info/{fullState.js → fullState.ts} +1 -1
  174. package/src/locus-info/{hostUtils.js → hostUtils.ts} +5 -5
  175. package/src/locus-info/{index.js → index.ts} +67 -32
  176. package/src/locus-info/{infoUtils.js → infoUtils.ts} +7 -4
  177. package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +13 -13
  178. package/src/locus-info/{parser.js → parser.ts} +22 -12
  179. package/src/locus-info/{selfUtils.js → selfUtils.ts} +17 -19
  180. package/src/media/{index.js → index.ts} +130 -205
  181. package/src/media/internal-media-core-wrapper.ts +9 -0
  182. package/src/media/{properties.js → properties.ts} +35 -29
  183. package/src/media/util.ts +16 -0
  184. package/src/mediaQualityMetrics/{config.js → config.ts} +1 -1
  185. package/src/meeting/{effectsState.js → effectsState.ts} +12 -6
  186. package/src/meeting/{index.js → index.ts} +1016 -550
  187. package/src/meeting/{muteState.js → muteState.ts} +16 -11
  188. package/src/meeting/{request.js → request.ts} +125 -36
  189. package/src/meeting/{state.js → state.ts} +6 -6
  190. package/src/meeting/{util.js → util.ts} +9 -51
  191. package/src/meeting-info/{collection.js → collection.ts} +4 -1
  192. package/src/meeting-info/{index.js → index.ts} +10 -6
  193. package/src/meeting-info/{meeting-info-v2.js → meeting-info-v2.ts} +28 -10
  194. package/src/meeting-info/{request.js → request.ts} +6 -2
  195. package/src/meeting-info/{util.js → util.ts} +6 -5
  196. package/src/meeting-info/{utilv2.js → utilv2.ts} +8 -7
  197. package/src/meetings/{collection.js → collection.ts} +5 -2
  198. package/src/meetings/{index.js → index.ts} +118 -22
  199. package/src/meetings/{request.js → request.ts} +6 -1
  200. package/src/meetings/{util.js → util.ts} +28 -5
  201. package/src/member/{index.js → index.ts} +46 -15
  202. package/src/member/{util.js → util.ts} +17 -16
  203. package/src/members/{collection.js → collection.ts} +2 -1
  204. package/src/members/{index.js → index.ts} +94 -26
  205. package/src/members/{request.js → request.ts} +16 -5
  206. package/src/members/{util.js → util.ts} +7 -7
  207. package/src/metrics/{config.js → config.ts} +0 -2
  208. package/src/metrics/{constants.js → constants.ts} +0 -0
  209. package/src/metrics/{index.js → index.ts} +27 -8
  210. package/src/multistream/mediaRequestManager.ts +166 -0
  211. package/src/multistream/multistreamMedia.ts +92 -0
  212. package/src/multistream/receiveSlot.ts +141 -0
  213. package/src/multistream/receiveSlotManager.ts +142 -0
  214. package/src/multistream/remoteMedia.ts +228 -0
  215. package/src/multistream/remoteMediaGroup.ts +224 -0
  216. package/src/multistream/remoteMediaManager.ts +911 -0
  217. package/src/networkQualityMonitor/{index.js → index.ts} +18 -3
  218. package/src/personal-meeting-room/{index.js → index.ts} +17 -4
  219. package/src/personal-meeting-room/{request.js → request.ts} +3 -1
  220. package/src/personal-meeting-room/{util.js → util.ts} +1 -1
  221. package/src/reachability/{index.js → index.ts} +28 -17
  222. package/src/reachability/request.ts +4 -2
  223. package/src/reconnection-manager/{index.js → index.ts} +81 -65
  224. package/src/roap/index.ts +229 -0
  225. package/src/roap/{request.js → request.ts} +15 -74
  226. package/src/roap/turnDiscovery.ts +26 -11
  227. package/src/statsAnalyzer/{global.js → global.ts} +2 -0
  228. package/src/statsAnalyzer/{index.js → index.ts} +66 -61
  229. package/src/statsAnalyzer/{mqaUtil.js → mqaUtil.ts} +6 -1
  230. package/src/transcription/{index.js → index.ts} +16 -11
  231. package/test/integration/spec/journey.js +1 -1
  232. package/test/integration/spec/space-meeting.js +1 -2
  233. package/test/unit/spec/locus-info/infoUtils.js +17 -1
  234. package/test/unit/spec/media/index.ts +207 -0
  235. package/test/unit/spec/media/properties.ts +73 -82
  236. package/test/unit/spec/meeting/effectsState.js +1 -3
  237. package/test/unit/spec/meeting/index.js +585 -245
  238. package/test/unit/spec/meeting/muteState.js +7 -0
  239. package/test/unit/spec/meeting/utils.js +63 -2
  240. package/test/unit/spec/meetings/index.js +0 -4
  241. package/test/unit/spec/members/index.js +164 -2
  242. package/test/unit/spec/multistream/mediaRequestManager.ts +515 -0
  243. package/test/unit/spec/multistream/receiveSlot.ts +104 -0
  244. package/test/unit/spec/multistream/receiveSlotManager.ts +173 -0
  245. package/test/unit/spec/multistream/remoteMedia.ts +225 -0
  246. package/test/unit/spec/multistream/remoteMediaGroup.ts +396 -0
  247. package/test/unit/spec/multistream/remoteMediaManager.ts +1309 -0
  248. package/test/unit/spec/reconnection-manager/index.js +68 -2
  249. package/test/unit/spec/roap/index.ts +63 -35
  250. package/test/unit/spec/stats-analyzer/index.js +19 -22
  251. package/dist/peer-connection-manager/index.js +0 -794
  252. package/dist/peer-connection-manager/index.js.map +0 -1
  253. package/dist/peer-connection-manager/util.js +0 -124
  254. package/dist/peer-connection-manager/util.js.map +0 -1
  255. package/dist/roap/collection.js +0 -73
  256. package/dist/roap/collection.js.map +0 -1
  257. package/dist/roap/handler.js +0 -337
  258. package/dist/roap/handler.js.map +0 -1
  259. package/dist/roap/state.js +0 -164
  260. package/dist/roap/state.js.map +0 -1
  261. package/dist/roap/util.js +0 -102
  262. package/dist/roap/util.js.map +0 -1
  263. package/src/media/util.js +0 -38
  264. package/src/peer-connection-manager/index.js +0 -723
  265. package/src/peer-connection-manager/util.ts +0 -117
  266. package/src/roap/collection.js +0 -63
  267. package/src/roap/handler.js +0 -252
  268. package/src/roap/index.js +0 -380
  269. package/src/roap/state.js +0 -149
  270. package/src/roap/util.js +0 -93
  271. package/test/unit/spec/peerconnection-manager/index.js +0 -188
  272. package/test/unit/spec/peerconnection-manager/utils.js +0 -48
  273. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
  274. package/test/unit/spec/roap/util.js +0 -30
package/src/constants.ts CHANGED
@@ -1,3 +1,4 @@
1
+ // @ts-ignore
1
2
  import { hydraTypes } from '@webex/common';
2
3
 
3
4
  // *********** LOWERCASE / CAMELCASE STRINGS ************
@@ -26,8 +27,6 @@ export const DECLINE = 'decline';
26
27
  export const ERROR = 'error';
27
28
  export const ENDED = 'ended';
28
29
 
29
- export const OFFER = 'offer';
30
-
31
30
  export const HECATE = 'hecate';
32
31
 
33
32
  export const HOST = 'host';
@@ -104,7 +103,6 @@ export const _MEETING_ID_ = 'MEETING_ID';
104
103
  export const _NOT_IN_MEETING_ = 'NOT_IN_MEETING';
105
104
  export const _NONE_ = 'NONE';
106
105
 
107
- export const _OFFER_ = 'OFFER';
108
106
  export const _OBSERVE_ = 'OBSERVE';
109
107
 
110
108
  export const _PERSONAL_ROOM_ = 'PERSONAL_ROOM';
@@ -135,14 +133,14 @@ export const _MOVE_MEDIA_ = 'MOVE_MEDIA';
135
133
  export const PARTICIPANT_DELTAS = {
136
134
  TARGETS: {
137
135
  AUDIO: 'audio',
138
- VIDEO: 'video'
136
+ VIDEO: 'video',
139
137
  },
140
138
  STATES: {
141
139
  DISABLED: 'disabled',
142
140
  MUTED: 'muted',
143
141
  UNKNOWN: 'unknown',
144
- UNMUTED: 'unmuted'
145
- }
142
+ UNMUTED: 'unmuted',
143
+ },
146
144
  };
147
145
 
148
146
  // *********** STRING HELPERS ***********
@@ -190,7 +188,6 @@ export const ICE_TIMEOUT = 2000;
190
188
  export const ICE_FAIL_TIMEOUT = 3000;
191
189
 
192
190
  export const RETRY_TIMEOUT = 3000;
193
- export const ROAP_SEQ_PRE = -1;
194
191
 
195
192
  export const PC_BAIL_TIMEOUT = 8000;
196
193
 
@@ -200,21 +197,26 @@ export const DIALER_REGEX = {
200
197
  // modified from https://github.com/kirm/sip.js base
201
198
  // and with https://tools.ietf.org/html/rfc3261
202
199
  // requires the @ symbol
203
- SIP_ADDRESS: /^(sips?)?:?(?:([^\s>:@]+)(?::([^\s@>]+))?@)([\w\-.]+)(?::(\d+))?((?:;[^\s=?>;]+(?:=[^\s?;]+)?)*)(?:\?(([^\s&=>]+=[^\s&=>]+)(&[^\s&=>]+=[^\s&=>]+)*))?$/,
200
+ SIP_ADDRESS:
201
+ /^(sips?)?:?(?:([^\s>:@]+)(?::([^\s@>]+))?@)([\w\-.]+)(?::(\d+))?((?:;[^\s=?>;]+(?:=[^\s?;]+)?)*)(?:\?(([^\s&=>]+=[^\s&=>]+)(&[^\s&=>]+=[^\s&=>]+)*))?$/,
204
202
  // standard telephony num regex
205
- PHONE_NUMBER: /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/,
206
- E164_FORMAT: /^\+[1-9]\d{1,14}$/
203
+ PHONE_NUMBER:
204
+ /^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/,
205
+ E164_FORMAT: /^\+[1-9]\d{1,14}$/,
207
206
  };
208
207
 
209
208
  // eslint-disable-next-line max-len
210
209
  export const IPV4_REGEX = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}|.local/g;
211
210
 
212
- export const VALID_EMAIL_ADDRESS = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
213
- export const VALID_PMR_ADDRESS = /([a-z0-9][-a-z0-9, '.']{0,62})@([a-z0-9][-a-z0-9, '.']{0,62})\.webex\.com/i;
214
- export const VALID_PMR_LINK = /(https:\/\/)?([a-z0-9][-a-z0-9, '.']{0,62})\.webex\.com\/(meet|join)\/([a-z0-9][-a-z0-9, '.']{0,62})\/?/i;
211
+ export const VALID_EMAIL_ADDRESS =
212
+ /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
213
+ export const VALID_PMR_ADDRESS =
214
+ /([a-z0-9][-a-z0-9, '.']{0,62})@([a-z0-9][-a-z0-9, '.']{0,62})\.webex\.com/i;
215
+ export const VALID_PMR_LINK =
216
+ /(https:\/\/)?([a-z0-9][-a-z0-9, '.']{0,62})\.webex\.com\/(meet|join)\/([a-z0-9][-a-z0-9, '.']{0,62})\/?/i;
215
217
  export const VALID_PIN = /([0-9]{4,6})/;
216
- export const UUID_REG = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
217
-
218
+ export const UUID_REG =
219
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
218
220
 
219
221
  // ******************** OBJECTS ********************
220
222
  // Please alphabetize, and keep objects organized
@@ -222,7 +224,7 @@ export const UUID_REG = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f
222
224
  // TODO: move all api params to API section
223
225
  export const API = {
224
226
  CALLIOPEDISCOVERY: 'calliopeDiscovery',
225
- LOCUS: 'locus'
227
+ LOCUS: 'locus',
226
228
  };
227
229
 
228
230
  export const CALENDAR_EVENTS = {
@@ -230,26 +232,38 @@ export const CALENDAR_EVENTS = {
230
232
  UPDATE: 'event:calendar.meeting.update',
231
233
  CREATE_MINIMAL: 'event:calendar.meeting.create.minimal',
232
234
  UPDATE_MINIMAL: 'event:calendar.meeting.update.minimal',
233
- DELETE: 'event:calendar.meeting.delete'
235
+ DELETE: 'event:calendar.meeting.delete',
234
236
  };
235
237
 
236
238
  export const DEFAULT_GET_STATS_FILTER = {
237
- types: ['track', 'transport', 'candidate-pair', 'outbound-rtp', 'outboundrtp', 'inbound-rtp', 'inboundrtp', 'remote-inbound-rtp', 'remote-outbound-rtp', 'remote-candidate', 'local-candidate', 'media-source']
239
+ types: [
240
+ 'track',
241
+ 'transport',
242
+ 'candidate-pair',
243
+ 'outbound-rtp',
244
+ 'outboundrtp',
245
+ 'inbound-rtp',
246
+ 'inboundrtp',
247
+ 'remote-inbound-rtp',
248
+ 'remote-outbound-rtp',
249
+ 'remote-candidate',
250
+ 'local-candidate',
251
+ 'media-source',
252
+ ],
238
253
  };
239
254
 
240
-
241
255
  export const RECORDING_STATE = {
242
256
  RECORDING: 'recording',
243
257
  IDLE: 'idle',
244
258
  PAUSED: 'paused',
245
- RESUMED: 'resumed'
259
+ RESUMED: 'resumed',
246
260
  };
247
261
 
248
262
  export const SHARE_STATUS = {
249
263
  NO_SHARE: 'no_share',
250
264
  REMOTE_SHARE_ACTIVE: 'remote_share_active',
251
265
  LOCAL_SHARE_ACTIVE: 'local_share_active',
252
- WHITEBOARD_SHARE_ACTIVE: 'whiteboard_share_active'
266
+ WHITEBOARD_SHARE_ACTIVE: 'whiteboard_share_active',
253
267
  };
254
268
 
255
269
  // TODO: do we want to scope by meeting, members when they come off those objects themselves?
@@ -311,7 +325,14 @@ export const EVENT_TRIGGERS = {
311
325
  MEETINGS_NETWORK_CONNECTED: 'network:connected',
312
326
  MEETING_SELF_LEFT: 'meeting:self:left',
313
327
  NETWORK_QUALITY: 'network:quality',
314
- MEDIA_NEGOTIATED: 'media:negotiated'
328
+ MEDIA_NEGOTIATED: 'media:negotiated',
329
+ // the following events apply only to multistream media connections
330
+ ACTIVE_SPEAKER_CHANGED: 'media:activeSpeakerChanged',
331
+ REMOTE_VIDEO_SOURCE_COUNT_CHANGED: 'media:remoteVideoSourceCountChanged',
332
+ REMOTE_AUDIO_SOURCE_COUNT_CHANGED: 'media:remoteAudioSourceCountChanged',
333
+ REMOTE_MEDIA_AUDIO_CREATED: 'media:remoteAudio:created',
334
+ REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:remoteScrenShareAudio:created',
335
+ REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED: 'media:remoteVideo:layoutChanged',
315
336
  };
316
337
 
317
338
  export const EVENT_TYPES = {
@@ -323,7 +344,7 @@ export const EVENT_TYPES = {
323
344
  REMOTE_VIDEO: 'remoteVideo',
324
345
  REMOTE_SHARE: 'remoteShare',
325
346
  LOCAL_SHARE: 'localShare',
326
- ERROR: 'error'
347
+ ERROR: 'error',
327
348
  };
328
349
 
329
350
  // Handles the reason when meeting gets destroyed
@@ -337,7 +358,7 @@ export const MEETING_REMOVED_REASON = {
337
358
  CLIENT_LEAVE_REQUEST: 'CLIENT_LEAVE_REQUEST', // You triggered leave meeting
338
359
  USER_ENDED_SHARE_STREAMS: 'USER_ENDED_SHARE_STREAMS', // user triggered stop share
339
360
  NO_MEETINGS_TO_SYNC: 'NO_MEETINGS_TO_SYNC', // After the syncMeeting no meeting exists
340
- MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED' // meeting failed to connect due to ice failures or firewall issue
361
+ MEETING_CONNECTION_FAILED: 'MEETING_CONNECTION_FAILED', // meeting failed to connect due to ice failures or firewall issue
341
362
  };
342
363
 
343
364
  // One one one calls ends for the following reasons
@@ -346,17 +367,15 @@ export const MEETING_REMOVED_REASON = {
346
367
  export const CALL_REMOVED_REASON = {
347
368
  CALL_INACTIVE: 'CALL_INACTIVE', // partner and you leave the call
348
369
  PARTNER_LEFT: 'PARTNER_LEFT', // partner left the call
349
- SELF_LEFT: 'SELF_LEFT'// you left/declined the call
370
+ SELF_LEFT: 'SELF_LEFT', // you left/declined the call
350
371
  };
351
372
 
352
373
  export const SHARE_STOPPED_REASON = {
353
374
  SELF_STOPPED: 'SELF_STOPPED',
354
- MEETING_REJOIN: 'MEETING_REJOIN'
375
+ MEETING_REJOIN: 'MEETING_REJOIN',
355
376
  };
356
377
 
357
378
  export const EVENTS = {
358
- ROAP_OK: 'ROAP_OK',
359
- ROAP_ANSWER: 'ROAP_ANSWER',
360
379
  SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
361
380
  SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
362
381
  MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
@@ -371,66 +390,70 @@ export const EVENTS = {
371
390
  LOCUS_INFO_UPDATE_SELF: 'LOCUS_INFO_UPDATE_SELF',
372
391
  LOCUS_INFO_UPDATE_URL: 'LOCUS_INFO_UPDATE_URL',
373
392
  LOCUS_INFO_CAN_ASSIGN_HOST: 'LOCUS_INFO_CAN_ASSIGN_HOST',
374
- DISCONNECT_DUE_TO_INACTIVITY: 'DISCONNECT_DUE_TO_INACTIVITY'
393
+ DISCONNECT_DUE_TO_INACTIVITY: 'DISCONNECT_DUE_TO_INACTIVITY',
375
394
  };
376
395
 
377
396
  export const MEDIA_STATE = {
378
397
  active: 'active',
379
- inactive: 'inactive'
398
+ inactive: 'inactive',
380
399
  };
381
400
 
382
401
  export const ERROR_DICTIONARY = {
383
402
  PARAMETER: {
384
403
  NAME: 'ParameterError',
385
- MESSAGE: 'The parameters passed to the function, or object properties needed in the function were null, missing where required, or otherwise incorrect.',
386
- CODE: 0
404
+ MESSAGE:
405
+ 'The parameters passed to the function, or object properties needed in the function were null, missing where required, or otherwise incorrect.',
406
+ CODE: 0,
387
407
  },
388
408
  INTENT_TO_JOIN: {
389
409
  NAME: 'IntentToJoinError',
390
- MESSAGE: 'The meeting is locked. This is expected behavior. Call #join again with pin and/or moderator option',
391
- CODE: 1
410
+ MESSAGE:
411
+ 'The meeting is locked. This is expected behavior. Call #join again with pin and/or moderator option',
412
+ CODE: 1,
392
413
  },
393
414
  JOIN_MEETING: {
394
415
  NAME: 'JoinMeetingError',
395
416
  MESSAGE: 'There was an issue joining the meeting, meeting could be in a bad state.',
396
- CODE: 2
417
+ CODE: 2,
397
418
  },
398
419
  RECONNECTION: {
399
420
  NAME: 'ReconnectionError',
400
- MESSAGE: 'There was an error in the reconnection flow, the meeting may not reconnect, disconnect and dial again.',
401
- CODE: 3
421
+ MESSAGE:
422
+ 'There was an error in the reconnection flow, the meeting may not reconnect, disconnect and dial again.',
423
+ CODE: 3,
402
424
  },
403
425
  MEDIA: {
404
426
  NAME: 'MediaError',
405
427
  MESSAGE: 'There was an error with media, the meeting may not have live audio, video or share.',
406
- CODE: 4
428
+ CODE: 4,
407
429
  },
408
430
  PERMISSION: {
409
431
  NAME: 'PermissionError',
410
- MESSAGE: 'Not allowed to execute the function, some properties on server, or local client state do not allow you to complete this action.',
411
- CODE: 5
432
+ MESSAGE:
433
+ 'Not allowed to execute the function, some properties on server, or local client state do not allow you to complete this action.',
434
+ CODE: 5,
412
435
  },
413
436
  STATS: {
414
437
  NAME: 'StatsError',
415
438
  MESSAGE: 'An error occurred with getStats, stats may not continue for this data stream.',
416
- CODE: 6
439
+ CODE: 6,
417
440
  },
418
441
  PASSWORD: {
419
442
  NAME: 'PasswordError',
420
443
  MESSAGE: 'Password is required, please use verifyPassword()',
421
- CODE: 7
444
+ CODE: 7,
422
445
  },
423
446
  CAPTCHA: {
424
447
  NAME: 'CaptchaError',
425
448
  MESSAGE: 'Captcha is required.',
426
- CODE: 8
427
- }
449
+ CODE: 8,
450
+ },
428
451
  };
429
452
 
430
453
  export const FLOOR_ACTION = {
431
454
  GRANTED: 'GRANTED',
432
455
  RELEASED: 'RELEASED',
433
- ACCEPTED: 'ACCEPTED'
456
+ ACCEPTED: 'ACCEPTED',
434
457
  };
435
458
 
436
459
  export const FULL_STATE = {
@@ -438,21 +461,21 @@ export const FULL_STATE = {
438
461
  INACTIVE: 'INACTIVE',
439
462
  ACTIVE: 'ACTIVE',
440
463
  TERMINATING: 'TERMINATING',
441
- UNKNOWN: 'UNKNOWN'
464
+ UNKNOWN: 'UNKNOWN',
442
465
  };
443
466
 
444
467
  export const HTTP_VERBS = {
445
468
  PUT: 'PUT',
446
469
  POST: 'POST',
447
470
  GET: 'GET',
448
- PATCH: 'PATCH'
471
+ PATCH: 'PATCH',
449
472
  };
450
473
 
451
474
  // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceGatheringState
452
475
  export const ICE_GATHERING_STATE = {
453
476
  NEW: 'new',
454
477
  GATHERING: 'gathering',
455
- COMPLETE: 'complete'
478
+ COMPLETE: 'complete',
456
479
  };
457
480
 
458
481
  // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/iceConnectionState
@@ -462,7 +485,7 @@ export const ICE_STATE = {
462
485
  CLOSED: 'closed',
463
486
  COMPLETED: 'completed',
464
487
  FAILED: 'failed',
465
- DISCONNECTED: 'disconnected'
488
+ DISCONNECTED: 'disconnected',
466
489
  };
467
490
 
468
491
  export const CONNECTION_STATE = {
@@ -471,14 +494,14 @@ export const CONNECTION_STATE = {
471
494
  CONNECTED: 'connected',
472
495
  CLOSED: 'closed',
473
496
  FAILED: 'failed',
474
- DISCONNECTED: 'disconnected'
497
+ DISCONNECTED: 'disconnected',
475
498
  };
476
499
 
477
500
  export const LOCUS = {
478
501
  STATE: {
479
502
  INACTIVE: 'INACTIVE',
480
503
  ENDED: 'ENDED',
481
- INITIALIZING: 'INITIALIZING'
504
+ INITIALIZING: 'INITIALIZING',
482
505
  },
483
506
  SEQUENCE: {
484
507
  UN_DEF: 'undef',
@@ -486,9 +509,9 @@ export const LOCUS = {
486
509
  DEF: 'def',
487
510
  NA: 'na',
488
511
  RANGE_START: 'rangeStart',
489
- RANGE_END: 'rangeEnd'
512
+ RANGE_END: 'rangeEnd',
490
513
  },
491
- SYNCDEBUG: 'sync_debug'
514
+ SYNCDEBUG: 'sync_debug',
492
515
  };
493
516
 
494
517
  export const LOCUSINFO = {
@@ -517,7 +540,7 @@ export const LOCUSINFO = {
517
540
  EMBEDDED_APPS_UPDATED: 'EMBEDDED_APPS_UPDATED',
518
541
  SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE: 'SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE',
519
542
  SELF_IS_SHARING_BLOCKED_CHANGE: 'SELF_IS_SHARING_BLOCKED_CHANGE',
520
- }
543
+ },
521
544
  };
522
545
 
523
546
  export const LOCUSEVENT = {
@@ -552,7 +575,7 @@ export const LOCUSEVENT = {
552
575
  RECORDING_START_FAILED: 'locus.recording_start_failed',
553
576
  RECORDING_STOPPED: 'locus.recording_stopped',
554
577
 
555
- SELF_CHANGED: 'locus.self_changed'
578
+ SELF_CHANGED: 'locus.self_changed',
556
579
  };
557
580
 
558
581
  export const MEDIA_TRACK_CONSTRAINT = {
@@ -562,8 +585,8 @@ export const MEDIA_TRACK_CONSTRAINT = {
562
585
  // The cursor should only be visible while moving, then removed.
563
586
  MOTION: 'motion',
564
587
  // The cursor should never be visible in the generated stream.
565
- NEVER: 'never'
566
- }
588
+ NEVER: 'never',
589
+ },
567
590
  };
568
591
 
569
592
  export const MEETING_ERRORS = {
@@ -586,7 +609,8 @@ export const MEETING_ERRORS = {
586
609
  INVALID_LOCUS_ID: 'INVALID_LOCUS_ID',
587
610
  EMPTY_SCHEDULED_MEETING_START_TIME: 'EMPTY_SCHEDULED_MEETING_START_TIME',
588
611
  INVALID_SCHEDULED_MEETING_DURATION_MINUTES: 'INVALID_SCHEDULED_MEETING_DURATION_MINUTES',
589
- INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES: 'INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES',
612
+ INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES:
613
+ 'INVALID_SCHEDULED_MEETING_REMINDER_DURATION_MINUTES',
590
614
  EMPTY_SCHEDULED_MEETING_ORGANIZER: 'EMPTY_SCHEDULED_MEETING_ORGANIZER',
591
615
  INVALID_MEETING_ID_FORMAT: 'INVALID_MEETING_ID_FORMAT',
592
616
  INVALID_SIP_URL_FORMAT: 'INVALID_SIP_URL_FORMAT',
@@ -667,13 +691,12 @@ export const MEETING_ERRORS = {
667
691
  SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
668
692
 
669
693
  SOCKET_TIMEOUT: 'SOCKET_TIMEOUT',
670
- NO_HTTP_RESPONSE: 'NO_HTTP_RESPONSE'
694
+ NO_HTTP_RESPONSE: 'NO_HTTP_RESPONSE',
671
695
  };
672
696
 
673
-
674
697
  export const MEETING_END_REASON = {
675
698
  INACTIVE: 'INACTIVE',
676
- MEDIA_RELEASED: 'MEDIA_RELEASED'
699
+ MEDIA_RELEASED: 'MEDIA_RELEASED',
677
700
  };
678
701
 
679
702
  export const DISPLAY_HINTS = {
@@ -705,7 +728,7 @@ export const DISPLAY_HINTS = {
705
728
 
706
729
  export const SELF_ROLES = {
707
730
  COHOST: 'COHOST',
708
- MODERATOR: 'MODERATOR'
731
+ MODERATOR: 'MODERATOR',
709
732
  };
710
733
 
711
734
  export const MEETING_STATE = {
@@ -720,8 +743,8 @@ export const MEETING_STATE = {
720
743
  TERMINATING: 'TERMINATING',
721
744
  LEFT: 'LEFT',
722
745
  ENDED: 'ENDED',
723
- ERROR: 'ERROR'
724
- }
746
+ ERROR: 'ERROR',
747
+ },
725
748
  };
726
749
 
727
750
  export const MEETING_STATE_MACHINE = {
@@ -733,7 +756,7 @@ export const MEETING_STATE_MACHINE = {
733
756
  DECLINE: 'decline',
734
757
  LEAVE: 'leave',
735
758
  END: 'end',
736
- RESET: 'reset'
759
+ RESET: 'reset',
737
760
  },
738
761
  STATES: {
739
762
  ERROR: 'ERROR',
@@ -742,35 +765,35 @@ export const MEETING_STATE_MACHINE = {
742
765
  DECLINED: 'DECLINED',
743
766
  RINGING: 'RINGING',
744
767
  JOINED: 'JOINED',
745
- ANSWERED: 'ANSWERED'
746
- }
768
+ ANSWERED: 'ANSWERED',
769
+ },
747
770
  };
748
771
 
749
772
  export const MEETING_AUDIO_STATE_MACHINE = {
750
773
  TRANSITIONS: {
751
774
  TOGGLE: 'toggle',
752
- INIT: 'init'
775
+ INIT: 'init',
753
776
  },
754
777
  STATES: {
755
778
  MUTE_SELF: 'SELF_AUDIO_OFF',
756
- UNMUTE_SELF: 'SELF_AUDIO_ON'
757
- }
779
+ UNMUTE_SELF: 'SELF_AUDIO_ON',
780
+ },
758
781
  };
759
782
 
760
783
  export const MEETING_VIDEO_STATE_MACHINE = {
761
784
  TRANSITIONS: {
762
785
  TOGGLE: 'toggle',
763
- INIT: 'init'
786
+ INIT: 'init',
764
787
  },
765
788
  STATES: {
766
789
  MUTE_SELF: 'SELF_VIDEO_OFF',
767
- UNMUTE_SELF: 'SELF_VIDEO_ON'
768
- }
790
+ UNMUTE_SELF: 'SELF_VIDEO_ON',
791
+ },
769
792
  };
770
793
 
771
794
  export const PEER_CONNECTION_STATE = {
772
795
  CLOSED: 'closed',
773
- FAILED: 'failed'
796
+ FAILED: 'failed',
774
797
  };
775
798
 
776
799
  export const RECONNECTION = {
@@ -779,99 +802,49 @@ export const RECONNECTION = {
779
802
  COMPLETE: 'COMPLETE',
780
803
  FAILURE: 'FAILURE',
781
804
  DEFAULT_TRY_COUNT: 0,
782
- DEFAULT_STATUS: ''
783
- }
805
+ DEFAULT_STATUS: '',
806
+ },
784
807
  };
785
808
 
786
809
  export const RESOURCE = {
787
810
  CLUSTERS: 'clusters',
788
811
  REACHABILITY: 'reachability',
789
- LOCI: 'loci'
812
+ LOCI: 'loci',
790
813
  };
791
814
 
792
815
  export const REACHABILITY = {
793
- localStorage: 'reachability.result'
816
+ localStorage: 'reachability.result',
794
817
  };
795
818
 
796
819
  export const ROAP = {
797
- ROAP_TRANSITIONS: {
798
- STEP: 'step'
799
- },
800
820
  ROAP_TYPES: {
801
821
  OFFER: 'OFFER',
802
822
  ANSWER: 'ANSWER',
803
823
  OK: 'OK',
804
824
  ERROR: 'ERROR',
805
- SHUTDOWN: 'SHUTDOWN',
806
- OFFER_REQUEST: 'OFFER_REQUEST',
807
825
  TURN_DISCOVERY_REQUEST: 'TURN_DISCOVERY_REQUEST',
808
826
  TURN_DISCOVERY_RESPONSE: 'TURN_DISCOVERY_RESPONSE',
809
827
  },
810
- ROAP_STATE: {
811
- INIT: 'INIT',
812
- WAIT_RX_OFFER: 'WAIT_RX_OFFER',
813
- WAIT_RX_ANSWER: 'WAIT_RX_ANSWER',
814
- WAIT_RX_OK: 'WAIT_RX_OK',
815
- WAIT_TX_OFFER: 'WAIT_TX_OFFER',
816
- WAIT_TX_ANSWER: 'WAIT_TX_ANSWER',
817
- WAIT_TX_OK: 'WAIT_TX_OK',
818
- IDLE_LOCAL_OFFER: 'IDLE_LOCAL_OFFER',
819
- IDLE_REMOTE_OFFER: 'IDLE_REMOTE_OFFER',
820
- GLARE: 'GLARE',
821
- ERROR: 'ERROR'
822
- },
823
- ROAP_SIGNAL: {
824
- RX_OFFER: 'RX_OFFER',
825
- TX_OFFER: 'TX_OFFER',
826
- RX_ANSWER: 'RX_ANSWER',
827
- TX_ANSWER: 'TX_ANSWER',
828
- RX_OK: 'RX_OK',
829
- TX_OK: 'TX_OK',
830
- GLARE_RESOLVED: 'GLARE_RESOLVED'
831
- },
832
- RECEIVE_ROAP_MSG: 'RECEIVE_ROAP_MSG',
833
- SEND_ROAP_MSG: 'SEND_ROAP_MSG',
834
- SEND_ROAP_MSG_SUCCESS: 'SEND_ROAP_MSG_SUCCESS',
835
- RESET_ROAP_STATE: 'RESET_ROAP_STATE',
836
- RECEIVE_CALL_LEAVE: 'RECEIVE_CALL_LEAVE',
837
828
  ROAP_MERCURY: 'event:locus.message.roap',
838
829
  ROAP_VERSION: '2',
839
- RX_: 'RX_',
840
- TX_: 'TX_'
841
830
  };
842
831
 
843
832
  export const MediaContent = {
844
833
  main: 'main',
845
- slides: 'slides'
846
- };
847
-
848
- export const SDP = {
849
- A_CONTENT_SLIDES: 'a=content:slides',
850
- ROLLBACK: 'rollback',
851
- HAVE_LOCAL_OFFER: 'have-local-offer',
852
- HAVE_REMOTE_OFFER: 'have-remote-offer',
853
- STABLE: 'stable',
854
- OFFER: 'offer',
855
- M_LINE: 'm=',
856
- MAX_FS: 'max-fs=',
857
- B_LINE: 'b=TIAS',
858
- // Edonus repeated key frames request
859
- PERIODIC_KEYFRAME: 'a=periodic-keyframes:20',
860
- CARRIAGE_RETURN: '\r\n',
861
- BAD_MEDIA_PORTS: [0]
834
+ slides: 'slides',
862
835
  };
863
836
 
864
837
  export const NETWORK_STATUS = {
865
838
  DISCONNECTED: 'DISCONNECTED',
866
839
  RECONNECTING: 'RECONNECTING',
867
- CONNECTED: 'CONNECTED'
840
+ CONNECTED: 'CONNECTED',
868
841
  };
869
842
 
870
843
  export const NETWORK_TYPE = {
871
844
  VPN: 'vpn',
872
845
  UNKNOWN: 'unknown',
873
846
  WIFI: 'wifi',
874
- ETHERNET: 'ethernet'
847
+ ETHERNET: 'ethernet',
875
848
  };
876
849
 
877
850
  export const STATS = {
@@ -895,7 +868,7 @@ export const MQA_STATS = {
895
868
  isMain: false, // always true for share sender
896
869
  mariFecEnabled: false, // unavailable
897
870
  mariQosEnabled: false, // unavailable
898
- multistreamEnabled: false // unavailable
871
+ multistreamEnabled: false, // unavailable
899
872
  },
900
873
  availableBitrate: 0,
901
874
  dtlsBitrate: 0, // unavailable
@@ -914,7 +887,7 @@ export const MQA_STATS = {
914
887
  rtpPackets: 0,
915
888
  stunBitrate: 0, // unavailable
916
889
  stunPackets: 0, // unavailable
917
- transportType: 'UDP' // TODO: parse the transport type from the SDP and save globally
890
+ transportType: 'UDP', // TODO: parse the transport type from the SDP and save globally
918
891
  },
919
892
  streams: [
920
893
  {
@@ -926,7 +899,7 @@ export const MQA_STATS = {
926
899
  rtpPackets: 0,
927
900
  ssci: 0, // unavailable
928
901
  transmittedBitrate: 0,
929
- transmittedFrameRate: 0
902
+ transmittedFrameRate: 0,
930
903
  },
931
904
  h264CodecProfile: 'BP', // TODO: parse the profile level from h264 in the SDP and save globally
932
905
  localConfigurationChanges: 0, // unavailable
@@ -936,9 +909,9 @@ export const MQA_STATS = {
936
909
  transmittedFrameSize: 0, // unavailable
937
910
  transmittedHeight: 0,
938
911
  transmittedKeyFrames: 0,
939
- transmittedWidth: 0
940
- }
941
- ]
912
+ transmittedWidth: 0,
913
+ },
914
+ ],
942
915
  },
943
916
  intervalMetadata: {
944
917
  memoryUsage: {
@@ -949,18 +922,19 @@ export const MQA_STATS = {
949
922
  processMaximumMemoryBytes: 0,
950
923
  processMaximumMemoryUsage: 0,
951
924
  systemAverageMemoryUsage: 0,
952
- systemMaximumMemoryUsage: 0
925
+ systemMaximumMemoryUsage: 0,
953
926
  },
954
927
  peerReflexiveIP: 'NULL', // TODO: save after ice trickling completes and use as a global variable
955
928
  processAverageCPU: 0,
956
929
  processMaximumCPU: 0,
957
930
  systemAverageCPU: 0,
958
- systemMaximumCPU: 0
959
- }
931
+ systemMaximumCPU: 0,
932
+ },
960
933
  };
961
934
 
962
935
  // ****** MEDIA QUALITY CONSTANTS ****** //
963
936
 
937
+ // these values must match allowed values of RemoteQualityLevel from the @webex/internal-media-core lib
964
938
  export const QUALITY_LEVELS = {
965
939
  LOW: 'LOW',
966
940
  MEDIUM: 'MEDIUM',
@@ -971,56 +945,55 @@ export const QUALITY_LEVELS = {
971
945
  '1080p': '1080p',
972
946
  };
973
947
 
974
-
975
948
  export const AVAILABLE_RESOLUTIONS = {
976
949
  '360p': {
977
950
  video: {
978
951
  width: {
979
952
  max: 640,
980
- ideal: 640
953
+ ideal: 640,
981
954
  },
982
955
  height: {
983
956
  max: 360,
984
- ideal: 360
985
- }
986
- }
957
+ ideal: 360,
958
+ },
959
+ },
987
960
  },
988
961
  '480p': {
989
962
  video: {
990
963
  width: {
991
964
  max: 640,
992
- ideal: 640
965
+ ideal: 640,
993
966
  },
994
967
  height: {
995
968
  max: 480,
996
- ideal: 480
997
- }
998
- }
969
+ ideal: 480,
970
+ },
971
+ },
999
972
  },
1000
973
  '720p': {
1001
974
  video: {
1002
975
  width: {
1003
976
  max: 1280,
1004
- ideal: 1280
977
+ ideal: 1280,
1005
978
  },
1006
979
  height: {
1007
980
  max: 720,
1008
- ideal: 720
1009
- }
1010
- }
981
+ ideal: 720,
982
+ },
983
+ },
1011
984
  },
1012
985
  '1080p': {
1013
986
  video: {
1014
987
  width: {
1015
988
  max: 1920,
1016
- ideal: 1920
989
+ ideal: 1920,
1017
990
  },
1018
991
  height: {
1019
992
  max: 1080,
1020
- ideal: 1080
1021
- }
1022
- }
1023
- }
993
+ ideal: 1080,
994
+ },
995
+ },
996
+ },
1024
997
  };
1025
998
 
1026
999
  export const VIDEO_RESOLUTIONS = {
@@ -1033,29 +1006,16 @@ export const VIDEO_RESOLUTIONS = {
1033
1006
  [QUALITY_LEVELS['1080p']]: AVAILABLE_RESOLUTIONS['1080p'],
1034
1007
  };
1035
1008
 
1036
- /**
1037
- * Max frame sizes based on h264 configs
1038
- * https://en.wikipedia.org/wiki/Advanced_Video_Coding
1039
- */
1040
- export const REMOTE_VIDEO_CONSTRAINTS = {
1041
- MAX_FS: {
1042
- [QUALITY_LEVELS.LOW]: 1620,
1043
- [QUALITY_LEVELS.MEDIUM]: 3600,
1044
- [QUALITY_LEVELS.HIGH]: 8192
1045
- }
1046
- };
1047
-
1048
1009
  /*
1049
- * mqa Interval for sending stats metrics
1050
- */
1010
+ * mqa Interval for sending stats metrics
1011
+ */
1051
1012
 
1052
1013
  export const MQA_INTEVAL = 60000; // mqa analyzer interval its fixed to 60000
1053
1014
 
1054
-
1055
1015
  export const MEDIA_DEVICES = {
1056
1016
  MICROPHONE: 'microphone',
1057
1017
  SPEAKER: 'speaker',
1058
- CAMERA: 'camera'
1018
+ CAMERA: 'camera',
1059
1019
  };
1060
1020
 
1061
1021
  export const METRICS_JOIN_TIMES_MAX_DURATION = 1200000;
@@ -1066,31 +1026,31 @@ export const PSTN_STATUS = {
1066
1026
  LEFT: 'LEFT', // user has disconnected from the pstn device
1067
1027
  TRANSFERRING: 'TRANSFERRING', // usually happens in dial-out after the CONNECTED state
1068
1028
  SUCCESS: 'SUCCESS', // happens after the transfer (TRANSFERRING) is successful
1069
- UNKNOWN: '' // placeholder if we haven't been told what the status is
1029
+ UNKNOWN: '', // placeholder if we haven't been told what the status is
1070
1030
  };
1071
1031
 
1072
1032
  export const PASSWORD_STATUS = {
1073
1033
  NOT_REQUIRED: 'NOT_REQUIRED', // password is not required to join the meeting
1074
1034
  REQUIRED: 'REQUIRED', // client needs to provide the password by calling verifyPassword() before calling join()
1075
1035
  UNKNOWN: 'UNKNOWN', // we are waiting for information from the backend if password is required or not
1076
- VERIFIED: 'VERIFIED' // client has already provided the password and it has been verified, client can proceed to call join()
1036
+ VERIFIED: 'VERIFIED', // client has already provided the password and it has been verified, client can proceed to call join()
1077
1037
  };
1078
1038
 
1079
1039
  export const MEETING_INFO_FAILURE_REASON = {
1080
1040
  NONE: 'NONE', // meeting info was retrieved succesfully
1081
1041
  WRONG_PASSWORD: 'WRONG_PASSWORD', // meeting requires password and no password or wrong one was provided
1082
1042
  WRONG_CAPTCHA: 'WRONG_CAPTCHA', // wbxappapi requires a captcha code or a wrong captcha code was provided
1083
- OTHER: 'OTHER' // any other error (network, etc)
1043
+ OTHER: 'OTHER', // any other error (network, etc)
1084
1044
  };
1085
1045
 
1086
1046
  export const BNR_STATUS = {
1087
1047
  SHOULD_ENABLE: 'SHOULD_ENABLE',
1088
1048
  ENABLED: 'ENABLED',
1089
1049
  SHOULD_DISABLE: 'SHOULD_DISABLE',
1090
- NOT_ENABLED: 'NOT_ENABLED'
1050
+ NOT_ENABLED: 'NOT_ENABLED',
1091
1051
  };
1092
1052
 
1093
1053
  export const EMBEDDED_APP_TYPES = {
1094
1054
  SLIDO: 'SLIDO',
1095
- OTHER: 'OTHER'
1055
+ OTHER: 'OTHER',
1096
1056
  };