@webex/contact-center 0.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/__mocks__/workerMock.js +15 -0
- package/babel.config.js +15 -0
- package/dist/cc.js +1416 -0
- package/dist/cc.js.map +1 -0
- package/dist/config.js +72 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.js +58 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/logger-proxy.js +115 -0
- package/dist/logger-proxy.js.map +1 -0
- package/dist/metrics/MetricsManager.js +474 -0
- package/dist/metrics/MetricsManager.js.map +1 -0
- package/dist/metrics/behavioral-events.js +322 -0
- package/dist/metrics/behavioral-events.js.map +1 -0
- package/dist/metrics/constants.js +134 -0
- package/dist/metrics/constants.js.map +1 -0
- package/dist/services/WebCallingService.js +323 -0
- package/dist/services/WebCallingService.js.map +1 -0
- package/dist/services/agent/index.js +177 -0
- package/dist/services/agent/index.js.map +1 -0
- package/dist/services/agent/types.js +137 -0
- package/dist/services/agent/types.js.map +1 -0
- package/dist/services/config/Util.js +203 -0
- package/dist/services/config/Util.js.map +1 -0
- package/dist/services/config/constants.js +221 -0
- package/dist/services/config/constants.js.map +1 -0
- package/dist/services/config/index.js +607 -0
- package/dist/services/config/index.js.map +1 -0
- package/dist/services/config/types.js +334 -0
- package/dist/services/config/types.js.map +1 -0
- package/dist/services/constants.js +117 -0
- package/dist/services/constants.js.map +1 -0
- package/dist/services/core/Err.js +43 -0
- package/dist/services/core/Err.js.map +1 -0
- package/dist/services/core/GlobalTypes.js +6 -0
- package/dist/services/core/GlobalTypes.js.map +1 -0
- package/dist/services/core/Utils.js +126 -0
- package/dist/services/core/Utils.js.map +1 -0
- package/dist/services/core/WebexRequest.js +96 -0
- package/dist/services/core/WebexRequest.js.map +1 -0
- package/dist/services/core/aqm-reqs.js +246 -0
- package/dist/services/core/aqm-reqs.js.map +1 -0
- package/dist/services/core/constants.js +109 -0
- package/dist/services/core/constants.js.map +1 -0
- package/dist/services/core/types.js +6 -0
- package/dist/services/core/types.js.map +1 -0
- package/dist/services/core/websocket/WebSocketManager.js +187 -0
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -0
- package/dist/services/core/websocket/connection-service.js +111 -0
- package/dist/services/core/websocket/connection-service.js.map +1 -0
- package/dist/services/core/websocket/keepalive.worker.js +94 -0
- package/dist/services/core/websocket/keepalive.worker.js.map +1 -0
- package/dist/services/core/websocket/types.js +6 -0
- package/dist/services/core/websocket/types.js.map +1 -0
- package/dist/services/index.js +78 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/task/AutoWrapup.js +88 -0
- package/dist/services/task/AutoWrapup.js.map +1 -0
- package/dist/services/task/TaskManager.js +369 -0
- package/dist/services/task/TaskManager.js.map +1 -0
- package/dist/services/task/constants.js +58 -0
- package/dist/services/task/constants.js.map +1 -0
- package/dist/services/task/contact.js +464 -0
- package/dist/services/task/contact.js.map +1 -0
- package/dist/services/task/dialer.js +60 -0
- package/dist/services/task/dialer.js.map +1 -0
- package/dist/services/task/index.js +1188 -0
- package/dist/services/task/index.js.map +1 -0
- package/dist/services/task/types.js +214 -0
- package/dist/services/task/types.js.map +1 -0
- package/dist/types/cc.d.ts +676 -0
- package/dist/types/config.d.ts +66 -0
- package/dist/types/constants.d.ts +45 -0
- package/dist/types/index.d.ts +178 -0
- package/dist/types/logger-proxy.d.ts +71 -0
- package/dist/types/metrics/MetricsManager.d.ts +223 -0
- package/dist/types/metrics/behavioral-events.d.ts +29 -0
- package/dist/types/metrics/constants.d.ts +127 -0
- package/dist/types/services/WebCallingService.d.ts +1 -0
- package/dist/types/services/agent/index.d.ts +46 -0
- package/dist/types/services/agent/types.d.ts +413 -0
- package/dist/types/services/config/Util.d.ts +19 -0
- package/dist/types/services/config/constants.d.ts +203 -0
- package/dist/types/services/config/index.d.ts +171 -0
- package/dist/types/services/config/types.d.ts +1113 -0
- package/dist/types/services/constants.d.ts +97 -0
- package/dist/types/services/core/Err.d.ts +119 -0
- package/dist/types/services/core/GlobalTypes.d.ts +33 -0
- package/dist/types/services/core/Utils.d.ts +36 -0
- package/dist/types/services/core/WebexRequest.d.ts +22 -0
- package/dist/types/services/core/aqm-reqs.d.ts +16 -0
- package/dist/types/services/core/constants.d.ts +85 -0
- package/dist/types/services/core/types.d.ts +47 -0
- package/dist/types/services/core/websocket/WebSocketManager.d.ts +34 -0
- package/dist/types/services/core/websocket/connection-service.d.ts +27 -0
- package/dist/types/services/core/websocket/keepalive.worker.d.ts +2 -0
- package/dist/types/services/core/websocket/types.d.ts +37 -0
- package/dist/types/services/index.d.ts +52 -0
- package/dist/types/services/task/AutoWrapup.d.ts +40 -0
- package/dist/types/services/task/TaskManager.d.ts +1 -0
- package/dist/types/services/task/constants.d.ts +46 -0
- package/dist/types/services/task/contact.d.ts +59 -0
- package/dist/types/services/task/dialer.d.ts +28 -0
- package/dist/types/services/task/index.d.ts +569 -0
- package/dist/types/services/task/types.d.ts +1041 -0
- package/dist/types/types.d.ts +452 -0
- package/dist/types/webex-config.d.ts +53 -0
- package/dist/types/webex.d.ts +7 -0
- package/dist/types.js +292 -0
- package/dist/types.js.map +1 -0
- package/dist/webex-config.js +60 -0
- package/dist/webex-config.js.map +1 -0
- package/dist/webex.js +99 -0
- package/dist/webex.js.map +1 -0
- package/jest.config.js +45 -0
- package/package.json +83 -0
- package/src/cc.ts +1618 -0
- package/src/config.ts +65 -0
- package/src/constants.ts +51 -0
- package/src/index.ts +220 -0
- package/src/logger-proxy.ts +110 -0
- package/src/metrics/MetricsManager.ts +512 -0
- package/src/metrics/behavioral-events.ts +332 -0
- package/src/metrics/constants.ts +135 -0
- package/src/services/WebCallingService.ts +351 -0
- package/src/services/agent/index.ts +149 -0
- package/src/services/agent/types.ts +440 -0
- package/src/services/config/Util.ts +261 -0
- package/src/services/config/constants.ts +249 -0
- package/src/services/config/index.ts +743 -0
- package/src/services/config/types.ts +1117 -0
- package/src/services/constants.ts +111 -0
- package/src/services/core/Err.ts +126 -0
- package/src/services/core/GlobalTypes.ts +34 -0
- package/src/services/core/Utils.ts +132 -0
- package/src/services/core/WebexRequest.ts +103 -0
- package/src/services/core/aqm-reqs.ts +272 -0
- package/src/services/core/constants.ts +106 -0
- package/src/services/core/types.ts +48 -0
- package/src/services/core/websocket/WebSocketManager.ts +196 -0
- package/src/services/core/websocket/connection-service.ts +142 -0
- package/src/services/core/websocket/keepalive.worker.js +88 -0
- package/src/services/core/websocket/types.ts +40 -0
- package/src/services/index.ts +71 -0
- package/src/services/task/AutoWrapup.ts +86 -0
- package/src/services/task/TaskManager.ts +420 -0
- package/src/services/task/constants.ts +52 -0
- package/src/services/task/contact.ts +429 -0
- package/src/services/task/dialer.ts +52 -0
- package/src/services/task/index.ts +1375 -0
- package/src/services/task/types.ts +1113 -0
- package/src/types.ts +639 -0
- package/src/webex-config.ts +54 -0
- package/src/webex.js +96 -0
- package/test/unit/spec/cc.ts +1985 -0
- package/test/unit/spec/metrics/MetricsManager.ts +491 -0
- package/test/unit/spec/metrics/behavioral-events.ts +102 -0
- package/test/unit/spec/services/WebCallingService.ts +416 -0
- package/test/unit/spec/services/agent/index.ts +65 -0
- package/test/unit/spec/services/config/index.ts +1035 -0
- package/test/unit/spec/services/core/Utils.ts +279 -0
- package/test/unit/spec/services/core/WebexRequest.ts +144 -0
- package/test/unit/spec/services/core/aqm-reqs.ts +570 -0
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +378 -0
- package/test/unit/spec/services/core/websocket/connection-service.ts +178 -0
- package/test/unit/spec/services/task/TaskManager.ts +1351 -0
- package/test/unit/spec/services/task/contact.ts +204 -0
- package/test/unit/spec/services/task/dialer.ts +157 -0
- package/test/unit/spec/services/task/index.ts +1474 -0
- package/tsconfig.json +6 -0
- package/typedoc.json +37 -0
- package/typedoc.md +240 -0
- package/umd/contact-center.min.js +3 -0
- package/umd/contact-center.min.js.map +1 -0
package/src/config.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration for the Webex Contact Center SDK.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
* @example
|
|
6
|
+
* import config from './config';
|
|
7
|
+
* const allowMultiLogin = config.cc.allowMultiLogin;
|
|
8
|
+
* @ignore
|
|
9
|
+
*/
|
|
10
|
+
export default {
|
|
11
|
+
/**
|
|
12
|
+
* Contact Center configuration options.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
cc: {
|
|
16
|
+
/**
|
|
17
|
+
* Whether to allow multiple logins from different devices.
|
|
18
|
+
* @type {boolean}
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
allowMultiLogin: false,
|
|
22
|
+
/**
|
|
23
|
+
* Whether to automatically attempt relogin on connection loss.
|
|
24
|
+
* @type {boolean}
|
|
25
|
+
* @default true
|
|
26
|
+
*/
|
|
27
|
+
allowAutomatedRelogin: true,
|
|
28
|
+
/**
|
|
29
|
+
* The type of client making the connection.
|
|
30
|
+
* @type {string}
|
|
31
|
+
* @default 'WebexCCSDK'
|
|
32
|
+
*/
|
|
33
|
+
clientType: 'WebexCCSDK',
|
|
34
|
+
/**
|
|
35
|
+
* Whether to enable keep-alive messages.
|
|
36
|
+
* @type {boolean}
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
isKeepAliveEnabled: false,
|
|
40
|
+
/**
|
|
41
|
+
* Whether to force registration.
|
|
42
|
+
* @type {boolean}
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
force: true,
|
|
46
|
+
/**
|
|
47
|
+
* Metrics configuration for the client.
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
metrics: {
|
|
51
|
+
/**
|
|
52
|
+
* Name of the client for metrics.
|
|
53
|
+
* @type {string}
|
|
54
|
+
* @default 'WEBEX_JS_SDK'
|
|
55
|
+
*/
|
|
56
|
+
clientName: 'WEBEX_JS_SDK',
|
|
57
|
+
/**
|
|
58
|
+
* Type of client for metrics.
|
|
59
|
+
* @type {string}
|
|
60
|
+
* @default 'WebexCCSDK'
|
|
61
|
+
*/
|
|
62
|
+
clientType: 'WebexCCSDK',
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const EVENT = 'event';
|
|
2
|
+
export const READY = 'ready';
|
|
3
|
+
export const TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration
|
|
4
|
+
export const EMPTY_STRING = '';
|
|
5
|
+
export const PRODUCT_NAME = 'wxcc_sdk';
|
|
6
|
+
// FILE NAMES
|
|
7
|
+
export const LOG_PREFIX = 'PLUGIN_CC';
|
|
8
|
+
export const WEB_CALLING_SERVICE_FILE = 'WebCallingService';
|
|
9
|
+
export const CONFIG_FILE_NAME = 'config-index';
|
|
10
|
+
export const CC_FILE = 'cc';
|
|
11
|
+
export const CONNECTION_SERVICE_FILE = 'connection-service';
|
|
12
|
+
export const WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';
|
|
13
|
+
export const AQM_REQS_FILE = 'aqm-reqs';
|
|
14
|
+
export const WEBEX_REQUEST_FILE = 'WebexRequest';
|
|
15
|
+
export const TASK_MANAGER_FILE = 'TaskManager';
|
|
16
|
+
export const TASK_FILE = 'Task';
|
|
17
|
+
// AGENT OUTDIAL CONSTANTS
|
|
18
|
+
export const OUTDIAL_DIRECTION = 'OUTBOUND';
|
|
19
|
+
export const ATTRIBUTES = {};
|
|
20
|
+
export const OUTDIAL_MEDIA_TYPE = 'telephony';
|
|
21
|
+
export const OUTBOUND_TYPE = 'OUTDIAL';
|
|
22
|
+
|
|
23
|
+
// Log related constants
|
|
24
|
+
export const UNKNOWN_ERROR = 'Unknown error';
|
|
25
|
+
export const MERCURY_DISCONNECTED_SUCCESS = 'Mercury disconnected successfully';
|
|
26
|
+
|
|
27
|
+
// METHOD NAMES
|
|
28
|
+
export const METHODS = {
|
|
29
|
+
REGISTER: 'register',
|
|
30
|
+
DEREGISTER: 'deregister',
|
|
31
|
+
GET_BUDDY_AGENTS: 'getBuddyAgents',
|
|
32
|
+
CONNECT_WEBSOCKET: 'connectWebsocket',
|
|
33
|
+
STATION_LOGIN: 'stationLogin',
|
|
34
|
+
STATION_LOGOUT: 'stationLogout',
|
|
35
|
+
STATION_RELOGIN: 'stationReLogin',
|
|
36
|
+
SET_AGENT_STATE: 'setAgentState',
|
|
37
|
+
HANDLE_WEBSOCKET_MESSAGE: 'handleWebsocketMessage',
|
|
38
|
+
SETUP_EVENT_LISTENERS: 'setupEventListeners',
|
|
39
|
+
GET_CONNECTION_CONFIG: 'getConnectionConfig',
|
|
40
|
+
HANDLE_CONNECTION_LOST: 'handleConnectionLost',
|
|
41
|
+
SILENT_RELOGIN: 'silentRelogin',
|
|
42
|
+
HANDLE_DEVICE_TYPE: 'handleDeviceType',
|
|
43
|
+
START_OUTDIAL: 'startOutdial',
|
|
44
|
+
GET_QUEUES: 'getQueues',
|
|
45
|
+
UPLOAD_LOGS: 'uploadLogs',
|
|
46
|
+
UPDATE_AGENT_PROFILE: 'updateAgentProfile',
|
|
47
|
+
GET_DEVICE_ID: 'getDeviceId',
|
|
48
|
+
HANDLE_INCOMING_TASK: 'handleIncomingTask',
|
|
49
|
+
HANDLE_TASK_HYDRATE: 'handleTaskHydrate',
|
|
50
|
+
INCOMING_TASK_LISTENER: 'incomingTaskListener',
|
|
51
|
+
};
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import {registerPlugin} from '@webex/webex-core';
|
|
2
|
+
import config from './config';
|
|
3
|
+
import ContactCenter from './cc';
|
|
4
|
+
|
|
5
|
+
/** @module ContactCenterModule */
|
|
6
|
+
|
|
7
|
+
// Core exports
|
|
8
|
+
/**
|
|
9
|
+
* ContactCenter is the main plugin class for Webex Contact Center integration
|
|
10
|
+
* @category Core
|
|
11
|
+
*/
|
|
12
|
+
export {default as ContactCenter} from './cc';
|
|
13
|
+
|
|
14
|
+
// Service exports
|
|
15
|
+
/**
|
|
16
|
+
* Task class represents a contact center task that can be managed by an agent
|
|
17
|
+
* @category Services
|
|
18
|
+
*/
|
|
19
|
+
export {default as Task} from './services/task';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Agent routing service for Contact Center operations
|
|
23
|
+
* @category Services
|
|
24
|
+
*/
|
|
25
|
+
export {default as routingAgent} from './services/agent';
|
|
26
|
+
|
|
27
|
+
// Enums
|
|
28
|
+
/**
|
|
29
|
+
* Task Events for Contact Center operations
|
|
30
|
+
* @enum {string}
|
|
31
|
+
* @category Enums
|
|
32
|
+
*/
|
|
33
|
+
export {TASK_EVENTS} from './services/task/types';
|
|
34
|
+
export type {TASK_EVENTS as TaskEvents} from './services/task/types';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Agent Events for Contact Center operations
|
|
38
|
+
* @enum {string}
|
|
39
|
+
* @category Enums
|
|
40
|
+
*/
|
|
41
|
+
export {AGENT_EVENTS} from './services/agent/types';
|
|
42
|
+
export type {AGENT_EVENTS as AgentEvents} from './services/agent/types';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Contact Center Task Events
|
|
46
|
+
* @enum {string}
|
|
47
|
+
* @category Enums
|
|
48
|
+
*/
|
|
49
|
+
export {CC_TASK_EVENTS} from './services/config/types';
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Contact Center Agent Events
|
|
53
|
+
* @enum {string}
|
|
54
|
+
* @category Enums
|
|
55
|
+
*/
|
|
56
|
+
export {CC_AGENT_EVENTS} from './services/config/types';
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Combined Contact Center Events
|
|
60
|
+
* @enum {string}
|
|
61
|
+
* @category Enums
|
|
62
|
+
*/
|
|
63
|
+
export {CC_EVENTS} from './services/config/types';
|
|
64
|
+
export type {CC_EVENTS as ContactCenterEvents} from './services/config/types';
|
|
65
|
+
|
|
66
|
+
// Interfaces
|
|
67
|
+
/** Main types and interfaces for Contact Center functionality */
|
|
68
|
+
export type {
|
|
69
|
+
/** Interface for Contact Center plugin */
|
|
70
|
+
IContactCenter,
|
|
71
|
+
/** Configuration options for Contact Center plugin */
|
|
72
|
+
CCPluginConfig,
|
|
73
|
+
/** WebexSDK interface */
|
|
74
|
+
WebexSDK,
|
|
75
|
+
} from './types';
|
|
76
|
+
|
|
77
|
+
// Types
|
|
78
|
+
/** Agent related types */
|
|
79
|
+
export type {
|
|
80
|
+
/** Login options for agents */
|
|
81
|
+
LoginOption,
|
|
82
|
+
/** Agent login information */
|
|
83
|
+
AgentLogin,
|
|
84
|
+
/** Agent device update information */
|
|
85
|
+
AgentProfileUpdate,
|
|
86
|
+
/** Station login response */
|
|
87
|
+
StationLoginResponse,
|
|
88
|
+
/** Station logout response */
|
|
89
|
+
StationLogoutResponse,
|
|
90
|
+
/** Buddy agents response */
|
|
91
|
+
BuddyAgentsResponse,
|
|
92
|
+
/** Buddy agents information */
|
|
93
|
+
BuddyAgents,
|
|
94
|
+
/** Subscribe request parameters */
|
|
95
|
+
SubscribeRequest,
|
|
96
|
+
/** Upload logs response */
|
|
97
|
+
UploadLogsResponse,
|
|
98
|
+
/** Update device type response */
|
|
99
|
+
UpdateDeviceTypeResponse,
|
|
100
|
+
/** Generic error interface */
|
|
101
|
+
GenericError,
|
|
102
|
+
/** Set state response */
|
|
103
|
+
SetStateResponse,
|
|
104
|
+
} from './types';
|
|
105
|
+
|
|
106
|
+
/** Task related types */
|
|
107
|
+
export type {
|
|
108
|
+
AgentContact,
|
|
109
|
+
/** Task interface */
|
|
110
|
+
ITask,
|
|
111
|
+
TaskData,
|
|
112
|
+
/** Task response */
|
|
113
|
+
TaskResponse,
|
|
114
|
+
ConsultPayload,
|
|
115
|
+
ConsultEndPayload,
|
|
116
|
+
ConsultTransferPayLoad,
|
|
117
|
+
/** Dialer payload */
|
|
118
|
+
DialerPayload,
|
|
119
|
+
TransferPayLoad,
|
|
120
|
+
ResumeRecordingPayload,
|
|
121
|
+
WrapupPayLoad,
|
|
122
|
+
} from './services/task/types';
|
|
123
|
+
|
|
124
|
+
/** Agent related types */
|
|
125
|
+
export type {
|
|
126
|
+
/** State change interface */
|
|
127
|
+
StateChange,
|
|
128
|
+
/** Logout interface */
|
|
129
|
+
Logout,
|
|
130
|
+
/** State change success response */
|
|
131
|
+
StateChangeSuccess,
|
|
132
|
+
/** Station login success response */
|
|
133
|
+
StationLoginSuccess,
|
|
134
|
+
/** Extended station login success response with notification tracking */
|
|
135
|
+
StationLoginSuccessResponse,
|
|
136
|
+
/** Device type update success response */
|
|
137
|
+
DeviceTypeUpdateSuccess,
|
|
138
|
+
/** Agent login success response */
|
|
139
|
+
LogoutSuccess,
|
|
140
|
+
/** Agent relogin success response */
|
|
141
|
+
ReloginSuccess,
|
|
142
|
+
/** Agent state type */
|
|
143
|
+
AgentState,
|
|
144
|
+
/** User station login parameters */
|
|
145
|
+
UserStationLogin,
|
|
146
|
+
/** Device type for agent login */
|
|
147
|
+
DeviceType,
|
|
148
|
+
/** Buddy agent details */
|
|
149
|
+
BuddyDetails,
|
|
150
|
+
/** Buddy agents success response */
|
|
151
|
+
BuddyAgentsSuccess,
|
|
152
|
+
} from './services/agent/types';
|
|
153
|
+
|
|
154
|
+
/** Config related types */
|
|
155
|
+
export type {
|
|
156
|
+
/** Profile interface */
|
|
157
|
+
Profile,
|
|
158
|
+
/** Contact service queue interface */
|
|
159
|
+
ContactServiceQueue,
|
|
160
|
+
/** Response type from getUserUsingCI method */
|
|
161
|
+
AgentResponse,
|
|
162
|
+
/** Response from getDesktopProfileById */
|
|
163
|
+
DesktopProfileResponse,
|
|
164
|
+
/** Response from getMultimediaProfileById */
|
|
165
|
+
MultimediaProfileResponse,
|
|
166
|
+
/** Response from getListOfTeams */
|
|
167
|
+
ListTeamsResponse,
|
|
168
|
+
/** Response from getListOfAuxCodes */
|
|
169
|
+
ListAuxCodesResponse,
|
|
170
|
+
/** Response from getSiteInfo */
|
|
171
|
+
SiteInfo,
|
|
172
|
+
/** Response from getOrgInfo */
|
|
173
|
+
OrgInfo,
|
|
174
|
+
/** Response from getOrganizationSetting */
|
|
175
|
+
OrgSettings,
|
|
176
|
+
/** Response from getTenantData */
|
|
177
|
+
TenantData,
|
|
178
|
+
/** Response from getURLMapping */
|
|
179
|
+
URLMapping,
|
|
180
|
+
/** Response from getDialPlanData */
|
|
181
|
+
DialPlanEntity,
|
|
182
|
+
/** Auxiliary code information */
|
|
183
|
+
AuxCode,
|
|
184
|
+
/** Team information */
|
|
185
|
+
TeamList,
|
|
186
|
+
/** Wrap-up reason information */
|
|
187
|
+
WrapUpReason,
|
|
188
|
+
/** WebSocket event data */
|
|
189
|
+
WebSocketEvent,
|
|
190
|
+
/** Wrap-up configuration data */
|
|
191
|
+
WrapupData,
|
|
192
|
+
/** Base entity type */
|
|
193
|
+
Entity,
|
|
194
|
+
/** Dial plan configuration */
|
|
195
|
+
DialPlan,
|
|
196
|
+
/** Auxiliary code type (IDLE_CODE or WRAP_UP_CODE) */
|
|
197
|
+
AuxCodeType,
|
|
198
|
+
} from './services/config/types';
|
|
199
|
+
|
|
200
|
+
// Constants
|
|
201
|
+
/**
|
|
202
|
+
* Idle code constant
|
|
203
|
+
* @constant {string}
|
|
204
|
+
* @category Enums
|
|
205
|
+
*/
|
|
206
|
+
export {IDLE_CODE} from './services/config/types';
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Wrap up code constant
|
|
210
|
+
* @constant {string}
|
|
211
|
+
* @category Enums
|
|
212
|
+
*/
|
|
213
|
+
export {WRAP_UP_CODE} from './services/config/types';
|
|
214
|
+
|
|
215
|
+
registerPlugin('cc', ContactCenter, {
|
|
216
|
+
config,
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
/** The Contact Center plugin default export */
|
|
220
|
+
export default ContactCenter;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import {Logger, LogContext, LOGGING_LEVEL} from './types';
|
|
2
|
+
import {LOG_PREFIX} from './constants';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* LoggerProxy acts as a static proxy to route logging calls to an injected logger implementation.
|
|
6
|
+
* Ensures a consistent log format and centralizes logging behavior for the SDK.
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
export default class LoggerProxy {
|
|
10
|
+
/**
|
|
11
|
+
* The static logger instance to be used by the proxy.
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
public static logger: Logger;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Initializes the logger proxy with a provided logger implementation.
|
|
18
|
+
*
|
|
19
|
+
* @param {Logger} logger - A logger object implementing standard logging methods.
|
|
20
|
+
* @ignore
|
|
21
|
+
*/
|
|
22
|
+
public static initialize(logger: Logger): void {
|
|
23
|
+
LoggerProxy.logger = logger;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Logs a generic message using the default log level.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} message - The log message.
|
|
30
|
+
* @param {LogContext} [context={}] - Optional context providing module and method names.
|
|
31
|
+
* @ignore
|
|
32
|
+
*/
|
|
33
|
+
public static log(message: string, context: LogContext = {}): void {
|
|
34
|
+
if (LoggerProxy.logger) {
|
|
35
|
+
LoggerProxy.logger.log(LoggerProxy.format(LOGGING_LEVEL.log, message, context));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Logs an informational message.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} message - The log message.
|
|
43
|
+
* @param {LogContext} [context={}] - Optional context providing module and method names.
|
|
44
|
+
* @ignore
|
|
45
|
+
*/
|
|
46
|
+
public static info(message: string, context: LogContext = {}): void {
|
|
47
|
+
if (LoggerProxy.logger) {
|
|
48
|
+
LoggerProxy.logger.info(LoggerProxy.format(LOGGING_LEVEL.info, message, context));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Logs a warning message.
|
|
54
|
+
*
|
|
55
|
+
* @param {string} message - The warning message.
|
|
56
|
+
* @param {LogContext} [context={}] - Optional context providing module and method names.
|
|
57
|
+
* @ignore
|
|
58
|
+
*/
|
|
59
|
+
public static warn(message: string, context: LogContext = {}): void {
|
|
60
|
+
if (LoggerProxy.logger) {
|
|
61
|
+
LoggerProxy.logger.warn(LoggerProxy.format(LOGGING_LEVEL.warn, message, context));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Logs a trace-level message, useful for debugging.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} message - The trace message.
|
|
69
|
+
* @param {LogContext} [context={}] - Optional context providing module and method names.
|
|
70
|
+
* @ignore
|
|
71
|
+
*/
|
|
72
|
+
public static trace(message: string, context: LogContext = {}): void {
|
|
73
|
+
if (LoggerProxy.logger) {
|
|
74
|
+
LoggerProxy.logger.trace(LoggerProxy.format(LOGGING_LEVEL.trace, message, context));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Logs an error message.
|
|
80
|
+
*
|
|
81
|
+
* @param {string} message - The error message.
|
|
82
|
+
* @param {LogContext} [context={}] - Optional context providing module and method names.
|
|
83
|
+
* @ignore
|
|
84
|
+
*/
|
|
85
|
+
public static error(message: string, context: LogContext = {}): void {
|
|
86
|
+
if (LoggerProxy.logger) {
|
|
87
|
+
LoggerProxy.logger.error(LoggerProxy.format(LOGGING_LEVEL.error, message, context));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Formats a log message with timestamp, log level, and context details.
|
|
93
|
+
*
|
|
94
|
+
* @private
|
|
95
|
+
* @param {LOGGING_LEVEL} level - Logging level (e.g., info, error).
|
|
96
|
+
* @param {string} message - The message to be logged.
|
|
97
|
+
* @param {LogContext} context - Context containing module and method metadata.
|
|
98
|
+
* @returns {string} The formatted log string.
|
|
99
|
+
* @ignore
|
|
100
|
+
*/
|
|
101
|
+
private static format(level: LOGGING_LEVEL, message: string, context: LogContext): string {
|
|
102
|
+
const timestamp = new Date().toISOString();
|
|
103
|
+
const moduleName = context.module || 'unknown';
|
|
104
|
+
const methodName = context.method || 'unknown';
|
|
105
|
+
const interactionId = context.interactionId ? ` - interactionId:${context.interactionId}` : '';
|
|
106
|
+
const trackingId = context.trackingId ? ` - trackingId:${context.trackingId}` : '';
|
|
107
|
+
|
|
108
|
+
return `${timestamp} ${LOG_PREFIX} - [${level}]: module:${moduleName} - method:${methodName}${interactionId}${trackingId} - ${message}`;
|
|
109
|
+
}
|
|
110
|
+
}
|