@vkontakte/calls-sdk 2.8.2-dev.dfa0c93.0 → 2.8.2-dev.e8ddcb1.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.
Files changed (47) hide show
  1. package/CallsSDK.d.ts +73 -36
  2. package/abstract/BaseApi.d.ts +10 -8
  3. package/abstract/BaseSignaling.d.ts +7 -5
  4. package/calls-sdk.cjs.js +8 -8
  5. package/calls-sdk.esm.js +8 -8
  6. package/classes/AudioOutput.d.ts +8 -3
  7. package/classes/Conversation.d.ts +14 -10
  8. package/classes/MediaSource.d.ts +5 -4
  9. package/classes/ParticipantIdRegistry.d.ts +5 -0
  10. package/classes/ProducerCommandSerializationService.d.ts +2 -0
  11. package/classes/codec/IEncoder.d.ts +1 -1
  12. package/classes/codec/LibVPxEncoder.d.ts +1 -1
  13. package/classes/codec/Types.d.ts +1 -1
  14. package/classes/codec/WebCodecsEncoder.d.ts +1 -1
  15. package/classes/screenshare/PacketHistory.d.ts +1 -0
  16. package/classes/screenshare/ScreenCaptureSender.d.ts +2 -1
  17. package/classes/screenshare/ScreenCongestionControl.d.ts +6 -1
  18. package/classes/transport/DirectTransport.d.ts +5 -0
  19. package/classes/transport/ServerTransport.d.ts +2 -0
  20. package/classes/transport/Statistics.d.ts +20 -2
  21. package/classes/transport/Transport.d.ts +1 -0
  22. package/constants/Rooms.d.ts +1 -0
  23. package/default/Api.d.ts +14 -14
  24. package/default/ApiExternal.d.ts +11 -0
  25. package/default/Signaling.d.ts +9 -8
  26. package/enums/SignalingCommandType.d.ts +6 -2
  27. package/enums/SignalingNotification.d.ts +2 -1
  28. package/package.json +3 -6
  29. package/static/ApiTransport.d.ts +3 -1
  30. package/static/AuthData.d.ts +6 -6
  31. package/static/External.d.ts +36 -6
  32. package/static/Params.d.ts +105 -33
  33. package/static/Utils.d.ts +2 -2
  34. package/types/Asr.d.ts +1 -1
  35. package/types/AudienceMode.d.ts +8 -0
  36. package/types/Conversation.d.ts +3 -0
  37. package/types/ExternalId.d.ts +13 -15
  38. package/types/MuteStates.d.ts +1 -1
  39. package/types/Params.d.ts +1 -0
  40. package/types/ParticipantLayout.d.ts +2 -2
  41. package/types/ParticipantStreamDescription.d.ts +0 -1
  42. package/types/RequestAsr.d.ts +3 -0
  43. package/types/Room.d.ts +3 -0
  44. package/types/SignalingMessage.d.ts +18 -0
  45. package/types/Statistics.d.ts +7 -2
  46. package/types/Streams.d.ts +10 -0
  47. package/types/VideoSettings.d.ts +15 -0
@@ -126,6 +126,20 @@ declare namespace External {
126
126
  * @param stream
127
127
  */
128
128
  function onRemoteVmojiStream(userId: ExternalParticipantId, stream: MediaStream | null): void;
129
+ /**
130
+ * Cтрим собеседника приостановлен/возобновлен.
131
+ *
132
+ * @param userId
133
+ * @param suspended true - стрим был приостановлен, false - стрим был запущен
134
+ */
135
+ function onRemoteStreamSuspended(userId: ExternalParticipantId, suspended: boolean): void;
136
+ /**
137
+ * Стрим с экрана собеседника приостановлен/возобновлен.
138
+ *
139
+ * @param userId
140
+ * @param suspended true - стрим был приостановлен, false - стрим был запущен
141
+ */
142
+ function onRemoteScreenStreamSuspended(userId: ExternalParticipantId, suspended: boolean): void;
129
143
  /**
130
144
  * Начат звонок
131
145
  *
@@ -135,7 +149,7 @@ declare namespace External {
135
149
  * @param participants Список участников звонка
136
150
  * @param rooms Список сессионных залов в звонке
137
151
  */
138
- function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[], rooms?: Rooms): void;
152
+ function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants: ExternalParticipant[], rooms?: Rooms): void;
139
153
  /**
140
154
  * Постраничные данные про участников при начале звонка
141
155
  * @param chunk
@@ -177,15 +191,17 @@ declare namespace External {
177
191
  *
178
192
  * @param userId
179
193
  * @param sharedMovieInfo
194
+ * @param roomId
180
195
  */
