@vkontakte/calls-sdk 2.4.4-dev.c28b095.0 → 2.5.2-dev.93eddf8.0

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.
@@ -7,7 +7,7 @@ import ConversationOption from '../enums/ConversationOption';
7
7
  import FatalError from '../enums/FatalError';
8
8
  import MediaOption from '../enums/MediaOption';
9
9
  import UserRole from '../enums/UserRole';
10
- import { ExternalId, ExternalParticipant } from '../types/ExternalId';
10
+ import { ExternalId, ExternalParticipant, ExternalParticipantId } from '../types/ExternalId';
11
11
  import IceServer from '../types/IceServer';
12
12
  import MediaModifiers from '../types/MediaModifiers';
13
13
  import MediaSettings from '../types/MediaSettings';
@@ -28,7 +28,7 @@ export declare type ParamsObject = {
28
28
  * API ключ приложения
29
29
  */
30
30
  apiKey: string;
31
- apiEnv?: 'PROD' | 'TEST' | 'VIDEOTEST' | 'DEV';
31
+ apiEnv?: 'AUTO' | 'PROD' | 'TEST' | 'VIDEOTEST' | string;
32
32
  apiAuth?: typeof AuthData;
33
33
  /**
34
34
  * Токен авторизации
@@ -161,6 +161,7 @@ export declare type ParamsObject = {
161
161
  [key: string]: number;
162
162
  };
163
163
  perfStatReportEnabled: boolean;
164
+ callStatReportEnabled: boolean;
164
165
  unifiedPlanBrowsers: {
165
166
  [key: string]: number;
166
167
  };
@@ -212,6 +213,7 @@ export declare type ParamsObject = {
212
213
  * он хочет видеть, через вызов updateDisplayLayout
213
214
  */
214
215
  videoTracksCount: number;
216
+ movieShare: boolean;
215
217
  filteredMessages: boolean;
216
218
  breakVideoPayloadTypes: boolean;
217
219
  /**
@@ -220,6 +222,7 @@ export declare type ParamsObject = {
220
222
  */
221
223
  batchParticipantsOnStart: boolean;
222
224
  participantStateMapped: boolean;
225
+ joinFromMultipleDevices: boolean;
223
226
  /**
224
227
  * Получен локальный стрим с камеры/микрофона
225
228
  */
@@ -240,40 +243,40 @@ export declare type ParamsObject = {
240
243
  * Получен стрим собеседника.
241
244
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
242
245
  */
243
- onRemoteStream?: (userId: ExternalId, stream: MediaStream | null) => void;
246
+ onRemoteStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
244
247
  /**
245
248
  * Получен стрим с экрана собеседника.
246
249
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
247
250
  */
248
- onRemoteScreenStream?: (userId: ExternalId, stream: MediaStream | null) => void;
251
+ onRemoteScreenStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
249
252
  /**
250
253
  * Получен стрим трансляция или мувик от собеседника.
251
254
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
252
255
  */
253
- onRemoteLive?: (userId: ExternalId, streamId: string, stream: MediaStream | null) => void;
256
+ onRemoteLive?: (userId: ExternalParticipantId, streamId: string, stream: MediaStream | null) => void;
254
257
  /**
255
258
  * Начат звонок
256
259
  */
257
- onConversation?: (userId: ExternalId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]) => void;
260
+ onConversation?: (userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]) => void;
258
261
  /**
259
262
  * Изменились данные стрима собеседника
260
263
  */
261
- onRemoteMediaSettings?: (userId: ExternalId, mediaSettings: MediaSettings) => void;
264
+ onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings) => void;
262
265
  /**
263
266
  * Изменились данные состояний собеседника
264
267
  */
