@webex/calling 3.12.0-next.4 → 3.12.0-next.41
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.
- package/dist/CallingClient/CallingClient.js +463 -205
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +170 -77
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +589 -445
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +695 -445
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +53 -30
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +35 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js +2 -0
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/constants.js +25 -3
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +4 -1
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +16 -1
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +712 -406
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +202 -21
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +41 -104
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +39 -153
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/utils/constants.js +46 -0
- package/dist/CallingClient/utils/constants.js.map +1 -0
- package/dist/CallingClient/utils/index.js +63 -0
- package/dist/CallingClient/utils/index.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js +122 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js +211 -0
- package/dist/CallingClient/utils/mobiusSocketMapper.test.js.map +1 -0
- package/dist/CallingClient/utils/request.js +354 -0
- package/dist/CallingClient/utils/request.js.map +1 -0
- package/dist/CallingClient/utils/request.test.js +881 -0
- package/dist/CallingClient/utils/request.test.js.map +1 -0
- package/dist/CallingClient/utils/types.js +7 -0
- package/dist/CallingClient/utils/types.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js +70 -0
- package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js +139 -0
- package/dist/CallingClient/utils/wsFeatureFlag.test.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +13 -11
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +3 -8
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Events/types.js +1 -11
- package/dist/Events/types.js.map +1 -1
- package/dist/Metrics/index.js +63 -2
- package/dist/Metrics/index.js.map +1 -1
- package/dist/Metrics/index.test.js +357 -1
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/Metrics/types.js +19 -1
- package/dist/Metrics/types.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/common/Utils.js +138 -44
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/testUtil.js +8 -4
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +2 -0
- package/dist/common/types.js.map +1 -1
- package/dist/mobius-socket/config.js +24 -0
- package/dist/mobius-socket/config.js.map +1 -0
- package/dist/mobius-socket/errors.js +143 -0
- package/dist/mobius-socket/errors.js.map +1 -0
- package/dist/mobius-socket/errors.test.js +20 -0
- package/dist/mobius-socket/errors.test.js.map +1 -0
- package/dist/mobius-socket/index.js +57 -0
- package/dist/mobius-socket/index.js.map +1 -0
- package/dist/mobius-socket/mobius-socket-events.test.js +492 -0
- package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.js +841 -0
- package/dist/mobius-socket/mobius-socket.js.map +1 -0
- package/dist/mobius-socket/mobius-socket.test.js +1845 -0
- package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
- package/dist/mobius-socket/socket/constants.js +55 -0
- package/dist/mobius-socket/socket/constants.js.map +1 -0
- package/dist/mobius-socket/socket/index.js +15 -0
- package/dist/mobius-socket/socket/index.js.map +1 -0
- package/dist/mobius-socket/socket/socket-base.js +604 -0
- package/dist/mobius-socket/socket/socket-base.js.map +1 -0
- package/dist/mobius-socket/socket/socket.js +19 -0
- package/dist/mobius-socket/socket/socket.js.map +1 -0
- package/dist/mobius-socket/socket/socket.shim.js +26 -0
- package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
- package/dist/mobius-socket/socket/types.js +7 -0
- package/dist/mobius-socket/socket/types.js.map +1 -0
- package/dist/mobius-socket/socket.test.js +727 -0
- package/dist/mobius-socket/socket.test.js.map +1 -0
- package/dist/mobius-socket/test/mocha-helpers.js +23 -0
- package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
- package/dist/mobius-socket/test/promise-tick.js +28 -0
- package/dist/mobius-socket/test/promise-tick.js.map +1 -0
- package/dist/mobius-socket/types.js +7 -0
- package/dist/mobius-socket/types.js.map +1 -0
- package/dist/module/CallingClient/CallingClient.js +141 -10
- package/dist/module/CallingClient/calling/call.js +177 -61
- package/dist/module/CallingClient/calling/callManager.js +27 -7
- package/dist/module/CallingClient/calling/types.js +2 -0
- package/dist/module/CallingClient/constants.js +21 -0
- package/dist/module/CallingClient/line/index.js +2 -2
- package/dist/module/CallingClient/registration/register.js +234 -62
- package/dist/module/CallingClient/registration/webWorker.js +42 -61
- package/dist/module/CallingClient/registration/webWorkerStr.js +47 -82
- package/dist/module/CallingClient/utils/constants.js +30 -0
- package/dist/module/CallingClient/utils/index.js +5 -0
- package/dist/module/CallingClient/utils/mobiusSocketMapper.js +72 -0
- package/dist/module/CallingClient/utils/request.js +165 -0
- package/dist/module/CallingClient/utils/types.js +1 -0
- package/dist/module/CallingClient/utils/wsFeatureFlag.js +41 -0
- package/dist/module/Contacts/ContactsClient.js +1 -1
- package/dist/module/Events/types.js +0 -10
- package/dist/module/Metrics/index.js +48 -1
- package/dist/module/Metrics/types.js +18 -0
- package/dist/module/common/Utils.js +52 -12
- package/dist/module/common/testUtil.js +5 -1
- package/dist/module/common/types.js +2 -0
- package/dist/module/mobius-socket/config.js +15 -0
- package/dist/module/mobius-socket/errors.js +58 -0
- package/dist/module/mobius-socket/index.js +24 -0
- package/dist/module/mobius-socket/mobius-socket.js +589 -0
- package/dist/module/mobius-socket/socket/constants.js +26 -0
- package/dist/module/mobius-socket/socket/index.js +4 -0
- package/dist/module/mobius-socket/socket/socket-base.js +368 -0
- package/dist/module/mobius-socket/socket/socket.js +9 -0
- package/dist/module/mobius-socket/socket/socket.shim.js +12 -0
- package/dist/module/mobius-socket/socket/types.js +1 -0
- package/dist/module/mobius-socket/types.js +1 -0
- package/dist/types/CallingClient/CallingClient.d.ts +7 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +12 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +3 -2
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +34 -9
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +21 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +1 -1
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +7 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +4 -2
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/constants.d.ts +30 -0
- package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/index.d.ts +6 -0
- package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +5 -0
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/request.d.ts +24 -0
- package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/types.d.ts +29 -0
- package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
- package/dist/types/Events/types.d.ts +4 -11
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/Metrics/index.d.ts.map +1 -1
- package/dist/types/Metrics/types.d.ts +19 -2
- package/dist/types/Metrics/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +24 -0
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +9 -2
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +4 -1
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +3 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/mobius-socket/config.d.ts +17 -0
- package/dist/types/mobius-socket/config.d.ts.map +1 -0
- package/dist/types/mobius-socket/errors.d.ts +32 -0
- package/dist/types/mobius-socket/errors.d.ts.map +1 -0
- package/dist/types/mobius-socket/index.d.ts +14 -0
- package/dist/types/mobius-socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts +48 -0
- package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/constants.d.ts +27 -0
- package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/index.d.ts +5 -0
- package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts +43 -0
- package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts +6 -0
- package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
- package/dist/types/mobius-socket/socket/types.d.ts +61 -0
- package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
- package/dist/types/mobius-socket/types.d.ts +21 -0
- package/dist/types/mobius-socket/types.d.ts.map +1 -0
- package/package.json +20 -5
- package/src/mobius-socket/socket/socket.shim.ts +22 -0
- package/src/mobius-socket/socket/socket.ts +14 -0
|
@@ -1,106 +1,71 @@
|
|
|
1
1
|
const webWorkerStr = `/* eslint-env worker */
|
|
2
2
|
|
|
3
|
-
const uuid = () => {
|
|
4
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
5
|
-
const r = (Math.random() * 16) | 0;
|
|
6
|
-
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
7
|
-
return v.toString(16);
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
// Enum values from the original imports
|
|
12
|
-
const HTTP_METHODS = {
|
|
13
|
-
GET: 'GET',
|
|
14
|
-
POST: 'POST',
|
|
15
|
-
PUT: 'PUT',
|
|
16
|
-
DELETE: 'DELETE',
|
|
17
|
-
PATCH: 'PATCH',
|
|
18
|
-
};
|
|
19
|
-
|
|
20
3
|
const WorkerMessageType = {
|
|
21
4
|
START_KEEPALIVE: 'START_KEEPALIVE',
|
|
22
5
|
CLEAR_KEEPALIVE: 'CLEAR_KEEPALIVE',
|
|
6
|
+
SEND_KEEPALIVE: 'SEND_KEEPALIVE',
|
|
7
|
+
KEEPALIVE_RESULT: 'KEEPALIVE_RESULT',
|
|
23
8
|
KEEPALIVE_SUCCESS: 'KEEPALIVE_SUCCESS',
|
|
24
9
|
KEEPALIVE_FAILURE: 'KEEPALIVE_FAILURE',
|
|
25
10
|
};
|
|
26
11
|
|
|
27
12
|
let keepaliveTimer;
|
|
13
|
+
let keepAliveRetryCount = 0;
|
|
14
|
+
let keepaliveInFlight = false;
|
|
15
|
+
|
|
16
|
+
const clearKeepaliveTimer = () => {
|
|
17
|
+
if (keepaliveTimer) {
|
|
18
|
+
clearInterval(keepaliveTimer);
|
|
19
|
+
keepaliveTimer = undefined;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
28
22
|
|
|
29
23
|
const messageHandler = (event) => {
|
|
30
24
|
const {type} = event.data;
|
|
31
25
|
|
|
32
|
-
const postKeepAlive = async (accessToken, deviceUrl, url) => {
|
|
33
|
-
const response = await fetch(\`\${url}/status\`, {
|
|
34
|
-
method: HTTP_METHODS.POST,
|
|
35
|
-
headers: {
|
|
36
|
-
'cisco-device-url': deviceUrl,
|
|
37
|
-
'spark-user-agent': 'webex-calling/beta',
|
|
38
|
-
Authorization: \`\${accessToken}\`,
|
|
39
|
-
trackingId: \`web_worker_\${uuid()}\`,
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
if (!response.ok) {
|
|
44
|
-
throw response;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return response;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
26
|
if (type === WorkerMessageType.START_KEEPALIVE) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
type: WorkerMessageType.KEEPALIVE_SUCCESS,
|
|
67
|
-
statusCode,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
keepAliveRetryCount = 0;
|
|
71
|
-
} catch (err) {
|
|
72
|
-
let headers = {};
|
|
73
|
-
if(err.headers?.has('Retry-After')) {
|
|
74
|
-
headers['retry-after'] = err.headers.get('Retry-After');
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if(err.headers?.has('Trackingid')) {
|
|
78
|
-
headers['trackingid'] = err.headers.get('Trackingid');
|
|
79
|
-
}
|
|
27
|
+
const {interval, retryCountThreshold} = event.data;
|
|
28
|
+
|
|
29
|
+
clearKeepaliveTimer();
|
|
30
|
+
keepAliveRetryCount = 0;
|
|
31
|
+
keepaliveInFlight = false;
|
|
32
|
+
|
|
33
|
+
keepaliveTimer = setInterval(() => {
|
|
34
|
+
if (keepAliveRetryCount < retryCountThreshold && !keepaliveInFlight) {
|
|
35
|
+
keepaliveInFlight = true;
|
|
36
|
+
self.postMessage({
|
|
37
|
+
type: WorkerMessageType.SEND_KEEPALIVE,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, interval * 1000);
|
|
41
|
+
}
|
|
80
42
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
statusCode: err.status,
|
|
84
|
-
statusText: err.statusText,
|
|
85
|
-
type: err.type,
|
|
86
|
-
};
|
|
43
|
+
if (type === WorkerMessageType.KEEPALIVE_RESULT) {
|
|
44
|
+
keepaliveInFlight = false;
|
|
87
45
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
46
|
+
if (event.data.err === undefined) {
|
|
47
|
+
if (keepAliveRetryCount > 0) {
|
|
48
|
+
self.postMessage({
|
|
49
|
+
type: WorkerMessageType.KEEPALIVE_SUCCESS,
|
|
50
|
+
statusCode: event.data.statusCode,
|
|
51
|
+
});
|
|
95
52
|
}
|
|
96
|
-
|
|
53
|
+
|
|
54
|
+
keepAliveRetryCount = 0;
|
|
55
|
+
} else {
|
|
56
|
+
keepAliveRetryCount += 1;
|
|
57
|
+
self.postMessage({
|
|
58
|
+
type: WorkerMessageType.KEEPALIVE_FAILURE,
|
|
59
|
+
err: event.data.err,
|
|
60
|
+
keepAliveRetryCount,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
97
63
|
}
|
|
98
64
|
|
|
99
65
|
if (type === WorkerMessageType.CLEAR_KEEPALIVE) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
66
|
+
clearKeepaliveTimer();
|
|
67
|
+
keepAliveRetryCount = 0;
|
|
68
|
+
keepaliveInFlight = false;
|
|
104
69
|
}
|
|
105
70
|
};
|
|
106
71
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export var MOBIUS_SOCKET_MESSAGE_TYPE;
|
|
2
|
+
(function (MOBIUS_SOCKET_MESSAGE_TYPE) {
|
|
3
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["UNKNOWN"] = "UNKNOWN";
|
|
4
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["REGISTER"] = "register";
|
|
5
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["REGISTER_RESPONSE"] = "register.response";
|
|
6
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["UNREGISTER"] = "unregister";
|
|
7
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["UNREGISTER_RESPONSE"] = "unregister.response";
|
|
8
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_STATUS"] = "device_status";
|
|
9
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_STATUS_RESPONSE"] = "device_status.response";
|
|
10
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_GET"] = "device_get";
|
|
11
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_GET_RESPONSE"] = "device_get.response";
|
|
12
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_LIST"] = "device_list";
|
|
13
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["DEVICE_LIST_RESPONSE"] = "device_list.response";
|
|
14
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_SETUP"] = "call_setup";
|
|
15
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_SETUP_RESPONSE"] = "call_setup.response";
|
|
16
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_STATE"] = "call_state";
|
|
17
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_STATE_RESPONSE"] = "call_state.response";
|
|
18
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_STATUS"] = "call_status";
|
|
19
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_STATUS_RESPONSE"] = "call_status.response";
|
|
20
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_MEDIA"] = "call_media";
|
|
21
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_MEDIA_RESPONSE"] = "call_media.response";
|
|
22
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_HOLD"] = "call_hold";
|
|
23
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_HOLD_RESPONSE"] = "call_hold.response";
|
|
24
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_RESUME"] = "call_resume";
|
|
25
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_RESUME_RESPONSE"] = "call_resume.response";
|
|
26
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_TRANSFER"] = "call_transfer";
|
|
27
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_TRANSFER_RESPONSE"] = "call_transfer.response";
|
|
28
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_DELETE"] = "call_delete";
|
|
29
|
+
MOBIUS_SOCKET_MESSAGE_TYPE["CALL_DELETE_RESPONSE"] = "call_delete.response";
|
|
30
|
+
})(MOBIUS_SOCKET_MESSAGE_TYPE || (MOBIUS_SOCKET_MESSAGE_TYPE = {}));
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { HTTP_METHODS } from '../../common/types';
|
|
2
|
+
import log from '../../Logger';
|
|
3
|
+
import { METHODS, MOBIUS_SOCKET_MAPPER_FILE } from '../constants';
|
|
4
|
+
import { MOBIUS_SOCKET_MESSAGE_TYPE } from './constants';
|
|
5
|
+
export function deriveMobiusSocketMessageType(uri, httpMethodType) {
|
|
6
|
+
const logContext = {
|
|
7
|
+
file: MOBIUS_SOCKET_MAPPER_FILE,
|
|
8
|
+
method: METHODS.DERIVE_MOBIUS_SOCKET_MESSAGE_TYPE,
|
|
9
|
+
};
|
|
10
|
+
if (!uri) {
|
|
11
|
+
log.warn('Cannot derive Mobius socket message type: uri is empty', logContext);
|
|
12
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
|
|
13
|
+
}
|
|
14
|
+
if (uri.includes('/services')) {
|
|
15
|
+
if (uri.includes('/callhold/hold')) {
|
|
16
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;
|
|
17
|
+
}
|
|
18
|
+
if (uri.includes('/callhold/resume')) {
|
|
19
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;
|
|
20
|
+
}
|
|
21
|
+
if (uri.includes('/calltransfer/commit')) {
|
|
22
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;
|
|
23
|
+
}
|
|
24
|
+
log.warn(`Unrecognized supplementary service uri - uri: ${uri}, httpMethod: ${httpMethodType}`, logContext);
|
|
25
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
|
|
26
|
+
}
|
|
27
|
+
if (uri.includes('/calls/') && uri.includes('/media')) {
|
|
28
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_MEDIA;
|
|
29
|
+
}
|
|
30
|
+
if (uri.includes('/calls/') && uri.includes('/status')) {
|
|
31
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATUS;
|
|
32
|
+
}
|
|
33
|
+
if (uri.match(/\/calls\/[^/]+$/)) {
|
|
34
|
+
if (httpMethodType === HTTP_METHODS.PATCH) {
|
|
35
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;
|
|
36
|
+
}
|
|
37
|
+
if (httpMethodType === HTTP_METHODS.DELETE) {
|
|
38
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;
|
|
39
|
+
}
|
|
40
|
+
log.warn(`Unrecognized httpMethod for calls/{callId} - uri: ${uri}, httpMethod: ${httpMethodType}`, logContext);
|
|
41
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
|
|
42
|
+
}
|
|
43
|
+
if (uri.endsWith('/call')) {
|
|
44
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_SETUP;
|
|
45
|
+
}
|
|
46
|
+
if (uri.includes('/devices/') && uri.endsWith('/status')) {
|
|
47
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_STATUS;
|
|
48
|
+
}
|
|
49
|
+
if (uri.endsWith('/device')) {
|
|
50
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER;
|
|
51
|
+
}
|
|
52
|
+
if (uri.match(/\/devices\/[^/?]+$/) && !uri.includes('/calls')) {
|
|
53
|
+
if (httpMethodType === HTTP_METHODS.DELETE) {
|
|
54
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;
|
|
55
|
+
}
|
|
56
|
+
if (httpMethodType === HTTP_METHODS.GET) {
|
|
57
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;
|
|
58
|
+
}
|
|
59
|
+
log.warn(`Unrecognized httpMethod for devices/{deviceId} - uri: ${uri}, httpMethod: ${httpMethodType}`, logContext);
|
|
60
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
|
|
61
|
+
}
|
|
62
|
+
if (uri.includes('/devices') && !uri.match(/\/devices\/[^/?]+/)) {
|
|
63
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;
|
|
64
|
+
}
|
|
65
|
+
log.warn(`Unrecognized uri pattern for Mobius socket - uri: ${uri}, httpMethod: ${httpMethodType}`, logContext);
|
|
66
|
+
return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
|
|
67
|
+
}
|
|
68
|
+
export const isSupplementaryServiceMessageType = (type) => [
|
|
69
|
+
MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD,
|
|
70
|
+
MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME,
|
|
71
|
+
MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER,
|
|
72
|
+
].includes(type);
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { v4 as uuid } from 'uuid';
|
|
2
|
+
import { getMobiusSocketInstance } from '../../mobius-socket';
|
|
3
|
+
import log from '../../Logger';
|
|
4
|
+
import { deriveMobiusSocketMessageType, isSupplementaryServiceMessageType, } from './mobiusSocketMapper';
|
|
5
|
+
import { MOBIUS_SOCKET_MESSAGE_TYPE } from './constants';
|
|
6
|
+
import { isMobiusWssEnabled } from './wsFeatureFlag';
|
|
7
|
+
import { CALLING_USER_AGENT, METHODS, REQUEST_FILE } from '../constants';
|
|
8
|
+
import { getMetricManager } from '../../Metrics';
|
|
9
|
+
import { METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION } from '../../Metrics/types';
|
|
10
|
+
function normalizeWsResponse(wsResponse) {
|
|
11
|
+
return {
|
|
12
|
+
statusCode: wsResponse.statusCode,
|
|
13
|
+
body: wsResponse.data ?? undefined,
|
|
14
|
+
headers: {
|
|
15
|
+
trackingid: wsResponse.trackingId,
|
|
16
|
+
...(wsResponse.metadata ?? {}),
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function normalizeWsError(err) {
|
|
21
|
+
const wsErr = err;
|
|
22
|
+
return {
|
|
23
|
+
statusCode: wsErr.statusCode,
|
|
24
|
+
body: wsErr.response?.data ?? undefined,
|
|
25
|
+
headers: {
|
|
26
|
+
trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',
|
|
27
|
+
...(wsErr.response?.metadata ?? {}),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export class APIRequest {
|
|
32
|
+
static instance;
|
|
33
|
+
isMobiusSocketEnabled;
|
|
34
|
+
webex;
|
|
35
|
+
mobiusSocket;
|
|
36
|
+
metricManager;
|
|
37
|
+
static getInstance(config) {
|
|
38
|
+
if (!APIRequest.instance) {
|
|
39
|
+
APIRequest.instance = new APIRequest(config);
|
|
40
|
+
}
|
|
41
|
+
return APIRequest.instance;
|
|
42
|
+
}
|
|
43
|
+
static resetInstance() {
|
|
44
|
+
APIRequest.instance = undefined;
|
|
45
|
+
}
|
|
46
|
+
constructor(config) {
|
|
47
|
+
const logContext = {
|
|
48
|
+
file: REQUEST_FILE,
|
|
49
|
+
method: METHODS.CONSTRUCTOR,
|
|
50
|
+
};
|
|
51
|
+
if (!config.webex) {
|
|
52
|
+
log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);
|
|
53
|
+
throw new Error('WebexSDK instance is required');
|
|
54
|
+
}
|
|
55
|
+
this.webex = config.webex;
|
|
56
|
+
this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;
|
|
57
|
+
this.mobiusSocket = getMobiusSocketInstance(this.webex);
|
|
58
|
+
this.metricManager = getMetricManager(this.webex);
|
|
59
|
+
log.info(`APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`, logContext);
|
|
60
|
+
}
|
|
61
|
+
isSocketEnabled() {
|
|
62
|
+
return this.isMobiusSocketEnabled;
|
|
63
|
+
}
|
|
64
|
+
async connectToMobiusSocket(wssUrl) {
|
|
65
|
+
const logContext = {
|
|
66
|
+
file: REQUEST_FILE,
|
|
67
|
+
method: METHODS.CONNECT_TO_MOBIUS_SOCKET,
|
|
68
|
+
};
|
|
69
|
+
if (this.mobiusSocket.isConnected()) {
|
|
70
|
+
log.info('Mobius WebSocket already connected', logContext);
|
|
71
|
+
return this.mobiusSocket.getConnectedWebSocketUrl();
|
|
72
|
+
}
|
|
73
|
+
log.info('Mobius WebSocket not connected, initiating connection', logContext);
|
|
74
|
+
try {
|
|
75
|
+
await this.mobiusSocket.connect(wssUrl);
|
|
76
|
+
log.log('Mobius WebSocket connected successfully', logContext);
|
|
77
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET, MOBIUS_SOCKET_ACTION.CONNECT, METRIC_TYPE.BEHAVIORAL, wssUrl);
|
|
78
|
+
return wssUrl;
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);
|
|
82
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET_ERROR, MOBIUS_SOCKET_ACTION.CONNECT, METRIC_TYPE.BEHAVIORAL, wssUrl, undefined, String(err));
|
|
83
|
+
throw normalizeWsError(err);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
getConnectedWebSocketUrl() {
|
|
87
|
+
return this.mobiusSocket.getConnectedWebSocketUrl();
|
|
88
|
+
}
|
|
89
|
+
async disconnectFromMobiusSocket(options) {
|
|
90
|
+
const logContext = {
|
|
91
|
+
file: REQUEST_FILE,
|
|
92
|
+
method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,
|
|
93
|
+
};
|
|
94
|
+
log.info('Disconnecting from Mobius WebSocket', logContext);
|
|
95
|
+
const wssUrl = this.mobiusSocket.getConnectedWebSocketUrl();
|
|
96
|
+
try {
|
|
97
|
+
await this.mobiusSocket.disconnect(options);
|
|
98
|
+
log.log('Mobius WebSocket disconnected successfully', logContext);
|
|
99
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET, MOBIUS_SOCKET_ACTION.DISCONNECT, METRIC_TYPE.BEHAVIORAL, wssUrl);
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);
|
|
103
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET_ERROR, MOBIUS_SOCKET_ACTION.DISCONNECT, METRIC_TYPE.BEHAVIORAL, wssUrl, undefined, String(err));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async makeRequest(request) {
|
|
107
|
+
const logContext = {
|
|
108
|
+
file: REQUEST_FILE,
|
|
109
|
+
method: METHODS.MAKE_REQUEST,
|
|
110
|
+
};
|
|
111
|
+
log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);
|
|
112
|
+
if (this.isMobiusSocketEnabled) {
|
|
113
|
+
const trackingId = `webex-js-sdk_${uuid()}`;
|
|
114
|
+
const socketType = deriveMobiusSocketMessageType(request.uri, request.method);
|
|
115
|
+
if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {
|
|
116
|
+
log.error(`Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`, logContext);
|
|
117
|
+
throw new Error(`Unknown Mobius Socket message type: ${socketType}`);
|
|
118
|
+
}
|
|
119
|
+
const isSupplementaryService = isSupplementaryServiceMessageType(socketType);
|
|
120
|
+
try {
|
|
121
|
+
const wsResponse = await this.mobiusSocket.sendWssRequest({
|
|
122
|
+
type: socketType,
|
|
123
|
+
trackingId,
|
|
124
|
+
metadata: {
|
|
125
|
+
...request.headers,
|
|
126
|
+
userAgent: CALLING_USER_AGENT,
|
|
127
|
+
authorization: `${(isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''}`,
|
|
128
|
+
},
|
|
129
|
+
data: request.body,
|
|
130
|
+
});
|
|
131
|
+
log.log(`WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`, logContext);
|
|
132
|
+
return normalizeWsResponse(wsResponse);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
log.error(`WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(err)}`, logContext);
|
|
136
|
+
throw normalizeWsError(err);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return this.webex.request(request);
|
|
140
|
+
}
|
|
141
|
+
registerMobiusSocketListener(cb) {
|
|
142
|
+
const logContext = {
|
|
143
|
+
file: REQUEST_FILE,
|
|
144
|
+
method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,
|
|
145
|
+
};
|
|
146
|
+
log.info('Attaching Mobius async event listener', logContext);
|
|
147
|
+
this.mobiusSocket.on('event:async_event', (data) => {
|
|
148
|
+
log.trace(`Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`, logContext);
|
|
149
|
+
cb(data);
|
|
150
|
+
});
|
|
151
|
+
log.log('Mobius async event listener attached', logContext);
|
|
152
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET, MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED, METRIC_TYPE.BEHAVIORAL);
|
|
153
|
+
}
|
|
154
|
+
unregisterMobiusSocketListener() {
|
|
155
|
+
const logContext = {
|
|
156
|
+
file: REQUEST_FILE,
|
|
157
|
+
method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,
|
|
158
|
+
};
|
|
159
|
+
log.info('Detaching Mobius async event listener', logContext);
|
|
160
|
+
this.mobiusSocket.off('event:async_event');
|
|
161
|
+
log.log('Mobius async event listener detached', logContext);
|
|
162
|
+
this.metricManager?.submitMobiusSocketMetric(METRIC_EVENT.MOBIUS_SOCKET, MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED, METRIC_TYPE.BEHAVIORAL);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export const createAPIRequest = (config) => APIRequest.getInstance(config);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import log from '../../Logger';
|
|
2
|
+
import { METHODS, WS_FEATURE_FLAG_FILE } from '../constants';
|
|
3
|
+
export const WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';
|
|
4
|
+
const ALLOWED_ORIGINS = ['localhost', '127.0.0.1', 'web-sdk.webex.com'];
|
|
5
|
+
function samplesPageToggleValue() {
|
|
6
|
+
if (typeof window === 'undefined' || !window.localStorage) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const hostname = window.location.hostname;
|
|
10
|
+
const isAllowedOrigin = ALLOWED_ORIGINS.some((origin) => hostname === origin || hostname.endsWith(`.${origin}`));
|
|
11
|
+
if (!isAllowedOrigin) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const localStorageValue = localStorage.getItem('mobius-wss-enabled');
|
|
15
|
+
if (localStorageValue === 'true') {
|
|
16
|
+
log.trace(`Mobius WSS force-enabled via samples page localStorage override on ${hostname}`, {
|
|
17
|
+
file: WS_FEATURE_FLAG_FILE,
|
|
18
|
+
method: METHODS.IS_MOBIUS_WSS_ENABLED,
|
|
19
|
+
});
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
if (localStorageValue === 'false') {
|
|
23
|
+
log.trace(`Mobius WSS force-disabled via samples page localStorage override on ${hostname}`, {
|
|
24
|
+
file: WS_FEATURE_FLAG_FILE,
|
|
25
|
+
method: METHODS.IS_MOBIUS_WSS_ENABLED,
|
|
26
|
+
});
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
export function isMobiusWssEnabled(webex) {
|
|
32
|
+
const enabled = webex.internal?.device?.features?.developer?.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)?.value ===
|
|
33
|
+
true;
|
|
34
|
+
const localStorageOverride = samplesPageToggleValue();
|
|
35
|
+
const finalValue = localStorageOverride !== null ? localStorageOverride : enabled;
|
|
36
|
+
log.trace(`Mobius WSS feature flag '${WEBRTC_CALLING_OVER_WS_FEATURE_KEY}' resolved to: ${finalValue} (backend: ${enabled}, localStorage: ${localStorageOverride})`, {
|
|
37
|
+
file: WS_FEATURE_FLAG_FILE,
|
|
38
|
+
method: METHODS.IS_MOBIUS_WSS_ENABLED,
|
|
39
|
+
});
|
|
40
|
+
return finalValue;
|
|
41
|
+
}
|
|
@@ -283,7 +283,7 @@ export class ContactsClient {
|
|
|
283
283
|
return this.encryptionKeyUrl;
|
|
284
284
|
}
|
|
285
285
|
if (this.groups === undefined) {
|
|
286
|
-
this.getContacts();
|
|
286
|
+
await this.getContacts();
|
|
287
287
|
}
|
|
288
288
|
if (this.groups && this.groups.length) {
|
|
289
289
|
return this.groups[0].encryptionKeyUrl;
|
|
@@ -77,13 +77,3 @@ var CALL_STATE;
|
|
|
77
77
|
CALL_STATE["REMOTE_HELD"] = "remoteheld";
|
|
78
78
|
CALL_STATE["CONNECTED"] = "connected";
|
|
79
79
|
})(CALL_STATE || (CALL_STATE = {}));
|
|
80
|
-
export const WEBSOCKET_SCOPE = 'mobius';
|
|
81
|
-
export var WEBSOCKET_KEYS;
|
|
82
|
-
(function (WEBSOCKET_KEYS) {
|
|
83
|
-
WEBSOCKET_KEYS["CALL_PROGRESS"] = "callprogress";
|
|
84
|
-
WEBSOCKET_KEYS["CALL_CONNECTED"] = "callconnected";
|
|
85
|
-
WEBSOCKET_KEYS["CALL_DISCONNECTED"] = "callconnected";
|
|
86
|
-
WEBSOCKET_KEYS["CALL_INFO"] = "callinfo";
|
|
87
|
-
WEBSOCKET_KEYS["CALL"] = "call";
|
|
88
|
-
WEBSOCKET_KEYS["ROAP"] = "ROAP";
|
|
89
|
-
})(WEBSOCKET_KEYS || (WEBSOCKET_KEYS = {}));
|
|
@@ -260,7 +260,7 @@ class MetricManager {
|
|
|
260
260
|
this.webex.internal.metrics.submitClientMetrics(name, data);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
|
-
submitMediaMetric(name, metricAction, type, callId, correlationId, localSdp, remoteSdp, callError) {
|
|
263
|
+
submitMediaMetric(name, metricAction, type, callId, correlationId, localSdp, remoteSdp, state, callError) {
|
|
264
264
|
let data;
|
|
265
265
|
switch (name) {
|
|
266
266
|
case METRIC_EVENT.MEDIA: {
|
|
@@ -278,6 +278,7 @@ class MetricManager {
|
|
|
278
278
|
correlation_id: correlationId,
|
|
279
279
|
local_media_details: localSdp,
|
|
280
280
|
remote_media_details: remoteSdp,
|
|
281
|
+
state,
|
|
281
282
|
},
|
|
282
283
|
type,
|
|
283
284
|
};
|
|
@@ -396,6 +397,52 @@ class MetricManager {
|
|
|
396
397
|
this.webex.internal.metrics.submitClientMetrics(name, data);
|
|
397
398
|
}
|
|
398
399
|
}
|
|
400
|
+
submitMobiusSocketMetric(name, metricAction, type, wssUrl, trackingId, error, eventType) {
|
|
401
|
+
let data;
|
|
402
|
+
const commonTags = {
|
|
403
|
+
action: metricAction,
|
|
404
|
+
device_id: this.deviceInfo?.device?.deviceId,
|
|
405
|
+
service_indicator: this.serviceIndicator,
|
|
406
|
+
};
|
|
407
|
+
const commonFields = {
|
|
408
|
+
device_url: this.deviceInfo?.device?.clientDeviceUri,
|
|
409
|
+
mobius_url: this.deviceInfo?.device?.uri,
|
|
410
|
+
calling_sdk_version: process.env.CALLING_SDK_VERSION || VERSION,
|
|
411
|
+
wss_url: wssUrl,
|
|
412
|
+
tracking_id: trackingId,
|
|
413
|
+
event_type: eventType,
|
|
414
|
+
};
|
|
415
|
+
switch (name) {
|
|
416
|
+
case METRIC_EVENT.MOBIUS_SOCKET: {
|
|
417
|
+
data = {
|
|
418
|
+
tags: commonTags,
|
|
419
|
+
fields: commonFields,
|
|
420
|
+
type,
|
|
421
|
+
};
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
case METRIC_EVENT.MOBIUS_SOCKET_ERROR: {
|
|
425
|
+
data = {
|
|
426
|
+
tags: commonTags,
|
|
427
|
+
fields: {
|
|
428
|
+
...commonFields,
|
|
429
|
+
error,
|
|
430
|
+
},
|
|
431
|
+
type,
|
|
432
|
+
};
|
|
433
|
+
break;
|
|
434
|
+
}
|
|
435
|
+
default:
|
|
436
|
+
log.warn('Invalid metric name received. Rejecting request to submit metric.', {
|
|
437
|
+
file: METRIC_FILE,
|
|
438
|
+
method: 'submitMobiusSocketMetric',
|
|
439
|
+
});
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
if (data) {
|
|
443
|
+
this.webex.internal.metrics.submitClientMetrics(name, data);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
399
446
|
}
|
|
400
447
|
export const getMetricManager = (webex, indicator) => {
|
|
401
448
|
if (!metricManager && webex) {
|
|
@@ -20,6 +20,8 @@ export var METRIC_EVENT;
|
|
|
20
20
|
METRIC_EVENT["UPLOAD_LOGS_SUCCESS"] = "web-calling-sdk-upload-logs-success";
|
|
21
21
|
METRIC_EVENT["UPLOAD_LOGS_FAILED"] = "web-calling-sdk-upload-logs-failed";
|
|
22
22
|
METRIC_EVENT["MOBIUS_DISCOVERY"] = "web-calling-sdk-mobius-discovery";
|
|
23
|
+
METRIC_EVENT["MOBIUS_SOCKET"] = "web-calling-sdk-mobius-socket";
|
|
24
|
+
METRIC_EVENT["MOBIUS_SOCKET_ERROR"] = "web-calling-sdk-mobius-socket-error";
|
|
23
25
|
})(METRIC_EVENT || (METRIC_EVENT = {}));
|
|
24
26
|
export var MOBIUS_SERVER_ACTION;
|
|
25
27
|
(function (MOBIUS_SERVER_ACTION) {
|
|
@@ -32,6 +34,14 @@ export var REG_ACTION;
|
|
|
32
34
|
REG_ACTION["DEREGISTER"] = "deregister";
|
|
33
35
|
REG_ACTION["KEEPALIVE_FAILURE"] = "keepaliveFailure";
|
|
34
36
|
})(REG_ACTION || (REG_ACTION = {}));
|
|
37
|
+
export var MOBIUS_SOCKET_ACTION;
|
|
38
|
+
(function (MOBIUS_SOCKET_ACTION) {
|
|
39
|
+
MOBIUS_SOCKET_ACTION["CONNECT"] = "connect";
|
|
40
|
+
MOBIUS_SOCKET_ACTION["DISCONNECT"] = "disconnect";
|
|
41
|
+
MOBIUS_SOCKET_ACTION["LISTENER_REGISTERED"] = "listener_registered";
|
|
42
|
+
MOBIUS_SOCKET_ACTION["LISTENER_UNREGISTERED"] = "listener_unregistered";
|
|
43
|
+
MOBIUS_SOCKET_ACTION["REGISTRATION_DOWN"] = "registration_down";
|
|
44
|
+
})(MOBIUS_SOCKET_ACTION || (MOBIUS_SOCKET_ACTION = {}));
|
|
35
45
|
export var TRANSFER_ACTION;
|
|
36
46
|
(function (TRANSFER_ACTION) {
|
|
37
47
|
TRANSFER_ACTION["BLIND"] = "TRANSFER_BLIND";
|
|
@@ -54,3 +64,11 @@ export var CONNECTION_ACTION;
|
|
|
54
64
|
CONNECTION_ACTION["MERCURY_DOWN"] = "mercury_down";
|
|
55
65
|
CONNECTION_ACTION["MERCURY_UP"] = "mercury_up";
|
|
56
66
|
})(CONNECTION_ACTION || (CONNECTION_ACTION = {}));
|
|
67
|
+
export var MEDIA_CONNECTION_ACTION;
|
|
68
|
+
(function (MEDIA_CONNECTION_ACTION) {
|
|
69
|
+
MEDIA_CONNECTION_ACTION["ICE_GATHERING_STATE_CHANGED"] = "ICE_GATHERING_STATE_CHANGED";
|
|
70
|
+
MEDIA_CONNECTION_ACTION["PEER_CONNECTION_STATE_CHANGED"] = "PEER_CONNECTION_STATE_CHANGED";
|
|
71
|
+
MEDIA_CONNECTION_ACTION["ICE_CONNECTION_STATE_CHANGED"] = "ICE_CONNECTION_STATE_CHANGED";
|
|
72
|
+
MEDIA_CONNECTION_ACTION["ICE_CANDIDATE_ERROR"] = "ICE_CANDIDATE_ERROR";
|
|
73
|
+
MEDIA_CONNECTION_ACTION["ROAP_FAILURE"] = "ROAP_FAILURE";
|
|
74
|
+
})(MEDIA_CONNECTION_ACTION || (MEDIA_CONNECTION_ACTION = {}));
|