181
- function onLocalSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo): void;
196
+ function onLocalSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId): void;
182
197
  /**
183
198
  * Полученны данные по собственным остановленным стримам (лайв/мувик)
184
199
  *
185
200
  * @param userId
186
201
  * @param sharedMovieStoppedInfo
202
+ * @param roomId
187
203
  */
188
- function onLocalSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo): void;
204
+ function onLocalSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId): void;
189
205
  /**
190
206
  * Добавили участника
191
207
  *
@@ -414,13 +430,21 @@ declare namespace External {
414
430
  */
415
431
  function onAutoplayError(): void;
416
432
  /**
417
- * Изменилось состояние зала ожидания
433
+ * Изменилось состояние зала ожидания/зала в режиме Audience
418
434
  *
419
435
  * @param eventType
420
- * @param totalCount Количество ожидающих
436
+ * @param totalCount Количество ожидающих/слушателей
421
437
  * @param firstParticipants Первые несколько ожидающих в зале
438
+ * @param addedParticipantIds Некоторое количество участников, добавленных в зал
439
+ * @param removedParticipantIds Некоторое количество участников, убранных из зала
440
+ */
441
+ function onChatRoomUpdated(eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]): void;
442
+ /**
443
+ * Участник повышен/разжалован в зале ожидания/зале в режиме Audience
444
+ *
445
+ * @param demoted участник разжалован
422
446
  */
423
- function onChatRoomUpdated(eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[]): void;
447
+ function onPromoted(demoted: boolean): void;
424
448
  /**
425
449
  * Получен микшированный аудио стрим.
426
450
  *
@@ -494,5 +518,11 @@ declare namespace External {
494
518
  */
495
519
  function onAsrStopped(roomId: number | null): void;
496
520
  function onAsrTranscription(id: ExternalParticipantId, text: string, timestamp: number, duration: number): void;
521
+ /**
522
+ * Одобрено повышение пользователя в зеле ожидания/зале в режиме Audience
523
+ *
524
+ * @param adminParticipantId админ, одобривший повышение
525
+ */
526
+ function onPromotionApproved(adminParticipantId: ExternalParticipantId): void;
497
527
  }
498
528
  export default External;