265
- onRemoteParticipantState?: (userId: ExternalId, participantState: {
268
+ onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: {
266
269
  [key: string]: string;
267
270
  }) => void;
268
271
  /**
269
272
  * Изменился статус соединения собеседников
270
273
  */
271
- onRemoteStatus?: (userIds: ExternalId[], status: ParticipantStatus, data: any) => void;
274
+ onRemoteStatus?: (userIds: ExternalParticipantId[], status: ParticipantStatus, data: any) => void;
272
275
  /**
273
276
  * Изменился статус соединения собеседника
274
277
  * @deprecated
275
278
  */
276
- onParticipantStatus?: (userId: ExternalId, status: ParticipantStatus, data: any) => void;
279
+ onParticipantStatus?: (userId: ExternalParticipantId, status: ParticipantStatus, data: any) => void;
277
280
  /**
278
281
  * Разрешения на доступы были запрошены в браузере
279
282
  */
@@ -285,7 +288,7 @@ export declare type ParamsObject = {
285
288
  /**
286
289
  * Пользователь отключился от звонка
287
290
  */
288
- onRemoteRemoved?: (userId: ExternalId) => void;
291
+ onRemoteRemoved?: (userId: ExternalParticipantId) => void;
289
292
  /**
290
293
  * Изменилось состояние звонка
291
294
  */
@@ -297,11 +300,11 @@ export declare type ParamsObject = {
297
300
  /**
298
301
  * Изменились состояния устройств пользователя или разрешения включать камеру/микрофон
299
302
  */
300
- onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalId | null, adminId: ExternalId | null) => void;
303
+ onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalParticipantId | null, adminId: ExternalParticipantId | null) => void;
301
304
  /**
302
305
  * Изменились роли собеседника в звонке
303
306
  */
304
- onRolesChanged?: (userId: ExternalId, roles: UserRole[]) => void;
307
+ onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[]) => void;
305
308
  /**
306
309
  * Изменились свои роли в звонке
307
310
  */
@@ -309,7 +312,7 @@ export declare type ParamsObject = {
309
312
  /**
310
313
  * Закрепляет/открепляет собеседника для всех
311
314
  */
312
- onPinnedParticipant?: (userId: ExternalId, unpin: boolean) => void;
315
+ onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean) => void;
313
316
  /**
314
317
  * Закрепляет/открепляет текущего пользователя у других собеседников
315
318
  */
@@ -322,12 +325,12 @@ export declare type ParamsObject = {
322
325
  /**
323
326
  * Изменился говорящий в звонке
324
327
  */
325
- onSpeakerChanged?: (userId: ExternalId) => void;
328
+ onSpeakerChanged?: (userId: ExternalParticipantId) => void;
326
329
  /**
327
330
  * Громкость собеседников
328
331
  */
329
332
  onVolumesDetected?: (volumes: {
330
- uid: ExternalId;
333
+ uid: ExternalParticipantId;
331
334
  volume: number;
332
335
  }[]) => void;
333
336
  /**
@@ -359,15 +362,15 @@ export declare type ParamsObject = {
359
362
  /**
360
363
  * Получено сообщение чата
361
364
  */
362
- onChatMessage?: (message: string, from: ExternalId, direct: boolean) => void;
365
+ onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean) => void;
363
366
  /**
364
367
  * Получены данные от собеседника
365
368
  */
366
- onCustomData?: (data: JSONObject, from: ExternalId, direct: boolean) => void;
369
+ onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean) => void;
367
370
  /**
368
371
  * Начата трансляция/запись звонка
369
372
  */
370
- onRecordStarted?: (initiator: ExternalId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string) => void;
373
+ onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string) => void;
371
374
  /**
372
375
  * Закончена трансляция/запись звонка
373
376
  */
