@webex/plugin-meetings 2.37.0 → 2.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -20
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js +5 -20
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.js +0 -7
  8. package/dist/common/config.js.map +1 -1
  9. package/dist/common/errors/captcha-error.js +5 -26
  10. package/dist/common/errors/captcha-error.js.map +1 -1
  11. package/dist/common/errors/intent-to-join.js +5 -26
  12. package/dist/common/errors/intent-to-join.js.map +1 -1
  13. package/dist/common/errors/join-meeting.js +6 -27
  14. package/dist/common/errors/join-meeting.js.map +1 -1
  15. package/dist/common/errors/media.js +5 -26
  16. package/dist/common/errors/media.js.map +1 -1
  17. package/dist/common/errors/parameter.js +5 -33
  18. package/dist/common/errors/parameter.js.map +1 -1
  19. package/dist/common/errors/password-error.js +5 -26
  20. package/dist/common/errors/password-error.js.map +1 -1
  21. package/dist/common/errors/permission.js +4 -25
  22. package/dist/common/errors/permission.js.map +1 -1
  23. package/dist/common/errors/reconnection-in-progress.js +0 -17
  24. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  25. package/dist/common/errors/reconnection.js +5 -26
  26. package/dist/common/errors/reconnection.js.map +1 -1
  27. package/dist/common/errors/stats.js +5 -26
  28. package/dist/common/errors/stats.js.map +1 -1
  29. package/dist/common/errors/webex-errors.js +7 -46
  30. package/dist/common/errors/webex-errors.js.map +1 -1
  31. package/dist/common/errors/webex-meetings-error.js +1 -24
  32. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  33. package/dist/common/events/events-scope.js +0 -22
  34. package/dist/common/events/events-scope.js.map +1 -1
  35. package/dist/common/events/events.js +0 -23
  36. package/dist/common/events/events.js.map +1 -1
  37. package/dist/common/events/trigger-proxy.js +0 -12
  38. package/dist/common/events/trigger-proxy.js.map +1 -1
  39. package/dist/common/events/util.js +0 -15
  40. package/dist/common/events/util.js.map +1 -1
  41. package/dist/common/logs/logger-config.js +0 -4
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js +1 -8
  44. package/dist/common/logs/logger-proxy.js.map +1 -1
  45. package/dist/common/logs/request.js +35 -61
  46. package/dist/common/logs/request.js.map +1 -1
  47. package/dist/common/queue.js +4 -14
  48. package/dist/common/queue.js.map +1 -1
  49. package/dist/config.js +1 -5
  50. package/dist/config.js.map +1 -1
  51. package/dist/constants.js +46 -42
  52. package/dist/constants.js.map +1 -1
  53. package/dist/index.js +1 -17
  54. package/dist/index.js.map +1 -1
  55. package/dist/locus-info/controlsUtils.js +10 -28
  56. package/dist/locus-info/controlsUtils.js.map +1 -1
  57. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  58. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  59. package/dist/locus-info/fullState.js +0 -15
  60. package/dist/locus-info/fullState.js.map +1 -1
  61. package/dist/locus-info/hostUtils.js +4 -12
  62. package/dist/locus-info/hostUtils.js.map +1 -1
  63. package/dist/locus-info/index.js +101 -193
  64. package/dist/locus-info/index.js.map +1 -1
  65. package/dist/locus-info/infoUtils.js +0 -37
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +12 -38
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +87 -123
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +16 -81
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +74 -137
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +64 -110
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js +3 -17
  78. package/dist/media/util.js.map +1 -1
  79. package/dist/mediaQualityMetrics/config.js +10 -12
  80. package/dist/mediaQualityMetrics/config.js.map +1 -1
  81. package/dist/meeting/effectsState.js +120 -192
  82. package/dist/meeting/effectsState.js.map +1 -1
  83. package/dist/meeting/in-meeting-actions.js +0 -13
  84. package/dist/meeting/in-meeting-actions.js.map +1 -1
  85. package/dist/meeting/index.js +812 -1487
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +31 -78
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +157 -227
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/state.js +21 -31
  92. package/dist/meeting/state.js.map +1 -1
  93. package/dist/meeting/util.js +25 -169
  94. package/dist/meeting/util.js.map +1 -1
  95. package/dist/meeting-info/collection.js +3 -25
  96. package/dist/meeting-info/collection.js.map +1 -1
  97. package/dist/meeting-info/index.js +10 -33
  98. package/dist/meeting-info/index.js.map +1 -1
  99. package/dist/meeting-info/meeting-info-v2.js +179 -268
  100. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  101. package/dist/meeting-info/request.js +1 -16
  102. package/dist/meeting-info/request.js.map +1 -1
  103. package/dist/meeting-info/util.js +98 -183
  104. package/dist/meeting-info/util.js.map +1 -1
  105. package/dist/meeting-info/utilv2.js +137 -228
  106. package/dist/meeting-info/utilv2.js.map +1 -1
  107. package/dist/meetings/collection.js +3 -21
  108. package/dist/meetings/collection.js.map +1 -1
  109. package/dist/meetings/index.js +451 -570
  110. package/dist/meetings/index.js.map +1 -1
  111. package/dist/meetings/request.js +7 -30
  112. package/dist/meetings/request.js.map +1 -1
  113. package/dist/meetings/util.js +94 -148
  114. package/dist/meetings/util.js.map +1 -1
  115. package/dist/member/index.js +49 -89
  116. package/dist/member/index.js.map +1 -1
  117. package/dist/member/util.js +17 -68
  118. package/dist/member/util.js.map +1 -1
  119. package/dist/members/collection.js +2 -12
  120. package/dist/members/collection.js.map +1 -1
  121. package/dist/members/index.js +68 -184
  122. package/dist/members/index.js.map +1 -1
  123. package/dist/members/request.js +21 -56
  124. package/dist/members/request.js.map +1 -1
  125. package/dist/members/util.js +9 -38
  126. package/dist/members/util.js.map +1 -1
  127. package/dist/metrics/config.js +0 -2
  128. package/dist/metrics/config.js.map +1 -1
  129. package/dist/metrics/constants.js +1 -2
  130. package/dist/metrics/constants.js.map +1 -1
  131. package/dist/metrics/index.js +48 -136
  132. package/dist/metrics/index.js.map +1 -1
  133. package/dist/networkQualityMonitor/index.js +28 -57
  134. package/dist/networkQualityMonitor/index.js.map +1 -1
  135. package/dist/peer-connection-manager/index.js +60 -190
  136. package/dist/peer-connection-manager/index.js.map +1 -1
  137. package/dist/peer-connection-manager/util.js +10 -24
  138. package/dist/peer-connection-manager/util.js.map +1 -1
  139. package/dist/personal-meeting-room/index.js +10 -45
  140. package/dist/personal-meeting-room/index.js.map +1 -1
  141. package/dist/personal-meeting-room/request.js +2 -33
  142. package/dist/personal-meeting-room/request.js.map +1 -1
  143. package/dist/personal-meeting-room/util.js +0 -13
  144. package/dist/personal-meeting-room/util.js.map +1 -1
  145. package/dist/reachability/index.js +100 -166
  146. package/dist/reachability/index.js.map +1 -1
  147. package/dist/reachability/request.js +2 -18
  148. package/dist/reachability/request.js.map +1 -1
  149. package/dist/reactions/reactions.js +0 -2
  150. package/dist/reactions/reactions.js.map +1 -1
  151. package/dist/reactions/reactions.type.js +0 -5
  152. package/dist/reactions/reactions.type.js.map +1 -1
  153. package/dist/reconnection-manager/index.js +294 -468
  154. package/dist/reconnection-manager/index.js.map +1 -1
  155. package/dist/roap/collection.js +1 -12
  156. package/dist/roap/collection.js.map +1 -1
  157. package/dist/roap/handler.js +15 -85
  158. package/dist/roap/handler.js.map +1 -1
  159. package/dist/roap/index.js +42 -94
  160. package/dist/roap/index.js.map +1 -1
  161. package/dist/roap/request.js +81 -148
  162. package/dist/roap/request.js.map +1 -1
  163. package/dist/roap/state.js +2 -39
  164. package/dist/roap/state.js.map +1 -1
  165. package/dist/roap/turnDiscovery.js +8 -52
  166. package/dist/roap/turnDiscovery.js.map +1 -1
  167. package/dist/roap/util.js +0 -26
  168. package/dist/roap/util.js.map +1 -1
  169. package/dist/statsAnalyzer/global.js +0 -2
  170. package/dist/statsAnalyzer/global.js.map +1 -1
  171. package/dist/statsAnalyzer/index.js +68 -168
  172. package/dist/statsAnalyzer/index.js.map +1 -1
  173. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  174. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  175. package/dist/transcription/index.js +13 -45
  176. package/dist/transcription/index.js.map +1 -1
  177. package/internal-README.md +7 -6
  178. package/package.json +17 -17
  179. package/src/common/browser-detection.ts +9 -6
  180. package/src/common/collection.ts +3 -1
  181. package/src/common/errors/captcha-error.ts +6 -6
  182. package/src/common/errors/intent-to-join.ts +6 -6
  183. package/src/common/errors/join-meeting.ts +12 -8
  184. package/src/common/errors/media.ts +6 -6
  185. package/src/common/errors/parameter.ts +9 -6
  186. package/src/common/errors/password-error.ts +6 -6
  187. package/src/common/errors/permission.ts +5 -5
  188. package/src/common/errors/reconnection.ts +6 -6
  189. package/src/common/errors/stats.ts +6 -6
  190. package/src/common/errors/webex-errors.ts +7 -5
  191. package/src/common/errors/webex-meetings-error.ts +1 -1
  192. package/src/common/events/events-scope.ts +5 -1
  193. package/src/common/events/events.ts +5 -1
  194. package/src/common/events/trigger-proxy.ts +8 -3
  195. package/src/common/events/util.ts +1 -2
  196. package/src/common/logs/logger-proxy.ts +21 -10
  197. package/src/common/logs/request.ts +11 -8
  198. package/src/config.ts +11 -11
  199. package/src/constants.ts +138 -119
  200. package/src/index.js +1 -1
  201. package/src/locus-info/controlsUtils.ts +34 -24
  202. package/src/locus-info/fullState.ts +15 -11
  203. package/src/locus-info/hostUtils.ts +4 -3
  204. package/src/locus-info/index.ts +25 -34
  205. package/src/locus-info/infoUtils.ts +12 -4
  206. package/src/locus-info/mediaSharesUtils.ts +4 -4
  207. package/src/locus-info/parser.ts +45 -68
  208. package/src/locus-info/selfUtils.ts +106 -57
  209. package/src/media/index.ts +118 -109
  210. package/src/media/properties.ts +26 -20
  211. package/src/media/util.ts +2 -2
  212. package/src/mediaQualityMetrics/config.ts +46 -46
  213. package/src/meeting/effectsState.ts +35 -35
  214. package/src/meeting/in-meeting-actions.ts +7 -3
  215. package/src/meeting/index.ts +1435 -1210
  216. package/src/meeting/muteState.ts +62 -31
  217. package/src/meeting/request.ts +160 -113
  218. package/src/meeting/state.ts +45 -30
  219. package/src/meeting/util.ts +131 -90
  220. package/src/meeting-info/collection.ts +2 -1
  221. package/src/meeting-info/index.ts +32 -30
  222. package/src/meeting-info/meeting-info-v2.ts +106 -108
  223. package/src/meeting-info/request.ts +9 -3
  224. package/src/meeting-info/util.ts +54 -46
  225. package/src/meeting-info/utilv2.ts +59 -53
  226. package/src/meetings/collection.ts +1 -1
  227. package/src/meetings/index.ts +513 -441
  228. package/src/meetings/request.ts +26 -24
  229. package/src/meetings/util.ts +26 -23
  230. package/src/member/index.ts +55 -49
  231. package/src/member/util.ts +26 -13
  232. package/src/members/collection.ts +0 -1
  233. package/src/members/index.ts +172 -121
  234. package/src/members/request.ts +46 -14
  235. package/src/members/util.ts +44 -42
  236. package/src/metrics/config.ts +254 -81
  237. package/src/metrics/constants.ts +0 -2
  238. package/src/metrics/index.ts +84 -71
  239. package/src/networkQualityMonitor/index.ts +20 -23
  240. package/src/peer-connection-manager/index.ts +321 -241
  241. package/src/peer-connection-manager/util.ts +4 -2
  242. package/src/personal-meeting-room/index.ts +12 -16
  243. package/src/personal-meeting-room/request.ts +10 -3
  244. package/src/personal-meeting-room/util.ts +3 -3
  245. package/src/reachability/index.ts +61 -59
  246. package/src/reachability/request.ts +36 -32
  247. package/src/reactions/reactions.ts +4 -4
  248. package/src/reactions/reactions.type.ts +2 -3
  249. package/src/reconnection-manager/index.ts +159 -98
  250. package/src/roap/collection.ts +2 -4
  251. package/src/roap/handler.ts +63 -32
  252. package/src/roap/index.ts +78 -58
  253. package/src/roap/request.ts +69 -54
  254. package/src/roap/state.ts +17 -11
  255. package/src/roap/turnDiscovery.ts +60 -31
  256. package/src/roap/util.ts +39 -31
  257. package/src/statsAnalyzer/global.ts +30 -33
  258. package/src/statsAnalyzer/index.ts +397 -169
  259. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  260. package/src/transcription/index.ts +34 -32
  261. package/test/integration/spec/journey.js +666 -462
  262. package/test/integration/spec/space-meeting.js +318 -203
  263. package/test/integration/spec/transcription.js +6 -7
  264. package/test/unit/spec/common/browser-detection.js +9 -28
  265. package/test/unit/spec/fixture/locus.js +92 -90
  266. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  267. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  268. package/test/unit/spec/locus-info/index.js +1 -2
  269. package/test/unit/spec/locus-info/infoUtils.js +24 -31
  270. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  271. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  272. package/test/unit/spec/locus-info/parser.js +3 -9
  273. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  274. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  275. package/test/unit/spec/meeting/effectsState.js +33 -45
  276. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  277. package/test/unit/spec/meeting/index.js +1141 -649
  278. package/test/unit/spec/meeting/muteState.js +42 -33
  279. package/test/unit/spec/meeting/request.js +56 -45
  280. package/test/unit/spec/meeting/utils.js +66 -49
  281. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  282. package/test/unit/spec/meeting-info/request.js +7 -9
  283. package/test/unit/spec/meeting-info/util.js +11 -12
  284. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  285. package/test/unit/spec/meetings/collection.js +1 -1
  286. package/test/unit/spec/meetings/index.js +438 -257
  287. package/test/unit/spec/meetings/utils.js +14 -12
  288. package/test/unit/spec/member/index.js +0 -1
  289. package/test/unit/spec/member/util.js +5 -6
  290. package/test/unit/spec/members/index.js +84 -35
  291. package/test/unit/spec/members/request.js +29 -20
  292. package/test/unit/spec/members/utils.js +8 -5
  293. package/test/unit/spec/metrics/index.js +16 -21
  294. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  295. package/test/unit/spec/peerconnection-manager/index.js +88 -58
  296. package/test/unit/spec/peerconnection-manager/utils.js +5 -4
  297. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +7 -8
  298. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  299. package/test/unit/spec/reachability/index.ts +9 -11
  300. package/test/unit/spec/reconnection-manager/index.js +14 -17
  301. package/test/unit/spec/roap/index.ts +18 -8
  302. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  303. package/test/unit/spec/roap/util.js +3 -3
  304. package/test/unit/spec/stats-analyzer/index.js +29 -24
  305. package/test/utils/cmr.js +44 -42
  306. package/test/utils/testUtils.js +83 -74
  307. package/test/utils/webex-config.js +18 -18
  308. package/test/utils/webex-test-users.js +53 -50
