@vkontakte/calls-sdk 2.8.2-dev.e1d7e72.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 (60) hide show
  1. package/CallsSDK.d.ts +78 -41
  2. package/abstract/BaseApi.d.ts +11 -9
  3. package/abstract/BaseSignaling.d.ts +10 -8
  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 +27 -21
  8. package/classes/FpsMeter.d.ts +10 -0
  9. package/classes/MediaSource.d.ts +5 -4
  10. package/classes/ParticipantIdRegistry.d.ts +5 -0
  11. package/classes/ProducerCommandSerializationService.d.ts +2 -0
  12. package/classes/codec/IEncoder.d.ts +1 -1
  13. package/classes/codec/LibVPxEncoder.d.ts +1 -1
  14. package/classes/codec/Types.d.ts +12 -2
  15. package/classes/codec/WebCodecsEncoder.d.ts +1 -1
  16. package/classes/screenshare/PacketHistory.d.ts +3 -2
  17. package/classes/screenshare/ScreenCaptureSender.d.ts +14 -4
  18. package/classes/screenshare/ScreenCongestionControl.d.ts +7 -2
  19. package/classes/screenshare/StreamBuilder.d.ts +1 -0
  20. package/classes/screenshare/Utils.d.ts +1 -1
  21. package/classes/stat/StatAggregator.d.ts +1 -1
  22. package/classes/transport/DirectTransport.d.ts +5 -0
  23. package/classes/transport/ServerTransport.d.ts +2 -0
  24. package/classes/transport/Statistics.d.ts +20 -2
  25. package/classes/transport/Transport.d.ts +2 -1
  26. package/constants/Rooms.d.ts +1 -0
  27. package/default/Api.d.ts +14 -14
  28. package/default/ApiExternal.d.ts +11 -0
  29. package/default/Signaling.d.ts +12 -11
  30. package/enums/SignalingCommandType.d.ts +6 -2
  31. package/enums/SignalingNotification.d.ts +2 -2
  32. package/package.json +3 -6
  33. package/static/ApiTransport.d.ts +3 -1
  34. package/static/AuthData.d.ts +6 -6
  35. package/static/External.d.ts +59 -18
  36. package/static/Params.d.ts +127 -42
  37. package/static/Utils.d.ts +8 -4
  38. package/types/Asr.d.ts +22 -1
  39. package/types/AudienceMode.d.ts +8 -0
  40. package/types/Conversation.d.ts +4 -0
  41. package/types/ExternalId.d.ts +13 -15
  42. package/types/{Logger.d.ts → IEventualStatLog.d.ts} +2 -2
  43. package/types/MovieShare.d.ts +2 -2
  44. package/types/MuteStates.d.ts +1 -1
  45. package/types/Params.d.ts +1 -0
  46. package/types/Participant.d.ts +2 -2
  47. package/types/ParticipantLayout.d.ts +2 -2
  48. package/types/ParticipantListChunk.d.ts +1 -1
  49. package/types/ParticipantStreamDescription.d.ts +0 -1
  50. package/types/PerfStatReporter.d.ts +1 -1
  51. package/types/RequestAsr.d.ts +3 -0
  52. package/types/Room.d.ts +4 -0
  53. package/types/SignalingMessage.d.ts +34 -4
  54. package/types/Statistics.d.ts +9 -4
  55. package/types/Streams.d.ts +10 -0
  56. package/types/VideoSettings.d.ts +15 -0
  57. package/utils/ArrayDequeue.d.ts +1 -1
  58. package/utils/ArrayList.d.ts +5 -2
  59. package/utils/FastList.d.ts +5 -2
  60. package/utils/IList.d.ts +5 -2
@@ -1,5 +1,6 @@
1
1
  import type { VideoEffects } from '@vkontakte/calls-video-effects';
2
2
  import type * as Vmoji from '@vkontakte/calls-vmoji';
3
+ import { IAsrData } from '../types/Asr';
3
4
  import { ConversationData } from '../types/Conversation';
