@webex/calling 3.12.0-next.9 → 3.12.0-next.91

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