@koi-design/callkit 2.0.3 → 2.0.5-beta.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/dist/index.d.ts CHANGED
@@ -55,32 +55,50 @@ interface SocketConfig {
55
55
  enabled: boolean;
56
56
  maxAttempts: number;
57
57
  delay: number;
58
- backoffMultiplier: number;
59
58
  pingInterval: number;
60
59
  pingTimeout: number;
61
- maxConnectsPerWindow?: number;
62
- timeWindow?: number;
63
60
  }
64
61
  declare class Socket {
65
62
  private callKit;
66
63
  private ws?;
67
- private socketConfig;
68
64
  lastPingTime: any;
69
- isConnected: boolean;
70
65
  pingTimer?: ReturnType<typeof setInterval>;
71
- satrtConfirm: boolean;
66
+ /**
67
+ * @description reconnect timer
68
+ */
72
69
  private reconnectTimer?;
73
- private isReconnecting;
70
+ /**
71
+ * @description reconnect attempts
72
+ */
74
73
  private reconnectAttempts;
75
- private socketError;
76
- private connectAttemptTimes;
74
+ /**
75
+ * @description connect auth state
76
+ * @default {
77
+ * satrtConfirm: false,
78
+ * isConnected: false,
79
+ * isReconnecting: false,
80
+ * isAuthenticated: false,
81
+ * isError: false
82
+ * }
83
+ */
84
+ private connectAuthState;
85
+ get satrtConfirm(): boolean;
86
+ get isError(): boolean;
77
87
  constructor(callKit: CallKit);
88
+ get reconnectConfig(): {
89
+ enabled?: boolean;
90
+ maxAttempts?: number;
91
+ delay?: number;
92
+ pingInterval?: number;
93
+ pingTimeout?: number;
94
+ };
78
95
  init(): void;
96
+ private setConnectAuthState;
79
97
  private handleDisconnect;
80
98
  private clearWebSocket;
81
99
  private connect;
82
100
  private onOpen;
83
- private resetReconnectState;
101
+ private resetConnectState;
84
102
  private onClose;
85
103
  private onError;
86
104
  private confirmAck;
@@ -91,7 +109,9 @@ declare class Socket {
91
109
  /**
92
110
  * reset socket connection and all states
93
111
  */
94
- reset(): Promise<void>;
112
+ reset(config?: {
113
+ focus?: boolean;
114
+ }): Promise<void>;
95
115
  private attemptReconnect;
96
116
  }
97
117
 
@@ -107,11 +127,14 @@ interface IConfig {
107
127
  version: string;
108
128
  host: string;
109
129
  log: LoggerLevel;
110
- trackLogs: TrackLogsConfig;
130
+ trackLogs: Partial<TrackLogsConfig>;
111
131
  audioRef?: HTMLAudioElement | (() => HTMLAudioElement);
112
132
  constrains: WebrtcConstranis;
113
133
  socket: string;
114
- reconnect?: SocketConfig;
134
+ reconnect?: {
135
+ sip: Partial<SocketConfig>;
136
+ incall: Partial<SocketConfig>;
137
+ };
115
138
  userInfo: {
116
139
  wsUrl: string;
117
140
  sessionId: string;
@@ -144,7 +167,18 @@ declare class Config {
144
167
  validate: () => boolean;
145
168
  isLogin: () => boolean;
146
169
  check(): boolean;
147
- getTrackLogsConfig(): TrackLogsConfig;
170
+ getTrackLogsConfig(): {
171
+ enabled: boolean;
172
+ interval: number;
173
+ maxSize: number;
174
+ };
175
+ getReconnectConfig(type: 'sip' | 'incall'): {
176
+ enabled?: boolean;
177
+ maxAttempts?: number;
178
+ delay?: number;
179
+ pingInterval?: number;
180
+ pingTimeout?: number;
181
+ };
148
182
  enableTrackLogs(enabled: boolean): void;
149
183
  }
150
184
 
@@ -355,10 +389,6 @@ declare class Call {
355
389
  type CallStatusType = (typeof CallStatus)[keyof typeof CallStatus];
356
390
  declare class Connect {
357
391
  callKit: CallKit;
358
- /**
359
- *@description Reconnect config
360
- */
361
- private reconnectConfig;
362
392
  /**
363
393
  *@description Whether muted
364
394
  */
@@ -396,6 +426,13 @@ declare class Connect {
396
426
  */
397
427
  hasInvite: boolean;
398
428
  constructor(callKit: CallKit);
429
+ get reconnectConfig(): {
430
+ enabled?: boolean;
431
+ maxAttempts?: number;
432
+ delay?: number;
433
+ pingInterval?: number;
434
+ pingTimeout?: number;
435
+ };
399
436
  currentCallId: string | null;
400
437
  setCallId(callId: string | null): void;
401
438
  reset(): Promise<void>;
@@ -478,8 +515,12 @@ interface CallKitConfig {
478
515
  socket: string;
479
516
  constrains?: WebrtcConstranis;
480
517
  log?: LoggerLevel;
518
+ reconnect?: {
519
+ sip: Partial<SocketConfig>;
520
+ incall: Partial<SocketConfig>;
521
+ };
481
522
  }
482
- type ConfigEntity = CallKitConfig & Partial<IConfig>;
523
+ type ConfigEntity = Partial<IConfig> & CallKitConfig;
483
524
  type kitEventType = (typeof KitEvent)[keyof typeof KitEvent];
484
525
  interface Listener {
485
526
  event: kitEventType;
@@ -504,7 +545,6 @@ declare class CallKit {
504
545
  refer(uri: string, options?: any): Promise<void>;
505
546
  register(): Promise<void>;
506
547
  unregister(): Promise<void>;
507
- stop(): Promise<void>;
508
548
  hangup(): Promise<void>;
509
549
  hold(): void;
510
550
  unhold(): void;
@@ -515,7 +555,15 @@ declare class CallKit {
515
555
  * @param status
516
556
  */
517
557
  setUserStatus(status: number): Promise<void>;
518
- reset(): Promise<void>;
558
+ /**
559
+ * reset callkit
560
+ * @description recover the callkit to the initial state
561
+ * @default focus is false
562
+ * @param config.focus is true, the callkit reset socket connection and all states
563
+ */
564
+ reset(config?: {
565
+ focus?: boolean;
566
+ }): Promise<void>;
519
567
  on(event: kitEventType, callback: (...args: any[]) => void): void;
520
568
  off(event: kitEventType, callback?: (...args: any[]) => void): void;
521
569
  removeAllListeners(): void;