react-jssip-kit 0.4.9 → 0.5.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.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as jssip_lib_UA from 'jssip/lib/UA';
2
- import { UAEventMap, IncomingRTCSessionEvent, RTCSessionEvent, UAConfiguration, CallOptions } from 'jssip/lib/UA';
2
+ import { UAEventMap, IncomingRTCSessionEvent, UAConfiguration, CallOptions, RTCSessionEvent } from 'jssip/lib/UA';
3
3
  export { CallOptions, RTCSessionEvent, UAEventMap } from 'jssip/lib/UA';
4
4
  import * as jssip_lib_RTCSession from 'jssip/lib/RTCSession';
5
5
  import { RTCSessionEventMap, DTFMOptions as DTFMOptions$1, AnswerOptions, TerminateOptions, RTCSession, ReferOptions } from 'jssip/lib/RTCSession';
@@ -10,90 +10,108 @@ import * as react from 'react';
10
10
  import react__default from 'react';
11
11
  import * as react_jsx_runtime from 'react/jsx-runtime';
12
12
 
13
- type ExtraEvents = {
14
- error: {
15
- cause: string;
16
- code?: string;
17
- raw?: any;
18
- message?: string;
19
- };
20
- missed: IncomingRTCSessionEvent;
21
- sessionCleanup: {
22
- sessionId: string;
23
- session?: jssip_lib_RTCSession.RTCSession | null;
24
- };
13
+ type UAExtraEvents = {
14
+ error: {
15
+ cause: string;
16
+ code?: string;
17
+ raw?: any;
18
+ message?: string;
19
+ };
20
+ missed: IncomingRTCSessionEvent;
25
21
  };
22
+
23
+ type UAEventName = keyof UAEventMap | keyof UAExtraEvents;
24
+ type SessionEventName = keyof RTCSessionEventMap;
26
25
  declare const JsSIPEventName: {
27
- readonly connecting: "connecting";
28
- readonly connected: "connected";
29
- readonly disconnected: "disconnected";
30
- readonly registered: "registered";
31
- readonly unregistered: "unregistered";
32
- readonly registrationFailed: "registrationFailed";
33
- readonly registrationExpiring: "registrationExpiring";
34
- readonly newRTCSession: "newRTCSession";
35
- readonly newMessage: "newMessage";
36
- readonly sipEvent: "sipEvent";
37
- readonly newOptions: "newOptions";
38
- readonly peerconnection: "peerconnection";
39
- readonly sending: "sending";
40
- readonly progress: "progress";
41
- readonly accepted: "accepted";
42
- readonly confirmed: "confirmed";
43
- readonly ended: "ended";
44
- readonly failed: "failed";
45
- readonly newDTMF: "newDTMF";
46
- readonly newInfo: "newInfo";
47
- readonly hold: "hold";
48
- readonly unhold: "unhold";
49
- readonly muted: "muted";
50
- readonly unmuted: "unmuted";
51
- readonly reinvite: "reinvite";
52
- readonly update: "update";
53
- readonly refer: "refer";
54
- readonly replaces: "replaces";
55
- readonly sdp: "sdp";
56
- readonly error: "error";
57
- readonly icecandidate: "icecandidate";
58
- readonly getusermediafailed: "getusermediafailed";
59
- readonly "peerconnection:createofferfailed": "peerconnection:createofferfailed";
60
- readonly "peerconnection:createanswerfailed": "peerconnection:createanswerfailed";
61
- readonly "peerconnection:setlocaldescriptionfailed": "peerconnection:setlocaldescriptionfailed";
62
- readonly "peerconnection:setremotedescriptionfailed": "peerconnection:setremotedescriptionfailed";
63
- readonly missed: "missed";
64
- readonly sessionCleanup: "sessionCleanup";
65
- };type JsSIPEventName = keyof UAEventMap | keyof RTCSessionEventMap | keyof ExtraEvents;
66
- type JsSIPEventPayload<K extends JsSIPEventName> = BaseJsSIPEventPayload<K>;
67
- type BaseJsSIPEventPayload<K extends JsSIPEventName> = K extends "newRTCSession" ? RTCSessionEvent : K extends "missed" ? IncomingRTCSessionEvent : K extends keyof UAEventMap ? Parameters<UAEventMap[K]>[0] : K extends keyof RTCSessionEventMap ? Parameters<RTCSessionEventMap[K]>[0] : K extends keyof ExtraEvents ? ExtraEvents[K] : never;
68
- type JsSIPEventHandler<K extends JsSIPEventName> = (payload?: JsSIPEventPayload<K>) => void;
26
+ readonly connecting: "connecting";
27
+ readonly connected: "connected";
28
+ readonly disconnected: "disconnected";
29
+ readonly registered: "registered";
30
+ readonly unregistered: "unregistered";
31
+ readonly registrationFailed: "registrationFailed";
32
+ readonly registrationExpiring: "registrationExpiring";
33
+ readonly newRTCSession: "newRTCSession";
34
+ readonly newMessage: "newMessage";
35
+ readonly sipEvent: "sipEvent";
36
+ readonly newOptions: "newOptions";
37
+ readonly peerconnection: "peerconnection";
38
+ readonly sending: "sending";
39
+ readonly progress: "progress";
40
+ readonly accepted: "accepted";
41
+ readonly confirmed: "confirmed";
42
+ readonly ended: "ended";
43
+ readonly failed: "failed";
44
+ readonly newDTMF: "newDTMF";
45
+ readonly newInfo: "newInfo";
46
+ readonly hold: "hold";
47
+ readonly unhold: "unhold";
48
+ readonly muted: "muted";
49
+ readonly unmuted: "unmuted";
50
+ readonly reinvite: "reinvite";
51
+ readonly update: "update";
52
+ readonly refer: "refer";
53
+ readonly replaces: "replaces";
54
+ readonly sdp: "sdp";
55
+ readonly error: "error";
56
+ readonly icecandidate: "icecandidate";
57
+ readonly getusermediafailed: "getusermediafailed";
58
+ readonly "peerconnection:createofferfailed": "peerconnection:createofferfailed";
59
+ readonly "peerconnection:createanswerfailed": "peerconnection:createanswerfailed";
60
+ readonly "peerconnection:setlocaldescriptionfailed": "peerconnection:setlocaldescriptionfailed";
61
+ readonly "peerconnection:setremotedescriptionfailed": "peerconnection:setremotedescriptionfailed";
62
+ readonly missed: "missed";
63
+ };
64
+ type JsSIPEventName = UAEventName | SessionEventName;
65
+ type UAEventPayload<K extends UAEventName> =
66
+ K extends keyof UAEventMap
67
+ ? Parameters<UAEventMap[K]>[0]
68
+ : K extends keyof UAExtraEvents
69
+ ? UAExtraEvents[K]
70
+ : never;
71
+ type SessionEventPayload<K extends SessionEventName> =
72
+ K extends keyof RTCSessionEventMap ? Parameters<RTCSessionEventMap[K]>[0] : never;
73
+ type JsSIPEventPayload<K extends JsSIPEventName> =
74
+ K extends UAEventName
75
+ ? UAEventPayload<K>
76
+ : K extends SessionEventName
77
+ ? SessionEventPayload<K>
78
+ : never;
79
+ type JsSIPEventHandler<K extends JsSIPEventName> = (
80
+ payload?: JsSIPEventPayload<K>
81
+ ) => void;
69
82
  type SipEventHandlers = {
70
- [K in JsSIPEventName]?: JsSIPEventHandler<K>;
83
+ [K in JsSIPEventName]?: JsSIPEventHandler<K>;
71
84
  };