4
5
  import HangupReason from '../classes/HangupReason';
5
6
  import { MediaTrackKind } from '../classes/MediaSource';
@@ -18,8 +19,8 @@ import MediaSettings from '../types/MediaSettings';
18
19
  import { IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieStoppedInfo } from '../types/MovieShare';
19
20
  import MuteStates from '../types/MuteStates';
20
21
  import { ParticipantStateMapped } from '../types/Participant';
21
- import { Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
22
- import AuthData from './AuthData';
22
+ import { IRoomId, Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
23
+ import { IApiEnv } from '../types/Params';
23
24
  import { DebugMessageType } from './Debug';
24
25
  import { ParticipantStatus } from './External';
25
26
  import { JSONObject } from './Json';
@@ -28,17 +29,26 @@ import { FacingMode } from './WebRTCUtils';
28
29
  * Параметры инициализации
29
30
  */
30
31
  export type ParamsObject = {
32
+ /** @hidden */
31
33
  platform: string;
34
+ /** @hidden */
32
35
  clientType: string;
36
+ /** @hidden */
33
37
  externalUserType: string;
38
+ /** @hidden */
34
39
  device: string;
35
40
  /**
36
41
  * API ключ приложения
37
42
  */
38
43
  apiKey: string;
39
- apiEnv?: 'AUTO' | 'PROD' | 'PROD_OK' | 'TEST' | 'VIDEOTEST' | string;
40
44
  /** @hidden */
41
- apiAuth?: typeof AuthData;
45
+ apiEnv: IApiEnv;
46
+ /** @hidden */
47
+ apiAuth?: {
48
+ sessionKey?: string;
49
+ sessionSecretKey?: string;
50
+ accessToken?: string;
51
+ };
42
52
  /**
43
53
  * Токен авторизации
44
54
  */
@@ -58,18 +68,29 @@ export type ParamsObject = {
58
68
  externalDomain: string;
59
69
  /** @hidden */
60
70
  iceServers: IceServer[];
71
+ /** @hidden */
61
72
  wssBase: string;
73
+ /** @hidden */
62
74
  wssToken: string;
75
+ /** @hidden */
63
76
  signalingReconnectDelay: number;
77
+ /** @hidden */
64
78
  signalingReconnectMaxDelay: number;
79
+ /** @hidden */
65
80
  signalingReconnectMaxCount: number;
81
+ /** @hidden */
66
82
  waitConnectionDelay: number;
83
+ /** @hidden */
67
84
  waitResponseDelay: number;
85
+ /** @hidden */
68
86
  waitMessageDelay: number;
87
+ /** @hidden */
69
88
  waitAnotherTabDelay: number;
89
+ /** @hidden */
70
90
  debugLog: boolean;
71
91
  /**
72
- * Не использовать прямое P2P соединение, чтобы не отправлять в ICE-кандидатах персональные IP-адреса
92
+ * Не отправлять в ICE-кандидатах персональные IP-адреса
93
+ * @see [RTCIceTransportPolicy](https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum)
73
94
  *
74
95
  * _По умолчанию: `false`_
75
96
  */
@@ -115,7 +136,7 @@ export type ParamsObject = {
115
136
  *
116
137
  * _По умолчанию: `FacingMode.USER` для мобильных устройств и `null` для остальных_
117
138
  */
118
- videoFacingMode?: FacingMode;
139
+ videoFacingMode: FacingMode | null;
119
140
  /**
120
141
  * FPS трансляции экрана
121
142
  *
@@ -129,7 +150,7 @@ export type ParamsObject = {
129
150
  */
130
151
  displaySurface: DisplayCaptureSurfaceType;
131
152
  /**
132
- * Экземпляр класса `VideoEffects` из `@vkontakte/calls-video-effects`
153
+ * Экземпляр класса `VideoEffects` из [`@vkontakte/calls-video-effects`](https://npmjs.com/package/@vkontakte/calls-video-effects)
133
154
  *
134
155
  * Можно установить позднее методом `setVideoEffects`
135
156
  */
@@ -147,7 +168,7 @@ export type ParamsObject = {
147
168
  */
148
169
  videoEffectMaxHeight: number;
149
170
  /**
150
- * Экземпляр класса `Vmoji` из `@vkontakte/calls-vmoji`
171
+ * Экземпляр класса `Vmoji` из [`@vkontakte/calls-vmoji`](https://npmjs.com/package/@vkontakte/calls-vmoji)
151
172
  *
152
173
  * Можно установить позднее методом `setVmoji`
153
174
  */
@@ -155,10 +176,12 @@ export type ParamsObject = {
155
176
  /**
156
177
  * Настройки отрисовки Vmoji.
157
178
  *
158
- * Экземпляр класса `RenderingOptions` из `@vkontakte/calls-vmoji`
179
+ * Экземпляр класса `RenderingOptions` из [`@vkontakte/calls-vmoji`](https://npmjs.com/package/@vkontakte/calls-vmoji)
159
180
  */
160
181
  vmojiRenderingOptions: Partial<Vmoji.RenderingOptions> | null;
182
+ /** @hidden */
161
183
  iceRestartWaitTime: number;
184
+ /** @hidden */
162
185
  transportConnectionWaitTime: number;
163
186
  /**
164
187
  * Частота получения статистики в миллисекундах
@@ -191,10 +214,13 @@ export type ParamsObject = {
191
214
  voiceParams: {
192
215
  [key: string]: number;
193
216
  };
217
+ /** @hidden */
194
218
  specListenerParams: {
195
219
  [key: string]: number;
196
220
  };
221
+ /** @hidden */
197
222
  perfStatReportEnabled: boolean;
223
+ /** @hidden */
198
224
  callStatReportEnabled: boolean;
199
225
  /**
200
226
  * Отдавать приоритет кодеку H264 для исходящего видео
@@ -209,6 +235,7 @@ export type ParamsObject = {
209
235
  * _По умолчанию: `true`_
210
236
  */
211
237
  preferVP9: boolean;
238
+ /** @hidden */
212
239
  audioNack: boolean;
213
240
  /**
214
241
  * Принимать параллельно видео с камеры и трансляцию экрана от одного и того же участника.
@@ -246,6 +273,7 @@ export type ParamsObject = {
246
273
  * @deprecated
247
274
  */
248
275
  producerScreenDataChannel: boolean;
276
+ /** @hidden */
249
277
  asrDataChannel: boolean;
250
278
  /**
251
279
  * Размер пакета для отправки трансляции экрана в датаканал в байтах.
@@ -253,7 +281,9 @@ export type ParamsObject = {
253
281
  * @hidden
254
282
  */
255
283
  consumerScreenDataChannelPacketSize: number;
284
+ /** @hidden */
256
285
  screenShareWebmBuilder: boolean;
286
+ /** @hidden */
257
287
  noiseSuppression: boolean;
258
288
  /**
259
289
  * Количество входящих видео-треков.
@@ -271,7 +301,9 @@ export type ParamsObject = {
271
301
  * _По умолчанию: `30`_
272
302
  */
273
303
  videoTracksCount: number;
304
+ /** @hidden */
274
305
  movieShare: boolean;
306
+ /** @hidden */
275
307
  breakVideoPayloadTypes: boolean;
276
308
  /**
277
309
  * Включить постраничный вывод участников. Работает только если включено videoTracksCount (слоты)
@@ -349,7 +381,7 @@ export type ParamsObject = {
349
381
  * Порог задержки (мс), выше которого включается congestion control для шаринга
350
382
  * @hidden
351
383
  */
352
- screenShareCongestionControlThreshold: number | null;
384
+ screenShareCongestionControlThreshold: number;
353
385
  /**
354
386
  * Включить возможность захвата звука при трансляции экрана
355
387
  *
@@ -362,16 +394,33 @@ export type ParamsObject = {
362
394
  * _По умолчанию: `false`_
363
395
  */
364
396
  fastScreenShare: boolean;
365
- /**
366
- * Настройки api
367
- */
368
- api: {
369
- /** таймаут для батчинга на получение externalId */
370
- userIdsByOkBatchedTimeout: number;
371
- };
397
+ /** @hidden */
372
398
  fastScreenShareFrameRate: number;
399
+ /** @hidden */
373
400
  fastScreenShareWidth: number;
401
+ /** @hidden */
374
402
  fastScreenShareHeight: number;
403
+ /**
404
+ * Использовать новые правила allMute для админа
405
+ */
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;
375
424
  /**
376
425
  * Получен локальный стрим с камеры/микрофона
377
426
  */
@@ -397,6 +446,14 @@ export type ParamsObject = {
397
446
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
398
447
  */
399
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;
400
457
  /**
401
458
  * Получен стрим с экрана собеседника.
402
459
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
@@ -428,7 +485,7 @@ export type ParamsObject = {
428
485
  /**
429
486
  * Начат звонок
430
487
  */
431
- 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;
432
489
  /**
433
490
  * Начальный список участников для постраничного звонка
434
491
  */
@@ -436,7 +493,7 @@ export type ParamsObject = {
436
493
  /**
437
494
  * Изменились данные стрима собеседника
438
495
  */
439
- onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers?: ExternalParticipantListMarkers) => void;
496
+ onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null) => void;
440
497
  /**
441
498
  * Изменились данные стрима собеседника
442
499
  */
@@ -444,31 +501,31 @@ export type ParamsObject = {
444
501
  /**
445
502
  * Полученны данные по стримам (лайв/мувик) от собеседника
446
503
  */
447
- onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo) => void;
504
+ onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
448
505
  /**
449
506
  * Полученны данные по остановленным стримам (лайв/мувик) от собеседника
450
507
  */
451
- onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo) => void;
508
+ onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
452
509
  /**
453
510
  * Полученны данные по собственным стримам (лайв/мувик)
454
511
  */
455
- onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo) => void;
512
+ onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
456
513
  /**
457
514
  * Полученны данные по собственным остановленным стримам (лайв/мувик)
458
515
  */
459
- onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo) => void;
516
+ onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
460
517
  /**
461
518
  * Добавили участника
462
519
  */
463
- onParticipantAdded?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
520
+ onParticipantAdded?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers | null) => void;
464
521
  /**
465
522
  * Участник присоединился к звонку
466
523
  */
467
- onParticipantJoined?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
524
+ onParticipantJoined?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers) => void;
468
525
  /**
469
526
  * Изменились данные состояний собеседника
470
527
  */
471
- onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers?: ExternalParticipantListMarkers) => void;
528
+ onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null) => void;
472
529
  /**
473
530
  * Изменился статус соединения собеседников
474
531
  */
