@voicenter-team/events-sdk 0.0.12 → 0.0.14
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/.eslintrc.cjs +17 -0
- package/.github/workflows/main.yml +16 -0
- package/.idea/VoicenterEventsSDK.iml +12 -0
- package/.idea/git_toolbox_prj.xml +15 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/.idea/jsLinters/eslint.xml +7 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/.nvmrc +1 -0
- package/TODELETE_TEMP/events.json +69122 -0
- package/TODELETE_TEMP/temphelper.cjs +101 -0
- package/dist/index.d.ts +689 -11
- package/dist/voicenter-events-sdk.cjs.js +10 -10
- package/dist/voicenter-events-sdk.cjs.js.map +1 -1
- package/dist/voicenter-events-sdk.es.js +1856 -1818
- package/dist/voicenter-events-sdk.es.js.map +1 -1
- package/dist/voicenter-events-sdk.iife.js +17 -17
- package/dist/voicenter-events-sdk.iife.js.map +1 -1
- package/dist/voicenter-events-sdk.umd.js +16 -16
- package/dist/voicenter-events-sdk.umd.js.map +1 -1
- package/docs/package-lock.json +3820 -0
- package/docs/package.json +25 -0
- package/docs/src/.vuepress/client.js +8 -0
- package/docs/src/.vuepress/components/Demo.vue +191 -0
- package/docs/src/.vuepress/config.js +60 -0
- package/docs/src/.vuepress/public/favicon.ico +0 -0
- package/docs/src/.vuepress/public/images/logo.png +0 -0
- package/docs/src/.vuepress/styles/index.scss +0 -0
- package/docs/src/.vuepress/styles/index.styl +8 -0
- package/docs/src/.vuepress/styles/palette.styl +10 -0
- package/docs/src/demo.md +7 -0
- package/docs/src/index.md +4 -0
- package/interface.ts +261 -0
- package/jest.config.js +11 -0
- package/package.json +1 -4
- package/src/classes/auth/auth.class.ts +272 -0
- package/src/classes/auth/auth.urls.ts +8 -0
- package/src/classes/events-sdk/events-sdk-default-options.ts +60 -0
- package/src/classes/events-sdk/events-sdk.class.ts +250 -0
- package/src/classes/events-sdk/events-sdk.test.ts +9 -0
- package/src/classes/events-sdk/events-sdk.types.ts +71 -0
- package/src/classes/socket-io/socket-io.class.ts +172 -0
- package/src/classes/socket-io/versions/index.ts +52 -0
- package/src/classes/socket-io/versions/v1_3_7.js +2083 -0
- package/src/classes/storage/storage.class.ts +43 -0
- package/src/enum/auth.enum.ts +4 -0
- package/src/enum/events.enum.ts +98 -0
- package/src/index.ts +15 -0
- package/{dist → src}/types/auth.d.ts +12 -8
- package/{dist → src}/types/events.common.d.ts +1 -1
- package/{dist → src}/types/events.d.ts +1 -1
- package/{dist → src}/types/socket.d.ts +1 -1
- package/swagger/generated/Swagger.json +1 -0
- package/swagger/index.js +60 -0
- package/swagger/package.json +21 -0
- package/swagger/scripts/update-swagger-json.js +53 -0
- package/swagger/yarn.lock +2100 -0
- package/tsconfig.json +47 -0
- package/vite.config.ts +45 -0
- package/dist/classes/auth/auth.class.d.ts +0 -20
- package/dist/classes/auth/auth.urls.d.ts +0 -4
- package/dist/classes/events-sdk/events-sdk-default-options.d.ts +0 -2
- package/dist/classes/events-sdk/events-sdk.class.d.ts +0 -35
- package/dist/classes/events-sdk/events-sdk.test.d.ts +0 -1
- package/dist/classes/events-sdk/events-sdk.types.d.ts +0 -63
- package/dist/classes/socket-io/socket-io.class.d.ts +0 -23
- package/dist/classes/socket-io/versions/index.d.ts +0 -8
- package/dist/classes/storage/storage.class.d.ts +0 -6
- package/dist/enum/auth.enum.d.ts +0 -4
- package/dist/enum/events.enum.d.ts +0 -77
- /package/{dist → src}/classes/socket-io/socket-io.d.ts +0 -0
- /package/{dist → src}/types/listeners.d.ts +0 -0
- /package/{dist → src}/types/public-api.d.ts +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,689 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { EventsEnum } from '
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type
|
|
7
|
-
|
|
8
|
-
export type
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { DebouncedFuncLeading } from 'lodash';
|
|
2
|
+
import { EventsEnum as EventsEnum_3 } from 'enum/events.enum';
|
|
3
|
+
import { io } from 'socket.io-client';
|
|
4
|
+
import { Socket as Socket_2 } from 'socket.io-client';
|
|
5
|
+
|
|
6
|
+
export declare type ActiveRoomListener = (event: number | undefined) => void
|
|
7
|
+
|
|
8
|
+
export declare type addRoomListener = (value: string) => void
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Data structure for all dialers status event.
|
|
12
|
+
*/
|
|
13
|
+
export declare interface AllDialersStatusEvent extends CommonEventProperties {
|
|
14
|
+
// Array of Dialer objects
|
|
15
|
+
dialers: Dialer[]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Data structure for all extension status event.
|
|
20
|
+
*/
|
|
21
|
+
export declare interface AllExtensionStatusEvent extends CommonEventProperties {
|
|
22
|
+
// Array of Extension objects
|
|
23
|
+
extensions: Extension[]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Data structure for all users status event.
|
|
28
|
+
*/
|
|
29
|
+
export declare interface AllUsersStatusEvent extends CommonEventProperties {
|
|
30
|
+
// Array of User objects
|
|
31
|
+
users: User[]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare class AuthClass {
|
|
35
|
+
private readonly eventsSdkClass;
|
|
36
|
+
constructor(eventsSdkClass: EventsSdkClass);
|
|
37
|
+
private delay;
|
|
38
|
+
lastLoginTimestamp: number | undefined;
|
|
39
|
+
token: string | undefined;
|
|
40
|
+
private storageKey;
|
|
41
|
+
login(options: EventsSdkOptions): Promise<void>;
|
|
42
|
+
updateLastLoginTimestamp(): void;
|
|
43
|
+
private checkLoginStatus;
|
|
44
|
+
private userLoginFunction;
|
|
45
|
+
private onLoginResponse;
|
|
46
|
+
handleTokenExpiry(): void;
|
|
47
|
+
private externalLogin;
|
|
48
|
+
private getSettings;
|
|
49
|
+
private refreshToken;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export declare type CallAddingProgressListener = (callId: string | undefined) => void
|
|
53
|
+
|
|
54
|
+
declare enum CallStatusEnum {
|
|
55
|
+
RINGING = "Ringing",
|
|
56
|
+
TALKING = "Talking",
|
|
57
|
+
DIALING = "Dialing",
|
|
58
|
+
HOLD = "Hold"
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
declare enum CallTypeEnum {
|
|
62
|
+
INCOMING = "Incoming",
|
|
63
|
+
OUTGOING = "Outgoing"
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export declare type changeActiveCallsListener = (event: { [key: string]: string }) => void
|
|
67
|
+
|
|
68
|
+
export declare type changeActiveInputMediaDeviceListener = (event: string) => void
|
|
69
|
+
|
|
70
|
+
export declare type changeActiveOutputMediaDeviceListener = (event: string) => void
|
|
71
|
+
|
|
72
|
+
export declare type changeCallStatusListener = (event: { [key: string]: number }) => void
|
|
73
|
+
|
|
74
|
+
export declare type changeIsDNDListener = (value: boolean) => void
|
|
75
|
+
|
|
76
|
+
export declare type changeIsMutedListener = (value: boolean) => void
|
|
77
|
+
|
|
78
|
+
export declare type changeMuteWhenJoinListener = (value: boolean) => void
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Base structure for all event types, containing common properties.
|
|
82
|
+
*/
|
|
83
|
+
export declare interface CommonEventProperties {
|
|
84
|
+
// Error code, 0 indicates no error
|
|
85
|
+
errorCode?: number
|
|
86
|
+
// Description of the error, "Ok" indicates successful connection
|
|
87
|
+
errorDesc?: string
|
|
88
|
+
// Server time at the moment of the event
|
|
89
|
+
serverTime: number
|
|
90
|
+
// Difference in time between server and client
|
|
91
|
+
serverTimeOffset: number
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export declare interface CustomData {
|
|
95
|
+
DoNotCallMeStatus?: string,
|
|
96
|
+
DoNotCallMeStatusCode?: DoNotCallMeStatusCodeEnum,
|
|
97
|
+
DoNotCallMeTokenName?: string,
|
|
98
|
+
DoNotCallMetransactionId?: string,
|
|
99
|
+
IsDoNotCallMe?: string
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export declare interface Dialer {
|
|
103
|
+
campaignID: number,
|
|
104
|
+
name: string,
|
|
105
|
+
typeID: number,
|
|
106
|
+
type: DialerType,
|
|
107
|
+
code: string,
|
|
108
|
+
calls: unknown,
|
|
109
|
+
statistics: unknown
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Data structure for dialer event.
|
|
114
|
+
*/
|
|
115
|
+
export declare interface DialerEvent extends CommonEventProperties {
|
|
116
|
+
data: Dialer
|
|
117
|
+
eventName: EventNameEnum.DIALER
|
|
118
|
+
//reason: ExtensionEventReasonEnum // TODO: do research for dialer 'reason' prop
|
|
119
|
+
telephonyServerTime?: number
|
|
120
|
+
callerID?: string
|
|
121
|
+
ivrUniqueId?: string
|
|
122
|
+
dialStatus?: string
|
|
123
|
+
//cause?: ExtensionHangupCauseEnum // TODO: do research for dialer 'cause' prop
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
declare enum DialerType {
|
|
127
|
+
AUTOMATIC = "Automatic",
|
|
128
|
+
IVR = "IVR"
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
declare enum DirectionEnum {
|
|
132
|
+
INCOMING = "Incoming",
|
|
133
|
+
OUTGOING = "Outgoing",
|
|
134
|
+
SPY = "Spy",
|
|
135
|
+
CLICK2CALL = "Click2call"
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
declare enum DoNotCallMeStatusCodeEnum {
|
|
139
|
+
RESPONSE_FROM_API_VALID = "RESPONSE_FROM_API_VALID",
|
|
140
|
+
RESPONSE_FROM_API_INVALID = "RESPONSE_FROM_API_INVALID"
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* This type defines a map where each key is an event name, and the value is an array of callback functions associated with that event.
|
|
145
|
+
* This structure is used to manage event listeners for different events
|
|
146
|
+
*/
|
|
147
|
+
export declare type EventCallbackListenersMap = {
|
|
148
|
+
[K in EventTypeNames]: Array<EventSpecificCallback<K>>
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Defines a registry of callback functions for each event type.
|
|
153
|
+
* Each key is an event type name, and the value is a function that takes the specific event data type as an argument.
|
|
154
|
+
* This registry is used to manage and invoke event-specific callbacks.
|
|
155
|
+
*/
|
|
156
|
+
export declare type EventCallbackRegistry = {
|
|
157
|
+
[K in EventTypeNames]: (data: EventDataMap[K]) => void
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Mapping of event names to their respective data structures.
|
|
162
|
+
*/
|
|
163
|
+
export declare interface EventDataMap {
|
|
164
|
+
[EventsEnum_2.ALL_EXTENSION_STATUS]: AllExtensionStatusEvent
|
|
165
|
+
[EventsEnum_2.ALL_DIALER_STATUS]: AllDialersStatusEvent
|
|
166
|
+
[EventsEnum_2.ALL_USERS_STATUS]: AllUsersStatusEvent
|
|
167
|
+
[EventsEnum_2.QUEUE_EVENT]: QueueEvent
|
|
168
|
+
[EventsEnum_2.EXTENSION_EVENT]: ExtensionEvent
|
|
169
|
+
[EventsEnum_2.DIALER_EVENT]: DialerEvent
|
|
170
|
+
[EventsEnum_2.LOGIN_SUCCESS]: LoginSuccessEvent
|
|
171
|
+
[EventsEnum_2.LOGIN_STATUS]: LoginStatusEvent
|
|
172
|
+
[EventsEnum_2.KEEP_ALIVE_RESPONSE]: KeepAliveResponseEvent
|
|
173
|
+
[EventsEnum_2.ONLINE_STATUS_EVENT]: OnlineStatusEvent
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* All the eventNames that can be received from the server. Exists only in EXTENSION_EVENT and QueueEvent
|
|
178
|
+
*/
|
|
179
|
+
declare enum EventNameEnum {
|
|
180
|
+
EXTENSION = 'extension',
|
|
181
|
+
QUEUE = 'queue',
|
|
182
|
+
DIALER = 'dialer',
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* All events that can be received from the server.
|
|
187
|
+
*/
|
|
188
|
+
export declare enum EventsEnum {
|
|
189
|
+
ALL_DIALER_STATUS = "AllDialersStatus",
|
|
190
|
+
ALL_EXTENSION_STATUS = "AllExtensionsStatus",
|
|
191
|
+
ALL_USERS_STATUS = "AllUsersStatus",
|
|
192
|
+
CONNECT = "connect",
|
|
193
|
+
DISCONNECT = "disconnect",
|
|
194
|
+
EXTENSION_EVENT = "ExtensionEvent",
|
|
195
|
+
KEEP_ALIVE = "keepalive",
|
|
196
|
+
KEEP_ALIVE_RESPONSE = "keepaliveResponse",
|
|
197
|
+
LOGIN_STATUS = "loginStatus",
|
|
198
|
+
LOGIN_SUCCESS = "loginSuccess",
|
|
199
|
+
QUEUE_EVENT = "QueueEvent",
|
|
200
|
+
ONLINE_STATUS_EVENT = "onlineStatusEvent",
|
|
201
|
+
DIALER_EVENT = "DialerEvent"
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* All events that can be received from the server.
|
|
206
|
+
*/
|
|
207
|
+
declare enum EventsEnum_2 {
|
|
208
|
+
ALL_DIALER_STATUS = 'AllDialersStatus',
|
|
209
|
+
ALL_EXTENSION_STATUS = 'AllExtensionsStatus',
|
|
210
|
+
ALL_USERS_STATUS = 'AllUsersStatus',
|
|
211
|
+
CONNECT = 'connect',
|
|
212
|
+
DISCONNECT = 'disconnect',
|
|
213
|
+
EXTENSION_EVENT = 'ExtensionEvent',
|
|
214
|
+
KEEP_ALIVE = 'keepalive',
|
|
215
|
+
KEEP_ALIVE_RESPONSE = 'keepaliveResponse',
|
|
216
|
+
// This type of event will be sent only in case of a successful connection.
|
|
217
|
+
// The event describes the list of monitored queues on this active connection.
|
|
218
|
+
// The list of monitored queues will only be sent if the login connection was made with account credentials or account token.
|
|
219
|
+
// If the login connection type is by user credentials, only the user’s extension assigned queues will return.
|
|
220
|
+
LOGIN_STATUS = 'loginStatus',
|
|
221
|
+
// This type of event will be sent in the initial login connection request in case of a successful connection only.
|
|
222
|
+
// In case of wrong username or password or token, you will receive a 401 (“Unauthorized”) or 500 (“Unexpected token”) http error.
|
|
223
|
+
LOGIN_SUCCESS = 'loginSuccess',
|
|
224
|
+
QUEUE_EVENT = 'QueueEvent',
|
|
225
|
+
ONLINE_STATUS_EVENT = 'onlineStatusEvent',
|
|
226
|
+
DIALER_EVENT = 'DialerEvent',
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* This is a generic type for callback functions used in event handling.
|
|
231
|
+
* It takes a generic event name and defines a callback function that receives wrapped socket event data for that specific event.
|
|
232
|
+
*/
|
|
233
|
+
export declare type EventSpecificCallback<T extends EventTypeNames> = (data: WrappedSocketEvent<T>) => void
|
|
234
|
+
|
|
235
|
+
declare class EventsSdkClass {
|
|
236
|
+
constructor(options: EventsSdkOptions);
|
|
237
|
+
private argumentOptions;
|
|
238
|
+
readonly options: EventsSdkOptions;
|
|
239
|
+
servers: Server[];
|
|
240
|
+
server: Server;
|
|
241
|
+
socket: SocketTyped | undefined;
|
|
242
|
+
authClass: AuthClass;
|
|
243
|
+
socketIoClass: SocketIoClass;
|
|
244
|
+
reconnectOptions: ReconnectOptions;
|
|
245
|
+
retryConnection: DebouncedFuncLeading<(server?: ServerParameter, skipLogin?: boolean) => void>;
|
|
246
|
+
private listeners;
|
|
247
|
+
private allListeners;
|
|
248
|
+
on<T extends EventTypeNames>(event: T, callback: EventSpecificCallback<T>): void;
|
|
249
|
+
on(event: '*', callback: (data: GenericEventWrapper) => void): void;
|
|
250
|
+
off<T extends EventTypeNames>(event: T, callback: EventSpecificCallback<T>): void;
|
|
251
|
+
off(event: '*', callback: (data: GenericEventWrapper) => void): void;
|
|
252
|
+
emit<T extends EventTypeNames>(event: T, data: EventTypeData<T>): void;
|
|
253
|
+
connect(server?: ServerParameter, skipLogin?: boolean): void;
|
|
254
|
+
disconnect(): void;
|
|
255
|
+
clearKeepAliveInterval(): void;
|
|
256
|
+
private findCurrentServer;
|
|
257
|
+
private findNextAvailableServer;
|
|
258
|
+
private findMaxPriorityServer;
|
|
259
|
+
private findMinPriorityServer;
|
|
260
|
+
getServerWithHighestPriority(servers: Server[]): Server;
|
|
261
|
+
init(): Promise<boolean>;
|
|
262
|
+
private getServers;
|
|
263
|
+
}
|
|
264
|
+
export default EventsSdkClass;
|
|
265
|
+
|
|
266
|
+
export declare interface EventsSdkOptions {
|
|
267
|
+
isNewStack?: boolean;
|
|
268
|
+
servers: Server[];
|
|
269
|
+
loginUrl: string;
|
|
270
|
+
fallbackServer: Server;
|
|
271
|
+
refreshTokenUrl: string;
|
|
272
|
+
refreshToken?: string;
|
|
273
|
+
token: string;
|
|
274
|
+
tokenExpiry?: Date;
|
|
275
|
+
loginType: LoginType;
|
|
276
|
+
forceNew?: boolean;
|
|
277
|
+
reconnectionDelay: number;
|
|
278
|
+
reconnectionDelayMax?: number;
|
|
279
|
+
maxReconnectAttempts: number;
|
|
280
|
+
timeout?: number;
|
|
281
|
+
keepAliveTimeout: number;
|
|
282
|
+
idleInterval?: number;
|
|
283
|
+
protocol: string;
|
|
284
|
+
transports?: string[];
|
|
285
|
+
upgrade?: boolean;
|
|
286
|
+
serverFetchStrategy?: string;
|
|
287
|
+
serverType?: number;
|
|
288
|
+
useLogger?: boolean;
|
|
289
|
+
loggerSocketConnection?: string;
|
|
290
|
+
loggerServer?: string;
|
|
291
|
+
loggerConfig?: LoggerConfig;
|
|
292
|
+
loggerConnectOptions?: LoggerConnectOptions;
|
|
293
|
+
email: string;
|
|
294
|
+
password: string;
|
|
295
|
+
username: string;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export declare type EventTypeData<T extends EventsEnum_2> = EventDataMap[T]
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Represents the set of all possible event type names as keys from the EventDataMap.
|
|
302
|
+
* This type is used to define event listeners and handlers.
|
|
303
|
+
*/
|
|
304
|
+
export declare type EventTypeNames = keyof EventDataMap
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Represents Event Types in Enum
|
|
308
|
+
*/
|
|
309
|
+
export declare enum EventTypesEnum {
|
|
310
|
+
ALL_DIALERS_STATUS = 'AllDialersStatus',
|
|
311
|
+
ALL_EXTENSION_STATUS = 'AllExtensionsStatus',
|
|
312
|
+
CLOSE = 'closeme',
|
|
313
|
+
CONNECT = 'connect',
|
|
314
|
+
CONNECT_ERROR = 'connect_error',
|
|
315
|
+
CONNECT_TIMEOUT = 'connect_timeout',
|
|
316
|
+
DISCONNECT = 'disconnect',
|
|
317
|
+
DIALER_EVENT = 'DialerEvent',
|
|
318
|
+
DIALERS_UPDATED = 'DialersUpdated',
|
|
319
|
+
ERROR = 'error',
|
|
320
|
+
EXTENSION_EVENT = 'ExtensionEvent',
|
|
321
|
+
EXTENSION_UPDATED = 'ExtensionsUpdated',
|
|
322
|
+
KEEP_ALIVE = 'keepalive',
|
|
323
|
+
KEEP_ALIVE_RESPONSE = 'keepaliveResponse',
|
|
324
|
+
LOGIN = 'login',
|
|
325
|
+
LOGIN_ACCOUNT = 'loginAccount',
|
|
326
|
+
LOGIN_CODE = 'loginUserCode',
|
|
327
|
+
LOGIN_RESPONSE = 'loginResponse',
|
|
328
|
+
LOGIN_STATUS = 'loginStatus',
|
|
329
|
+
LOGIN_USER = 'loginUser',
|
|
330
|
+
PONG = 'pong',
|
|
331
|
+
QUEUE_EVENT = 'QueueEvent',
|
|
332
|
+
QUEUES_UPDATED = 'QueuesUpdated',
|
|
333
|
+
RECONNECT = 'reconnect',
|
|
334
|
+
RECONNECT_ATTEMPT = 'reconnect_attempt',
|
|
335
|
+
RECONNECT_ERROR = 'reconnect_error',
|
|
336
|
+
RECONNECT_FAILED = 'reconnect_failed',
|
|
337
|
+
RECONNECTING = 'reconnecting',
|
|
338
|
+
RESYNC = 'resync'
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* This type represents a mapping of listener event names to their corresponding wrapped socket event data structures.
|
|
343
|
+
* Each key is an event name, and the value is the wrapped socket event data for that event
|
|
344
|
+
*/
|
|
345
|
+
export declare type EventWrappedSocketDataMap = {
|
|
346
|
+
[K in EventTypeNames]: WrappedSocketEvent<K>
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export declare interface Extension {
|
|
350
|
+
calls: ExtensionCall[],
|
|
351
|
+
userID: number,
|
|
352
|
+
userName: string,
|
|
353
|
+
number: number,
|
|
354
|
+
extenUser: string,
|
|
355
|
+
accountID: number,
|
|
356
|
+
topAccountID: number,
|
|
357
|
+
summery: Summery,
|
|
358
|
+
onlineUserID: number,
|
|
359
|
+
representative: number,
|
|
360
|
+
representativeStatus: number,
|
|
361
|
+
lastCallEventEpoch: number,
|
|
362
|
+
lastAnsweredCallEventEpoch: number,
|
|
363
|
+
lastHangupCallEpoch: number,
|
|
364
|
+
representativeUpdated: number,
|
|
365
|
+
peerStatus: unknown,
|
|
366
|
+
currentCall?: ExtensionCall,
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export declare interface ExtensionCall {
|
|
370
|
+
callStarted: number,
|
|
371
|
+
calldurationinterval: number,
|
|
372
|
+
callAnswered: number,
|
|
373
|
+
answered: number,
|
|
374
|
+
callername: string,
|
|
375
|
+
callerphone: string,
|
|
376
|
+
outgoingcallername?: string,
|
|
377
|
+
outgoingcallerphone?: string,
|
|
378
|
+
callstatus: CallStatusEnum,
|
|
379
|
+
customdata: CustomData,
|
|
380
|
+
direction: DirectionEnum,
|
|
381
|
+
ivrid: string,
|
|
382
|
+
recording: Recording,
|
|
383
|
+
did: string,
|
|
384
|
+
relatedIvrUniqueIDs?: string[],
|
|
385
|
+
callType?: CallTypeEnum,
|
|
386
|
+
ip: string,
|
|
387
|
+
isInternal: boolean
|
|
388
|
+
blcServerID: number,
|
|
389
|
+
isOpensips: boolean,
|
|
390
|
+
channel: string,
|
|
391
|
+
channel2: string,
|
|
392
|
+
queueID?: number,
|
|
393
|
+
isSpyed?: boolean,
|
|
394
|
+
blcServerId?: number,
|
|
395
|
+
originalCallerID?: string,
|
|
396
|
+
originalCallerName?: string,
|
|
397
|
+
actualDialedNumber?: number
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Data structure for extension event.
|
|
402
|
+
*/
|
|
403
|
+
export declare interface ExtensionEvent extends CommonEventProperties {
|
|
404
|
+
data: Extension
|
|
405
|
+
eventName: EventNameEnum.EXTENSION
|
|
406
|
+
reason: ExtensionEventReasonEnum
|
|
407
|
+
telephonyServerTime?: number
|
|
408
|
+
callerID?: string
|
|
409
|
+
ivrUniqueId?: string
|
|
410
|
+
dialStatus?: string
|
|
411
|
+
cause?: ExtensionHangupCauseEnum
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* All the reasons for the extension event, e.g. a new call is ringing or dialing from an extension.
|
|
416
|
+
*/
|
|
417
|
+
declare enum ExtensionEventReasonEnum {
|
|
418
|
+
// A new call is ringing or dialing from an extension.
|
|
419
|
+
NEW_CALL = 'NEWCALL',
|
|
420
|
+
// A call was answered at an extension.
|
|
421
|
+
ANSWER = 'ANSWER',
|
|
422
|
+
// A call was placed on hold.
|
|
423
|
+
HOLD = 'HOLD',
|
|
424
|
+
// A call is no longer on hold.
|
|
425
|
+
UNHOLD = 'UNHOLD',
|
|
426
|
+
// When a call was ended. It is not necessarily means that the call was answered.
|
|
427
|
+
HANGUP = 'HANGUP',
|
|
428
|
+
// When the extension online user updated his\her user status(Login, Break, Logout, etc.)
|
|
429
|
+
USER_STATUS_UPDATE = 'userStatusUpdate',
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
declare enum ExtensionHangupCauseEnum {
|
|
433
|
+
NORMAL_HANGUP = 'Normal hangup',
|
|
434
|
+
USER_BUSY = 'User busy',
|
|
435
|
+
CALL_REJECTED = 'Call Rejected',
|
|
436
|
+
UNALLOCATED_NUMBER = 'Unallocated (unassigned) number',
|
|
437
|
+
UNKNOWN = 'Unknown',
|
|
438
|
+
NO_USER_RESPONDING = 'No user responding',
|
|
439
|
+
USER_ALERTING = 'User alerting, no answer',
|
|
440
|
+
ANSWERED_ELSEWHERE = 'Answered elsewhere'
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
export declare interface ExternalLoginNewStackResponseData {
|
|
444
|
+
AccessToken: string,
|
|
445
|
+
RefreshToken: string
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
export declare interface ExternalLoginOldStackResponseData {
|
|
449
|
+
Socket: Socket,
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
export declare interface ExternalLoginRequestBody {
|
|
453
|
+
identityType: LoginType,
|
|
454
|
+
username?: string,
|
|
455
|
+
password?: string,
|
|
456
|
+
token?: string
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
export declare interface ExternalLoginResponse<T> {
|
|
460
|
+
StatusCode: number,
|
|
461
|
+
Status: string,
|
|
462
|
+
Data: T
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* A generic type that represents the structure of any event data wrapped in a socket event format.
|
|
467
|
+
* This type is used in the handling of all event types, providing a consistent structure for event data processing.
|
|
468
|
+
*/
|
|
469
|
+
export declare type GenericEventWrapper = EventWrappedSocketDataMap[EventTypeNames]
|
|
470
|
+
|
|
471
|
+
/**
|
|
472
|
+
* Data structure for keep alive response event.
|
|
473
|
+
*/
|
|
474
|
+
export declare interface KeepAliveResponseEvent extends CommonEventProperties {
|
|
475
|
+
isOk: boolean
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
export declare type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
|
|
479
|
+
|
|
480
|
+
export declare type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
|
|
481
|
+
|
|
482
|
+
export declare type ListenersKeyType = keyof OpenSIPSEventMap
|
|
483
|
+
|
|
484
|
+
export declare interface LoggerConfig {
|
|
485
|
+
logToConsole?: boolean;
|
|
486
|
+
overloadGlobalConsole?: boolean;
|
|
487
|
+
namespace?: string;
|
|
488
|
+
socketEmitInterval?: number;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
export declare interface LoggerConnectOptions {
|
|
492
|
+
reconnection?: boolean;
|
|
493
|
+
reconnectionDelay?: number;
|
|
494
|
+
reconnectionAttempts?: number;
|
|
495
|
+
perMessageDeflate?: boolean;
|
|
496
|
+
upgrade?: boolean;
|
|
497
|
+
transports?: string[];
|
|
498
|
+
debug?: boolean;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
export declare interface LoginSessionData extends Settings, ExternalLoginNewStackResponseData, Socket {}
|
|
502
|
+
|
|
503
|
+
export declare interface LoginSessionPayload {
|
|
504
|
+
token: string,
|
|
505
|
+
email: string,
|
|
506
|
+
password: string
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Data structure for login status event.
|
|
511
|
+
*/
|
|
512
|
+
export declare interface LoginStatusEvent extends CommonEventProperties {
|
|
513
|
+
// Array of Queue objects
|
|
514
|
+
queues: Queue[]
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export declare type LoginSuccessEvent = CommonEventProperties
|
|
518
|
+
|
|
519
|
+
declare enum LoginType {
|
|
520
|
+
USER = "User",
|
|
521
|
+
TOKEN = "Token"
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
export declare interface OnlineStatusEvent {
|
|
525
|
+
isSocketConnected: boolean
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
export declare interface OpenSIPSEventMap {
|
|
529
|
+
ready: readyListener
|
|
530
|
+
changeActiveCalls: changeActiveCallsListener
|
|
531
|
+
callConfirmed: TestEventListener
|
|
532
|
+
currentActiveRoomChanged: ActiveRoomListener
|
|
533
|
+
callAddingInProgressChanged: CallAddingProgressListener
|
|
534
|
+
roomDeleted: RoomDeletedListener
|
|
535
|
+
changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
|
|
536
|
+
changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
|
|
537
|
+
changeMuteWhenJoin: changeMuteWhenJoinListener
|
|
538
|
+
changeIsDND: changeIsDNDListener
|
|
539
|
+
changeIsMuted: changeIsMutedListener
|
|
540
|
+
addRoom: addRoomListener
|
|
541
|
+
updateRoom: updateRoomListener
|
|
542
|
+
removeRoom: removeRoomListener
|
|
543
|
+
changeCallStatus: changeCallStatusListener
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export declare interface Queue {
|
|
547
|
+
QueueID: number,
|
|
548
|
+
QueueName: string,
|
|
549
|
+
Calls: QueueCall[],
|
|
550
|
+
UserId?: number,
|
|
551
|
+
DistributorID?: number,
|
|
552
|
+
IsDistributedQueue?: boolean,
|
|
553
|
+
AnsweredAgent?: string,
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
export declare interface QueueCall {
|
|
557
|
+
CallerID: string,
|
|
558
|
+
CallerName: string,
|
|
559
|
+
IvrUniqueID: string,
|
|
560
|
+
JoinTimeStamp: number,
|
|
561
|
+
calldurationinterval: number,
|
|
562
|
+
ivrid: string,
|
|
563
|
+
isDistributedQueue?: boolean
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Data structure for queue event.
|
|
568
|
+
*/
|
|
569
|
+
export declare interface QueueEvent extends CommonEventProperties {
|
|
570
|
+
eventName: EventNameEnum.QUEUE,
|
|
571
|
+
reason: QueueEventReasonEnum,
|
|
572
|
+
telephonyServerTime: number,
|
|
573
|
+
ivrUniqueId: string,
|
|
574
|
+
data: Queue
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
declare enum QueueEventReasonEnum {
|
|
578
|
+
ANSWER = 'ANSWER',
|
|
579
|
+
ABANDONED = 'ABANDONED',
|
|
580
|
+
EXIT = 'EXIT',
|
|
581
|
+
JOIN = 'JOIN'
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
export declare type readyListener = (value: boolean) => void
|
|
585
|
+
|
|
586
|
+
export declare interface ReconnectOptions {
|
|
587
|
+
retryCount: number;
|
|
588
|
+
maxReconnectAttempts: number;
|
|
589
|
+
reconnectionDelay: number;
|
|
590
|
+
minReconnectionDelay: number;
|
|
591
|
+
maxReconnectionDelay: number;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export declare interface Recording {
|
|
595
|
+
Filename: string,
|
|
596
|
+
Options: string,
|
|
597
|
+
ApproximateURL: string,
|
|
598
|
+
IsMuted: number
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
export declare type removeRoomListener = (value: string) => void
|
|
602
|
+
|
|
603
|
+
export declare type RoomDeletedListener = (roomId: number) => void
|
|
604
|
+
|
|
605
|
+
export declare interface Server {
|
|
606
|
+
Priority: number;
|
|
607
|
+
Domain: string;
|
|
608
|
+
URLID: number;
|
|
609
|
+
Version: string;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
export declare enum ServerParameter {
|
|
613
|
+
DEFAULT = "default",
|
|
614
|
+
NEXT = "next",
|
|
615
|
+
PREVIOUS = "previous"
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
export declare enum ServerTypesEnum {
|
|
619
|
+
DEFAULT = 1,
|
|
620
|
+
CHROME_EXTENSION = 2
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
export declare interface Settings {
|
|
624
|
+
IdentityCode: string,
|
|
625
|
+
IdentityCodeExpiry: Date,
|
|
626
|
+
PersonID: number,
|
|
627
|
+
PersonType: number,
|
|
628
|
+
ExtensionMonitorID: number,
|
|
629
|
+
MonitorList: Server[]
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
export declare interface Socket {
|
|
633
|
+
Client: string,
|
|
634
|
+
PersonId: number,
|
|
635
|
+
RefreshToken: string,
|
|
636
|
+
RefreshTokenExpiry: Date,
|
|
637
|
+
Token: string,
|
|
638
|
+
TokenExpiry: Date,
|
|
639
|
+
URLList: string[],
|
|
640
|
+
Url: string,
|
|
641
|
+
Version: string
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
declare class SocketIoClass {
|
|
645
|
+
private readonly eventsSdkClass;
|
|
646
|
+
constructor(eventsSdkClass: EventsSdkClass);
|
|
647
|
+
io: SocketTyped | undefined;
|
|
648
|
+
ioFunction: TypedSocketIo | undefined;
|
|
649
|
+
lastEventTimestamp: number;
|
|
650
|
+
doReconnect: boolean;
|
|
651
|
+
private keepAliveInterval;
|
|
652
|
+
private keepReconnectInterval;
|
|
653
|
+
private connected;
|
|
654
|
+
getSocketIoFunction(Client: string): void;
|
|
655
|
+
initSocketConnection(): void;
|
|
656
|
+
initSocketEvents(): void;
|
|
657
|
+
clearKeepAliveInterval(): void;
|
|
658
|
+
initKeepAlive(): void;
|
|
659
|
+
closeAllConnections(): void;
|
|
660
|
+
private onKeepAliveResponse;
|
|
661
|
+
private onConnect;
|
|
662
|
+
private onDisconnect;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
export declare type SocketTyped = Socket_2<EventCallbackRegistry, Record<EventsEnum_3, any>>
|
|
666
|
+
|
|
667
|
+
export declare interface Summery {
|
|
668
|
+
representative: string
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
export declare type TestEventListener = (event: { test: string }) => void
|
|
672
|
+
|
|
673
|
+
declare type TypedSocketIo = (...args: Parameters<typeof io>) => SocketTyped;
|
|
674
|
+
|
|
675
|
+
export declare type updateRoomListener = (value: string) => void
|
|
676
|
+
|
|
677
|
+
export declare interface User {
|
|
678
|
+
userID: number,
|
|
679
|
+
userName: string,
|
|
680
|
+
accountID: number
|
|
681
|
+
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
export declare type WrappedSocketEvent<T extends EventsEnum_2> = {
|
|
685
|
+
name: T
|
|
686
|
+
data: EventDataMap[T]
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
export { }
|