72
85
  interface SipEventManager {
73
- on: <K extends JsSIPEventName>(event: K, handler: JsSIPEventHandler<K>) => () => void;
74
- onSession: <K extends JsSIPEventName>(sessionId: string, event: K, handler: JsSIPEventHandler<K>) => () => void;
75
- bind: (handlers: SipEventHandlers) => () => void;
76
- bindSession: (sessionId: string, handlers: SipEventHandlers) => () => void;
86
+ onUA: <K extends UAEventName>(
87
+ event: K,
88
+ handler: (payload?: UAEventPayload<K>) => void
89
+ ) => () => void;
90
+ onSession: <K extends SessionEventName>(
91
+ sessionId: string,
92
+ event: K,
93
+ handler: (payload?: SessionEventPayload<K>) => void
94
+ ) => () => void;
77
95
  }
78
96
  type JsSIPEventMap = {
79
- [K in JsSIPEventName]: JsSIPEventPayload<K>;
97
+ [K in JsSIPEventName]: JsSIPEventPayload<K>;
80
98
  };
81
99
 
82
100
  type DTFMOptions = DTFMOptions$1;
83
101
 
84
102
  type SipConfiguration = Omit<UAConfiguration, "password" | "uri"> & {
85
- /**
86
- * Enable JsSIP debug logging. If string, treated as debug pattern.
87
- */
88
- debug?: boolean | string;
89
- /**
90
- * Maximum allowed concurrent sessions. Additional sessions are rejected.
91
- */
92
- maxSessionCount?: number;
93
- /**
94
- * Milliseconds to keep enqueued outgoing media before dropping. Defaults to 30000.
95
- */
96
- pendingMediaTtlMs?: number;
103
+ /**
104
+ * Enable JsSIP debug logging. If string, treated as debug pattern.
105
+ */
106
+ debug?: boolean | string;
107
+ /**
108
+ * Maximum allowed concurrent sessions. Additional sessions are rejected.
109
+ */
110
+ maxSessionCount?: number;
111
+ /**
112
+ * Milliseconds to keep enqueued outgoing media before dropping. Defaults to 30000.
113
+ */
114
+ pendingMediaTtlMs?: number;
97
115
  };
