@webex/calling 3.0.0-next.6 → 3.0.0-next.7

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 (161) hide show
  1. package/dist/CallHistory/CallHistory.js +203 -0
  2. package/dist/CallHistory/CallHistory.js.map +1 -0
  3. package/dist/CallHistory/CallHistory.test.js +133 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -0
  5. package/dist/CallHistory/callHistoryFixtures.js +310 -0
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
  7. package/dist/CallHistory/constants.js +26 -0
  8. package/dist/CallHistory/constants.js.map +1 -0
  9. package/dist/CallHistory/types.js +7 -0
  10. package/dist/CallHistory/types.js.map +1 -0
  11. package/dist/CallSettings/CallSettings.js +276 -0
  12. package/dist/CallSettings/CallSettings.js.map +1 -0
  13. package/dist/CallSettings/CallSettings.test.js +122 -0
  14. package/dist/CallSettings/CallSettings.test.js.map +1 -0
  15. package/dist/CallSettings/UcmBackendConnector.js +217 -0
  16. package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
  17. package/dist/CallSettings/UcmBackendConnector.test.js +227 -0
  18. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
  19. package/dist/CallSettings/WxCallBackendConnector.js +541 -0
  20. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
  21. package/dist/CallSettings/WxCallBackendConnector.test.js +802 -0
  22. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
  23. package/dist/CallSettings/constants.js +30 -0
  24. package/dist/CallSettings/constants.js.map +1 -0
  25. package/dist/CallSettings/testFixtures.js +72 -0
  26. package/dist/CallSettings/testFixtures.js.map +1 -0
  27. package/dist/CallSettings/types.js +7 -0
  28. package/dist/CallSettings/types.js.map +1 -0
  29. package/dist/CallingClient/CallingClient.js +572 -0
  30. package/dist/CallingClient/CallingClient.js.map +1 -0
  31. package/dist/CallingClient/CallingClient.test.js +931 -0
  32. package/dist/CallingClient/CallingClient.test.js.map +1 -0
  33. package/dist/CallingClient/callRecordFixtures.js +103 -0
  34. package/dist/CallingClient/callRecordFixtures.js.map +1 -0
  35. package/dist/CallingClient/calling/CallerId/index.js +287 -0
  36. package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
  37. package/dist/CallingClient/calling/CallerId/index.test.js +274 -0
  38. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
  39. package/dist/CallingClient/calling/CallerId/types.js +7 -0
  40. package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
  41. package/dist/CallingClient/calling/call.js +2995 -0
  42. package/dist/CallingClient/calling/call.js.map +1 -0
  43. package/dist/CallingClient/calling/call.test.js +2614 -0
  44. package/dist/CallingClient/calling/call.test.js.map +1 -0
  45. package/dist/CallingClient/calling/callManager.js +443 -0
  46. package/dist/CallingClient/calling/callManager.js.map +1 -0
  47. package/dist/CallingClient/calling/callManager.test.js +683 -0
  48. package/dist/CallingClient/calling/callManager.test.js.map +1 -0
  49. package/dist/CallingClient/calling/index.js +30 -0
  50. package/dist/CallingClient/calling/index.js.map +1 -0
  51. package/dist/CallingClient/calling/types.js +71 -0
  52. package/dist/CallingClient/calling/types.js.map +1 -0
  53. package/dist/CallingClient/callingClientFixtures.js +53 -0
  54. package/dist/CallingClient/callingClientFixtures.js.map +1 -0
  55. package/dist/CallingClient/constants.js +226 -0
  56. package/dist/CallingClient/constants.js.map +1 -0
  57. package/dist/CallingClient/line/index.js +312 -0
  58. package/dist/CallingClient/line/index.js.map +1 -0
  59. package/dist/CallingClient/line/line.test.js +270 -0
  60. package/dist/CallingClient/line/line.test.js.map +1 -0
  61. package/dist/CallingClient/line/types.js +25 -0
  62. package/dist/CallingClient/line/types.js.map +1 -0
  63. package/dist/CallingClient/registration/index.js +19 -0
  64. package/dist/CallingClient/registration/index.js.map +1 -0
  65. package/dist/CallingClient/registration/register.js +1295 -0
  66. package/dist/CallingClient/registration/register.js.map +1 -0
  67. package/dist/CallingClient/registration/register.test.js +838 -0
  68. package/dist/CallingClient/registration/register.test.js.map +1 -0
  69. package/dist/CallingClient/registration/registerFixtures.js +41 -0
  70. package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
  71. package/dist/CallingClient/registration/types.js +7 -0
  72. package/dist/CallingClient/registration/types.js.map +1 -0
  73. package/dist/CallingClient/types.js +7 -0
  74. package/dist/CallingClient/types.js.map +1 -0
  75. package/dist/Contacts/ContactsClient.js +1139 -0
  76. package/dist/Contacts/ContactsClient.js.map +1 -0
  77. package/dist/Contacts/ContactsClient.test.js +725 -0
  78. package/dist/Contacts/ContactsClient.test.js.map +1 -0
  79. package/dist/Contacts/constants.js +36 -0
  80. package/dist/Contacts/constants.js.map +1 -0
  81. package/dist/Contacts/contactFixtures.js +340 -0
  82. package/dist/Contacts/contactFixtures.js.map +1 -0
  83. package/dist/Contacts/types.js +20 -0
  84. package/dist/Contacts/types.js.map +1 -0
  85. package/dist/Errors/catalog/CallError.js +94 -0
  86. package/dist/Errors/catalog/CallError.js.map +1 -0
  87. package/dist/Errors/catalog/CallingDeviceError.js +88 -0
  88. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
  89. package/dist/Errors/catalog/ExtendedError.js +45 -0
  90. package/dist/Errors/catalog/ExtendedError.js.map +1 -0
  91. package/dist/Errors/catalog/LineError.js +90 -0
  92. package/dist/Errors/catalog/LineError.js.map +1 -0
  93. package/dist/Errors/index.js +21 -0
  94. package/dist/Errors/index.js.map +1 -0
  95. package/dist/Errors/types.js +62 -0
  96. package/dist/Errors/types.js.map +1 -0
  97. package/dist/Events/impl/index.js +82 -0
  98. package/dist/Events/impl/index.js.map +1 -0
  99. package/dist/Events/types.js +111 -0
  100. package/dist/Events/types.js.map +1 -0
  101. package/dist/Logger/index.js +221 -0
  102. package/dist/Logger/index.js.map +1 -0
  103. package/dist/Logger/index.test.js +62 -0
  104. package/dist/Logger/index.test.js.map +1 -0
  105. package/dist/Logger/types.js +37 -0
  106. package/dist/Logger/types.js.map +1 -0
  107. package/dist/Metrics/index.js +329 -0
  108. package/dist/Metrics/index.js.map +1 -0
  109. package/dist/Metrics/index.test.js +291 -0
  110. package/dist/Metrics/index.test.js.map +1 -0
  111. package/dist/Metrics/types.js +50 -0
  112. package/dist/Metrics/types.js.map +1 -0
  113. package/dist/SDKConnector/index.js +105 -0
  114. package/dist/SDKConnector/index.js.map +1 -0
  115. package/dist/SDKConnector/index.test.js +9 -0
  116. package/dist/SDKConnector/index.test.js.map +1 -0
  117. package/dist/SDKConnector/types.js +7 -0
  118. package/dist/SDKConnector/types.js.map +1 -0
  119. package/dist/SDKConnector/utils.js +40 -0
  120. package/dist/SDKConnector/utils.js.map +1 -0
  121. package/dist/SDKConnector/utils.test.js +9 -0
  122. package/dist/SDKConnector/utils.test.js.map +1 -0
  123. package/dist/Voicemail/BroadworksBackendConnector.js +632 -0
  124. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
  125. package/dist/Voicemail/BroadworksBackendConnector.test.js +733 -0
  126. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
  127. package/dist/Voicemail/UcmBackendConnector.js +566 -0
  128. package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
  129. package/dist/Voicemail/UcmBackendConnector.test.js +628 -0
  130. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
  131. package/dist/Voicemail/Voicemail.js +378 -0
  132. package/dist/Voicemail/Voicemail.js.map +1 -0
  133. package/dist/Voicemail/Voicemail.test.js +226 -0
  134. package/dist/Voicemail/Voicemail.test.js.map +1 -0
  135. package/dist/Voicemail/WxCallBackendConnector.js +540 -0
  136. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
  137. package/dist/Voicemail/WxCallBackendConnector.test.js +942 -0
  138. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
  139. package/dist/Voicemail/constants.js +66 -0
  140. package/dist/Voicemail/constants.js.map +1 -0
  141. package/dist/Voicemail/types.js +7 -0
  142. package/dist/Voicemail/types.js.map +1 -0
  143. package/dist/Voicemail/voicemailFixture.js +559 -0
  144. package/dist/Voicemail/voicemailFixture.js.map +1 -0
  145. package/dist/api.js +134 -0
  146. package/dist/api.js.map +1 -0
  147. package/dist/common/Utils.js +1264 -0
  148. package/dist/common/Utils.js.map +1 -0
  149. package/dist/common/Utils.test.js +1227 -0
  150. package/dist/common/Utils.test.js.map +1 -0
  151. package/dist/common/constants.js +90 -0
  152. package/dist/common/constants.js.map +1 -0
  153. package/dist/common/index.js +19 -0
  154. package/dist/common/index.js.map +1 -0
  155. package/dist/common/testUtil.js +968 -0
  156. package/dist/common/testUtil.js.map +1 -0
  157. package/dist/common/types.js +75 -0
  158. package/dist/common/types.js.map +1 -0
  159. package/dist/index.js +63 -0
  160. package/dist/index.js.map +1 -0
  161. package/package.json +2 -2
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
+ _Object$defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
13
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
15
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
17
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
20
+ var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldGet"));
21
+ var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldSet"));
22
+ var _uuid = require("uuid");
23
+ var _types = require("../../common/types");
24
+ var _types2 = require("./types");
25
+ var _constants = require("../constants");
26
+ var _Logger = _interopRequireDefault(require("../../Logger"));
27
+ var _registration = require("../registration");
28
+ var _impl = require("../../Events/impl");
29
+ var _LineError = require("../../Errors/catalog/LineError");
30
+ var _common = require("../../common");
31
+ var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
32
+ var _types3 = require("../../Events/types");
33
+ var _callManager = require("../calling/callManager");
34
+ var _types4 = require("../../Errors/types");
35
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
36
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
38
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
39
+ var _webex = /*#__PURE__*/new _weakMap.default();
40
+ var _mutex = /*#__PURE__*/new _weakMap.default();
41
+ var _sdkConnector = /*#__PURE__*/new _weakMap.default();
42
+ var _primaryMobiusUris = /*#__PURE__*/new _weakMap.default();
43
+ var _backupMobiusUris = /*#__PURE__*/new _weakMap.default();
44
+ var Line = /*#__PURE__*/function (_Eventing) {
45
+ (0, _inherits2.default)(Line, _Eventing);
46
+ var _super = _createSuper(Line);
47
+ function Line(userId, clientDeviceUri, status, mutex, primaryMobiusUris, backupMobiusUris, logLevel, serviceDataConfig, phoneNumber, extension, voicemail) {
48
+ var _this;
49
+ (0, _classCallCheck2.default)(this, Line);
50
+ _this = _super.call(this);
51
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _webex, {
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _mutex, {
56
+ writable: true,
57
+ value: void 0
58
+ });
59
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _sdkConnector, {
60
+ writable: true,
61
+ value: void 0
62
+ });
63
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "registration", void 0);
64
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "userId", void 0);
65
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clientDeviceUri", void 0);
66
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lineId", void 0);
67
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mobiusDeviceId", void 0);
68
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mobiusUri", void 0);
69
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "phoneNumber", void 0);
70
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "extension", void 0);
71
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "status", void 0);
72
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sipAddresses", void 0);
73
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "voicemail", void 0);
74
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastSeen", void 0);
75
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "keepaliveInterval", void 0);
76
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callKeepaliveInterval", void 0);
77
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "rehomingIntervalMin", void 0);
78
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "rehomingIntervalMax", void 0);
79
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "voicePortalNumber", void 0);
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "voicePortalExtension", void 0);
81
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "callManager", void 0);
82
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _primaryMobiusUris, {
83
+ writable: true,
84
+ value: void 0
85
+ });
86
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _backupMobiusUris, {
87
+ writable: true,
88
+ value: void 0
89
+ });
90
+ /**
91
+ * Line events emitter
92
+ */
93
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lineEmitter", function (event, deviceInfo, lineError) {
94
+ switch (event) {
95
+ case _types2.LINE_EVENTS.REGISTERED:
96
+ if (deviceInfo) {
97
+ _this.normalizeLine(deviceInfo);
98
+ _this.emit(event, (0, _assertThisInitialized2.default)(_this));
99
+ }
100
+ break;
101
+ case _types2.LINE_EVENTS.UNREGISTERED:
102
+ case _types2.LINE_EVENTS.RECONNECTED:
103
+ case _types2.LINE_EVENTS.RECONNECTING:
104
+ _this.emit(event);
105
+ break;
106
+ case _types2.LINE_EVENTS.ERROR:
107
+ if (lineError) {
108
+ _this.emit(event, lineError);
109
+ }
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+ });
115
+ /**
116
+ * Gets registration status
117
+ */
118
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getRegistrationStatus", function () {
119
+ return _this.registration.getStatus();
120
+ });
121
+ /**
122
+ * Gets device id
123
+ */
124
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getDeviceId", function () {
125
+ var _this$registration$ge;
126
+ return (_this$registration$ge = _this.registration.getDeviceInfo().device) === null || _this$registration$ge === void 0 ? void 0 : _this$registration$ge.deviceId;
127
+ });
128
+ /**
129
+ * @param dest -.
130
+ */
131
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "makeCall", function (dest) {
132
+ var call;
133
+ if (dest) {
134
+ var match = dest.address.match(_constants.VALID_PHONE);
135
+ if (match && match[0].length === dest.address.length) {
136
+ var _this$registration$ge2;
137
+ var sanitizedNumber = dest.address.replace(/[^[*+]\d#]/gi, '').replace(/\s+/gi, '').replace(/-/gi, '');
138
+ var formattedDest = {
139
+ type: dest.type,
140
+ address: "tel:".concat(sanitizedNumber)
141
+ };
142
+ call = _this.callManager.createCall(formattedDest, _types.CallDirection.OUTBOUND, (_this$registration$ge2 = _this.registration.getDeviceInfo().device) === null || _this$registration$ge2 === void 0 ? void 0 : _this$registration$ge2.deviceId, _this.lineId);
143
+ _Logger.default.log("New call created, callId: ".concat(call.getCallId()), {});
144
+ } else {
145
+ _Logger.default.warn('Invalid phone number detected', {});
146
+ var err = new _LineError.LineError('An invalid phone number was detected. Check the number and try again.', {}, _types4.ERROR_TYPE.CALL_ERROR, _types2.LineStatus.ACTIVE);
147
+ _this.emit(_types2.LINE_EVENTS.ERROR, err);
148
+ }
149
+ return call;
150
+ }
151
+ return undefined;
152
+ });
153
+ /**
154
+ * @param callId -.
155
+ * @param correlationId -.
156
+ */
157
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getCall", function (correlationId) {
158
+ return _this.callManager.getCall(correlationId);
159
+ });
160
+ _this.lineId = (0, _uuid.v4)();
161
+ _this.userId = userId;
162
+ _this.clientDeviceUri = clientDeviceUri;
163
+ _this.status = status;
164
+ _this.phoneNumber = phoneNumber;
165
+ _this.extension = extension;
166
+ _this.voicemail = voicemail;
167
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _sdkConnector, _SDKConnector.default);
168
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _webex, (0, _classPrivateFieldGet2.default)((0, _assertThisInitialized2.default)(_this), _sdkConnector).getWebex());
169
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _mutex, mutex);
170
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _primaryMobiusUris, primaryMobiusUris);
171
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _backupMobiusUris, backupMobiusUris);
172
+ var serviceData = serviceDataConfig !== null && serviceDataConfig !== void 0 && serviceDataConfig.indicator ? serviceDataConfig : {
173
+ indicator: _types.ServiceIndicator.CALLING,
174
+ domain: ''
175
+ };
176
+ (0, _common.validateServiceData)(serviceData);
177
+ _this.registration = (0, _registration.createRegistration)((0, _classPrivateFieldGet2.default)((0, _assertThisInitialized2.default)(_this), _webex), serviceData, (0, _classPrivateFieldGet2.default)((0, _assertThisInitialized2.default)(_this), _mutex), _this.lineEmitter, logLevel);
178
+ _this.registration.setStatus(_types.MobiusStatus.DEFAULT);
179
+ _Logger.default.setLogger(logLevel, _constants.LINE_FILE);
180
+ _this.callManager = (0, _callManager.getCallManager)((0, _classPrivateFieldGet2.default)((0, _assertThisInitialized2.default)(_this), _webex), serviceData.indicator);
181
+ _this.incomingCallListener();
182
+ return _this;
183
+ }
184
+
185
+ /**
186
+ * Wrapper to for device registration.
187
+ */
188
+ (0, _createClass2.default)(Line, [{
189
+ key: "register",
190
+ value: function () {
191
+ var _register = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
192
+ var _this2 = this;
193
+ return _regenerator.default.wrap(function _callee2$(_context2) {
194
+ while (1) switch (_context2.prev = _context2.next) {
195
+ case 0:
196
+ _context2.next = 2;
197
+ return (0, _classPrivateFieldGet2.default)(this, _mutex).runExclusive( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
198
+ return _regenerator.default.wrap(function _callee$(_context) {
199
+ while (1) switch (_context.prev = _context.next) {
200
+ case 0:
201
+ _this2.registration.setStatus(_types.MobiusStatus.DEFAULT);
202
+ _this2.emit(_types2.LINE_EVENTS.CONNECTING);
203
+ _this2.registration.setMobiusServers((0, _classPrivateFieldGet2.default)(_this2, _primaryMobiusUris), (0, _classPrivateFieldGet2.default)(_this2, _backupMobiusUris));
204
+ _context.next = 5;
205
+ return _this2.registration.triggerRegistration();
206
+ case 5:
207
+ case "end":
208
+ return _context.stop();
209
+ }
210
+ }, _callee);
211
+ })));
212
+ case 2:
213
+ if (this.mobiusDeviceId) {
214
+ this.callManager.updateLine(this.mobiusDeviceId, this);
215
+ }
216
+ case 3:
217
+ case "end":
218
+ return _context2.stop();
219
+ }
220
+ }, _callee2, this);
221
+ }));
222
+ function register() {
223
+ return _register.apply(this, arguments);
224
+ }
225
+ return register;
226
+ }()
227
+ /**
228
+ * Wrapper to for device deregister.
229
+ */
230
+ }, {
231
+ key: "deregister",
232
+ value: function () {
233
+ var _deregister = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
234
+ return _regenerator.default.wrap(function _callee3$(_context3) {
235
+ while (1) switch (_context3.prev = _context3.next) {
236
+ case 0:
237
+ this.registration.deregister();
238
+ case 1:
239
+ case "end":
240
+ return _context3.stop();
241
+ }
242
+ }, _callee3, this);
243
+ }));
244
+ function deregister() {
245
+ return _deregister.apply(this, arguments);
246
+ }
247
+ return deregister;
248
+ }()
249
+ /**
250
+ * To normalize line class with Mobius response
251
+ */
252
+ }, {
253
+ key: "normalizeLine",
254
+ value: function normalizeLine(deviceInfo) {
255
+ var device = deviceInfo.device,
256
+ keepaliveInterval = deviceInfo.keepaliveInterval,
257
+ callKeepaliveInterval = deviceInfo.callKeepaliveInterval,
258
+ rehomingIntervalMin = deviceInfo.rehomingIntervalMin,
259
+ rehomingIntervalMax = deviceInfo.rehomingIntervalMax,
260
+ voicePortalNumber = deviceInfo.voicePortalNumber,
261
+ voicePortalExtension = deviceInfo.voicePortalExtension;
262
+ this.mobiusDeviceId = device === null || device === void 0 ? void 0 : device.deviceId;
263
+ this.mobiusUri = device === null || device === void 0 ? void 0 : device.uri;
264
+ this.lastSeen = device === null || device === void 0 ? void 0 : device.lastSeen;
265
+ this.sipAddresses = device === null || device === void 0 ? void 0 : device.addresses;
266
+ this.keepaliveInterval = keepaliveInterval;
267
+ this.callKeepaliveInterval = callKeepaliveInterval;
268
+ this.rehomingIntervalMin = rehomingIntervalMin;
269
+ this.rehomingIntervalMax = rehomingIntervalMax;
270
+ this.voicePortalNumber = voicePortalNumber;
271
+ this.voicePortalExtension = voicePortalExtension;
272
+ }
273
+ }, {
274
+ key: "getLoggingLevel",
275
+ value:
276
+ /**
277
+ * To get the current log Level.
278
+ */
279
+ function getLoggingLevel() {
280
+ return _Logger.default.getLogLevel();
281
+ }
282
+
283
+ /**
284
+ * To get active url of Mobius.
285
+ */
286
+ }, {
287
+ key: "getActiveMobiusUrl",
288
+ value: function getActiveMobiusUrl() {
289
+ return this.registration.getActiveMobiusUrl();
290
+ }
291
+ }, {
292
+ key: "incomingCallListener",
293
+ value:
294
+ /**
295
+ * An Incoming Call listener.
296
+ */
297
+ function incomingCallListener() {
298
+ var _this3 = this;
299
+ var logContext = {
300
+ file: _constants.LINE_FILE,
301
+ method: this.incomingCallListener.name
302
+ };
303
+ _Logger.default.log('Listening for incoming calls... ', logContext);
304
+ this.callManager.on(_types3.LINE_EVENT_KEYS.INCOMING_CALL, function (callObj) {
305
+ _this3.emit(_types2.LINE_EVENTS.INCOMING_CALL, callObj);
306
+ });
307
+ }
308
+ }]);
309
+ return Line;
310
+ }(_impl.Eventing);
311
+ exports.default = Line;
312
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_uuid","require","_types","_types2","_constants","_Logger","_interopRequireDefault","_registration","_impl","_LineError","_common","_SDKConnector","_types3","_callManager","_types4","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","_classPrivateFieldInitSpec","obj","privateMap","value","_checkPrivateRedeclaration","set","privateCollection","has","TypeError","_webex","_weakMap","_mutex","_sdkConnector","_primaryMobiusUris","_backupMobiusUris","Line","_Eventing","_inherits2","_super","userId","clientDeviceUri","status","mutex","primaryMobiusUris","backupMobiusUris","logLevel","serviceDataConfig","phoneNumber","extension","voicemail","_this","_classCallCheck2","_assertThisInitialized2","writable","_defineProperty2","event","deviceInfo","lineError","LINE_EVENTS","REGISTERED","normalizeLine","emit","UNREGISTERED","RECONNECTED","RECONNECTING","ERROR","registration","getStatus","_this$registration$ge","getDeviceInfo","device","deviceId","dest","match","address","VALID_PHONE","length","_this$registration$ge2","sanitizedNumber","replace","formattedDest","type","concat","callManager","createCall","CallDirection","OUTBOUND","lineId","log","getCallId","warn","err","LineError","ERROR_TYPE","CALL_ERROR","LineStatus","ACTIVE","undefined","correlationId","getCall","uuid","_classPrivateFieldSet2","SDKConnector","_classPrivateFieldGet2","getWebex","serviceData","indicator","ServiceIndicator","CALLING","domain","validateServiceData","createRegistration","lineEmitter","setStatus","MobiusStatus","DEFAULT","setLogger","LINE_FILE","getCallManager","incomingCallListener","_createClass2","key","_register","_asyncToGenerator2","_regenerator","mark","_callee2","_this2","wrap","_callee2$","_context2","prev","next","runExclusive","_callee","_callee$","_context","CONNECTING","setMobiusServers","triggerRegistration","stop","mobiusDeviceId","updateLine","register","_deregister","_callee3","_callee3$","_context3","deregister","keepaliveInterval","callKeepaliveInterval","rehomingIntervalMin","rehomingIntervalMax","voicePortalNumber","voicePortalExtension","mobiusUri","uri","lastSeen","sipAddresses","addresses","getLoggingLevel","getLogLevel","getActiveMobiusUrl","_this3","logContext","file","method","name","on","LINE_EVENT_KEYS","INCOMING_CALL","callObj","Eventing","exports"],"sources":["index.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport {v4 as uuid} from 'uuid';\nimport {\n CallDetails,\n CallDirection,\n CorrelationId,\n IDeviceInfo,\n MobiusDeviceId,\n MobiusStatus,\n ServiceIndicator,\n} from '../../common/types';\nimport {ILine, LINE_EVENTS, LineEventTypes, LineStatus} from './types';\nimport {LINE_FILE, VALID_PHONE} from '../constants';\nimport log from '../../Logger';\nimport {IRegistration} from '../registration/types';\nimport {createRegistration} from '../registration';\nimport {ISDKConnector, WebexSDK} from '../../SDKConnector/types';\nimport {CallingClientConfig} from '../types';\nimport {Eventing} from '../../Events/impl';\nimport {LineError} from '../../Errors/catalog/LineError';\nimport {LOGGER} from '../../Logger/types';\nimport {validateServiceData} from '../../common';\nimport SDKConnector from '../../SDKConnector';\nimport {LINE_EVENT_KEYS} from '../../Events/types';\nimport {ICall, ICallManager} from '../calling/types';\nimport {getCallManager} from '../calling/callManager';\nimport {ERROR_TYPE} from '../../Errors/types';\n\nexport default class Line extends Eventing<LineEventTypes> implements ILine {\n #webex: WebexSDK;\n\n #mutex: Mutex;\n\n #sdkConnector: ISDKConnector;\n\n public registration: IRegistration;\n\n public userId: string;\n\n public clientDeviceUri: string;\n\n public lineId: string;\n\n public mobiusDeviceId?: string;\n\n private mobiusUri?: string;\n\n public phoneNumber?: string;\n\n public extension?: string;\n\n public status: LineStatus;\n\n public sipAddresses?: string[];\n\n public voicemail?: string;\n\n public lastSeen?: string;\n\n public keepaliveInterval?: number;\n\n public callKeepaliveInterval?: number;\n\n public rehomingIntervalMin?: number;\n\n public rehomingIntervalMax?: number;\n\n public voicePortalNumber?: number;\n\n public voicePortalExtension?: number;\n\n private callManager: ICallManager;\n\n #primaryMobiusUris: string[];\n\n #backupMobiusUris: string[];\n\n constructor(\n userId: string,\n clientDeviceUri: string,\n status: LineStatus,\n mutex: Mutex,\n primaryMobiusUris: string[],\n backupMobiusUris: string[],\n logLevel: LOGGER,\n serviceDataConfig?: CallingClientConfig['serviceData'],\n phoneNumber?: string,\n extension?: string,\n voicemail?: string\n ) {\n super();\n this.lineId = uuid();\n this.userId = userId;\n this.clientDeviceUri = clientDeviceUri;\n this.status = status;\n this.phoneNumber = phoneNumber;\n this.extension = extension;\n this.voicemail = voicemail;\n\n this.#sdkConnector = SDKConnector;\n this.#webex = this.#sdkConnector.getWebex();\n this.#mutex = mutex;\n\n this.#primaryMobiusUris = primaryMobiusUris;\n this.#backupMobiusUris = backupMobiusUris;\n\n const serviceData = serviceDataConfig?.indicator\n ? serviceDataConfig\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n validateServiceData(serviceData);\n\n this.registration = createRegistration(\n this.#webex,\n serviceData,\n this.#mutex,\n this.lineEmitter,\n logLevel\n );\n\n this.registration.setStatus(MobiusStatus.DEFAULT);\n log.setLogger(logLevel, LINE_FILE);\n\n this.callManager = getCallManager(this.#webex, serviceData.indicator);\n\n this.incomingCallListener();\n }\n\n /**\n * Wrapper to for device registration.\n */\n public async register() {\n await this.#mutex.runExclusive(async () => {\n this.registration.setStatus(MobiusStatus.DEFAULT);\n this.emit(LINE_EVENTS.CONNECTING);\n\n this.registration.setMobiusServers(this.#primaryMobiusUris, this.#backupMobiusUris);\n await this.registration.triggerRegistration();\n });\n if (this.mobiusDeviceId) {\n this.callManager.updateLine(this.mobiusDeviceId, this);\n }\n }\n\n /**\n * Wrapper to for device deregister.\n */\n public async deregister() {\n this.registration.deregister();\n }\n\n /**\n * To normalize line class with Mobius response\n */\n private normalizeLine(deviceInfo: IDeviceInfo) {\n const {\n device,\n keepaliveInterval,\n callKeepaliveInterval,\n rehomingIntervalMin,\n rehomingIntervalMax,\n voicePortalNumber,\n voicePortalExtension,\n } = deviceInfo;\n\n this.mobiusDeviceId = device?.deviceId;\n this.mobiusUri = device?.uri;\n this.lastSeen = device?.lastSeen;\n this.sipAddresses = device?.addresses;\n this.keepaliveInterval = keepaliveInterval;\n this.callKeepaliveInterval = callKeepaliveInterval;\n this.rehomingIntervalMin = rehomingIntervalMin;\n this.rehomingIntervalMax = rehomingIntervalMax;\n this.voicePortalNumber = voicePortalNumber;\n this.voicePortalExtension = voicePortalExtension;\n }\n\n /**\n * Line events emitter\n */\n public lineEmitter = (event: LINE_EVENTS, deviceInfo?: IDeviceInfo, lineError?: LineError) => {\n switch (event) {\n case LINE_EVENTS.REGISTERED:\n if (deviceInfo) {\n this.normalizeLine(deviceInfo);\n this.emit(event, this);\n }\n break;\n case LINE_EVENTS.UNREGISTERED:\n case LINE_EVENTS.RECONNECTED:\n case LINE_EVENTS.RECONNECTING:\n this.emit(event);\n break;\n case LINE_EVENTS.ERROR:\n if (lineError) {\n this.emit(event, lineError);\n }\n break;\n default:\n break;\n }\n };\n\n /**\n * To get the current log Level.\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To get active url of Mobius.\n */\n public getActiveMobiusUrl(): string {\n return this.registration.getActiveMobiusUrl();\n }\n\n /**\n * Gets registration status\n */\n public getRegistrationStatus = (): MobiusStatus => this.registration.getStatus();\n\n /**\n * Gets device id\n */\n public getDeviceId = (): MobiusDeviceId | undefined =>\n this.registration.getDeviceInfo().device?.deviceId;\n\n /**\n * @param dest -.\n */\n public makeCall = (dest: CallDetails): ICall | undefined => {\n let call;\n\n if (dest) {\n const match = dest.address.match(VALID_PHONE);\n\n if (match && match[0].length === dest.address.length) {\n const sanitizedNumber = dest.address\n .replace(/[^[*+]\\d#]/gi, '')\n .replace(/\\s+/gi, '')\n .replace(/-/gi, '');\n const formattedDest = {\n type: dest.type,\n address: `tel:${sanitizedNumber}`,\n };\n\n call = this.callManager.createCall(\n formattedDest,\n CallDirection.OUTBOUND,\n this.registration.getDeviceInfo().device?.deviceId as string,\n this.lineId\n );\n log.log(`New call created, callId: ${call.getCallId()}`, {});\n } else {\n log.warn('Invalid phone number detected', {});\n\n const err = new LineError(\n 'An invalid phone number was detected. Check the number and try again.',\n {},\n ERROR_TYPE.CALL_ERROR,\n LineStatus.ACTIVE\n );\n\n this.emit(LINE_EVENTS.ERROR, err);\n }\n\n return call;\n }\n\n return undefined;\n };\n\n /**\n * An Incoming Call listener.\n */\n private incomingCallListener() {\n const logContext = {\n file: LINE_FILE,\n method: this.incomingCallListener.name,\n };\n log.log('Listening for incoming calls... ', logContext);\n this.callManager.on(LINE_EVENT_KEYS.INCOMING_CALL, (callObj: ICall) => {\n this.emit(LINE_EVENTS.INCOMING_CALL, callObj);\n });\n }\n\n /**\n * @param callId -.\n * @param correlationId -.\n */\n public getCall = (correlationId: CorrelationId): ICall => {\n return this.callManager.getCall(correlationId);\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
10
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
13
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
16
+ var _asyncMutex = require("async-mutex");
17
+ var _testUtil = require("../../common/testUtil");
18
+ var _registerFixtures = require("../registration/registerFixtures");
19
+ var _common = require("../../common");
20
+ var _types = require("../../common/types");
21
+ var _types2 = require("./types");
22
+ var _ = _interopRequireDefault(require("."));
23
+ var utils = _interopRequireWildcard(require("../../common/Utils"));
24
+ var _SDKConnector = _interopRequireDefault(require("../../SDKConnector"));
25
+ var _constants = require("../constants");
26
+ var _types3 = require("../../Logger/types");
27
+ var regUtils = _interopRequireWildcard(require("../registration/register"));
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
32
+ describe('Line Tests', function () {
33
+ var mutex = new _asyncMutex.Mutex();
34
+ var webex = (0, _testUtil.getTestUtilsWebex)();
35
+ _SDKConnector.default.setWebex(webex);
36
+ var defaultServiceData = {
37
+ indicator: _types.ServiceIndicator.CALLING,
38
+ domain: ''
39
+ };
40
+ var createRegistrationSpy = jest.spyOn(regUtils, 'createRegistration');
41
+ var mobiusUris = (0, _common.filterMobiusUris)((0, _testUtil.getMobiusDiscoveryResponse)(), _registerFixtures.URL);
42
+ var primaryMobiusUris = jest.fn(function () {
43
+ return mobiusUris.primary;
44
+ });
45
+ var backupMobiusUris = jest.fn(function () {
46
+ return mobiusUris.backup;
47
+ });
48
+ var userId = webex.internal.device.userId;
49
+ var clientDeviceUri = webex.internal.device.url;
50
+ var handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');
51
+ jest.clearAllMocks();
52
+ describe('Line Registration tests', function () {
53
+ var line;
54
+ var mockRegistrationBody = (0, _testUtil.getMockDeviceInfo)();
55
+ var discoveryBody = (0, _testUtil.getMobiusDiscoveryResponse)();
56
+ var primaryUrl = "".concat(discoveryBody.primary.uris[0], "/calling/web/");
57
+ var registrationPayload = {
58
+ statusCode: 200,
59
+ body: mockRegistrationBody
60
+ };
61
+ beforeEach(function () {
62
+ line = new _.default(userId, clientDeviceUri, _types2.LineStatus.ACTIVE, mutex, primaryMobiusUris(), backupMobiusUris(), _types3.LOGGER.INFO);
63
+ });
64
+ afterEach(function () {
65
+ jest.clearAllTimers();
66
+ jest.clearAllMocks();
67
+ jest.useRealTimers();
68
+ line.removeAllListeners();
69
+ });
70
+ it('verify successful Registration cases and keepalive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
71
+ return _regenerator.default.wrap(function _callee$(_context) {
72
+ while (1) switch (_context.prev = _context.next) {
73
+ case 0:
74
+ jest.useFakeTimers();
75
+ webex.request.mockReturnValue(registrationPayload);
76
+ expect(createRegistrationSpy).toBeCalledOnceWith(webex, defaultServiceData, expect.any(_asyncMutex.Mutex), expect.anything(), _types3.LOGGER.INFO);
77
+ expect(line.getRegistrationStatus()).toEqual(_types.MobiusStatus.DEFAULT);
78
+ _context.next = 6;
79
+ return line.register();
80
+ case 6:
81
+ expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, (0, _testUtil.getMockRequestTemplate)()), {}, {
82
+ body: {
83
+ userId: userId,
84
+ clientDeviceUri: clientDeviceUri,
85
+ serviceData: defaultServiceData
86
+ },
87
+ uri: "".concat(primaryUrl, "device"),
88
+ method: 'POST'
89
+ }));
90
+ expect(handleErrorSpy).not.toBeCalled();
91
+ expect(line.getRegistrationStatus()).toEqual(_types.MobiusStatus.ACTIVE);
92
+ expect(line.getActiveMobiusUrl()).toEqual(primaryUrl);
93
+ expect(line.getLoggingLevel()).toEqual(_types3.LOGGER.INFO);
94
+ expect(line.getDeviceId()).toEqual(mockRegistrationBody.device.deviceId);
95
+ webex.request.mockClear();
96
+ jest.advanceTimersByTime(30 * 1000);
97
+ _context.next = 16;
98
+ return _promise.default.resolve();
99
+ case 16:
100
+ expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, (0, _testUtil.getMockRequestTemplate)()), {}, {
101
+ uri: "".concat(mockRegistrationBody.device.uri, "/status"),
102
+ method: 'POST'
103
+ }));
104
+ jest.useRealTimers();
105
+ case 18:
106
+ case "end":
107
+ return _context.stop();
108
+ }
109
+ }, _callee);
110
+ })));
111
+ it('verify failure Registration cases all requests fail ', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
112
+ return _regenerator.default.wrap(function _callee2$(_context2) {
113
+ while (1) switch (_context2.prev = _context2.next) {
114
+ case 0:
115
+ line.removeAllListeners(_types2.LINE_EVENTS.ERROR);
116
+ webex.request.mockRejectedValue({
117
+ statusCode: 401
118
+ });
119
+ line.on(_types2.LINE_EVENTS.ERROR, function (error) {
120
+ expect(error.message).toBe('User is unauthorized due to an expired token. Sign out, then sign back in.');
121
+ });
122
+ expect(line.getRegistrationStatus()).toBe(_types.MobiusStatus.DEFAULT);
123
+ line.register();
124
+ _context2.next = 7;
125
+ return utils.waitForMsecs(20);
126
+ case 7:
127
+ expect(line.getRegistrationStatus()).toBe(_types.MobiusStatus.DEFAULT);
128
+ expect(handleErrorSpy).toBeCalledOnceWith(expect.anything(), expect.anything(), {
129
+ file: _constants.REGISTRATION_FILE,
130
+ method: 'attemptRegistrationWithServers'
131
+ }, expect.anything());
132
+ case 9:
133
+ case "end":
134
+ return _context2.stop();
135
+ }
136
+ }, _callee2);
137
+ })));
138
+ it('verify successful de-registration cases', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
139
+ return _regenerator.default.wrap(function _callee3$(_context3) {
140
+ while (1) switch (_context3.prev = _context3.next) {
141
+ case 0:
142
+ webex.request.mockReturnValueOnce(registrationPayload);
143
+ expect(line.getRegistrationStatus()).toEqual(_types.MobiusStatus.DEFAULT);
144
+ _context3.next = 4;
145
+ return line.register();
146
+ case 4:
147
+ expect(line.getRegistrationStatus()).toEqual(_types.MobiusStatus.ACTIVE);
148
+ _context3.next = 7;
149
+ return line.deregister();
150
+ case 7:
151
+ expect(line.getRegistrationStatus()).toEqual(_types.MobiusStatus.DEFAULT);
152
+ case 8:
153
+ case "end":
154
+ return _context3.stop();
155
+ }
156
+ }, _callee3);
157
+ })));
158
+ });
159
+ describe('Line calling tests', function () {
160
+ var line;
161
+ beforeEach(function () {
162
+ line = new _.default(userId, clientDeviceUri, _types2.LineStatus.ACTIVE, mutex, primaryMobiusUris(), backupMobiusUris(), _types3.LOGGER.INFO);
163
+ });
164
+ afterEach(function () {
165
+ jest.clearAllTimers();
166
+ jest.clearAllMocks();
167
+ jest.useRealTimers();
168
+ line.removeAllListeners();
169
+ });
170
+ it('Return a successful call object while making call', function () {
171
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
172
+ var call = line.makeCall({
173
+ address: '5003',
174
+ type: _types.CallType.URI
175
+ });
176
+ expect(createCallSpy).toBeCalledOnceWith({
177
+ address: 'tel:5003',
178
+ type: 'uri'
179
+ }, _types.CallDirection.OUTBOUND, undefined, line.lineId);
180
+ expect(call).toBeTruthy();
181
+ expect(line.getCall(call ? call.getCorrelationId() : '')).toBe(call);
182
+ expect(call ? call.direction : undefined).toStrictEqual(_types.CallDirection.OUTBOUND);
183
+ call === null || call === void 0 ? void 0 : call.end();
184
+ });
185
+ it('Return a successful call object while making call to FAC codes', function () {
186
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
187
+ var call = line.makeCall({
188
+ address: '*25',
189
+ type: _types.CallType.URI
190
+ });
191
+ expect(createCallSpy).toBeCalledOnceWith({
192
+ address: 'tel:*25',
193
+ type: 'uri'
194
+ }, _types.CallDirection.OUTBOUND, undefined, line.lineId);
195
+ expect(call).toBeTruthy();
196
+ expect(call ? call.direction : undefined).toStrictEqual(_types.CallDirection.OUTBOUND);
197
+ call === null || call === void 0 ? void 0 : call.end();
198
+ });
199
+ it('Remove spaces from dialled number while making call', function () {
200
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
201
+ var call = line.makeCall({
202
+ address: '+91 123 456 7890',
203
+ type: _types.CallType.URI
204
+ });
205
+ expect(createCallSpy).toBeCalledOnceWith({
206
+ address: 'tel:+911234567890',
207
+ type: 'uri'
208
+ }, _types.CallDirection.OUTBOUND, undefined, line.lineId);
209
+ expect(call).toBeTruthy();
210
+ expect(call ? call.direction : undefined).toStrictEqual(_types.CallDirection.OUTBOUND);
211
+ expect(call ? call.destination.address : undefined).toStrictEqual('tel:+911234567890');
212
+ call === null || call === void 0 ? void 0 : call.end();
213
+ });
214
+ it('Remove hyphen from dialled number while making call', function () {
215
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
216
+ var call = line.makeCall({
217
+ address: '123-456-7890',
218
+ type: _types.CallType.URI
219
+ });
220
+ expect(createCallSpy).toBeCalledOnceWith({
221
+ address: 'tel:1234567890',
222
+ type: 'uri'
223
+ }, _types.CallDirection.OUTBOUND, undefined, line.lineId);
224
+ expect(call).toBeTruthy();
225
+ expect(call ? call.direction : undefined).toStrictEqual(_types.CallDirection.OUTBOUND);
226
+ expect(call ? call.destination.address : undefined).toStrictEqual('tel:1234567890');
227
+ call === null || call === void 0 ? void 0 : call.end();
228
+ });
229
+ it('attempt to create call with incorrect number format 1', function (done) {
230
+ // There may be other listeners , which may create race
231
+ line.removeAllListeners(_types2.LINE_EVENTS.ERROR);
232
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
233
+ line.on(_types2.LINE_EVENTS.ERROR, function (error) {
234
+ expect(error.message).toBe('An invalid phone number was detected. Check the number and try again.');
235
+ done();
236
+ });
237
+ try {
238
+ var call = line.makeCall({
239
+ address: 'select#$@^^',
240
+ type: _types.CallType.URI
241
+ });
242
+ expect(call).toBeUndefined();
243
+ expect(createCallSpy).not.toBeCalledOnceWith({});
244
+ } catch (error) {
245
+ done(error);
246
+ }
247
+ });
248
+ it('attempt to create call with incorrect number format 2', function (done) {
249
+ expect.assertions(4);
250
+ // There may be other listeners , which may create race
251
+ line.removeAllListeners(_types2.LINE_EVENTS.ERROR);
252
+ var createCallSpy = jest.spyOn(line.callManager, 'createCall');
253
+ line.on(_types2.LINE_EVENTS.ERROR, function (error) {
254
+ expect(error.message).toBe('An invalid phone number was detected. Check the number and try again.');
255
+ done();
256
+ });
257
+ try {
258
+ var call = line.makeCall({
259
+ address: '+1@8883332505',
260
+ type: _types.CallType.URI
261
+ });
262
+ expect(call).toBeUndefined();
263
+ expect(createCallSpy).not.toBeCalledOnceWith({});
264
+ } catch (error) {
265
+ done(error);
266
+ }
267
+ });
268
+ });
269
+ });
270
+ //# sourceMappingURL=line.test.js.map