opensips-js-vue 0.1.40 → 0.1.42
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/library/index.d.ts +687 -116
- package/library/super.mjs +9596 -8383
- package/library/super.mjs.map +1 -1
- package/library/super.umd.js +688 -688
- package/library/super.umd.js.map +1 -1
- package/package.json +2 -2
package/library/index.d.ts
CHANGED
|
@@ -1,108 +1,123 @@
|
|
|
1
1
|
import { AnswerOptions } from 'jssip/lib/RTCSession';
|
|
2
|
+
import { CallListener } from 'jssip/lib/RTCSession';
|
|
2
3
|
import type { ComputedRef } from 'vue';
|
|
4
|
+
import { ConfirmedListener } from 'jssip/lib/RTCSession';
|
|
5
|
+
import { ConnectingListener } from 'jssip/lib/RTCSession';
|
|
6
|
+
import { DTMFListener } from 'jssip/lib/RTCSession';
|
|
3
7
|
import { EndEvent } from 'jssip/lib/RTCSession';
|
|
8
|
+
import { EndListener } from 'jssip/lib/RTCSession';
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
4
10
|
import { ExtraContactParams } from 'jssip/lib/Registrator';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { IMessage as IMessage_2 } from '@/types/msrp';
|
|
11
|
+
import { HoldListener } from 'jssip/lib/RTCSession';
|
|
12
|
+
import { IceCandidateListener } from 'jssip/lib/RTCSession';
|
|
8
13
|
import { IncomingAckEvent } from 'jssip/lib/RTCSession';
|
|
9
14
|
import { IncomingEvent } from 'jssip/lib/RTCSession';
|
|
10
|
-
import { IncomingMSRPSessionEvent } from '@/helpers/UA';
|
|
11
15
|
import { IncomingRequest } from 'jssip/lib/SIPMessage';
|
|
12
|
-
import {
|
|
16
|
+
import { InfoListener } from 'jssip/lib/RTCSession';
|
|
13
17
|
import { MediaConstraints } from 'jssip/lib/RTCSession';
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
import { MSRPSessionEventMap } from '@/lib/msrp/session';
|
|
18
|
-
import { MSRPSessionExtended as MSRPSessionExtended_2 } from '@/types/msrp';
|
|
18
|
+
import { MuteListener } from 'jssip/lib/RTCSession';
|
|
19
|
+
import { OnHoldResult } from 'jssip/lib/RTCSession';
|
|
20
|
+
import { Originator } from 'jssip/lib/RTCSession';
|
|
19
21
|
import { OutgoingAckEvent } from 'jssip/lib/RTCSession';
|
|
20
22
|
import { OutgoingEvent } from 'jssip/lib/RTCSession';
|
|
21
|
-
import {
|
|
23
|
+
import { PeerConnectionListener } from 'jssip/lib/RTCSession';
|
|
22
24
|
import type { Ref } from 'vue';
|
|
23
|
-
import {
|
|
25
|
+
import { ReferListener } from 'jssip/lib/RTCSession';
|
|
26
|
+
import { ReInviteListener } from 'jssip/lib/RTCSession';
|
|
27
|
+
import { RTCPeerConnectionDeprecated } from 'jssip/lib/RTCSession';
|
|
24
28
|
import { RTCSession } from 'jssip/lib/RTCSession';
|
|
25
29
|
import { RTCSessionEventMap } from 'jssip/lib/RTCSession';
|
|
26
|
-
import {
|
|
30
|
+
import { SDPListener } from 'jssip/lib/RTCSession';
|
|
31
|
+
import { SendingListener } from 'jssip/lib/RTCSession';
|
|
27
32
|
import { SessionDirection } from 'jssip/lib/RTCSession';
|
|
28
|
-
import {
|
|
33
|
+
import { UA } from 'jssip';
|
|
29
34
|
import { UAConfiguration } from 'jssip/lib/UA';
|
|
30
35
|
import { UAEventMap } from 'jssip/lib/UA';
|
|
36
|
+
import { UpdateListener } from 'jssip/lib/RTCSession';
|
|
31
37
|
|
|
32
|
-
|
|
38
|
+
declare type ActiveRoomListener = (event: number | undefined) => void
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
declare type addRoomListener = (value: RoomChangeEmitType) => void
|
|
35
41
|
|
|
36
|
-
|
|
42
|
+
declare interface AnswerOptionsExtended extends AnswerOptions {
|
|
37
43
|
mediaConstraints?: MediaConstraints | ExactConstraints
|
|
38
44
|
}
|
|
39
45
|
|
|
40
|
-
|
|
46
|
+
declare interface AnswerOptionsExtended_2 extends AnswerOptions {
|
|
47
|
+
mediaConstraints?: MediaConstraints | ExactConstraints_2
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
declare type AudioModuleName = typeof MODULES.AUDIO
|
|
41
51
|
|
|
42
|
-
|
|
52
|
+
declare type CallAddingProgressListener = (callId: string | undefined) => void
|
|
43
53
|
|
|
44
|
-
|
|
54
|
+
declare interface CallOptionsExtended extends AnswerOptionsExtended {
|
|
45
55
|
eventHandlers?: Partial<RTCSessionEventMap>;
|
|
46
56
|
anonymous?: boolean;
|
|
47
57
|
fromUserName?: string;
|
|
48
58
|
fromDisplayName?: string;
|
|
49
59
|
}
|
|
50
60
|
|
|
51
|
-
|
|
61
|
+
declare interface CallOptionsExtended_2 extends AnswerOptionsExtended_2 {
|
|
62
|
+
eventHandlers?: Partial<RTCSessionEventMap>;
|
|
63
|
+
anonymous?: boolean;
|
|
64
|
+
fromUserName?: string;
|
|
65
|
+
fromDisplayName?: string;
|
|
66
|
+
}
|
|
52
67
|
|
|
53
|
-
|
|
68
|
+
declare type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
|
|
54
69
|
|
|
55
|
-
|
|
70
|
+
declare type changeActiveInputMediaDeviceListener = (event: string) => void
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
declare type changeActiveMessagesListener = (event: { [key: string]: IMessage_2 }) => void
|
|
58
73
|
|
|
59
|
-
|
|
74
|
+
declare type changeActiveOutputMediaDeviceListener = (event: string) => void
|
|
60
75
|
|
|
61
|
-
|
|
76
|
+
declare type changeActiveStreamListener = (value: MediaStream) => void
|
|
62
77
|
|
|
63
|
-
|
|
78
|
+
declare type changeAudioStateListener = (state: boolean) => void
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
declare type changeAvailableDeviceListListener = (event: Array<MediaDeviceInfo>) => void
|
|
66
81
|
|
|
67
|
-
|
|
82
|
+
declare type changeCallMetricsListener = (event: { [key: string]: any }) => void
|
|
68
83
|
|
|
69
|
-
|
|
84
|
+
declare type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
|
|
70
85
|
|
|
71
|
-
|
|
86
|
+
declare type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
|
|
72
87
|
|
|
73
|
-
|
|
88
|
+
declare type changeCallVolumeListener = (event: ChangeVolumeEventType) => void
|
|
74
89
|
|
|
75
|
-
|
|
90
|
+
declare type changeIsCallWaitingListener = (value: boolean) => void
|
|
76
91
|
|
|
77
|
-
|
|
92
|
+
declare type changeIsDNDListener = (value: boolean) => void
|
|
78
93
|
|
|
79
|
-
|
|
94
|
+
declare type changeIsMutedListener = (value: boolean) => void
|
|
80
95
|
|
|
81
|
-
|
|
96
|
+
declare type changeMsrpSessionListener = (session: IMessage_2 | null) => void
|
|
82
97
|
|
|
83
|
-
|
|
98
|
+
declare type changeMuteWhenJoinListener = (value: boolean) => void
|
|
84
99
|
|
|
85
|
-
|
|
100
|
+
declare type changeNoiseReductionStateListener = (event: boolean) => void
|
|
86
101
|
|
|
87
|
-
|
|
102
|
+
declare type changeVideoStateListener = (state: boolean) => void
|
|
88
103
|
|
|
89
104
|
export declare type ChangeVolumeEventType = {
|
|
90
105
|
callId: string
|
|
91
106
|
volume: number
|
|
92
107
|
}
|
|
93
108
|
|
|
94
|
-
|
|
109
|
+
declare type CommonLogMethodType = (...args: unknown[]) => void
|
|
95
110
|
|
|
96
|
-
|
|
111
|
+
declare type conferenceEndListener = (sessionId) => void
|
|
97
112
|
|
|
98
|
-
|
|
113
|
+
declare type conferenceStartListener = () => void
|
|
99
114
|
|
|
100
|
-
|
|
115
|
+
declare type connectionListener = (value: boolean) => void
|
|
101
116
|
|
|
102
|
-
|
|
117
|
+
declare type connectionStateChangeListener = (event: ConnectionStateChangeType) => void
|
|
103
118
|
|
|
104
119
|
export declare type ConnectionStateChangeType = {
|
|
105
|
-
session:
|
|
120
|
+
session: RTCSessionExtended,
|
|
106
121
|
connectionState: string
|
|
107
122
|
}
|
|
108
123
|
|
|
@@ -113,7 +128,14 @@ export declare interface CustomLoggerType {
|
|
|
113
128
|
debug: CommonLogMethodType
|
|
114
129
|
}
|
|
115
130
|
|
|
116
|
-
|
|
131
|
+
declare type ExactConstraints = {
|
|
132
|
+
audio?: {
|
|
133
|
+
deviceId: {exact: string}
|
|
134
|
+
}
|
|
135
|
+
video?: boolean;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
declare type ExactConstraints_2 = {
|
|
117
139
|
audio?: {
|
|
118
140
|
deviceId: {exact: string}
|
|
119
141
|
}
|
|
@@ -136,15 +158,15 @@ export declare interface ICallStatus {
|
|
|
136
158
|
isTransferred: boolean
|
|
137
159
|
}
|
|
138
160
|
|
|
139
|
-
export declare interface
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
161
|
+
export declare interface IMessage extends MSRPSessionExtended {
|
|
162
|
+
roomId?: number
|
|
163
|
+
localMuted?: boolean
|
|
164
|
+
localHold?: boolean
|
|
165
|
+
audioTag?: StreamMediaType
|
|
166
|
+
terminate(): void
|
|
145
167
|
}
|
|
146
168
|
|
|
147
|
-
declare interface
|
|
169
|
+
declare interface IMessage_2 extends MSRPSessionExtended_2 {
|
|
148
170
|
roomId?: number
|
|
149
171
|
localMuted?: boolean
|
|
150
172
|
localHold?: boolean
|
|
@@ -152,14 +174,18 @@ declare interface IMessage extends MSRPSessionExtended {
|
|
|
152
174
|
terminate(): void
|
|
153
175
|
}
|
|
154
176
|
|
|
155
|
-
|
|
177
|
+
declare interface IncomingMSRPSessionEvent {
|
|
178
|
+
originator: Originator.REMOTE;
|
|
179
|
+
session: MSRPSession;
|
|
180
|
+
request: IncomingRequest;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
declare type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
|
|
156
184
|
|
|
157
185
|
declare type InitOpensipsConfiguration = Omit<IOpenSIPSConfiguration, 'uri' | 'session_timers' | 'password' | 'noiseReductionOptions'> & {
|
|
158
186
|
noiseReductionOptions?: NoiseReductionOptionsWithoutVadModule
|
|
159
187
|
}
|
|
160
188
|
|
|
161
|
-
export declare type IntervalType = ReturnType<typeof setInterval>
|
|
162
|
-
|
|
163
189
|
export declare type IOpenSIPSConfiguration = Omit<UAConfigurationExtended, 'sockets'>
|
|
164
190
|
|
|
165
191
|
export declare interface IOpenSIPSJSOptions {
|
|
@@ -183,10 +209,6 @@ export declare interface IRoom {
|
|
|
183
209
|
roomId: number
|
|
184
210
|
}
|
|
185
211
|
|
|
186
|
-
export declare type IRoomUpdate = Omit<IRoom, 'started'> & {
|
|
187
|
-
started?: Date
|
|
188
|
-
}
|
|
189
|
-
|
|
190
212
|
export declare interface ITimeData {
|
|
191
213
|
callId: string
|
|
192
214
|
hours: number
|
|
@@ -195,38 +217,385 @@ export declare interface ITimeData {
|
|
|
195
217
|
formatted: string
|
|
196
218
|
}
|
|
197
219
|
|
|
220
|
+
declare type Listener = (event: unknown) => void
|
|
221
|
+
|
|
222
|
+
declare type Listener_3 = (event: unknown) => void
|
|
223
|
+
|
|
198
224
|
export declare type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
|
|
199
225
|
|
|
200
226
|
export declare type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
|
|
201
227
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
export declare type ListenersKeyType = keyof OpenSIPSEventMap
|
|
228
|
+
declare type ListenersKeyType = keyof OpenSIPSEventMap
|
|
205
229
|
|
|
206
230
|
declare type MediaDeviceOption = Omit<MediaDeviceInfo, 'toJSON'>
|
|
207
231
|
|
|
208
|
-
|
|
209
|
-
|
|
232
|
+
declare type memberHangupListener = (event: object) => void
|
|
233
|
+
|
|
234
|
+
declare type memberJoinListener = (event: object) => void
|
|
235
|
+
|
|
236
|
+
declare const MODULES: {
|
|
237
|
+
readonly AUDIO: "audio";
|
|
238
|
+
readonly VIDEO: "video";
|
|
239
|
+
readonly MSRP: "msrp";
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
declare type Modules = AudioModuleName | VideoModuleName | MSRPModuleName
|
|
243
|
+
|
|
244
|
+
export declare const MSRP_EVT: {
|
|
245
|
+
readonly CREATE: "m.conversation.create";
|
|
246
|
+
readonly MESSAGE: "m.conversation.message";
|
|
247
|
+
readonly MEMBER: "m.conversation.member";
|
|
248
|
+
readonly CLOSED: "m.conversation.closed";
|
|
249
|
+
readonly REOPEN: "m.conversation.reopen";
|
|
250
|
+
readonly DELETE: "m.conversation.delete";
|
|
251
|
+
readonly SYNC: "m.sync";
|
|
252
|
+
readonly UPLOAD_REQUEST: "m.upload.request";
|
|
253
|
+
readonly UPLOAD_RESPONSE: "m.upload.response";
|
|
254
|
+
readonly FILE_ACCESS_REQUEST: "m.file.access.request";
|
|
255
|
+
readonly FILE_ACCESS_RESPONSE: "m.file.access.response";
|
|
256
|
+
readonly REACTION: "m.reaction";
|
|
257
|
+
readonly TYPING: "m.typing";
|
|
258
|
+
readonly PRESENCE: "m.presence";
|
|
259
|
+
readonly SENT: "m.sent";
|
|
260
|
+
readonly DELIVERED: "m.delivered";
|
|
261
|
+
readonly READ: "m.read";
|
|
262
|
+
readonly UNREAD: "m.unread";
|
|
263
|
+
readonly FAILED: "m.failed";
|
|
264
|
+
readonly SENDING: "m.sending";
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
declare type msrpConversationCreatedListener = (payload: {
|
|
268
|
+
conversation: MSRPConversationState_2
|
|
269
|
+
}) => void
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* A conversation is addressed exclusively by its public numeric
|
|
273
|
+
* `conversation_id`. A stringified id is also accepted for convenience.
|
|
274
|
+
*/
|
|
275
|
+
export declare type MSRPConversationRef = number | string;
|
|
276
|
+
|
|
277
|
+
declare type msrpConversationRemovedListener = (payload: {
|
|
278
|
+
conversation_id?: number
|
|
279
|
+
}) => void
|
|
280
|
+
|
|
281
|
+
export declare interface MSRPConversationState {
|
|
282
|
+
/**
|
|
283
|
+
* Public, stable numeric conversation identifier assigned by the backend.
|
|
284
|
+
* This is the only identifier exposed to application code — conversations
|
|
285
|
+
* are addressed exclusively by `conversation_id`.
|
|
286
|
+
*/
|
|
287
|
+
conversation_id?: number
|
|
288
|
+
creator: string | null
|
|
289
|
+
members: Set<string>
|
|
290
|
+
memberRoles: Map<string, MSRPMemberRole>
|
|
291
|
+
currentUserRole: MSRPMemberRole
|
|
292
|
+
currentUserStatus: MSRPMembership | null
|
|
293
|
+
/**
|
|
294
|
+
* Per-user read pointer (backend `last_read_message_id` in the current
|
|
295
|
+
* user's member state). `null` means the whole conversation is unread;
|
|
296
|
+
* an event_id means everything after that event is unread. Consumers
|
|
297
|
+
* derive the unread count from this pointer + the local timeline.
|
|
298
|
+
*/
|
|
299
|
+
currentUserLastReadMessageId?: string | null
|
|
300
|
+
state_events: { [key: string]: { [stateKey: string]: any } }
|
|
301
|
+
created_at: number
|
|
302
|
+
updated_at: number
|
|
303
|
+
status?: string
|
|
210
304
|
}
|
|
211
305
|
|
|
212
|
-
|
|
306
|
+
declare interface MSRPConversationState_2 {
|
|
307
|
+
/**
|
|
308
|
+
* Public, stable numeric conversation identifier assigned by the backend.
|
|
309
|
+
* This is the only identifier exposed to application code — conversations
|
|
310
|
+
* are addressed exclusively by `conversation_id`.
|
|
311
|
+
*/
|
|
312
|
+
conversation_id?: number
|
|
313
|
+
creator: string | null
|
|
314
|
+
members: Set<string>
|
|
315
|
+
memberRoles: Map<string, MSRPMemberRole_2>
|
|
316
|
+
currentUserRole: MSRPMemberRole_2
|
|
317
|
+
currentUserStatus: MSRPMembership_2 | null
|
|
318
|
+
/**
|
|
319
|
+
* Per-user read pointer (backend `last_read_message_id` in the current
|
|
320
|
+
* user's member state). `null` means the whole conversation is unread;
|
|
321
|
+
* an event_id means everything after that event is unread. Consumers
|
|
322
|
+
* derive the unread count from this pointer + the local timeline.
|
|
323
|
+
*/
|
|
324
|
+
currentUserLastReadMessageId?: string | null
|
|
325
|
+
state_events: { [key: string]: { [stateKey: string]: any } }
|
|
326
|
+
created_at: number
|
|
327
|
+
updated_at: number
|
|
328
|
+
status?: string
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
declare type msrpConversationUpdatedListener = (payload: {
|
|
332
|
+
conversation_id?: number
|
|
333
|
+
patch: Partial<MSRPConversationState_2>
|
|
334
|
+
}) => void
|
|
335
|
+
|
|
336
|
+
declare type MSRPInitializingListener = (value: boolean) => void
|
|
337
|
+
|
|
338
|
+
export declare type MSRPMemberRole = 'in_charge' | 'manager' | 'assigned'
|
|
213
339
|
|
|
214
|
-
|
|
340
|
+
declare type MSRPMemberRole_2 = 'in_charge' | 'manager' | 'assigned'
|
|
215
341
|
|
|
216
|
-
export declare type
|
|
342
|
+
export declare type MSRPMembership = 'join' | 'leave' | 'invite' | 'ban'
|
|
217
343
|
|
|
218
|
-
|
|
344
|
+
declare type MSRPMembership_2 = 'join' | 'leave' | 'invite' | 'ban'
|
|
345
|
+
|
|
346
|
+
declare class MSRPMessage {
|
|
347
|
+
protocol: string
|
|
348
|
+
ident: string
|
|
349
|
+
code: number
|
|
350
|
+
method: string
|
|
351
|
+
headers: any
|
|
352
|
+
body: string
|
|
353
|
+
direction: string
|
|
354
|
+
|
|
355
|
+
constructor(msg: string)
|
|
356
|
+
addHeader(name: string, content: string): void
|
|
357
|
+
getHeader(name: string): string
|
|
358
|
+
toString(): string
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
declare type msrpMessageAddedListener = (payload: {
|
|
362
|
+
conversation_id?: number
|
|
363
|
+
message: any
|
|
364
|
+
}) => void
|
|
365
|
+
|
|
366
|
+
declare type msrpMessageDeletedListener = (payload: {
|
|
367
|
+
conversation_id?: number
|
|
368
|
+
eventId: string
|
|
369
|
+
deletedBy: string
|
|
370
|
+
updatedAt: number
|
|
371
|
+
}) => void
|
|
372
|
+
|
|
373
|
+
declare type msrpMessageEditedListener = (payload: {
|
|
374
|
+
conversation_id?: number
|
|
375
|
+
eventId: string
|
|
376
|
+
newContent: any
|
|
377
|
+
editEvent: any
|
|
378
|
+
updatedAt: number
|
|
379
|
+
}) => void
|
|
219
380
|
|
|
220
381
|
export declare type MSRPMessageEventType = {
|
|
221
382
|
message: MSRPMessage,
|
|
222
383
|
session: MSRPSessionExtended_2
|
|
223
384
|
}
|
|
224
385
|
|
|
225
|
-
|
|
386
|
+
declare type MSRPMessageListener = (event: MSRPMessageEventType) => void;
|
|
387
|
+
|
|
388
|
+
export declare type MSRPMessageStatus = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
|
|
389
|
+
|
|
390
|
+
declare type MSRPMessageStatus_2 = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
|
|
391
|
+
|
|
392
|
+
declare type MSRPModuleName = typeof MODULES.MSRP
|
|
393
|
+
|
|
394
|
+
declare interface MSRPOptions extends AnswerOptions {
|
|
395
|
+
eventHandlers?: Partial<MSRPSessionEventMap>
|
|
396
|
+
anonymous?: boolean;
|
|
397
|
+
fromUserName?: string;
|
|
398
|
+
fromDisplayName?: string;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
declare interface MSRPOptions_2 extends AnswerOptions {
|
|
402
|
+
eventHandlers?: Partial<MSRPSessionEventMap_2>
|
|
403
|
+
anonymous?: boolean;
|
|
404
|
+
fromUserName?: string;
|
|
405
|
+
fromDisplayName?: string;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
declare type msrpPresenceListener = (payload: {
|
|
409
|
+
conversation_id?: number
|
|
410
|
+
sender: string
|
|
411
|
+
presence: string | null
|
|
412
|
+
lastActiveAt: number | null
|
|
413
|
+
updatedAt: number
|
|
414
|
+
}) => void
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Presence pulse for a peer, indexed by SIP URI. Values are pushed from
|
|
418
|
+
* `msrpPresence` events and consumed by presence dots / "last seen" UI.
|
|
419
|
+
*/
|
|
420
|
+
export declare interface MSRPPresenceState {
|
|
421
|
+
presence: string | null;
|
|
422
|
+
lastActiveAt: number | null;
|
|
423
|
+
updatedAt: number;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export declare type MSRPReactionAction = 'add' | 'remove';
|
|
427
|
+
|
|
428
|
+
declare type msrpReactionChangedListener = (payload: {
|
|
429
|
+
conversation_id?: number
|
|
430
|
+
eventId: string
|
|
431
|
+
emoji: string
|
|
432
|
+
action: 'add' | 'remove'
|
|
433
|
+
sender: string
|
|
434
|
+
updatedAt: number
|
|
435
|
+
}) => void
|
|
436
|
+
|
|
437
|
+
declare type msrpReceiptChangedListener = (payload: {
|
|
438
|
+
conversation_id?: number
|
|
439
|
+
eventId: string
|
|
440
|
+
status: MSRPMessageStatus_2
|
|
441
|
+
updatedAt: number
|
|
442
|
+
}) => void
|
|
443
|
+
|
|
444
|
+
/** Optional modifiers for an outgoing text/note message. */
|
|
445
|
+
export declare interface MSRPSendMessageOptions {
|
|
446
|
+
/** event_id of the message being replied to — becomes `content.in_reply_to`. */
|
|
447
|
+
replyToEventId?: string;
|
|
448
|
+
/** Overrides `content.message_type` (defaults to 'text'). */
|
|
449
|
+
messageType?: string;
|
|
450
|
+
/** Attribution label for a forwarded message — becomes `content.forwarded_from`. */
|
|
451
|
+
forwardedFrom?: string;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
declare class MSRPSession extends EventEmitter {
|
|
455
|
+
_ua: UAExtendedInterface
|
|
456
|
+
id: any
|
|
457
|
+
credentials: any
|
|
458
|
+
status: string
|
|
459
|
+
target: string
|
|
460
|
+
message: string
|
|
461
|
+
|
|
462
|
+
constructor(ua: UAExtendedInterface)
|
|
463
|
+
|
|
464
|
+
get direction(): SessionDirection;
|
|
465
|
+
|
|
466
|
+
get connection(): RTCPeerConnectionDeprecated;
|
|
467
|
+
|
|
468
|
+
get start_time(): Date;
|
|
469
|
+
|
|
470
|
+
isOnHold(): OnHoldResult;
|
|
471
|
+
|
|
472
|
+
mute(options?: MediaConstraints): void;
|
|
473
|
+
|
|
474
|
+
unmute(options?: MediaConstraints): void;
|
|
475
|
+
|
|
476
|
+
init_incoming(request: any): void;
|
|
477
|
+
|
|
478
|
+
isEnded(): boolean;
|
|
479
|
+
|
|
480
|
+
connect(target?:string): void
|
|
481
|
+
|
|
482
|
+
sendMSRP(message: string): void
|
|
483
|
+
|
|
484
|
+
_sendOk(message: string): void
|
|
485
|
+
|
|
486
|
+
_sendReport(message: string): void
|
|
487
|
+
|
|
488
|
+
terminate(options?: any): void
|
|
489
|
+
|
|
490
|
+
receiveRequest(request: unknown): void
|
|
491
|
+
|
|
492
|
+
on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
declare class MSRPSession_2 extends EventEmitter {
|
|
496
|
+
_ua: UAExtendedInterface_2
|
|
497
|
+
id: any
|
|
498
|
+
credentials: any
|
|
499
|
+
status: string
|
|
500
|
+
target: string
|
|
501
|
+
message: string
|
|
502
|
+
|
|
503
|
+
constructor(ua: UAExtendedInterface_2)
|
|
504
|
+
|
|
505
|
+
get direction(): SessionDirection;
|
|
506
|
+
|
|
507
|
+
get connection(): RTCPeerConnectionDeprecated;
|
|
508
|
+
|
|
509
|
+
get start_time(): Date;
|
|
510
|
+
|
|
511
|
+
isOnHold(): OnHoldResult;
|
|
512
|
+
|
|
513
|
+
mute(options?: MediaConstraints): void;
|
|
226
514
|
|
|
227
|
-
|
|
515
|
+
unmute(options?: MediaConstraints): void;
|
|
516
|
+
|
|
517
|
+
init_incoming(request: any): void;
|
|
518
|
+
|
|
519
|
+
isEnded(): boolean;
|
|
520
|
+
|
|
521
|
+
connect(target?:string): void
|
|
522
|
+
|
|
523
|
+
sendMSRP(message: string): void
|
|
524
|
+
|
|
525
|
+
_sendOk(message: string): void
|
|
526
|
+
|
|
527
|
+
_sendReport(message: string): void
|
|
528
|
+
|
|
529
|
+
terminate(options?: any): void
|
|
530
|
+
|
|
531
|
+
receiveRequest(request: unknown): void
|
|
532
|
+
|
|
533
|
+
on<T extends keyof MSRPSessionEventMap_2>(type: T, listener: MSRPSessionEventMap_2[T]): this;
|
|
534
|
+
}
|
|
228
535
|
|
|
229
|
-
declare interface
|
|
536
|
+
declare interface MSRPSessionEventMap {
|
|
537
|
+
'peerconnection': PeerConnectionListener;
|
|
538
|
+
'connecting': ConnectingListener;
|
|
539
|
+
'sending': SendingListener;
|
|
540
|
+
'progress': CallListener;
|
|
541
|
+
'accepted': CallListener;
|
|
542
|
+
'confirmed': ConfirmedListener;
|
|
543
|
+
'ended': EndListener;
|
|
544
|
+
'failed': EndListener;
|
|
545
|
+
'newDTMF': DTMFListener;
|
|
546
|
+
'newInfo': InfoListener;
|
|
547
|
+
'hold': HoldListener;
|
|
548
|
+
'unhold': HoldListener;
|
|
549
|
+
'muted': MuteListener;
|
|
550
|
+
'unmuted': MuteListener;
|
|
551
|
+
'reinvite': ReInviteListener;
|
|
552
|
+
'update': UpdateListener;
|
|
553
|
+
'refer': ReferListener;
|
|
554
|
+
'replaces': ReferListener;
|
|
555
|
+
'sdp': SDPListener;
|
|
556
|
+
'icecandidate': IceCandidateListener;
|
|
557
|
+
'getusermediafailed': Listener;
|
|
558
|
+
'active' : Listener;
|
|
559
|
+
'msgHistoryUpdate' : Listener;
|
|
560
|
+
'newMessage' : Listener;
|
|
561
|
+
'peerconnection:createofferfailed': Listener;
|
|
562
|
+
'peerconnection:createanswerfailed': Listener;
|
|
563
|
+
'peerconnection:setlocaldescriptionfailed': Listener;
|
|
564
|
+
'peerconnection:setremotedescriptionfailed': Listener;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
declare interface MSRPSessionEventMap_2 {
|
|
568
|
+
'peerconnection': PeerConnectionListener;
|
|
569
|
+
'connecting': ConnectingListener;
|
|
570
|
+
'sending': SendingListener;
|
|
571
|
+
'progress': CallListener;
|
|
572
|
+
'accepted': CallListener;
|
|
573
|
+
'confirmed': ConfirmedListener;
|
|
574
|
+
'ended': EndListener;
|
|
575
|
+
'failed': EndListener;
|
|
576
|
+
'newDTMF': DTMFListener;
|
|
577
|
+
'newInfo': InfoListener;
|
|
578
|
+
'hold': HoldListener;
|
|
579
|
+
'unhold': HoldListener;
|
|
580
|
+
'muted': MuteListener;
|
|
581
|
+
'unmuted': MuteListener;
|
|
582
|
+
'reinvite': ReInviteListener;
|
|
583
|
+
'update': UpdateListener;
|
|
584
|
+
'refer': ReferListener;
|
|
585
|
+
'replaces': ReferListener;
|
|
586
|
+
'sdp': SDPListener;
|
|
587
|
+
'icecandidate': IceCandidateListener;
|
|
588
|
+
'getusermediafailed': Listener_3;
|
|
589
|
+
'active' : Listener_3;
|
|
590
|
+
'msgHistoryUpdate' : Listener_3;
|
|
591
|
+
'newMessage' : Listener_3;
|
|
592
|
+
'peerconnection:createofferfailed': Listener_3;
|
|
593
|
+
'peerconnection:createanswerfailed': Listener_3;
|
|
594
|
+
'peerconnection:setlocaldescriptionfailed': Listener_3;
|
|
595
|
+
'peerconnection:setremotedescriptionfailed': Listener_3;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
export declare interface MSRPSessionExtended extends MSRPSession_2 {
|
|
230
599
|
id: string
|
|
231
600
|
status: string
|
|
232
601
|
start_time: Date
|
|
@@ -246,10 +615,67 @@ declare interface MSRPSessionExtended extends MSRPSession {
|
|
|
246
615
|
answer(options?: any): void
|
|
247
616
|
_init_incomeing(): void
|
|
248
617
|
sendMSRP(body: string): void
|
|
249
|
-
on<T extends keyof
|
|
618
|
+
on<T extends keyof MSRPSessionEventMap_2>(type: T, listener: MSRPSessionEventMap_2[T]): this;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
declare interface MSRPSessionExtended_2 extends MSRPSession_2 {
|
|
622
|
+
id: string
|
|
623
|
+
status: string
|
|
624
|
+
start_time: Date
|
|
625
|
+
direction: SessionDirection
|
|
626
|
+
_id: string
|
|
627
|
+
_cancel_reason: string
|
|
628
|
+
_contact: string
|
|
629
|
+
_end_time: Date
|
|
630
|
+
_eventsCount: number
|
|
631
|
+
_from_tag: string
|
|
632
|
+
_is_canceled: boolean
|
|
633
|
+
_is_confirmed: boolean
|
|
634
|
+
_late_sdp: string
|
|
635
|
+
_status: number
|
|
636
|
+
_remote_identity: string
|
|
637
|
+
target_addr: Array<string>
|
|
638
|
+
answer(options?: any): void
|
|
639
|
+
_init_incomeing(): void
|
|
640
|
+
sendMSRP(body: string): void
|
|
641
|
+
on<T extends keyof MSRPSessionEventMap_2>(type: T, listener: MSRPSessionEventMap_2[T]): this;
|
|
250
642
|
}
|
|
251
643
|
|
|
252
|
-
|
|
644
|
+
declare type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
|
|
645
|
+
|
|
646
|
+
declare type msrpSyncCompletedListener = (payload: {
|
|
647
|
+
conversations: { [key: string]: MSRPConversationState_2 }
|
|
648
|
+
messagesByConversation: { [key: string]: any[] }
|
|
649
|
+
}) => void
|
|
650
|
+
|
|
651
|
+
declare type msrpTypingListener = (payload: {
|
|
652
|
+
conversation_id?: number
|
|
653
|
+
sender: string
|
|
654
|
+
isTyping: boolean
|
|
655
|
+
}) => void
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Transient typing indicator kept per-conversation. Not emitted by
|
|
659
|
+
* opensips-js; the wrapper composes it from `msrpTyping` events plus a
|
|
660
|
+
* `Date.now()` timestamp for UI decay.
|
|
661
|
+
*/
|
|
662
|
+
export declare interface MSRPTypingState {
|
|
663
|
+
sender: string;
|
|
664
|
+
isTyping: boolean;
|
|
665
|
+
updatedAt: number;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
export declare interface MSRPUploadResult {
|
|
669
|
+
upload_url: string
|
|
670
|
+
expires_in?: number
|
|
671
|
+
mime_type: string
|
|
672
|
+
request_id: string
|
|
673
|
+
filename?: string
|
|
674
|
+
preview_url?: string
|
|
675
|
+
icon_url?: string
|
|
676
|
+
transcription?: string
|
|
677
|
+
media_type?: string
|
|
678
|
+
}
|
|
253
679
|
|
|
254
680
|
export declare type NoiseReductionMode = 'disabled' | 'enabled' | 'dynamic'
|
|
255
681
|
|
|
@@ -276,7 +702,7 @@ export declare interface NoiseReductionOptions {
|
|
|
276
702
|
|
|
277
703
|
export declare type NoiseReductionOptionsWithoutVadModule = Omit<NoiseReductionOptions, 'vadModule'>
|
|
278
704
|
|
|
279
|
-
|
|
705
|
+
declare type OnTransportCallback = (parsed: object, message: string) => void
|
|
280
706
|
|
|
281
707
|
export declare interface OpensipsConnectOptions {
|
|
282
708
|
domain: string
|
|
@@ -320,6 +746,19 @@ export declare interface OpenSIPSEventMap extends UAEventMap {
|
|
|
320
746
|
connectionStateChange: connectionStateChangeListener
|
|
321
747
|
newMSRPMessage: MSRPMessageListener
|
|
322
748
|
newMSRPSession: MSRPSessionListener
|
|
749
|
+
// MSRP events listeners
|
|
750
|
+
changeMsrpSession: changeMsrpSessionListener
|
|
751
|
+
msrpSyncCompleted: msrpSyncCompletedListener
|
|
752
|
+
msrpConversationCreated: msrpConversationCreatedListener
|
|
753
|
+
msrpConversationRemoved: msrpConversationRemovedListener
|
|
754
|
+
msrpConversationUpdated: msrpConversationUpdatedListener
|
|
755
|
+
msrpMessageAdded: msrpMessageAddedListener
|
|
756
|
+
msrpReceiptChanged: msrpReceiptChangedListener
|
|
757
|
+
msrpReactionChanged: msrpReactionChangedListener
|
|
758
|
+
msrpTyping: msrpTypingListener
|
|
759
|
+
msrpMessageEdited: msrpMessageEditedListener
|
|
760
|
+
msrpMessageDeleted: msrpMessageDeletedListener
|
|
761
|
+
msrpPresence: msrpPresenceListener
|
|
323
762
|
// JANUS
|
|
324
763
|
conferenceStart: conferenceStartListener
|
|
325
764
|
conferenceEnd: conferenceEndListener
|
|
@@ -333,36 +772,41 @@ export declare interface OpenSIPSEventMap extends UAEventMap {
|
|
|
333
772
|
changeVideoState: changeVideoStateListener
|
|
334
773
|
}
|
|
335
774
|
|
|
336
|
-
|
|
775
|
+
declare interface OutgoingMSRPSessionEvent {
|
|
776
|
+
originator: Originator.LOCAL;
|
|
777
|
+
session: MSRPSession;
|
|
778
|
+
request: IncomingRequest;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
declare type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
|
|
337
782
|
|
|
338
783
|
declare interface PNExtraHeaders {
|
|
339
784
|
[key: string]: string
|
|
340
785
|
}
|
|
341
786
|
|
|
342
|
-
|
|
787
|
+
declare type readyListener = (value: boolean) => void
|
|
343
788
|
|
|
344
|
-
|
|
789
|
+
declare type reconnectionAttemptsLimitListener = () => void
|
|
345
790
|
|
|
346
|
-
|
|
791
|
+
declare type reconnectionListener = (value: boolean) => void
|
|
347
792
|
|
|
348
|
-
|
|
793
|
+
declare interface RemoteIdentityCallType {
|
|
349
794
|
_display_name: string
|
|
350
795
|
_uri: {
|
|
351
796
|
_user: string
|
|
352
797
|
}
|
|
353
798
|
}
|
|
354
799
|
|
|
355
|
-
|
|
800
|
+
declare type removeRoomListener = (value: RoomChangeEmitType) => void
|
|
356
801
|
|
|
357
|
-
|
|
802
|
+
declare type RoomChangeEmitType = {
|
|
358
803
|
room: IRoom
|
|
359
804
|
roomList: { [key: number]: IRoom }
|
|
360
805
|
}
|
|
361
806
|
|
|
362
|
-
|
|
807
|
+
declare type RoomDeletedListener = (roomId: number) => void
|
|
363
808
|
|
|
364
809
|
declare type RTCBundlePolicy_2 = 'balanced' | 'max-bundle' | 'max-compat'
|
|
365
|
-
export { RTCBundlePolicy_2 as RTCBundlePolicy }
|
|
366
810
|
|
|
367
811
|
declare interface RTCConfiguration_2 {
|
|
368
812
|
bundlePolicy?: RTCBundlePolicy_2;
|
|
@@ -372,22 +816,18 @@ declare interface RTCConfiguration_2 {
|
|
|
372
816
|
iceTransportPolicy?: RTCIceTransportPolicy_2;
|
|
373
817
|
rtcpMuxPolicy?: RTCRtcpMuxPolicy_2;
|
|
374
818
|
}
|
|
375
|
-
export { RTCConfiguration_2 as RTCConfiguration }
|
|
376
819
|
|
|
377
820
|
declare interface RTCIceServer_2 {
|
|
378
821
|
credential?: string;
|
|
379
822
|
urls: string | string[];
|
|
380
823
|
username?: string;
|
|
381
824
|
}
|
|
382
|
-
export { RTCIceServer_2 as RTCIceServer }
|
|
383
825
|
|
|
384
826
|
declare type RTCIceTransportPolicy_2 = 'all' | 'relay'
|
|
385
|
-
export { RTCIceTransportPolicy_2 as RTCIceTransportPolicy }
|
|
386
827
|
|
|
387
828
|
declare type RTCRtcpMuxPolicy_2 = 'require'
|
|
388
|
-
export { RTCRtcpMuxPolicy_2 as RTCRtcpMuxPolicy }
|
|
389
829
|
|
|
390
|
-
|
|
830
|
+
declare interface RTCSessionExtended extends RTCSession {
|
|
391
831
|
id: string
|
|
392
832
|
_automaticHold: boolean
|
|
393
833
|
_id: string
|
|
@@ -410,49 +850,93 @@ export declare interface RTCSessionExtended extends RTCSession {
|
|
|
410
850
|
init_icncoming(request: IncomingRequest): void
|
|
411
851
|
}
|
|
412
852
|
|
|
413
|
-
|
|
853
|
+
declare type startBlurListener = () => void
|
|
414
854
|
|
|
415
|
-
|
|
855
|
+
declare type startScreenShareListener = (event: MediaStream) => void
|
|
416
856
|
|
|
417
|
-
|
|
857
|
+
declare type stopBlurListener = () => void
|
|
418
858
|
|
|
419
|
-
|
|
859
|
+
declare type stopScreenShareListener = () => void
|
|
420
860
|
|
|
421
|
-
|
|
861
|
+
declare interface StreamMediaType extends HTMLAudioElement {
|
|
422
862
|
className: string
|
|
423
863
|
setSinkId (id: string): Promise<void>
|
|
424
864
|
}
|
|
425
865
|
|
|
426
|
-
|
|
427
|
-
|
|
866
|
+
declare interface StreamMediaType_2 extends HTMLAudioElement {
|
|
867
|
+
className: string
|
|
868
|
+
setSinkId (id: string): Promise<void>
|
|
428
869
|
}
|
|
429
870
|
|
|
430
|
-
|
|
871
|
+
declare type TestEventListener = (event: { test: string }) => void
|
|
431
872
|
|
|
432
|
-
export declare interface
|
|
873
|
+
export declare interface TriggerMSRPListenerOptions {
|
|
433
874
|
listenerType: string
|
|
434
|
-
session:
|
|
875
|
+
session: MSRPSessionExtended
|
|
435
876
|
event?: ListenerEventType
|
|
436
877
|
}
|
|
437
878
|
|
|
438
|
-
|
|
879
|
+
declare type UAConfigurationExtended = UAConfiguration & {
|
|
439
880
|
reconnectionAttemptsLimit?: number
|
|
440
881
|
overrideUserAgent?: (userAgent: string) => string
|
|
441
882
|
noiseReductionOptions?: NoiseReductionOptions
|
|
442
883
|
onTransportCallback?: OnTransportCallback
|
|
443
884
|
}
|
|
444
885
|
|
|
445
|
-
|
|
886
|
+
declare interface UAExtendedInterface extends UA {
|
|
887
|
+
//_msrp_sessions: MSRPSession[]
|
|
888
|
+
_transactions: {
|
|
889
|
+
nist: object,
|
|
890
|
+
nict: object,
|
|
891
|
+
ist: object,
|
|
892
|
+
ict: object
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
call (target: string, options?: CallOptionsExtended): RTCSession
|
|
896
|
+
newMSRPSession (session: MSRPSession, data: object): void
|
|
897
|
+
destroyMSRPSession (session: MSRPSession): void
|
|
898
|
+
receiveRequest (request: any): void
|
|
899
|
+
startMSRP (target: string, options: MSRPOptions): MSRPSession
|
|
900
|
+
terminateMSRPSessions (options: object): void
|
|
901
|
+
stop (): void
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
declare interface UAExtendedInterface_2 extends UA {
|
|
905
|
+
//_msrp_sessions: MSRPSession[]
|
|
906
|
+
_transactions: {
|
|
907
|
+
nist: object,
|
|
908
|
+
nict: object,
|
|
909
|
+
ist: object,
|
|
910
|
+
ict: object
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
call (target: string, options?: CallOptionsExtended_2): RTCSession
|
|
914
|
+
newMSRPSession (session: MSRPSession_2, data: object): void
|
|
915
|
+
destroyMSRPSession (session: MSRPSession_2): void
|
|
916
|
+
receiveRequest (request: any): void
|
|
917
|
+
startMSRP (target: string, options: MSRPOptions_2): MSRPSession_2
|
|
918
|
+
terminateMSRPSessions (options: object): void
|
|
919
|
+
stop (): void
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
/**
|
|
923
|
+
* Per-conversation unread count derived from
|
|
924
|
+
* `MSRPConversationState.currentUserLastReadMessageId` + local timeline.
|
|
925
|
+
* Only conversations with count > 0 appear in the map.
|
|
926
|
+
*/
|
|
927
|
+
export declare type UnreadCounts = Record<string, number>;
|
|
928
|
+
|
|
929
|
+
declare type updateRoomListener = (value: RoomChangeEmitType) => void
|
|
446
930
|
|
|
447
931
|
export declare function useVsipInject(): VsipAPI;
|
|
448
932
|
|
|
449
933
|
export declare function useVsipProvide(): VsipAPI;
|
|
450
934
|
|
|
451
|
-
|
|
935
|
+
declare interface VADModule {
|
|
452
936
|
MicVAD: any
|
|
453
937
|
}
|
|
454
938
|
|
|
455
|
-
|
|
939
|
+
declare interface VADOptions {
|
|
456
940
|
model: 'v5' | 'legacy'
|
|
457
941
|
positiveSpeechThreshold: number
|
|
458
942
|
negativeSpeechThreshold: number
|
|
@@ -460,12 +944,7 @@ export declare interface VADOptions {
|
|
|
460
944
|
preSpeechPadFrames: number
|
|
461
945
|
}
|
|
462
946
|
|
|
463
|
-
|
|
464
|
-
isSpeaking: boolean
|
|
465
|
-
currentMode: 'clean' | 'noisy'
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
export declare type VideoModuleName = typeof MODULES.VIDEO
|
|
947
|
+
declare type VideoModuleName = typeof MODULES.VIDEO
|
|
469
948
|
|
|
470
949
|
export declare interface VsipAPI {
|
|
471
950
|
state: VsipAPIState
|
|
@@ -496,11 +975,7 @@ declare interface VsipAPIActions {
|
|
|
496
975
|
unholdCall: (callId: string) => void
|
|
497
976
|
answerCall: (callId: string) => void
|
|
498
977
|
moveCall: (callId: string, roomId: number) => Promise<void>
|
|
499
|
-
|
|
500
|
-
messageTerminate: (callId: string) => void
|
|
501
|
-
initCall: (target: string, addToCurrentRoom: boolean, holdOtherCalls = false) => void
|
|
502
|
-
sendMSRP: (msrpSessionId: string, body: string) => void
|
|
503
|
-
initMSRP: (target: string, body: string, options: object) => void
|
|
978
|
+
initCall: (target: string, addToCurrentRoom: boolean, holdOtherCalls?: boolean) => void
|
|
504
979
|
setMicrophone: (deviceId: string) => Promise<void>
|
|
505
980
|
setSpeaker: (deviceId: string) => Promise<void>
|
|
506
981
|
sendDTMF: (callId: string, value: string) => void
|
|
@@ -509,6 +984,76 @@ declare interface VsipAPIActions {
|
|
|
509
984
|
setSpeakerVolume: (value: number) => void
|
|
510
985
|
setAutoAnswer: (value: boolean) => void
|
|
511
986
|
setMetricsConfig: (config: WebrtcMetricsConfigType) => void
|
|
987
|
+
// ---------- MSRP ----------
|
|
988
|
+
initMSRP: (options?: object) => void
|
|
989
|
+
initMSRPAndSendMessage: (target: string, body: string, options?: object) => void
|
|
990
|
+
msrpAnswer: (callId: string) => void
|
|
991
|
+
messageTerminate: (callId: string) => void
|
|
992
|
+
sendMSRP: (msrpSessionId: string, body: string) => void
|
|
993
|
+
safeSendMSRP: (body: string) => boolean
|
|
994
|
+
sendCreateConversationMessage: (targetSip: string | string[]) => boolean
|
|
995
|
+
sendTextMessage: (
|
|
996
|
+
conversationRef: MSRPConversationRef,
|
|
997
|
+
text: string,
|
|
998
|
+
options?: MSRPSendMessageOptions
|
|
999
|
+
) => boolean
|
|
1000
|
+
sendInternalNote: (
|
|
1001
|
+
conversationRef: MSRPConversationRef,
|
|
1002
|
+
text: string,
|
|
1003
|
+
options?: Omit<MSRPSendMessageOptions, 'messageType'>
|
|
1004
|
+
) => boolean
|
|
1005
|
+
editMessage: (conversationRef: MSRPConversationRef, targetEventId: string, newText: string) => boolean
|
|
1006
|
+
deleteMessage: (conversationRef: MSRPConversationRef, targetEventId: string) => boolean
|
|
1007
|
+
forwardMessage: (
|
|
1008
|
+
sourceMessage: any,
|
|
1009
|
+
targetConversationRef: MSRPConversationRef,
|
|
1010
|
+
forwardedFromLabel?: string
|
|
1011
|
+
) => boolean
|
|
1012
|
+
sendMediaMessage: (
|
|
1013
|
+
conversationRef: MSRPConversationRef,
|
|
1014
|
+
uploadResult: MSRPUploadResult,
|
|
1015
|
+
caption?: string
|
|
1016
|
+
) => boolean
|
|
1017
|
+
sendReaction: (
|
|
1018
|
+
conversationRef: MSRPConversationRef,
|
|
1019
|
+
targetEventId: string,
|
|
1020
|
+
emoji: string,
|
|
1021
|
+
action?: MSRPReactionAction
|
|
1022
|
+
) => boolean
|
|
1023
|
+
removeReaction: (conversationRef: MSRPConversationRef, targetEventId: string, emoji: string) => boolean
|
|
1024
|
+
sendTypingIndicator: (conversationRef: MSRPConversationRef) => boolean
|
|
1025
|
+
startTypingKeepAlive: (conversationRef: MSRPConversationRef) => void
|
|
1026
|
+
stopTypingKeepAlive: () => void
|
|
1027
|
+
/**
|
|
1028
|
+
* Mark the whole conversation as unread (server-side pointer → null).
|
|
1029
|
+
* Optimistically applies the pointer locally so the UI reflects the
|
|
1030
|
+
* change without waiting for a backend echo.
|
|
1031
|
+
*/
|
|
1032
|
+
markConversationAsUnread: (conversationRef: MSRPConversationRef) => boolean
|
|
1033
|
+
/**
|
|
1034
|
+
* Mark `targetEventId` and every later message as unread. The pointer
|
|
1035
|
+
* is moved to the message immediately preceding `targetEventId` in the
|
|
1036
|
+
* local timeline; if the target is the very first message the pointer
|
|
1037
|
+
* becomes null (whole conversation unread).
|
|
1038
|
+
*/
|
|
1039
|
+
markAsUnreadFromMessage: (
|
|
1040
|
+
conversationRef: MSRPConversationRef,
|
|
1041
|
+
targetEventId: string
|
|
1042
|
+
) => boolean
|
|
1043
|
+
closeConversation: (conversationRef: MSRPConversationRef, reason?: string, cause?: string) => boolean
|
|
1044
|
+
changeMemberRole: (conversationRef: MSRPConversationRef, targetUri: string, newRole: MSRPMemberRole) => boolean
|
|
1045
|
+
acceptInvite: (conversationRef: MSRPConversationRef) => boolean
|
|
1046
|
+
rejectInvite: (conversationRef: MSRPConversationRef) => boolean
|
|
1047
|
+
leaveConversation: (conversationRef: MSRPConversationRef) => boolean
|
|
1048
|
+
setActiveConversation: (conversationId: string | null) => void
|
|
1049
|
+
requestUploadUrl: (
|
|
1050
|
+
conversationRef: MSRPConversationRef,
|
|
1051
|
+
filename: string,
|
|
1052
|
+
mimeType: string,
|
|
1053
|
+
fileSize: number
|
|
1054
|
+
) => Promise<MSRPUploadResult>
|
|
1055
|
+
requestFileAccess: (conversationRef: MSRPConversationRef, eventId: string) => Promise<unknown>
|
|
1056
|
+
uploadFile: (conversationRef: MSRPConversationRef, file: File, caption?: string) => Promise<MSRPUploadResult>
|
|
512
1057
|
}
|
|
513
1058
|
|
|
514
1059
|
declare interface VsipAPIState {
|
|
@@ -521,7 +1066,6 @@ declare interface VsipAPIState {
|
|
|
521
1066
|
addCallToCurrentRoom: Ref<boolean>
|
|
522
1067
|
callAddingInProgress: Ref<string | undefined>
|
|
523
1068
|
activeRooms: Ref<{ [key: number]: IRoom }>
|
|
524
|
-
msrpHistory: Ref<{ [key: string]: Array<MSRPMessage> }>
|
|
525
1069
|
availableMediaDevices: Ref<Array<MediaDeviceInfo>>
|
|
526
1070
|
inputMediaDeviceList: Ref<Array<MediaDeviceOption>>
|
|
527
1071
|
outputMediaDeviceList: Ref<Array<MediaDeviceOption>>
|
|
@@ -540,9 +1084,36 @@ declare interface VsipAPIState {
|
|
|
540
1084
|
callTime: Ref<{ [key: string]: ITimeData }>
|
|
541
1085
|
callMetrics: Ref<{ [key: string]: unknown }>
|
|
542
1086
|
noiseReductionState: Ref<boolean>
|
|
1087
|
+
// ---------- MSRP session ----------
|
|
1088
|
+
currentMsrpSession: Ref<IMessage | null>
|
|
1089
|
+
isMSRPInitializing: Ref<boolean>
|
|
1090
|
+
hasActiveMsrpSession: ComputedRef<boolean>
|
|
1091
|
+
// ---------- MSRP conversation state ----------
|
|
1092
|
+
// Conversations are keyed by their public numeric `conversation_id`
|
|
1093
|
+
// stringified. Metadata and chat history are kept as two parallel maps
|
|
1094
|
+
// so that message activity doesn't invalidate metadata-only consumers.
|
|
1095
|
+
conversations: Ref<{ [conversationId: string]: MSRPConversationState }>
|
|
1096
|
+
messagesByConversation: Ref<{ [conversationId: string]: any[] }>
|
|
1097
|
+
currentConversationId: Ref<string | null>
|
|
1098
|
+
currentConversation: ComputedRef<MSRPConversationState | null>
|
|
1099
|
+
currentMessages: ComputedRef<any[]>
|
|
1100
|
+
sortedConversations: ComputedRef<MSRPConversationState[]>
|
|
1101
|
+
typingByConversation: Ref<{ [conversationId: string]: MSRPTypingState }>
|
|
1102
|
+
presenceBySender: Ref<{ [sender: string]: MSRPPresenceState }>
|
|
1103
|
+
/**
|
|
1104
|
+
* Per-conversation unread count derived from
|
|
1105
|
+
* `MSRPConversationState.currentUserLastReadMessageId` + local timeline.
|
|
1106
|
+
* Only conversations with count > 0 appear in the map.
|
|
1107
|
+
*/
|
|
1108
|
+
unreadByConversation: ComputedRef<UnreadCounts>
|
|
1109
|
+
/**
|
|
1110
|
+
* event_id of the first unread message per conversation. Consumers use
|
|
1111
|
+
* this to place a "— New messages —" divider inside the open chat.
|
|
1112
|
+
*/
|
|
1113
|
+
firstUnreadByConversation: ComputedRef<Record<string, string>>
|
|
543
1114
|
}
|
|
544
1115
|
|
|
545
|
-
declare interface WebrtcMetricsConfigType {
|
|
1116
|
+
export declare interface WebrtcMetricsConfigType {
|
|
546
1117
|
refreshEvery?: number
|
|
547
1118
|
startAfter?: number
|
|
548
1119
|
stopAfter?: number
|