@koi-design/callkit 2.0.0-beta.6 → 2.0.0-beta.8
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/index.d.ts +147 -138
- package/dist/index.global.js +47 -31
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +47 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +47 -31
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -20,27 +20,129 @@ declare class Api {
|
|
|
20
20
|
private post;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
type LoggerLevel = 'info' | 'success' | 'warn' | 'error' | 'silent';
|
|
24
|
+
interface Log {
|
|
25
|
+
timestamp: string;
|
|
26
|
+
level: LoggerLevel;
|
|
27
|
+
type?: 'INCALL' | 'SIP' | 'API' | 'OTHER';
|
|
28
|
+
message: string;
|
|
29
|
+
caller: string;
|
|
30
|
+
content: Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
type LogEntity = Omit<Log, 'timestamp' | 'level' | 'message'>;
|
|
33
|
+
declare class Logger {
|
|
34
|
+
prefix: string;
|
|
35
|
+
level: LoggerLevel;
|
|
36
|
+
private pendingTrackLogs;
|
|
37
|
+
private trackLogsTimer;
|
|
24
38
|
private callKit;
|
|
39
|
+
constructor(callKit: CallKit, level?: LoggerLevel);
|
|
40
|
+
private startTrackLogsTimer;
|
|
41
|
+
private flushTrackLogs;
|
|
42
|
+
destroy(): void;
|
|
43
|
+
setLevel(level: LoggerLevel): void;
|
|
44
|
+
info(msg: string, extra: LogEntity): void;
|
|
45
|
+
success(msg: string, extra: LogEntity): void;
|
|
46
|
+
warn(msg: string, extra: LogEntity): void;
|
|
47
|
+
error(msg: string | Error, extra: LogEntity): void;
|
|
48
|
+
private catchLog;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
type SocketSendEventType = (typeof SocketSendEvent)[keyof typeof SocketSendEvent];
|
|
52
|
+
interface SocketConfig {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
maxAttempts: number;
|
|
55
|
+
delay: number;
|
|
56
|
+
backoffMultiplier: number;
|
|
57
|
+
pingInterval: number;
|
|
58
|
+
pingTimeout: number;
|
|
59
|
+
}
|
|
60
|
+
declare class Socket {
|
|
61
|
+
private callKit;
|
|
62
|
+
private ws?;
|
|
63
|
+
private socketConfig;
|
|
64
|
+
lastPingTime: any;
|
|
65
|
+
isConnected: boolean;
|
|
66
|
+
pingTimer?: number;
|
|
67
|
+
satrtConfirm: boolean;
|
|
68
|
+
private reconnectTimer?;
|
|
69
|
+
private isReconnecting;
|
|
70
|
+
private reconnectAttempts;
|
|
71
|
+
private socketError;
|
|
25
72
|
constructor(callKit: CallKit);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
73
|
+
init(): void;
|
|
74
|
+
private handleDisconnect;
|
|
75
|
+
private connect;
|
|
76
|
+
private onOpen;
|
|
77
|
+
private resetReconnectState;
|
|
78
|
+
private onClose;
|
|
79
|
+
private onError;
|
|
80
|
+
private confirmAck;
|
|
81
|
+
private onMessage;
|
|
82
|
+
send(event: SocketSendEventType, message?: any): void;
|
|
83
|
+
sendMessage(event: SocketSendEventType, message?: any): Promise<void>;
|
|
84
|
+
private ping;
|
|
85
|
+
private checkPing;
|
|
33
86
|
/**
|
|
34
|
-
*
|
|
35
|
-
* @param isUnprompted Whether to actively hang up
|
|
36
|
-
* @param isError Whether an error occurred
|
|
37
|
-
* @returns
|
|
87
|
+
* reset socket connection and all states
|
|
38
88
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
89
|
+
reset(): Promise<void>;
|
|
90
|
+
private attemptReconnect;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
interface WebrtcConstranis {
|
|
94
|
+
audio: {
|
|
95
|
+
autoGainControl?: boolean;
|
|
96
|
+
noiseSuppression?: boolean;
|
|
97
|
+
echoCancellation?: boolean;
|
|
98
|
+
};
|
|
99
|
+
video: false;
|
|
100
|
+
}
|
|
101
|
+
interface IConfig {
|
|
102
|
+
version: string;
|
|
103
|
+
host: string;
|
|
104
|
+
log: LoggerLevel;
|
|
105
|
+
trackLogs: {
|
|
106
|
+
enabled: boolean;
|
|
107
|
+
interval: number;
|
|
108
|
+
maxSize: number;
|
|
109
|
+
};
|
|
110
|
+
audioRef?: HTMLAudioElement | (() => HTMLAudioElement);
|
|
111
|
+
constrains: WebrtcConstranis;
|
|
112
|
+
socket: string;
|
|
113
|
+
reconnect?: SocketConfig;
|
|
114
|
+
userInfo: {
|
|
115
|
+
wsUrl: string;
|
|
116
|
+
sessionId: string;
|
|
117
|
+
username: string;
|
|
118
|
+
password: string;
|
|
119
|
+
encryptionPassword: string;
|
|
120
|
+
sourceType: (typeof CallSourceType)[keyof typeof CallSourceType];
|
|
121
|
+
extno: string;
|
|
122
|
+
workOrderId: string;
|
|
123
|
+
userPart: string;
|
|
124
|
+
agentId: string;
|
|
125
|
+
fsUserId: string;
|
|
126
|
+
fsPassword: string;
|
|
127
|
+
fsIp: string;
|
|
128
|
+
fsPort: string;
|
|
129
|
+
iceInfo: string[];
|
|
130
|
+
iceGatheringTimeout: number;
|
|
131
|
+
encryptionMethod: EncryptionMethodType;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
declare class Config {
|
|
135
|
+
callKit: CallKit;
|
|
136
|
+
constructor(callKit: CallKit);
|
|
137
|
+
config: IConfig;
|
|
138
|
+
getConfig: () => IConfig;
|
|
139
|
+
setConfig: (key: string, value: any) => Promise<void>;
|
|
140
|
+
setUserInfo: (key: string, value: any) => Promise<void>;
|
|
141
|
+
reset: () => Promise<void>;
|
|
142
|
+
validate: () => boolean;
|
|
143
|
+
isLogin: () => boolean;
|
|
144
|
+
check(): boolean;
|
|
145
|
+
isLogsEnabled(): boolean;
|
|
44
146
|
}
|
|
45
147
|
|
|
46
148
|
declare const CallStatus: {
|
|
@@ -208,124 +310,34 @@ declare const CallSourceType: {
|
|
|
208
310
|
workOrderId: number;
|
|
209
311
|
};
|
|
210
312
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
caller: string;
|
|
218
|
-
content: Record<string, any>;
|
|
219
|
-
}
|
|
220
|
-
type LogEntity = Omit<Log, 'timestamp' | 'level' | 'message'>;
|
|
221
|
-
declare class Logger {
|
|
222
|
-
prefix: string;
|
|
223
|
-
level: LoggerLevel;
|
|
224
|
-
private pendingTrackLogs;
|
|
225
|
-
private trackLogsTimer;
|
|
226
|
-
private callKit;
|
|
227
|
-
constructor(callKit: CallKit, level?: LoggerLevel);
|
|
228
|
-
private startTrackLogsTimer;
|
|
229
|
-
private flushTrackLogs;
|
|
230
|
-
destroy(): void;
|
|
231
|
-
setLevel(level: LoggerLevel): void;
|
|
232
|
-
info(msg: string, extra: LogEntity): void;
|
|
233
|
-
success(msg: string, extra: LogEntity): void;
|
|
234
|
-
warn(msg: string, extra: LogEntity): void;
|
|
235
|
-
error(msg: string | Error, extra: LogEntity): void;
|
|
236
|
-
private catchLog;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
type SocketSendEventType = (typeof SocketSendEvent)[keyof typeof SocketSendEvent];
|
|
240
|
-
interface SocketConfig {
|
|
241
|
-
enabled: boolean;
|
|
242
|
-
maxAttempts: number;
|
|
243
|
-
delay: number;
|
|
244
|
-
backoffMultiplier: number;
|
|
245
|
-
pingInterval: number;
|
|
246
|
-
pingTimeout: number;
|
|
313
|
+
interface CallParams {
|
|
314
|
+
agentId: string;
|
|
315
|
+
sourceType: (typeof CallSourceType)[keyof typeof CallSourceType];
|
|
316
|
+
phoneNum?: string;
|
|
317
|
+
workOrderId?: string;
|
|
318
|
+
extra?: any;
|
|
247
319
|
}
|
|
248
|
-
declare class
|
|
320
|
+
declare class Call {
|
|
249
321
|
private callKit;
|
|
250
|
-
private ws?;
|
|
251
|
-
private socketConfig;
|
|
252
|
-
lastPingTime: any;
|
|
253
|
-
isConnected: boolean;
|
|
254
|
-
pingTimer?: number;
|
|
255
|
-
satrtConfirm: boolean;
|
|
256
|
-
private reconnectTimer?;
|
|
257
|
-
private isReconnecting;
|
|
258
|
-
private reconnectAttempts;
|
|
259
|
-
private socketError;
|
|
260
322
|
constructor(callKit: CallKit);
|
|
261
|
-
|
|
262
|
-
private handleDisconnect;
|
|
263
|
-
private connect;
|
|
264
|
-
private onOpen;
|
|
265
|
-
private resetReconnectState;
|
|
266
|
-
private onClose;
|
|
267
|
-
private onError;
|
|
268
|
-
private confirmAck;
|
|
269
|
-
private onMessage;
|
|
270
|
-
send(event: SocketSendEventType, message?: any): void;
|
|
271
|
-
sendMessage(event: SocketSendEventType, message?: any): Promise<void>;
|
|
272
|
-
private ping;
|
|
273
|
-
private checkPing;
|
|
323
|
+
callStart(params: Partial<CallParams>): Promise<void>;
|
|
274
324
|
/**
|
|
275
|
-
*
|
|
325
|
+
* Refer
|
|
326
|
+
* @param referTo - The referral target. If a `Session`, a REFER w/Replaces is sent.
|
|
327
|
+
* @returns
|
|
276
328
|
*/
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
interface IConfig {
|
|
290
|
-
version: string;
|
|
291
|
-
host: string;
|
|
292
|
-
log: LoggerLevel;
|
|
293
|
-
trackLogs: boolean;
|
|
294
|
-
audioRef?: HTMLAudioElement | (() => HTMLAudioElement);
|
|
295
|
-
constrains: WebrtcConstranis;
|
|
296
|
-
socket: string;
|
|
297
|
-
reconnect?: SocketConfig;
|
|
298
|
-
userInfo: {
|
|
299
|
-
wsUrl: string;
|
|
300
|
-
sessionId: string;
|
|
301
|
-
username: string;
|
|
302
|
-
password: string;
|
|
303
|
-
encryptionPassword: string;
|
|
304
|
-
sourceType: (typeof CallSourceType)[keyof typeof CallSourceType];
|
|
305
|
-
extno: string;
|
|
306
|
-
workOrderId: string;
|
|
307
|
-
userPart: string;
|
|
308
|
-
agentId: string;
|
|
309
|
-
fsUserId: string;
|
|
310
|
-
fsPassword: string;
|
|
311
|
-
fsIp: string;
|
|
312
|
-
fsPort: string;
|
|
313
|
-
iceInfo: string[];
|
|
314
|
-
iceGatheringTimeout: number;
|
|
315
|
-
encryptionMethod: EncryptionMethodType;
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
declare class Config {
|
|
319
|
-
callKit: CallKit;
|
|
320
|
-
constructor(callKit: CallKit);
|
|
321
|
-
config: IConfig;
|
|
322
|
-
getConfig: () => IConfig;
|
|
323
|
-
setConfig: (key: string, value: any) => Promise<void>;
|
|
324
|
-
setUserInfo: (key: string, value: any) => Promise<void>;
|
|
325
|
-
reset: () => void;
|
|
326
|
-
validate: () => boolean;
|
|
327
|
-
isLogin: () => boolean;
|
|
328
|
-
check(): boolean;
|
|
329
|
+
callRefer(referTo: string, options?: any): Promise<void>;
|
|
330
|
+
/**
|
|
331
|
+
* Hang up
|
|
332
|
+
* @param isUnprompted Whether to actively hang up
|
|
333
|
+
* @param isError Whether an error occurred
|
|
334
|
+
* @returns
|
|
335
|
+
*/
|
|
336
|
+
callEnd(isUnprompted?: boolean, isError?: boolean): Promise<void>;
|
|
337
|
+
callHold(): Promise<void>;
|
|
338
|
+
callUnhold(): Promise<void>;
|
|
339
|
+
callMute(): Promise<void>;
|
|
340
|
+
callUnmute(): Promise<void>;
|
|
329
341
|
}
|
|
330
342
|
|
|
331
343
|
type CallStatusType = (typeof CallStatus)[keyof typeof CallStatus];
|
|
@@ -368,7 +380,7 @@ declare class Connect {
|
|
|
368
380
|
*/
|
|
369
381
|
private isHold;
|
|
370
382
|
constructor(callKit: CallKit);
|
|
371
|
-
reset(): void
|
|
383
|
+
reset(): Promise<void>;
|
|
372
384
|
private getAduioReference;
|
|
373
385
|
permission(): Promise<void>;
|
|
374
386
|
/**
|
|
@@ -454,11 +466,6 @@ interface Listener {
|
|
|
454
466
|
event: kitEventType;
|
|
455
467
|
callback: (...args: any[]) => void;
|
|
456
468
|
}
|
|
457
|
-
interface CallOptions {
|
|
458
|
-
sourceType: (typeof CallSourceType)[keyof typeof CallSourceType];
|
|
459
|
-
phoneNum?: string;
|
|
460
|
-
workOrderId?: string;
|
|
461
|
-
}
|
|
462
469
|
declare class CallKit {
|
|
463
470
|
api: Api;
|
|
464
471
|
config: Config;
|
|
@@ -471,8 +478,10 @@ declare class CallKit {
|
|
|
471
478
|
login(username: string, password: string, extra?: {
|
|
472
479
|
[key: string]: any;
|
|
473
480
|
}): Promise<void>;
|
|
474
|
-
logout(
|
|
475
|
-
|
|
481
|
+
logout({ isReset }?: {
|
|
482
|
+
isReset?: boolean;
|
|
483
|
+
}): Promise<void>;
|
|
484
|
+
call(extno?: string | number, options?: Partial<CallParams>): Promise<void>;
|
|
476
485
|
refer(uri: string, options?: any): Promise<void>;
|
|
477
486
|
register(): Promise<void>;
|
|
478
487
|
unregister(): Promise<void>;
|
package/dist/index.global.js
CHANGED
|
@@ -3640,7 +3640,7 @@ var WebCall = (() => {
|
|
|
3640
3640
|
constructor(callKit) {
|
|
3641
3641
|
this.callKit = callKit;
|
|
3642
3642
|
}
|
|
3643
|
-
async callStart() {
|
|
3643
|
+
async callStart(params) {
|
|
3644
3644
|
if (!this.callKit.config.check())
|
|
3645
3645
|
return;
|
|
3646
3646
|
this.callKit.logger.info("callStart", {
|
|
@@ -3659,19 +3659,15 @@ var WebCall = (() => {
|
|
|
3659
3659
|
return;
|
|
3660
3660
|
}
|
|
3661
3661
|
this.callKit.connect.call(async (user) => {
|
|
3662
|
-
|
|
3662
|
+
const queryTrain = {
|
|
3663
|
+
...params?.extra || {},
|
|
3664
|
+
agentId: user.agentId,
|
|
3665
|
+
sourceType: user.sourceType
|
|
3666
|
+
};
|
|
3663
3667
|
if (user.sourceType === CallSourceType.phoneNum) {
|
|
3664
|
-
queryTrain =
|
|
3665
|
-
agentId: user.agentId,
|
|
3666
|
-
phoneNum: user.extno,
|
|
3667
|
-
sourceType: user.sourceType
|
|
3668
|
-
};
|
|
3668
|
+
queryTrain.phoneNum = user.extno;
|
|
3669
3669
|
} else if (user.sourceType === CallSourceType.workOrderId) {
|
|
3670
|
-
queryTrain =
|
|
3671
|
-
agentId: user.agentId,
|
|
3672
|
-
workOrderId: user.workOrderId,
|
|
3673
|
-
sourceType: user.sourceType
|
|
3674
|
-
};
|
|
3670
|
+
queryTrain.workOrderId = user.workOrderId;
|
|
3675
3671
|
}
|
|
3676
3672
|
this.callKit.socket.send(SocketSendEvent.CALL, queryTrain);
|
|
3677
3673
|
});
|
|
@@ -3778,7 +3774,11 @@ var WebCall = (() => {
|
|
|
3778
3774
|
version: "1.0.27",
|
|
3779
3775
|
host: "",
|
|
3780
3776
|
log: "info",
|
|
3781
|
-
trackLogs:
|
|
3777
|
+
trackLogs: {
|
|
3778
|
+
enabled: false,
|
|
3779
|
+
interval: 5e3,
|
|
3780
|
+
maxSize: 8192
|
|
3781
|
+
},
|
|
3782
3782
|
audioRef: void 0,
|
|
3783
3783
|
constrains: constrainsDefault,
|
|
3784
3784
|
socket: "",
|
|
@@ -3819,7 +3819,7 @@ var WebCall = (() => {
|
|
|
3819
3819
|
}
|
|
3820
3820
|
});
|
|
3821
3821
|
};
|
|
3822
|
-
reset = () => {
|
|
3822
|
+
reset = async () => {
|
|
3823
3823
|
if (this.isLogin()) {
|
|
3824
3824
|
this.config.userInfo = {
|
|
3825
3825
|
wsUrl: "",
|
|
@@ -3863,6 +3863,10 @@ var WebCall = (() => {
|
|
|
3863
3863
|
}
|
|
3864
3864
|
return true;
|
|
3865
3865
|
}
|
|
3866
|
+
isLogsEnabled() {
|
|
3867
|
+
const { trackLogs } = this.getConfig();
|
|
3868
|
+
return trackLogs?.enabled ?? false;
|
|
3869
|
+
}
|
|
3866
3870
|
};
|
|
3867
3871
|
|
|
3868
3872
|
// package/logger.ts
|
|
@@ -3875,8 +3879,6 @@ var WebCall = (() => {
|
|
|
3875
3879
|
const logLevel = String(level).toUpperCase();
|
|
3876
3880
|
return `${timestamp} [${logLevel}] [${type}] [${caller ?? "unknown"}] [${message}] ${(0, import_json_stringify_safe.default)(content)}`.trim();
|
|
3877
3881
|
}
|
|
3878
|
-
var MAX_SIZE = 8192;
|
|
3879
|
-
var FLUSH_INTERVAL = 5e3;
|
|
3880
3882
|
function getByteSize(str) {
|
|
3881
3883
|
return new Blob([str]).size;
|
|
3882
3884
|
}
|
|
@@ -3892,28 +3894,35 @@ var WebCall = (() => {
|
|
|
3892
3894
|
this.startTrackLogsTimer();
|
|
3893
3895
|
}
|
|
3894
3896
|
startTrackLogsTimer() {
|
|
3897
|
+
const { trackLogs } = this.callKit.config.getConfig();
|
|
3898
|
+
if (!trackLogs.enabled) {
|
|
3899
|
+
return;
|
|
3900
|
+
}
|
|
3901
|
+
const { interval } = trackLogs;
|
|
3895
3902
|
if (this.trackLogsTimer) {
|
|
3896
3903
|
return;
|
|
3897
3904
|
}
|
|
3898
3905
|
this.trackLogsTimer = setInterval(() => {
|
|
3899
3906
|
this.flushTrackLogs();
|
|
3900
|
-
},
|
|
3907
|
+
}, interval);
|
|
3901
3908
|
}
|
|
3902
3909
|
flushTrackLogs() {
|
|
3903
3910
|
if (this.pendingTrackLogs.length === 0) {
|
|
3904
3911
|
return;
|
|
3905
3912
|
}
|
|
3906
|
-
const
|
|
3907
|
-
if (
|
|
3913
|
+
const isLogsEnabled = this.callKit.config.isLogsEnabled();
|
|
3914
|
+
if (isLogsEnabled) {
|
|
3908
3915
|
try {
|
|
3909
3916
|
const chunks = [];
|
|
3910
3917
|
let currentChunk = [];
|
|
3911
3918
|
let currentSize = 0;
|
|
3919
|
+
const { trackLogs } = this.callKit.config.getConfig();
|
|
3920
|
+
const { maxSize } = trackLogs;
|
|
3912
3921
|
for (const log of this.pendingTrackLogs) {
|
|
3913
3922
|
const logSize = getByteSize(log);
|
|
3914
3923
|
const separator = currentChunk.length > 0 ? "\n" : "";
|
|
3915
3924
|
const separatorSize = getByteSize(separator);
|
|
3916
|
-
if (currentSize + logSize + separatorSize >
|
|
3925
|
+
if (currentSize + logSize + separatorSize > maxSize && currentChunk.length > 0) {
|
|
3917
3926
|
chunks.push(currentChunk.join("\n"));
|
|
3918
3927
|
currentChunk = [log];
|
|
3919
3928
|
currentSize = logSize;
|
|
@@ -3992,8 +4001,8 @@ var WebCall = (() => {
|
|
|
3992
4001
|
content: extra?.content ?? {}
|
|
3993
4002
|
};
|
|
3994
4003
|
const logString = transformLog(log);
|
|
3995
|
-
const
|
|
3996
|
-
if (
|
|
4004
|
+
const isLogsEnabled = this.callKit.config.isLogsEnabled();
|
|
4005
|
+
if (isLogsEnabled) {
|
|
3997
4006
|
this.pendingTrackLogs.push(logString);
|
|
3998
4007
|
}
|
|
3999
4008
|
this.callKit.trigger(KitEvent.KIT_LOG, logString);
|
|
@@ -18499,7 +18508,7 @@ var WebCall = (() => {
|
|
|
18499
18508
|
...reconnect
|
|
18500
18509
|
};
|
|
18501
18510
|
}
|
|
18502
|
-
reset() {
|
|
18511
|
+
async reset() {
|
|
18503
18512
|
if (this.isHolding()) {
|
|
18504
18513
|
this.setHold(false);
|
|
18505
18514
|
}
|
|
@@ -18531,7 +18540,6 @@ var WebCall = (() => {
|
|
|
18531
18540
|
});
|
|
18532
18541
|
}
|
|
18533
18542
|
}
|
|
18534
|
-
this.callKit.config.reset();
|
|
18535
18543
|
this.setConnectStatus(CallStatus.init);
|
|
18536
18544
|
this.clearObserveOptionsHeartbeatInterval();
|
|
18537
18545
|
}
|
|
@@ -19656,6 +19664,7 @@ var WebCall = (() => {
|
|
|
19656
19664
|
data: data.data
|
|
19657
19665
|
}
|
|
19658
19666
|
});
|
|
19667
|
+
this.socketError = true;
|
|
19659
19668
|
this.callKit.reset();
|
|
19660
19669
|
}
|
|
19661
19670
|
if (data.event === SocketReceiveEvent.AGENT_NO_ANSWER) {
|
|
@@ -19950,7 +19959,7 @@ var WebCall = (() => {
|
|
|
19950
19959
|
});
|
|
19951
19960
|
}
|
|
19952
19961
|
}
|
|
19953
|
-
async logout() {
|
|
19962
|
+
async logout({ isReset = true } = { isReset: true }) {
|
|
19954
19963
|
if (!this.config.check())
|
|
19955
19964
|
return;
|
|
19956
19965
|
const { userInfo } = this.config.getConfig();
|
|
@@ -19973,10 +19982,9 @@ var WebCall = (() => {
|
|
|
19973
19982
|
});
|
|
19974
19983
|
}
|
|
19975
19984
|
}
|
|
19976
|
-
|
|
19977
|
-
|
|
19978
|
-
|
|
19979
|
-
this.config.reset();
|
|
19985
|
+
if (isReset) {
|
|
19986
|
+
await this.reset();
|
|
19987
|
+
}
|
|
19980
19988
|
this.trigger(KitEvent.KIT_LOGIN_CHANGE, false);
|
|
19981
19989
|
}
|
|
19982
19990
|
async call(extno = "", options = {
|
|
@@ -20010,7 +20018,7 @@ var WebCall = (() => {
|
|
|
20010
20018
|
options
|
|
20011
20019
|
}
|
|
20012
20020
|
});
|
|
20013
|
-
this.callCenter.callStart();
|
|
20021
|
+
this.callCenter.callStart(options);
|
|
20014
20022
|
}
|
|
20015
20023
|
async refer(uri, options) {
|
|
20016
20024
|
if (!this.config.check())
|
|
@@ -20127,7 +20135,15 @@ var WebCall = (() => {
|
|
|
20127
20135
|
connectStatus: this.connect.connectStatus
|
|
20128
20136
|
}
|
|
20129
20137
|
});
|
|
20130
|
-
this.connect.
|
|
20138
|
+
if (this.connect.isCalling()) {
|
|
20139
|
+
await this.hangup();
|
|
20140
|
+
}
|
|
20141
|
+
await this.connect.reset();
|
|
20142
|
+
if (this.config.isLogin()) {
|
|
20143
|
+
await this.logout({ isReset: false });
|
|
20144
|
+
}
|
|
20145
|
+
await this.config.reset();
|
|
20146
|
+
await this.socket.reset();
|
|
20131
20147
|
}
|
|
20132
20148
|
on(event, callback) {
|
|
20133
20149
|
this.listener.push({
|