@@ -384,7 +387,7 @@ export declare type ParamsObject = {
384
387
  * @param status Оценки качества соединения участников от 0 до 1
385
388
  */
386
389
  onNetworkStatusChanged?: (status: {
387
- uid: ExternalId;
390
+ uid: ExternalParticipantId;
388
391
  rating: number;
389
392
  }[]) => void;
390
393
  /**
@@ -418,7 +421,7 @@ export default abstract class Params {
418
421
  static get appVersion(): number;
419
422
  static get sdkVersion(): string | number | boolean;
420
423
  static get debug(): string | number | boolean;
421
- static get protocolVersion(): number;
424
+ static get protocolVersion(): 5 | 6;
422
425
  static get platform(): string;
423
426
  static set platform(value: string);
424
427
  static get clientType(): string;
@@ -426,10 +429,8 @@ export default abstract class Params {
426
429
  static get device(): string;
427
430
  static get apiAppId(): number;
428
431
  static get apiKey(): string;
429
- static get apiEnv(): {
430
- api: string;
431
- connect: string;
432
- };
432
+ static get apiEnv(): string;
433
+ static get apiEndpoint(): string;
433
434
  static get authToken(): string;
434
435
  static set authToken(value: string);
435
436
  static get anonymToken(): string;
@@ -478,6 +479,7 @@ export default abstract class Params {
478
479
  static set statisticsInterval(value: number);
479
480
  static get networkStatisticsInterval(): number;
480
481
  static get perfStatReportEnabled(): boolean;
482
+ static get callStatReportEnabled(): boolean;
481
483
  static get producerNotificationDataChannel(): boolean;
482
484
  static get producerCommandDataChannel(): boolean;
483
485
  static get consumerScreenDataChannel(): boolean;
@@ -491,6 +493,7 @@ export default abstract class Params {
491
493
  static get consumerScreenTrack(): boolean;
492
494
  static get producerScreenTrack(): boolean;
493
495
  static isUnifiedPlanSupported(name: string, version: number): boolean;
496
+ static get movieShare(): boolean;
494
497
  static get videoTracksCount(): number;
495
498
  static get breakVideoPayloadTypes(): boolean;
496
499
  static get filteredMessages(): boolean;
package/static/Utils.d.ts CHANGED
@@ -1,21 +1,29 @@
1
1
  import { BigInteger } from 'big-integer';
2
2
  import UserType from '../enums/UserType';
3
3
  import { ExternalParticipant } from '../types/ExternalId';
4
- import { CompositeUserId, OkUserId, Participant, ParticipantStateMapped } from '../types/Participant';
4
+ import { CompositeUserId, OkUserId, Participant, ParticipantId, ParticipantStateMapped } from '../types/Participant';
5
5
  import SignalingMessage from '../types/SignalingMessage';
6
6
  import VideoSettings from '../types/VideoSettings';
7
+ export declare const PARAMETERS_SEPARATOR = ":";
8
+ export declare const DEVICE_IDX_PARAMETER = "d";
7
9
  declare namespace Utils {
8
10
  function patchSDP(sdp: string, preferH264: boolean, brokenH264: boolean, preferVP9: boolean, isAudioNack?: boolean): string;
9
11
  function getPeerIdString(peerId: SignalingMessage.PeerId): string;
10
12
  function comparePeerId(peerId1: SignalingMessage.PeerId, peerId2: SignalingMessage.PeerId): boolean;
11
13
  function getPeerConnectionHostInfo(pc: RTCPeerConnection): Promise<any>;
12
- function composeId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
13
- function composeParticipantId(participant: SignalingMessage.Participant): CompositeUserId;
14
- function composeMessageId(message: SignalingMessage): CompositeUserId;
14
+ function composeUserId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
15
+ function composeParticipantId(id: CompositeUserId | OkUserId, type: UserType, deviceIdx: number): ParticipantId;
16
+ function compose(compositeId: CompositeUserId, deviceIdx: number): ParticipantId;
17
+ function composeId(participant: SignalingMessage.Participant): ParticipantId;
18
+ function composeMessageId(message: SignalingMessage): ParticipantId;
15
19
  function decomposeId(compositeId: CompositeUserId | OkUserId): {
16
20
  id: OkUserId;
17
21
  type: UserType;
18
22
  };
23
+ function decomposeParticipantId(participantId: ParticipantId): {
24
+ compositeUserId: CompositeUserId;
25
+ deviceIdx: number;
26
+ };
19
27
  function uuid(): string;
20
28
  function throttle(func: Function, ms: number): (this: any) => void;
21
29
  function sdpFingerprint(sdp: string): BigInteger;
@@ -5,5 +5,6 @@ declare type ConversationParams = {
5
5
  turn_server?: IceServer;
6
6
  stun_server?: IceServer;
7
7
  client_type?: string;
8
+ device_idx?: number;
8
9
  };
9
10
  export default ConversationParams;
@@ -23,5 +23,9 @@ declare type ConversationResponse = {
23
23
  status: HangupType;
24
24
  }[];
25
25
  peerId?: number;
26
+ /**
27
+ * Порядковый номер, присвоенный устройству при входе в звонок
28
+ */
29
+ device_idx?: number;
26
30
  };
27
31
  export default ConversationResponse;
@@ -22,6 +22,13 @@ export declare namespace ExternalIdUtils {
22
22
  function compare(id1: ExternalId, id2: ExternalId): boolean;
23
23
  }
24
24
  export declare type ExternalIdString = string;