@@ -1,83 +1,54 @@
1
1
  "use strict";
2
2
 
3
3
  var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
4
-
5
4
  var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
6
-
7
5
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
8
-
9
6
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
10
-
11
7
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
12
-
13
8
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
14
-
15
9
  _Object$defineProperty(exports, "__esModule", {
16
10
  value: true
17
11
  });
18
-
19
12
  exports.default = void 0;
20
-
21
13
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
-
23
14
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
24
-
25
15
  var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int"));
26
-
27
16
  var _window = _interopRequireDefault(require("global/window"));
28
-
29
17
  var _sdpTransform = _interopRequireDefault(require("sdp-transform"));
30
-
31
18
  var _metrics = _interopRequireDefault(require("../metrics"));
32
-
33
19
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
34
-
35
20
  var _config = _interopRequireDefault(require("../common/config"));
36
-
37
21
  var _constants = require("../constants");
38
-
39
22
  var _constants2 = _interopRequireDefault(require("../metrics/constants"));
40
-
41
23
  var _config2 = require("../metrics/config");
42
-
43
24
  var _media = _interopRequireDefault(require("../common/errors/media"));
44
-
45
25
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
46
-
47
26
  var _webexErrors = require("../common/errors/webex-errors");
48
-
49
27
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
50
-
51
28
  var _util = _interopRequireDefault(require("./util"));
