@webex/calling 3.12.0-task-refactor.1 → 3.12.0-webex-services-ready.2

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 (259) hide show
  1. package/dist/CallHistory/CallHistory.js +68 -51
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallRecording/CallRecording.js +160 -0
  4. package/dist/CallRecording/CallRecording.js.map +1 -0
  5. package/dist/CallRecording/CallRecording.test.js +257 -0
  6. package/dist/CallRecording/CallRecording.test.js.map +1 -0
  7. package/dist/CallRecording/WxcCallRecordingConnector.js +577 -0
  8. package/dist/CallRecording/WxcCallRecordingConnector.js.map +1 -0
  9. package/dist/CallRecording/WxcCallRecordingConnector.test.js +652 -0
  10. package/dist/CallRecording/WxcCallRecordingConnector.test.js.map +1 -0
  11. package/dist/CallRecording/callRecordingFixtures.js +235 -0
  12. package/dist/CallRecording/callRecordingFixtures.js.map +1 -0
  13. package/dist/CallRecording/constants.js +50 -0
  14. package/dist/CallRecording/constants.js.map +1 -0
  15. package/dist/CallRecording/types.js +137 -0
  16. package/dist/CallRecording/types.js.map +1 -0
  17. package/dist/CallRecording/utils.js +42 -0
  18. package/dist/CallRecording/utils.js.map +1 -0
  19. package/dist/CallRecording/utils.test.js +97 -0
  20. package/dist/CallRecording/utils.test.js.map +1 -0
  21. package/dist/CallingClient/CallingClient.js +520 -193
  22. package/dist/CallingClient/CallingClient.js.map +1 -1
  23. package/dist/CallingClient/CallingClient.test.js +607 -133
  24. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  25. package/dist/CallingClient/calling/call.js +599 -454
  26. package/dist/CallingClient/calling/call.js.map +1 -1
  27. package/dist/CallingClient/calling/call.test.js +834 -443
  28. package/dist/CallingClient/calling/call.test.js.map +1 -1
  29. package/dist/CallingClient/calling/callManager.js +88 -31
  30. package/dist/CallingClient/calling/callManager.js.map +1 -1
  31. package/dist/CallingClient/calling/callManager.test.js +123 -0
  32. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  33. package/dist/CallingClient/calling/types.js +2 -0
  34. package/dist/CallingClient/calling/types.js.map +1 -1
  35. package/dist/CallingClient/constants.js +30 -3
  36. package/dist/CallingClient/constants.js.map +1 -1
  37. package/dist/CallingClient/line/index.js +4 -1
  38. package/dist/CallingClient/line/index.js.map +1 -1
  39. package/dist/CallingClient/line/line.test.js +16 -1
  40. package/dist/CallingClient/line/line.test.js.map +1 -1
  41. package/dist/CallingClient/registration/register.js +740 -407
  42. package/dist/CallingClient/registration/register.js.map +1 -1
  43. package/dist/CallingClient/registration/register.test.js +380 -58
  44. package/dist/CallingClient/registration/register.test.js.map +1 -1
  45. package/dist/CallingClient/registration/types.js.map +1 -1
  46. package/dist/CallingClient/registration/webWorker.js +41 -104
  47. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  48. package/dist/CallingClient/registration/webWorker.test.js +39 -153
  49. package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
  50. package/dist/CallingClient/registration/webWorkerStr.js +1 -1
  51. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
  52. package/dist/CallingClient/types.js.map +1 -1
  53. package/dist/CallingClient/utils/constants.js +58 -0
  54. package/dist/CallingClient/utils/constants.js.map +1 -0
  55. package/dist/CallingClient/utils/index.js +63 -0
  56. package/dist/CallingClient/utils/index.js.map +1 -0
  57. package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
  58. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  59. package/dist/CallingClient/utils/mobiusSocketMapper.test.js +221 -0
  60. package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
  61. package/dist/CallingClient/utils/request.js +435 -0
  62. package/dist/CallingClient/utils/request.js.map +1 -0
  63. package/dist/CallingClient/utils/request.test.js +999 -0
  64. package/dist/CallingClient/utils/request.test.js.map +1 -0
  65. package/dist/CallingClient/utils/types.js +7 -0
  66. package/dist/CallingClient/utils/types.js.map +1 -0
  67. package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
  68. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  69. package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
  70. package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
  71. package/dist/Contacts/ContactsClient.js +13 -11
  72. package/dist/Contacts/ContactsClient.js.map +1 -1
  73. package/dist/Contacts/ContactsClient.test.js +3 -8
  74. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  75. package/dist/Events/types.js +38 -11
  76. package/dist/Events/types.js.map +1 -1
  77. package/dist/Metrics/index.js +63 -2
  78. package/dist/Metrics/index.js.map +1 -1
  79. package/dist/Metrics/index.test.js +357 -1
  80. package/dist/Metrics/index.test.js.map +1 -1
  81. package/dist/Metrics/types.js +19 -1
  82. package/dist/Metrics/types.js.map +1 -1
  83. package/dist/SDKConnector/types.js.map +1 -1
  84. package/dist/api.js +56 -0
  85. package/dist/api.js.map +1 -1
  86. package/dist/common/Utils.js +161 -53
  87. package/dist/common/Utils.js.map +1 -1
  88. package/dist/common/Utils.test.js +207 -46
  89. package/dist/common/Utils.test.js.map +1 -1
  90. package/dist/common/testUtil.js +10 -5
  91. package/dist/common/testUtil.js.map +1 -1
  92. package/dist/common/types.js +3 -0
  93. package/dist/common/types.js.map +1 -1
  94. package/dist/index.js +165 -40
  95. package/dist/index.js.map +1 -1
  96. package/dist/mobius-socket/config.js +24 -0
  97. package/dist/mobius-socket/config.js.map +1 -0
  98. package/dist/mobius-socket/errors.js +143 -0
  99. package/dist/mobius-socket/errors.js.map +1 -0
  100. package/dist/mobius-socket/errors.test.js +20 -0
  101. package/dist/mobius-socket/errors.test.js.map +1 -0
  102. package/dist/mobius-socket/index.js +57 -0
  103. package/dist/mobius-socket/index.js.map +1 -0
  104. package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
  105. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  106. package/dist/mobius-socket/mobius-socket.js +849 -0
  107. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  108. package/dist/mobius-socket/mobius-socket.test.js +1898 -0
  109. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  110. package/dist/mobius-socket/socket/constants.js +55 -0
  111. package/dist/mobius-socket/socket/constants.js.map +1 -0
  112. package/dist/mobius-socket/socket/index.js +15 -0
  113. package/dist/mobius-socket/socket/index.js.map +1 -0
  114. package/dist/mobius-socket/socket/socket-base.js +604 -0
  115. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  116. package/dist/mobius-socket/socket/socket.js +19 -0
  117. package/dist/mobius-socket/socket/socket.js.map +1 -0
  118. package/dist/mobius-socket/socket/socket.shim.js +26 -0
  119. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  120. package/dist/mobius-socket/socket/types.js +7 -0
  121. package/dist/mobius-socket/socket/types.js.map +1 -0
  122. package/dist/mobius-socket/socket.test.js +727 -0
  123. package/dist/mobius-socket/socket.test.js.map +1 -0
  124. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  125. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  126. package/dist/mobius-socket/test/promise-tick.js +28 -0
  127. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  128. package/dist/mobius-socket/types.js +7 -0
  129. package/dist/mobius-socket/types.js.map +1 -0
  130. package/dist/module/CallHistory/CallHistory.js +28 -17
  131. package/dist/module/CallRecording/CallRecording.js +56 -0
  132. package/dist/module/CallRecording/WxcCallRecordingConnector.js +257 -0
  133. package/dist/module/CallRecording/callRecordingFixtures.js +201 -0
  134. package/dist/module/CallRecording/constants.js +28 -0
  135. package/dist/module/CallRecording/types.js +19 -0
  136. package/dist/module/CallRecording/utils.js +14 -0
  137. package/dist/module/CallingClient/CallingClient.js +166 -8
  138. package/dist/module/CallingClient/calling/call.js +181 -64
  139. package/dist/module/CallingClient/calling/callManager.js +46 -7
  140. package/dist/module/CallingClient/calling/types.js +2 -0
  141. package/dist/module/CallingClient/constants.js +26 -0
  142. package/dist/module/CallingClient/line/index.js +2 -2
  143. package/dist/module/CallingClient/registration/register.js +247 -63
  144. package/dist/module/CallingClient/registration/webWorker.js +42 -61
  145. package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
  146. package/dist/module/CallingClient/utils/constants.js +36 -0
  147. package/dist/module/CallingClient/utils/index.js +5 -0
  148. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
  149. package/dist/module/CallingClient/utils/request.js +211 -0
  150. package/dist/module/CallingClient/utils/types.js +1 -0
  151. package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
  152. package/dist/module/Contacts/ContactsClient.js +1 -1
  153. package/dist/module/Events/types.js +23 -10
  154. package/dist/module/Metrics/index.js +48 -1
  155. package/dist/module/Metrics/types.js +18 -0
  156. package/dist/module/api.js +3 -2
  157. package/dist/module/common/Utils.js +65 -18
  158. package/dist/module/common/testUtil.js +6 -1
  159. package/dist/module/common/types.js +3 -0
  160. package/dist/module/index.js +7 -3
  161. package/dist/module/mobius-socket/config.js +15 -0
  162. package/dist/module/mobius-socket/errors.js +58 -0
  163. package/dist/module/mobius-socket/index.js +24 -0
  164. package/dist/module/mobius-socket/mobius-socket.js +593 -0
  165. package/dist/module/mobius-socket/socket/constants.js +26 -0
  166. package/dist/module/mobius-socket/socket/index.js +4 -0
  167. package/dist/module/mobius-socket/socket/socket-base.js +368 -0
  168. package/dist/module/mobius-socket/socket/socket.js +9 -0
  169. package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
  170. package/dist/module/mobius-socket/socket/types.js +1 -0
  171. package/dist/module/mobius-socket/types.js +1 -0
  172. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  173. package/dist/types/CallRecording/CallRecording.d.ts +18 -0
  174. package/dist/types/CallRecording/CallRecording.d.ts.map +1 -0
  175. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts +23 -0
  176. package/dist/types/CallRecording/WxcCallRecordingConnector.d.ts.map +1 -0
  177. package/dist/types/CallRecording/callRecordingFixtures.d.ts +61 -0
  178. package/dist/types/CallRecording/callRecordingFixtures.d.ts.map +1 -0
  179. package/dist/types/CallRecording/constants.d.ts +29 -0
  180. package/dist/types/CallRecording/constants.d.ts.map +1 -0
  181. package/dist/types/CallRecording/types.d.ts +176 -0
  182. package/dist/types/CallRecording/types.d.ts.map +1 -0
  183. package/dist/types/CallRecording/utils.d.ts +3 -0
  184. package/dist/types/CallRecording/utils.d.ts.map +1 -0
  185. package/dist/types/CallingClient/CallingClient.d.ts +10 -1
  186. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  187. package/dist/types/CallingClient/calling/call.d.ts +12 -0
  188. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  189. package/dist/types/CallingClient/calling/callManager.d.ts +4 -2
  190. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  191. package/dist/types/CallingClient/calling/types.d.ts +34 -9
  192. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  193. package/dist/types/CallingClient/constants.d.ts +26 -0
  194. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  195. package/dist/types/CallingClient/line/index.d.ts +1 -1
  196. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  197. package/dist/types/CallingClient/registration/register.d.ts +9 -2
  198. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  199. package/dist/types/CallingClient/registration/types.d.ts +6 -3
  200. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  201. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  202. package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
  203. package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
  204. package/dist/types/CallingClient/types.d.ts +3 -1
  205. package/dist/types/CallingClient/types.d.ts.map +1 -1
  206. package/dist/types/CallingClient/utils/constants.d.ts +35 -0
  207. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  208. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  209. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  210. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
  211. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  212. package/dist/types/CallingClient/utils/request.d.ts +28 -0
  213. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  214. package/dist/types/CallingClient/utils/types.d.ts +34 -0
  215. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  216. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  217. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  218. package/dist/types/Events/types.d.ts +79 -15
  219. package/dist/types/Events/types.d.ts.map +1 -1
  220. package/dist/types/Metrics/index.d.ts.map +1 -1
  221. package/dist/types/Metrics/types.d.ts +19 -2
  222. package/dist/types/Metrics/types.d.ts.map +1 -1
  223. package/dist/types/SDKConnector/types.d.ts +39 -12
  224. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  225. package/dist/types/api.d.ts +6 -4
  226. package/dist/types/api.d.ts.map +1 -1
  227. package/dist/types/common/Utils.d.ts +11 -3
  228. package/dist/types/common/Utils.d.ts.map +1 -1
  229. package/dist/types/common/testUtil.d.ts +5 -1
  230. package/dist/types/common/testUtil.d.ts.map +1 -1
  231. package/dist/types/common/types.d.ts +9 -1
  232. package/dist/types/common/types.d.ts.map +1 -1
  233. package/dist/types/index.d.ts +8 -3
  234. package/dist/types/index.d.ts.map +1 -1
  235. package/dist/types/mobius-socket/config.d.ts +17 -0
  236. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  237. package/dist/types/mobius-socket/errors.d.ts +32 -0
  238. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  239. package/dist/types/mobius-socket/index.d.ts +14 -0
  240. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  241. package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
  242. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  243. package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
  244. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  245. package/dist/types/mobius-socket/socket/index.d.ts +5 -0
  246. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  247. package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
  248. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  249. package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
  250. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  251. package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
  252. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  253. package/dist/types/mobius-socket/socket/types.d.ts +61 -0
  254. package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
  255. package/dist/types/mobius-socket/types.d.ts +21 -0
  256. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  257. package/package.json +20 -5
  258. package/src/mobius-socket/socket/socket.shim.ts +22 -0
  259. package/src/mobius-socket/socket/socket.ts +14 -0
@@ -25,7 +25,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
25
25
  var _internalMediaCore = require("@webex/internal-media-core");
26
26
  var _xstate = require("xstate");
27
27
  var _uuid = require("uuid");
28
- var _webMediaEffects = require("@webex/web-media-effects");
28
+ var _mediaHelpers = require("@webex/media-helpers");
29
29
  var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
30
30
  var _types = require("../../Errors/types");
31
31
  var _Utils = require("../../common/Utils");
@@ -41,6 +41,7 @@ var _CallerId = require("./CallerId");
41
41
  var _types5 = require("../../Metrics/types");
42
42
  var _Metrics = require("../../Metrics");
43
43
  var _constants2 = require("../../common/constants");
44
+ var _request = require("../utils/request");
44
45
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
45
46
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
46
47
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
@@ -92,10 +93,193 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
92
93
  // Used in WxCC calls