@@ -484,7 +541,7 @@ export type ParamsObject = {
484
541
  /**
485
542
  * Пользователь отключился от звонка
486
543
  */
487
- onRemoteRemoved?: (userId: ExternalParticipantId, markers?: ExternalParticipantListMarkers) => void;
544
+ onRemoteRemoved?: (userId: ExternalParticipantId, markers: ExternalParticipantListMarkers | null) => void;
488
545
  /**
489
546
  * Изменилось состояние звонка
490
547
  */
@@ -508,7 +565,7 @@ export type ParamsObject = {
508
565
  /**
509
566
  * Закрепляет/открепляет собеседника для всех
510
567
  */
511
- onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers, roomId?: number | null) => void;
568
+ onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null) => void;
512
569
  /**
513
570
  * Закрепляет/открепляет текущего пользователя у других собеседников
514
571
  */
@@ -599,13 +656,15 @@ export type ParamsObject = {
599
656
  */
600
657
  onAutoplayError?: () => void;
601
658
  /**
602
- * Изменилось состояние зала ожидания
659
+ * Изменилось состояние зала ожидания/зала в режиме Audience
603
660
  *
604
661
  * @param eventType Тип события
605
- * @param totalCount Количество ожидающих
662
+ * @param totalCount Количество ожидающих/слушателей
606
663
  * @param firstParticipants Первые несколько ожидающих в зале
664
+ * @param addedParticipantIds Некоторое количество участников, добавленных в зал
665
+ * @param removedParticipantIds Некоторое количество участников, убранных из зала
607
666
  */
608
- onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[]) => void;
667
+ onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]) => void;
609
668
  /**
610
669
  * Получен микшированный аудио стрим.
611
670
  * @hidden
@@ -665,19 +724,46 @@ export type ParamsObject = {
665
724
  * Начата текстовая расшифровка звонка
666
725
  * @param initiatorId Id пользователя, запустившего расшифровку звонка
667
726
  * @param movieId Id расшифровки
727
+ * @param roomId Id комнаты
668
728
  */