52
-
53
29
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
54
-
55
30
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
56
-
57
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
58
-
31
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
59
32
  var _BrowserDetection = (0, _browserDetection.default)(),
60
- isBrowser = _BrowserDetection.isBrowser;
33
+ isBrowser = _BrowserDetection.isBrowser;
34
+
61
35
  /**
62
36
  * @export
63
37
  * @public
64
38
  */
65
-
66
-
67
39
  var pc = {};
40
+
68
41
  /**
69
42
  * munges the bandwidth limit into the sdp
70
43
  * @param {String} sdpLines
71
44
  * @param {Number} index
72
45
  * @returns {String}
73
46
  */
74
-
75
47
  var insertBandwidthLimit = function insertBandwidthLimit(sdpLines, index) {
76
48
  // eslint-disable-next-line no-warning-comments
77
49
  // TODO convert to sdp parser
78
50
  var limit;
79
51
  var periodicKeyFrame = '';
80
-
81
52
  if (sdpLines[index].search(_constants.AUDIO) !== -1) {
82
53
  limit = _config.default.meetings.bandwidth.audio;
83
54
  } else {
@@ -85,91 +56,71 @@ var insertBandwidthLimit = function insertBandwidthLimit(sdpLines, index) {
85
56
  periodicKeyFrame = _constants.SDP.PERIODIC_KEYFRAME;
86
57
  sdpLines.splice(index + 2, 0, periodicKeyFrame);
87
58
  }
88
-
89
59
  sdpLines.splice(index + 1, 0, "".concat(_constants.SDP.B_LINE, ":").concat(limit));
90
60
  return sdpLines;
91
61
  };
62
+
92
63
  /**
93
64
  * needed for calliope max-fs
94
65
  * @param {String} sdp
95
66
  * @param {String} [level=QUALITY_LEVELS.HIGH] quality level for max-fs
96
67
  * @returns {String}
97
68
  */
98
-
99
-
100
69
  var setRemoteVideoConstraints = function setRemoteVideoConstraints(sdp) {
101
70
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.QUALITY_LEVELS.HIGH;
102
71
  var maxFs = _constants.REMOTE_VIDEO_CONSTRAINTS.MAX_FS[level];
103
-
104
72
  if (!maxFs) {
105
73
  throw new _parameter.default("setRemoteVideoConstraints: unable to set max framesize, value for level \"".concat(level, "\" is not defined"));
106
74
  }
107
-
108
75
  var modifiedSdp = _util.default.adjustH264Profile(sdp, maxFs);
109
-
110
76
  return modifiedSdp;
111
77
  };
112
-
113
78
  var setStartBitrateOnRemoteSdp = function setStartBitrateOnRemoteSdp(sdp) {
114
79
  if (_config.default.meetings.bandwidth.startBitrate) {
115
80
  sdp = sdp.replace(/(\na=fmtp:(\d+).*profile-level-id=.*)/gi, "$1;x-google-start-bitrate=".concat(_config.default.meetings.bandwidth.startBitrate));
116
81
  }
117
-
118
82
  return sdp;
119
83
  };
84
+
120
85
  /**
121
86
  * checks that sdp has h264 codec in it
122
87
  * @param {String} sdp
123
88
  * @returns {boolean}
124
89
  */
125
-
126
-
127
90
  var checkH264Support = function checkH264Support(sdp) {
128
91
  // eslint-disable-next-line no-warning-comments
129
92
  // TODO convert to sdp parser to read rtp.codec
130
93
  var videoPresent = sdp.match(/\nm=video.*/g);
131
94
  var h264Present = sdp.match(/\na=rtpmap:\d+\sH264.*/g);
132
-
133
95
  if (videoPresent) {
134
96
  return !!h264Present;
135
97
  }
136
-
137
98
  return true;
138
99
  };
100
+
139
101
  /**
140
102
  * validates the sdp, checks port, candidates, and ice info
141
103
  * @param {String} sdp
142
104
  * @returns {String}
143
105
  */
144
-
145
-
146
106
  var isSdpInvalid = function isSdpInvalid(sdp) {
147
107
  var parsedSdp = _sdpTransform.default.parse(sdp);
148
-
149
108
  var _iterator = _createForOfIteratorHelper(parsedSdp.media),
150
- _step;
151
-
109
+ _step;
152
110
  try {
153
111
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
154
112
  var _mediaLine$candidates;
155
-
156
113
  var mediaLine = _step.value;
157
-
158
114
  if (!mediaLine.candidates || ((_mediaLine$candidates = mediaLine.candidates) === null || _mediaLine$candidates === void 0 ? void 0 : _mediaLine$candidates.length) === 0) {
159
115
  _loggerProxy.default.logger.error('PeerConnectionManager:index#isSdpInvalid --> iceCandidate: Ice candidate never completed');
160
-
161
116
  return 'iceCandidate: Ice gathering never completed';
162
117
  }
163
-
164
118
  if (_constants.SDP.BAD_MEDIA_PORTS.includes(mediaLine.port)) {
165
119
  _loggerProxy.default.logger.error('PeerConnectionManager:index#isSdpInvalid --> iceCandidate: Found invalid port number for the ice candidate');
166
-
167
120
  return 'iceCandidate: Found invalid port number for the ice candidate';
168
121
  }
169
-
170
122
  if (!mediaLine.icePwd || !mediaLine.iceUfrag) {
171
123
  _loggerProxy.default.logger.error('PeerConnectionManager:index#isSdpInvalid --> iceCandidate: ice ufrag and password not found');
172
-
173
124
  return 'iceCandidate: ice ufrag and password not found';
174
125
  }
175
126
  }
@@ -178,44 +129,39 @@ var isSdpInvalid = function isSdpInvalid(sdp) {
178
129
  } finally {
179
130
  _iterator.f();
180
131
  }
181
-
182
132
  return '';
183
133
  };
134
+
184
135
  /**
185
136
  * munges the bandwidth into the sdp
186
137
  * @param {String} sdp
187
138
  * @returns {String}
188
139
  */
189
-
190
-
191
140
  var limitBandwidth = function limitBandwidth(sdp) {
192
141
  // TODO convert to sdp parser
193
142
  var offerSdp = sdp;
194
143
  var sdpLines = offerSdp.split(_constants.SDP.CARRIAGE_RETURN);
195
-
196
144
  for (var i = 0; i < sdpLines.length; i += 1) {
197
145
  if (sdpLines[i].search(_constants.SDP.M_LINE) !== -1) {
198
146
  sdpLines = insertBandwidthLimit(sdpLines, i);
199
147
  }
200
148
  }
201
-
202
149
  offerSdp = sdpLines.join(_constants.SDP.CARRIAGE_RETURN);
203
150
  return offerSdp;
204
151
  };
152
+
205
153
  /**
206
154
  * makes sure the screen pc sdp has content:slides for server
207
155
  * @param {RTCPeerConnection} screenPc
208
156
  * @returns {RTCPeerConnection}
209
157
  */
210
-
211
-
212
158
  pc.setContentSlides = function (screenPc) {
213
159
  if (screenPc && screenPc.sdp) {
214
160
  screenPc.sdp += "".concat(_constants.SDP.A_CONTENT_SLIDES).concat(_constants.SDP.CARRIAGE_RETURN);
215
161
  }
216
-
217
162
  return screenPc;
218
163
  };
164
+
219
165
  /**
220
166
  * handles ice trickling and establishes ICE connection onto peer connection object
221
167
  * @param {Object} peerConnection
@@ -223,13 +169,10 @@ pc.setContentSlides = function (screenPc) {
223
169
  * @param {String} options.remoteQualityLevel
224
170
  * @returns {Promise.RTCPeerConnection}
225
171
  */
226
-
227
-
228
172
  pc.iceCandidate = function (peerConnection, _ref) {
229
173
  var remoteQualityLevel = _ref.remoteQualityLevel;
230
174
  return new _promise.default(function (resolve, reject) {
231
175
  var now = (0, _now.default)();
232
-
233
176
  var doneGatheringIceCandidate = function doneGatheringIceCandidate() {
234
177
  // @ts-ignore
235
178
  var miliseconds = (0, _parseInt2.default)(Math.abs((0, _now.default)() - now), 4);
@@ -237,45 +180,36 @@ pc.iceCandidate = function (peerConnection, _ref) {
237
180
  peerConnection.sdp = _util.default.convertCLineToIpv4(peerConnection.sdp);
238
181
  peerConnection.sdp = setRemoteVideoConstraints(peerConnection.sdp, remoteQualityLevel);
239
182
  var invalidSdpPresent = isSdpInvalid(peerConnection.sdp);
240
-
241
183
  if (invalidSdpPresent) {
242
184
  _loggerProxy.default.logger.error('PeerConnectionManager:index#iceCandidate --> SDP not valid after waiting.');
243
-
244
185
  reject(new _webexErrors.InvalidSdpError(invalidSdpPresent));
245
186
  }
246
-
247
187
  _loggerProxy.default.logger.log("PeerConnectionManager:index#iceCandidate --> Time to gather ice candidate ".concat(miliseconds, " miliseconds"));
248
-
249
188
  resolve();
250
- }; // If ice has already been gathered
251
-
189
+ };
252
190
 
191
+ // If ice has already been gathered
253
192
  if (peerConnection.iceGatheringState === _constants.COMPLETE) {
254
193
  doneGatheringIceCandidate();
255
194
  }
256
-
257
195
  peerConnection.onIceGatheringStateChange = function () {
258
196
  if (peerConnection.iceGatheringState === _constants.COMPLETE) {
259
197
  // @ts-ignore
260
198
  doneGatheringIceCandidate(peerConnection);
261
199
  }
262
-
263
200
  if (peerConnection.iceGatheringState === _constants.GATHERING) {
264
201
  _loggerProxy.default.logger.log('PeerConnectionManager:index#onIceGatheringStateChange --> Ice state changed to gathering');
265
202
  }
266
203
  };
267
-
268
204
  peerConnection.onicecandidate = function (evt) {
269
205
  if (evt.candidate === null) {
270
206
  // @ts-ignore
271
207
  doneGatheringIceCandidate(peerConnection);
272
208
  } else {
273
209
  var _evt$candidate, _evt$candidate2, _evt$candidate3, _evt$candidate4;
274
-
275
210
  _loggerProxy.default.logger.log("PeerConnectionManager:index#onicecandidate --> Candidate ".concat((_evt$candidate = evt.candidate) === null || _evt$candidate === void 0 ? void 0 : _evt$candidate.type, " ").concat((_evt$candidate2 = evt.candidate) === null || _evt$candidate2 === void 0 ? void 0 : _evt$candidate2.protocol, " ").concat((_evt$candidate3 = evt.candidate) === null || _evt$candidate3 === void 0 ? void 0 : _evt$candidate3.address, ":").concat((_evt$candidate4 = evt.candidate) === null || _evt$candidate4 === void 0 ? void 0 : _evt$candidate4.port));
276
211
  }
277
212
  };
278
-
279
213
  peerConnection.onicecandidateerror = function (event) {
280
214
  // we can often get ICE candidate errors (for example when failing to communicate with a TURN server)
281
215
  // they don't mean that the whole ICE connection will fail, so it's OK to ignore them
@@ -283,18 +217,16 @@ pc.iceCandidate = function (peerConnection, _ref) {
283
217
  };
284
218
  });
285
219
  };
220
+
286
221
  /**
287
222
  * swapping tracks
288
223
  * @param {Object} peerConnection
289
224
  * @param {Object} track
290
225
  * @returns {undefined}
291
226
  */
292
-
293
-
294
227
  pc.replaceTrack = function (peerConnection, track) {
295
228
  try {
296
229
  var senders = peerConnection.getSenders();
297
-
298
230
  if (senders.length > 0) {
299
231
  senders.forEach(function (sender) {
300
232
  if (sender.track && sender.track.kind === track.kind) {
@@ -306,31 +238,29 @@ pc.replaceTrack = function (peerConnection, track) {
306
238
  _loggerProxy.default.logger.error("PeerConnectionManager:index#replaceTrack --> Error replacing track, ".concat(err));
307
239
  }
308
240
  };
241
+
309
242
  /**
310
243
  * adding streams to peerConnection
311
244
  * @param {Object} peerConnection
312
245
  * @param {Object} stream
313
246
  * @returns {undefined}
314
247
  */
315
-
316
-
317
248
  pc.addStream = function (peerConnection, stream) {
318
249
  try {
319
250
  if (stream && !isBrowser('edge')) {
320
251
  var tracksPresent = peerConnection.getSenders && peerConnection.getSenders().find(function (sender) {
321
252
  return sender.track != null;
322
253
  });
323
-
324
254
  if (tracksPresent) {
325
255
  stream.getTracks().forEach(function (track) {
326
256
  pc.replaceTrack(peerConnection, track);
327
257
  });
328
258
  return;
329
259
  }
330
-
331
260
  stream.getTracks().forEach(function (track) {
332
261
  peerConnection.addTrack(track, stream);
333
- }); // // TODO : may come back disable addTracks for chrome they are moving back to addStream
262
+ });
263
+ // // TODO : may come back disable addTracks for chrome they are moving back to addStream
334
264
  // // https://bugs.chromium.org/p/chromium/issues/detail?id=764414
335
265
  // // https://bugs.chromium.org/p/chromium/issues/detail?id=738918#c7
336
266
  // peerConnection.addStream(stream);
@@ -341,6 +271,7 @@ pc.addStream = function (peerConnection, stream) {
341
271
  _loggerProxy.default.logger.error("PeerConnectionManager:index#addStream --> Error adding stream, error: ".concat(_config2.error));
342
272
  }
343
273
  };
274
+
344
275
  /**
345
276
  * setting the remote description
346
277
  * @param {Object} peerConnection
@@ -349,12 +280,11 @@ pc.addStream = function (peerConnection, stream) {
349
280
  * @param {String} meetingId
350
281
  * @returns {undefined}
351
282
  */
352
-
353
-
354
283
  pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meetingId) {
355
284
  _loggerProxy.default.logger.log("PeerConnectionManager:index#setRemoteSessionDetails --> Setting the remote description type: ".concat(typeStr, "State: ").concat(peerConnection.signalingState));
285
+ var sdp = remoteSdp;
356
286
 
357
- var sdp = remoteSdp; // making sure that the remoteDescription is only set when there is a answer for offer
287
+ // making sure that the remoteDescription is only set when there is a answer for offer
358
288
  // or there is a offer from the server
359
289
 
360
290
  if (!sdp) {
@@ -367,15 +297,13 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
367
297
  }
368
298
  });
369
299
  }
370
-
371
300
  if (peerConnection.signalingState === _constants.SDP.HAVE_LOCAL_OFFER || peerConnection.signalingState === _constants.SDP.STABLE && typeStr === _constants.SDP.OFFER) {
372
301
  sdp = setStartBitrateOnRemoteSdp(sdp);
373
-
374
302
  if (!peerConnection.enableExtmap) {
375
303
  sdp = sdp.replace(/\na=extmap.*/g, '');
376
- } // remove any xtls candidates
377
-
304
+ }
378
305
 
306
+ // remove any xtls candidates
379
307
  sdp = sdp.replace(/^a=candidate:.*xTLS.*\r\n/gim, '');
380
308
  return peerConnection.setRemoteDescription(new _window.default.RTCSessionDescription({
381
309
  type: typeStr,
@@ -387,9 +315,10 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
387
315
  meetingId: meetingId
388
316
  });
389
317
  }
390
- }).catch(function (error) {
318
+ })
319
+ // eslint-disable-next-line @typescript-eslint/no-shadow
320
+ .catch(function (error) {
391
321
  _loggerProxy.default.logger.error("Peer-connection-manager:index#setRemoteDescription --> ".concat(error, " missing remotesdp"));
392
-
393
322
  var metricName = _constants2.default.PEERCONNECTION_FAILURE;
394
323
  var data = {
395
324
  correlation_id: meetingId,
@@ -399,9 +328,7 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
399
328
  var metadata = {
400
329
  type: error.name
401
330
  };
402
-
403
331
  _metrics.default.sendBehavioralMetric(metricName, data, metadata);
404
-
405
332
  return _metrics.default.postEvent({
406
333
  event: _config2.eventType.REMOTE_SDP_RECEIVED,
407
334
  meetingId: meetingId,
@@ -412,9 +339,9 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
412
339
  });
413
340
  });
414
341
  }
415
-
416
342
  return _promise.default.reject(new _media.default('PeerConnection in wrong state'));
417
343
  };
344
+
418
345
  /**
419
346
  * Create offer with a valid parameter
420
347
  * @param {Object} peerConnection
@@ -425,27 +352,25 @@ pc.setRemoteSessionDetails = function (peerConnection, typeStr, remoteSdp, meeti
425
352
  * @param {string} meetingProperties.enableExtmap
426
353
  * @returns {RTCPeerConnection}
427
354
  */
428
-
429
-
430
355
  pc.createOffer = function (peerConnection, _ref2) {
431
356
  var meetingId = _ref2.meetingId,
432
- remoteQualityLevel = _ref2.remoteQualityLevel,
433
- enableRtx = _ref2.enableRtx,
434
- enableExtmap = _ref2.enableExtmap;
435
-
436
- _loggerProxy.default.logger.log('PeerConnectionManager:index#createOffer --> creating a new offer'); // saving the extMap State to use in setRemoteDescription
357
+ remoteQualityLevel = _ref2.remoteQualityLevel,
358
+ enableRtx = _ref2.enableRtx,
359
+ enableExtmap = _ref2.enableExtmap;
360
+ _loggerProxy.default.logger.log('PeerConnectionManager:index#createOffer --> creating a new offer');
437
361
 
362
+ // saving the extMap State to use in setRemoteDescription
438
363
 
439
364
  peerConnection.enableExtmap = enableExtmap;
440
365
  return peerConnection.createOffer().then(function (description) {
441
366
  // bug https://bugs.chromium.org/p/chromium/issues/detail?id=1020642
442
367
  // chrome currently generates RTX line irrespective of whether the server side supports it
443
368
  // we are removing apt as well because its associated with rtx line
369
+
444
370
  if (!enableRtx) {
445
371
  description.sdp = description.sdp.replace(/\r\na=rtpmap:\d+ rtx\/\d+/g, '');
446
372
  description.sdp = description.sdp.replace(/\r\na=fmtp:\d+ apt=\d+/g, '');
447
373
  }
448
-
449
374
  return peerConnection.setLocalDescription(description);
450
375
  }).then(function () {
451
376
  return pc.iceCandidate(peerConnection, {
@@ -455,22 +380,19 @@ pc.createOffer = function (peerConnection, _ref2) {
455
380
  if (!checkH264Support(peerConnection.sdp)) {
456
381
  throw new _media.default('openH264 is downloading please Wait. Upload logs if not working on second try');
457
382
  }
458
-
459
383
  if (!enableExtmap) {
460
384
  peerConnection.sdp = peerConnection.sdp.replace(/\na=extmap.*/g, '');
461
385
  }
462
-
463
386
  pc.setContentSlides(peerConnection);
464
-
465
387
  _metrics.default.postEvent({
466
388
  event: _config2.eventType.LOCAL_SDP_GENERATED,
467
389
  meetingId: meetingId
468
390
  });
469
-
470
391
  return peerConnection;
471
- }).catch(function (error) {
392
+ })
393
+ // eslint-disable-next-line @typescript-eslint/no-shadow
394
+ .catch(function (error) {
472
395
  _loggerProxy.default.logger.error("Peer-connection-manager:index#createOffer --> ".concat(error));
473
-
474
396
  if (error instanceof _webexErrors.InvalidSdpError) {
475
397
  _metrics.default.sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, {
476
398
  correlation_id: meetingId,
@@ -487,44 +409,43 @@ pc.createOffer = function (peerConnection, _ref2) {
487
409
  var metadata = {
488
410
  type: error.name
489
411
  };
490
-
491
412
  _metrics.default.sendBehavioralMetric(metricName, data, metadata);
492
413
  }
493
-
494
414
  _metrics.default.postEvent({
495
415
  event: _config2.eventType.LOCAL_SDP_GENERATED,
496
416
  meetingId: meetingId,
497
417
  data: {
498
418
  canProceed: false,
499
- errors: [// @ts-ignore
419
+ errors: [
420
+ // @ts-ignore
500
421
  _metrics.default.generateErrorPayload(2001, true, error.name.MEDIA_ENGINE)]
501
422
  }
502
423
  });
503
-
504
424
  pc.close(peerConnection);
505
425
  throw error;
506
426
  });
507
427
  };
428
+
508
429
  /**
509
430
  * rollBack local description in peerconnection
510
431
  * @param {Object} peerConnection
511
432
  * @returns {Promise.RTCPeerConnection}
512
433
  */
513
-
514
-
515
434
  pc.rollBackLocalDescription = function (peerConnection) {
516
- return peerConnection // @ts-ignore
435
+ return peerConnection
436
+ // @ts-ignore
517
437
  .setLocalDescription(new RTCSessionDescription({
518
438
  type: _constants.SDP.ROLLBACK
519
439
  })).then(function () {
520
440
  return peerConnection;
521
441
  }).catch(function (err) {
522
- _loggerProxy.default.logger.error("Peer-connection-manager:index#setLocalDescription --> ".concat(err, " ")); // @ts-ignore
523
-
442
+ _loggerProxy.default.logger.error("Peer-connection-manager:index#setLocalDescription --> ".concat(err, " "));
524
443
 
444
+ // @ts-ignore
525
445
  return _promise.default.error(err);
526
446
  });
527
447
  };
448
+
528
449
  /**
529
450
  * @param {Object} params {
530
451
  * @param {Boolean} params.offerToReceiveAudio
@@ -536,16 +457,12 @@ pc.rollBackLocalDescription = function (peerConnection) {
536
457
  * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
537
458
  * @returns {Promise.<Array>} [MediaSDP, ScreenSDP]
538
459
  */
539
-
540
-
541
460
  pc.updatePeerConnection = function (params, _ref3) {
542
461
  var meetingId = _ref3.meetingId,
543
- remoteQualityLevel = _ref3.remoteQualityLevel;
544
-
462
+ remoteQualityLevel = _ref3.remoteQualityLevel;
545
463
  _loggerProxy.default.logger.log("PeerConnectionManager:index#updatePeerConnection --> updating the peerConnection with params: ".concat(params));
546
-
547
464
  var peerConnection = params.peerConnection,
548
- offerSdp = params.offerSdp;
465
+ offerSdp = params.offerSdp;
549
466
  return pc.createAnswer({
550
467
  peerConnection: peerConnection,
551
468
  offerSdp: offerSdp[0]
@@ -558,6 +475,7 @@ pc.updatePeerConnection = function (params, _ref3) {
558
475
  return _promise.default.resolve([peerconnection.sdp]);
559
476
  });
560
477
  };
478
+
561
479
  /**
562
480
  * @param {Object} params
563
481
  * @param {Object} params.peerConnection
@@ -567,18 +485,16 @@ pc.updatePeerConnection = function (params, _ref3) {
567
485
  * @param {string} meetingProperties.remoteQualityLevel LOW|MEDIUM|HIGH
568
486
  * @returns {RTCPeerConnection} peerConnection
569
487
  */
570
-
571
-
572
488
  pc.createAnswer = function (params, _ref4) {
573
489
  var meetingId = _ref4.meetingId,
574
- remoteQualityLevel = _ref4.remoteQualityLevel;
575
- var peerConnection = params.peerConnection; // TODO: Some times to many mercury event comes at the same time
576
- // Need to maintain state of peerconnection
490
+ remoteQualityLevel = _ref4.remoteQualityLevel;
491
+ var peerConnection = params.peerConnection;
577
492
 
493
+ // TODO: Some times to many mercury event comes at the same time
494
+ // Need to maintain state of peerconnection
578
495
  if (peerConnection.signalingState === _constants.SDP.HAVE_REMOTE_OFFER) {
579
496
  return _promise.default.resolve(peerConnection);
580
497
  }
581
-
582
498
  return pc.setRemoteSessionDetails(peerConnection, _constants.OFFER, params.offerSdp, meetingId).then(function () {
583
499
  return peerConnection.createAnswer(params.sdpConstraints);
584
500
  }).then(function (answer) {
@@ -591,13 +507,13 @@ pc.createAnswer = function (params, _ref4) {
591
507
  peerConnection.sdp = limitBandwidth(peerConnection.localDescription.sdp);
592
508
  peerConnection.sdp = _util.default.convertCLineToIpv4(peerConnection.sdp);
593
509
  peerConnection.sdp = setRemoteVideoConstraints(peerConnection.sdp, remoteQualityLevel);
594
-
595
510
  if (!checkH264Support(peerConnection.sdp)) {
596
511
  throw new _media.default('openH264 is downloading please Wait. Upload logs if not working on second try');
597
512
  }
598
-
599
513
  return peerConnection;
600
- }).catch(function (error) {
514
+ })
515
+ // eslint-disable-next-line @typescript-eslint/no-shadow
516
+ .catch(function (error) {
601
517
  if (error instanceof _webexErrors.InvalidSdpError) {
602
518
  _metrics.default.sendBehavioralMetric(_constants2.default.INVALID_ICE_CANDIDATE, {
603
519
  correlation_id: meetingId
@@ -612,96 +528,77 @@ pc.createAnswer = function (params, _ref4) {
612
528
  var metadata = {
613
529
  type: error.name
614
530
  };
615
-
616
531
  _metrics.default.sendBehavioralMetric(metricName, data, metadata);
617
532
  }
618
-
619
533
  _loggerProxy.default.logger.error("PeerConnectionManager:index#setRemoteSessionDetails --> Error creating remote session, error: ".concat(error));
620
534
  });
621
535
  };
536
+
622
537
  /**
623
538
  * shut down the peer connection
624
539
  * @param {Object} peerConnection
625
540
  * @returns {undefined}
626
541
  */
627
-
628
-
629
542
  pc.close = function (peerConnection) {
630
543
  // peerConnection.close() fails on firefox on network changes and gives a Dom exception
631
544
  // To avoid this we have added a try catch block.
632
545
  // Please refer to https://bugzilla.mozilla.org/show_bug.cgi?id=1274407 for more information
633
546
  _loggerProxy.default.logger.log('PeerConnectionManager:index#close --> pc: close() -> attempting to close the peer connection');
634
-
635
547
  if (peerConnection && peerConnection.connectionState === _constants.PEER_CONNECTION_STATE.CLOSED) {
636
548
  _loggerProxy.default.logger.log('PeerConnectionManager:index#close --> pc: close() -> connection already closed');
637
-
638
549
  return _promise.default.resolve();
639
550
  }
640
-
641
551
  _loggerProxy.default.logger.log('PeerConnectionManager:index#close --> pc: close() -> closing the mediaPeerConnection');
642
-
643
552
  return _promise.default.resolve().then(function () {
644
553
  if (peerConnection && peerConnection.close) {
645
554
  peerConnection.close();
646
555
  }
647
556
  });
648
557
  };
649
-
650
558
  pc.setPeerConnectionEvents = function (meeting) {
651
559
  // In case ICE fail
652
560
  var peerConnection = meeting.mediaProperties.peerConnection;
653
-
654
561
  var connectionFailed = function connectionFailed() {
655
562
  if (meeting.reconnectionManager.iceState.resolve) {
656
563
  // DISCONNECTED state triggers first then it goes to FAILED STATE
657
564
  // sometimes the failed state can happen before 10 seconds (Which is the timer for the reconnect for ice disconnect)
658
565
  meeting.reconnectionManager.iceState.resolve();
659
566
  }
660
-
661
567
  meeting.reconnect({
662
568
  networkDisconnect: true
663
569
  });
664
-
665
570
  _metrics.default.postEvent({
666
571
  event: _config2.eventType.ICE_END,
667
572
  meeting: meeting,
668
573
  data: {
669
574
  canProceed: false,
670
- errors: [// @ts-ignore
575
+ errors: [
576
+ // @ts-ignore
671
577
  _metrics.default.generateErrorPayload(2004, false, _config2.error.name.MEDIA_ENGINE)]
672
578
  }
673
579
  });
674
-
675
580
  meeting.uploadLogs({
676
581
  file: 'peer-connection-manager/index',
677
582
  function: 'connectionFailed'
678
583
  });
679
-
680
584
  _metrics.default.sendBehavioralMetric(_constants2.default.CONNECTION_FAILURE, {
681
585
  correlation_id: meeting.correlationId,
682
586
  locus_id: meeting.locusId
683
587
  });
684
588
  };
685
-
686
589
  peerConnection.oniceconnectionstatechange = function () {
687
590
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE CHANGE.');
688
-
689
591
  switch (peerConnection.iceConnectionState) {
690
592
  case _constants.ICE_STATE.CHECKING:
691
593
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE CHECKING.');
692
-
693
594
  _metrics.default.postEvent({
694
595
  event: _config2.eventType.ICE_START,
695
596
  meeting: meeting
696
597
  });
697
-
698
598
  break;
699
-
700
599
  case _constants.ICE_STATE.COMPLETED:
701
600
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE COMPLETED.');
702
-
703
601
  break;
704
-
705
602
  case _constants.ICE_STATE.CONNECTED:
706
603
  // Ice connection state goes to connected when both client and server sends STUN packets and
707
604
  // Established connected between them. Firefox does not trigger COMPLETED and only trigger CONNECTED
@@ -709,93 +606,66 @@ pc.setPeerConnectionEvents = function (meeting) {
709
606
  event: _config2.eventType.ICE_END,
710
607
  meeting: meeting
711
608
  });
712
-
713
609
  _metrics.default.sendBehavioralMetric(_constants2.default.CONNECTION_SUCCESS, {
714
610
  correlation_id: meeting.correlationId,
715
611
  locus_id: meeting.locusId
716
612
  });
717
-
718
613
  meeting.setNetworkStatus(_constants.NETWORK_STATUS.CONNECTED);
719
614
  meeting.reconnectionManager.iceReconnected();
720
-
721
615
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE CONNECTED.');
722
-
723
616
  break;
724
-
725
617
  case _constants.ICE_STATE.CLOSED:
726
618
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE CLOSED.');
727
-
728
619
  break;
729
-
730
620
  case _constants.ICE_STATE.DISCONNECTED:
731
621
  meeting.setNetworkStatus(_constants.NETWORK_STATUS.DISCONNECTED);
732
622
  meeting.reconnectionManager.waitForIceReconnect().catch(function () {
733
623
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE DISCONNECTED. Automatic Reconnection Timed Out.');
734
-
735
624
  connectionFailed();
736
625
  });
737
-
738
626
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE DISCONNECTED.');
739
-
740
627
  break;
741
-
742
628
  case _constants.ICE_STATE.FAILED:
743
- _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE FAILED.'); // notify of ice failure
629
+ _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> ICE STATE FAILED.');
630
+ // notify of ice failure
744
631
  // Ice failure is the only indicator currently for identifying the actual connection drop
745
632
  // Firefox takes sometime 10-15 seconds to go to failed state
746
-
747
-
748
633
  connectionFailed();
749
634
  break;
750
-
751
635
  default:
752
636
  break;
753
637
  }
754
638
  };
755
-
756
639
  peerConnection.onconnectionstatechange = function () {
757
640
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE CHANGE.');
758
-
759
641
  switch (peerConnection.connectionState) {
760
642
  case _constants.CONNECTION_STATE.NEW:
761
643
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE NEW.');
762
-
763
644
  break;
764
-
765
645
  case _constants.CONNECTION_STATE.CONNECTING:
766
646
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE CONNECTING.');
767
-
768
647
  break;
769
-
770
648
  case _constants.CONNECTION_STATE.CONNECTED:
771
649
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE CONNECTED.');
772
-
773
650
  break;
774
-
775
651
  case _constants.CONNECTION_STATE.CLOSED:
776
652
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE CLOSED.');
777
-
778
653
  break;
779
-
780
654
  case _constants.CONNECTION_STATE.DISCONNECTED:
781
655
  _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE DISCONNECTED.');
782
-
783
656
  break;
784
-
785
657
  case _constants.CONNECTION_STATE.FAILED:
786
- _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE FAILED.'); // Special case happens only on chrome where there is no ICE FAILED event
658
+ _loggerProxy.default.logger.info('PeerConnectionManager:index#setPeerConnectionEvents --> CONNECTION STATE FAILED.');
659
+ // Special case happens only on chrome where there is no ICE FAILED event
787
660
  // only CONNECTION FAILED event gets triggered
788
661
 
789
-
790
662
  connectionFailed();
791
663
  break;
792
-
793
664
  default:
794
665
  break;
795
666
  }
796
667
  };
797
668
  };
798
-
799
669
  var _default = pc;
800
670
  exports.default = _default;
801
671
  //# sourceMappingURL=index.js.map