@vkontakte/calls-sdk 2.8.11-dev.3d9bb708.0 → 2.8.11-dev.41bc9113.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.
- package/CallsSDK.d.ts +51 -23
- package/abstract/BaseApi.d.ts +3 -5
- package/abstract/BaseSignaling.d.ts +5 -7
- package/calls-sdk.cjs.js +16 -13
- package/calls-sdk.esm.js +11757 -13
- package/classes/AudioFix.d.ts +5 -1
- package/classes/AudioOutput.d.ts +5 -1
- package/classes/CallRegistry.d.ts +8 -1
- package/classes/Conversation.d.ts +14 -6
- package/classes/DebugInfo.d.ts +3 -0
- package/classes/DisplayLayoutRequester.d.ts +39 -0
- package/classes/ExternalIdCache.d.ts +19 -0
- package/classes/MediaSource.d.ts +11 -3
- package/classes/ParticipantIdRegistry.d.ts +3 -0
- package/classes/ProducerCommandSerializationService.d.ts +3 -0
- package/classes/SignalingActor.d.ts +3 -1
- package/classes/SpeakerDetector.d.ts +2 -1
- package/classes/SpecListener.d.ts +10 -1
- package/classes/StatsLogger.d.ts +29 -0
- package/classes/VideoEffectsFpsLimiter.d.ts +3 -0
- package/classes/asr/AsrReceiver.d.ts +3 -1
- package/classes/codec/LibVPxDecoder.d.ts +3 -0
- package/classes/codec/LibVPxEncoder.d.ts +3 -1
- package/classes/codec/WebCodecsDecoder.d.ts +3 -0
- package/classes/codec/WebCodecsEncoder.d.ts +3 -1
- package/classes/codec/WorkerBase.d.ts +5 -0
- package/classes/screenshare/BaseStreamBuilder.d.ts +4 -1
- package/classes/screenshare/CanvasRenderer.d.ts +3 -1
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +7 -1
- package/classes/screenshare/ScreenCaptureSender.d.ts +5 -1
- package/classes/screenshare/ScreenCongestionControl.d.ts +3 -1
- package/classes/screenshare/StreamBuilder.d.ts +5 -1
- package/classes/screenshare/TrackGeneratorRenderer.d.ts +3 -1
- package/classes/screenshare/WebmBuilder.d.ts +3 -1
- package/classes/stat/CodecStatsAggregator.d.ts +7 -7
- package/classes/stat/ConversationStats.d.ts +21 -0
- package/classes/stat/StatAggregator.d.ts +6 -6
- package/classes/stat/StatFirstMediaReceived.d.ts +4 -1
- package/classes/stat/StatPings.d.ts +9 -9
- package/classes/stat/StatScreenShareFirstFrame.d.ts +3 -1
- package/classes/stat/StatSignalingCommands.d.ts +8 -8
- package/classes/transport/BaseTransport.d.ts +1 -1
- package/classes/transport/DirectStatReporter.d.ts +3 -1
- package/classes/transport/DirectTransport.d.ts +9 -1
- package/classes/transport/PerfStatReporter.d.ts +5 -1
- package/classes/transport/ServerTransport.d.ts +10 -2
- package/classes/transport/Transport.d.ts +11 -14
- package/default/Api.d.ts +4 -14
- package/default/Signaling.d.ts +15 -4
- package/enums/SignalingNotification.d.ts +2 -1
- package/enums/TransportState.d.ts +10 -0
- package/enums/TransportTopology.d.ts +5 -0
- package/package.json +1 -1
- package/static/Capabilities.d.ts +5 -0
- package/static/Debug.d.ts +27 -8
- package/static/External.d.ts +112 -61
- package/static/Params.d.ts +80 -60
- package/static/Utils.d.ts +3 -2
- package/static/WebRTCUtils.d.ts +6 -4
- package/types/Capabilities.d.ts +24 -0
- package/types/Conversation.d.ts +1 -1
- package/types/FastStart.d.ts +1 -0
- package/types/Participant.d.ts +1 -0
- package/types/ParticipantLayout.d.ts +33 -0
- package/types/PerfStatReporter.d.ts +2 -1
- package/types/SignalingMessage.d.ts +8 -1
- package/types/Statistics.d.ts +1 -1
- package/types/WebTransport.d.ts +1 -0
- package/utils/DebugStorage.d.ts +100 -1
- package/classes/Logger.d.ts +0 -41
- package/classes/stat/EventMetricsService.d.ts +0 -9
- package/static/ConversationDebugLogger.d.ts +0 -13
package/static/Params.d.ts
CHANGED
|
@@ -306,6 +306,12 @@ export type ParamsObject = {
|
|
|
306
306
|
* _По умолчанию: `30`_
|
|
307
307
|
*/
|
|
308
308
|
videoTracksCount: number;
|
|
309
|
+
/**
|
|
310
|
+
* Минимальный интервал отправки diff для requestDisplayLayout в миллисекундах.
|
|
311
|
+
*
|
|
312
|
+
* _По умолчанию: `250`_
|
|
313
|
+
*/
|
|
314
|
+
requestDisplayLayoutThrottleMs: number;
|
|
309
315
|
/** @hidden */
|
|
310
316
|
movieShare: boolean;
|
|
311
317
|
/** @hidden */
|
|
@@ -343,7 +349,14 @@ export type ParamsObject = {
|
|
|
343
349
|
* Включает поддержку режима WAIT_FOR_ADMIN в звонках.
|
|
344
350
|
*/
|
|
345
351
|
waitForAdminInGroupCalls: boolean;
|
|
352
|
+
/**
|
|
353
|
+
* Включает поддержку удержания звонка
|
|
354
|
+
*/
|
|
346
355
|
hold: boolean;
|
|
356
|
+
/**
|
|
357
|
+
* Максимальное количество параллельных звонков
|
|
358
|
+
*/
|
|
359
|
+
maxParallelCalls: number;
|
|
347
360
|
/**
|
|
348
361
|
* Индекс участника для первого chunk'а который придет при установке соединения с сервером
|
|
349
362
|
*
|
|
@@ -494,19 +507,19 @@ export type ParamsObject = {
|
|
|
494
507
|
/**
|
|
495
508
|
* Локальный стрим изменился
|
|
496
509
|
*/
|
|
497
|
-
onLocalStreamUpdate?: (mediaSettings: MediaSettings, kind: MediaTrackKind) => void;
|
|
510
|
+
onLocalStreamUpdate?: (mediaSettings: MediaSettings, kind: MediaTrackKind, conversationId?: string) => void;
|
|
498
511
|
/**
|
|
499
512
|
* Локальный стрим с экрана добавлен/удалён
|
|
500
513
|
*/
|
|
501
|
-
onScreenStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void;
|
|
514
|
+
onScreenStream?: (stream: MediaStream | null, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
502
515
|
/**
|
|
503
516
|
* Локальный стрим вимоджи добавлен/удалён
|
|
504
517
|
*/
|
|
505
|
-
onVmojiStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void;
|
|
518
|
+
onVmojiStream?: (stream: MediaStream | null, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
506
519
|
/**
|
|
507
520
|
* Произошла ошибка вимоджи
|
|
508
521
|
*/
|
|
509
|
-
onVmojiError?: (error: VmojiError) => void;
|
|
522
|
+
onVmojiError?: (error: VmojiError, conversationId?: string) => void;
|
|
510
523
|
/**
|
|
511
524
|
* Изменился статус локального соединения
|
|
512
525
|
*/
|
|
@@ -519,7 +532,7 @@ export type ParamsObject = {
|
|
|
519
532
|
/**
|
|
520
533
|
* Cтрим собеседника приостановлен/возобновлен.
|
|
521
534
|
*/
|
|
522
|
-
onRemoteStreamSuspended?: (userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean) => void;
|
|
535
|
+
onRemoteStreamSuspended?: (userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean, conversationId?: string) => void;
|
|
523
536
|
/**
|
|
524
537
|
* Получен стрим с экрана собеседника.
|
|
525
538
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
@@ -529,25 +542,25 @@ export type ParamsObject = {
|
|
|
529
542
|
* Получен стрим вимоджи собеседника.
|
|
530
543
|
* Если сервер закончил стримить вимоджи собеседника, вместо стрима будет передан null
|
|
531
544
|
*/
|
|
532
|
-
onRemoteVmojiStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
|
|
545
|
+
onRemoteVmojiStream?: (userId: ExternalParticipantId, stream: MediaStream | null, conversationId?: string) => void;
|
|
533
546
|
/**
|
|
534
547
|
* Получен стрим трансляция или мувик от собеседника.
|
|
535
548
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
536
549
|
*/
|
|
537
|
-
onRemoteLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void;
|
|
550
|
+
onRemoteLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData, conversationId?: string) => void;
|
|
538
551
|
/**
|
|
539
552
|
* Получен собственный стрим трансляция или мувик.
|
|
540
553
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
541
554
|
*/
|
|
542
|
-
onLocalLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void;
|
|
555
|
+
onLocalLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData, conversationId?: string) => void;
|
|
543
556
|
/**
|
|
544
557
|
* Получено обновление стрима или лайва от собеседника.
|
|
545
558
|
*/
|
|
546
|
-
onRemoteLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void;
|
|
559
|
+
onRemoteLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState, conversationId?: string) => void;
|
|
547
560
|
/**
|
|
548
561
|
* Получено обновление собственного стрима или лайва.
|
|
549
562
|
*/
|
|
550
|
-
onLocalLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void;
|
|
563
|
+
onLocalLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState, conversationId?: string) => void;
|
|
551
564
|
/**
|
|
552
565
|
* Начат звонок
|
|
553
566
|
*/
|
|
@@ -555,31 +568,31 @@ export type ParamsObject = {
|
|
|
555
568
|
/**
|
|
556
569
|
* Начальный список участников для постраничного звонка
|
|
557
570
|
*/
|
|
558
|
-
onConversationParticipantListChunk?: (chunk: ExternalParticipantListChunk) => void;
|
|
571
|
+
onConversationParticipantListChunk?: (chunk: ExternalParticipantListChunk, conversationId?: string) => void;
|
|
559
572
|
/**
|
|
560
573
|
* Изменились данные стрима собеседника
|
|
561
574
|
*/
|
|
562
|
-
onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null) => void;
|
|
575
|
+
onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null, conversationId?: string) => void;
|
|
563
576
|
/**
|
|
564
577
|
* Изменились данные стрима собеседника
|
|
565
578
|
*/
|
|
566
|
-
onLocalMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings) => void;
|
|
579
|
+
onLocalMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
567
580
|
/**
|
|
568
581
|
* Полученны данные по стримам (лайв/мувик) от собеседника
|
|
569
582
|
*/
|
|
570
|
-
onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
|
|
583
|
+
onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
571
584
|
/**
|
|
572
585
|
* Полученны данные по остановленным стримам (лайв/мувик) от собеседника
|
|
573
586
|
*/
|
|
574
|
-
onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
|
|
587
|
+
onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
575
588
|
/**
|
|
576
589
|
* Полученны данные по собственным стримам (лайв/мувик)
|
|
577
590
|
*/
|
|
578
|
-
onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
|
|
591
|
+
onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
579
592
|
/**
|
|
580
593
|
* Полученны данные по собственным остановленным стримам (лайв/мувик)
|
|
581
594
|
*/
|
|
582
|
-
onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
|
|
595
|
+
onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
583
596
|
/**
|
|
584
597
|
* Добавили участника
|
|
585
598
|
*/
|
|
@@ -595,15 +608,15 @@ export type ParamsObject = {
|
|
|
595
608
|
* @param participantState Полный объект состояния участника, полученный от SDK/сервера.
|
|
596
609
|
* @param global `true` – действие глобальное (для всех участников), `false` – действие локальное (только у текущего пользователя).
|
|
597
610
|
*/
|
|
598
|
-
onLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean) => void;
|
|
611
|
+
onLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean, conversationId?: string) => void;
|
|
599
612
|
/**
|
|
600
613
|
* Изменились данные состояний собеседника
|
|
601
614
|
*/
|
|
602
|
-
onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null) => void;
|
|
615
|
+
onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null, conversationId?: string) => void;
|
|
603
616
|
/**
|
|
604
617
|
* Изменились данные состояний нескольких собеседников
|
|
605
618
|
*/
|
|
606
|
-
onRemoteParticipantsState?: (stateList: ParticipantsStateList, roomId?: IRoomId) => void;
|
|
619
|
+
onRemoteParticipantsState?: (stateList: ParticipantsStateList, roomId?: IRoomId, conversationId?: string) => void;
|
|
607
620
|
/**
|
|
608
621
|
* Изменился статус соединения собеседников
|
|
609
622
|
*/
|
|
@@ -631,28 +644,28 @@ export type ParamsObject = {
|
|
|
631
644
|
/**
|
|
632
645
|
* Изменились состояния устройств пользователя или разрешения включать камеру/микрофон
|
|
633
646
|
*/
|
|
634
|
-
onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalParticipantId | null, adminId: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[], roomId?: number | null) => void;
|
|
647
|
+
onMuteStates?: (muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll: boolean, unmute: boolean, userId: ExternalParticipantId | null, adminId: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[], roomId?: number | null, conversationId?: string) => void;
|
|
635
648
|
/**
|
|
636
649
|
* Изменились роли собеседника в звонке
|
|
637
650
|
*/
|
|
638
|
-
onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean) => void;
|
|
651
|
+
onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean, conversationId?: string) => void;
|
|
639
652
|
/**
|
|
640
653
|
* Изменились свои роли в звонке
|
|
641
654
|
*/
|
|
642
|
-
onLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean) => void;
|
|
655
|
+
onLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean, conversationId?: string) => void;
|
|
643
656
|
/**
|
|
644
657
|
* Закрепляет/открепляет собеседника для всех
|
|
645
658
|
*/
|
|
646
|
-
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null) => void;
|
|
659
|
+
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null, conversationId?: string) => void;
|
|
647
660
|
/**
|
|
648
661
|
* Закрепляет/открепляет текущего пользователя у других собеседников
|
|
649
662
|
*/
|
|
650
|
-
onLocalPin?: (unpin: boolean) => void;
|
|
663
|
+
onLocalPin?: (unpin: boolean, conversationId?: string) => void;
|
|
651
664
|
/**
|
|
652
665
|
* Изменились опции звонка
|
|
653
666
|
*/
|
|
654
|
-
onOptionsChanged?: (options: ConversationOption[]) => void;
|
|
655
|
-
onRateNeeded?:
|
|
667
|
+
onOptionsChanged?: (options: ConversationOption[], conversationId?: string) => void;
|
|
668
|
+
onRateNeeded?: (conversationId?: string) => void;
|
|
656
669
|
/**
|
|
657
670
|
* Изменился говорящий в звонке
|
|
658
671
|
*/
|
|
@@ -663,12 +676,12 @@ export type ParamsObject = {
|
|
|
663
676
|
onVolumesDetected?: (volumes: {
|
|
664
677
|
uid: ExternalParticipantId;
|
|
665
678
|
volume: number;
|
|
666
|
-
}[]) => void;
|
|
679
|
+
}[], conversationId?: string) => void;
|
|
667
680
|
/**
|
|
668
681
|
* Громкость своего микрофона
|
|
669
682
|
*/
|
|
670
683
|
onLocalVolume?: (volume: number, isMicEnabled: boolean) => void;
|
|
671
|
-
onJoinStatus?:
|
|
684
|
+
onJoinStatus?: (available: boolean, chatId: string, conversationId?: string) => void;
|
|
672
685
|
/**
|
|
673
686
|
* Звонок был завершен
|
|
674
687
|
*/
|
|
@@ -698,25 +711,25 @@ export type ParamsObject = {
|
|
|
698
711
|
/**
|
|
699
712
|
* Получено сообщение чата
|
|
700
713
|
*/
|
|
701
|
-
onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean) => void;
|
|
714
|
+
onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean, conversationId?: string) => void;
|
|
702
715
|
/**
|
|
703
716
|
* Получены данные от собеседника
|
|
704
717
|
*/
|
|
705
|
-
onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean) => void;
|
|
718
|
+
onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean, conversationId?: string) => void;
|
|
706
719
|
/**
|
|
707
720
|
* Начата трансляция/запись звонка
|
|
708
721
|
*/
|
|
709
|
-
onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null) => void;
|
|
722
|
+
onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null, conversationId?: string) => void;
|
|
710
723
|
/**
|
|
711
724
|
* Закончена трансляция/запись звонка
|
|
712
725
|
*/
|
|
713
|
-
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null) => void;
|
|
726
|
+
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null, conversationId?: string) => void;
|
|
714
727
|
/**
|
|
715
728
|
* Состояние своей сети
|
|
716
729
|
*
|
|
717
730
|
* @param rating Оценка качества соединения от 0 до 1
|
|
718
731
|
*/
|
|
719
|
-
onLocalNetworkStatusChanged?: (rating: number) => void;
|
|
732
|
+
onLocalNetworkStatusChanged?: (rating: number, conversationId?: string) => void;
|
|
720
733
|
/**
|
|
721
734
|
* Состояние сети участников
|
|
722
735
|
*
|
|
@@ -725,11 +738,17 @@ export type ParamsObject = {
|
|
|
725
738
|
onNetworkStatusChanged?: (status: {
|
|
726
739
|
uid: ExternalParticipantId;
|
|
727
740
|
rating: number;
|
|
728
|
-
}[]) => void;
|
|
741
|
+
}[], conversationId?: string) => void;
|
|
729
742
|
/**
|
|
730
743
|
* Получено отладочное сообщение. Работает только при выключенном режиме отладки
|
|
731
744
|
*/
|
|
732
745
|
onDebugMessage?: (type: DebugMessageType, ...args: any[]) => void;
|
|
746
|
+
/**
|
|
747
|
+
* Получено отладочное сообщение с контекстом звонка. Работает только при выключенном режиме отладки
|
|
748
|
+
*/
|
|
749
|
+
onDebugMessageWithContext?: (type: DebugMessageType, context: {
|
|
750
|
+
conversationId: string | null;
|
|
751
|
+
}, ...args: any[]) => void;
|
|
733
752
|
/**
|
|
734
753
|
* Статистика звонка
|
|
735
754
|
*/
|
|
@@ -747,74 +766,74 @@ export type ParamsObject = {
|
|
|
747
766
|
* @param addedParticipantIds Некоторое количество участников, добавленных в зал
|
|
748
767
|
* @param removedParticipantIds Некоторое количество участников, убранных из зала
|
|
749
768
|
*/
|
|
750
|
-
onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]) => void;
|
|
769
|
+
onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[], conversationId?: string) => void;
|
|
751
770
|
/**
|
|
752
771
|
* Получен микшированный аудио стрим.
|
|
753
772
|
* @hidden
|
|
754
773
|
* @param stream стрим от WebRTC
|
|
755
774
|
*/
|
|
756
|
-
onRemoteMixedAudioStream?: (stream: MediaStream) => void;
|
|
775
|
+
onRemoteMixedAudioStream?: (stream: MediaStream, conversationId?: string) => void;
|
|
757
776
|
/**
|
|
758
777
|
* Получена новая ссылка на звонок
|
|
759
778
|
* @param joinLink токен присоединения к звонку
|
|
760
779
|
*/
|
|
761
|
-
onJoinLinkChanged?: (joinLink: string) => void;
|
|
780
|
+
onJoinLinkChanged?: (joinLink: string, conversationId?: string) => void;
|
|
762
781
|
/**
|
|
763
782
|
* Получено обновление списка сессионных залов
|
|
764
783
|
* @param updates список обновлений по залам
|
|
765
784
|
*/
|
|
766
|
-
onRoomsUpdated?: (updates: Partial<Record<RoomsEventType, RoomsUpdate
|
|
785
|
+
onRoomsUpdated?: (updates: Partial<Record<RoomsEventType, RoomsUpdate>>, conversationId?: string) => void;
|
|
767
786
|
/**
|
|
768
787
|
* Получено обновление сессионных зало
|
|
769
788
|
* @param eventTypes список событий
|
|
770
789
|
* @param roomId номер сессионного зала
|
|
771
790
|
* @param room сессионный зал
|
|
772
791
|
*/
|
|
773
|
-
onRoomUpdated?: (eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null) => void;
|
|
792
|
+
onRoomUpdated?: (eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null, conversationId?: string) => void;
|
|
774
793
|
/**
|
|
775
794
|
* Получение обновление списка участников в сессионном зале
|
|
776
795
|
* @param update обновление списка участников
|
|
777
796
|
*/
|
|
778
|
-
onRoomParticipantsUpdated?: (update: RoomParticipantUpdate) => void;
|
|
797
|
+
onRoomParticipantsUpdated?: (update: RoomParticipantUpdate, conversationId?: string) => void;
|
|
779
798
|
/**
|
|
780
799
|
* Получение информации о смене зала
|
|
781
800
|
* @param roomId номер сессионного зала
|
|
782
801
|
*/
|
|
783
|
-
onRoomSwitched?: (roomId: number | null) => void;
|
|
802
|
+
onRoomSwitched?: (roomId: number | null, conversationId?: string) => void;
|
|
784
803
|
/**
|
|
785
804
|
* Установить id сессионного зала на старте звонка
|
|
786
805
|
* @param roomId номер сессионного зала
|
|
787
806
|
*/
|
|
788
|
-
onRoomStart?: (roomId: number | null) => void;
|
|
807
|
+
onRoomStart?: (roomId: number | null, conversationId?: string) => void;
|
|
789
808
|
/**
|
|
790
809
|
* Получены новые реакции в звонке
|
|
791
810
|
* @param feedback массив с реакциями
|
|
792
811
|
*/
|
|
793
|
-
onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null) => void;
|
|
812
|
+
onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null, conversationId?: string) => void;
|
|
794
813
|
/**
|
|
795
814
|
* Изменился список ролей, которым доступны ConversationFeatures
|
|
796
815
|
*
|
|
797
816
|
* @param featuresPerRole Объект вида ключ: ConversationFeature = значение: UserRole[]
|
|
798
817
|
* (если ключ фичи отсутствует, или в ролях пустой массив, считаем фичу доступной для всех пользователей)
|
|
799
818
|
*/
|
|
800
|
-
onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole) => void;
|
|
819
|
+
onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole, conversationId?: string) => void;
|
|
801
820
|
/**
|
|
802
821
|
* Изменился Vmoji-аватар пользователя
|
|
803
822
|
* @param externalId Id пользователя, у которого изменился аватар
|
|
804
823
|
*/
|
|
805
|
-
onParticipantVmojiUpdate?: (externalId: ExternalParticipantId) => void;
|
|
824
|
+
onParticipantVmojiUpdate?: (externalId: ExternalParticipantId, conversationId?: string) => void;
|
|
806
825
|
/**
|
|
807
826
|
* Начата текстовая расшифровка звонка
|
|
808
827
|
* @param initiatorId Id пользователя, запустившего расшифровку звонка
|
|
809
828
|
* @param movieId Id расшифровки
|
|
810
829
|
* @param roomId Id комнаты
|
|
811
830
|
*/
|
|
812
|
-
onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null) => void;
|
|
831
|
+
onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null, conversationId?: string) => void;
|
|
813
832
|
/**
|
|
814
833
|
* Закончена текстовая расшифровка звонка
|
|
815
834
|
* @param roomId Id комнаты
|
|
816
835
|
*/
|
|
817
|
-
onAsrStopped?: (roomId: number | null) => void;
|
|
836
|
+
onAsrStopped?: (roomId: number | null, conversationId?: string) => void;
|
|
818
837
|
/**
|
|
819
838
|
* Получена расшифровка речи
|
|
820
839
|
* @param id Id пользователя, произнесшего реплику
|
|
@@ -822,55 +841,53 @@ export type ParamsObject = {
|
|
|
822
841
|
* @param timestamp Время расшифровки
|
|
823
842
|
* @param duration Длительность реплики в расшифровке
|
|
824
843
|
*/
|
|
825
|
-
onAsrTranscription?: (id: ExternalParticipantId, text: string, timestamp: number, duration: number) => void;
|
|
844
|
+
onAsrTranscription?: (id: ExternalParticipantId, text: string, timestamp: number, duration: number, conversationId?: string) => void;
|
|
826
845
|
/**
|
|
827
846
|
* Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)
|
|
828
847
|
* @param data Начальная информация по ASR
|
|
829
848
|
* @param roomId Id Комнаты
|
|
830
849
|
*/
|
|
831
|
-
onAsrSet?: (data: IAsrData | null, roomId: number | null) => void;
|
|
850
|
+
onAsrSet?: (data: IAsrData | null, roomId: number | null, conversationId?: string) => void;
|
|
832
851
|
/**
|
|
833
852
|
* Админ начал/остановил совместное использование стороннего web-приложения
|
|
834
853
|
* @param userId id участника-админа
|
|
835
854
|
* @param sharedUrl url страницы
|
|
836
855
|
*/
|
|
837
|
-
onRemoteSharedUrl?: (userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId) => void;
|
|
856
|
+
onRemoteSharedUrl?: (userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId, conversationId?: string) => void;
|
|
838
857
|
/**
|
|
839
858
|
* Изменился id участника (деанонимизация)
|
|
840
859
|
* @param prevId
|
|
841
860
|
* @param newId
|
|
842
861
|
*/
|
|
843
|
-
onParticipantIdChanged?: (prevId: ExternalParticipantId, newId: ExternalParticipantId) => void;
|
|
862
|
+
onParticipantIdChanged?: (prevId: ExternalParticipantId, newId: ExternalParticipantId, conversationId?: string) => void;
|
|
844
863
|
/**
|
|
845
864
|
* Предложение включить режим автоматического отключения приёма видео
|
|
846
865
|
* в плохой сети
|
|
847
866
|
* @param bandwidth текущая полоса пропускания, kbps
|
|
848
867
|
*/
|
|
849
|
-
onVideoSuspendSuggest?: (bandwidth: number) => void;
|
|
868
|
+
onVideoSuspendSuggest?: (bandwidth: number, conversationId?: string) => void;
|
|
850
869
|
/**
|
|
851
870
|
* Одобрено повышение пользователя в зале ожидания/зале в режиме Audience
|
|
852
871
|
*
|
|
853
872
|
* @param adminParticipantId админ, одобривший повышение
|
|
854
873
|
*/
|
|
855
|
-
onPromotionApproved?: (adminParticipantId: ExternalParticipantId) => void;
|
|
874
|
+
onPromotionApproved?: (adminParticipantId: ExternalParticipantId, conversationId?: string) => void;
|
|
856
875
|
/**
|
|
857
876
|
* Участник повышен/разжалован в зале ожидания/зале в режиме Audience
|
|
858
877
|
*
|
|
859
878
|
* @param demoted участник разжалован
|
|
860
879
|
*/
|
|
861
|
-
onPromoted?: (demoted: boolean) => void;
|
|
880
|
+
onPromoted?: (demoted: boolean, conversationId?: string) => void;
|
|
862
881
|
/**
|
|
863
|
-
*
|
|
882
|
+
* Активным установлен определенный звонок
|
|
864
883
|
*
|
|
865
884
|
* @param conversationId ID звонка
|
|
866
|
-
* @param externalId Внешний ID вызывающего
|
|
867
|
-
* @param mediaSettings Настройки медиа
|
|
868
885
|
*/
|
|
869
|
-
|
|
886
|
+
onCallActive?: (conversationId: string) => void;
|
|
870
887
|
/**
|
|
871
888
|
* Собеседник подключился к сигналлингу
|
|
872
889
|
*/
|
|
873
|
-
onPeerRegistered?: () => void;
|
|
890
|
+
onPeerRegistered?: (conversationId?: string) => void;
|
|
874
891
|
};
|
|
875
892
|
export default abstract class Params {
|
|
876
893
|
private static _params;
|
|
@@ -971,6 +988,7 @@ export default abstract class Params {
|
|
|
971
988
|
static get audioNack(): boolean;
|
|
972
989
|
static get movieShare(): boolean;
|
|
973
990
|
static get videoTracksCount(): number;
|
|
991
|
+
static get requestDisplayLayoutThrottleMs(): number;
|
|
974
992
|
static get breakVideoPayloadTypes(): boolean;
|
|
975
993
|
static get useCallsToContacts(): boolean;
|
|
976
994
|
static get useParticipantListChunk(): boolean;
|
|
@@ -979,6 +997,7 @@ export default abstract class Params {
|
|
|
979
997
|
static get addParticipant(): boolean;
|
|
980
998
|
static get waitForAdminInGroupCalls(): boolean;
|
|
981
999
|
static get hold(): boolean;
|
|
1000
|
+
static get maxParallelCalls(): number;
|
|
982
1001
|
static get participantListChunkInitIndex(): number;
|
|
983
1002
|
static get participantListChunkInitCount(): number | null;
|
|
984
1003
|
static get filterObservers(): boolean;
|
|
@@ -1018,6 +1037,7 @@ export default abstract class Params {
|
|
|
1018
1037
|
screenShareCongestionControl: boolean;
|
|
1019
1038
|
screenShareCongestionControlThreshold: number;
|
|
1020
1039
|
videoTracksCount: number;
|
|
1040
|
+
requestDisplayLayoutThrottleMs: number;
|
|
1021
1041
|
asrDataChannel: boolean;
|
|
1022
1042
|
videoMaxHeight: number;
|
|
1023
1043
|
videoMaxWidth: number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { ExternalParticipant, ExternalParticipantListMarker } from '../types/Ext
|
|
|
3
3
|
import { CompositeUserId, OkUserId, Participant, ParticipantId, ParticipantStateMapped } from '../types/Participant';
|
|
4
4
|
import SignalingMessage from '../types/SignalingMessage';
|
|
5
5
|
import VideoSettings from '../types/VideoSettings';
|
|
6
|
+
import { type DebugLogger } from './Debug';
|
|
6
7
|
export declare const PARAMETERS_SEPARATOR = ":";
|
|
7
8
|
export declare const DEVICE_IDX_PARAMETER = "d";
|
|
8
9
|
/** @hidden */
|
|
@@ -36,8 +37,8 @@ declare namespace Utils {
|
|
|
36
37
|
function delay(time: number, { signal }?: {
|
|
37
38
|
signal?: AbortSignal;
|
|
38
39
|
}): Promise<void>;
|
|
39
|
-
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any): any;
|
|
40
|
-
function applyVideoTrackSettings(videoSettings: VideoSettings, s: RTCRtpSender, track: MediaStreamTrack | null, prevSettings: any, retSettings: any): void;
|
|
40
|
+
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any, debug?: DebugLogger): any;
|
|
41
|
+
function applyVideoTrackSettings(videoSettings: VideoSettings, s: RTCRtpSender, track: MediaStreamTrack | null, prevSettings: any, retSettings: any, debug?: DebugLogger): void;
|
|
41
42
|
/**
|
|
42
43
|
* Проверяет, есть ли в первом массиве хотя бы один элемент из второго массива
|
|
43
44
|
* @param arr Где ищем
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Вспомогательный плагин для работы с WebRTC
|
|
3
3
|
*/
|
|
4
4
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
5
|
+
import type StatsLogger from '../classes/StatsLogger';
|
|
6
|
+
import { type DebugLogger } from './Debug';
|
|
5
7
|
/**
|
|
6
8
|
* Тип камеры мобильного устройства
|
|
7
9
|
*/
|
|
@@ -83,24 +85,24 @@ declare namespace WebRTCUtils {
|
|
|
83
85
|
* @param needAudio Нужно ли аудио
|
|
84
86
|
* @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
|
|
85
87
|
*/
|
|
86
|
-
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean): Promise<MediaStream>;
|
|
88
|
+
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
87
89
|
/**
|
|
88
90
|
* Запрашивает трансляцию экрана пользователя с опциональным захватом звука
|
|
89
91
|
*/
|
|
90
|
-
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean): Promise<MediaStream>;
|
|
92
|
+
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
91
93
|
/**
|
|
92
94
|
* Запрашивает камеру пользователя
|
|
93
95
|
*
|
|
94
96
|
* @param deviceId ID устройства
|
|
95
97
|
* @param resolution Размеры видео
|
|
96
98
|
*/
|
|
97
|
-
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions): Promise<MediaStream>;
|
|
99
|
+
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
98
100
|
/**
|
|
99
101
|
* Запрашивает микрофон пользователя
|
|
100
102
|
*
|
|
101
103
|
* @param deviceId ID устройства
|
|
102
104
|
*/
|
|
103
|
-
function getUserAudio(deviceId?: string): Promise<MediaStream>;
|
|
105
|
+
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
104
106
|
/**
|
|
105
107
|
* Устанавливает размер видео в стриме
|
|
106
108
|
*
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type TCapabilities = {
|
|
2
|
+
estimatedPerformanceIndex: number;
|
|
3
|
+
audioMix: boolean;
|
|
4
|
+
consumerUpdate: boolean;
|
|
5
|
+
producerNotificationDataChannelVersion: number;
|
|
6
|
+
producerCommandDataChannelVersion: number;
|
|
7
|
+
consumerScreenDataChannelVersion: number;
|
|
8
|
+
producerScreenDataChannelVersion: number;
|
|
9
|
+
asrDataChannelVersion: number;
|
|
10
|
+
animojiDataChannelVersion: number;
|
|
11
|
+
animojiBackendRender: boolean;
|
|
12
|
+
onDemandTracks: boolean;
|
|
13
|
+
unifiedPlan: boolean;
|
|
14
|
+
singleSession: boolean;
|
|
15
|
+
videoTracksCount: number;
|
|
16
|
+
red: boolean;
|
|
17
|
+
audioShare: boolean;
|
|
18
|
+
fastScreenShare: boolean;
|
|
19
|
+
videoSuspend: boolean;
|
|
20
|
+
simulcast: boolean;
|
|
21
|
+
consumerFastScreenShare: boolean;
|
|
22
|
+
consumerFastScreenShareQualityOnDemand: boolean;
|
|
23
|
+
transparentAudio: boolean;
|
|
24
|
+
};
|
package/types/Conversation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import TransportTopology from '../enums/TransportTopology';
|
|
2
2
|
import CallDirection from '../enums/CallDirection';
|
|
3
3
|
import CallType from '../enums/CallType';
|
|
4
4
|
import ConversationFeature from '../enums/ConversationFeature';
|
package/types/FastStart.d.ts
CHANGED
package/types/Participant.d.ts
CHANGED
|
@@ -54,4 +54,37 @@ export type ParticipantLayout = (Layout | StopStream | RequestKeyFrame) & {
|
|
|
54
54
|
*/
|
|
55
55
|
streamName?: string;
|
|
56
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* Запрос стрима, который клиент хочет получать для отображения.
|
|
59
|
+
*/
|
|
60
|
+
export type DisplayLayoutRequest = {
|
|
61
|
+
/**
|
|
62
|
+
* Внешний ID пользователя
|
|
63
|
+
*/
|
|
64
|
+
uid: ExternalParticipantId | string;
|
|
65
|
+
/**
|
|
66
|
+
* Тип медиа (видео с камеры, картинка с экрана, лайв или мувик)
|
|
67
|
+
*/
|
|
68
|
+
mediaType: MediaType;
|
|
69
|
+
/**
|
|
70
|
+
* Ширина окошка в котором отображается видео, в пикселях
|
|
71
|
+
*/
|
|
72
|
+
width: number;
|
|
73
|
+
/**
|
|
74
|
+
* Высота окошка в котором отображается видео, в пикселях
|
|
75
|
+
*/
|
|
76
|
+
height: number;
|
|
77
|
+
/**
|
|
78
|
+
* Отображать видео как CSS object-fit: cover. По умолчанию используется contain.
|
|
79
|
+
*/
|
|
80
|
+
cover?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Приоритет
|
|
83
|
+
*/
|
|
84
|
+
priority?: number;
|
|
85
|
+
/**
|
|
86
|
+
* ID лайва или мувика. null для камеры или скрин-шары.
|
|
87
|
+
*/
|
|
88
|
+
streamName?: string;
|
|
89
|
+
};
|
|
57
90
|
export default ParticipantLayout;
|
|
@@ -41,10 +41,11 @@ export interface CallStatReport {
|
|
|
41
41
|
remote_connection_type?: RTCIceCandidateType;
|
|
42
42
|
}
|
|
43
43
|
export interface ICallStatLog extends Pick<CallStatReport, 'call_topology' | 'nack_sent' | 'nack_received' | 'pli_sent' | 'pli_received' | 'fir_sent' | 'fir_received' | 'frames_dropped' | 'stat_time_delta'>, 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'> {
|
|
44
|
+
is_simulcast?: boolean;
|
|
44
45
|
concealed_silent_audio_samples?: number;
|
|
45
46
|
concealment_audio_avg_size?: number;
|
|
46
47
|
video_loss?: number;
|
|
47
48
|
audio_loss?: number;
|
|
48
49
|
cpu_hardware_concurrency?: number;
|
|
49
|
-
[k: string]: string | number | undefined;
|
|
50
|
+
[k: string]: string | number | boolean | undefined;
|
|
50
51
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnimojiVersion } from '@vkontakte/calls-vmoji';
|
|
2
|
-
import
|
|
2
|
+
import TransportTopology from '../enums/TransportTopology';
|
|
3
3
|
import ChatRoomEventType from '../enums/ChatRoomEventType';
|
|
4
4
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
5
5
|
import ConversationOption from '../enums/ConversationOption';
|
|
@@ -366,6 +366,9 @@ declare namespace SignalingMessage {
|
|
|
366
366
|
export interface Connection extends Notification {
|
|
367
367
|
endpoint: string;
|
|
368
368
|
conversation: Conversation;
|
|
369
|
+
conversationParams: {
|
|
370
|
+
serverTime: number;
|
|
371
|
+
};
|
|
369
372
|
isConcurrent: boolean;
|
|
370
373
|
peerId: PeerId;
|
|
371
374
|
mediaModifiers: MediaModifiers;
|
|
@@ -452,6 +455,10 @@ declare namespace SignalingMessage {
|
|
|
452
455
|
export interface VideoSuspendSuggest extends Notification {
|
|
453
456
|
bandwidth: number;
|
|
454
457
|
}
|
|
458
|
+
export interface Hold extends Notification {
|
|
459
|
+
participantId: ParticipantId;
|
|
460
|
+
hold: boolean;
|
|
461
|
+
}
|
|
455
462
|
export {};
|
|
456
463
|
}
|
|
457
464
|
export default SignalingMessage;
|
package/types/Statistics.d.ts
CHANGED
package/types/WebTransport.d.ts
CHANGED