@vkontakte/calls-sdk 2.8.6-dev.77dd3c9d.0 → 2.8.6-dev.796773ba.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 +25 -9
- package/abstract/BaseApi.d.ts +2 -1
- package/abstract/BaseSignaling.d.ts +7 -3
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +22 -12
- package/classes/Logger.d.ts +3 -0
- package/classes/MediaSource.d.ts +10 -0
- package/classes/ProducerCommandSerializationService.d.ts +2 -0
- package/classes/SignalingActor.d.ts +9 -0
- package/classes/codec/IEncoder.d.ts +0 -1
- package/classes/screenshare/BaseStreamBuilder.d.ts +1 -1
- package/classes/stat/CodecStatsAggregator.d.ts +19 -0
- package/classes/stat/EventMetricsService.d.ts +9 -0
- package/classes/transport/ServerTransport.d.ts +5 -0
- package/classes/transport/Statistics.d.ts +23 -10
- package/classes/transport/Transport.d.ts +1 -0
- package/default/Api.d.ts +2 -1
- package/default/Signaling.d.ts +21 -11
- package/enums/ChatRoomEventType.d.ts +1 -1
- package/enums/ConversationOption.d.ts +3 -3
- package/enums/RecordRole.d.ts +1 -1
- package/enums/SignalingCommandType.d.ts +2 -1
- package/enums/SignalingTransportStat.d.ts +17 -0
- package/enums/Stat.d.ts +36 -21
- package/package.json +7 -3
- package/static/ApiTransport.d.ts +1 -1
- package/static/External.d.ts +1 -1
- package/static/Params.d.ts +46 -10
- package/static/SimulcastInfo.d.ts +13 -0
- package/static/Utils.d.ts +3 -2
- package/static/WebRTCUtils.d.ts +5 -0
- package/types/ChangeSimulcast.d.ts +6 -0
- package/types/Conversation.d.ts +28 -1
- package/types/ConversationParams.d.ts +14 -1
- package/types/ConversationResponse.d.ts +9 -0
- package/types/ExternalId.d.ts +3 -0
- package/types/FastStart.d.ts +46 -0
- package/types/Participant.d.ts +9 -0
- package/types/PerfStatReporter.d.ts +1 -0
- package/types/SignalingMessage.d.ts +2 -1
- package/types/SimulcastInfo.d.ts +10 -0
- package/types/Statistics.d.ts +158 -4
- package/types/Streams.d.ts +1 -0
- package/types/VideoSettings.d.ts +12 -0
- package/types/WebTransport.d.ts +25 -0
- package/utils/LengthPrefixed.d.ts +48 -0
- package/utils/Lz4.d.ts +1 -0
- package/utils/MsgPackerBufferUtils.d.ts +1 -1
- package/utils/VariableLengthInteger.d.ts +18 -0
- package/worker/LibVPxDecoderWorker.d.ts +0 -1
- package/worker/LibVPxEncoderWorker.d.ts +0 -1
- package/worker/WebCodecsDecoderWorker.d.ts +0 -1
- package/worker/WebCodecsEncoderWorker.d.ts +0 -1
package/static/ApiTransport.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export declare function sendBeakon(method: string, params?: {
|
|
|
6
6
|
}, noSession?: boolean): Promise<void>;
|
|
7
7
|
export declare function request(method: string, params?: {
|
|
8
8
|
[key: string]: any;
|
|
9
|
-
}, noSession?: boolean, customEndpoint?: string): Promise<
|
|
9
|
+
}, noSession?: boolean, customEndpoint?: string): Promise<any>;
|
|
10
10
|
export declare function sendFormData(url: string, data: FormData): Promise<void>;
|
package/static/External.d.ts
CHANGED
|
@@ -420,7 +420,7 @@ declare namespace External {
|
|
|
420
420
|
* Закончена запись звонка
|
|
421
421
|
* @param roomId ID зала в котором остановлена запись
|
|
422
422
|
*/
|
|
423
|
-
function onRecordStopped(roomId
|
|
423
|
+
function onRecordStopped(roomId: number | null | undefined, stopBy: ExternalParticipantId | null): void;
|
|
424
424
|
/**
|
|
425
425
|
* Состояние своей сети
|
|
426
426
|
*
|
package/static/Params.d.ts
CHANGED
|
@@ -82,6 +82,8 @@ export type ParamsObject = {
|
|
|
82
82
|
/** @hidden */
|
|
83
83
|
wssBase: string;
|
|
84
84
|
/** @hidden */
|
|
85
|
+
wtsBase: string;
|
|
86
|
+
/** @hidden */
|
|
85
87
|
wssToken: string;
|
|
86
88
|
/** @hidden */
|
|
87
89
|
signalingReconnectDelay: number;
|
|
@@ -461,6 +463,38 @@ export type ParamsObject = {
|
|
|
461
463
|
* _По умолчанию: `false`_
|
|
462
464
|
*/
|
|
463
465
|
enableLogPerfStatReport: boolean;
|
|
466
|
+
/**
|
|
467
|
+
* Поддержка переключения качества видео в зависимости от сети
|
|
468
|
+
* Только для режима p2p
|
|
469
|
+
*
|
|
470
|
+
* _По умолчанию: `false`_
|
|
471
|
+
*/
|
|
472
|
+
switchVideoAtBadNetwork: boolean;
|
|
473
|
+
/**
|
|
474
|
+
* Включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами
|
|
475
|
+
*
|
|
476
|
+
* _По умолчанию: `false`_
|
|
477
|
+
*/
|
|
478
|
+
enableVideoEffectsFpsDegradation: boolean;
|
|
479
|
+
/**
|
|
480
|
+
* Включить поддержку simulcast на отправке
|
|
481
|
+
*
|
|
482
|
+
* _По умолчанию: `false`_
|
|
483
|
+
*/
|
|
484
|
+
simulcast: boolean;
|
|
485
|
+
/**
|
|
486
|
+
* Включить поддержку webtransport для сигналинга
|
|
487
|
+
*
|
|
488
|
+
* _По умолчанию: `false`_
|
|
489
|
+
*/
|
|
490
|
+
webtransport: boolean;
|
|
491
|
+
/**
|
|
492
|
+
* Включить поддержку webtransport для сигналинга в FireFox
|
|
493
|
+
* Отдельная ручка, так как есть проблемы сейчас с FF
|
|
494
|
+
*
|
|
495
|
+
* _По умолчанию: `false`_
|
|
496
|
+
*/
|
|
497
|
+
webtransportFF: boolean;
|
|
464
498
|
/**
|
|
465
499
|
* Получен локальный стрим с камеры/микрофона
|
|
466
500
|
*/
|
|
@@ -681,7 +715,7 @@ export type ParamsObject = {
|
|
|
681
715
|
/**
|
|
682
716
|
* Закончена трансляция/запись звонка
|
|
683
717
|
*/
|
|
684
|
-
onRecordStopped?: (roomId: number | null) => void;
|
|
718
|
+
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null) => void;
|
|
685
719
|
/**
|
|
686
720
|
* Состояние своей сети
|
|
687
721
|
*
|
|
@@ -834,15 +868,6 @@ export type ParamsObject = {
|
|
|
834
868
|
* Собеседник подключился к сигналлингу
|
|
835
869
|
*/
|
|
836
870
|
onPeerRegistered?: () => void;
|
|
837
|
-
/**
|
|
838
|
-
* Поддержка переключения качества видео в зависимости от сети
|
|
839
|
-
* Только для режима p2p
|
|
840
|
-
*
|
|
841
|
-
* _По умолчанию: `false`_
|
|
842
|
-
*/
|
|
843
|
-
switchVideoAtBadNetwork: boolean;
|
|
844
|
-
/** включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами */
|
|
845
|
-
enableVideoEffectsFpsDegradation: boolean;
|
|
846
871
|
};
|
|
847
872
|
export default abstract class Params {
|
|
848
873
|
private static _params;
|
|
@@ -879,6 +904,8 @@ export default abstract class Params {
|
|
|
879
904
|
static set iceServers(value: IceServer[]);
|
|
880
905
|
static get wssBase(): string;
|
|
881
906
|
static set wssBase(value: string);
|
|
907
|
+
static get wtsBase(): string;
|
|
908
|
+
static set wtsBase(value: string);
|
|
882
909
|
static get wssToken(): string;
|
|
883
910
|
static set wssToken(value: string);
|
|
884
911
|
static get signalingReconnectDelay(): number;
|
|
@@ -970,6 +997,12 @@ export default abstract class Params {
|
|
|
970
997
|
static getScreenFrameRate(fastScreenShare: boolean): number;
|
|
971
998
|
static get switchVideoAtBadNetwork(): boolean;
|
|
972
999
|
static get enableVideoEffectsFpsDegradation(): boolean;
|
|
1000
|
+
static get simulcast(): boolean;
|
|
1001
|
+
static set simulcast(value: boolean);
|
|
1002
|
+
static get webtransport(): boolean;
|
|
1003
|
+
static set webtransport(value: boolean);
|
|
1004
|
+
static get webtransportFF(): boolean;
|
|
1005
|
+
static set webtransportFF(value: boolean);
|
|
973
1006
|
static toJSON(): {
|
|
974
1007
|
apiKey: string;
|
|
975
1008
|
apiEnv: string;
|
|
@@ -998,5 +1031,8 @@ export default abstract class Params {
|
|
|
998
1031
|
clientStatsPlatform: string;
|
|
999
1032
|
consumerScreenDataChannelPacketSize: number;
|
|
1000
1033
|
switchVideoAtBadNetwork: boolean;
|
|
1034
|
+
simulcast: boolean;
|
|
1035
|
+
webtransport: boolean;
|
|
1036
|
+
webtransportFF: boolean;
|
|
1001
1037
|
};
|
|
1002
1038
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type SimulcastInfo as ISimulcastInfo } from '../types/SimulcastInfo';
|
|
2
|
+
import type { VideoBitrateSettings } from '../types/VideoSettings';
|
|
3
|
+
export declare const SIMULCAST_DEFAULT: {
|
|
4
|
+
HEIGHT: number;
|
|
5
|
+
WIDTH: number;
|
|
6
|
+
BITRATE: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const SIMULCAST_SCALABILITY_MODE = "L1T2";
|
|
9
|
+
export declare const MAP_RID_TO_SCALE_RESOLUTION_DOWN_BY: Record<string, number>;
|
|
10
|
+
export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
|
|
11
|
+
export declare function findBitrateAsc(maxDimension: number, bitrates: VideoBitrateSettings[]): number;
|
|
12
|
+
export declare function calculateSimulcastInfo(width?: number, height?: number, bitrates?: VideoBitrateSettings[]): ISimulcastInfo;
|
|
13
|
+
export declare function findScaleResolutionDownBy(rid?: string): number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -61,7 +61,7 @@ declare namespace Utils {
|
|
|
61
61
|
[key in T]?: K;
|
|
62
62
|
}, obj2: {
|
|
63
63
|
[key in T]?: K;
|
|
64
|
-
}): boolean;
|
|
64
|
+
}, deep?: boolean): boolean;
|
|
65
65
|
function isArraysEquals<T>(arr1: T[], arr2: T[]): boolean;
|
|
66
66
|
function isEmptyObject(obj: object): boolean;
|
|
67
67
|
/**
|
|
@@ -71,8 +71,9 @@ declare namespace Utils {
|
|
|
71
71
|
function participantMarkerCompare(marker1: ExternalParticipantListMarker | undefined, marker2: ExternalParticipantListMarker | undefined): number;
|
|
72
72
|
/** убирает все ключи со значением `V` на 1 уровне */
|
|
73
73
|
function objectFilterOutValues<T extends Record<string, V>, V = unknown>(obj: T, value?: unknown | unknown[]): Partial<T>;
|
|
74
|
-
function objectReduce<R, T extends
|
|
74
|
+
function objectReduce<R, T extends object>(obj: T, callback: (acc: R, value: T[keyof T], key: keyof T) => R, initialValue: R): R;
|
|
75
75
|
const setImmediate: (fn: VoidFunction) => VoidFunction;
|
|
76
76
|
function isObject(obj: unknown): obj is object;
|
|
77
|
+
function patchSimulcastAnswerSdp(sdp: string, trans: RTCRtpTransceiver, width: number, height: number): string;
|
|
77
78
|
}
|
|
78
79
|
export default Utils;
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -127,6 +127,7 @@ declare namespace WebRTCUtils {
|
|
|
127
127
|
function isBrokenH264Decoder(): boolean;
|
|
128
128
|
/**
|
|
129
129
|
* В некоторых браузерах VP9 encoder сломан
|
|
130
|
+
* В симулкасте вп9 енкодер ведет себя некорректно
|
|
130
131
|
*/
|
|
131
132
|
function isBrokenVP9Encoder(): boolean;
|
|
132
133
|
/**
|
|
@@ -142,6 +143,10 @@ declare namespace WebRTCUtils {
|
|
|
142
143
|
* Может ли браузер делать H264 приоритетным
|
|
143
144
|
*/
|
|
144
145
|
function canPreferH264(): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Некоторые браузеры (Firefox, Safari) некорректно поддерживают симулкаст
|
|
148
|
+
*/
|
|
149
|
+
function isSimulcastSupportedByBrowser(): boolean;
|
|
145
150
|
/**
|
|
146
151
|
* Имя операционной системы
|
|
147
152
|
*/
|
package/types/Conversation.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { TransportTopology } from '../classes/transport/Transport';
|
|
2
2
|
import CallDirection from '../enums/CallDirection';
|
|
3
|
+
import CallType from '../enums/CallType';
|
|
3
4
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
4
5
|
import ConversationOption from '../enums/ConversationOption';
|
|
6
|
+
import MediaOption from '../enums/MediaOption';
|
|
5
7
|
import UserRole from '../enums/UserRole';
|
|
6
8
|
import { AsrInfo } from './Asr';
|
|
7
9
|
import { IFeaturesPerRole } from './ConversationFeature';
|
|
8
|
-
import { ExternalParticipantId } from './ExternalId';
|
|
10
|
+
import { ExternalId, ExternalParticipantId } from './ExternalId';
|
|
11
|
+
import { FastStartHandler } from './FastStart';
|
|
9
12
|
import MediaModifiers from './MediaModifiers';
|
|
10
13
|
import MuteStates from './MuteStates';
|
|
11
14
|
import { OkUserId, ParticipantId } from './Participant';
|
|
@@ -68,3 +71,27 @@ export type ConversationData = {
|
|
|
68
71
|
/** @hidden */
|
|
69
72
|
urlSharingInfoByRoom: Map<IRoomId, RoomUrlSharingInfo>;
|
|
70
73
|
};
|
|
74
|
+
export type ConversationOnStartParams = {
|
|
75
|
+
opponentIds?: OkUserId[];
|
|
76
|
+
opponentType: CallType;
|
|
77
|
+
mediaOptions: MediaOption[];
|
|
78
|
+
payload?: string;
|
|
79
|
+
joiningAllowed?: boolean;
|
|
80
|
+
requireAuthToJoin?: boolean;
|
|
81
|
+
onlyAdminCanShareMovie?: boolean;
|
|
82
|
+
externalIds?: ExternalId[];
|
|
83
|
+
onFastStart?: FastStartHandler;
|
|
84
|
+
};
|
|
85
|
+
export type StartConversationParams = {
|
|
86
|
+
opponentIds?: OkUserId[];
|
|
87
|
+
opponentType: CallType;
|
|
88
|
+
direction: CallDirection;
|
|
89
|
+
mediaOptions: MediaOption[];
|
|
90
|
+
payload?: string;
|
|
91
|
+
joiningAllowed?: boolean;
|
|
92
|
+
requireAuthToJoin?: boolean;
|
|
93
|
+
onlyAdminCanShareMovie?: boolean;
|
|
94
|
+
externalIds?: ExternalId[];
|
|
95
|
+
startedTime: number;
|
|
96
|
+
onFastStart?: FastStartHandler;
|
|
97
|
+
};
|
|
@@ -2,6 +2,7 @@ import IceServer from './IceServer';
|
|
|
2
2
|
type ConversationParams = {
|
|
3
3
|
token: string;
|
|
4
4
|
endpoint: string;
|
|
5
|
+
wt_endpoint?: string;
|
|
5
6
|
turn_server?: IceServer;
|
|
6
7
|
stun_server?: IceServer;
|
|
7
8
|
client_type?: string;
|
|
@@ -10,6 +11,18 @@ type ConversationParams = {
|
|
|
10
11
|
isp_as_org?: string;
|
|
11
12
|
loc_cc?: string;
|
|
12
13
|
loc_reg?: string;
|
|
13
|
-
external_user_type
|
|
14
|
+
external_user_type?: string;
|
|
15
|
+
};
|
|
16
|
+
export type ExternalConversationParams = {
|
|
17
|
+
et: number;
|
|
18
|
+
iv: boolean;
|
|
19
|
+
srcp: string;
|
|
20
|
+
stne: string;
|
|
21
|
+
tkn: string;
|
|
22
|
+
trne: string;
|
|
23
|
+
trnp: string;
|
|
24
|
+
trnu: string;
|
|
25
|
+
wse: string;
|
|
26
|
+
wte: string;
|
|
14
27
|
};
|
|
15
28
|
export default ConversationParams;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import HangupType from '../enums/HangupType';
|
|
2
|
+
import IceServer from './IceServer';
|
|
2
3
|
/**
|
|
3
4
|
* Начальные данные создания звонка
|
|
4
5
|
* @hidden
|
|
@@ -12,6 +13,10 @@ type ConversationResponse = {
|
|
|
12
13
|
* URL для подключения
|
|
13
14
|
*/
|
|
14
15
|
endpoint: string;
|
|
16
|
+
/**
|
|
17
|
+
* URL для подключения по WebTransport
|
|
18
|
+
*/
|
|
19
|
+
wt_endpoint?: string;
|
|
15
20
|
/**
|
|
16
21
|
* Токен комнаты для подключения к звонку по ссылке
|
|
17
22
|
*/
|
|
@@ -27,5 +32,9 @@ type ConversationResponse = {
|
|
|
27
32
|
* Порядковый номер, присвоенный устройству при входе в звонок
|
|
28
33
|
*/
|
|
29
34
|
device_idx?: number;
|
|
35
|
+
turn_server?: IceServer;
|
|
36
|
+
stun_server?: IceServer;
|
|
37
|
+
client_type?: string;
|
|
38
|
+
token: string;
|
|
30
39
|
};
|
|
31
40
|
export default ConversationResponse;
|
package/types/ExternalId.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import MediaOption from '../enums/MediaOption';
|
|
2
|
+
import UserRole from '../enums/UserRole';
|
|
2
3
|
import { ParticipantStatus } from '../static/External';
|
|
3
4
|
import MediaSettings from './MediaSettings';
|
|
4
5
|
import { ISharedMovieInfo } from './MovieShare';
|
|
@@ -19,6 +20,7 @@ export declare namespace ExternalIdUtils {
|
|
|
19
20
|
function fromId(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
|
|
20
21
|
function fromSignalingParticipant(participant: SignalingMessage.Participant, useDecorative?: boolean): ExternalParticipantId | undefined;
|
|
21
22
|
function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx?: number): ExternalParticipantId;
|
|
23
|
+
function toSignaling(externalId: ExternalId): string;
|
|
22
24
|
function toString(externalId: ExternalId): ExternalIdString;
|
|
23
25
|
function fromIdToString(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalIdString;
|
|
24
26
|
function fromString(stringId: ExternalIdString): ExternalParticipantId;
|
|
@@ -95,6 +97,7 @@ export interface ExternalParticipant {
|
|
|
95
97
|
unmuteOptions: MediaOption[];
|
|
96
98
|
markers: ExternalParticipantListMarkers | null;
|
|
97
99
|
movieShareInfos?: ISharedMovieInfo[];
|
|
100
|
+
roles: UserRole[];
|
|
98
101
|
}
|
|
99
102
|
/**
|
|
100
103
|
* Позиция в чанке
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { HangupType, IceServer } from '../CallsSDK';
|
|
2
|
+
import CallType from '../enums/CallType';
|
|
3
|
+
import MediaOption from '../enums/MediaOption';
|
|
4
|
+
import { ExternalId } from './ExternalId';
|
|
5
|
+
/**
|
|
6
|
+
* Параметры, которые нужно вернуть для создания fastStart
|
|
7
|
+
*/
|
|
8
|
+
export interface InternalParams {
|
|
9
|
+
platform: string;
|
|
10
|
+
sdkVersion: string;
|
|
11
|
+
clientAppKey: string;
|
|
12
|
+
deviceId: string;
|
|
13
|
+
protocolVersion: number;
|
|
14
|
+
domainId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface InternalCallerParams {
|
|
17
|
+
id: ID;
|
|
18
|
+
isConcurrent: boolean;
|
|
19
|
+
endpoint: string;
|
|
20
|
+
wtEndpoint: string;
|
|
21
|
+
clientType: string;
|
|
22
|
+
turn: IceServer;
|
|
23
|
+
stun: IceServer;
|
|
24
|
+
}
|
|
25
|
+
export interface ID {
|
|
26
|
+
internal: number;
|
|
27
|
+
external: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FastStartParams {
|
|
30
|
+
conversationId: string;
|
|
31
|
+
internalParams: string;
|
|
32
|
+
externalIds?: ExternalId[];
|
|
33
|
+
opponentType: CallType;
|
|
34
|
+
mediaOptions: MediaOption[];
|
|
35
|
+
joiningAllowed?: boolean;
|
|
36
|
+
requireAuthToJoin?: boolean;
|
|
37
|
+
isVideo?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface FastStartResponse {
|
|
40
|
+
internalCallerParams: string;
|
|
41
|
+
rejectedParticipants: {
|
|
42
|
+
id: string;
|
|
43
|
+
status: HangupType;
|
|
44
|
+
}[];
|
|
45
|
+
}
|
|
46
|
+
export type FastStartHandler = (params: FastStartParams) => Promise<FastStartResponse>;
|
package/types/Participant.d.ts
CHANGED
|
@@ -86,3 +86,12 @@ export interface Participant {
|
|
|
86
86
|
export interface IGetParticipantsParameters {
|
|
87
87
|
externalIds: ExternalId[];
|
|
88
88
|
}
|
|
89
|
+
export type ParticipantStateDataKey = 'hand' | 'drat';
|
|
90
|
+
export declare enum ParticipantStateDataValue {
|
|
91
|
+
OFF = "0",
|
|
92
|
+
ON = "1"
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Список состояний в виде ключ-значение. Максимальная длина ключей и значений - 5 символов. Пустые значения будут пропущены
|
|
96
|
+
*/
|
|
97
|
+
export type ParticipantStateData = Partial<Record<ParticipantStateDataKey, ParticipantStateDataValue>>;
|
|
@@ -133,6 +133,7 @@ declare namespace SignalingMessage {
|
|
|
133
133
|
muteStates?: MuteStates;
|
|
134
134
|
asrInfo?: AsrInfo;
|
|
135
135
|
urlSharingInfo?: RoomUrlSharingInfo;
|
|
136
|
+
joinLink?: string;
|
|
136
137
|
}
|
|
137
138
|
export interface Room {
|
|
138
139
|
active?: boolean;
|
|
@@ -275,7 +276,6 @@ declare namespace SignalingMessage {
|
|
|
275
276
|
}
|
|
276
277
|
export interface FeatureSetChanged extends Notification {
|
|
277
278
|
features: ConversationFeature[];
|
|
278
|
-
featuresPerRole?: IFeaturesPerRole | null;
|
|
279
279
|
}
|
|
280
280
|
export interface MultipartyChatCreated extends Notification {
|
|
281
281
|
chatId: string;
|
|
@@ -288,6 +288,7 @@ declare namespace SignalingMessage {
|
|
|
288
288
|
recordInfo: RecordInfo;
|
|
289
289
|
}
|
|
290
290
|
export interface RecordStopped extends Notification {
|
|
291
|
+
/** кто остановил запись или если в комнатах, то это админ */
|
|
291
292
|
participant: ParticipantId;
|
|
292
293
|
recordMovieId: number;
|
|
293
294
|
}
|
package/types/Statistics.d.ts
CHANGED
|
@@ -24,46 +24,199 @@ export interface ILocalIceCandidateStat extends IRemoteIceCandidateStat {
|
|
|
24
24
|
relayProtocol: string;
|
|
25
25
|
networkType: RTCNetworkType;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
interface StatRtpOutboundVideo {
|
|
28
|
+
frameHeight?: number;
|
|
29
|
+
frameWidth?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Идентификатор потока RTP (RID).
|
|
32
|
+
*
|
|
33
|
+
* Используется для идентификации различных потоков видео (например, simulcast) в сессиях WebRTC.
|
|
34
|
+
*/
|
|
35
|
+
rid?: string;
|
|
36
|
+
framesSent?: number;
|
|
37
|
+
framesPerSecond?: number;
|
|
38
|
+
targetBitrate?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface StatRtp extends StatRtpOutboundVideo {
|
|
41
|
+
/**
|
|
42
|
+
* Уникальный идентификатор источника синхронизации RTP
|
|
43
|
+
*/
|
|
28
44
|
ssrc: number;
|
|
45
|
+
/**
|
|
46
|
+
* Идентификатор медиалинии (MID)
|
|
47
|
+
*
|
|
48
|
+
* Используется для уникальной идентификации медиалинии в рамках WebRTC-сессии.
|
|
49
|
+
* MID помогает сопоставлять медиапотоки с их соответствующими трансиверами.
|
|
50
|
+
*/
|
|
51
|
+
mid?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Тип статистики (например, inbound-rtp, outbound-rtp)
|
|
54
|
+
*/
|
|
29
55
|
type: string;
|
|
56
|
+
/**
|
|
57
|
+
* Тип медиа (например, audio, video)
|
|
58
|
+
*/
|
|
30
59
|
kind: string;
|
|
60
|
+
/**
|
|
61
|
+
* Общее количество байтов, полученных по этому потоку
|
|
62
|
+
*/
|
|
31
63
|
bytesReceived: number;
|
|
64
|
+
/**
|
|
65
|
+
* Общее количество байтов, отправленных по этому потоку
|
|
66
|
+
*/
|
|
32
67
|
bytesSent: number;
|
|
68
|
+
/**
|
|
69
|
+
* Общее количество байтов заголовков, полученных по этому потоку
|
|
70
|
+
*/
|
|
33
71
|
headerBytesReceived: number;
|
|
72
|
+
/**
|
|
73
|
+
* Общее количество байтов заголовков, отправленных по этому потоку
|
|
74
|
+
*/
|
|
34
75
|
headerBytesSent: number;
|
|
76
|
+
/**
|
|
77
|
+
* Среднее значение джиттера в секундах
|
|
78
|
+
* Джиттер — это вариация задержки в получении пакетов данных.
|
|
79
|
+
*/
|
|
35
80
|
jitter: number;
|
|
81
|
+
/**
|
|
82
|
+
* Общее количество потерянных пакетов
|
|
83
|
+
*/
|
|
36
84
|
packetsLost: number;
|
|
85
|
+
/**
|
|
86
|
+
* Общее количество полученных пакетов
|
|
87
|
+
*/
|
|
37
88
|
packetsReceived: number;
|
|
89
|
+
/**
|
|
90
|
+
* Общее количество отправленных пакетов
|
|
91
|
+
*/
|
|
38
92
|
packetsSent: number;
|
|
93
|
+
/**
|
|
94
|
+
* Доля потерянных пакетов
|
|
95
|
+
*/
|
|
39
96
|
fractionLost: number;
|
|
97
|
+
/**
|
|
98
|
+
* Количество Picture Loss Indication (PLI) сообщений
|
|
99
|
+
* PLI — это сообщения, указывающие на потерю кадров изображения.
|
|
100
|
+
*/
|
|
40
101
|
pliCount: number;
|
|
102
|
+
/**
|
|
103
|
+
* Количество Full Intra Request (FIR) сообщений
|
|
104
|
+
* FIR — это запросы на отправку полного внутрикодированного кадра.
|
|
105
|
+
*/
|
|
41
106
|
firCount: number;
|
|
107
|
+
/**
|
|
108
|
+
* Количество Negative ACKnowledgement (NACK) сообщений
|
|
109
|
+
* NACK — это сообщения, указывающие на потерю пакетов данных.
|
|
110
|
+
*/
|
|
42
111
|
nackCount: number;
|
|
112
|
+
/**
|
|
113
|
+
* Идентификатор пользователя, связанный с этим потоком
|
|
114
|
+
*/
|
|
43
115
|
userId?: string;
|
|
116
|
+
/**
|
|
117
|
+
* Пропускная способность в битах в секунду
|
|
118
|
+
*/
|
|
44
119
|
bandwidth?: number;
|
|
120
|
+
/**
|
|
121
|
+
* Процент потерянных пакетов
|
|
122
|
+
*/
|
|
45
123
|
packetLoss?: number;
|
|
124
|
+
/**
|
|
125
|
+
* Частота дискретизации в герцах
|
|
126
|
+
* Частота дискретизации определяет качество звука.
|
|
127
|
+
*/
|
|
46
128
|
clockRate?: number;
|
|
129
|
+
/**
|
|
130
|
+
* Название кодека
|
|
131
|
+
* @example audio/opus, video/vp8
|
|
132
|
+
*/
|
|
47
133
|
mimeType?: string;
|
|
48
|
-
|
|
49
|
-
|
|
134
|
+
/**
|
|
135
|
+
* Библиотека, которая используется для кодека
|
|
136
|
+
*/
|
|
137
|
+
encoderImplementation?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Библиотека, которая используется для декодера
|
|
140
|
+
*/
|
|
141
|
+
decoderImplementation?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Параметры кодека, есть только у audio кодеков
|
|
144
|
+
*/
|
|
145
|
+
sdpFmtpLine?: string;
|
|
146
|
+
/**
|
|
147
|
+
* Общее количество декодированных кадров
|
|
148
|
+
*/
|
|
50
149
|
framesDecoded?: number;
|
|
150
|
+
/**
|
|
151
|
+
* Общее количество полученных кадров
|
|
152
|
+
*/
|
|
51
153
|
framesReceived?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Общее количество отброшенных кадров
|
|
156
|
+
*/
|
|
52
157
|
framesDropped?: number;
|
|
158
|
+
/**
|
|
159
|
+
* Изменение количества отброшенных кадров
|
|
160
|
+
*/
|
|
53
161
|
framesDroppedDelta?: number;
|
|
162
|
+
/**
|
|
163
|
+
* Изменение задержки между кадрами
|
|
164
|
+
*/
|
|
54
165
|
interframeDelayVariance?: number;
|
|
166
|
+
/**
|
|
167
|
+
* Общее количество полученных аудиосэмплов
|
|
168
|
+
*/
|
|
55
169
|
totalSamplesReceived?: number;
|
|
170
|
+
/**
|
|
171
|
+
* Общее время кодирования видео в секундах.
|
|
172
|
+
*
|
|
173
|
+
* Показывает, сколько времени было потрачено на кодирование видео кадров.
|
|
174
|
+
* Не применяется для аудио.
|
|
175
|
+
*/
|
|
176
|
+
totalEncodeTime?: number;
|
|
177
|
+
/**
|
|
178
|
+
* Общее количество замаскированных сэмплов
|
|
179
|
+
*/
|
|
56
180
|
concealedSamples?: number;
|
|
181
|
+
/**
|
|
182
|
+
* Количество вставленных сэмплов для замедления
|
|
183
|
+
*/
|
|
57
184
|
insertedSamplesForDeceleration?: number;
|
|
185
|
+
/**
|
|
186
|
+
* Количество удаленных сэмплов для ускорения
|
|
187
|
+
*/
|
|
58
188
|
removedSamplesForAcceleration?: number;
|
|
189
|
+
/**
|
|
190
|
+
* Количество замаскированных беззвучных сэмплов
|
|
191
|
+
*/
|
|
59
192
|
silentConcealedSamples?: number;
|
|
193
|
+
/**
|
|
194
|
+
* Количество событий маскировки
|
|
195
|
+
*/
|
|
60
196
|
concealmentEvents?: number;
|
|
197
|
+
/**
|
|
198
|
+
* Общее количество аудиоэнергии
|
|
199
|
+
* Аудиоэнергия — это мера мощности аудиосигнала.
|
|
200
|
+
*/
|
|
61
201
|
totalAudioEnergy?: number;
|
|
202
|
+
/**
|
|
203
|
+
* Общее время замерзания в секундах
|
|
204
|
+
*/
|
|
62
205
|
totalFreezesDuration: number;
|
|
206
|
+
/**
|
|
207
|
+
* Изменение общего времени замерзания
|
|
208
|
+
* Время замерзания — это период, в течение которого поток временно останавливается.
|
|
209
|
+
*/
|
|
63
210
|
totalFreezesDurationDelta?: number;
|
|
211
|
+
/**
|
|
212
|
+
* Количество событий замерзания
|
|
213
|
+
*/
|
|
64
214
|
freezeCount: number;
|
|
215
|
+
/**
|
|
216
|
+
* Изменение количества событий замерзания
|
|
217
|
+
*/
|
|
65
218
|
freezeCountDelta?: number;
|
|
66
|
-
}
|
|
219
|
+
}
|
|
67
220
|
export type StatItem = {
|
|
68
221
|
timestamp: number;
|
|
69
222
|
transport: StatTransport;
|
|
@@ -87,3 +240,4 @@ export type StatResult = {
|
|
|
87
240
|
rtps: StatRtp[];
|
|
88
241
|
};
|
|
89
242
|
};
|
|
243
|
+
export {};
|
package/types/Streams.d.ts
CHANGED
package/types/VideoSettings.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export type VideoSettings = {
|
|
|
25
25
|
* https://www.w3.org/TR/webrtc-svc/
|
|
26
26
|
*/
|
|
27
27
|
scalabilityMode: string;
|
|
28
|
+
/**
|
|
29
|
+
* Таблица с битрейтами в зависимости от разрешения
|
|
30
|
+
*/
|
|
31
|
+
bitrates?: Record<'generic' | string, VideoBitrateSettings[]>;
|
|
28
32
|
};
|
|
29
33
|
export default VideoSettings;
|
|
30
34
|
export declare function compareVideoSettings(vs1: VideoSettings | null, vs2: VideoSettings | null): boolean;
|
|
@@ -38,3 +42,11 @@ export declare enum VideoScalability {
|
|
|
38
42
|
L1T2 = "L1T2",
|
|
39
43
|
L1T3 = "L1T3"
|
|
40
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Настройка битрейта под конкретное разрешение
|
|
47
|
+
* @hidden
|
|
48
|
+
*/
|
|
49
|
+
export type VideoBitrateSettings = {
|
|
50
|
+
dimension: number;
|
|
51
|
+
bitrate: number;
|
|
52
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WebTransportOptions } from '@fails-components/webtransport';
|
|
2
|
+
declare class WebTransportEventual {
|
|
3
|
+
private webTransport;
|
|
4
|
+
private stream;
|
|
5
|
+
private writer;
|
|
6
|
+
private reader;
|
|
7
|
+
private readonly url;
|
|
8
|
+
private readonly options;
|
|
9
|
+
private readonly compression;
|
|
10
|
+
private encoder;
|
|
11
|
+
private decoder;
|
|
12
|
+
onopen: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
13
|
+
onmessage: ((this: WebTransportEventual, ev: MessageEvent) => any) | null;
|
|
14
|
+
onerror: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
15
|
+
onclose: ((this: WebTransportEventual, ev: CloseEvent) => any) | null;
|
|
16
|
+
readyState: number;
|
|
17
|
+
constructor(url: string, options?: WebTransportOptions);
|
|
18
|
+
private getCompressionTypeFromUrl;
|
|
19
|
+
private connect;
|
|
20
|
+
private readLoop;
|
|
21
|
+
send(data: string): Promise<void>;
|
|
22
|
+
close(code?: number, reason?: string): void;
|
|
23
|
+
static isBrowserSupported(): boolean;
|
|
24
|
+
}
|
|
25
|
+
export { WebTransportEventual as WebTransport };
|