@@ -20,7 +20,7 @@ import { IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieSt
20
20
  import MuteStates from '../types/MuteStates';
21
21
  import { ParticipantStateMapped } from '../types/Participant';
22
22
  import { IRoomId, Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
23
- import AuthData from './AuthData';
23
+ import { IApiEnv } from '../types/Params';
24
24
  import { DebugMessageType } from './Debug';
25
25
  import { ParticipantStatus } from './External';
26
26
  import { JSONObject } from './Json';
@@ -29,17 +29,26 @@ import { FacingMode } from './WebRTCUtils';
29
29
  * Параметры инициализации
30
30
  */
31
31
  export type ParamsObject = {
32
+ /** @hidden */
32
33
  platform: string;
34
+ /** @hidden */
33
35
  clientType: string;
36
+ /** @hidden */
34
37
  externalUserType: string;
38
+ /** @hidden */
35
39
  device: string;
36
40
  /**
37
41
  * API ключ приложения
38
42
  */
39
43
  apiKey: string;
40
- apiEnv: 'AUTO' | 'PROD' | 'PROD_OK' | 'TEST' | 'VIDEOTEST' | string;
41
44
  /** @hidden */
42
- apiAuth?: typeof AuthData;
45
+ apiEnv: IApiEnv;
46
+ /** @hidden */
47
+ apiAuth?: {
48
+ sessionKey?: string;
49
+ sessionSecretKey?: string;
50
+ accessToken?: string;
51
+ };
43
52
  /**
44
53
  * Токен авторизации
45
54
  */
@@ -59,18 +68,29 @@ export type ParamsObject = {
59
68
  externalDomain: string;
60
69
  /** @hidden */
61
70
  iceServers: IceServer[];
71
+ /** @hidden */
62
72
  wssBase: string;
73
+ /** @hidden */
63
74
  wssToken: string;
75
+ /** @hidden */
64
76
  signalingReconnectDelay: number;
77
+ /** @hidden */
65
78
  signalingReconnectMaxDelay: number;
79
+ /** @hidden */
66
80
  signalingReconnectMaxCount: number;
81
+ /** @hidden */
67
82
  waitConnectionDelay: number;
83
+ /** @hidden */
68
84
  waitResponseDelay: number;
85
+ /** @hidden */
69
86
  waitMessageDelay: number;
87
+ /** @hidden */
70
88
  waitAnotherTabDelay: number;
89
+ /** @hidden */
71
90
  debugLog: boolean;
72
91
  /**
73
- * Не использовать прямое P2P соединение, чтобы не отправлять в ICE-кандидатах персональные IP-адреса
92
+ * Не отправлять в ICE-кандидатах персональные IP-адреса
93
+ * @see [RTCIceTransportPolicy](https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum)
74
94
  *
75
95
  * _По умолчанию: `false`_
76
96
  */
@@ -130,7 +150,7 @@ export type ParamsObject = {
130
150
  */
131
151
  displaySurface: DisplayCaptureSurfaceType;
132
152
  /**
133
- * Экземпляр класса `VideoEffects` из `@vkontakte/calls-video-effects`
153
+ * Экземпляр класса `VideoEffects` из [`@vkontakte/calls-video-effects`](https://npmjs.com/package/@vkontakte/calls-video-effects)
134
154
  *
135
155
  * Можно установить позднее методом `setVideoEffects`
136
156
  */
@@ -148,7 +168,7 @@ export type ParamsObject = {
148
168
  */
149
169
  videoEffectMaxHeight: number;
150
170
  /**
151
- * Экземпляр класса `Vmoji` из `@vkontakte/calls-vmoji`
171
+ * Экземпляр класса `Vmoji` из [`@vkontakte/calls-vmoji`](https://npmjs.com/package/@vkontakte/calls-vmoji)
152
172
  *
153
173
  * Можно установить позднее методом `setVmoji`
154
174
  */
@@ -156,10 +176,12 @@ export type ParamsObject = {
156
176
  /**
157
177
  * Настройки отрисовки Vmoji.
158
178
  *
159
- * Экземпляр класса `RenderingOptions` из `@vkontakte/calls-vmoji`
179
+ * Экземпляр класса `RenderingOptions` из [`@vkontakte/calls-vmoji`](https://npmjs.com/package/@vkontakte/calls-vmoji)
160
180
  */
161
181
  vmojiRenderingOptions: Partial<Vmoji.RenderingOptions> | null;
182
+ /** @hidden */
162
183
  iceRestartWaitTime: number;
184
+ /** @hidden */
163
185
  transportConnectionWaitTime: number;
164
186
  /**
165
187
  * Частота получения статистики в миллисекундах
@@ -192,10 +214,13 @@ export type ParamsObject = {
192
214
  voiceParams: {
193
215
  [key: string]: number;
194
216
  };
217
+ /** @hidden */
195
218
  specListenerParams: {
196
219
  [key: string]: number;
197
220
  };
221
+ /** @hidden */
198
222
  perfStatReportEnabled: boolean;
223
+ /** @hidden */
199
224
  callStatReportEnabled: boolean;
200
225
  /**
201
226
  * Отдавать приоритет кодеку H264 для исходящего видео
@@ -210,6 +235,7 @@ export type ParamsObject = {
210
235
  * _По умолчанию: `true`_
211
236
  */
212
237
  preferVP9: boolean;
238
+ /** @hidden */
213
239
  audioNack: boolean;
214
240
  /**
215
241
  * Принимать параллельно видео с камеры и трансляцию экрана от одного и того же участника.
@@ -247,6 +273,7 @@ export type ParamsObject = {
247
273
  * @deprecated
248
274
  */
249
275
  producerScreenDataChannel: boolean;
276
+ /** @hidden */
250
277
  asrDataChannel: boolean;
251
278
  /**
252
279
  * Размер пакета для отправки трансляции экрана в датаканал в байтах.
@@ -254,7 +281,9 @@ export type ParamsObject = {
254
281
  * @hidden
255
282
  */
256
283
  consumerScreenDataChannelPacketSize: number;
284
+ /** @hidden */
257
285
  screenShareWebmBuilder: boolean;
286
+ /** @hidden */
258
287
  noiseSuppression: boolean;
259
288
  /**
260
289
  * Количество входящих видео-треков.
@@ -272,7 +301,9 @@ export type ParamsObject = {
272
301
  * _По умолчанию: `30`_
273
302
  */
274
303
  videoTracksCount: number;
304
+ /** @hidden */
275
305
  movieShare: boolean;
306
+ /** @hidden */
276
307
  breakVideoPayloadTypes: boolean;
277
308
  /**
278
309
  * Включить постраничный вывод участников. Работает только если включено videoTracksCount (слоты)
@@ -363,20 +394,33 @@ export type ParamsObject = {
363
394
  * _По умолчанию: `false`_
364
395
  */
365
396
  fastScreenShare: boolean;
366
- /**
367
- * Настройки api
368
- */
369
- api: {
370
- /** таймаут для батчинга на получение externalId */
371
- userIdsByOkBatchedTimeout: number;
372
- };
397
+ /** @hidden */
373
398
  fastScreenShareFrameRate: number;
399
+ /** @hidden */
374
400
  fastScreenShareWidth: number;
401
+ /** @hidden */
375
402
  fastScreenShareHeight: number;
376
403
  /**
377
404
  * Использовать новые правила allMute для админа
378
405
  */
379
406
  newMuteRules: boolean;
407
+ /**
408
+ * Включить поддержку приостановки видео в плохой сети.
409
+ *
410
+ * _По умолчанию: `false`_
411
+ */
412
+ videoSuspend: boolean;
413
+ /**
414
+ * Задержка обновления списка устройств после подключения/отключения камеры или микрофона
415
+ * @hidden
416
+ */
417
+ enumerateDevicesDelay: number;
418
+ /**
419
+ * Включает логгирование статистики webrtc
420
+ *
421
+ * _По умолчанию: `false`_
422
+ */
423
+ enableLogPerfStatReport: boolean;
380
424
  /**
381
425
  * Получен локальный стрим с камеры/микрофона
382
426
  */
@@ -402,6 +446,14 @@ export type ParamsObject = {
402
446
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
403
447
  */
404
448
  onRemoteStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
449
+ /**
450
+ * Cтрим собеседника приостановлен/возобновлен.
451
+ */
452
+ onRemoteStreamSuspended?: (userId: ExternalParticipantId, suspended: boolean) => void;
453
+ /**
454
+ * Стрим с экрана собеседника приостановлен/возобновлен.
455
+ */
456
+ onRemoteScreenStreamSuspended?: (userId: ExternalParticipantId, suspended: boolean) => void;
405
457
  /**
406
458
  * Получен стрим с экрана собеседника.
407
459
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
@@ -433,7 +485,7 @@ export type ParamsObject = {
433
485
  /**
434
486
  * Начат звонок
435
487
  */
436
- onConversation?: (userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[], rooms?: Rooms) => void;
488
+ onConversation?: (userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants: ExternalParticipant[], rooms?: Rooms) => void;
437
489
  /**
438
490
  * Начальный список участников для постраничного звонка
439
491
  */
@@ -441,7 +493,7 @@ export type ParamsObject = {
441
493
  /**
442
494
  * Изменились данные стрима собеседника
443
495
  */
444
- onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers?: ExternalParticipantListMarkers) => void;
496
+ onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null) => void;
445
497
  /**
446
498
  * Изменились данные стрима собеседника
447
499
  */
@@ -457,23 +509,23 @@ export type ParamsObject = {
457
509
  /**
458
510
  * Полученны данные по собственным стримам (лайв/мувик)
459
511
  */
460
- onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo) => void;
512
+ onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
461
513
  /**
462
514
  * Полученны данные по собственным остановленным стримам (лайв/мувик)
463
515
  */
464
- onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo) => void;
516
+ onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
465
517
  /**
466
518
  * Добавили участника
467
519
  */
468
- onParticipantAdded?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
520
+ onParticipantAdded?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers | null) => void;
469
521
  /**
470
522
  * Участник присоединился к звонку
471
523
  */
472
- onParticipantJoined?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
524
+ onParticipantJoined?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers) => void;
473
525
  /**
474
526
  * Изменились данные состояний собеседника
475
527
  */
476
- onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers?: ExternalParticipantListMarkers) => void;
528
+ onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null) => void;
477
529
  /**
478
530
  * Изменился статус соединения собеседников
479
531
  */
@@ -489,7 +541,7 @@ export type ParamsObject = {
489
541
  /**
490
542
  * Пользователь отключился от звонка
491
543
  */
492
- onRemoteRemoved?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
544
+ onRemoteRemoved?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers | null) => void;
493
545
  /**
494
546
  * Изменилось состояние звонка
495
547
  */
@@ -513,7 +565,7 @@ export type ParamsObject = {
513
565
  /**
514
566
  * Закрепляет/открепляет собеседника для всех
515
567
  */
516
- onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers, roomId?: number | null) => void;
568
+ onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null) => void;
517
569
  /**
518
570
  * Закрепляет/открепляет текущего пользователя у других собеседников
519
571
  */
@@ -604,13 +656,15 @@ export type ParamsObject = {
604
656
  */
605
657
  onAutoplayError?: () => void;
606
658
  /**
607
- * Изменилось состояние зала ожидания
659
+ * Изменилось состояние зала ожидания/зала в режиме Audience
608
660
  *
609
661
  * @param eventType Тип события
610
- * @param totalCount Количество ожидающих
662
+ * @param totalCount Количество ожидающих/слушателей
611
663
  * @param firstParticipants Первые несколько ожидающих в зале
664
+ * @param addedParticipantIds Некоторое количество участников, добавленных в зал
665
+ * @param removedParticipantIds Некоторое количество участников, убранных из зала
612
666
  */
613
- onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[]) => void;
667
+ onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]) => void;
614
668
  /**
615
669
  * Получен микшированный аудио стрим.
616
670
  * @hidden
@@ -684,13 +738,32 @@ export type ParamsObject = {
684
738
  * @param roomId Id Комнаты
685
739
  */