98
116
 
99
117
  type StartOpts = {
@@ -298,9 +316,8 @@ declare function useSip(): SipContextType;
298
316
 
299
317
  declare function useSipSessions(): Pick<SipState, "sessions">;
300
318
 
301
- type EventName = keyof JsSIPEventMap;
302
- declare function useSipEvent<K extends EventName>(event: K, handler?: (payload?: JsSIPEventMap[K]) => void): void;
303
- declare function useSipSessionEvent<K extends EventName>(sessionId: string | null | undefined, event: K, handler?: (payload?: JsSIPEventMap[K]) => void): void;
319
+ declare function useSipEvent<K extends UAEventName>(event: K, handler?: (payload?: UAEventPayload<K>) => void): void;
320
+ declare function useSipSessionEvent<K extends SessionEventName>(sessionId: string | null | undefined, event: K, handler?: (payload?: SessionEventPayload<K>) => void): void;
304
321
 
305
322
  declare function CallPlayer({ sessionId }: {
306
323
  sessionId?: string;
@@ -312,4 +329,4 @@ declare function SipProvider({ client, children, sipEventManager, }: {
312
329
  children: react__default.ReactNode;
313
330
  }): react_jsx_runtime.JSX.Element;
314
331
 
315
- export { CallDirection, CallDirection as CallDirectionType, CallPlayer, CallStatus, CallStatus as CallStatusType, type DTFMOptions, type JsSIPEventMap, JsSIPEventName, type SipConfiguration, SipContext, type SipContextType, type SipEventHandlers, type SipEventManager, SipProvider, type SipSessionState, type SipState, SipStatus, SipStatus as SipStatusType, createSipClientInstance, createSipEventManager, useSip, useSipActions, useSipEvent, useSipSessionEvent, useSipSessions, useSipState };
332
+ export { CallDirection, CallDirection as CallDirectionType, CallPlayer, CallStatus, CallStatus as CallStatusType, type DTFMOptions, type JsSIPEventMap, JsSIPEventName, type SessionEventName, type SessionEventPayload, type SipConfiguration, SipContext, type SipContextType, type SipEventHandlers, type SipEventManager, SipProvider, type SipSessionState, type SipState, SipStatus, SipStatus as SipStatusType, type UAEventName, type UAEventPayload, createSipClientInstance, createSipEventManager, useSip, useSipActions, useSipEvent, useSipSessionEvent, useSipSessions, useSipState };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as jssip_lib_UA from 'jssip/lib/UA';
2
- import { UAEventMap, IncomingRTCSessionEvent, RTCSessionEvent, UAConfiguration, CallOptions } from 'jssip/lib/UA';
2
+ import { UAEventMap, IncomingRTCSessionEvent, UAConfiguration, CallOptions, RTCSessionEvent } from 'jssip/lib/UA';
3
3
  export { CallOptions, RTCSessionEvent, UAEventMap } from 'jssip/lib/UA';
4
4
  import * as jssip_lib_RTCSession from 'jssip/lib/RTCSession';
5
5
  import { RTCSessionEventMap, DTFMOptions as DTFMOptions$1, AnswerOptions, TerminateOptions, RTCSession, ReferOptions } from 'jssip/lib/RTCSession';
@@ -10,90 +10,108 @@ import * as react from 'react';
10
10
  import react__default from 'react';
11
11
  import * as react_jsx_runtime from 'react/jsx-runtime';
12
12
 
13
- type ExtraEvents = {
14
- error: {
15
- cause: string;
16
- code?: string;
17
- raw?: any;
18
- message?: string;
19
- };
20
- missed: IncomingRTCSessionEvent;
21
- sessionCleanup: {
22
- sessionId: string;
23
- session?: jssip_lib_RTCSession.RTCSession | null;
24
- };
13
+ type UAExtraEvents = {
14
+ error: {
15
+ cause: string;
16
+ code?: string;
17
+ raw?: any;
18
+ message?: string;
19
+ };
20
+ missed: IncomingRTCSessionEvent;
25
21
  };
22
+
23
+ type UAEventName = keyof UAEventMap | keyof UAExtraEvents;
24
+ type SessionEventName = keyof RTCSessionEventMap;
26
25
  declare const JsSIPEventName: {
27
- readonly connecting: "connecting";
28
- readonly connected: "connected";
29
- readonly disconnected: "disconnected";
30
- readonly registered: "registered";
31
- readonly unregistered: "unregistered";
32
- readonly registrationFailed: "registrationFailed";
33
- readonly registrationExpiring: "registrationExpiring";
34
- readonly newRTCSession: "newRTCSession";
35
- readonly newMessage: "newMessage";
36
- readonly sipEvent: "sipEvent";
37
- readonly newOptions: "newOptions";
38
- readonly peerconnection: "peerconnection";
39
- readonly sending: "sending";
40
- readonly progress: "progress";
41
- readonly accepted: "accepted";
42
- readonly confirmed: "confirmed";
43
- readonly ended: "ended";
44
- readonly failed: "failed";
45
- readonly newDTMF: "newDTMF";
46
- readonly newInfo: "newInfo";
47
- readonly hold: "hold";
48
- readonly unhold: "unhold";
49
- readonly muted: "muted";
50
- readonly unmuted: "unmuted";
51
- readonly reinvite: "reinvite";
52
- readonly update: "update";
53
- readonly refer: "refer";
54
- readonly replaces: "replaces";
55
- readonly sdp: "sdp";
56
- readonly error: "error";
57
- readonly icecandidate: "icecandidate";
58
- readonly getusermediafailed: "getusermediafailed";
59
- readonly "peerconnection:createofferfailed": "peerconnection:createofferfailed";
60
- readonly "peerconnection:createanswerfailed": "peerconnection:createanswerfailed";
61
- readonly "peerconnection:setlocaldescriptionfailed": "peerconnection:setlocaldescriptionfailed";
62
- readonly "peerconnection:setremotedescriptionfailed": "peerconnection:setremotedescriptionfailed";
63
- readonly missed: "missed";
64
- readonly sessionCleanup: "sessionCleanup";
65
- };type JsSIPEventName = keyof UAEventMap | keyof RTCSessionEventMap | keyof ExtraEvents;
66
- type JsSIPEventPayload<K extends JsSIPEventName> = BaseJsSIPEventPayload<K>;
67
- type BaseJsSIPEventPayload<K extends JsSIPEventName> = K extends "newRTCSession" ? RTCSessionEvent : K extends "missed" ? IncomingRTCSessionEvent : K extends keyof UAEventMap ? Parameters<UAEventMap[K]>[0] : K extends keyof RTCSessionEventMap ? Parameters<RTCSessionEventMap[K]>[0] : K extends keyof ExtraEvents ? ExtraEvents[K] : never;
68
- type JsSIPEventHandler<K extends JsSIPEventName> = (payload?: JsSIPEventPayload<K>) => void;
26
+ readonly connecting: "connecting";
27
+ readonly connected: "connected";
28
+ readonly disconnected: "disconnected";
29
+ readonly registered: "registered";
30
+ readonly unregistered: "unregistered";
31
+ readonly registrationFailed: "registrationFailed";
32
+ readonly registrationExpiring: "registrationExpiring";
33
+ readonly newRTCSession: "newRTCSession";
34
+ readonly newMessage: "newMessage";
35
+ readonly sipEvent: "sipEvent";
36
+ readonly newOptions: "newOptions";
37
+ readonly peerconnection: "peerconnection";
38
+ readonly sending: "sending";
39
+ readonly progress: "progress";
40
+ readonly accepted: "accepted";
41
+ readonly confirmed: "confirmed";
42
+ readonly ended: "ended";
43
+ readonly failed: "failed";
44
+ readonly newDTMF: "newDTMF";
45
+ readonly newInfo: "newInfo";
46
+ readonly hold: "hold";
47
+ readonly unhold: "unhold";
48
+ readonly muted: "muted";
49
+ readonly unmuted: "unmuted";
50
+ readonly reinvite: "reinvite";
51
+ readonly update: "update";
52
+ readonly refer: "refer";
53
+ readonly replaces: "replaces";
54
+ readonly sdp: "sdp";
55
+ readonly error: "error";
56
+ readonly icecandidate: "icecandidate";
57
+ readonly getusermediafailed: "getusermediafailed";
58
+ readonly "peerconnection:createofferfailed": "peerconnection:createofferfailed";
59
+ readonly "peerconnection:createanswerfailed": "peerconnection:createanswerfailed";
60
+ readonly "peerconnection:setlocaldescriptionfailed": "peerconnection:setlocaldescriptionfailed";
61
+ readonly "peerconnection:setremotedescriptionfailed": "peerconnection:setremotedescriptionfailed";
62
+ readonly missed: "missed";
63
+ };
64
+ type JsSIPEventName = UAEventName | SessionEventName;
65
+ type UAEventPayload<K extends UAEventName> =
66
+ K extends keyof UAEventMap
67
+ ? Parameters<UAEventMap[K]>[0]
68
+ : K extends keyof UAExtraEvents
69
+ ? UAExtraEvents[K]
70
+ : never;
71
+ type SessionEventPayload<K extends SessionEventName> =
72
+ K extends keyof RTCSessionEventMap ? Parameters<RTCSessionEventMap[K]>[0] : never;
73
+ type JsSIPEventPayload<K extends JsSIPEventName> =
74
+ K extends UAEventName
75
+ ? UAEventPayload<K>
76
+ : K extends SessionEventName
77
+ ? SessionEventPayload<K>
78
+ : never;
79
+ type JsSIPEventHandler<K extends JsSIPEventName> = (
80
+ payload?: JsSIPEventPayload<K>
81
+ ) => void;
69
82
  type SipEventHandlers = {
70
- [K in JsSIPEventName]?: JsSIPEventHandler<K>;
83
+ [K in JsSIPEventName]?: JsSIPEventHandler<K>;
71
84
  };
72
85
  interface SipEventManager {
73
- on: <K extends JsSIPEventName>(event: K, handler: JsSIPEventHandler<K>) => () => void;
74
- onSession: <K extends JsSIPEventName>(sessionId: string, event: K, handler: JsSIPEventHandler<K>) => () => void;
75
- bind: (handlers: SipEventHandlers) => () => void;
76
- bindSession: (sessionId: string, handlers: SipEventHandlers) => () => void;
86
+ onUA: <K extends UAEventName>(
87
+ event: K,
88
+ handler: (payload?: UAEventPayload<K>) => void
89
+ ) => () => void;
90
+ onSession: <K extends SessionEventName>(
91
+ sessionId: string,
92
+ event: K,
93
+ handler: (payload?: SessionEventPayload<K>) => void
94
+ ) => () => void;
77
95
  }
78
96
  type JsSIPEventMap = {
79
- [K in JsSIPEventName]: JsSIPEventPayload<K>;
97
+ [K in JsSIPEventName]: JsSIPEventPayload<K>;
80
98
  };
81
99
 
82
100
  type DTFMOptions = DTFMOptions$1;
83
101
 
84
102
  type SipConfiguration = Omit<UAConfiguration, "password" | "uri"> & {
85
- /**
86
- * Enable JsSIP debug logging. If string, treated as debug pattern.
87
- */
88
- debug?: boolean | string;
89
- /**
90
- * Maximum allowed concurrent sessions. Additional sessions are rejected.
91
- */
92
- maxSessionCount?: number;
93
- /**
94
- * Milliseconds to keep enqueued outgoing media before dropping. Defaults to 30000.
95
- */
96
- pendingMediaTtlMs?: number;
103
+ /**
104
+ * Enable JsSIP debug logging. If string, treated as debug pattern.
105
+ */
106
+ debug?: boolean | string;
107
+ /**
108
+ * Maximum allowed concurrent sessions. Additional sessions are rejected.
109
+ */
110
+ maxSessionCount?: number;
111
+ /**
112
+ * Milliseconds to keep enqueued outgoing media before dropping. Defaults to 30000.
113
+ */
114
+ pendingMediaTtlMs?: number;
97
115
  };
98
116
 
99
117
  type StartOpts = {
@@ -298,9 +316,8 @@ declare function useSip(): SipContextType;
298
316
 
299
317
  declare function useSipSessions(): Pick<SipState, "sessions">;
300
318
 
301
- type EventName = keyof JsSIPEventMap;
302
- declare function useSipEvent<K extends EventName>(event: K, handler?: (payload?: JsSIPEventMap[K]) => void): void;
303
- declare function useSipSessionEvent<K extends EventName>(sessionId: string | null | undefined, event: K, handler?: (payload?: JsSIPEventMap[K]) => void): void;
319
+ declare function useSipEvent<K extends UAEventName>(event: K, handler?: (payload?: UAEventPayload<K>) => void): void;
320
+ declare function useSipSessionEvent<K extends SessionEventName>(sessionId: string | null | undefined, event: K, handler?: (payload?: SessionEventPayload<K>) => void): void;
304
321
 
305
322
  declare function CallPlayer({ sessionId }: {
306
323
  sessionId?: string;
@@ -312,4 +329,4 @@ declare function SipProvider({ client, children, sipEventManager, }: {
312
329
  children: react__default.ReactNode;
313
330
  }): react_jsx_runtime.JSX.Element;
314
331
 
315
- export { CallDirection, CallDirection as CallDirectionType, CallPlayer, CallStatus, CallStatus as CallStatusType, type DTFMOptions, type JsSIPEventMap, JsSIPEventName, type SipConfiguration, SipContext, type SipContextType, type SipEventHandlers, type SipEventManager, SipProvider, type SipSessionState, type SipState, SipStatus, SipStatus as SipStatusType, createSipClientInstance, createSipEventManager, useSip, useSipActions, useSipEvent, useSipSessionEvent, useSipSessions, useSipState };
332
+ export { CallDirection, CallDirection as CallDirectionType, CallPlayer, CallStatus, CallStatus as CallStatusType, type DTFMOptions, type JsSIPEventMap, JsSIPEventName, type SessionEventName, type SessionEventPayload, type SipConfiguration, SipContext, type SipContextType, type SipEventHandlers, type SipEventManager, SipProvider, type SipSessionState, type SipState, SipStatus, SipStatus as SipStatusType, type UAEventName, type UAEventPayload, createSipClientInstance, createSipEventManager, useSip, useSipActions, useSipEvent, useSipSessionEvent, useSipSessions, useSipState };
package/dist/index.js CHANGED
@@ -1041,19 +1041,12 @@ var SipClient = class extends EventTargetEmitter {
1041
1041
  });
1042
1042
  }
1043
1043
  cleanupSession(sessionId, session) {
1044
- const existingSession = this.sessionManager.getSession(sessionId);
1045
- this.emit("sessionCleanup", { sessionId, session: existingSession });
1046
1044
  const targetSession = session ?? this.sessionManager.getSession(sessionId) ?? this.sessionManager.getRtc(sessionId)?.currentSession;
1047
1045
  this.detachSessionHandlers(sessionId, targetSession);
1048
1046
  this.sessionManager.cleanupSession(sessionId);
1049
1047
  removeSessionState(this.stateStore, sessionId);
1050
1048
  }
1051
1049
  cleanupAllSessions() {
1052
- const ids = this.sessionManager.getSessionIds();
1053
- ids.forEach((id) => {
1054
- const s = this.sessionManager.getSession(id);
1055
- this.emit("sessionCleanup", { sessionId: id, session: s });
1056
- });
1057
1050
  this.sessionManager.cleanupAllSessions();
1058
1051
  this.sessionHandlers.clear();
1059
1052
  this.stateStore.setState({
@@ -1285,71 +1278,17 @@ function createSipClientInstance(options) {
1285
1278
  return new SipClient(options);
1286
1279
  }
1287
1280
  function createSipEventManager(client) {
1288
- const sessionEventNames = /* @__PURE__ */ new Set([
1289
- "peerconnection",
1290
- "connecting",
1291
- "sending",
1292
- "progress",
1293
- "accepted",
1294
- "confirmed",
1295
- "ended",
1296
- "failed",
1297
- "newDTMF",
1298
- "newInfo",
1299
- "hold",
1300
- "unhold",
1301
- "muted",
1302
- "unmuted",
1303
- "reinvite",
1304
- "update",
1305
- "refer",
1306
- "replaces",
1307
- "sdp",
1308
- "icecandidate",
1309
- "getusermediafailed",
1310
- "peerconnection:createofferfailed",
1311
- "peerconnection:createanswerfailed",
1312
- "peerconnection:setlocaldescriptionfailed",
1313
- "peerconnection:setremotedescriptionfailed"
1314
- ]);
1315
1281
  return {
1316
- on(event, handler) {
1282
+ onUA(event, handler) {
1317
1283
  return client.on(event, handler);
1318
1284
  },
1319
1285
  onSession(sessionId, event, handler) {
1320
- if (sessionEventNames.has(String(event))) {
1321
- const session = client.getSession(sessionId);
1322
- if (session) {
1323
- session.on(event, handler);
1324
- return () => session.off(event, handler);
1325
- }
1326
- }
1327
- return client.on(event, (payload) => {
1328
- const id = payload?.session?.id ?? payload?.sessionId ?? payload?.data?.session?.id ?? payload?.data?.id;
1329
- if (id && String(id) === sessionId) {
1330
- handler(payload);
1331
- }
1332
- });
1333
- },
1334
- bind(handlers) {
1335
- const offs = [];
1336
- Object.keys(handlers).forEach((event) => {
1337
- const handler = handlers[event];
1338
- if (handler) {
1339
- offs.push(client.on(event, handler));
1340
- }
1341
- });
1342
- return () => offs.forEach((off) => off());
1343
- },
1344
- bindSession(sessionId, handlers) {
1345
- const offs = [];
1346
- Object.keys(handlers).forEach((event) => {
1347
- const handler = handlers[event];
1348
- if (handler) {
1349
- offs.push(this.onSession(sessionId, event, handler));
1350
- }
1351
- });
1352
- return () => offs.forEach((off) => off());
1286
+ const session = client.getSession(sessionId);
1287
+ if (!session)
1288
+ return () => {
1289
+ };
1290
+ session.on(event, handler);
1291
+ return () => session.off(event, handler);
1353
1292
  }
1354
1293
  };
1355
1294
  }
@@ -1405,7 +1344,7 @@ function useSipEvent(event, handler) {
1405
1344
  useEffect(() => {
1406
1345
  if (!handler)
1407
1346
  return;
1408
- return sipEventManager.on(event, handler);
1347
+ return sipEventManager.onUA(event, handler);
1409
1348
  }, [event, handler, sipEventManager]);
1410
1349
  }
1411
1350
  function useSipSessionEvent(sessionId, event, handler) {