93
94
  (0, _defineProperty2.default)(_this, "serviceIndicator", void 0);
94
95
  (0, _defineProperty2.default)(_this, "mediaNegotiationCompleted", void 0);
96
+ (0, _defineProperty2.default)(_this, "connectPending", void 0);
95
97
  (0, _defineProperty2.default)(_this, "receivedRoapOKSeq", void 0);
96
98
  (0, _defineProperty2.default)(_this, "localAudioStream", void 0);
97
99
  (0, _defineProperty2.default)(_this, "rtcMetrics", void 0);
98
100
  (0, _defineProperty2.default)(_this, "callKeepaliveRetryCount", 0);
101
+ (0, _defineProperty2.default)(_this, "apiRequest", void 0);
102
+ (0, _defineProperty2.default)(_this, "handleMediaRoapEvent", /*#__PURE__*/function () {
103
+ var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) {
104
+ var _event$roapMessage, _event$roapMessage2;
105
+ var mediaOk, sdpVideoPortZero, _t;
106
+ return _regenerator.default.wrap(function (_context) {
107
+ while (1) switch (_context.prev = _context.next) {
108
+ case 0:
109
+ _Logger.default.info("ROAP message to send (rcv from MEDIA-SDK) :\n \n type: ".concat((_event$roapMessage = event.roapMessage) === null || _event$roapMessage === void 0 ? void 0 : _event$roapMessage.messageType, ", seq: ").concat(event.roapMessage.seq, " , version: ").concat(event.roapMessage.version), {
110
+ file: _constants.CALL_FILE,
111
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
112
+ });
113
+ _Logger.default.info("SDP message to send : \n ".concat((_event$roapMessage2 = event.roapMessage) === null || _event$roapMessage2 === void 0 ? void 0 : _event$roapMessage2.sdp), {
114
+ file: _constants.CALL_FILE,
115
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
116
+ });
117
+ _t = event.roapMessage.messageType;
118
+ _context.next = _t === _types4.RoapScenario.OK ? 1 : _t === _types4.RoapScenario.OFFER ? 2 : _t === _types4.RoapScenario.ANSWER ? 4 : _t === _types4.RoapScenario.ERROR ? 6 : _t === _types4.RoapScenario.OFFER_RESPONSE ? 7 : 9;
119
+ break;
120
+ case 1:
121
+ mediaOk = {
122
+ received: false,
123
+ message: event.roapMessage
124
+ };
125
+ _this.sendMediaStateMachineEvt({
126
+ type: 'E_ROAP_OK',
127
+ data: mediaOk
128
+ });
129
+ return _context.abrupt("continue", 9);
130
+ case 2:
131
+ if (event.roapMessage.sdp) {
132
+ _context.next = 3;
133
+ break;
134
+ }
135
+ _Logger.default.warn('Received OFFER without SDP from media SDK', {
136
+ file: _constants.CALL_FILE,
137
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
138
+ });
139
+ return _context.abrupt("continue", 9);
140
+ case 3:
141
+ // TODO: Remove these after the Media-Core adds the fix
142
+ // Check if at least one IPv6 "c=" line is present
143
+ _Logger.default.info("before modifying sdp: ".concat(event.roapMessage.sdp), {
144
+ file: _constants.CALL_FILE,
145
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
146
+ });
147
+ event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
148
+ sdpVideoPortZero = event.roapMessage.sdp.replace(/^m=(video) (?:\d+) /gim, 'm=$1 0 ');
149
+ _Logger.default.info("after modification sdp: ".concat(sdpVideoPortZero), {
150
+ file: _constants.CALL_FILE,
151
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
152
+ });
153
+ event.roapMessage.sdp = sdpVideoPortZero;
154
+ _this.localRoapMessage = event.roapMessage;
155
+ _this.sendCallStateMachineEvt({
156
+ type: 'E_SEND_CALL_SETUP',
157
+ data: event.roapMessage
158
+ });
159
+ return _context.abrupt("continue", 9);
160
+ case 4:
161
+ if (event.roapMessage.sdp) {
162
+ _context.next = 5;
163
+ break;
164
+ }
165
+ _Logger.default.warn('Received OFFER without SDP from media SDK', {
166
+ file: _constants.CALL_FILE,
167
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
168
+ });
169
+ return _context.abrupt("continue", 9);
170
+ case 5:
171
+ event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
172
+ _this.localRoapMessage = event.roapMessage;
173
+ if (_this.connectPending) {
174
+ _this.sendCallStateMachineEvt({
175
+ type: 'E_SEND_CALL_CONNECT'
176
+ });
177
+ }
178
+ _this.sendMediaStateMachineEvt({
179
+ type: 'E_SEND_ROAP_ANSWER',
180
+ data: event.roapMessage
181
+ });
182
+ return _context.abrupt("continue", 9);
183
+ case 6:
184
+ _this.sendMediaStateMachineEvt({
185
+ type: 'E_ROAP_ERROR',
186
+ data: event.roapMessage
187
+ });
188
+ return _context.abrupt("continue", 9);
189
+ case 7:
190
+ if (event.roapMessage.sdp) {
191
+ _context.next = 8;
192
+ break;
193
+ }
194
+ _Logger.default.warn('Received OFFER without SDP from media SDK', {
195
+ file: _constants.CALL_FILE,
196
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
197
+ });
198
+ return _context.abrupt("continue", 9);
199
+ case 8:
200
+ event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
201
+ _this.localRoapMessage = event.roapMessage;
202
+ if (_this.connectPending) {
203
+ _this.sendCallStateMachineEvt({
204
+ type: 'E_SEND_CALL_CONNECT'
205
+ });
206
+ }
207
+ _this.sendMediaStateMachineEvt({
208
+ type: 'E_SEND_ROAP_OFFER',
209
+ data: event.roapMessage
210
+ });
211
+ return _context.abrupt("continue", 9);
212
+ case 9:
213
+ case "end":
214
+ return _context.stop();
215
+ }
216
+ }, _callee);
217
+ }));
218
+ return function (_x) {
219
+ return _ref.apply(this, arguments);
220
+ };
221
+ }());
222
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
223
+ (0, _defineProperty2.default)(_this, "handleRemoteTrackAdded", function (event) {
224
+ if (event.type === _types3.MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {
225
+ _this.emit(_types3.CALL_EVENT_KEYS.REMOTE_MEDIA, event.track);
226
+ }
227
+ });
228
+ (0, _defineProperty2.default)(_this, "handleIceGatheringStateChanged", function (event) {
229
+ var iceGatheringState = Call.getPeerConnectionStateFromEvent(event, 'iceGatheringState');
230
+ _Logger.default.info("ICE gathering state changed to: ".concat(iceGatheringState), {
231
+ file: _constants.CALL_FILE,
232
+ method: _constants.METHODS.MEDIA_ICE_EVENTS_LISTENER
233
+ });
234
+ _this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA, _types5.MEDIA_CONNECTION_ACTION.ICE_GATHERING_STATE_CHANGED, _types5.METRIC_TYPE.BEHAVIORAL, _this.callId, _this.correlationId, undefined, undefined, iceGatheringState);
235
+ });
236
+ (0, _defineProperty2.default)(_this, "handlePeerConnectionStateChanged", function (event) {
237
+ var connectionState = Call.getPeerConnectionStateFromEvent(event, 'connectionState');
238
+ _Logger.default.info("Peer connection state changed to: ".concat(connectionState), {
239
+ file: _constants.CALL_FILE,
240
+ method: _constants.METHODS.MEDIA_ICE_EVENTS_LISTENER
241
+ });
242
+ _this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA, _types5.MEDIA_CONNECTION_ACTION.PEER_CONNECTION_STATE_CHANGED, _types5.METRIC_TYPE.BEHAVIORAL, _this.callId, _this.correlationId, undefined, undefined, connectionState);
243
+ });
244
+ (0, _defineProperty2.default)(_this, "handleIceConnectionStateChanged", function (event) {
245
+ var iceConnectionState = Call.getPeerConnectionStateFromEvent(event, 'iceConnectionState');
246
+ _Logger.default.info("ICE connection state changed to: ".concat(iceConnectionState), {
247
+ file: _constants.CALL_FILE,
248
+ method: _constants.METHODS.MEDIA_ICE_EVENTS_LISTENER
249
+ });
250
+ _this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA, _types5.MEDIA_CONNECTION_ACTION.ICE_CONNECTION_STATE_CHANGED, _types5.METRIC_TYPE.BEHAVIORAL, _this.callId, _this.correlationId, undefined, undefined, iceConnectionState);
251
+ });
252
+ (0, _defineProperty2.default)(_this, "handleIceCandidateError", function (event) {
253
+ var _event$address, _event$port;
254
+ var iceErrorPayload = {
255
+ address: (_event$address = event.address) !== null && _event$address !== void 0 ? _event$address : null,
256
+ errorCode: event.errorCode,
257
+ errorText: event.errorText,
258
+ port: (_event$port = event.port) !== null && _event$port !== void 0 ? _event$port : null,
259
+ url: event.url
260
+ };
261
+ _Logger.default.warn("ICE candidate error occurred: ".concat((0, _stringify.default)(iceErrorPayload)), {
262
+ file: _constants.CALL_FILE,
263
+ method: _constants.METHODS.MEDIA_ICE_EVENTS_LISTENER
264
+ });
265
+ var callError = (0, _CallError.createCallError)("ICE candidate error occurred: ".concat((0, _stringify.default)(iceErrorPayload)), {
266
+ file: _constants.CALL_FILE,
267
+ method: _constants.METHODS.MEDIA_ICE_EVENTS_LISTENER
268
+ }, _types.ERROR_TYPE.CALL_ERROR, _this.correlationId, _types.ERROR_LAYER.MEDIA);
269
+ _this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA_ERROR, _types5.MEDIA_CONNECTION_ACTION.ICE_CANDIDATE_ERROR, _types5.METRIC_TYPE.BEHAVIORAL, _this.callId, _this.correlationId, undefined, undefined, undefined, callError);
270
+ });
271
+ (0, _defineProperty2.default)(_this, "handleRoapFailure", function (error) {
272
+ var failureMessage = error.message || 'Unknown ROAP failure received from media SDK';
273
+ _Logger.default.warn("ROAP failure occurred: ".concat(failureMessage), {
274
+ file: _constants.CALL_FILE,
275
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
276
+ });
277
+ var callError = (0, _CallError.createCallError)("ROAP failure occurred: ".concat(failureMessage), {
278
+ file: _constants.CALL_FILE,
279
+ method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
280
+ }, _types.ERROR_TYPE.CALL_ERROR, _this.correlationId, _types.ERROR_LAYER.MEDIA);
281
+ _this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA_ERROR, _types5.MEDIA_CONNECTION_ACTION.ROAP_FAILURE, _types5.METRIC_TYPE.BEHAVIORAL, _this.callId, _this.correlationId, undefined, undefined, undefined, callError);
282
+ });
99
283
  (0, _defineProperty2.default)(_this, "callKeepaliveRetryCallback", function (interval) {
100
284
  if (_this.callKeepaliveRetryCount === _constants.MAX_CALL_KEEPALIVE_RETRY_COUNT) {
101
285
  _Logger.default.warn("Max keepalive retry attempts reached. Aborting call keepalive for callId: ".concat(_this.callId), {
@@ -105,35 +289,35 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
105
289
  return;
106
290
  }
107
291
  _this.callKeepaliveRetryCount += 1;
108
- setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
109
- var _t;
110
- return _regenerator.default.wrap(function (_context) {
111
- while (1) switch (_context.prev = _context.next) {
292
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
293
+ var _t2;
294
+ return _regenerator.default.wrap(function (_context2) {
295
+ while (1) switch (_context2.prev = _context2.next) {
112
296
  case 0:
113
- _context.prev = 0;
114
- _context.next = 1;
297
+ _context2.prev = 0;
298
+ _context2.next = 1;
115
299
  return _this.postStatus();
116
300
  case 1:
117
301
  _this.scheduleCallKeepaliveInterval();
118
- _context.next = 3;
302
+ _context2.next = 3;
119
303
  break;
120
304
  case 2:
121
- _context.prev = 2;
122
- _t = _context["catch"](0);
123
- _context.next = 3;
124
- return _this.handleCallKeepaliveError(_t);
305
+ _context2.prev = 2;
306
+ _t2 = _context2["catch"](0);
307
+ _context2.next = 3;
308
+ return _this.handleCallKeepaliveError(_t2);
125
309
  case 3:
126
310
  case "end":
127
- return _context.stop();
311
+ return _context2.stop();
128
312
  }
129
- }, _callee, null, [[0, 2]]);
313
+ }, _callee2, null, [[0, 2]]);
130
314
  })), interval * 1000);
131
315
  });