669
- onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number) => void;
729
+ onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null) => void;
670
730
  /**
671
731
  * Закончена текстовая расшифровка звонка
732
+ * @param roomId Id комнаты
733
+ */
734
+ onAsrStopped?: (roomId: number | null) => void;
735
+ /**
736
+ * Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)
737
+ * @param data Начальная информация по ASR
738
+ * @param roomId Id Комнаты
672
739
  */
673
- onAsrStopped?: () => void;
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;
674
760
  };
675
761
  export default abstract class Params {
676
762
  private static _params;
677
763
  static set(data: {
678
764
  [key: string]: any;
679
765
  }): void;
680
- static get(name: string): any;
766
+ static get<N extends keyof ParamsObject>(name: N): ParamsObject[N];
681
767
  static get appName(): string;
682
768
  static get appVersion(): number;
683
769
  static get sdkVersion(): string;
@@ -691,8 +777,8 @@ export default abstract class Params {
691
777
  static set externalUserType(value: string);
692
778
  static get device(): string;
693
779
  static get apiKey(): string;
694
- static get apiEnv(): string;
695
- static get apiEndpoint(): string;
780
+ static get apiEnv(): IApiEnv;
781
+ static apiEndpoint(apiEnv?: IApiEnv): string;
696
782
  static get authToken(): string;
697
783
  static set authToken(value: string);
698
784
  static get anonymToken(): string;
@@ -732,7 +818,6 @@ export default abstract class Params {
732
818
  static set videoEffectMaxWidth(value: number);
733
819
  static get videoEffectMaxHeight(): number;
734
820
  static set videoEffectMaxHeight(value: number);
735
- static get useVmoji(): boolean;
736
821
  static get vmoji(): typeof Vmoji | null;
737
822
  static set vmoji(value: typeof Vmoji | null);
738
823
  static get vmojiRenderingOptions(): Partial<Vmoji.RenderingOptions>;
@@ -770,7 +855,7 @@ export default abstract class Params {
770
855
  static get useParticipantListChunk(): boolean;
771
856
  static get useRooms(): boolean;
772
857
  static get participantListChunkInitIndex(): number;
773
- static get participantListChunkInitCount(): number;
858
+ static get participantListChunkInitCount(): number | null;
774
859
  static get serverAudioRed(): boolean;
775
860
  static get p2pAudioRed(): boolean;
776
861
  static get h264spsPpsIdrInKeyframe(): boolean;
@@ -781,11 +866,11 @@ export default abstract class Params {
781
866
  static get fastScreenShare(): boolean;
782
867
  static get screenShareCongestionControl(): boolean;
783
868
  static get screenShareCongestionControlThreshold(): number;
784
- static get api(): {
785
- /** таймаут для батчинга на получение externalId */
786
- userIdsByOkBatchedTimeout: number;
787
- };
788
869
  static get fastScreenShareWidth(): number;
789
870
  static get fastScreenShareHeight(): number;
871
+ static get newMuteRules(): boolean;
872
+ static get videoSuspend(): boolean;
873
+ static get enumerateDevicesDelay(): number;
790
874
  static getScreenFrameRate(fastScreenShare: boolean): number;
875
+ static get switchVideoAtBadNetwork(): boolean;
791
876
  }
package/static/Utils.d.ts CHANGED
@@ -11,10 +11,14 @@ declare namespace Utils {
11
11
  function patchRemoteSDP(sdp: string): string;
12
12
  function getPeerIdString(peerId: SignalingMessage.PeerId): string;
13
13
  function comparePeerId(peerId1: SignalingMessage.PeerId, peerId2: SignalingMessage.PeerId): boolean;
14
- function getPeerConnectionHostInfo(pc: RTCPeerConnection): Promise<any>;
14
+ function getPeerConnectionHostInfo(pc: RTCPeerConnection): Promise<{
15
+ type: any;
16
+ ip: any;
17
+ port: any;
18
+ } | null>;
15
19
  function composeUserId(id: CompositeUserId | OkUserId, type: UserType): CompositeUserId;
16
- function composeParticipantId(id: CompositeUserId | OkUserId, type: UserType, deviceIdx: number): ParticipantId;
17
- 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;
18
22
  function composeId(participant: SignalingMessage.Participant): ParticipantId;
19
23
  function composeMessageId(message: SignalingMessage): ParticipantId;
20
24
  function decomposeId(compositeId: CompositeUserId | OkUserId): {
@@ -65,7 +69,7 @@ declare namespace Utils {
65
69
  */
66
70
  function participantMarkerCompare(marker1: ExternalParticipantListMarker | undefined, marker2: ExternalParticipantListMarker | undefined): number;
67
71
  /** убирает все ключи со значением `V` на 1 уровне */
68
- function objectFilterOutValues<T extends Record<string, V>, V = unknown>(obj: T, value?: V | V[]): Partial<T>;
72
+ function objectFilterOutValues<T extends Record<string, V>, V = unknown>(obj: T, value?: unknown | unknown[]): Partial<T>;
69
73
  function objectReduce<R, T extends Object>(obj: T, callback: (acc: R, value: T[keyof T], key: keyof T) => R, initialValue: R): R;
70
74
  const setImmediate: (fn: VoidFunction) => VoidFunction;
71
75
  function isObject(obj: unknown): obj is object;
package/types/Asr.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ExternalParticipantId } from './ExternalId';
1
2
  import { ParticipantId } from './Participant';
2
3
  export interface AsrInfo {
3
4
  movieId: number;
@@ -16,5 +17,25 @@ export interface IAsrStartParams {
16
17
  /**
17
18
  * Наименование файла в который сохранится расшифровка
18
19
  */
19
- name: string;
20
+ fileName: string;
21
+ /**
22
+ * ID комнаты, для запуска ASR в сессионных залах
23
+ */
24
+ roomId?: number;
25
+ }
26
+ /**
27
+ * Параметры остановки расшифровки звонка
28
+ */
29
+ export interface IAsrStopParams {
30
+ /**
31
+ * ID комнаты, для запуска ASR в сессионных залах
32
+ */
33
+ roomId?: number;
34
+ }
35
+ /**
36
+ * Параметры для установки информации по расшифровке звонка
37
+ */
38
+ export interface IAsrData {
39
+ externalId: ExternalParticipantId;
40
+ movieId: number;
20
41
  }
@@ -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,8 @@ export type ConversationData = {
51
51
  needRate: boolean;
52
52
  /** @hidden */
53
53
  recordsInfoByRoom: Map<number | null, RecordInfo | null>;
54
+ /** @hidden */
55
+ asrInfoByRoom: Map<number | null, AsrInfo | null>;
54
56
  chatId: string | null;
55
57
  /** @hidden */
56
58
  asrInfo: AsrInfo | null;
@@ -72,4 +74,6 @@ export type ConversationData = {
72
74
  waitingHall: boolean;
73
75
  observer: boolean;
74
76
  roomId: number | null;
77
+ audienceMode: boolean;
78
+ restricted: boolean;
75
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;
95
+ markers: ExternalParticipantListMarkers | null;
98
96
  movieShareInfos?: ISharedMovieInfo[];
99
97
  }
100
98
  /**
@@ -1,6 +1,6 @@
1
1
  import Stat from '../enums/Stat';
2
2
  export interface IEventualStatLog {
3
3
  name: Stat;
4
- value?: number;
5
- [k: string]: number | string;
4
+ value?: number | null;
5
+ [k: string]: number | string | undefined | null;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import LiveStatus from '../enums/LiveStatus';
2
- import { CompositeUserId } from './Participant';
2
+ import { CompositeUserId, ParticipantId } from './Participant';
3
3
  import { MediaType } from './ParticipantStreamDescription';
4
4
  /**
5
5
  * Preview изображения ролика
@@ -65,7 +65,7 @@ export interface ISharedMovieState {
65
65
  * ID Инициатора совместного просмотра
66
66
  * @hidden
67
67
  */
68
- participantId: CompositeUserId;
68
+ participantId: ParticipantId;
69
69
  /**
70
70
  * Громкость
71
71
  */
@@ -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;
@@ -48,7 +48,7 @@ export interface Participant {
48
48
  externalId: ExternalParticipantId;
49
49
  mediaSettings: MediaSettings;
50
50
  state: ParticipantState;
51
- status: ParticipantStatus | null;
51
+ status: ParticipantStatus;
52
52
  remoteStream?: MediaStream | null;
53
53
  secondStream?: MediaStream | null;
54
54
  remoteVideoTrack?: MediaStreamTrack | null;
@@ -65,7 +65,7 @@ export interface Participant {
65
65
  muteStates: MuteStates;
66
66
  unmuteOptions: MediaOption[];
67
67
  observedIds: CompositeUserId[];
68
- markers?: ExternalParticipantListMarkers;
68
+ markers: ExternalParticipantListMarkers | null;
69
69
  movieShareInfos?: ISharedMovieInfo[];
70
70
  isInRoom?: boolean;
71
71
  }
@@ -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
  * Запрос остановки стрима
@@ -1,7 +1,7 @@
1
1
  import { ParticipantListMarker, ParticipantListType } from './Participant';
2
2
  export interface ParticipantListChunkParameters {
3
3
  listType: ParticipantListType;
4
- count: number;
4
+ count: number | null;
5
5
  /** Anchor in sorted list to start from. Mutually exclusive with "fromIdx" */
6
6
  fromMarker?: ParticipantListMarker;
7
7
  /** Position in sorted list to start from (0-based). Mutually exclusive with "fromMarker" */
@@ -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;
@@ -38,5 +38,5 @@ export interface CallStatReport {
38
38
  export interface ICallStatLog extends Pick<CallStatReport, 'call_topology' | 'nack_sent' | 'nack_received' | 'pli_sent' | 'pli_received' | 'fir_sent' | 'fir_received' | 'frames_dropped'>, Pick<Partial<CallStatReport>, 'rtt' | 'jitter_video' | 'jitter_audio' | 'interframe_delay_variance' | 'freeze_count' | 'total_freezes_duration' | 'ss_freeze_count' | 'ss_total_freezes_duration' | 'inserted_audio_samples_for_deceleration' | 'removed_audio_samples_for_acceleration' | 'concealed_audio_samples' | 'total_audio_energy' | 'local_address' | 'local_connection_type' | 'network_type' | 'transport' | 'remote_address' | 'remote_connection_type'> {
39
39
  concealed_silent_audio_samples?: number;
40
40
  concealment_audio_avg_size?: number;
41
- [k: string]: string | number;
41
+ [k: string]: string | number | undefined;
42
42
  }
@@ -0,0 +1,3 @@
1
+ export interface RequestAsr {
2
+ request: boolean;
3
+ }