opensips-js 0.1.50 → 0.1.51

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
@@ -497,7 +497,7 @@ export declare interface IOpenSIPSJSOptions {
497
497
  configuration: IOpenSIPSConfiguration
498
498
  socketInterfaces: [ string ]
499
499
  sipDomain: string
500
- sipOptions: {
500
+ sipOptions?: {
501
501
  session_timers: boolean
502
502
  extraHeaders: [ string ]
503
503
  pcConfig: RTCConfiguration_2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensips-js",
3
- "version": "0.1.50",
3
+ "version": "0.1.51",
4
4
  "description": "The JS package for opensips",
5
5
  "default": "src/index.ts",
6
6
  "jsdelivr": "dist/opensips-js.iife.js",
@@ -1,193 +1,193 @@
1
- import { UAEventMap } from 'jssip/lib/UA'
2
-
3
- import {
4
- IMessage,
5
- MSRPSessionExtended,
6
- MSRPConversationState,
7
- MSRPMessageStatus
8
- } from '@/types/msrp'
9
- import { ICall, RoomChangeEmitType, ICallStatus, RTCSessionExtended } from '@/types/rtc'
10
- import MSRPMessage from '@/lib/msrp/message'
11
- import { ITimeData } from '@/types/timer'
12
- import { IncomingMSRPSessionEvent, OutgoingMSRPSessionEvent } from '@/helpers/UA'
13
-
14
- export type MSRPMessageEventType = {
15
- message: MSRPMessage,
16
- session: MSRPSessionExtended
17
- }
18
-
19
- export type ChangeVolumeEventType = {
20
- callId: string
21
- volume: number
22
- }
23
-
24
- export type ConnectionStateChangeType = {
25
- session: RTCSessionExtended,
26
- connectionState: string
27
- }
28
-
29
- export type readyListener = (value: boolean) => void
30
- export type connectionListener = (value: boolean) => void
31
- export type reconnectionListener = (value: boolean) => void
32
- export type reconnectionAttemptsLimitListener = () => void
33
- export type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
34
- export type changeActiveMessagesListener = (event: { [key: string]: IMessage }) => void
35
- export type TestEventListener = (event: { test: string }) => void
36
- export type ActiveRoomListener = (event: number | undefined) => void
37
- export type CallAddingProgressListener = (callId: string | undefined) => void
38
- export type MSRPInitializingListener = (value: boolean) => void
39
- export type RoomDeletedListener = (roomId: number) => void
40
- export type changeActiveInputMediaDeviceListener = (event: string) => void
41
- export type changeActiveOutputMediaDeviceListener = (event: string) => void
42
- export type changeAvailableDeviceListListener = (event: Array<MediaDeviceInfo>) => void
43
- export type changeMuteWhenJoinListener = (value: boolean) => void
44
- export type changeIsDNDListener = (value: boolean) => void
45
- export type changeIsCallWaitingListener = (value: boolean) => void
46
- export type changeIsMutedListener = (value: boolean) => void
47
- export type changeActiveStreamListener = (value: MediaStream) => void
48
- export type addRoomListener = (value: RoomChangeEmitType) => void
49
- export type updateRoomListener = (value: RoomChangeEmitType) => void
50
- export type removeRoomListener = (value: RoomChangeEmitType) => void
51
- export type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
52
- export type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
53
- export type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
54
- export type MSRPMessageListener = (event: MSRPMessageEventType) => void;
55
- export type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
56
- export type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
57
- export type changeCallMetricsListener = (event: { [key: string]: any }) => void
58
- export type changeCallVolumeListener = (event: ChangeVolumeEventType) => void
59
- export type changeNoiseReductionStateListener = (event: boolean) => void
60
- export type connectionStateChangeListener = (event: ConnectionStateChangeType) => void
61
- export type conferenceStartListener = () => void
62
- export type conferenceEndListener = (sessionId) => void
63
- export type changeMainVideoStreamListener = (event: { name: string, event: MediaStream }) => void
64
- export type startScreenShareListener = (event: MediaStream) => void
65
- export type stopScreenShareListener = () => void
66
- export type startBlurListener = () => void
67
- export type stopBlurListener = () => void
68
- export type memberJoinListener = (event: object) => void
69
- export type memberHangupListener = (event: object) => void
70
- export type changeAudioStateListener = (state: boolean) => void
71
- export type changeVideoStateListener = (state: boolean) => void
72
-
73
- /* MSRP event listeners */
74
- export type changeMsrpSessionListener = (session: IMessage | null) => void
75
- export type msrpSyncCompletedListener = (payload: {
76
- conversations: { [key: string]: MSRPConversationState }
77
- messagesByConversation: { [key: string]: any[] }
78
- }) => void
79
- export type msrpConversationCreatedListener = (payload: {
80
- conversation: MSRPConversationState
81
- }) => void
82
- export type msrpConversationRemovedListener = (payload: {
83
- conversation_id?: number
84
- }) => void
85
- export type msrpConversationUpdatedListener = (payload: {
86
- conversation_id?: number
87
- patch: Partial<MSRPConversationState>
88
- }) => void
89
- export type msrpMessageAddedListener = (payload: {
90
- conversation_id?: number
91
- message: any
92
- }) => void
93
- export type msrpReceiptChangedListener = (payload: {
94
- conversation_id?: number
95
- eventId: string
96
- status: MSRPMessageStatus
97
- updatedAt: number
98
- }) => void
99
- export type msrpReactionChangedListener = (payload: {
100
- conversation_id?: number
101
- eventId: string
102
- emoji: string
103
- action: 'add' | 'remove'
104
- sender: string
105
- updatedAt: number
106
- }) => void
107
- export type msrpTypingListener = (payload: {
108
- conversation_id?: number
109
- sender: string
110
- isTyping: boolean
111
- }) => void
112
- export type msrpMessageEditedListener = (payload: {
113
- conversation_id?: number
114
- eventId: string
115
- newContent: any
116
- editEvent: any
117
- updatedAt: number
118
- }) => void
119
- export type msrpMessageDeletedListener = (payload: {
120
- conversation_id?: number
121
- eventId: string
122
- deletedBy: string
123
- updatedAt: number
124
- }) => void
125
- export type msrpPresenceListener = (payload: {
126
- conversation_id?: number
127
- sender: string
128
- presence: string | null
129
- lastActiveAt: number | null
130
- updatedAt: number
131
- }) => void
132
-
133
- export interface OpenSIPSEventMap extends UAEventMap {
134
- ready: readyListener
135
- connection: connectionListener
136
- reconnecting: reconnectionListener
137
- reconnectionAttemptsLimitReached: reconnectionAttemptsLimitListener
138
- // JSSIP
139
- changeActiveCalls: changeActiveCallsListener
140
- changeActiveMessages: changeActiveMessagesListener
141
- callConfirmed: TestEventListener
142
- currentActiveRoomChanged: ActiveRoomListener
143
- callAddingInProgressChanged: CallAddingProgressListener
144
- isMSRPInitializingChanged: MSRPInitializingListener
145
- roomDeleted: RoomDeletedListener
146
- changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
147
- changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
148
- changeAvailableDeviceList: changeAvailableDeviceListListener
149
- changeMuteWhenJoin: changeMuteWhenJoinListener
150
- changeIsDND: changeIsDNDListener
151
- changeIsCallWaiting: changeIsCallWaitingListener
152
- changeIsMuted: changeIsMutedListener
153
- changeActiveStream: changeActiveStreamListener
154
- addRoom: addRoomListener
155
- updateRoom: updateRoomListener
156
- removeRoom: removeRoomListener
157
- changeCallStatus: changeCallStatusListener
158
- changeCallTime: changeCallTimeListener
159
- changeCallMetrics: changeCallMetricsListener
160
- changeCallVolume: changeCallVolumeListener
161
- changeNoiseReductionState: changeNoiseReductionStateListener
162
- connectionStateChange: connectionStateChangeListener
163
- newMSRPMessage: MSRPMessageListener
164
- newMSRPSession: MSRPSessionListener
165
- // MSRP events listeners
166
- changeMsrpSession: changeMsrpSessionListener
167
- msrpSyncCompleted: msrpSyncCompletedListener
168
- msrpConversationCreated: msrpConversationCreatedListener
169
- msrpConversationRemoved: msrpConversationRemovedListener
170
- msrpConversationUpdated: msrpConversationUpdatedListener
171
- msrpMessageAdded: msrpMessageAddedListener
172
- msrpReceiptChanged: msrpReceiptChangedListener
173
- msrpReactionChanged: msrpReactionChangedListener
174
- msrpTyping: msrpTypingListener
175
- msrpMessageEdited: msrpMessageEditedListener
176
- msrpMessageDeleted: msrpMessageDeletedListener
177
- msrpPresence: msrpPresenceListener
178
- // JANUS
179
- conferenceStart: conferenceStartListener
180
- conferenceEnd: conferenceEndListener
181
- startScreenShare: startScreenShareListener
182
- stopScreenShare: stopScreenShareListener
183
- startBlur: startBlurListener
184
- stopBlur: stopBlurListener
185
- memberJoin: memberJoinListener
186
- memberHangup: memberHangupListener
187
- changeAudioState: changeAudioStateListener
188
- changeVideoState: changeVideoStateListener
189
- }
190
-
191
- export type ListenersKeyType = keyof OpenSIPSEventMap
192
- export type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
193
- export type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
1
+ import { UAEventMap } from 'jssip/lib/UA'
2
+
3
+ import {
4
+ IMessage,
5
+ MSRPSessionExtended,
6
+ MSRPConversationState,
7
+ MSRPMessageStatus
8
+ } from '@/types/msrp'
9
+ import { ICall, RoomChangeEmitType, ICallStatus, RTCSessionExtended } from '@/types/rtc'
10
+ import MSRPMessage from '@/lib/msrp/message'
11
+ import { ITimeData } from '@/types/timer'
12
+ import { IncomingMSRPSessionEvent, OutgoingMSRPSessionEvent } from '@/helpers/UA'
13
+
14
+ export type MSRPMessageEventType = {
15
+ message: MSRPMessage,
16
+ session: MSRPSessionExtended
17
+ }
18
+
19
+ export type ChangeVolumeEventType = {
20
+ callId: string
21
+ volume: number
22
+ }
23
+
24
+ export type ConnectionStateChangeType = {
25
+ session: RTCSessionExtended,
26
+ connectionState: string
27
+ }
28
+
29
+ export type readyListener = (value: boolean) => void
30
+ export type connectionListener = (value: boolean) => void
31
+ export type reconnectionListener = (value: boolean) => void
32
+ export type reconnectionAttemptsLimitListener = () => void
33
+ export type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
34
+ export type changeActiveMessagesListener = (event: { [key: string]: IMessage }) => void
35
+ export type TestEventListener = (event: { test: string }) => void
36
+ export type ActiveRoomListener = (event: number | undefined) => void
37
+ export type CallAddingProgressListener = (callId: string | undefined) => void
38
+ export type MSRPInitializingListener = (value: boolean) => void
39
+ export type RoomDeletedListener = (roomId: number) => void
40
+ export type changeActiveInputMediaDeviceListener = (event: string) => void
41
+ export type changeActiveOutputMediaDeviceListener = (event: string) => void
42
+ export type changeAvailableDeviceListListener = (event: Array<MediaDeviceInfo>) => void
43
+ export type changeMuteWhenJoinListener = (value: boolean) => void
44
+ export type changeIsDNDListener = (value: boolean) => void
45
+ export type changeIsCallWaitingListener = (value: boolean) => void
46
+ export type changeIsMutedListener = (value: boolean) => void
47
+ export type changeActiveStreamListener = (value: MediaStream) => void
48
+ export type addRoomListener = (value: RoomChangeEmitType) => void
49
+ export type updateRoomListener = (value: RoomChangeEmitType) => void
50
+ export type removeRoomListener = (value: RoomChangeEmitType) => void
51
+ export type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
52
+ export type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
53
+ export type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
54
+ export type MSRPMessageListener = (event: MSRPMessageEventType) => void;
55
+ export type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
56
+ export type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
57
+ export type changeCallMetricsListener = (event: { [key: string]: any }) => void
58
+ export type changeCallVolumeListener = (event: ChangeVolumeEventType) => void
59
+ export type changeNoiseReductionStateListener = (event: boolean) => void
60
+ export type connectionStateChangeListener = (event: ConnectionStateChangeType) => void
61
+ export type conferenceStartListener = () => void
62
+ export type conferenceEndListener = (sessionId) => void
63
+ export type changeMainVideoStreamListener = (event: { name: string, event: MediaStream }) => void
64
+ export type startScreenShareListener = (event: MediaStream) => void
65
+ export type stopScreenShareListener = () => void
66
+ export type startBlurListener = () => void
67
+ export type stopBlurListener = () => void
68
+ export type memberJoinListener = (event: object) => void
69
+ export type memberHangupListener = (event: object) => void
70
+ export type changeAudioStateListener = (state: boolean) => void
71
+ export type changeVideoStateListener = (state: boolean) => void
72
+
73
+ /* MSRP event listeners */
74
+ export type changeMsrpSessionListener = (session: IMessage | null) => void
75
+ export type msrpSyncCompletedListener = (payload: {
76
+ conversations: { [key: string]: MSRPConversationState }
77
+ messagesByConversation: { [key: string]: any[] }
78
+ }) => void
79
+ export type msrpConversationCreatedListener = (payload: {
80
+ conversation: MSRPConversationState
81
+ }) => void
82
+ export type msrpConversationRemovedListener = (payload: {
83
+ conversation_id?: number
84
+ }) => void
85
+ export type msrpConversationUpdatedListener = (payload: {
86
+ conversation_id?: number
87
+ patch: Partial<MSRPConversationState>
88
+ }) => void
89
+ export type msrpMessageAddedListener = (payload: {
90
+ conversation_id?: number
91
+ message: any
92
+ }) => void
93
+ export type msrpReceiptChangedListener = (payload: {
94
+ conversation_id?: number
95
+ eventId: string
96
+ status: MSRPMessageStatus
97
+ updatedAt: number
98
+ }) => void
99
+ export type msrpReactionChangedListener = (payload: {
100
+ conversation_id?: number
101
+ eventId: string
102
+ emoji: string
103
+ action: 'add' | 'remove'
104
+ sender: string
105
+ updatedAt: number
106
+ }) => void
107
+ export type msrpTypingListener = (payload: {
108
+ conversation_id?: number
109
+ sender: string
110
+ isTyping: boolean
111
+ }) => void
112
+ export type msrpMessageEditedListener = (payload: {
113
+ conversation_id?: number
114
+ eventId: string
115
+ newContent: any
116
+ editEvent: any
117
+ updatedAt: number
118
+ }) => void
119
+ export type msrpMessageDeletedListener = (payload: {
120
+ conversation_id?: number
121
+ eventId: string
122
+ deletedBy: string
123
+ updatedAt: number
124
+ }) => void
125
+ export type msrpPresenceListener = (payload: {
126
+ conversation_id?: number
127
+ sender: string
128
+ presence: string | null
129
+ lastActiveAt: number | null
130
+ updatedAt: number
131
+ }) => void
132
+
133
+ export interface OpenSIPSEventMap extends UAEventMap {
134
+ ready: readyListener
135
+ connection: connectionListener
136
+ reconnecting: reconnectionListener
137
+ reconnectionAttemptsLimitReached: reconnectionAttemptsLimitListener
138
+ // JSSIP
139
+ changeActiveCalls: changeActiveCallsListener
140
+ changeActiveMessages: changeActiveMessagesListener
141
+ callConfirmed: TestEventListener
142
+ currentActiveRoomChanged: ActiveRoomListener
143
+ callAddingInProgressChanged: CallAddingProgressListener
144
+ isMSRPInitializingChanged: MSRPInitializingListener
145
+ roomDeleted: RoomDeletedListener
146
+ changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
147
+ changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
148
+ changeAvailableDeviceList: changeAvailableDeviceListListener
149
+ changeMuteWhenJoin: changeMuteWhenJoinListener
150
+ changeIsDND: changeIsDNDListener
151
+ changeIsCallWaiting: changeIsCallWaitingListener
152
+ changeIsMuted: changeIsMutedListener
153
+ changeActiveStream: changeActiveStreamListener
154
+ addRoom: addRoomListener
155
+ updateRoom: updateRoomListener
156
+ removeRoom: removeRoomListener
157
+ changeCallStatus: changeCallStatusListener
158
+ changeCallTime: changeCallTimeListener
159
+ changeCallMetrics: changeCallMetricsListener
160
+ changeCallVolume: changeCallVolumeListener
161
+ changeNoiseReductionState: changeNoiseReductionStateListener
162
+ connectionStateChange: connectionStateChangeListener
163
+ newMSRPMessage: MSRPMessageListener
164
+ newMSRPSession: MSRPSessionListener
165
+ // MSRP events listeners
166
+ changeMsrpSession: changeMsrpSessionListener
167
+ msrpSyncCompleted: msrpSyncCompletedListener
168
+ msrpConversationCreated: msrpConversationCreatedListener
169
+ msrpConversationRemoved: msrpConversationRemovedListener
170
+ msrpConversationUpdated: msrpConversationUpdatedListener
171
+ msrpMessageAdded: msrpMessageAddedListener
172
+ msrpReceiptChanged: msrpReceiptChangedListener
173
+ msrpReactionChanged: msrpReactionChangedListener
174
+ msrpTyping: msrpTypingListener
175
+ msrpMessageEdited: msrpMessageEditedListener
176
+ msrpMessageDeleted: msrpMessageDeletedListener
177
+ msrpPresence: msrpPresenceListener
178
+ // JANUS
179
+ conferenceStart: conferenceStartListener
180
+ conferenceEnd: conferenceEndListener
181
+ startScreenShare: startScreenShareListener
182
+ stopScreenShare: stopScreenShareListener
183
+ startBlur: startBlurListener
184
+ stopBlur: stopBlurListener
185
+ memberJoin: memberJoinListener
186
+ memberHangup: memberHangupListener
187
+ changeAudioState: changeAudioStateListener
188
+ changeVideoState: changeVideoStateListener
189
+ }
190
+
191
+ export type ListenersKeyType = keyof OpenSIPSEventMap
192
+ export type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
193
+ export type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
@@ -1,103 +1,103 @@
1
- import {
2
- MSRPSession,
3
- MSRPSessionEventMap
4
- } from '@/lib/msrp/session'
5
- import { EndEvent,
6
- IncomingAckEvent,
7
- IncomingEvent,
8
- OutgoingAckEvent,
9
- OutgoingEvent,
10
- SessionDirection } from 'jssip/lib/RTCSession'
11
-
12
- import { StreamMediaType } from '@/types/rtc'
13
- import MSRPMessage from '@/lib/msrp/message'
14
-
15
- export { MSRPMessage }
16
-
17
- export type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
18
-
19
- export interface IMessage extends MSRPSessionExtended {
20
- roomId?: number
21
- localMuted?: boolean
22
- localHold?: boolean
23
- audioTag?: StreamMediaType
24
- terminate(): void
25
- }
26
-
27
-
28
- export interface MSRPSessionExtended extends MSRPSession {
29
- id: string
30
- status: string
31
- start_time: Date
32
- direction: SessionDirection
33
- _id: string
34
- _cancel_reason: string
35
- _contact: string
36
- _end_time: Date
37
- _eventsCount: number
38
- _from_tag: string
39
- _is_canceled: boolean
40
- _is_confirmed: boolean
41
- _late_sdp: string
42
- _status: number
43
- _remote_identity: string
44
- target_addr: Array<string>
45
- answer(options?: any): void
46
- _init_incomeing(): void
47
- sendMSRP(body: string): void
48
- on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
49
- }
50
-
51
- export interface TriggerMSRPListenerOptions {
52
- listenerType: string
53
- session: MSRPSessionExtended
54
- event?: ListenerEventType
55
- }
56
-
57
- /* ---------- MSRP conversation shape types (backend v3 - June 2026) ----------
58
- * These are the public data structures produced by MSRPModule at runtime and
59
- * consumed by external subscribers (Vue wrappers, tests, etc.). Kept in this
60
- * shipped `src/types/` file so they resolve cleanly for consumers without
61
- * needing internal module paths.
62
- */
63
-
64
- export type MSRPMemberRole = 'in_charge' | 'manager' | 'assigned'
65
- export type MSRPMembership = 'join' | 'leave' | 'invite' | 'ban'
66
- export type MSRPMessageStatus = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
67
-
68
- export interface MSRPConversationState {
69
- /**
70
- * Public, stable numeric conversation identifier assigned by the backend.
71
- * This is the only identifier exposed to application code — conversations
72
- * are addressed exclusively by `conversation_id`.
73
- */
74
- conversation_id?: number
75
- creator: string | null
76
- members: Set<string>
77
- memberRoles: Map<string, MSRPMemberRole>
78
- currentUserRole: MSRPMemberRole
79
- currentUserStatus: MSRPMembership | null
80
- /**
81
- * Per-user read pointer (backend `last_read_message_id` in the current
82
- * user's member state). `null` means the whole conversation is unread;
83
- * an event_id means everything after that event is unread. Consumers
84
- * derive the unread count from this pointer + the local timeline.
85
- */
86
- currentUserLastReadMessageId?: string | null
87
- state_events: { [key: string]: { [stateKey: string]: any } }
88
- created_at: number
89
- updated_at: number
90
- status?: string
91
- }
92
-
93
- export interface MSRPUploadResult {
94
- upload_url: string
95
- expires_in?: number
96
- mime_type: string
97
- request_id: string
98
- filename?: string
99
- preview_url?: string
100
- icon_url?: string
101
- transcription?: string
102
- media_type?: string
103
- }
1
+ import {
2
+ MSRPSession,
3
+ MSRPSessionEventMap
4
+ } from '@/lib/msrp/session'
5
+ import { EndEvent,
6
+ IncomingAckEvent,
7
+ IncomingEvent,
8
+ OutgoingAckEvent,
9
+ OutgoingEvent,
10
+ SessionDirection } from 'jssip/lib/RTCSession'
11
+
12
+ import { StreamMediaType } from '@/types/rtc'
13
+ import MSRPMessage from '@/lib/msrp/message'
14
+
15
+ export { MSRPMessage }
16
+
17
+ export type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
18
+
19
+ export interface IMessage extends MSRPSessionExtended {
20
+ roomId?: number
21
+ localMuted?: boolean
22
+ localHold?: boolean
23
+ audioTag?: StreamMediaType
24
+ terminate(): void
25
+ }
26
+
27
+
28
+ export interface MSRPSessionExtended extends MSRPSession {
29
+ id: string
30
+ status: string
31
+ start_time: Date
32
+ direction: SessionDirection
33
+ _id: string
34
+ _cancel_reason: string
35
+ _contact: string
36
+ _end_time: Date
37
+ _eventsCount: number
38
+ _from_tag: string
39
+ _is_canceled: boolean
40
+ _is_confirmed: boolean
41
+ _late_sdp: string
42
+ _status: number
43
+ _remote_identity: string
44
+ target_addr: Array<string>
45
+ answer(options?: any): void
46
+ _init_incomeing(): void
47
+ sendMSRP(body: string): void
48
+ on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
49
+ }
50
+
51
+ export interface TriggerMSRPListenerOptions {
52
+ listenerType: string
53
+ session: MSRPSessionExtended
54
+ event?: ListenerEventType
55
+ }
56
+
57
+ /* ---------- MSRP conversation shape types (backend v3 - June 2026) ----------
58
+ * These are the public data structures produced by MSRPModule at runtime and
59
+ * consumed by external subscribers (Vue wrappers, tests, etc.). Kept in this
60
+ * shipped `src/types/` file so they resolve cleanly for consumers without
61
+ * needing internal module paths.
62
+ */
63
+
64
+ export type MSRPMemberRole = 'in_charge' | 'manager' | 'assigned'
65
+ export type MSRPMembership = 'join' | 'leave' | 'invite' | 'ban'
66
+ export type MSRPMessageStatus = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
67
+
68
+ export interface MSRPConversationState {
69
+ /**
70
+ * Public, stable numeric conversation identifier assigned by the backend.
71
+ * This is the only identifier exposed to application code — conversations
72
+ * are addressed exclusively by `conversation_id`.
73
+ */
74
+ conversation_id?: number
75
+ creator: string | null
76
+ members: Set<string>
77
+ memberRoles: Map<string, MSRPMemberRole>
78
+ currentUserRole: MSRPMemberRole
79
+ currentUserStatus: MSRPMembership | null
80
+ /**
81
+ * Per-user read pointer (backend `last_read_message_id` in the current
82
+ * user's member state). `null` means the whole conversation is unread;
83
+ * an event_id means everything after that event is unread. Consumers
84
+ * derive the unread count from this pointer + the local timeline.
85
+ */
86
+ currentUserLastReadMessageId?: string | null
87
+ state_events: { [key: string]: { [stateKey: string]: any } }
88
+ created_at: number
89
+ updated_at: number
90
+ status?: string
91
+ }
92
+
93
+ export interface MSRPUploadResult {
94
+ upload_url: string
95
+ expires_in?: number
96
+ mime_type: string
97
+ request_id: string
98
+ filename?: string
99
+ preview_url?: string
100
+ icon_url?: string
101
+ transcription?: string
102
+ media_type?: string
103
+ }
@@ -26,6 +26,14 @@ export type RTCBundlePolicy = 'balanced' | 'max-bundle' | 'max-compat'
26
26
  export type RTCIceTransportPolicy = 'all' | 'relay'
27
27
  export type RTCRtcpMuxPolicy = 'require'
28
28
 
29
+ const aaaaa: UAConfiguration = {
30
+ session_timers: true,
31
+ session_expires: 90,
32
+ register_expires: 60,
33
+ session_timers_refresh_method: 'UPDATE',
34
+ session_timers_force_refresher: true, // client is always the refresher → keep-alive works
35
+ }
36
+
29
37
  export interface RTCIceServer {
30
38
  credential?: string;
31
39
  urls: string | string[];
@@ -193,7 +201,7 @@ export interface IOpenSIPSJSOptions {
193
201
  configuration: IOpenSIPSConfiguration
194
202
  socketInterfaces: [ string ]
195
203
  sipDomain: string
196
- sipOptions: {
204
+ sipOptions?: {
197
205
  session_timers: boolean
198
206
  extraHeaders: [ string ]
199
207
  pcConfig: RTCConfiguration