686
740
  onAsrSet?: (data: IAsrData | null, roomId: number | null) => void;
741
+ /**
742
+ * Одобрено повышение пользователя в зеле ожидания/зале в режиме Audience
743
+ *
744
+ * @param adminParticipantId админ, одобривший повышение
745
+ */
746
+ onPromotionApproved?: (adminParticipantId: ExternalParticipantId) => void;
747
+ /**
748
+ * Участник повышен/разжалован в зале ожидания/зале в режиме Audience
749
+ *
750
+ * @param demoted участник разжалован
751
+ */
752
+ onPromoted?: (demoted: boolean) => void;
753
+ /**
754
+ * Поддержка переключения качества видео в зависимости от сети
755
+ * Только для режима p2p
756
+ *
757
+ * _По умолчанию: `false`_
758
+ */
759
+ switchVideoAtBadNetwork: boolean;
687
760
  };
688
761
  export default abstract class Params {
689
762
  private static _params;
690
763
  static set(data: {
691
764
  [key: string]: any;
692
765
  }): void;
693
- static get(name: string): any;
766
+ static get<N extends keyof ParamsObject>(name: N): ParamsObject[N];
694
767
  static get appName(): string;
695
768
  static get appVersion(): number;
696
769
  static get sdkVersion(): string;
@@ -704,8 +777,8 @@ export default abstract class Params {
704
777
  static set externalUserType(value: string);
705
778
  static get device(): string;
706
779
  static get apiKey(): string;
707
- static get apiEnv(): string;
708
- static get apiEndpoint(): string;
780
+ static get apiEnv(): IApiEnv;
781
+ static apiEndpoint(apiEnv?: IApiEnv): string;
709
782
  static get authToken(): string;
710
783
  static set authToken(value: string);
711
784
  static get anonymToken(): string;
@@ -793,12 +866,11 @@ export default abstract class Params {
793
866
  static get fastScreenShare(): boolean;
794
867
  static get screenShareCongestionControl(): boolean;
795
868
  static get screenShareCongestionControlThreshold(): number;
796
- static get api(): {
797
- /** таймаут для батчинга на получение externalId */
798
- userIdsByOkBatchedTimeout: number;
799
- };
800
869
  static get fastScreenShareWidth(): number;
801
870
  static get fastScreenShareHeight(): number;
802
871
  static get newMuteRules(): boolean;
872
+ static get videoSuspend(): boolean;
873
+ static get enumerateDevicesDelay(): number;
803
874
  static getScreenFrameRate(fastScreenShare: boolean): number;
875
+ static get switchVideoAtBadNetwork(): boolean;
804
876
  }
package/static/Utils.d.ts CHANGED
@@ -17,8 +17,8 @@ declare namespace Utils {
17
17
  port: any;
18
18
  } | null>;
19
19
  function composeUserId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
20
- function composeParticipantId(id: CompositeUserId | OkUserId, type: UserType, deviceIdx: number): ParticipantId;
21
- function compose(compositeId: CompositeUserId, deviceIdx: number): ParticipantId;
20
+ function composeParticipantId(id: CompositeUserId | OkUserId, type: UserType, deviceIdx?: number): ParticipantId;
21
+ function compose(compositeId: CompositeUserId, deviceIdx?: number): ParticipantId;
22
22
  function composeId(participant: SignalingMessage.Participant): ParticipantId;
23
23
  function composeMessageId(message: SignalingMessage): ParticipantId;
24
24
  function decomposeId(compositeId: CompositeUserId | OkUserId): {
package/types/Asr.d.ts CHANGED
@@ -17,7 +17,7 @@ export interface IAsrStartParams {
17
17
  /**
18
18
  * Наименование файла в который сохранится расшифровка
19
19
  */
20
- name: string;
20
+ fileName: string;
21
21
  /**
22
22
  * ID комнаты, для запуска ASR в сессионных залах
23
23
  */
@@ -0,0 +1,8 @@
1
+ import { ExternalId } from './ExternalId';
2
+ /**
3
+ * Ответ на запрос `getHandQueue`
4
+ */
5
+ export type AudienceModeHandsResponse = {
6
+ participants: ExternalId[];
7
+ totalCount: number;
8
+ };
@@ -51,6 +51,7 @@ export type ConversationData = {
51
51
  needRate: boolean;
52
52
  /** @hidden */
53
53
  recordsInfoByRoom: Map<number | null, RecordInfo | null>;
54
+ /** @hidden */
54
55
  asrInfoByRoom: Map<number | null, AsrInfo | null>;
55
56
  chatId: string | null;
56
57
  /** @hidden */
@@ -73,4 +74,6 @@ export type ConversationData = {
73
74
  waitingHall: boolean;
74
75
  observer: boolean;
75
76
  roomId: number | null;
77
+ audienceMode: boolean;
78
+ restricted: boolean;
76
79
  };
@@ -15,22 +15,16 @@ export declare enum ExternalIdType {
15
15
  }
16
16
  export type ExternalUserId = string;
17
17
  export declare namespace ExternalIdUtils {
18
- function fromIds(ids: (string | ExternalId)[]): ExternalId[];
19
- function fromId(id: string, type?: ExternalIdType): ExternalId;
20
- function fromSignaling(signalingId: SignalingMessage.ExternalId): ExternalId;
18
+ function fromIds(ids: ExternalUserId[] | ExternalId[]): ExternalId[];
19
+ function fromId(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
20
+ function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx?: number): ExternalParticipantId;
21
21
  function toString(externalId: ExternalId): ExternalIdString;
22
- function fromIdToString(id: string, type?: ExternalIdType): ExternalIdString;
23
- function fromString(stringId: ExternalIdString): ExternalId;
24
- function compare(id1: ExternalId, id2: ExternalId): boolean;
22
+ function fromIdToString(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalIdString;
23
+ function fromString(stringId: ExternalIdString): ExternalParticipantId;
24
+ function compare(id1: ExternalParticipantId, id2: ExternalParticipantId): boolean;
25
+ function getDeviceIdx(externalId: ExternalId | null): number;
25
26
  }
26
27
  export type ExternalIdString = string;
27
- export declare namespace ExternalParticipantIdUtils {
28
- function fromId(id: string, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
29
- function toString(externalId: ExternalParticipantId): ExternalParticipantIdString;
30
- function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx: number): ExternalParticipantId;
31
- function getDeviceIdx(externalId: string | ExternalParticipantId | null): number;
32
- }
33
- export type ExternalParticipantIdString = string;
34
28
  /**
35
29
  * Идентификатор внешнего пользователя
36
30
  */
@@ -38,7 +32,7 @@ export interface ExternalId {
38
32
  /**
39
33
  * ID пользователя
40
34
  */
41
- id: string;
35
+ id: ExternalUserId;
42
36
  /**
43
37
  * Тип пользователя
44
38
  */
@@ -48,6 +42,10 @@ export interface ExternalId {
48
42
  * @hidden
49
43
  */
50
44
  observer?: boolean;
45
+ /**
46
+ * Индекс устройства (позволяет отличать участников, которые присоединяются к звонку под одной учётной записью с разных устройств)
47
+ */
48
+ deviceIdx?: number;
51
49
  }
52
50
  /**
53
51
  * Идентификатор участника звонка
@@ -94,7 +92,7 @@ export interface ExternalParticipant {
94
92
  * Разрешения на включение устройств
95
93
  */
96
94
  unmuteOptions: MediaOption[];
97
- markers?: ExternalParticipantListMarkers | null;
95
+ markers: ExternalParticipantListMarkers | null;
98
96
  movieShareInfos?: ISharedMovieInfo[];
99
97
  }
100
98
  /**
@@ -13,7 +13,7 @@ export default MuteStates;
13
13
  * Состояние устройств пользователя установленное админом звонка
14
14
  */
15
15
  export interface IMuteParticipantParams {
16
- externalId?: string | ExternalParticipantId | null;
16
+ externalId?: ExternalParticipantId | null;
17
17
  muteStates: MuteStates;
18
18
  requestedMedia?: MediaOption[];
19
19
  roomId?: number | null;
@@ -0,0 +1 @@
1
+ export type IApiEnv = 'AUTO' | 'PROD' | 'PROD_OK' | 'TEST' | 'VIDEOTEST' | string;
@@ -15,12 +15,12 @@ export type Layout = {
15
15
  /**
16
16
  * Приоритет
17
17
  */
18
- priority: number;
18
+ priority?: number;
19
19
  /**
20
20
  * Как видео вписано в вьюпорт, по аналогии с CSS object-fit.
21
21
  * Поддерживаемые значения: `cv` и `cn`, что соответствует CSS `cover` и `contain`
22
22
  */
23
- fit: string;
23
+ fit?: string;
24
24
  };
25
25
  /**
26
26
  * Запрос остановки стрима
@@ -7,7 +7,6 @@ export declare enum MediaType {
7
7
  SCREEN = "SCREEN",
8
8
  STREAM = "STREAM",
9
9
  MOVIE = "MOVIE",
10
- AUDIOSHARE = "AUDIOSHARE",
11
10
  ANIMOJI = "ANIMOJI"
12
11
  }
13
12
  export declare function serializeParticipantStreamDescription(description: ParticipantStreamDescription): StreamDescriptionString;
@@ -0,0 +1,3 @@
1
+ export interface RequestAsr {
2
+ request: boolean;
3
+ }
package/types/Room.d.ts CHANGED
@@ -88,4 +88,7 @@ export interface RoomParticipantUpdate {
88
88
  removedParticipantMarkers?: ParticipantListMarkers[];
89
89
  removedParticipantIds?: ExternalParticipantId[];
90
90
  }
91
+ /**
92
+ * ID комнаты
93
+ */
91
94
  export type IRoomId = number | null;
@@ -18,6 +18,7 @@ import MediaSettings from './MediaSettings';
18
18
  import { ISharedMovieInfo, ISharedMovieState, ISharedMovieStoppedInfo } from './MovieShare';
19
19
  import MuteStates from './MuteStates';
20
20
  import { CompositeUserId, OkUserId, ParticipantId, ParticipantListMarker as ParticipantParticipantListMarker, ParticipantListMarkers, ParticipantListType as ParticipantParticipantListType } from './Participant';
21
+ import { ParticipantStreamDescription } from './ParticipantStreamDescription';
21
22
  import { IRoomId } from './Room';
22
23
  import VideoSettings from './VideoSettings';
23
24
  import { ChatRoom } from './WaitingHall';
@@ -51,6 +52,17 @@ declare namespace SignalingMessage {
51
52
  }
52
53
  export type ParticipantListType = ParticipantParticipantListType;
53
54
  export type ParticipantListMarker = ParticipantParticipantListMarker;
55
+ export type ParticipantUpdateInfo = {
56
+ participantStreamDescription: ParticipantStreamDescription | null;
57
+ streamId: string;
58
+ rtpTimestamp: number | null;
59
+ sequenceNumber: number;
60
+ fastScreenShare: boolean;
61
+ };
62
+ export type ParticipantSuspendInfo = {
63
+ participantStreamDescription: ParticipantStreamDescription | null;
64
+ suspend: boolean;
65
+ };
54
66
  export interface Participant {
55
67
  id: OkUserId;
56
68
  idType?: UserType;
@@ -372,6 +384,12 @@ declare namespace SignalingMessage {
372
384
  export interface AsrStopNotification extends Notification {
373
385
  roomId?: number;
374
386
  }
387
+ export interface ParticipantSourcesUpdateNotification extends Notification {
388
+ participantUpdateInfos: ParticipantUpdateInfo[];
389
+ }
390
+ export interface ParticipantSourcesSuspendNotification extends Notification {
391
+ participantSuspendInfos: ParticipantSuspendInfo[];
392
+ }
375
393
  export {};
376
394
  }
377
395
  export default SignalingMessage;
@@ -1,5 +1,4 @@
1
1
  import { TransportTopology } from '../classes/transport/Transport';
2
- import { ExternalParticipantId } from './ExternalId';
3
2
  export type StatTransport = {
4
3
  totalRoundTripTime: number;
5
4
  currentRoundTripTime: number;
@@ -7,6 +6,11 @@ export type StatTransport = {
7
6
  bytesReceived: number;
8
7
  local?: ILocalIceCandidateStat;
9
8
  remote?: IRemoteIceCandidateStat;
9
+ averageNetStat?: AverageNetStat;
10
+ };
11
+ export type AverageNetStat = {
12
+ currentRoundTripTime: number;
13
+ lostPercent: number;
10
14
  };
11
15
  export interface IRemoteIceCandidateStat {
12
16
  type: RTCIceCandidateType;
@@ -32,7 +36,7 @@ export type StatRtp = {
32
36
  pliCount: number;
33
37
  firCount: number;
34
38
  nackCount: number;
35
- userId?: string | ExternalParticipantId;
39
+ userId?: string;
36
40
  bandwidth?: number;
37
41
  packetLoss?: number;
38
42
  clockRate?: number;
@@ -60,6 +64,7 @@ export type StatItem = {
60
64
  timestamp: number;
61
65
  transport: StatTransport;
62
66
  rtps: StatRtp[];
67
+ remoteRtps?: StatRtp[];
63
68
  };
64
69
  export type StatResult = {
65
70
  inbound: {