@vkontakte/calls-sdk 2.8.11-dev.273c92c2.0 → 2.8.11-dev.2bb68767.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 +58 -15
- package/abstract/BaseApi.d.ts +2 -3
- package/abstract/BaseSignaling.d.ts +2 -3
- package/calls-sdk.cjs.js +9 -9
- package/calls-sdk.esm.js +5629 -4862
- package/classes/AudioFix.d.ts +5 -1
- package/classes/AudioOutput.d.ts +5 -1
- package/classes/CallRegistry.d.ts +5 -1
- package/classes/Conversation.d.ts +23 -4
- package/classes/ConversationResponseValidator.d.ts +3 -0
- 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 +6 -2
- package/classes/ParticipantIdRegistry.d.ts +3 -0
- package/classes/ProducerCommandSerializationService.d.ts +3 -0
- package/classes/SignalingActor.d.ts +3 -6
- package/classes/SpeakerDetector.d.ts +2 -1
- package/classes/SpecListener.d.ts +10 -1
- package/classes/{Logger.d.ts → StatsLogger.d.ts} +3 -10
- 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 +7 -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 +6 -2
- 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 +12 -1
- package/classes/transport/PerfStatReporter.d.ts +5 -1
- package/classes/transport/ServerTransport.d.ts +10 -2
- package/classes/transport/Transport.d.ts +16 -16
- package/default/Api.d.ts +8 -11
- package/default/Signaling.d.ts +39 -45
- package/default/SignalingTransport.d.ts +68 -0
- package/enums/HangupType.d.ts +2 -1
- package/enums/TransportState.d.ts +10 -0
- package/enums/TransportTopology.d.ts +5 -0
- package/package.json +2 -2
- package/static/Debug.d.ts +27 -8
- package/static/External.d.ts +108 -56
- package/static/Params.d.ts +83 -57
- package/static/Utils.d.ts +3 -2
- package/static/WebRTCUtils.d.ts +6 -4
- 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/SignalingMessage.d.ts +6 -1
- package/types/Statistics.d.ts +1 -1
- package/types/WebTransport.d.ts +4 -0
- package/utils/DebugStorage.d.ts +100 -1
- package/classes/stat/EventMetricsService.d.ts +0 -9
- package/static/ConversationDebugLogger.d.ts +0 -13
package/static/Params.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VideoEffects } from '@vkontakte/calls-video-effects';
|
|
2
|
-
import type { EffectVoiceChange } from '@vkontakte/calls-audio-effects';
|
|
2
|
+
import type { EffectVoiceChange, VadControllerOptions, VadLib } from '@vkontakte/calls-audio-effects';
|
|
3
3
|
import type * as Vmoji from '@vkontakte/calls-vmoji';
|
|
4
4
|
import { IAsrData } from '../types/Asr';
|
|
5
5
|
import { ConversationData } from '../types/Conversation';
|
|
@@ -188,6 +188,14 @@ export type ParamsObject = {
|
|
|
188
188
|
* Можно установить позднее методом `setAudioEffects`
|
|
189
189
|
*/
|
|
190
190
|
audioEffects: EffectVoiceChange | null;
|
|
191
|
+
/**
|
|
192
|
+
* Namespace библиотеки VAD из `@vkontakte/calls-audio-effects`.
|
|
193
|
+
*
|
|
194
|
+
* Можно установить методом `setVad`
|
|
195
|
+
*/
|
|
196
|
+
vad: VadLib | null;
|
|
197
|
+
/** Настройки VAD (threshold, hangoverMs, enabled) */
|
|
198
|
+
vadOptions: VadControllerOptions;
|
|
191
199
|
/**
|
|
192
200
|
* Максимальная ширина видео в пикселях для видео эффекта
|
|
193
201
|
*
|
|
@@ -306,6 +314,12 @@ export type ParamsObject = {
|
|
|
306
314
|
* _По умолчанию: `30`_
|
|
307
315
|
*/
|
|
308
316
|
videoTracksCount: number;
|
|
317
|
+
/**
|
|
318
|
+
* Минимальный интервал отправки diff для requestDisplayLayout в миллисекундах.
|
|
319
|
+
*
|
|
320
|
+
* _По умолчанию: `250`_
|
|
321
|
+
*/
|
|
322
|
+
requestDisplayLayoutThrottleMs: number;
|
|
309
323
|
/** @hidden */
|
|
310
324
|
movieShare: boolean;
|
|
311
325
|
/** @hidden */
|
|
@@ -501,19 +515,19 @@ export type ParamsObject = {
|
|
|
501
515
|
/**
|
|
502
516
|
* Локальный стрим изменился
|
|
503
517
|
*/
|
|
504
|
-
onLocalStreamUpdate?: (mediaSettings: MediaSettings, kind: MediaTrackKind) => void;
|
|
518
|
+
onLocalStreamUpdate?: (mediaSettings: MediaSettings, kind: MediaTrackKind, conversationId?: string) => void;
|
|
505
519
|
/**
|
|
506
520
|
* Локальный стрим с экрана добавлен/удалён
|
|
507
521
|
*/
|
|
508
|
-
onScreenStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void;
|
|
522
|
+
onScreenStream?: (stream: MediaStream | null, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
509
523
|
/**
|
|
510
524
|
* Локальный стрим вимоджи добавлен/удалён
|
|
511
525
|
*/
|
|
512
|
-
onVmojiStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void;
|
|
526
|
+
onVmojiStream?: (stream: MediaStream | null, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
513
527
|
/**
|
|
514
528
|
* Произошла ошибка вимоджи
|
|
515
529
|
*/
|
|
516
|
-
onVmojiError?: (error: VmojiError) => void;
|
|
530
|
+
onVmojiError?: (error: VmojiError, conversationId?: string) => void;
|
|
517
531
|
/**
|
|
518
532
|
* Изменился статус локального соединения
|
|
519
533
|
*/
|
|
@@ -526,7 +540,7 @@ export type ParamsObject = {
|
|
|
526
540
|
/**
|
|
527
541
|
* Cтрим собеседника приостановлен/возобновлен.
|
|
528
542
|
*/
|
|
529
|
-
onRemoteStreamSuspended?: (userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean) => void;
|
|
543
|
+
onRemoteStreamSuspended?: (userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean, conversationId?: string) => void;
|
|
530
544
|
/**
|
|
531
545
|
* Получен стрим с экрана собеседника.
|
|
532
546
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
@@ -536,25 +550,25 @@ export type ParamsObject = {
|
|
|
536
550
|
* Получен стрим вимоджи собеседника.
|
|
537
551
|
* Если сервер закончил стримить вимоджи собеседника, вместо стрима будет передан null
|
|
538
552
|
*/
|
|
539
|
-
onRemoteVmojiStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void;
|
|
553
|
+
onRemoteVmojiStream?: (userId: ExternalParticipantId, stream: MediaStream | null, conversationId?: string) => void;
|
|
540
554
|
/**
|
|
541
555
|
* Получен стрим трансляция или мувик от собеседника.
|
|
542
556
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
543
557
|
*/
|
|
544
|
-
onRemoteLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void;
|
|
558
|
+
onRemoteLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData, conversationId?: string) => void;
|
|
545
559
|
/**
|
|
546
560
|
* Получен собственный стрим трансляция или мувик.
|
|
547
561
|
* Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
|
|
548
562
|
*/
|
|
549
|
-
onLocalLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void;
|
|
563
|
+
onLocalLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData, conversationId?: string) => void;
|
|
550
564
|
/**
|
|
551
565
|
* Получено обновление стрима или лайва от собеседника.
|
|
552
566
|
*/
|
|
553
|
-
onRemoteLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void;
|
|
567
|
+
onRemoteLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState, conversationId?: string) => void;
|
|
554
568
|
/**
|
|
555
569
|
* Получено обновление собственного стрима или лайва.
|
|
556
570
|
*/
|
|
557
|
-
onLocalLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void;
|
|
571
|
+
onLocalLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState, conversationId?: string) => void;
|
|
558
572
|
/**
|
|
559
573
|
* Начат звонок
|
|
560
574
|
*/
|
|
@@ -562,31 +576,31 @@ export type ParamsObject = {
|
|
|
562
576
|
/**
|
|
563
577
|
* Начальный список участников для постраничного звонка
|
|
564
578
|
*/
|
|
565
|
-
onConversationParticipantListChunk?: (chunk: ExternalParticipantListChunk) => void;
|
|
579
|
+
onConversationParticipantListChunk?: (chunk: ExternalParticipantListChunk, conversationId?: string) => void;
|
|
566
580
|
/**
|
|
567
581
|
* Изменились данные стрима собеседника
|
|
568
582
|
*/
|
|
569
|
-
onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null) => void;
|
|
583
|
+
onRemoteMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantListMarkers | null, conversationId?: string) => void;
|
|
570
584
|
/**
|
|
571
585
|
* Изменились данные стрима собеседника
|
|
572
586
|
*/
|
|
573
|
-
onLocalMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings) => void;
|
|
587
|
+
onLocalMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings, conversationId?: string) => void;
|
|
574
588
|
/**
|
|
575
589
|
* Полученны данные по стримам (лайв/мувик) от собеседника
|
|
576
590
|
*/
|
|
577
|
-
onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
|
|
591
|
+
onRemoteSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
578
592
|
/**
|
|
579
593
|
* Полученны данные по остановленным стримам (лайв/мувик) от собеседника
|
|
580
594
|
*/
|
|
581
|
-
onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
|
|
595
|
+
onRemoteSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
582
596
|
/**
|
|
583
597
|
* Полученны данные по собственным стримам (лайв/мувик)
|
|
584
598
|
*/
|
|
585
|
-
onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void;
|
|
599
|
+
onLocalSharedMovieInfo?: (userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
586
600
|
/**
|
|
587
601
|
* Полученны данные по собственным остановленным стримам (лайв/мувик)
|
|
588
602
|
*/
|
|
589
|
-
onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void;
|
|
603
|
+
onLocalSharedMovieStoppedInfo?: (userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId, conversationId?: string) => void;
|
|
590
604
|
/**
|
|
591
605
|
* Добавили участника
|
|
592
606
|
*/
|
|
@@ -602,15 +616,15 @@ export type ParamsObject = {
|
|
|
602
616
|
* @param participantState Полный объект состояния участника, полученный от SDK/сервера.
|
|
603
617
|
* @param global `true` – действие глобальное (для всех участников), `false` – действие локальное (только у текущего пользователя).
|
|
604
618
|
*/
|
|
605
|
-
onLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean) => void;
|
|
619
|
+
onLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean, conversationId?: string) => void;
|
|
606
620
|
/**
|
|
607
621
|
* Изменились данные состояний собеседника
|
|
608
622
|
*/
|
|
609
|
-
onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null) => void;
|
|
623
|
+
onRemoteParticipantState?: (userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantListMarkers | null, conversationId?: string) => void;
|
|
610
624
|
/**
|
|
611
625
|
* Изменились данные состояний нескольких собеседников
|
|
612
626
|
*/
|
|
613
|
-
onRemoteParticipantsState?: (stateList: ParticipantsStateList, roomId?: IRoomId) => void;
|
|
627
|
+
onRemoteParticipantsState?: (stateList: ParticipantsStateList, roomId?: IRoomId, conversationId?: string) => void;
|
|
614
628
|
/**
|
|
615
629
|
* Изменился статус соединения собеседников
|
|
616
630
|
*/
|
|
@@ -638,28 +652,28 @@ export type ParamsObject = {
|
|
|
638
652
|
/**
|
|
639
653
|
* Изменились состояния устройств пользователя или разрешения включать камеру/микрофон
|
|
640
654
|
*/
|
|
641
|
-
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;
|
|
655
|
+
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;
|
|
642
656
|
/**
|
|
643
657
|
* Изменились роли собеседника в звонке
|
|
644
658
|
*/
|
|
645
|
-
onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean) => void;
|
|
659
|
+
onRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean, conversationId?: string) => void;
|
|
646
660
|
/**
|
|
647
661
|
* Изменились свои роли в звонке
|
|
648
662
|
*/
|
|
649
|
-
onLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean) => void;
|
|
663
|
+
onLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean, conversationId?: string) => void;
|
|
650
664
|
/**
|
|
651
665
|
* Закрепляет/открепляет собеседника для всех
|
|
652
666
|
*/
|
|
653
|
-
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null) => void;
|
|
667
|
+
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantListMarkers | null, roomId?: number | null, conversationId?: string) => void;
|
|
654
668
|
/**
|
|
655
669
|
* Закрепляет/открепляет текущего пользователя у других собеседников
|
|
656
670
|
*/
|
|
657
|
-
onLocalPin?: (unpin: boolean) => void;
|
|
671
|
+
onLocalPin?: (unpin: boolean, conversationId?: string) => void;
|
|
658
672
|
/**
|
|
659
673
|
* Изменились опции звонка
|
|
660
674
|
*/
|
|
661
|
-
onOptionsChanged?: (options: ConversationOption[]) => void;
|
|
662
|
-
onRateNeeded?:
|
|
675
|
+
onOptionsChanged?: (options: ConversationOption[], conversationId?: string) => void;
|
|
676
|
+
onRateNeeded?: (conversationId?: string) => void;
|
|
663
677
|
/**
|
|
664
678
|
* Изменился говорящий в звонке
|
|
665
679
|
*/
|
|
@@ -670,12 +684,12 @@ export type ParamsObject = {
|
|
|
670
684
|
onVolumesDetected?: (volumes: {
|
|
671
685
|
uid: ExternalParticipantId;
|
|
672
686
|
volume: number;
|
|
673
|
-
}[]) => void;
|
|
687
|
+
}[], conversationId?: string) => void;
|
|
674
688
|
/**
|
|
675
689
|
* Громкость своего микрофона
|
|
676
690
|
*/
|
|
677
691
|
onLocalVolume?: (volume: number, isMicEnabled: boolean) => void;
|
|
678
|
-
onJoinStatus?:
|
|
692
|
+
onJoinStatus?: (available: boolean, chatId: string, conversationId?: string) => void;
|
|
679
693
|
/**
|
|
680
694
|
* Звонок был завершен
|
|
681
695
|
*/
|
|
@@ -705,25 +719,25 @@ export type ParamsObject = {
|
|
|
705
719
|
/**
|
|
706
720
|
* Получено сообщение чата
|
|
707
721
|
*/
|
|
708
|
-
onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean) => void;
|
|
722
|
+
onChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean, conversationId?: string) => void;
|
|
709
723
|
/**
|
|
710
724
|
* Получены данные от собеседника
|
|
711
725
|
*/
|
|
712
|
-
onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean) => void;
|
|
726
|
+
onCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean, conversationId?: string) => void;
|
|
713
727
|
/**
|
|
714
728
|
* Начата трансляция/запись звонка
|
|
715
729
|
*/
|
|
716
|
-
onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null) => void;
|
|
730
|
+
onRecordStarted?: (initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null, conversationId?: string) => void;
|
|
717
731
|
/**
|
|
718
732
|
* Закончена трансляция/запись звонка
|
|
719
733
|
*/
|
|
720
|
-
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null) => void;
|
|
734
|
+
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null, conversationId?: string) => void;
|
|
721
735
|
/**
|
|
722
736
|
* Состояние своей сети
|
|
723
737
|
*
|
|
724
738
|
* @param rating Оценка качества соединения от 0 до 1
|
|
725
739
|
*/
|
|
726
|
-
onLocalNetworkStatusChanged?: (rating: number) => void;
|
|
740
|
+
onLocalNetworkStatusChanged?: (rating: number, conversationId?: string) => void;
|
|
727
741
|
/**
|
|
728
742
|
* Состояние сети участников
|
|
729
743
|
*
|
|
@@ -732,11 +746,17 @@ export type ParamsObject = {
|
|
|
732
746
|
onNetworkStatusChanged?: (status: {
|
|
733
747
|
uid: ExternalParticipantId;
|
|
734
748
|
rating: number;
|
|
735
|
-
}[]) => void;
|
|
749
|
+
}[], conversationId?: string) => void;
|
|
736
750
|
/**
|
|
737
751
|
* Получено отладочное сообщение. Работает только при выключенном режиме отладки
|
|
738
752
|
*/
|
|
739
753
|
onDebugMessage?: (type: DebugMessageType, ...args: any[]) => void;
|
|
754
|
+
/**
|
|
755
|
+
* Получено отладочное сообщение с контекстом звонка. Работает только при выключенном режиме отладки
|
|
756
|
+
*/
|
|
757
|
+
onDebugMessageWithContext?: (type: DebugMessageType, context: {
|
|
758
|
+
conversationId: string | null;
|
|
759
|
+
}, ...args: any[]) => void;
|
|
740
760
|
/**
|
|
741
761
|
* Статистика звонка
|
|
742
762
|
*/
|
|
@@ -754,74 +774,74 @@ export type ParamsObject = {
|
|
|
754
774
|
* @param addedParticipantIds Некоторое количество участников, добавленных в зал
|
|
755
775
|
* @param removedParticipantIds Некоторое количество участников, убранных из зала
|
|
756
776
|
*/
|
|
757
|
-
onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]) => void;
|
|
777
|
+
onChatRoomUpdated?: (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[], conversationId?: string) => void;
|
|
758
778
|
/**
|
|
759
779
|
* Получен микшированный аудио стрим.
|
|
760
780
|
* @hidden
|
|
761
781
|
* @param stream стрим от WebRTC
|
|
762
782
|
*/
|
|
763
|
-
onRemoteMixedAudioStream?: (stream: MediaStream) => void;
|
|
783
|
+
onRemoteMixedAudioStream?: (stream: MediaStream, conversationId?: string) => void;
|
|
764
784
|
/**
|
|
765
785
|
* Получена новая ссылка на звонок
|
|
766
786
|
* @param joinLink токен присоединения к звонку
|
|
767
787
|
*/
|
|
768
|
-
onJoinLinkChanged?: (joinLink: string) => void;
|
|
788
|
+
onJoinLinkChanged?: (joinLink: string, conversationId?: string) => void;
|
|
769
789
|
/**
|
|
770
790
|
* Получено обновление списка сессионных залов
|
|
771
791
|
* @param updates список обновлений по залам
|
|
772
792
|
*/
|
|
773
|
-
onRoomsUpdated?: (updates: Partial<Record<RoomsEventType, RoomsUpdate
|
|
793
|
+
onRoomsUpdated?: (updates: Partial<Record<RoomsEventType, RoomsUpdate>>, conversationId?: string) => void;
|
|
774
794
|
/**
|
|
775
795
|
* Получено обновление сессионных зало
|
|
776
796
|
* @param eventTypes список событий
|
|
777
797
|
* @param roomId номер сессионного зала
|
|
778
798
|
* @param room сессионный зал
|
|
779
799
|
*/
|
|
780
|
-
onRoomUpdated?: (eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null) => void;
|
|
800
|
+
onRoomUpdated?: (eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null, conversationId?: string) => void;
|
|
781
801
|
/**
|
|
782
802
|
* Получение обновление списка участников в сессионном зале
|
|
783
803
|
* @param update обновление списка участников
|
|
784
804
|
*/
|
|
785
|
-
onRoomParticipantsUpdated?: (update: RoomParticipantUpdate) => void;
|
|
805
|
+
onRoomParticipantsUpdated?: (update: RoomParticipantUpdate, conversationId?: string) => void;
|
|
786
806
|
/**
|
|
787
807
|
* Получение информации о смене зала
|
|
788
808
|
* @param roomId номер сессионного зала
|
|
789
809
|
*/
|
|
790
|
-
onRoomSwitched?: (roomId: number | null) => void;
|
|
810
|
+
onRoomSwitched?: (roomId: number | null, conversationId?: string) => void;
|
|
791
811
|
/**
|
|
792
812
|
* Установить id сессионного зала на старте звонка
|
|
793
813
|
* @param roomId номер сессионного зала
|
|
794
814
|
*/
|
|
795
|
-
onRoomStart?: (roomId: number | null) => void;
|
|
815
|
+
onRoomStart?: (roomId: number | null, conversationId?: string) => void;
|
|
796
816
|
/**
|
|
797
817
|
* Получены новые реакции в звонке
|
|
798
818
|
* @param feedback массив с реакциями
|
|
799
819
|
*/
|
|
800
|
-
onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null) => void;
|
|
820
|
+
onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null, conversationId?: string) => void;
|
|
801
821
|
/**
|
|
802
822
|
* Изменился список ролей, которым доступны ConversationFeatures
|
|
803
823
|
*
|
|
804
824
|
* @param featuresPerRole Объект вида ключ: ConversationFeature = значение: UserRole[]
|
|
805
825
|
* (если ключ фичи отсутствует, или в ролях пустой массив, считаем фичу доступной для всех пользователей)
|
|
806
826
|
*/
|
|
807
|
-
onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole) => void;
|
|
827
|
+
onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole, conversationId?: string) => void;
|
|
808
828
|
/**
|
|
809
829
|
* Изменился Vmoji-аватар пользователя
|
|
810
830
|
* @param externalId Id пользователя, у которого изменился аватар
|
|
811
831
|
*/
|
|
812
|
-
onParticipantVmojiUpdate?: (externalId: ExternalParticipantId) => void;
|
|
832
|
+
onParticipantVmojiUpdate?: (externalId: ExternalParticipantId, conversationId?: string) => void;
|
|
813
833
|
/**
|
|
814
834
|
* Начата текстовая расшифровка звонка
|
|
815
835
|
* @param initiatorId Id пользователя, запустившего расшифровку звонка
|
|
816
836
|
* @param movieId Id расшифровки
|
|
817
837
|
* @param roomId Id комнаты
|
|
818
838
|
*/
|
|
819
|
-
onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null) => void;
|
|
839
|
+
onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null, conversationId?: string) => void;
|
|
820
840
|
/**
|
|
821
841
|
* Закончена текстовая расшифровка звонка
|
|
822
842
|
* @param roomId Id комнаты
|
|
823
843
|
*/
|
|
824
|
-
onAsrStopped?: (roomId: number | null) => void;
|
|
844
|
+
onAsrStopped?: (roomId: number | null, conversationId?: string) => void;
|
|
825
845
|
/**
|
|
826
846
|
* Получена расшифровка речи
|
|
827
847
|
* @param id Id пользователя, произнесшего реплику
|
|
@@ -829,43 +849,43 @@ export type ParamsObject = {
|
|
|
829
849
|
* @param timestamp Время расшифровки
|
|
830
850
|
* @param duration Длительность реплики в расшифровке
|
|
831
851
|
*/
|
|
832
|
-
onAsrTranscription?: (id: ExternalParticipantId, text: string, timestamp: number, duration: number) => void;
|
|
852
|
+
onAsrTranscription?: (id: ExternalParticipantId, text: string, timestamp: number, duration: number, conversationId?: string) => void;
|
|
833
853
|
/**
|
|
834
854
|
* Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)
|
|
835
855
|
* @param data Начальная информация по ASR
|
|
836
856
|
* @param roomId Id Комнаты
|
|
837
857
|
*/
|
|
838
|
-
onAsrSet?: (data: IAsrData | null, roomId: number | null) => void;
|
|
858
|
+
onAsrSet?: (data: IAsrData | null, roomId: number | null, conversationId?: string) => void;
|
|
839
859
|
/**
|
|
840
860
|
* Админ начал/остановил совместное использование стороннего web-приложения
|
|
841
861
|
* @param userId id участника-админа
|
|
842
862
|
* @param sharedUrl url страницы
|
|
843
863
|
*/
|
|
844
|
-
onRemoteSharedUrl?: (userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId) => void;
|
|
864
|
+
onRemoteSharedUrl?: (userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId, conversationId?: string) => void;
|
|
845
865
|
/**
|
|
846
866
|
* Изменился id участника (деанонимизация)
|
|
847
867
|
* @param prevId
|
|
848
868
|
* @param newId
|
|
849
869
|
*/
|
|
850
|
-
onParticipantIdChanged?: (prevId: ExternalParticipantId, newId: ExternalParticipantId) => void;
|
|
870
|
+
onParticipantIdChanged?: (prevId: ExternalParticipantId, newId: ExternalParticipantId, conversationId?: string) => void;
|
|
851
871
|
/**
|
|
852
872
|
* Предложение включить режим автоматического отключения приёма видео
|
|
853
873
|
* в плохой сети
|
|
854
874
|
* @param bandwidth текущая полоса пропускания, kbps
|
|
855
875
|
*/
|
|
856
|
-
onVideoSuspendSuggest?: (bandwidth: number) => void;
|
|
876
|
+
onVideoSuspendSuggest?: (bandwidth: number, conversationId?: string) => void;
|
|
857
877
|
/**
|
|
858
878
|
* Одобрено повышение пользователя в зале ожидания/зале в режиме Audience
|
|
859
879
|
*
|
|
860
880
|
* @param adminParticipantId админ, одобривший повышение
|
|
861
881
|
*/
|
|
862
|
-
onPromotionApproved?: (adminParticipantId: ExternalParticipantId) => void;
|
|
882
|
+
onPromotionApproved?: (adminParticipantId: ExternalParticipantId, conversationId?: string) => void;
|
|
863
883
|
/**
|
|
864
884
|
* Участник повышен/разжалован в зале ожидания/зале в режиме Audience
|
|
865
885
|
*
|
|
866
886
|
* @param demoted участник разжалован
|
|
867
887
|
*/
|
|
868
|
-
onPromoted?: (demoted: boolean) => void;
|
|
888
|
+
onPromoted?: (demoted: boolean, conversationId?: string) => void;
|
|
869
889
|
/**
|
|
870
890
|
* Активным установлен определенный звонок
|
|
871
891
|
*
|
|
@@ -875,7 +895,7 @@ export type ParamsObject = {
|
|
|
875
895
|
/**
|
|
876
896
|
* Собеседник подключился к сигналлингу
|
|
877
897
|
*/
|
|
878
|
-
onPeerRegistered?: () => void;
|
|
898
|
+
onPeerRegistered?: (conversationId?: string) => void;
|
|
879
899
|
};
|
|
880
900
|
export default abstract class Params {
|
|
881
901
|
private static _params;
|
|
@@ -942,6 +962,10 @@ export default abstract class Params {
|
|
|
942
962
|
static get displaySurface(): DisplayCaptureSurfaceType;
|
|
943
963
|
static get audioEffects(): EffectVoiceChange | null;
|
|
944
964
|
static set audioEffects(value: EffectVoiceChange | null);
|
|
965
|
+
static get vad(): VadLib | null;
|
|
966
|
+
static set vad(value: VadLib | null);
|
|
967
|
+
static get vadOptions(): VadControllerOptions;
|
|
968
|
+
static set vadOptions(value: VadControllerOptions);
|
|
945
969
|
static get videoEffects(): VideoEffects | null;
|
|
946
970
|
static set videoEffects(value: VideoEffects | null);
|
|
947
971
|
static get videoEffectMaxWidth(): number;
|
|
@@ -976,6 +1000,7 @@ export default abstract class Params {
|
|
|
976
1000
|
static get audioNack(): boolean;
|
|
977
1001
|
static get movieShare(): boolean;
|
|
978
1002
|
static get videoTracksCount(): number;
|
|
1003
|
+
static get requestDisplayLayoutThrottleMs(): number;
|
|
979
1004
|
static get breakVideoPayloadTypes(): boolean;
|
|
980
1005
|
static get useCallsToContacts(): boolean;
|
|
981
1006
|
static get useParticipantListChunk(): boolean;
|
|
@@ -1024,6 +1049,7 @@ export default abstract class Params {
|
|
|
1024
1049
|
screenShareCongestionControl: boolean;
|
|
1025
1050
|
screenShareCongestionControlThreshold: number;
|
|
1026
1051
|
videoTracksCount: number;
|
|
1052
|
+
requestDisplayLayoutThrottleMs: number;
|
|
1027
1053
|
asrDataChannel: boolean;
|
|
1028
1054
|
videoMaxHeight: number;
|
|
1029
1055
|
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
|
*
|
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;
|
|
@@ -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';
|
|
@@ -97,6 +97,7 @@ declare namespace SignalingMessage {
|
|
|
97
97
|
markers?: ParticipantListMarkers;
|
|
98
98
|
observedIds?: CompositeUserId[];
|
|
99
99
|
movieShareInfos?: ISharedMovieInfo[];
|
|
100
|
+
onHold?: boolean;
|
|
100
101
|
}
|
|
101
102
|
export interface ParticipantListChunk extends Notification {
|
|
102
103
|
participants: (Participant & Required<Pick<Participant, 'markers'>>)[];
|
|
@@ -190,6 +191,7 @@ declare namespace SignalingMessage {
|
|
|
190
191
|
deviceIdx?: number;
|
|
191
192
|
peerId: PeerId;
|
|
192
193
|
reason: HangupType;
|
|
194
|
+
errorCode?: string;
|
|
193
195
|
markers?: ParticipantListMarkers;
|
|
194
196
|
}
|
|
195
197
|
export interface ClosedConversation extends Notification {
|
|
@@ -366,6 +368,9 @@ declare namespace SignalingMessage {
|
|
|
366
368
|
export interface Connection extends Notification {
|
|
367
369
|
endpoint: string;
|
|
368
370
|
conversation: Conversation;
|
|
371
|
+
conversationParams: {
|
|
372
|
+
serverTime: number;
|
|
373
|
+
};
|
|
369
374
|
isConcurrent: boolean;
|
|
370
375
|
peerId: PeerId;
|
|
371
376
|
mediaModifiers: MediaModifiers;
|
package/types/Statistics.d.ts
CHANGED
package/types/WebTransport.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ declare class WebTransportEventual {
|
|
|
7
7
|
private readonly url;
|
|
8
8
|
private readonly options;
|
|
9
9
|
private readonly compression;
|
|
10
|
+
private closeRequested;
|
|
11
|
+
private closeEventEmitted;
|
|
10
12
|
private encoder;
|
|
11
13
|
private decoder;
|
|
12
14
|
onopen: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
@@ -22,6 +24,8 @@ declare class WebTransportEventual {
|
|
|
22
24
|
send(data: string): Promise<void>;
|
|
23
25
|
private createErrorEvent;
|
|
24
26
|
close(code?: number, reason?: string): void;
|
|
27
|
+
private closeConnectedTransport;
|
|
28
|
+
private emitClose;
|
|
25
29
|
static isBrowserSupported(): boolean;
|
|
26
30
|
}
|
|
27
31
|
export { WebTransportEventual as WebTransport };
|