25
+ export declare namespace ExternalParticipantIdUtils {
26
+ function fromId(id: string, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
27
+ function toString(externalId: ExternalParticipantId): ExternalParticipantIdString;
28
+ function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx: number): ExternalParticipantId;
29
+ function getDeviceIdx(externalId: string | ExternalParticipantId | null): number;
30
+ }
31
+ export declare type ExternalParticipantIdString = string;
25
32
  /**
26
33
  * Идентификатор внешнего пользователя
27
34
  */
@@ -35,6 +42,15 @@ export interface ExternalId {
35
42
  */
36
43
  type: ExternalIdType;
37
44
  }
45
+ /**
46
+ * Идентификатор участника звонка
47
+ */
48
+ export interface ExternalParticipantId extends ExternalId {
49
+ /**
50
+ * Индекс устройства (позволяет отличать участников, которые присоединяются к звонку под одной учётной записью с разных устройств)
51
+ */
52
+ deviceIdx: number;
53
+ }
38
54
  /**
39
55
  * Участник звонка
40
56
  */
@@ -42,7 +58,7 @@ export interface ExternalParticipant {
42
58
  /**
43
59
  * Идентификатор пользователя
44
60
  */
45
- uid: ExternalId;
61
+ uid: ExternalParticipantId;
46
62
  /**
47
63
  * Данные стрима
48
64
  */
@@ -19,6 +19,7 @@ export declare type MediaSettings = {
19
19
  export declare type VideoStreamInfo = {
20
20
  id: string;
21
21
  source: string;
22
+ vkMovieId?: string;
22
23
  };
23
24
  export default MediaSettings;
24
25
  export declare function compareMediaSettings(ms1: MediaSettings, ms2: MediaSettings): boolean;
@@ -3,10 +3,18 @@ import ParticipantState from '../enums/ParticipantState';
3
3
  import UserRole from '../enums/UserRole';
4
4
  import { ParticipantStatus } from '../static/External';
5
5
  import MediaSettings from '../types/MediaSettings';
6
- import { ExternalId } from './ExternalId';
6
+ import { ExternalParticipantId } from './ExternalId';
7
7
  import MuteStates from './MuteStates';
8
8
  import ParticipantLayout from './ParticipantLayout';
9
+ /**
10
+ * Уникально идентифицирует пользователя или группу
11
+ */
9
12
  export declare type CompositeUserId = string;
13
+ /**
14
+ * Уникально идентифицирует участника звонка
15
+ * (одному пользователю могут соответствовать несколько участников, в случае если пользователь зашёл в звонок с нескольких устройств)
16
+ */
17
+ export declare type ParticipantId = string;
10
18
  export declare type OkUserId = number;
11
19
  /**
12
20
  * Стейт участника звонка
@@ -18,8 +26,8 @@ export interface ParticipantStateMapped {
18
26
  };
19
27
  }
20
28
  export interface Participant {
21
- id: CompositeUserId;
22
- externalId: ExternalId;
29
+ id: ParticipantId;
30
+ externalId: ExternalParticipantId;
23
31
  mediaSettings: MediaSettings;
24
32
  state: ParticipantState;
25
33
  status: ParticipantStatus | null;
@@ -1,4 +1,4 @@
1
- import { ExternalId } from './ExternalId';
1
+ import { ExternalParticipantId } from './ExternalId';
2
2
  import { MediaType } from './ParticipantStreamDescription';
3
3
  /**
4
4
  * Лейаут собеседника в звонке
@@ -42,7 +42,7 @@ export declare type ParticipantLayout = (Layout | StopStream) & {
42
42
  /**
43
43
  * Внешний ID пользователя
44
44
  */
45
- uid: ExternalId | string;
45
+ uid: ExternalParticipantId | string;
46
46
  /**
47
47
  * Тип медиа (видео с камеры, картинка с экрана, лайв или мувик)
48
48
  */
@@ -1,12 +1,12 @@
1
- import { ExternalId } from './ExternalId';
1
+ import { ExternalParticipantId } from './ExternalId';
2
2
  /**
3
3
  * Приоритет собеседника в звонке
4
4
  */
5
5
  declare type ParticipantPriority = {
6
6
  /**
7
- * Внешний ID пользователя
7
+ * Внешний ID участника звонка
8
8
  */
9
- uid: ExternalId | string;
9
+ uid: ExternalParticipantId | string;
10
10
  /**
11
11
  * Приоритет [-1..MAX_INT]
12
12
  */
@@ -1,4 +1,4 @@
1
- import { CompositeUserId } from './Participant';
1
+ import { ParticipantId } from './Participant';
2
2
  /**
3
3
  * Тип пользовательского медиа
4
4
  */
@@ -11,7 +11,7 @@ export declare enum MediaType {
11
11
  export declare function serializeParticipantStreamDescription(description: ParticipantStreamDescription): string;
12
12
  export declare function parseParticipantStreamDescription(descriptionString: string): ParticipantStreamDescription;
13
13
  export declare type ParticipantStreamDescription = {
14
- participantId: CompositeUserId;
14
+ participantId: ParticipantId;
15
15
  mediaType: MediaType | null;
16
16
  streamName?: string;
17
17
  };
@@ -10,12 +10,12 @@ import UserType from '../enums/UserType';
10
10
  import MediaModifiers from './MediaModifiers';
11
11
  import MediaSettings from './MediaSettings';
12
12
  import MuteStates from './MuteStates';
13
- import { CompositeUserId, OkUserId } from './Participant';
13
+ import { OkUserId, ParticipantId } from './Participant';
14
14
  import VideoSettings from './VideoSettings';
15
15
  import { WaitingParticipant } from './WaitingHall';
16
16
  declare type SignalingMessage = Record<string, any>;
17
17
  export declare type RecordInfo = {
18
- initiator: CompositeUserId;
18
+ initiator: ParticipantId;
19
19
  recordMovieId: number;
20
20
  recordStartTime: number;
21
21
  recordType: 'STREAM' | 'RECORD';
@@ -34,6 +34,7 @@ declare namespace SignalingMessage {
34
34
  export interface Participant {
35
35
  id: OkUserId;
36
36
  idType?: UserType;
37
+ deviceIdx?: number;
37
38
  externalId?: ExternalId;
38
39
  state: ParticipantState;
39
40
  responders?: OkUserId[];
@@ -61,7 +62,7 @@ declare namespace SignalingMessage {
61
62
  multichatId: string | null;
62
63
  tamtamMultichatId: string | null;
63
64
  recordInfo: RecordInfo | null;
64
- pinnedParticipantId: CompositeUserId | null;
65
+ pinnedParticipantId: ParticipantId | null;
65
66
  options: ConversationOption[];
66
67
  muteStates?: MuteStates;
67
68
  }
@@ -73,12 +74,14 @@ declare namespace SignalingMessage {
73
74
  export interface TransmittedData extends Notification {
74
75
  participantId: OkUserId;
75
76
  participantType: UserType;
77
+ deviceIdx?: number;
76
78
  peerId: PeerId;
77
79
  data: any;
78
80
  }
79
81
  export interface RegisteredPeer extends Notification {
80
82
  participantId: OkUserId;
81
83
  participantType: UserType;
84
+ deviceIdx?: number;
82
85
  peerId: PeerId;
83
86
  platform: string;
84
87
  clientType: string;
@@ -86,12 +89,14 @@ declare namespace SignalingMessage {
86
89
  export interface AcceptedCall extends Notification {
87
90
  participantId: OkUserId;
88
91
  participantType: UserType;
92
+ deviceIdx?: number;
89
93
  peerId: PeerId;
90
94
  mediaSettings: Partial<MediaSettings>;
91
95
  }
92
96
  export interface Hungup extends Notification {
93
97
  participantId: OkUserId;
94
98
  participantType: UserType;
99
+ deviceIdx?: number;
95
100
  peerId: PeerId;
96
101
  reason: HangupType;
97
102
  }
@@ -101,12 +106,14 @@ declare namespace SignalingMessage {
101
106
  export interface MediaSettingsChanged extends Notification {
102
107
  participantId: OkUserId;
103
108
  participantType: UserType;
109
+ deviceIdx?: number;
104
110
  peerId: PeerId;
105
111
  mediaSettings: Partial<MediaSettings>;
106
112
  }
107
113
  export interface ParticipantStateChanged extends Notification {
108
114
  participantId: OkUserId;
109
115
  participantType: UserType;
116
+ deviceIdx?: number;
110
117
  peerId: PeerId;
111
118
  mediaSettings: Partial<MediaSettings>;
112
119
  participantState: {
@@ -115,13 +122,13 @@ declare namespace SignalingMessage {
115
122
  };
116
123
  }
117
124
  export interface RolesChanged extends Notification {
118
- adminId: CompositeUserId;
119
- participantId: CompositeUserId;
125
+ adminId: ParticipantId;
126
+ participantId: ParticipantId;
120
127
  roles?: UserRole[];
121
128
  }
122
129
  export interface MuteParticipant extends Notification {
123
- adminId?: CompositeUserId;
124
- participantId?: CompositeUserId;
130
+ adminId?: ParticipantId;
131
+ participantId?: ParticipantId;
125
132
  muteStates: MuteStates;
126
133
  unmuteOptions?: MediaOption[];
127
134
  mediaOptions: MediaOption[];
@@ -129,7 +136,7 @@ declare namespace SignalingMessage {
129
136
  muteAll?: boolean;
130
137
  }
131
138
  export interface PinParticipant extends Notification {
132
- participantId: CompositeUserId;
139
+ participantId: ParticipantId;
133
140
  unpin?: boolean;
134
141
  }
135
142
  export interface ParticipantAdded extends Notification {
@@ -153,6 +160,7 @@ declare namespace SignalingMessage {
153
160
  topology: TransportTopology;
154
161
  offerTo: OkUserId[];
155
162
  offerToTypes: UserType[];
163
+ offerToDeviceIdxs: number[];
156
164
  }
157
165
  export interface RateCallData extends Notification {
158
166
  maxRateForQuestion: number;
@@ -169,12 +177,10 @@ declare namespace SignalingMessage {
169
177
  reason: string;
170
178
  }
171
179
  export interface RecordStarted extends Notification {
172
- idType: UserType;
173
- id: OkUserId;
174
180
  recordInfo: RecordInfo;
175
181
  }
176
182
  export interface RecordStopped extends Notification {
177
- participant: CompositeUserId;
183
+ participant: ParticipantId;
178
184
  recordMovieId: number;
179
185
  }
180
186
  export interface ReallocCon extends Notification {
@@ -184,6 +190,7 @@ declare namespace SignalingMessage {
184
190
  export interface ChatMessage extends Notification {
185
191
  participantId: OkUserId;
186
192
  participantType: UserType;
193
+ deviceIdx?: number;
187
194
  direct: boolean;
188
195
  message: string;
189
196
  }
@@ -196,13 +203,13 @@ declare namespace SignalingMessage {
196
203
  settings: Record<string, any>;
197
204
  }
198
205
  export interface StalledActivity extends Notification {
199
- stalledParticipants: CompositeUserId[];
206
+ stalledParticipants: ParticipantId[];
200
207
  }
201
208
  export interface AudioActivity extends Notification {
202
- activeParticipants: CompositeUserId[];
209
+ activeParticipants: ParticipantId[];
203
210
  }
204
211
  export interface SpeakerChanged extends Notification {
205
- speaker: CompositeUserId;
212
+ speaker: ParticipantId;
206
213
  }
207
214
  export interface OptionsChanged extends Notification {
208
215
  options: ConversationOption[];
@@ -211,7 +218,7 @@ declare namespace SignalingMessage {
211
218
  statuses: Record<string, number>;
212
219
  }
213
220
  export interface PromotionApproved extends Notification {
214
- adminId: CompositeUserId;
221
+ adminId: ParticipantId;
215
222
  }
216
223
  export interface PromoteParticipant extends Notification {
217
224
  demote: boolean;
@@ -222,8 +229,8 @@ declare namespace SignalingMessage {
222
229
  eventType: ChatRoomEventType;
223
230
  totalCount: number;
224
231
  firstParticipants: WaitingParticipant[];
225
- addedParticipantIds: CompositeUserId[];
226
- removedParticipantIds: CompositeUserId[];
232
+ addedParticipantIds: ParticipantId[];
233
+ removedParticipantIds: ParticipantId[];
227
234
  feedback: Record<string, any>[];
228
235
  }
229
236
  export interface VideoQualityUpdate extends Notification {
@@ -235,6 +242,7 @@ declare namespace SignalingMessage {
235
242
  export interface CustomData extends Notification {
236
243
  participantId: OkUserId;
237
244
  participantType: UserType;
245
+ deviceIdx?: number;
238
246
  data: Record<string, any>;
239
247
  }
240
248
  export interface SwitchMicro extends Notification {