opensips-js 0.1.48 → 0.1.49
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 +157 -35
- package/dist/opensips-js.cjs.js +60 -60
- package/dist/opensips-js.es.js +4145 -3904
- package/dist/opensips-js.iife.js +72 -72
- package/dist/opensips-js.umd.js +69 -69
- package/package.json +1 -1
- package/src/types/listeners.d.ts +193 -169
- package/src/types/msrp.d.ts +103 -91
package/package.json
CHANGED
package/src/types/listeners.d.ts
CHANGED
|
@@ -1,169 +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 = (
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
export
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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]
|
package/src/types/msrp.d.ts
CHANGED
|
@@ -1,91 +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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
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
|
+
}
|