@koi-design/callkit 2.0.4 → 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
@@ -61,22 +61,44 @@ interface SocketConfig {
61
61
  declare class Socket {
62
62
  private callKit;
63
63
  private ws?;
64
- private socketConfig;
65
64
  lastPingTime: any;
66
- isConnected: boolean;
67
65
  pingTimer?: ReturnType<typeof setInterval>;
68
- satrtConfirm: boolean;
66
+ /**
67
+ * @description reconnect timer
68
+ */
69
69
  private reconnectTimer?;
70
- private isReconnecting;
70
+ /**
71
+ * @description reconnect attempts
72
+ */
71
73
  private reconnectAttempts;
72
- private socketError;
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;
73
87
  constructor(callKit: CallKit);
88
+ get reconnectConfig(): {
89
+ enabled?: boolean;
90
+ maxAttempts?: number;
91
+ delay?: number;
92
+ pingInterval?: number;
93
+ pingTimeout?: number;
94
+ };
74
95
  init(): void;
96
+ private setConnectAuthState;
75
97
  private handleDisconnect;
76
98
  private clearWebSocket;
77
99
  private connect;
78
100
  private onOpen;
79
- private resetReconnectState;
101
+ private resetConnectState;
80
102
  private onClose;
81
103
  private onError;
82
104
  private confirmAck;
@@ -87,7 +109,9 @@ declare class Socket {
87
109
  /**
88
110
  * reset socket connection and all states
89
111
  */
90
- reset(): Promise<void>;
112
+ reset(config?: {
113
+ focus?: boolean;
114
+ }): Promise<void>;
91
115
  private attemptReconnect;
92
116
  }
93
117
 
@@ -103,11 +127,14 @@ interface IConfig {
103
127
  version: string;
104
128
  host: string;
105
129
  log: LoggerLevel;
106
- trackLogs: TrackLogsConfig;
130
+ trackLogs: Partial<TrackLogsConfig>;
107
131
  audioRef?: HTMLAudioElement | (() => HTMLAudioElement);
108
132
  constrains: WebrtcConstranis;
109
133
  socket: string;
110
- reconnect?: SocketConfig;
134
+ reconnect?: {
135
+ sip: Partial<SocketConfig>;
136
+ incall: Partial<SocketConfig>;
137
+ };
111
138
  userInfo: {
112
139
  wsUrl: string;
113
140
  sessionId: string;
@@ -140,7 +167,18 @@ declare class Config {
140
167
  validate: () => boolean;
141
168
  isLogin: () => boolean;
142
169
  check(): boolean;
143
- 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
+ };
144
182
  enableTrackLogs(enabled: boolean): void;
145
183
  }
146
184
 
@@ -351,10 +389,6 @@ declare class Call {
351
389
  type CallStatusType = (typeof CallStatus)[keyof typeof CallStatus];
352
390
  declare class Connect {
353
391
  callKit: CallKit;
354
- /**
355
- *@description Reconnect config
356
- */
357
- private reconnectConfig;
358
392
  /**
359
393
  *@description Whether muted
360
394
  */
@@ -392,6 +426,13 @@ declare class Connect {
392
426
  */
393
427
  hasInvite: boolean;
394
428
  constructor(callKit: CallKit);
429
+ get reconnectConfig(): {
430
+ enabled?: boolean;
431
+ maxAttempts?: number;
432
+ delay?: number;
433
+ pingInterval?: number;
434
+ pingTimeout?: number;
435
+ };
395
436
  currentCallId: string | null;
396
437
  setCallId(callId: string | null): void;
397
438
  reset(): Promise<void>;
@@ -474,8 +515,12 @@ interface CallKitConfig {
474
515
  socket: string;
475
516
  constrains?: WebrtcConstranis;
476
517
  log?: LoggerLevel;
518
+ reconnect?: {
519
+ sip: Partial<SocketConfig>;
520
+ incall: Partial<SocketConfig>;
521
+ };
477
522
  }
478
- type ConfigEntity = CallKitConfig & Partial<IConfig>;
523
+ type ConfigEntity = Partial<IConfig> & CallKitConfig;
479
524
  type kitEventType = (typeof KitEvent)[keyof typeof KitEvent];
480
525
  interface Listener {
481
526
  event: kitEventType;
@@ -500,7 +545,6 @@ declare class CallKit {
500
545
  refer(uri: string, options?: any): Promise<void>;
501
546
  register(): Promise<void>;
502
547
  unregister(): Promise<void>;
503
- stop(): Promise<void>;
504
548
  hangup(): Promise<void>;
505
549
  hold(): void;
506
550
  unhold(): void;
@@ -511,7 +555,15 @@ declare class CallKit {
511
555
  * @param status
512
556
  */
513
557
  setUserStatus(status: number): Promise<void>;
514
- 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>;
515
567
  on(event: kitEventType, callback: (...args: any[]) => void): void;
516
568
  off(event: kitEventType, callback?: (...args: any[]) => void): void;
517
569
  removeAllListeners(): void;