@vkontakte/calls-sdk 2.8.6-dev.5b48b898.0 → 2.8.6-dev.64c0084a.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 +6 -5
- package/abstract/BaseSignaling.d.ts +1 -0
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +12 -5
- package/classes/Logger.d.ts +3 -0
- package/classes/MediaSource.d.ts +3 -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/transport/Statistics.d.ts +23 -10
- package/default/Signaling.d.ts +16 -9
- package/enums/ChatRoomEventType.d.ts +1 -1
- package/enums/ConversationOption.d.ts +3 -3
- package/enums/RecordRole.d.ts +1 -1
- package/enums/SignalingTransportStat.d.ts +17 -0
- package/enums/Stat.d.ts +35 -23
- package/package.json +2 -1
- package/static/ApiTransport.d.ts +1 -1
- package/static/External.d.ts +2 -2
- package/static/Params.d.ts +48 -17
- package/static/SimulcastInfo.d.ts +1 -1
- package/static/Utils.d.ts +1 -1
- package/types/ConversationParams.d.ts +2 -0
- package/types/ConversationResponse.d.ts +4 -0
- package/types/ExternalId.d.ts +2 -0
- package/types/SignalingMessage.d.ts +1 -1
- package/types/Streams.d.ts +1 -0
- package/types/WebTransport.d.ts +25 -0
- package/utils/LengthPrefixed.d.ts +48 -0
- package/utils/Lz4.d.ts +1 -1
- 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
|
@@ -30,12 +30,14 @@ import EventEmitter from './EventEmitter';
|
|
|
30
30
|
export default class Conversation extends EventEmitter {
|
|
31
31
|
private readonly _api;
|
|
32
32
|
private readonly _signaling;
|
|
33
|
+
private readonly _signalingActor;
|
|
33
34
|
private _mediaSource;
|
|
34
35
|
private _conversation;
|
|
35
36
|
private _myLastRequestedLayouts;
|
|
36
37
|
private _state;
|
|
37
38
|
private _participantState;
|
|
38
39
|
private _participants;
|
|
40
|
+
private _pendingParticipants;
|
|
39
41
|
private _transport;
|
|
40
42
|
private _debugInfo;
|
|
41
43
|
private _volumesDetector;
|
|
@@ -65,7 +67,7 @@ export default class Conversation extends EventEmitter {
|
|
|
65
67
|
static current(): Conversation | null;
|
|
66
68
|
static hangupAfterInit(): void;
|
|
67
69
|
static id(): string | null;
|
|
68
|
-
onStart({ opponentIds, opponentType, mediaOptions, payload, joiningAllowed, requireAuthToJoin, onlyAdminCanShareMovie, externalIds, onFastStart }: ConversationOnStartParams): Promise<ConversationData>;
|
|
70
|
+
onStart({ opponentIds, opponentType, mediaOptions, payload, joiningAllowed, requireAuthToJoin, onlyAdminCanShareMovie, externalIds, onFastStart, }: ConversationOnStartParams): Promise<ConversationData>;
|
|
69
71
|
onJoin(joinArgs: {
|
|
70
72
|
conversationId?: string;
|
|
71
73
|
mediaOptions: MediaOption[];
|
|
@@ -77,7 +79,7 @@ export default class Conversation extends EventEmitter {
|
|
|
77
79
|
private _onJoinPart2;
|
|
78
80
|
private _extractExternalRooms;
|
|
79
81
|
private _extractExternalRoomsData;
|
|
80
|
-
onPush(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string): Promise<void>;
|
|
82
|
+
onPush(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string, wsEndpoint?: string): Promise<void>;
|
|
81
83
|
private _isInWaitingHall;
|
|
82
84
|
private _isRestricted;
|
|
83
85
|
private _isAudienceMode;
|
|
@@ -96,7 +98,7 @@ export default class Conversation extends EventEmitter {
|
|
|
96
98
|
updateStatisticsInterval(): void;
|
|
97
99
|
private _openTransport;
|
|
98
100
|
private _close;
|
|
99
|
-
destroy(): void
|
|
101
|
+
destroy(): Promise<void>;
|
|
100
102
|
private _getConversationParams;
|
|
101
103
|
private _setConversationParams;
|
|
102
104
|
private _addGeoParamsToEndpoint;
|
|
@@ -228,7 +230,7 @@ export default class Conversation extends EventEmitter {
|
|
|
228
230
|
startAsr(params: IAsrStartParams): Promise<void>;
|
|
229
231
|
stopAsr(params?: IAsrStopParams): Promise<void>;
|
|
230
232
|
requestAsr(request: boolean): Promise<void>;
|
|
231
|
-
muteParticipant(participantId:
|
|
233
|
+
muteParticipant(participantId: (ParticipantId | null) | undefined, muteStates: MuteStates, requestedMedia?: MediaOption[], roomId?: number | null): Promise<void>;
|
|
232
234
|
enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<void>;
|
|
233
235
|
pinParticipant(participantId: ParticipantId, unpin: boolean, roomId?: number | null): Promise<void>;
|
|
234
236
|
updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<void>;
|
|
@@ -265,7 +267,7 @@ export default class Conversation extends EventEmitter {
|
|
|
265
267
|
switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<void>;
|
|
266
268
|
removeRooms(roomIds: number[]): Promise<void>;
|
|
267
269
|
startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null): Promise<undefined>;
|
|
268
|
-
stopStream(roomId?: number | null): Promise<undefined>;
|
|
270
|
+
stopStream(roomId?: number | null, remove?: boolean): Promise<undefined>;
|
|
269
271
|
publishStream(roomId?: number | null): Promise<undefined>;
|
|
270
272
|
recordSetConf(king?: ParticipantId, pawns?: ParticipantId[], hideParticipantCount?: boolean, roomId?: number | null): Promise<void>;
|
|
271
273
|
getStreamInfo(): Promise<{
|
|
@@ -312,6 +314,7 @@ export default class Conversation extends EventEmitter {
|
|
|
312
314
|
private _onChatMessage;
|
|
313
315
|
private _onCustomData;
|
|
314
316
|
private _onRecordInfo;
|
|
317
|
+
private _onStopRecordInfo;
|
|
315
318
|
private _changePinnedParticipantForRoom;
|
|
316
319
|
_changeRecordInfoForRoom(): Promise<void>;
|
|
317
320
|
private _changeAsrInfoForRoom;
|
|
@@ -344,6 +347,7 @@ export default class Conversation extends EventEmitter {
|
|
|
344
347
|
private _onAnimojiError;
|
|
345
348
|
private _onPeerConnectionClosed;
|
|
346
349
|
private _changeFeatureSet;
|
|
350
|
+
private _changeFeaturesPerRole;
|
|
347
351
|
private _changeNeedRate;
|
|
348
352
|
private _onVolumesDetected;
|
|
349
353
|
private _onSpeakerChanged;
|
|
@@ -383,6 +387,9 @@ export default class Conversation extends EventEmitter {
|
|
|
383
387
|
private _getMuteStatesForCurrentRoom;
|
|
384
388
|
private _setMuteStatesForRoomId;
|
|
385
389
|
private _forceOpenTransportForAloneInCall;
|
|
390
|
+
private _registerParticipant;
|
|
391
|
+
private _getParticipants;
|
|
392
|
+
private _getParticipant;
|
|
386
393
|
}
|
|
387
394
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
388
395
|
readonly participantErrors: {
|
package/classes/Logger.d.ts
CHANGED
|
@@ -11,7 +11,10 @@ export default class Logger extends BaseLogger {
|
|
|
11
11
|
private _batchTimeout;
|
|
12
12
|
private _serverTimeDelta;
|
|
13
13
|
private static _instance;
|
|
14
|
+
private static _conversationIdProvider;
|
|
14
15
|
constructor(api: BaseApi, externalLogger: BaseLogger | null);
|
|
16
|
+
static setConversationIdProvider(provider: () => string | null): void;
|
|
17
|
+
private _getConversationId;
|
|
15
18
|
private _sendLogItems;
|
|
16
19
|
private _sendClientStats;
|
|
17
20
|
private _sendClientEvents;
|
package/classes/MediaSource.d.ts
CHANGED
|
@@ -53,6 +53,8 @@ export declare class MediaSource extends EventEmitter {
|
|
|
53
53
|
/** вычисляем низкую производительность видео эффектов */
|
|
54
54
|
private readonly _videoEffectsFpsLimiter?;
|
|
55
55
|
constructor();
|
|
56
|
+
get cameraVideoTrack(): MediaStreamTrack | null;
|
|
57
|
+
set cameraVideoTrack(track: MediaStreamTrack | null);
|
|
56
58
|
request(mediaOptions?: MediaOption[], needEmptyTracks?: boolean): Promise<void>;
|
|
57
59
|
getStream(): MediaStream | null;
|
|
58
60
|
getScreenTrack(): MediaStreamTrack | null;
|
|
@@ -90,6 +92,7 @@ export declare class MediaSource extends EventEmitter {
|
|
|
90
92
|
destroy(): void;
|
|
91
93
|
toggleScreenCapturing(settings: ScreenCaptureSettings): Promise<void>;
|
|
92
94
|
disableScreenCapturing(): Promise<void>;
|
|
95
|
+
private videoTrackMuteHandler;
|
|
93
96
|
toggleVideo(enabled: boolean): Promise<void>;
|
|
94
97
|
toggleAudio(enabled: boolean): Promise<void>;
|
|
95
98
|
toggleAnimojiCapturing(enabled: boolean): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import SignalingMessage from '../types/SignalingMessage';
|
|
2
|
+
export declare class SignalingActor {
|
|
3
|
+
private processor;
|
|
4
|
+
private queue;
|
|
5
|
+
private isProcessing;
|
|
6
|
+
constructor(processor: (message: SignalingMessage) => Promise<unknown> | unknown);
|
|
7
|
+
add(message: SignalingMessage): void;
|
|
8
|
+
private processQueue;
|
|
9
|
+
}
|
|
@@ -15,7 +15,7 @@ export declare abstract class BaseStreamBuilder {
|
|
|
15
15
|
destroy(): void;
|
|
16
16
|
protected abstract _processFrame(frame: FrameData): void;
|
|
17
17
|
private _processFrameData;
|
|
18
|
-
static getFrameSize(frameData: Uint8Array): {
|
|
18
|
+
static getFrameSize(frameData: Uint8Array<ArrayBuffer>): {
|
|
19
19
|
width: number;
|
|
20
20
|
height: number;
|
|
21
21
|
};
|
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
2
|
import { StatItem, StatRtp, StatTransport } from '../../types/Statistics';
|
|
3
3
|
export declare const NO_STAT_REQUEST_DELAY = 1000;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
declare function distinctById(items: RTCStats[]): RTCStats[];
|
|
5
|
+
declare function rtcStatsToArray(stats: RTCStatsReport[]): RTCStats[];
|
|
6
6
|
/**
|
|
7
7
|
* Extracts transport statistics from the gives stats
|
|
8
8
|
* @hidden
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
declare function extractTransport(stats: RTCStats[]): StatTransport;
|
|
11
11
|
/**
|
|
12
12
|
* Extracts media statistics from the given stats
|
|
13
13
|
* @hidden
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
declare function extractRtps(stats: RTCStats[], ssrcMap: Record<string, string>, needToExtractRemote?: boolean): StatRtp[];
|
|
16
16
|
/**
|
|
17
17
|
* Computes delta (the difference) between two stat reports.
|
|
18
18
|
* @hidden
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
declare function delta(current: StatItem, previous: StatItem, needToExtractRemote?: boolean): StatItem;
|
|
21
|
+
declare function collectStats(pc: RTCPeerConnection, previous: StatItem | null, ssrcMap?: Record<string, string>, needToExtractRemote?: boolean): Promise<StatItem>;
|
|
22
|
+
declare function setMark(name: string): void;
|
|
23
|
+
declare function clearMark(name: string): void;
|
|
24
|
+
declare function measureMark(name: string): null | number;
|
|
25
|
+
declare function getMarkNameScreenshareFirstFrame(uid: ParticipantId): string;
|
|
26
|
+
declare const _default: {
|
|
27
|
+
distinctById: typeof distinctById;
|
|
28
|
+
rtcStatsToArray: typeof rtcStatsToArray;
|
|
29
|
+
extractTransport: typeof extractTransport;
|
|
30
|
+
extractRtps: typeof extractRtps;
|
|
31
|
+
delta: typeof delta;
|
|
32
|
+
collectStats: typeof collectStats;
|
|
33
|
+
setMark: typeof setMark;
|
|
34
|
+
clearMark: typeof clearMark;
|
|
35
|
+
measureMark: typeof measureMark;
|
|
36
|
+
getMarkNameScreenshareFirstFrame: typeof getMarkNameScreenshareFirstFrame;
|
|
37
|
+
};
|
|
38
|
+
export default _default;
|
package/default/Signaling.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import BaseSignaling, { AddParticipantParams } from '../abstract/BaseSignaling';
|
|
2
2
|
import { ParticipantIdRegistry } from '../classes/ParticipantIdRegistry';
|
|
3
3
|
import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
|
|
4
|
-
import { NetworkStatReport } from '../types/NetworkStatReport';
|
|
5
4
|
import { TransportTopology } from '../classes/transport/Transport';
|
|
6
5
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
7
6
|
import ConversationOption from '../enums/ConversationOption';
|
|
@@ -11,16 +10,17 @@ import SignalingConnectionType from '../enums/SignalingConnectionType';
|
|
|
11
10
|
import UserRole from '../enums/UserRole';
|
|
12
11
|
import { JSONObject } from '../static/Json';
|
|
13
12
|
import { IAsrStartParams, IAsrStopParams } from '../types/Asr';
|
|
13
|
+
import { ChangeSimulcast } from '../types/ChangeSimulcast';
|
|
14
14
|
import MediaModifiers from '../types/MediaModifiers';
|
|
15
15
|
import MediaSettings from '../types/MediaSettings';
|
|
16
16
|
import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
|
|
17
17
|
import MuteStates from '../types/MuteStates';
|
|
18
|
+
import { NetworkStatReport } from '../types/NetworkStatReport';
|
|
18
19
|
import { CompositeUserId, ParticipantId, ParticipantStateData } from '../types/Participant';
|
|
19
20
|
import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
|
|
20
21
|
import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
21
22
|
import { StreamDescriptionString } from '../types/ParticipantStreamDescription';
|
|
22
23
|
import { PerfStatReport } from '../types/PerfStatReporter';
|
|
23
|
-
import { ChangeSimulcast } from '../types/ChangeSimulcast';
|
|
24
24
|
import SignalingMessage, { GetParticipantsSignalingResponse, GetRoomsSignalingResponse, SignalingSuccessResponse } from '../types/SignalingMessage';
|
|
25
25
|
import { IPublishStreamData, IRecordConfData, IStartStreamData, IStopStreamData } from '../types/Streams';
|
|
26
26
|
export default class Signaling extends BaseSignaling {
|
|
@@ -31,8 +31,10 @@ export default class Signaling extends BaseSignaling {
|
|
|
31
31
|
private datachannelCommandsQueue;
|
|
32
32
|
private incomingCache;
|
|
33
33
|
private responseHandlers;
|
|
34
|
+
private connectionType;
|
|
34
35
|
private reconnectCount;
|
|
35
36
|
private endpoint;
|
|
37
|
+
private wtEndpoint;
|
|
36
38
|
protected conversationResolve: Function | null;
|
|
37
39
|
protected conversationReject: Function | null;
|
|
38
40
|
private connected;
|
|
@@ -48,15 +50,16 @@ export default class Signaling extends BaseSignaling {
|
|
|
48
50
|
private producerCommandDataChannel;
|
|
49
51
|
private producerCommandDataChannelEnabled;
|
|
50
52
|
private producerCommandSerializationService;
|
|
51
|
-
private static
|
|
52
|
-
private static
|
|
53
|
-
private static
|
|
54
|
-
private static
|
|
55
|
-
private static
|
|
56
|
-
private static
|
|
53
|
+
private static get RECONNECT_DELAY();
|
|
54
|
+
private static get RECONNECT_MAX_DELAY();
|
|
55
|
+
private static get RECONNECT_MAX_COUNT();
|
|
56
|
+
private static get WAIT_CONNECTION_DELAY();
|
|
57
|
+
private static get WAIT_RESPONSE_DELAY();
|
|
58
|
+
private static get WAIT_MESSAGE_DELAY();
|
|
57
59
|
private static _getCapabilityFlags;
|
|
58
60
|
get ready(): boolean;
|
|
59
61
|
setEndpoint(endpoint: string): void;
|
|
62
|
+
setWebTransportEndpoint(endpoint: string | null): void;
|
|
60
63
|
setConversationId(conversationId: string): void;
|
|
61
64
|
setParticipantIdRegistry(participantIdRegistry: ParticipantIdRegistry): void;
|
|
62
65
|
setProducerNotificationDataChannel(dataChannel: RTCDataChannel): void;
|
|
@@ -161,7 +164,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
161
164
|
startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
|
|
162
165
|
stopAsr(params?: IAsrStopParams): Promise<SignalingMessage>;
|
|
163
166
|
requestAsr(request: boolean): Promise<SignalingMessage>;
|
|
164
|
-
protected _connect(connectionType: SignalingConnectionType): void;
|
|
167
|
+
protected _connect(connectionType: SignalingConnectionType, useWebTransport: boolean): void;
|
|
165
168
|
protected _disconnect(code?: number): void;
|
|
166
169
|
private _onOpen;
|
|
167
170
|
private _onMessage;
|
|
@@ -183,4 +186,8 @@ export default class Signaling extends BaseSignaling {
|
|
|
183
186
|
protected _stopWaitConnectionMessage(): void;
|
|
184
187
|
private _startDoctor;
|
|
185
188
|
private _stopDoctor;
|
|
189
|
+
private isWebTransportAvailable;
|
|
190
|
+
private _getSocketType;
|
|
191
|
+
private _markTransportStat;
|
|
192
|
+
private _logTransportStat;
|
|
186
193
|
}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
declare enum ConversationOption {
|
|
5
5
|
REQUIRE_AUTH_TO_JOIN = "REQUIRE_AUTH_TO_JOIN",
|
|
6
|
-
AUDIENCE_MODE = "AUDIENCE_MODE"
|
|
7
|
-
WAITING_HALL = "WAITING_HALL"
|
|
6
|
+
AUDIENCE_MODE = "AUDIENCE_MODE",// Stereo chat room
|
|
7
|
+
WAITING_HALL = "WAITING_HALL",// Waiting Hall is ON
|
|
8
8
|
ASR = "ASR",
|
|
9
|
-
FEEDBACK = "FEEDBACK"
|
|
9
|
+
FEEDBACK = "FEEDBACK",// Reactions (default = off)
|
|
10
10
|
RECURRING = "RECURRING"
|
|
11
11
|
}
|
|
12
12
|
export default ConversationOption;
|
package/enums/RecordRole.d.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Stat from './Stat';
|
|
2
|
+
export declare const enum SignalingTransportType {
|
|
3
|
+
WEBSOCKET = "ws",
|
|
4
|
+
WEBTRANSPORT = "wt"
|
|
5
|
+
}
|
|
6
|
+
export declare const enum SignalingTransportStat {
|
|
7
|
+
CONNECTED = "connected",
|
|
8
|
+
RECONNECTED = "reconnected",
|
|
9
|
+
FAILED_PINGS = "failed_pings",
|
|
10
|
+
FAILED_EXCEPTIONS = "failed_exception",
|
|
11
|
+
TIMEOUT = "timeout",
|
|
12
|
+
RESTART = "restart"
|
|
13
|
+
}
|
|
14
|
+
export declare const SOCKET_STAT: Record<SignalingTransportStat, {
|
|
15
|
+
[SignalingTransportType.WEBSOCKET]: Stat;
|
|
16
|
+
[SignalingTransportType.WEBTRANSPORT]: Stat;
|
|
17
|
+
}>;
|
package/enums/Stat.d.ts
CHANGED
|
@@ -1,43 +1,55 @@
|
|
|
1
1
|
declare const enum Stat {
|
|
2
2
|
ERROR = "callError",
|
|
3
|
-
DEVICES = "callDevices"
|
|
4
|
-
CALL_SPEC_ERROR = "callSpecError"
|
|
5
|
-
ICE_CONNECTION_STATE = "callIceConnectionState"
|
|
6
|
-
ICE_CONNECTION_TYPE = "callIceConnectionType"
|
|
7
|
-
ICE_RESTART = "callIceRestart"
|
|
8
|
-
PUSH = "callPush"
|
|
9
|
-
OUTGOING_CALL = "callStart"
|
|
10
|
-
CALL_FINISH = "call_finish"
|
|
11
|
-
OUTGOING_MULTIPARTY_CALL = "callStartMultiparty"
|
|
12
|
-
JOIN_CONVERSATION = "callJoinConversation"
|
|
13
|
-
ACCEPTED_OUTGOING = "callAcceptedOutgoing"
|
|
14
|
-
ACCEPT_INCOMING = "callAcceptIncoming"
|
|
3
|
+
DEVICES = "callDevices",// залогировать количество %d_%d
|
|
4
|
+
CALL_SPEC_ERROR = "callSpecError",// ошибки WebRTC
|
|
5
|
+
ICE_CONNECTION_STATE = "callIceConnectionState",// state
|
|
6
|
+
ICE_CONNECTION_TYPE = "callIceConnectionType",// type
|
|
7
|
+
ICE_RESTART = "callIceRestart",// без параметров
|
|
8
|
+
PUSH = "callPush",// busy / rejected / accepted
|
|
9
|
+
OUTGOING_CALL = "callStart",// video/audio
|
|
10
|
+
CALL_FINISH = "call_finish",// событие отправляемое в конце звонка
|
|
11
|
+
OUTGOING_MULTIPARTY_CALL = "callStartMultiparty",// video/audio
|
|
12
|
+
JOIN_CONVERSATION = "callJoinConversation",// video/audio
|
|
13
|
+
ACCEPTED_OUTGOING = "callAcceptedOutgoing",// video/audio
|
|
14
|
+
ACCEPT_INCOMING = "callAcceptIncoming",// video/audio
|
|
15
15
|
DECLINE_INCOMING = "callDeclineIncoming",
|
|
16
|
-
ACCEPT_CONCURRENT = "callAcceptConcurrent"
|
|
16
|
+
ACCEPT_CONCURRENT = "callAcceptConcurrent",// video/audio
|
|
17
17
|
HANGUP = "callHangup",
|
|
18
|
-
CODEC_USAGE = "codec_usage"
|
|
19
|
-
MEDIA_STATUS = "callMediaStatus",
|
|
20
|
-
DEVICE_CHANGED = "callDeviceChanged"
|
|
18
|
+
CODEC_USAGE = "codec_usage",// событие когда меняется кодек
|
|
19
|
+
MEDIA_STATUS = "callMediaStatus",// изменение video_1, audio_0
|
|
20
|
+
DEVICE_CHANGED = "callDeviceChanged",// смена камеры video/audio/screen
|
|
21
21
|
SOCKET_ACTION = "callSocketAction",
|
|
22
22
|
ADD_PARTICIPANT = "callAddParticipant",
|
|
23
23
|
REMOVE_PARTICIPANT = "callRemoveParticipant",
|
|
24
|
-
POOR_CONNECTION = "callPoorConnection"
|
|
24
|
+
POOR_CONNECTION = "callPoorConnection",// video / audio
|
|
25
25
|
TOPOLOGY_CHANGE_REQUESTED = "callTopologyChangeRequested",
|
|
26
|
-
RELAY_POLICY = "callForceRelay"
|
|
26
|
+
RELAY_POLICY = "callForceRelay",// 1 / 0
|
|
27
27
|
PAT_ALLOCATED = "patAllocate",
|
|
28
28
|
PAT_DEALLOCATED = "patDeallocate",
|
|
29
29
|
PAT_ERROR = "patError",
|
|
30
30
|
PAT_WAITING_TIME_ERROR = "patWaitingTimeError",
|
|
31
31
|
PAT_OUTDATED_RESPONSE = "patOutdatedResponse",
|
|
32
|
-
SIGNALING_CONNECTED = "signaling_connected"
|
|
33
|
-
RECONNECT = "callReconnect"
|
|
34
|
-
SCREENSHARE_FIRST_FRAME = "screen_share_first_frame"
|
|
35
|
-
SCREENSHARE_FREEZE_DURATION = "callScreenshareFreezeDuration"
|
|
32
|
+
SIGNALING_CONNECTED = "signaling_connected",// measure
|
|
33
|
+
RECONNECT = "callReconnect",// measure
|
|
34
|
+
SCREENSHARE_FIRST_FRAME = "screen_share_first_frame",// measure
|
|
35
|
+
SCREENSHARE_FREEZE_DURATION = "callScreenshareFreezeDuration",// measure
|
|
36
36
|
/** Объединение callFirstDataReceivedP2P и callFirstAudioMixDataReceived */
|
|
37
37
|
FIRST_MEDIA_RECEIVED = "first_media_received",
|
|
38
38
|
CALL_EVENTUAL_STAT = "callEventualStat",
|
|
39
39
|
CALL_DECLINED_OR_HANGED_LOCALLY = "CallDeclinedOrHangedLocally",
|
|
40
40
|
USER_FEEDBACK_RECEIVED = "UserFeedbackReceived",
|
|
41
|
-
CALL_START = "call_start"
|
|
41
|
+
CALL_START = "call_start",
|
|
42
|
+
WEBSOCKET_CONNECTED = "websocket_connected",
|
|
43
|
+
WEBSOCKET_RECONNECTED = "websocket_reconnected",
|
|
44
|
+
WEBSOCKET_FAILED_PINGS = "websocket_failed_pings",
|
|
45
|
+
WEBSOCKET_FAILED_EXCEPTION = "websocket_failed_exception",
|
|
46
|
+
WEBSOCKET_TIMEOUT = "websocket_timeout",
|
|
47
|
+
WEBSOCKET_RESTART = "websocket_restart",
|
|
48
|
+
WEBTRANSPORT_CONNECTED = "webtransport_connected",
|
|
49
|
+
WEBTRANSPORT_RECONNECTED = "webtransport_reconnected",
|
|
50
|
+
WEBTRANSPORT_FAILED_PINGS = "webtransport_failed_pings",
|
|
51
|
+
WEBTRANSPORT_FAILED_EXCEPTION = "webtransport_failed_exception",
|
|
52
|
+
WEBTRANSPORT_TIMEOUT = "webtransport_timeout",
|
|
53
|
+
WEBTRANSPORT_RESTART = "webtransport_restart"
|
|
42
54
|
}
|
|
43
55
|
export default Stat;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/calls-sdk",
|
|
3
|
-
"version": "2.8.6-dev.
|
|
3
|
+
"version": "2.8.6-dev.64c0084a.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Library for video calls based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"@vkontakte/calls-vmoji": "1.0.10-beta.17",
|
|
20
20
|
"@vkontakte/libvpx": "2.0.9",
|
|
21
21
|
"bit-buffer": "0.2.5",
|
|
22
|
+
"fflate": "^0.8.2",
|
|
22
23
|
"messagepack": "1.1.12",
|
|
23
24
|
"simple-ebml-builder": "0.2.2",
|
|
24
25
|
"webrtc-adapter": "7.7.0"
|
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
|
@@ -226,7 +226,7 @@ declare namespace External {
|
|
|
226
226
|
* @param markers
|
|
227
227
|
*/
|
|
228
228
|
function onParticipantJoined(userId: ExternalId, markers: ExternalParticipantListMarkers | null): void;
|
|
229
|
-
function onLocalParticipantState(participantState: ParticipantStateMapped): void;
|
|
229
|
+
function onLocalParticipantState(participantState: ParticipantStateMapped, global?: boolean): void;
|
|
230
230
|
/**
|
|
231
231
|
* Изменились данные состояний собеседника
|
|
232
232
|
*
|
|
@@ -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
|
*/
|
|
@@ -565,8 +599,11 @@ export type ParamsObject = {
|
|
|
565
599
|
/**
|
|
566
600
|
* Получены данные по изменению локальных состояний со стороны админа
|
|
567
601
|
* Например, принудительно опущена рука
|
|
602
|
+
*
|
|
603
|
+
* @param participantState Полный объект состояния участника, полученный от SDK/сервера.
|
|
604
|
+
* @param global `true` – действие глобальное (для всех участников), `false` – действие локальное (только у текущего пользователя).
|
|
568
605
|
*/
|
|
569
|
-
onLocalParticipantState?: (participantState: ParticipantStateMapped) => void;
|
|
606
|
+
onLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean) => void;
|
|
570
607
|
/**
|
|
571
608
|
* Изменились данные состояний собеседника
|
|
572
609
|
*/
|
|
@@ -681,7 +718,7 @@ export type ParamsObject = {
|
|
|
681
718
|
/**
|
|
682
719
|
* Закончена трансляция/запись звонка
|
|
683
720
|
*/
|
|
684
|
-
onRecordStopped?: (roomId: number | null) => void;
|
|
721
|
+
onRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null) => void;
|
|
685
722
|
/**
|
|
686
723
|
* Состояние своей сети
|
|
687
724
|
*
|
|
@@ -834,21 +871,6 @@ export type ParamsObject = {
|
|
|
834
871
|
* Собеседник подключился к сигналлингу
|
|
835
872
|
*/
|
|
836
873
|
onPeerRegistered?: () => void;
|
|
837
|
-
/**
|
|
838
|
-
* Поддержка переключения качества видео в зависимости от сети
|
|
839
|
-
* Только для режима p2p
|
|
840
|
-
*
|
|
841
|
-
* _По умолчанию: `false`_
|
|
842
|
-
*/
|
|
843
|
-
switchVideoAtBadNetwork: boolean;
|
|
844
|
-
/** включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами */
|
|
845
|
-
enableVideoEffectsFpsDegradation: boolean;
|
|
846
|
-
/**
|
|
847
|
-
* Включить поддержку simulcast на отправке
|
|
848
|
-
*
|
|
849
|
-
* _По умолчанию: `false`_
|
|
850
|
-
*/
|
|
851
|
-
simulcast: boolean;
|
|
852
874
|
};
|
|
853
875
|
export default abstract class Params {
|
|
854
876
|
private static _params;
|
|
@@ -885,6 +907,8 @@ export default abstract class Params {
|
|
|
885
907
|
static set iceServers(value: IceServer[]);
|
|
886
908
|
static get wssBase(): string;
|
|
887
909
|
static set wssBase(value: string);
|
|
910
|
+
static get wtsBase(): string;
|
|
911
|
+
static set wtsBase(value: string);
|
|
888
912
|
static get wssToken(): string;
|
|
889
913
|
static set wssToken(value: string);
|
|
890
914
|
static get signalingReconnectDelay(): number;
|
|
@@ -978,6 +1002,10 @@ export default abstract class Params {
|
|
|
978
1002
|
static get enableVideoEffectsFpsDegradation(): boolean;
|
|
979
1003
|
static get simulcast(): boolean;
|
|
980
1004
|
static set simulcast(value: boolean);
|
|
1005
|
+
static get webtransport(): boolean;
|
|
1006
|
+
static set webtransport(value: boolean);
|
|
1007
|
+
static get webtransportFF(): boolean;
|
|
1008
|
+
static set webtransportFF(value: boolean);
|
|
981
1009
|
static toJSON(): {
|
|
982
1010
|
apiKey: string;
|
|
983
1011
|
apiEnv: string;
|
|
@@ -1006,5 +1034,8 @@ export default abstract class Params {
|
|
|
1006
1034
|
clientStatsPlatform: string;
|
|
1007
1035
|
consumerScreenDataChannelPacketSize: number;
|
|
1008
1036
|
switchVideoAtBadNetwork: boolean;
|
|
1037
|
+
simulcast: boolean;
|
|
1038
|
+
webtransport: boolean;
|
|
1039
|
+
webtransportFF: boolean;
|
|
1009
1040
|
};
|
|
1010
1041
|
}
|
|
@@ -10,4 +10,4 @@ export declare const MAP_RID_TO_SCALE_RESOLUTION_DOWN_BY: Record<string, number>
|
|
|
10
10
|
export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
|
|
11
11
|
export declare function findBitrateAsc(maxDimension: number, bitrates: VideoBitrateSettings[]): number;
|
|
12
12
|
export declare function calculateSimulcastInfo(width?: number, height?: number, bitrates?: VideoBitrateSettings[]): ISimulcastInfo;
|
|
13
|
-
export declare function findScaleResolutionDownBy(rid
|
|
13
|
+
export declare function findScaleResolutionDownBy(rid?: string): number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ 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
77
|
function patchSimulcastAnswerSdp(sdp: string, trans: RTCRtpTransceiver, width: number, height: number): string;
|
|
@@ -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;
|
|
@@ -22,5 +23,6 @@ export type ExternalConversationParams = {
|
|
|
22
23
|
trnp: string;
|
|
23
24
|
trnu: string;
|
|
24
25
|
wse: string;
|
|
26
|
+
wte: string;
|
|
25
27
|
};
|
|
26
28
|
export default ConversationParams;
|
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';
|
|
@@ -96,6 +97,7 @@ export interface ExternalParticipant {
|
|
|
96
97
|
unmuteOptions: MediaOption[];
|
|
97
98
|
markers: ExternalParticipantListMarkers | null;
|
|
98
99
|
movieShareInfos?: ISharedMovieInfo[];
|
|
100
|
+
roles: UserRole[];
|
|
99
101
|
}
|
|
100
102
|
/**
|
|
101
103
|
* Позиция в чанке
|
|
@@ -276,7 +276,6 @@ declare namespace SignalingMessage {
|
|
|
276
276
|
}
|
|
277
277
|
export interface FeatureSetChanged extends Notification {
|
|
278
278
|
features: ConversationFeature[];
|
|
279
|
-
featuresPerRole?: IFeaturesPerRole | null;
|
|
280
279
|
}
|
|
281
280
|
export interface MultipartyChatCreated extends Notification {
|
|
282
281
|
chatId: string;
|
|
@@ -289,6 +288,7 @@ declare namespace SignalingMessage {
|
|
|
289
288
|
recordInfo: RecordInfo;
|
|
290
289
|
}
|
|
291
290
|
export interface RecordStopped extends Notification {
|
|
291
|
+
/** кто остановил запись или если в комнатах, то это админ */
|
|
292
292
|
participant: ParticipantId;
|
|
293
293
|
recordMovieId: number;
|
|
294
294
|
}
|