132
316
  (0, _defineProperty2.default)(_this, "handleCallKeepaliveError", /*#__PURE__*/function () {
133
- var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(err) {
317
+ var _ref3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(err) {
134
318
  var error, abort;
135
- return _regenerator.default.wrap(function (_context2) {
136
- while (1) switch (_context2.prev = _context2.next) {
319
+ return _regenerator.default.wrap(function (_context3) {
320
+ while (1) switch (_context3.prev = _context3.next) {
137
321
  case 0:
138
322
  error = err;
139
323
  /* We are clearing the timer here as all are error scenarios. Only scenario where
@@ -145,13 +329,13 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
145
329
  if (_this.sessionTimer) {
146
330
  clearInterval(_this.sessionTimer);
147
331
  }
148
- _context2.next = 1;
332
+ _context3.next = 1;
149
333
  return (0, _Utils.handleCallErrors)(function (callError) {
150
334
  _this.emit(_types3.CALL_EVENT_KEYS.CALL_ERROR, callError);
151
335
  _this.submitCallErrorMetric(callError);
152
336
  }, _types.ERROR_LAYER.CALL_CONTROL, _this.callKeepaliveRetryCallback, _this.getCorrelationId(), error, 'handleCallEstablished', _constants.CALL_FILE);
153
337
  case 1:
154
- abort = _context2.sent;
338
+ abort = _context3.sent;
155
339
  if (abort) {
156
340
  _this.sendCallStateMachineEvt({
157
341
  type: 'E_SEND_CALL_DISCONNECT'
@@ -159,7 +343,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
159
343
  _this.emit(_types3.CALL_EVENT_KEYS.DISCONNECT, _this.getCorrelationId());
160
344
  _this.callKeepaliveRetryCount = 0;
161
345
  }
162
- _context2.next = 2;
346
+ _context3.next = 2;
163
347
  return (0, _Utils.uploadLogs)({
164
348
  correlationId: _this.correlationId,
165
349
  callId: _this.callId,
@@ -167,12 +351,12 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
167
351
  });
168
352
  case 2:
169
353
  case "end":
170
- return _context2.stop();
354
+ return _context3.stop();
171
355
  }
172
- }, _callee2);
356
+ }, _callee3);
173
357
  }));
174
- return function (_x) {
175
- return _ref2.apply(this, arguments);
358
+ return function (_x2) {
359
+ return _ref3.apply(this, arguments);
176
360
  };
177
361
  }());
178
362
  (0, _defineProperty2.default)(_this, "scheduleCallKeepaliveInterval", function () {
@@ -180,29 +364,30 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
180
364
  file: _constants.CALL_FILE,
181
365
  method: 'scheduleCallKeepaliveInterval'
182
366
  };
183
- _this.sessionTimer = setInterval(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
184
- var res, _t2;
185
- return _regenerator.default.wrap(function (_context3) {
186
- while (1) switch (_context3.prev = _context3.next) {
367
+ clearInterval(_this.sessionTimer);
368
+ _this.sessionTimer = setInterval(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
369
+ var res, _t3;
370
+ return _regenerator.default.wrap(function (_context4) {
371
+ while (1) switch (_context4.prev = _context4.next) {
187
372
  case 0:
188
- _context3.prev = 0;
189
- _context3.next = 1;
373
+ _context4.prev = 0;
374
+ _context4.next = 1;
190
375
  return _this.postStatus();
191
376
  case 1:
192
- res = _context3.sent;
377
+ res = _context4.sent;
193
378
  _Logger.default.info("Session refresh successful", loggerContext);
194
- _context3.next = 3;
379
+ _context4.next = 3;
195
380
  break;
196
381
  case 2:
197
- _context3.prev = 2;
198
- _t2 = _context3["catch"](0);
199
- _context3.next = 3;
200
- return _this.handleCallKeepaliveError(_t2);
382
+ _context4.prev = 2;
383
+ _t3 = _context4["catch"](0);
384
+ _context4.next = 3;
385
+ return _this.handleCallKeepaliveError(_t3);
201
386
  case 3:
202
387
  case "end":
203
- return _context3.stop();
388
+ return _context4.stop();
204
389
  }
205
- }, _callee3, null, [[0, 2]]);
390
+ }, _callee4, null, [[0, 2]]);
206
391
  })), _constants.DEFAULT_SESSION_TIMER);
207
392
  });
208
393
  /**
@@ -212,34 +397,34 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
212
397
  * @returns {Promise<void>}
213
398
  */
214
399
  (0, _defineProperty2.default)(_this, "forceSendStatsReport", /*#__PURE__*/function () {
215
- var _ref5 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4(_ref4) {
216
- var callFrom, loggerContext, errorInfo, errorStatus, _t3;
217
- return _regenerator.default.wrap(function (_context4) {
218
- while (1) switch (_context4.prev = _context4.next) {
400
+ var _ref6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(_ref5) {
401
+ var callFrom, loggerContext, errorInfo, errorStatus, _t4;
402
+ return _regenerator.default.wrap(function (_context5) {
403
+ while (1) switch (_context5.prev = _context5.next) {
219
404
  case 0:
220
- callFrom = _ref4.callFrom;
405
+ callFrom = _ref5.callFrom;
221
406
  loggerContext = {
222
407
  file: _constants.CALL_FILE,
223
408
  method: _constants.METHODS.FORCE_SEND_STATS_REPORT
224
409
  };
225
- _context4.prev = 1;
226
- _context4.next = 2;
410
+ _context5.prev = 1;
411
+ _context5.next = 2;
227
412
  return _this.mediaConnection.forceRtcMetricsSend();
228
413
  case 2:
229
414
  _Logger.default.info("Successfully uploaded available webrtc telemetry statistics", loggerContext);
230
415
  _Logger.default.info("callFrom: ".concat(callFrom), loggerContext);
231
- _context4.next = 5;
416
+ _context5.next = 5;
232
417
  break;
233
418
  case 3:
234
- _context4.prev = 3;
235
- _t3 = _context4["catch"](1);
236
- errorInfo = _t3;
237
- _context4.next = 4;
419
+ _context5.prev = 3;
420
+ _t4 = _context5["catch"](1);
421
+ errorInfo = _t4;
422
+ _context5.next = 4;
238
423
  return (0, _Utils.serviceErrorCodeHandler)(errorInfo, loggerContext);
239
424
  case 4:
240
- errorStatus = _context4.sent;
425
+ errorStatus = _context5.sent;
241
426
  _Logger.default.error("Failed to upload webrtc telemetry statistics. ".concat((0, _stringify.default)(errorStatus)), loggerContext);
242
- _context4.next = 5;
427
+ _context5.next = 5;
243
428
  return (0, _Utils.uploadLogs)({
244
429
  correlationId: _this.correlationId,
245
430
  callId: _this.callId,
@@ -247,12 +432,12 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
247
432
  });
248
433
  case 5:
249
434
  case "end":
250
- return _context4.stop();
435
+ return _context5.stop();
251
436
  }
252
- }, _callee4, null, [[1, 3]]);
437
+ }, _callee5, null, [[1, 3]]);
253
438
  }));
254
- return function (_x2) {
255
- return _ref5.apply(this, arguments);
439
+ return function (_x3) {
440
+ return _ref6.apply(this, arguments);
256
441
  };
257
442
  }());
258
443
  /**
@@ -300,10 +485,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
300
485
  * @param roapMessage
301
486
  */
302
487
  (0, _defineProperty2.default)(_this, "post", /*#__PURE__*/function () {
303
- var _ref6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(roapMessage) {
488
+ var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(roapMessage) {
304
489
  var basePayload;
305
- return _regenerator.default.wrap(function (_context5) {
306
- while (1) switch (_context5.prev = _context5.next) {
490
+ return _regenerator.default.wrap(function (_context6) {
491
+ while (1) switch (_context6.prev = _context6.next) {
307
492
  case 0:
308
493
  basePayload = {
309
494
  device: {
@@ -315,7 +500,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
315
500
  mediaId: (0, _uuid.v4)()
316
501
  }
317
502
  };
318
- return _context5.abrupt("return", _this.webex.request({
503
+ return _context6.abrupt("return", _this.apiRequest.makeRequest({
319
504
  uri: "".concat(_this.mobiusUrl).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(_this.deviceId, "/").concat(_constants.CALL_ENDPOINT_RESOURCE),
320
505
  method: _types2.HTTP_METHODS.POST,
321
506
  service: _types2.ALLOWED_SERVICES.MOBIUS,
@@ -329,12 +514,12 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
329
514
  }));
330
515
  case 1:
331
516
  case "end":
332
- return _context5.stop();
517
+ return _context6.stop();
333
518
  }
334
- }, _callee5);
519
+ }, _callee6);
335
520
  }));
336
- return function (_x3) {
337
- return _ref6.apply(this, arguments);
521
+ return function (_x4) {
522
+ return _ref7.apply(this, arguments);
338
523
  };
339
524
  }());
340
525
  (0, _defineProperty2.default)(_this, "onEffectEnabled", function () {
@@ -352,8 +537,8 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
352
537
  if (_this.localAudioStream) {
353
538
  var effect = _this.localAudioStream.getEffectByKind(_constants.NOISE_REDUCTION_EFFECT);
354
539
  if (effect === addedEffect) {
355
- effect.on(_webMediaEffects.EffectEvent.Enabled, _this.onEffectEnabled);
356
- effect.on(_webMediaEffects.EffectEvent.Disabled, _this.onEffectDisabled);
540
+ effect.on(_mediaHelpers.EffectEvent.Enabled, _this.onEffectEnabled);
541
+ effect.on(_mediaHelpers.EffectEvent.Disabled, _this.onEffectDisabled);
357
542
  }
358
543
  }
359
544
  });
@@ -484,6 +669,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
484
669
  _this.mobiusUrl = activeUrl;
485
670
  _this.receivedRoapOKSeq = 0;
486
671
  _this.mediaNegotiationCompleted = false;
672
+ _this.connectPending = false;
487
673
  _Logger.default.info("Webex Calling Url:- ".concat(_this.mobiusUrl), {
488
674
  file: _constants.CALL_FILE,
489
675
  method: _constants.METHODS.CONSTRUCTOR
@@ -505,6 +691,9 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
505
691
  _this.rtcMetrics = new _internalPluginMetrics.RtcMetrics(_this.webex, {
506
692
  callId: _this.callId
507
693
  }, _this.correlationId);
694
+ _this.apiRequest = _request.APIRequest.getInstance({
695
+ webex: _this.webex
696
+ });
508
697
  var callMachine = (0, _xstate.createMachine)({
509
698
  schema: {
510
699
  context: {},
@@ -689,6 +878,13 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
689
878
  }
690
879
  },
691
880
  on: {
881
+ E_SEND_CALL_CONNECT: {
882
+ cond: function cond() {
883
+ return _this.connectPending;
884
+ },
885
+ target: 'S_SEND_CALL_CONNECT',
886
+ actions: ['outgoingCallConnect']
887
+ },
692
888
  E_CALL_ESTABLISHED: {
693
889
  target: 'S_CALL_ESTABLISHED',
694
890
  actions: ['callEstablished']
@@ -1243,22 +1439,22 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1243
1439
  }, {
1244
1440
  key: "handleOutgoingCallSetup",
1245
1441
  value: (function () {
1246
- var _handleOutgoingCallSetup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6(event) {
1442
+ var _handleOutgoingCallSetup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(event) {
1247
1443
  var _this2 = this;
1248
- var message, response, errData, _t4;
1249
- return _regenerator.default.wrap(function (_context6) {
1250
- while (1) switch (_context6.prev = _context6.next) {
1444
+ var message, response, errData, _t5;
1445
+ return _regenerator.default.wrap(function (_context7) {
1446
+ while (1) switch (_context7.prev = _context7.next) {
1251
1447
  case 0:
1252
1448
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1253
1449
  file: _constants.CALL_FILE,
1254
1450
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_SETUP
1255
1451
  });
1256
1452
  message = event.data;
1257
- _context6.prev = 1;
1258
- _context6.next = 2;
1453
+ _context7.prev = 1;
1454
+ _context7.next = 2;
1259
1455
  return this.post(message);
1260
1456
  case 2:
1261
- response = _context6.sent;
1457
+ response = _context7.sent;
1262
1458
  _Logger.default.info("Response: ".concat((0, _stringify.default)(response)), {
1263
1459
  file: _constants.CALL_FILE,
1264
1460
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_SETUP
@@ -1272,16 +1468,16 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1272
1468
  file: _constants.CALL_FILE,
1273
1469
  method: this.handleOutgoingCallSetup.name
1274
1470
  });
1275
- _context6.next = 4;
1471
+ _context7.next = 4;
1276
1472
  break;
1277
1473
  case 3:
1278
- _context6.prev = 3;
1279
- _t4 = _context6["catch"](1);
1280
- _Logger.default.error("Failed to setup the call: ".concat((0, _stringify.default)(_t4)), {
1474
+ _context7.prev = 3;
1475
+ _t5 = _context7["catch"](1);
1476
+ _Logger.default.error("Failed to setup the call: ".concat((0, _stringify.default)(_t5)), {
1281
1477
  file: _constants.CALL_FILE,
1282
1478
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_SETUP
1283
1479
  });
1284
- errData = _t4;
1480
+ errData = _t5;
1285
1481
  (0, _Utils.handleCallErrors)(function (error) {
1286
1482
  _this2.emit(_types3.CALL_EVENT_KEYS.CALL_ERROR, error);
1287
1483
  _this2.submitCallErrorMetric(error);
@@ -1295,7 +1491,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1295
1491
  function (interval) {
1296
1492
  return undefined;
1297
1493
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_OUTGOING_CALL_SETUP, _constants.CALL_FILE);
1298
- _context6.next = 4;
1494
+ _context7.next = 4;
1299
1495
  return (0, _Utils.uploadLogs)({
1300
1496
  correlationId: this.correlationId,
1301
1497
  callId: this.callId,
@@ -1303,11 +1499,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1303
1499
  });
1304
1500
  case 4:
1305
1501
  case "end":
1306
- return _context6.stop();
1502
+ return _context7.stop();
1307
1503
  }
1308
- }, _callee6, this, [[1, 3]]);
1504
+ }, _callee7, this, [[1, 3]]);
1309
1505
  }));
1310
- function handleOutgoingCallSetup(_x4) {
1506
+ function handleOutgoingCallSetup(_x5) {
1311
1507
  return _handleOutgoingCallSetup.apply(this, arguments);
1312
1508
  }
1313
1509
  return handleOutgoingCallSetup;
@@ -1322,21 +1518,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1322
1518
  }, {
1323
1519
  key: "handleCallHold",
1324
1520
  value: (function () {
1325
- var _handleCallHold = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(event) {
1521
+ var _handleCallHold = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9(event) {
1326
1522
  var _this3 = this;
1327
- var response, errData, _t5;
1328
- return _regenerator.default.wrap(function (_context8) {
1329
- while (1) switch (_context8.prev = _context8.next) {
1523
+ var response, errData, _t6;
1524
+ return _regenerator.default.wrap(function (_context9) {
1525
+ while (1) switch (_context9.prev = _context9.next) {
1330
1526
  case 0:
1331
1527
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1332
1528
  file: _constants.CALL_FILE,
1333
1529
  method: _constants.METHODS.HANDLE_CALL_HOLD
1334
1530
  });
1335
- _context8.prev = 1;
1336
- _context8.next = 2;
1531
+ _context9.prev = 1;
1532
+ _context9.next = 2;
1337
1533
  return this.postSSRequest(undefined, _types3.SUPPLEMENTARY_SERVICES.HOLD);
1338
1534
  case 2:
1339
- response = _context8.sent;
1535
+ response = _context9.sent;
1340
1536
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1341
1537
  file: _constants.CALL_FILE,
1342
1538
  method: _constants.METHODS.HANDLE_CALL_HOLD
@@ -1347,10 +1543,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1347
1543
  * received from Mobius and forwarded towards calling client
1348
1544
  */
1349
1545
  if (this.isHeld() === false) {
1350
- this.supplementaryServicesTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
1546
+ this.supplementaryServicesTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8() {
1351
1547
  var errorContext, callError;
1352
- return _regenerator.default.wrap(function (_context7) {
1353
- while (1) switch (_context7.prev = _context7.next) {
1548
+ return _regenerator.default.wrap(function (_context8) {
1549
+ while (1) switch (_context8.prev = _context8.next) {
1354
1550
  case 0:
1355
1551
  errorContext = {
1356
1552
  file: _constants.CALL_FILE,
@@ -1365,21 +1561,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1365
1561
  _this3.submitCallErrorMetric(callError);
1366
1562
  case 1:
1367
1563
  case "end":
1368
- return _context7.stop();
1564
+ return _context8.stop();
1369
1565
  }
1370
- }, _callee7);
1566
+ }, _callee8);
1371
1567
  })), _constants.SUPPLEMENTARY_SERVICES_TIMEOUT);
1372
1568
  }
1373
- _context8.next = 4;
1569
+ _context9.next = 4;
1374
1570
  break;
1375
1571
  case 3:
1376
- _context8.prev = 3;
1377
- _t5 = _context8["catch"](1);
1378
- _Logger.default.error("Failed to put the call on hold: ".concat((0, _stringify.default)(_t5)), {
1572
+ _context9.prev = 3;
1573
+ _t6 = _context9["catch"](1);
1574
+ _Logger.default.error("Failed to put the call on hold: ".concat((0, _stringify.default)(_t6)), {
1379
1575
  file: _constants.CALL_FILE,
1380
1576
  method: _constants.METHODS.HANDLE_CALL_HOLD
1381
1577
  });
1382
- errData = _t5;
1578
+ errData = _t6;
1383
1579
  (0, _Utils.handleCallErrors)(function (error) {
1384
1580
  _this3.emit(_types3.CALL_EVENT_KEYS.HOLD_ERROR, error);
1385
1581
  _this3.submitCallErrorMetric(error);
@@ -1393,7 +1589,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1393
1589
  function (interval) {
1394
1590
  return undefined;
1395
1591
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_CALL_HOLD, _constants.CALL_FILE);
1396
- _context8.next = 4;
1592
+ _context9.next = 4;
1397
1593
  return (0, _Utils.uploadLogs)({
1398
1594
  correlationId: this.correlationId,
1399
1595
  callId: this.callId,
@@ -1401,11 +1597,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1401
1597
  });
1402
1598
  case 4:
1403
1599
  case "end":
1404
- return _context8.stop();
1600
+ return _context9.stop();
1405
1601
  }
1406
- }, _callee8, this, [[1, 3]]);
1602
+ }, _callee9, this, [[1, 3]]);
1407
1603
  }));
1408
- function handleCallHold(_x5) {
1604
+ function handleCallHold(_x6) {
1409
1605
  return _handleCallHold.apply(this, arguments);
1410
1606
  }
1411
1607
  return handleCallHold;
@@ -1420,21 +1616,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1420
1616
  }, {
1421
1617
  key: "handleCallResume",
1422
1618
  value: (function () {
1423
- var _handleCallResume = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0(event) {
1619
+ var _handleCallResume = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1(event) {
1424
1620
  var _this4 = this;
1425
- var response, errData, _t6;
1426
- return _regenerator.default.wrap(function (_context0) {
1427
- while (1) switch (_context0.prev = _context0.next) {
1621
+ var response, errData, _t7;
1622
+ return _regenerator.default.wrap(function (_context1) {
1623
+ while (1) switch (_context1.prev = _context1.next) {
1428
1624
  case 0:
1429
1625
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1430
1626
  file: _constants.CALL_FILE,
1431
1627
  method: _constants.METHODS.HANDLE_CALL_RESUME
1432
1628
  });
1433
- _context0.prev = 1;
1434
- _context0.next = 2;
1629
+ _context1.prev = 1;
1630
+ _context1.next = 2;
1435
1631
  return this.postSSRequest(undefined, _types3.SUPPLEMENTARY_SERVICES.RESUME);
1436
1632
  case 2:
1437
- response = _context0.sent;
1633
+ response = _context1.sent;
1438
1634
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1439
1635
  file: _constants.CALL_FILE,
1440
1636
  method: _constants.METHODS.HANDLE_CALL_RESUME
@@ -1445,10 +1641,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1445
1641
  * received from Mobius on resuming the call and forwarded towards calling client
1446
1642
  */
1447
1643
  if (this.isHeld() === true) {
1448
- this.supplementaryServicesTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
1644
+ this.supplementaryServicesTimer = setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee0() {
1449
1645
  var errorContext, callError;
1450
- return _regenerator.default.wrap(function (_context9) {
1451
- while (1) switch (_context9.prev = _context9.next) {
1646
+ return _regenerator.default.wrap(function (_context0) {
1647
+ while (1) switch (_context0.prev = _context0.next) {
1452
1648
  case 0:
1453
1649
  errorContext = {
1454
1650
  file: _constants.CALL_FILE,
@@ -1463,21 +1659,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1463
1659
  _this4.submitCallErrorMetric(callError);
1464
1660
  case 1:
1465
1661
  case "end":
1466
- return _context9.stop();
1662
+ return _context0.stop();
1467
1663
  }
1468
- }, _callee9);
1664
+ }, _callee0);
1469
1665
  })), _constants.SUPPLEMENTARY_SERVICES_TIMEOUT);
1470
1666
  }
1471
- _context0.next = 4;
1667
+ _context1.next = 4;
1472
1668
  break;
1473
1669
  case 3:
1474
- _context0.prev = 3;
1475
- _t6 = _context0["catch"](1);
1476
- _Logger.default.error("Failed to resume the call: ".concat((0, _stringify.default)(_t6)), {
1670
+ _context1.prev = 3;
1671
+ _t7 = _context1["catch"](1);
1672
+ _Logger.default.error("Failed to resume the call: ".concat((0, _stringify.default)(_t7)), {
1477
1673
  file: _constants.CALL_FILE,
1478
1674
  method: _constants.METHODS.HANDLE_CALL_RESUME
1479
1675
  });
1480
- errData = _t6;
1676
+ errData = _t7;
1481
1677
  (0, _Utils.handleCallErrors)(function (error) {
1482
1678
  _this4.emit(_types3.CALL_EVENT_KEYS.RESUME_ERROR, error);
1483
1679
  _this4.submitCallErrorMetric(error);
@@ -1491,7 +1687,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1491
1687
  function (interval) {
1492
1688
  return undefined;
1493
1689
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_CALL_RESUME, _constants.CALL_FILE);
1494
- _context0.next = 4;
1690
+ _context1.next = 4;
1495
1691
  return (0, _Utils.uploadLogs)({
1496
1692
  correlationId: this.correlationId,
1497
1693
  callId: this.callId,
@@ -1499,11 +1695,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1499
1695
  });
1500
1696
  case 4:
1501
1697
  case "end":
1502
- return _context0.stop();
1698
+ return _context1.stop();
1503
1699
  }
1504
- }, _callee0, this, [[1, 3]]);
1700
+ }, _callee1, this, [[1, 3]]);
1505
1701
  }));
1506
- function handleCallResume(_x6) {
1702
+ function handleCallResume(_x7) {
1507
1703
  return _handleCallResume.apply(this, arguments);
1508
1704
  }
1509
1705
  return handleCallResume;
@@ -1592,35 +1788,35 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1592
1788
  }, {
1593
1789
  key: "handleOutgoingCallAlerting",
1594
1790
  value: (function () {
1595
- var _handleOutgoingCallAlerting = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee1(event) {
1791
+ var _handleOutgoingCallAlerting = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10(event) {
1596
1792
  var _this5 = this;
1597
- var res, errData, _t7;
1598
- return _regenerator.default.wrap(function (_context1) {
1599
- while (1) switch (_context1.prev = _context1.next) {
1793
+ var res, errData, _t8;
1794
+ return _regenerator.default.wrap(function (_context10) {
1795
+ while (1) switch (_context10.prev = _context10.next) {
1600
1796
  case 0:
1601
1797
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1602
1798
  file: _constants.CALL_FILE,
1603
1799
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_ALERTING
1604
1800
  });
1605
- _context1.prev = 1;
1606
- _context1.next = 2;
1801
+ _context10.prev = 1;
1802
+ _context10.next = 2;
1607
1803
  return this.patch(_types4.MobiusCallState.ALERTING);
1608
1804
  case 2:
1609
- res = _context1.sent;
1805
+ res = _context10.sent;
1610
1806
  _Logger.default.log("PATCH response: ".concat(res.statusCode), {
1611
1807
  file: _constants.CALL_FILE,
1612
1808
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_ALERTING
1613
1809
  });
1614
- _context1.next = 4;
1810
+ _context10.next = 4;
1615
1811
  break;
1616
1812
  case 3:
1617
- _context1.prev = 3;
1618
- _t7 = _context1["catch"](1);
1619
- _Logger.default.error("Failed to signal call progression: ".concat((0, _stringify.default)(_t7)), {
1813
+ _context10.prev = 3;
1814
+ _t8 = _context10["catch"](1);
1815
+ _Logger.default.error("Failed to signal call progression: ".concat((0, _stringify.default)(_t8)), {
1620
1816
  file: _constants.CALL_FILE,
1621
1817
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_ALERTING
1622
1818
  });
1623
- errData = _t7;
1819
+ errData = _t8;
1624
1820
  (0, _Utils.handleCallErrors)(function (error) {
1625
1821
  _this5.emit(_types3.CALL_EVENT_KEYS.CALL_ERROR, error);
1626
1822
  _this5.submitCallErrorMetric(error);
@@ -1634,7 +1830,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1634
1830
  function (interval) {
1635
1831
  return undefined;
1636
1832
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_OUTGOING_CALL_ALERTING, _constants.CALL_FILE);
1637
- _context1.next = 4;
1833
+ _context10.next = 4;
1638
1834
  return (0, _Utils.uploadLogs)({
1639
1835
  correlationId: this.correlationId,
1640
1836
  callId: this.callId,
@@ -1642,11 +1838,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1642
1838
  });
1643
1839
  case 4:
1644
1840
  case "end":
1645
- return _context1.stop();
1841
+ return _context10.stop();
1646
1842
  }
1647
- }, _callee1, this, [[1, 3]]);
1843
+ }, _callee10, this, [[1, 3]]);
1648
1844
  }));
1649
- function handleOutgoingCallAlerting(_x7) {
1845
+ function handleOutgoingCallAlerting(_x8) {
1650
1846
  return _handleOutgoingCallAlerting.apply(this, arguments);
1651
1847
  }
1652
1848
  return handleOutgoingCallAlerting;
@@ -1687,12 +1883,13 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1687
1883
  }, {
1688
1884
  key: "handleOutgoingCallConnect",
1689
1885
  value: (function () {
1690
- var _handleOutgoingCallConnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee10(event) {
1886
+ var _handleOutgoingCallConnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
1691
1887
  var _this6 = this;
1692
- var res, errData, _t8;
1693
- return _regenerator.default.wrap(function (_context10) {
1694
- while (1) switch (_context10.prev = _context10.next) {
1888
+ var res, errData, _t9;
1889
+ return _regenerator.default.wrap(function (_context11) {
1890
+ while (1) switch (_context11.prev = _context11.next) {
1695
1891
  case 0:
1892
+ this.connectPending = false;
1696
1893
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1697
1894
  file: _constants.CALL_FILE,
1698
1895
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_CONNECT
@@ -1700,38 +1897,39 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1700
1897
 
1701
1898
  /* We should have received an Offer by now */
1702
1899
  if (this.remoteRoapMessage) {
1703
- _context10.next = 1;
1900
+ _context11.next = 1;
1704
1901
  break;
1705
1902
  }
1706
1903
  _Logger.default.warn('Offer not yet received from remote end... Exiting', {
1707
1904
  file: _constants.CALL_FILE,
1708
1905
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_CONNECT
1709
1906
  });
1710
- return _context10.abrupt("return");
1907
+ this.connectPending = true;
1908
+ return _context11.abrupt("return");
1711
1909
  case 1:
1712
- _context10.prev = 1;
1910
+ _context11.prev = 1;
1713
1911
  /* Start Offer/Answer as we might have buffered the offer by now */
1714
1912
  this.mediaConnection.roapMessageReceived(this.remoteRoapMessage);
1715
1913
 
1716
1914
  /* send call_connect PATCH */
1717
- _context10.next = 2;
1915
+ _context11.next = 2;
1718
1916
  return this.patch(_types4.MobiusCallState.CONNECTED);
1719
1917
  case 2:
1720
- res = _context10.sent;
1918
+ res = _context11.sent;
1721
1919
  _Logger.default.log("PATCH response: ".concat(res.statusCode), {
1722
1920
  file: _constants.CALL_FILE,
1723
1921
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_CONNECT
1724
1922
  });
1725
- _context10.next = 4;
1923
+ _context11.next = 4;
1726
1924
  break;
1727
1925
  case 3:
1728
- _context10.prev = 3;
1729
- _t8 = _context10["catch"](1);
1730
- _Logger.default.error("Failed to connect the call: ".concat((0, _stringify.default)(_t8)), {
1926
+ _context11.prev = 3;
1927
+ _t9 = _context11["catch"](1);
1928
+ _Logger.default.error("Failed to connect the call: ".concat((0, _stringify.default)(_t9)), {
1731
1929
  file: _constants.CALL_FILE,
1732
1930
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_CONNECT
1733
1931
  });
1734
- errData = _t8;
1932
+ errData = _t9;
1735
1933
  (0, _Utils.handleCallErrors)(function (error) {
1736
1934
  _this6.emit(_types3.CALL_EVENT_KEYS.CALL_ERROR, error);
1737
1935
  _this6.submitCallErrorMetric(error);
@@ -1745,7 +1943,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1745
1943
  function (interval) {
1746
1944
  return undefined;
1747
1945
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_OUTGOING_CALL_CONNECT, _constants.CALL_FILE);
1748
- _context10.next = 4;
1946
+ _context11.next = 4;
1749
1947
  return (0, _Utils.uploadLogs)({
1750
1948
  correlationId: this.correlationId,
1751
1949
  callId: this.callId,
@@ -1753,11 +1951,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1753
1951
  });
1754
1952
  case 4:
1755
1953
  case "end":
1756
- return _context10.stop();
1954
+ return _context11.stop();
1757
1955
  }
1758
- }, _callee10, this, [[1, 3]]);
1956
+ }, _callee11, this, [[1, 3]]);
1759
1957
  }));
1760
- function handleOutgoingCallConnect(_x8) {
1958
+ function handleOutgoingCallConnect(_x9) {
1761
1959
  return _handleOutgoingCallConnect.apply(this, arguments);
1762
1960
  }
1763
1961
  return handleOutgoingCallConnect;
@@ -1772,10 +1970,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1772
1970
  }, {
1773
1971
  key: "handleIncomingCallDisconnect",
1774
1972
  value: (function () {
1775
- var _handleIncomingCallDisconnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee11(event) {
1776
- var response, _t9;
1777
- return _regenerator.default.wrap(function (_context11) {
1778
- while (1) switch (_context11.prev = _context11.next) {
1973
+ var _handleIncomingCallDisconnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12(event) {
1974
+ var response, _t0;
1975
+ return _regenerator.default.wrap(function (_context12) {
1976
+ while (1) switch (_context12.prev = _context12.next) {
1779
1977
  case 0:
1780
1978
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1781
1979
  file: _constants.CALL_FILE,
@@ -1783,21 +1981,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1783
1981
  });
1784
1982
  this.emit(_types3.CALL_EVENT_KEYS.DISCONNECT, this.correlationId);
1785
1983
  this.setDisconnectReason();
1786
- _context11.prev = 1;
1787
- _context11.next = 2;
1984
+ _context12.prev = 1;
1985
+ _context12.next = 2;
1788
1986
  return this.delete();
1789
1987
  case 2:
1790
- response = _context11.sent;
1988
+ response = _context12.sent;
1791
1989
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1792
1990
  file: _constants.CALL_FILE,
1793
1991
  method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1794
1992
  });
1795
- _context11.next = 4;
1993
+ _context12.next = 4;
1796
1994
  break;
1797
1995
  case 3:
1798
- _context11.prev = 3;
1799
- _t9 = _context11["catch"](1);
1800
- _Logger.default.warn("Failed to delete the call: ".concat((0, _stringify.default)(_t9)), {
1996
+ _context12.prev = 3;
1997
+ _t0 = _context12["catch"](1);
1998
+ _Logger.default.warn("Failed to delete the call: ".concat((0, _stringify.default)(_t0)), {
1801
1999
  file: _constants.CALL_FILE,
1802
2000
  method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1803
2001
  });
@@ -1819,10 +2017,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1819
2017
 
1820
2018
  /* istanbul ignore else */
1821
2019
  if (this.mediaConnection) {
2020
+ this.unregisterMediaConnectionListeners();
1822
2021
  this.mediaConnection.close();
1823
2022
  _Logger.default.info('Closing media channel', {
1824
2023
  file: _constants.CALL_FILE,
1825
- method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
2024
+ method: _constants.METHODS.HANDLE_INCOMING_CALL_DISCONNECT
1826
2025
  });
1827
2026
  }
1828
2027
  this.sendMediaStateMachineEvt({
@@ -1833,11 +2032,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1833
2032
  });
1834
2033
  case 5:
1835
2034
  case "end":
1836
- return _context11.stop();
2035
+ return _context12.stop();
1837
2036
  }
1838
- }, _callee11, this, [[1, 3]]);
2037
+ }, _callee12, this, [[1, 3]]);
1839
2038
  }));
1840
- function handleIncomingCallDisconnect(_x9) {
2039
+ function handleIncomingCallDisconnect(_x0) {
1841
2040
  return _handleIncomingCallDisconnect.apply(this, arguments);
1842
2041
  }
1843
2042
  return handleIncomingCallDisconnect;
@@ -1852,21 +2051,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1852
2051
  }, {
1853
2052
  key: "handleOutgoingCallDisconnect",
1854
2053
  value: (function () {
1855
- var _handleOutgoingCallDisconnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee12(event) {
1856
- var response, _t0;
1857
- return _regenerator.default.wrap(function (_context12) {
1858
- while (1) switch (_context12.prev = _context12.next) {
2054
+ var _handleOutgoingCallDisconnect = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(event) {
2055
+ var response, _t1;
2056
+ return _regenerator.default.wrap(function (_context13) {
2057
+ while (1) switch (_context13.prev = _context13.next) {
1859
2058
  case 0:
1860
2059
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1861
2060
  file: _constants.CALL_FILE,
1862
2061
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
1863
2062
  });
1864
2063
  this.setDisconnectReason();
1865
- _context12.prev = 1;
1866
- _context12.next = 2;
2064
+ _context13.prev = 1;
2065
+ _context13.next = 2;
1867
2066
  return this.delete();
1868
2067
  case 2:
1869
- response = _context12.sent;
2068
+ response = _context13.sent;
1870
2069
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1871
2070
  file: _constants.CALL_FILE,
1872
2071
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
@@ -1875,11 +2074,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1875
2074
  file: _constants.CALL_FILE,
1876
2075
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
1877
2076
  });
1878
- _context12.next = 4;
2077
+ _context13.next = 4;
1879
2078
  break;
1880
2079
  case 3:
1881
- _context12.prev = 3;
1882
- _t0 = _context12["catch"](1);
2080
+ _context13.prev = 3;
2081
+ _t1 = _context13["catch"](1);
1883
2082
  _Logger.default.warn('Failed to delete the call', {
1884
2083
  file: _constants.CALL_FILE,
1885
2084
  method: _constants.METHODS.HANDLE_OUTGOING_CALL_DISCONNECT
@@ -1902,6 +2101,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1902
2101
 
1903
2102
  /* istanbul ignore else */
1904
2103
  if (this.mediaConnection) {
2104
+ this.unregisterMediaConnectionListeners();
1905
2105
  this.mediaConnection.close();
1906
2106
  _Logger.default.info('Closing media channel', {
1907
2107
  file: _constants.CALL_FILE,
@@ -1916,11 +2116,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1916
2116
  });
1917
2117
  case 5:
1918
2118
  case "end":
1919
- return _context12.stop();
2119
+ return _context13.stop();
1920
2120
  }
1921
- }, _callee12, this, [[1, 3]]);
2121
+ }, _callee13, this, [[1, 3]]);
1922
2122
  }));
1923
- function handleOutgoingCallDisconnect(_x0) {
2123
+ function handleOutgoingCallDisconnect(_x1) {
1924
2124
  return _handleOutgoingCallDisconnect.apply(this, arguments);
1925
2125
  }
1926
2126
  return handleOutgoingCallDisconnect;
@@ -1956,10 +2156,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1956
2156
  }, {
1957
2157
  key: "handleUnknownState",
1958
2158
  value: (function () {
1959
- var _handleUnknownState = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee13(event) {
1960
- var eventData, response, _t1;
1961
- return _regenerator.default.wrap(function (_context13) {
1962
- while (1) switch (_context13.prev = _context13.next) {
2159
+ var _handleUnknownState = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14(event) {
2160
+ var eventData, response, _t10;
2161
+ return _regenerator.default.wrap(function (_context14) {
2162
+ while (1) switch (_context14.prev = _context14.next) {
1963
2163
  case 0:
1964
2164
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
1965
2165
  file: _constants.CALL_FILE,
@@ -1980,21 +2180,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
1980
2180
  /* We need to clear the call at Mobius too. For delete failure
1981
2181
  * error handling is not required
1982
2182
  */
1983
- _context13.prev = 1;
2183
+ _context14.prev = 1;
1984
2184
  this.setDisconnectReason();
1985
- _context13.next = 2;
2185
+ _context14.next = 2;
1986
2186
  return this.delete();
1987
2187
  case 2:
1988
- response = _context13.sent;
2188
+ response = _context14.sent;
1989
2189
  _Logger.default.log("Response code: ".concat(response.statusCode), {
1990
2190
  file: _constants.CALL_FILE,
1991
2191
  method: _constants.METHODS.HANDLE_UNKNOWN_STATE
1992
2192
  });
1993
- _context13.next = 4;
2193
+ _context14.next = 4;
1994
2194
  break;
1995
2195
  case 3:
1996
- _context13.prev = 3;
1997
- _t1 = _context13["catch"](1);
2196
+ _context14.prev = 3;
2197
+ _t10 = _context14["catch"](1);
1998
2198
  _Logger.default.warn('Failed to delete the call', {
1999
2199
  file: _constants.CALL_FILE,
2000
2200
  method: _constants.METHODS.HANDLE_UNKNOWN_STATE
@@ -2010,6 +2210,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2010
2210
  clearInterval(this.sessionTimer);
2011
2211
  }
2012
2212
  if (this.mediaConnection) {
2213
+ this.unregisterMediaConnectionListeners();
2013
2214
  this.mediaConnection.close();
2014
2215
  _Logger.default.info('Closing media channel', {
2015
2216
  file: _constants.CALL_FILE,
@@ -2024,11 +2225,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2024
2225
  });
2025
2226
  case 5:
2026
2227
  case "end":
2027
- return _context13.stop();
2228
+ return _context14.stop();
2028
2229
  }
2029
- }, _callee13, this, [[1, 3]]);
2230
+ }, _callee14, this, [[1, 3]]);
2030
2231
  }));
2031
- function handleUnknownState(_x1) {
2232
+ function handleUnknownState(_x10) {
2032
2233
  return _handleUnknownState.apply(this, arguments);
2033
2234
  }
2034
2235
  return handleUnknownState;
@@ -2097,27 +2298,27 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2097
2298
  }, {
2098
2299
  key: "handleRoapEstablished",
2099
2300
  value: (function () {
2100
- var _handleRoapEstablished = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee14(context, event) {
2301
+ var _handleRoapEstablished = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(context, event) {
2101
2302
  var _this8 = this;
2102
- var _ref9, received, message, res, errData, _t10;
2103
- return _regenerator.default.wrap(function (_context14) {
2104
- while (1) switch (_context14.prev = _context14.next) {
2303
+ var _ref0, received, message, res, errData, _t11;
2304
+ return _regenerator.default.wrap(function (_context15) {
2305
+ while (1) switch (_context15.prev = _context15.next) {
2105
2306
  case 0:
2106
2307
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
2107
2308
  file: _constants.CALL_FILE,
2108
2309
  method: _constants.METHODS.HANDLE_ROAP_ESTABLISHED
2109
2310
  });
2110
- _ref9 = event.data, received = _ref9.received, message = _ref9.message;
2311
+ _ref0 = event.data, received = _ref0.received, message = _ref0.message;
2111
2312
  this.receivedRoapOKSeq = message.seq;
2112
2313
  if (received) {
2113
- _context14.next = 5;
2314
+ _context15.next = 5;
2114
2315
  break;
2115
2316
  }
2116
2317
  _Logger.default.info('Sending Media Ok to the remote End', {
2117
2318
  file: _constants.CALL_FILE,
2118
2319
  method: _constants.METHODS.HANDLE_ROAP_ESTABLISHED
2119
2320
  });
2120
- _context14.prev = 1;
2321
+ _context15.prev = 1;
2121
2322
  if (this.callStateMachine.state.value === 'S_RECV_CALL_PROGRESS' || this.callStateMachine.state.value === 'S_SEND_CALL_SETUP') {
2122
2323
  _Logger.default.info('Media negotiation completed before call connect. Setting media negotiation completed flag.', {
2123
2324
  file: _constants.CALL_FILE,
@@ -2126,10 +2327,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2126
2327
  this.mediaNegotiationCompleted = true;
2127
2328
  }
2128
2329
  message.seq = this.seq;
2129
- _context14.next = 2;
2330
+ _context15.next = 2;
2130
2331
  return this.postMedia(message);
2131
2332
  case 2:
2132
- res = _context14.sent;
2333
+ res = _context15.sent;
2133
2334
  _Logger.default.log("Response code: ".concat(res.statusCode), {
2134
2335
  file: _constants.CALL_FILE,
2135
2336
  method: _constants.METHODS.HANDLE_ROAP_ESTABLISHED
@@ -2140,16 +2341,16 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2140
2341
  type: 'E_CALL_ESTABLISHED'
2141
2342
  });
2142
2343
  }
2143
- _context14.next = 4;
2344
+ _context15.next = 4;
2144
2345
  break;
2145
2346
  case 3:
2146
- _context14.prev = 3;
2147
- _t10 = _context14["catch"](1);
2347
+ _context15.prev = 3;
2348
+ _t11 = _context15["catch"](1);
2148
2349
  _Logger.default.warn('Failed to process MediaOk request', {
2149
2350
  file: _constants.CALL_FILE,
2150
2351
  method: _constants.METHODS.HANDLE_ROAP_ESTABLISHED
2151
2352
  });
2152
- errData = _t10;
2353
+ errData = _t11;
2153
2354
  (0, _Utils.handleCallErrors)(this.getEmitterCallback(errData), _types.ERROR_LAYER.MEDIA, function (interval) {
2154
2355
  /* Start retry if only it is a midcall case */
2155
2356
  /* istanbul ignore else */
@@ -2162,14 +2363,14 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2162
2363
  }, interval * 1000);
2163
2364
  }
2164
2365
  }, this.getCorrelationId(), errData, this.handleRoapEstablished.name, _constants.CALL_FILE);
2165
- _context14.next = 4;
2366
+ _context15.next = 4;
2166
2367
  return (0, _Utils.uploadLogs)({
2167
2368
  correlationId: this.correlationId,
2168
2369
  callId: this.callId,
2169
2370
  broadworksCorrelationInfo: this.broadworksCorrelationInfo
2170
2371
  });
2171
2372
  case 4:
2172
- _context14.next = 6;
2373
+ _context15.next = 6;
2173
2374
  break;
2174
2375
  case 5:
2175
2376
  _Logger.default.info('Notifying internal-media-core about ROAP OK message', {
@@ -2203,11 +2404,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2203
2404
  }
2204
2405
  case 6:
2205
2406
  case "end":
2206
- return _context14.stop();
2407
+ return _context15.stop();
2207
2408
  }
2208
- }, _callee14, this, [[1, 3]]);
2409
+ }, _callee15, this, [[1, 3]]);
2209
2410
  }));
2210
- function handleRoapEstablished(_x10, _x11) {
2411
+ function handleRoapEstablished(_x11, _x12) {
2211
2412
  return _handleRoapEstablished.apply(this, arguments);
2212
2413
  }
2213
2414
  return handleRoapEstablished;
@@ -2222,11 +2423,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2222
2423
  }, {
2223
2424
  key: "handleRoapError",
2224
2425
  value: (function () {
2225
- var _handleRoapError = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee15(context, event) {
2426
+ var _handleRoapError = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16(context, event) {
2226
2427
  var _this9 = this;
2227
- var message, res, errData, _t11;
2228
- return _regenerator.default.wrap(function (_context15) {
2229
- while (1) switch (_context15.prev = _context15.next) {
2428
+ var message, res, errData, _t12;
2429
+ return _regenerator.default.wrap(function (_context16) {
2430
+ while (1) switch (_context16.prev = _context16.next) {
2230
2431
  case 0:
2231
2432
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
2232
2433
  file: _constants.CALL_FILE,
@@ -2237,28 +2438,28 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2237
2438
  message = event.data;
2238
2439
  /* istanbul ignore else */
2239
2440
  if (!(message && message.messageType === 'ERROR')) {
2240
- _context15.next = 4;
2441
+ _context16.next = 4;
2241
2442
  break;
2242
2443
  }
2243
- _context15.prev = 1;
2244
- _context15.next = 2;
2444
+ _context16.prev = 1;
2445
+ _context16.next = 2;
2245
2446
  return this.postMedia(message);
2246
2447
  case 2:
2247
- res = _context15.sent;
2448
+ res = _context16.sent;
2248
2449
  _Logger.default.info("Response code: ".concat(res.statusCode), {
2249
2450
  file: _constants.CALL_FILE,
2250
2451
  method: _constants.METHODS.HANDLE_ROAP_ERROR
2251
2452
  });
2252
- _context15.next = 4;
2453
+ _context16.next = 4;
2253
2454
  break;
2254
2455
  case 3:
2255
- _context15.prev = 3;
2256
- _t11 = _context15["catch"](1);
2456
+ _context16.prev = 3;
2457
+ _t12 = _context16["catch"](1);
2257
2458
  _Logger.default.warn('Failed to communicate ROAP error to Webex Calling', {
2258
2459
  file: _constants.CALL_FILE,
2259
2460
  method: _constants.METHODS.HANDLE_ROAP_ERROR
2260
2461
  });
2261
- errData = _t11;
2462
+ errData = _t12;
2262
2463
  (0, _Utils.handleCallErrors)(function (error) {
2263
2464
  _this9.emit(_types3.CALL_EVENT_KEYS.CALL_ERROR, error);
2264
2465
  _this9.submitCallErrorMetric(error);
@@ -2268,7 +2469,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2268
2469
  function (interval) {
2269
2470
  return undefined;
2270
2471
  }, this.getCorrelationId(), errData, this.handleRoapError.name, _constants.CALL_FILE);
2271
- _context15.next = 4;
2472
+ _context16.next = 4;
2272
2473
  return (0, _Utils.uploadLogs)({
2273
2474
  correlationId: this.correlationId,
2274
2475
  callId: this.callId,
@@ -2291,11 +2492,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2291
2492
  }
2292
2493
  case 5:
2293
2494
  case "end":
2294
- return _context15.stop();
2495
+ return _context16.stop();
2295
2496
  }
2296
- }, _callee15, this, [[1, 3]]);
2497
+ }, _callee16, this, [[1, 3]]);
2297
2498
  }));
2298
- function handleRoapError(_x12, _x13) {
2499
+ function handleRoapError(_x13, _x14) {
2299
2500
  return _handleRoapError.apply(this, arguments);
2300
2501
  }
2301
2502
  return handleRoapError;
@@ -2310,11 +2511,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2310
2511
  }, {
2311
2512
  key: "handleOutgoingRoapOffer",
2312
2513
  value: (function () {
2313
- var _handleOutgoingRoapOffer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee16(context, event) {
2514
+ var _handleOutgoingRoapOffer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17(context, event) {
2314
2515
  var _this0 = this;
2315
- var message, res, errData, _t12;
2316
- return _regenerator.default.wrap(function (_context16) {
2317
- while (1) switch (_context16.prev = _context16.next) {
2516
+ var message, res, errData, _t13;
2517
+ return _regenerator.default.wrap(function (_context17) {
2518
+ while (1) switch (_context17.prev = _context17.next) {
2318
2519
  case 0:
2319
2520
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
2320
2521
  file: _constants.CALL_FILE,
@@ -2322,7 +2523,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2322
2523
  });
2323
2524
  message = event.data;
2324
2525
  if (message !== null && message !== void 0 && message.sdp) {
2325
- _context16.next = 1;
2526
+ _context17.next = 1;
2326
2527
  break;
2327
2528
  }
2328
2529
  _Logger.default.info('Initializing Offer...', {
@@ -2330,27 +2531,27 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2330
2531
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_OFFER
2331
2532
  });
2332
2533
  this.mediaConnection.initiateOffer();
2333
- return _context16.abrupt("return");
2534
+ return _context17.abrupt("return");
2334
2535
  case 1:
2335
- _context16.prev = 1;
2336
- _context16.next = 2;
2536
+ _context17.prev = 1;
2537
+ _context17.next = 2;
2337
2538
  return this.postMedia(message);
2338
2539
  case 2:
2339
- res = _context16.sent;
2540
+ res = _context17.sent;
2340
2541
  _Logger.default.log("Response code: ".concat(res.statusCode), {
2341
2542
  file: _constants.CALL_FILE,
2342
2543
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_OFFER
2343
2544
  });
2344
- _context16.next = 4;
2545
+ _context17.next = 4;
2345
2546
  break;
2346
2547
  case 3:
2347
- _context16.prev = 3;
2348
- _t12 = _context16["catch"](1);
2349
- _Logger.default.warn('Failed to process MediaOk request', {
2548
+ _context17.prev = 3;
2549
+ _t13 = _context17["catch"](1);
2550
+ _Logger.default.warn('Failed to send MediaOffer request', {
2350
2551
  file: _constants.CALL_FILE,
2351
2552
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_OFFER
2352
2553
  });
2353
- errData = _t12;
2554
+ errData = _t13;
2354
2555
  (0, _Utils.handleCallErrors)(this.getEmitterCallback(errData), _types.ERROR_LAYER.MEDIA, function (interval) {
2355
2556
  /* Start retry if only it is a midcall case */
2356
2557
  if (_this0.connected) {
@@ -2362,7 +2563,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2362
2563
  }, interval * 1000);
2363
2564
  }
2364
2565
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_OUTGOING_ROAP_OFFER, _constants.CALL_FILE);
2365
- _context16.next = 4;
2566
+ _context17.next = 4;
2366
2567
  return (0, _Utils.uploadLogs)({
2367
2568
  correlationId: this.correlationId,
2368
2569
  callId: this.callId,
@@ -2370,11 +2571,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2370
2571
  });
2371
2572
  case 4:
2372
2573
  case "end":
2373
- return _context16.stop();
2574
+ return _context17.stop();
2374
2575
  }
2375
- }, _callee16, this, [[1, 3]]);
2576
+ }, _callee17, this, [[1, 3]]);
2376
2577
  }));
2377
- function handleOutgoingRoapOffer(_x14, _x15) {
2578
+ function handleOutgoingRoapOffer(_x15, _x16) {
2378
2579
  return _handleOutgoingRoapOffer.apply(this, arguments);
2379
2580
  }
2380
2581
  return handleOutgoingRoapOffer;
@@ -2389,37 +2590,37 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2389
2590
  }, {
2390
2591
  key: "handleOutgoingRoapAnswer",
2391
2592
  value: (function () {
2392
- var _handleOutgoingRoapAnswer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee17(context, event) {
2593
+ var _handleOutgoingRoapAnswer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18(context, event) {
2393
2594
  var _this1 = this;
2394
- var message, res, errData, _t13;
2395
- return _regenerator.default.wrap(function (_context17) {
2396
- while (1) switch (_context17.prev = _context17.next) {
2595
+ var message, res, errData, _t14;
2596
+ return _regenerator.default.wrap(function (_context18) {
2597
+ while (1) switch (_context18.prev = _context18.next) {
2397
2598
  case 0:
2398
2599
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with: ").concat(this.getCorrelationId()), {
2399
2600
  file: _constants.CALL_FILE,
2400
2601
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_ANSWER
2401
2602
  });
2402
2603
  message = event.data;
2403
- _context17.prev = 1;
2604
+ _context18.prev = 1;
2404
2605
  message.seq = this.seq;
2405
- _context17.next = 2;
2606
+ _context18.next = 2;
2406
2607
  return this.postMedia(message);
2407
2608
  case 2:
2408
- res = _context17.sent;
2609
+ res = _context18.sent;
2409
2610
  _Logger.default.log("Response code: ".concat(res.statusCode), {
2410
2611
  file: _constants.CALL_FILE,
2411
2612
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_ANSWER
2412
2613
  });
2413
- _context17.next = 4;
2614
+ _context18.next = 4;
2414
2615
  break;
2415
2616
  case 3:
2416
- _context17.prev = 3;
2417
- _t13 = _context17["catch"](1);
2617
+ _context18.prev = 3;
2618
+ _t14 = _context18["catch"](1);
2418
2619
  _Logger.default.warn('Failed to send MediaAnswer request', {
2419
2620
  file: _constants.CALL_FILE,
2420
2621
  method: _constants.METHODS.HANDLE_OUTGOING_ROAP_ANSWER
2421
2622
  });
2422
- errData = _t13;
2623
+ errData = _t14;
2423
2624
  (0, _Utils.handleCallErrors)(this.getEmitterCallback(errData), _types.ERROR_LAYER.MEDIA, function (interval) {
2424
2625
  /* Start retry if only it is a midcall case */
2425
2626
  if (_this1.connected) {
@@ -2431,7 +2632,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2431
2632
  }, interval * 1000);
2432
2633
  }
2433
2634
  }, this.getCorrelationId(), errData, _constants.METHODS.HANDLE_OUTGOING_ROAP_ANSWER, _constants.CALL_FILE);
2434
- _context17.next = 4;
2635
+ _context18.next = 4;
2435
2636
  return (0, _Utils.uploadLogs)({
2436
2637
  correlationId: this.correlationId,
2437
2638
  callId: this.callId,
@@ -2439,11 +2640,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2439
2640
  });
2440
2641
  case 4:
2441
2642
  case "end":
2442
- return _context17.stop();
2643
+ return _context18.stop();
2443
2644
  }
2444
- }, _callee17, this, [[1, 3]]);
2645
+ }, _callee18, this, [[1, 3]]);
2445
2646
  }));
2446
- function handleOutgoingRoapAnswer(_x16, _x17) {
2647
+ function handleOutgoingRoapAnswer(_x17, _x18) {
2447
2648
  return _handleOutgoingRoapAnswer.apply(this, arguments);
2448
2649
  }
2449
2650
  return handleOutgoingRoapAnswer;
@@ -2603,10 +2804,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2603
2804
  * @param localAudioStream - The local audio stream for the call.
2604
2805
  */
2605
2806
  function () {
2606
- var _answer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18(localAudioStream) {
2807
+ var _answer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee19(localAudioStream) {
2607
2808
  var localAudioTrack;
2608
- return _regenerator.default.wrap(function (_context18) {
2609
- while (1) switch (_context18.prev = _context18.next) {
2809
+ return _regenerator.default.wrap(function (_context19) {
2810
+ while (1) switch (_context19.prev = _context19.next) {
2610
2811
  case 0:
2611
2812
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with stream"), {
2612
2813
  file: _constants.CALL_FILE,
@@ -2615,7 +2816,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2615
2816
  this.localAudioStream = localAudioStream;
2616
2817
  localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];
2617
2818
  if (localAudioTrack) {
2618
- _context18.next = 1;
2819
+ _context19.next = 1;
2619
2820
  break;
2620
2821
  }
2621
2822
  _Logger.default.warn("Did not find a local track while answering the call ".concat(this.getCorrelationId()), {
@@ -2626,13 +2827,14 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2626
2827
  this.sendCallStateMachineEvt({
2627
2828
  type: 'E_SEND_CALL_DISCONNECT'
2628
2829
  });
2629
- return _context18.abrupt("return");
2830
+ return _context19.abrupt("return");
2630
2831
  case 1:
2631
2832
  localAudioTrack.enabled = true;
2632
2833
  if (!this.mediaConnection) {
2633
2834
  this.initMediaConnection(localAudioTrack);
2634
2835
  this.mediaRoapEventsListener();
2635
2836
  this.mediaTrackListener();
2837
+ this.mediaIceEventsListener();
2636
2838
  this.registerListeners(localAudioStream);
2637
2839
  }
2638
2840
  if (this.callStateMachine.state.value === 'S_SEND_CALL_PROGRESS') {
@@ -2647,11 +2849,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2647
2849
  }
2648
2850
  case 2:
2649
2851
  case "end":
2650
- return _context18.stop();
2852
+ return _context19.stop();
2651
2853
  }
2652
- }, _callee18, this);
2854
+ }, _callee19, this);
2653
2855
  }));
2654
- function answer(_x18) {
2856
+ function answer(_x19) {
2655
2857
  return _answer.apply(this, arguments);
2656
2858
  }
2657
2859
  return answer;
@@ -2664,10 +2866,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2664
2866
  }, {
2665
2867
  key: "dial",
2666
2868
  value: (function () {
2667
- var _dial = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee19(localAudioStream) {
2869
+ var _dial = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20(localAudioStream) {
2668
2870
  var localAudioTrack;
2669
- return _regenerator.default.wrap(function (_context19) {
2670
- while (1) switch (_context19.prev = _context19.next) {
2871
+ return _regenerator.default.wrap(function (_context20) {
2872
+ while (1) switch (_context20.prev = _context20.next) {
2671
2873
  case 0:
2672
2874
  _Logger.default.info("".concat(_constants2.METHOD_START_MESSAGE, " with stream"), {
2673
2875
  file: _constants.CALL_FILE,
@@ -2676,7 +2878,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2676
2878
  this.localAudioStream = localAudioStream;
2677
2879
  localAudioTrack = localAudioStream.outputStream.getAudioTracks()[0];
2678
2880
  if (localAudioTrack) {
2679
- _context19.next = 1;
2881
+ _context20.next = 1;
2680
2882
  break;
2681
2883
  }
2682
2884
  _Logger.default.warn("Did not find a local track while dialing the call ".concat(this.getCorrelationId()), {
@@ -2685,13 +2887,14 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2685
2887
  });
2686
2888
  this.deleteCb(this.getCorrelationId());
2687
2889
  this.emit(_types3.CALL_EVENT_KEYS.DISCONNECT, this.getCorrelationId());
2688
- return _context19.abrupt("return");
2890
+ return _context20.abrupt("return");
2689
2891
  case 1:
2690
2892
  localAudioTrack.enabled = true;
2691
2893
  if (!this.mediaConnection) {
2692
2894
  this.initMediaConnection(localAudioTrack);
2693
2895
  this.mediaRoapEventsListener();
2694
2896
  this.mediaTrackListener();
2897
+ this.mediaIceEventsListener();
2695
2898
  this.registerListeners(localAudioStream);
2696
2899
  }
2697
2900
  if (this.mediaStateMachine.state.value === 'S_ROAP_IDLE') {
@@ -2706,11 +2909,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2706
2909
  }
2707
2910
  case 2:
2708
2911
  case "end":
2709
- return _context19.stop();
2912
+ return _context20.stop();
2710
2913
  }
2711
- }, _callee19, this);
2914
+ }, _callee20, this);
2712
2915
  }));
2713
- function dial(_x19) {
2916
+ function dial(_x20) {
2714
2917
  return _dial.apply(this, arguments);
2715
2918
  }
2716
2919
  return dial;
@@ -2724,17 +2927,15 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2724
2927
  * @param state -.
2725
2928
  */
2726
2929
  function () {
2727
- var _patch = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee20(state) {
2728
- return _regenerator.default.wrap(function (_context20) {
2729
- while (1) switch (_context20.prev = _context20.next) {
2930
+ var _patch = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21(state) {
2931
+ return _regenerator.default.wrap(function (_context21) {
2932
+ while (1) switch (_context21.prev = _context21.next) {
2730
2933
  case 0:
2731
2934
  _Logger.default.info("Send a PATCH for ".concat(state, " to Webex Calling"), {
2732
2935
  file: _constants.CALL_FILE,
2733
2936
  method: 'patch'
2734
2937
  });
2735
- return _context20.abrupt("return", this.webex.request({
2736
- // Sample uri: http://localhost/api/v1/calling/web/devices/{deviceid}/calls/{callid}
2737
-
2938
+ return _context21.abrupt("return", this.apiRequest.makeRequest({
2738
2939
  uri: "".concat(this.mobiusUrl).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(this.deviceId, "/").concat(_constants.CALLS_ENDPOINT_RESOURCE, "/").concat(this.callId),
2739
2940
  method: _types2.HTTP_METHODS.PATCH,
2740
2941
  service: _types2.ALLOWED_SERVICES.MOBIUS,
@@ -2751,11 +2952,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2751
2952
  }));
2752
2953
  case 1:
2753
2954
  case "end":
2754
- return _context20.stop();
2955
+ return _context21.stop();
2755
2956
  }
2756
- }, _callee20, this);
2957
+ }, _callee21, this);
2757
2958
  }));
2758
- function patch(_x20) {
2959
+ function patch(_x21) {
2759
2960
  return _patch.apply(this, arguments);
2760
2961
  }
2761
2962
  return patch;
@@ -2770,10 +2971,10 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2770
2971
  }, {
2771
2972
  key: "postSSRequest",
2772
2973
  value: (function () {
2773
- var _postSSRequest = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee21(context, type) {
2774
- var request, transferContext, _t14;
2775
- return _regenerator.default.wrap(function (_context21) {
2776
- while (1) switch (_context21.prev = _context21.next) {
2974
+ var _postSSRequest = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22(context, type) {
2975
+ var request, transferContext, _t15;
2976
+ return _regenerator.default.wrap(function (_context22) {
2977
+ while (1) switch (_context22.prev = _context22.next) {
2777
2978
  case 0:
2778
2979
  request = {
2779
2980
  uri: "".concat(this.mobiusUrl).concat(_constants2.SERVICES_ENDPOINT),
@@ -2788,15 +2989,15 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2788
2989
  callId: this.callId
2789
2990
  }
2790
2991
  };
2791
- _t14 = type;
2792
- _context21.next = _t14 === _types3.SUPPLEMENTARY_SERVICES.HOLD ? 1 : _t14 === _types3.SUPPLEMENTARY_SERVICES.RESUME ? 2 : _t14 === _types3.SUPPLEMENTARY_SERVICES.TRANSFER ? 3 : 4;
2992
+ _t15 = type;
2993
+ _context22.next = _t15 === _types3.SUPPLEMENTARY_SERVICES.HOLD ? 1 : _t15 === _types3.SUPPLEMENTARY_SERVICES.RESUME ? 2 : _t15 === _types3.SUPPLEMENTARY_SERVICES.TRANSFER ? 3 : 4;
2793
2994
  break;
2794
2995
  case 1:
2795
2996
  request.uri = "".concat(request.uri, "/").concat(_constants.CALL_HOLD_SERVICE, "/").concat(_constants.HOLD_ENDPOINT);
2796
- return _context21.abrupt("continue", 5);
2997
+ return _context22.abrupt("continue", 5);
2797
2998
  case 2:
2798
2999
  request.uri = "".concat(request.uri, "/").concat(_constants.CALL_HOLD_SERVICE, "/").concat(_constants.RESUME_ENDPOINT);
2799
- return _context21.abrupt("continue", 5);
3000
+ return _context22.abrupt("continue", 5);
2800
3001
  case 3:
2801
3002
  request.uri = "".concat(request.uri, "/").concat(_constants.CALL_TRANSFER_SERVICE, "/").concat(_constants.TRANSFER_ENDPOINT);
2802
3003
  transferContext = context;
@@ -2815,21 +3016,21 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2815
3016
  transferType: _types4.TransferType.CONSULT
2816
3017
  });
2817
3018
  }
2818
- return _context21.abrupt("continue", 5);
3019
+ return _context22.abrupt("continue", 5);
2819
3020
  case 4:
2820
3021
  _Logger.default.warn("Unknown type for PUT request: ".concat(type), {
2821
3022
  file: _constants.CALL_FILE,
2822
3023
  method: _constants.METHODS.POST_SS_REQUEST
2823
3024
  });
2824
3025
  case 5:
2825
- return _context21.abrupt("return", this.webex.request(request));
3026
+ return _context22.abrupt("return", this.apiRequest.makeRequest(request));
2826
3027
  case 6:
2827
3028
  case "end":
2828
- return _context21.stop();
3029
+ return _context22.stop();
2829
3030
  }
2830
- }, _callee21, this);
3031
+ }, _callee22, this);
2831
3032
  }));
2832
- function postSSRequest(_x21, _x22) {
3033
+ function postSSRequest(_x22, _x23) {
2833
3034
  return _postSSRequest.apply(this, arguments);
2834
3035
  }
2835
3036
  return postSSRequest;
@@ -2841,11 +3042,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2841
3042
  }, {
2842
3043
  key: "postStatus",
2843
3044
  value: (function () {
2844
- var _postStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee22() {
2845
- return _regenerator.default.wrap(function (_context22) {
2846
- while (1) switch (_context22.prev = _context22.next) {
3045
+ var _postStatus = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23() {
3046
+ return _regenerator.default.wrap(function (_context23) {
3047
+ while (1) switch (_context23.prev = _context23.next) {
2847
3048
  case 0:
2848
- return _context22.abrupt("return", this.webex.request({
3049
+ return _context23.abrupt("return", this.apiRequest.makeRequest({
2849
3050
  uri: "".concat(this.mobiusUrl).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(this.deviceId, "/").concat(_constants.CALLS_ENDPOINT_RESOURCE, "/").concat(this.callId, "/").concat(_constants.CALL_STATUS_RESOURCE),
2850
3051
  method: _types2.HTTP_METHODS.POST,
2851
3052
  service: _types2.ALLOWED_SERVICES.MOBIUS,
@@ -2860,9 +3061,9 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2860
3061
  }));
2861
3062
  case 1:
2862
3063
  case "end":
2863
- return _context22.stop();
3064
+ return _context23.stop();
2864
3065
  }
2865
- }, _callee22, this);
3066
+ }, _callee23, this);
2866
3067
  }));
2867
3068
  function postStatus() {
2868
3069
  return _postStatus.apply(this, arguments);
@@ -2881,14 +3082,14 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2881
3082
  }, {
2882
3083
  key: "completeTransfer",
2883
3084
  value: (function () {
2884
- var _completeTransfer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee23(transferType, transferCallId, transferTarget) {
3085
+ var _completeTransfer = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24(transferType, transferCallId, transferTarget) {
2885
3086
  var _this11 = this;
2886
- var context, errData, _context23, _errData, _t15, _t16;
2887
- return _regenerator.default.wrap(function (_context24) {
2888
- while (1) switch (_context24.prev = _context24.next) {
3087
+ var context, errData, _context24, _errData, _t16, _t17;
3088
+ return _regenerator.default.wrap(function (_context25) {
3089
+ while (1) switch (_context25.prev = _context25.next) {
2889
3090
  case 0:
2890
3091
  if (!(transferType === _types4.TransferType.BLIND && transferTarget)) {
2891
- _context24.next = 5;
3092
+ _context25.next = 5;
2892
3093
  break;
2893
3094
  }
2894
3095
  /* blind transfer */
@@ -2901,8 +3102,8 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2901
3102
  transferorCallId: this.getCallId(),
2902
3103
  destination: transferTarget
2903
3104
  };
2904
- _context24.prev = 1;
2905
- _context24.next = 2;
3105
+ _context25.prev = 1;
3106
+ _context25.next = 2;
2906
3107
  return this.postSSRequest(context, _types3.SUPPLEMENTARY_SERVICES.TRANSFER);
2907
3108
  case 2:
2908
3109
  _Logger.default.info("Blind Transfer completed for correlationId ".concat(this.getCorrelationId()), {
@@ -2910,16 +3111,16 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2910
3111
  method: _constants.METHODS.COMPLETE_TRANSFER
2911
3112
  });
2912
3113
  this.metricManager.submitCallMetric(_types5.METRIC_EVENT.CALL, _types5.TRANSFER_ACTION.BLIND, _types5.METRIC_TYPE.BEHAVIORAL, this.getCallId(), this.getCorrelationId(), undefined);
2913
- _context24.next = 4;
3114
+ _context25.next = 4;
2914
3115
  break;
2915
3116
  case 3:
2916
- _context24.prev = 3;
2917
- _t15 = _context24["catch"](1);
3117
+ _context25.prev = 3;
3118
+ _t16 = _context25["catch"](1);
2918
3119
  _Logger.default.warn("Blind Transfer failed for correlationId ".concat(this.getCorrelationId()), {
2919
3120
  file: _constants.CALL_FILE,
2920
3121
  method: _constants.METHODS.COMPLETE_TRANSFER
2921
3122
  });
2922
- errData = _t15;
3123
+ errData = _t16;
2923
3124
  (0, _Utils.handleCallErrors)(function (error) {
2924
3125
  _this11.emit(_types3.CALL_EVENT_KEYS.TRANSFER_ERROR, error);
2925
3126
  _this11.submitCallErrorMetric(error, _types5.TRANSFER_ACTION.BLIND);
@@ -2929,18 +3130,18 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2929
3130
  function (interval) {
2930
3131
  return undefined;
2931
3132
  }, this.getCorrelationId(), errData, _constants.METHODS.COMPLETE_TRANSFER, _constants.CALL_FILE);
2932
- _context24.next = 4;
3133
+ _context25.next = 4;
2933
3134
  return (0, _Utils.uploadLogs)({
2934
3135
  correlationId: this.correlationId,
2935
3136
  callId: this.callId,
2936
3137
  broadworksCorrelationInfo: this.broadworksCorrelationInfo
2937
3138
  });
2938
3139
  case 4:
2939
- _context24.next = 11;
3140
+ _context25.next = 11;
2940
3141
  break;
2941
3142
  case 5:
2942
3143
  if (!(transferType === _types4.TransferType.CONSULT && transferCallId)) {
2943
- _context24.next = 10;
3144
+ _context25.next = 10;
2944
3145
  break;
2945
3146
  }
2946
3147
  /* Consult transfer */
@@ -2949,29 +3150,29 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2949
3150
  file: _constants.CALL_FILE,
2950
3151
  method: _constants.METHODS.COMPLETE_TRANSFER
2951
3152
  });
2952
- _context23 = {
3153
+ _context24 = {
2953
3154
  transferorCallId: this.getCallId(),
2954
3155
  transferToCallId: transferCallId
2955
3156
  };
2956
- _context24.prev = 6;
2957
- _context24.next = 7;
2958
- return this.postSSRequest(_context23, _types3.SUPPLEMENTARY_SERVICES.TRANSFER);
3157
+ _context25.prev = 6;
3158
+ _context25.next = 7;
3159
+ return this.postSSRequest(_context24, _types3.SUPPLEMENTARY_SERVICES.TRANSFER);
2959
3160
  case 7:
2960
3161
  _Logger.default.info("Consult Transfer completed for correlationId ".concat(this.getCorrelationId()), {
2961
3162
  file: _constants.CALL_FILE,
2962
3163
  method: _constants.METHODS.COMPLETE_TRANSFER
2963
3164
  });
2964
3165
  this.metricManager.submitCallMetric(_types5.METRIC_EVENT.CALL, _types5.TRANSFER_ACTION.CONSULT, _types5.METRIC_TYPE.BEHAVIORAL, this.getCallId(), this.getCorrelationId(), undefined);
2965
- _context24.next = 9;
3166
+ _context25.next = 9;
2966
3167
  break;
2967
3168
  case 8:
2968
- _context24.prev = 8;
2969
- _t16 = _context24["catch"](6);
3169
+ _context25.prev = 8;
3170
+ _t17 = _context25["catch"](6);
2970
3171
  _Logger.default.warn("Consult Transfer failed for correlationId ".concat(this.getCorrelationId()), {
2971
3172
  file: _constants.CALL_FILE,
2972
3173
  method: _constants.METHODS.COMPLETE_TRANSFER
2973
3174
  });
2974
- _errData = _t16;
3175
+ _errData = _t17;
2975
3176
  (0, _Utils.handleCallErrors)(function (error) {
2976
3177
  _this11.emit(_types3.CALL_EVENT_KEYS.TRANSFER_ERROR, error);
2977
3178
  _this11.submitCallErrorMetric(error, _types5.TRANSFER_ACTION.CONSULT);
@@ -2981,14 +3182,14 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2981
3182
  function (interval) {
2982
3183
  return undefined;
2983
3184
  }, this.getCorrelationId(), _errData, _constants.METHODS.COMPLETE_TRANSFER, _constants.CALL_FILE);
2984
- _context24.next = 9;
3185
+ _context25.next = 9;
2985
3186
  return (0, _Utils.uploadLogs)({
2986
3187
  correlationId: this.correlationId,
2987
3188
  callId: this.callId,
2988
3189
  broadworksCorrelationInfo: this.broadworksCorrelationInfo
2989
3190
  });
2990
3191
  case 9:
2991
- _context24.next = 11;
3192
+ _context25.next = 11;
2992
3193
  break;
2993
3194
  case 10:
2994
3195
  _Logger.default.warn("Invalid information received, transfer failed for correlationId: ".concat(this.getCorrelationId()), {
@@ -2997,11 +3198,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
2997
3198
  });
2998
3199
  case 11:
2999
3200
  case "end":
3000
- return _context24.stop();
3201
+ return _context25.stop();
3001
3202
  }
3002
- }, _callee23, this, [[1, 3], [6, 8]]);
3203
+ }, _callee24, this, [[1, 3], [6, 8]]);
3003
3204
  }));
3004
- function completeTransfer(_x23, _x24, _x25) {
3205
+ function completeTransfer(_x24, _x25, _x26) {
3005
3206
  return _completeTransfer.apply(this, arguments);
3006
3207
  }
3007
3208
  return completeTransfer;
@@ -3013,32 +3214,32 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3013
3214
  }, {
3014
3215
  key: "getCallStats",
3015
3216
  value: (function () {
3016
- var _getCallStats = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee24() {
3017
- var stats, _t17;
3018
- return _regenerator.default.wrap(function (_context25) {
3019
- while (1) switch (_context25.prev = _context25.next) {
3217
+ var _getCallStats = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25() {
3218
+ var stats, _t18;
3219
+ return _regenerator.default.wrap(function (_context26) {
3220
+ while (1) switch (_context26.prev = _context26.next) {
3020
3221
  case 0:
3021
- _context25.prev = 0;
3022
- _context25.next = 1;
3222
+ _context26.prev = 0;
3223
+ _context26.next = 1;
3023
3224
  return this.mediaConnection.getStats();
3024
3225
  case 1:
3025
- stats = _context25.sent;
3026
- _context25.next = 3;
3226
+ stats = _context26.sent;
3227
+ _context26.next = 3;
3027
3228
  break;
3028
3229
  case 2:
3029
- _context25.prev = 2;
3030
- _t17 = _context25["catch"](0);
3230
+ _context26.prev = 2;
3231
+ _t18 = _context26["catch"](0);
3031
3232
  _Logger.default.warn('Stats collection failed, using dummy stats', {
3032
3233
  file: _constants.CALL_FILE,
3033
3234
  method: _constants.METHODS.GET_CALL_STATS
3034
3235
  });
3035
3236
  case 3:
3036
- return _context25.abrupt("return", (0, _Utils.parseMediaQualityStatistics)(stats));
3237
+ return _context26.abrupt("return", (0, _Utils.parseMediaQualityStatistics)(stats));
3037
3238
  case 4:
3038
3239
  case "end":
3039
- return _context25.stop();
3240
+ return _context26.stop();
3040
3241
  }
3041
- }, _callee24, this, [[0, 2]]);
3242
+ }, _callee25, this, [[0, 2]]);
3042
3243
  }));
3043
3244
  function getCallStats() {
3044
3245
  return _getCallStats.apply(this, arguments);
@@ -3054,15 +3255,15 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3054
3255
  }, {
3055
3256
  key: "postMedia",
3056
3257
  value: (function () {
3057
- var _postMedia = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee25(roapMessage) {
3058
- return _regenerator.default.wrap(function (_context26) {
3059
- while (1) switch (_context26.prev = _context26.next) {
3258
+ var _postMedia = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee26(roapMessage) {
3259
+ return _regenerator.default.wrap(function (_context27) {
3260
+ while (1) switch (_context27.prev = _context27.next) {
3060
3261
  case 0:
3061
3262
  _Logger.default.log('Posting message to Webex Calling', {
3062
3263
  file: _constants.CALL_FILE,
3063
3264
  method: _constants.METHODS.POST_MEDIA
3064
3265
  });
3065
- return _context26.abrupt("return", this.webex.request({
3266
+ return _context27.abrupt("return", this.apiRequest.makeRequest({
3066
3267
  uri: "".concat(this.mobiusUrl).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(this.deviceId, "/").concat(_constants.CALLS_ENDPOINT_RESOURCE, "/").concat(this.callId, "/").concat(_constants.MEDIA_ENDPOINT_RESOURCE),
3067
3268
  method: _types2.HTTP_METHODS.POST,
3068
3269
  service: _types2.ALLOWED_SERVICES.MOBIUS,
@@ -3081,11 +3282,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3081
3282
  }));
3082
3283
  case 1:
3083
3284
  case "end":
3084
- return _context26.stop();
3285
+ return _context27.stop();
3085
3286
  }
3086
- }, _callee25, this);
3287
+ }, _callee26, this);
3087
3288
  }));
3088
- function postMedia(_x26) {
3289
+ function postMedia(_x27) {
3089
3290
  return _postMedia.apply(this, arguments);
3090
3291
  }
3091
3292
  return postMedia;
@@ -3098,90 +3299,8 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3098
3299
  }, {
3099
3300
  key: "mediaRoapEventsListener",
3100
3301
  value: function mediaRoapEventsListener() {
3101
- var _this12 = this;
3102
- this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND,
3103
- /*#__PURE__*/
3104
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3105
- function () {
3106
- var _ref0 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee26(event) {
3107
- var _event$roapMessage, _event$roapMessage2;
3108
- var mediaOk, sdpVideoPortZero, _t18;
3109
- return _regenerator.default.wrap(function (_context27) {
3110
- while (1) switch (_context27.prev = _context27.next) {
3111
- case 0:
3112
- _Logger.default.info("ROAP message to send (rcv from MEDIA-SDK) :\n \n type: ".concat((_event$roapMessage = event.roapMessage) === null || _event$roapMessage === void 0 ? void 0 : _event$roapMessage.messageType, ", seq: ").concat(event.roapMessage.seq, " , version: ").concat(event.roapMessage.version), {
3113
- file: _constants.CALL_FILE,
3114
- method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
3115
- });
3116
- _Logger.default.info("SDP message to send : \n ".concat((_event$roapMessage2 = event.roapMessage) === null || _event$roapMessage2 === void 0 ? void 0 : _event$roapMessage2.sdp), {
3117
- file: _constants.CALL_FILE,
3118
- method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
3119
- });
3120
- _t18 = event.roapMessage.messageType;
3121
- _context27.next = _t18 === _types4.RoapScenario.OK ? 1 : _t18 === _types4.RoapScenario.OFFER ? 2 : _t18 === _types4.RoapScenario.ANSWER ? 3 : _t18 === _types4.RoapScenario.ERROR ? 4 : _t18 === _types4.RoapScenario.OFFER_RESPONSE ? 5 : 6;
3122
- break;
3123
- case 1:
3124
- mediaOk = {
3125
- received: false,
3126
- message: event.roapMessage
3127
- };
3128
- _this12.sendMediaStateMachineEvt({
3129
- type: 'E_ROAP_OK',
3130
- data: mediaOk
3131
- });
3132
- return _context27.abrupt("continue", 6);
3133
- case 2:
3134
- // TODO: Remove these after the Media-Core adds the fix
3135
- // Check if at least one IPv6 "c=" line is present
3136
- _Logger.default.info("before modifying sdp: ".concat(event.roapMessage.sdp), {
3137
- file: _constants.CALL_FILE,
3138
- method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
3139
- });
3140
- event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
3141
- sdpVideoPortZero = event.roapMessage.sdp.replace(/^m=(video) (?:\d+) /gim, 'm=$1 0 ');
3142
- _Logger.default.info("after modification sdp: ".concat(sdpVideoPortZero), {
3143
- file: _constants.CALL_FILE,
3144
- method: _constants.METHODS.MEDIA_ROAP_EVENTS_LISTENER
3145
- });
3146
- event.roapMessage.sdp = sdpVideoPortZero;
3147
- _this12.localRoapMessage = event.roapMessage;
3148
- _this12.sendCallStateMachineEvt({
3149
- type: 'E_SEND_CALL_SETUP',
3150
- data: event.roapMessage
3151
- });
3152
- return _context27.abrupt("continue", 6);
3153
- case 3:
3154
- event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
3155
- _this12.localRoapMessage = event.roapMessage;
3156
- _this12.sendMediaStateMachineEvt({
3157
- type: 'E_SEND_ROAP_ANSWER',
3158
- data: event.roapMessage
3159
- });
3160
- return _context27.abrupt("continue", 6);
3161
- case 4:
3162
- _this12.sendMediaStateMachineEvt({
3163
- type: 'E_ROAP_ERROR',
3164
- data: event.roapMessage
3165
- });
3166
- return _context27.abrupt("continue", 6);
3167
- case 5:
3168
- event.roapMessage.sdp = (0, _Utils.modifySdpForIPv4)(event.roapMessage.sdp);
3169
- _this12.localRoapMessage = event.roapMessage;
3170
- _this12.sendMediaStateMachineEvt({
3171
- type: 'E_SEND_ROAP_OFFER',
3172
- data: event.roapMessage
3173
- });
3174
- return _context27.abrupt("continue", 6);
3175
- case 6:
3176
- case "end":
3177
- return _context27.stop();
3178
- }
3179
- }, _callee26);
3180
- }));
3181
- return function (_x27) {
3182
- return _ref0.apply(this, arguments);
3183
- };
3184
- }());
3302
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND, this.handleMediaRoapEvent);
3303
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ROAP_FAILURE, this.handleRoapFailure);
3185
3304
  }
3186
3305
 
3187
3306
  /* istanbul ignore next */
@@ -3191,13 +3310,34 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3191
3310
  }, {
3192
3311
  key: "mediaTrackListener",
3193
3312
  value: function mediaTrackListener() {
3194
- var _this13 = this;
3195
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3196
- this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.REMOTE_TRACK_ADDED, function (e) {
3197
- if (e.type === _types3.MEDIA_CONNECTION_EVENT_KEYS.MEDIA_TYPE_AUDIO) {
3198
- _this13.emit(_types3.CALL_EVENT_KEYS.REMOTE_MEDIA, e.track);
3199
- }
3200
- });
3313
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.REMOTE_TRACK_ADDED, this.handleRemoteTrackAdded);
3314
+ }
3315
+
3316
+ /* istanbul ignore next */
3317
+ /**
3318
+ * Setup listeners for ICE-related media connection events.
3319
+ */
3320
+ }, {
3321
+ key: "mediaIceEventsListener",
3322
+ value: function mediaIceEventsListener() {
3323
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED, this.handleIceGatheringStateChanged);
3324
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED, this.handlePeerConnectionStateChanged);
3325
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED, this.handleIceConnectionStateChanged);
3326
+ this.mediaConnection.on(_internalMediaCore.MediaConnectionEventNames.ICE_CANDIDATE_ERROR, this.handleIceCandidateError);
3327
+ }
3328
+ }, {
3329
+ key: "unregisterMediaConnectionListeners",
3330
+ value: function unregisterMediaConnectionListeners() {
3331
+ if (!this.mediaConnection || typeof this.mediaConnection.off !== 'function') {
3332
+ return;
3333
+ }
3334
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ROAP_MESSAGE_TO_SEND, this.handleMediaRoapEvent);
3335
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ROAP_FAILURE, this.handleRoapFailure);
3336
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.REMOTE_TRACK_ADDED, this.handleRemoteTrackAdded);
3337
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ICE_GATHERING_STATE_CHANGED, this.handleIceGatheringStateChanged);
3338
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.PEER_CONNECTION_STATE_CHANGED, this.handlePeerConnectionStateChanged);
3339
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ICE_CONNECTION_STATE_CHANGED, this.handleIceConnectionStateChanged);
3340
+ this.mediaConnection.off(_internalMediaCore.MediaConnectionEventNames.ICE_CANDIDATE_ERROR, this.handleIceCandidateError);
3201
3341
  }
3202
3342
  }, {
3203
3343
  key: "unregisterListeners",
@@ -3205,8 +3345,8 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3205
3345
  if (this.localAudioStream) {
3206
3346
  var effect = this.localAudioStream.getEffectByKind(_constants.NOISE_REDUCTION_EFFECT);
3207
3347
  if (effect) {
3208
- effect.off(_webMediaEffects.EffectEvent.Enabled, this.onEffectEnabled);
3209
- effect.off(_webMediaEffects.EffectEvent.Disabled, this.onEffectDisabled);
3348
+ effect.off(_mediaHelpers.EffectEvent.Enabled, this.onEffectEnabled);
3349
+ effect.off(_mediaHelpers.EffectEvent.Disabled, this.onEffectDisabled);
3210
3350
  }
3211
3351
  this.localAudioStream.off(_internalMediaCore.LocalStreamEventNames.EffectAdded, this.registerEffectListener);
3212
3352
  this.localAudioStream.off(_internalMediaCore.LocalStreamEventNames.OutputTrackChange, this.updateTrack);
@@ -3219,8 +3359,8 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3219
3359
  localAudioStream.on(_internalMediaCore.LocalStreamEventNames.EffectAdded, this.registerEffectListener);
3220
3360
  var effect = localAudioStream.getEffectByKind(_constants.NOISE_REDUCTION_EFFECT);
3221
3361
  if (effect) {
3222
- effect.on(_webMediaEffects.EffectEvent.Enabled, this.onEffectEnabled);
3223
- effect.on(_webMediaEffects.EffectEvent.Disabled, this.onEffectDisabled);
3362
+ effect.on(_mediaHelpers.EffectEvent.Enabled, this.onEffectEnabled);
3363
+ effect.on(_mediaHelpers.EffectEvent.Disabled, this.onEffectDisabled);
3224
3364
  if (effect.isEnabled) {
3225
3365
  this.onEffectEnabled();
3226
3366
  }
@@ -3238,7 +3378,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3238
3378
  return this.getCallStats();
3239
3379
  case 1:
3240
3380
  disconnectMetrics = _context28.sent;
3241
- return _context28.abrupt("return", this.webex.request({
3381
+ return _context28.abrupt("return", this.apiRequest.makeRequest({
3242
3382
  uri: "".concat(this.mobiusUrl).concat(_constants.DEVICES_ENDPOINT_RESOURCE, "/").concat(this.deviceId, "/").concat(_constants.CALLS_ENDPOINT_RESOURCE, "/").concat(this.callId),
3243
3383
  method: _types2.HTTP_METHODS.DELETE,
3244
3384
  service: _types2.ALLOWED_SERVICES.MOBIUS,
@@ -3277,7 +3417,7 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3277
3417
  this.metricManager.submitCallMetric(_types5.METRIC_EVENT.CALL_ERROR, transferMetricAction || this.callStateMachine.state.value.toString(), _types5.METRIC_TYPE.BEHAVIORAL, this.callId, this.correlationId, error);
3278
3418
  } else {
3279
3419
  var _this$remoteRoapMessa2;
3280
- this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA_ERROR, this.mediaStateMachine.state.value.toString(), _types5.METRIC_TYPE.BEHAVIORAL, this.callId, this.correlationId, this.localRoapMessage.sdp, (_this$remoteRoapMessa2 = this.remoteRoapMessage) === null || _this$remoteRoapMessa2 === void 0 ? void 0 : _this$remoteRoapMessa2.sdp, error);
3420
+ this.metricManager.submitMediaMetric(_types5.METRIC_EVENT.MEDIA_ERROR, this.mediaStateMachine.state.value.toString(), _types5.METRIC_TYPE.BEHAVIORAL, this.callId, this.correlationId, this.localRoapMessage.sdp, (_this$remoteRoapMessa2 = this.remoteRoapMessage) === null || _this$remoteRoapMessa2 === void 0 ? void 0 : _this$remoteRoapMessa2.sdp, undefined, error);
3281
3421
  }
3282
3422
  }
3283
3423
 
@@ -3466,6 +3606,11 @@ var Call = exports.Call = /*#__PURE__*/function (_Eventing) {
3466
3606
  }
3467
3607
  return handleTimeout;
3468
3608
  }())
3609
+ }], [{
3610
+ key: "getPeerConnectionStateFromEvent",
3611
+ value: function getPeerConnectionStateFromEvent(event, preferredKey) {
3612
+ return event[preferredKey] || event.state || 'unknown';
3613
+ }
3469
3614
  }]);
3470
3615
  }(_impl.Eventing);
3471
3616
  /**