@vkontakte/calls-sdk 2.7.2-beta.9 → 2.7.2-dev.1355151.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 +4 -8
- package/abstract/BaseApi.d.ts +5 -1
- package/abstract/BaseSignaling.d.ts +1 -1
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +14 -57
- package/classes/codec/IDecoder.d.ts +1 -1
- package/classes/codec/LibVPxDecoder.d.ts +1 -1
- package/classes/screenshare/BaseRenderer.d.ts +1 -1
- package/classes/screenshare/BaseStreamBuilder.d.ts +8 -2
- package/classes/screenshare/CanvasRenderer.d.ts +1 -2
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +3 -1
- package/classes/screenshare/StreamBuilder.d.ts +2 -2
- package/classes/screenshare/WebmBuilder.d.ts +2 -2
- package/classes/transport/DirectTransport.d.ts +1 -0
- package/classes/transport/PerfStatReporter.d.ts +2 -0
- package/classes/transport/ServerTransport.d.ts +2 -3
- package/classes/transport/Statistics.d.ts +16 -0
- package/classes/transport/Transport.d.ts +2 -1
- package/default/Signaling.d.ts +2 -2
- package/enums/HangupType.d.ts +2 -1
- package/enums/Stat.d.ts +2 -1
- package/package.json +2 -2
- package/static/External.d.ts +5 -3
- package/static/Params.d.ts +44 -5
- package/static/WebRTCUtils.d.ts +0 -4
- package/types/Conversation.d.ts +63 -1
- package/types/Room.d.ts +4 -0
- package/types/ScreenSharingStat.d.ts +3 -0
- package/types/SignalingMessage.d.ts +4 -0
|
@@ -2,7 +2,6 @@ import type { IEffect } from '@vkontakte/calls-video-effects';
|
|
|
2
2
|
import BaseApi from '../abstract/BaseApi';
|
|
3
3
|
import BaseLogger from '../abstract/BaseLogger';
|
|
4
4
|
import BaseSignaling, { AddParticipantParams } from '../abstract/BaseSignaling';
|
|
5
|
-
import CallDirection from '../enums/CallDirection';
|
|
6
5
|
import CallType from '../enums/CallType';
|
|
7
6
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
8
7
|
import ConversationOption from '../enums/ConversationOption';
|
|
@@ -12,8 +11,8 @@ import UpdateDisplayLayoutErrorReason from '../enums/UpdateDisplayLayoutErrorRea
|
|
|
12
11
|
import UserRole from '../enums/UserRole';
|
|
13
12
|
import UserType from '../enums/UserType';
|
|
14
13
|
import { JSONObject } from '../static/Json';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
14
|
+
import { IAsrStartParams } from '../types/Asr';
|
|
15
|
+
import { ConversationData } from '../types/Conversation';
|
|
17
16
|
import { ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalUserId } from '../types/ExternalId';
|
|
18
17
|
import MediaModifiers from '../types/MediaModifiers';
|
|
19
18
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
@@ -25,66 +24,15 @@ import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
|
25
24
|
import ParticipantPriority from '../types/ParticipantPriority';
|
|
26
25
|
import { ParticipantStreamDescription } from '../types/ParticipantStreamDescription';
|
|
27
26
|
import { ScreenCaptureSettings } from '../types/ScreenCaptureSettings';
|
|
28
|
-
import SignalingMessage
|
|
27
|
+
import SignalingMessage from '../types/SignalingMessage';
|
|
29
28
|
import { WaitingHallResponse } from '../types/WaitingHall';
|
|
30
29
|
import EventEmitter from './EventEmitter';
|
|
31
|
-
import { TransportTopology } from './transport/Transport';
|
|
32
|
-
/**
|
|
33
|
-
* Данные текущего звонка
|
|
34
|
-
*/
|
|
35
|
-
export type ConversationData = {
|
|
36
|
-
/** @hidden */
|
|
37
|
-
userId: OkUserId;
|
|
38
|
-
/** @hidden */
|
|
39
|
-
compositeUserId: ParticipantId;
|
|
40
|
-
externalId: ExternalParticipantId;
|
|
41
|
-
/**
|
|
42
|
-
* Время принятия звонка
|
|
43
|
-
*/
|
|
44
|
-
acceptTime: number | null;
|
|
45
|
-
features: ConversationFeature[];
|
|
46
|
-
/** @hidden */
|
|
47
|
-
featuresPerRole?: IFeaturesPerRole | null;
|
|
48
|
-
/**
|
|
49
|
-
* ID звонка
|
|
50
|
-
*/
|
|
51
|
-
id: string;
|
|
52
|
-
participantsLimit: number;
|
|
53
|
-
/** @hidden */
|
|
54
|
-
topology: TransportTopology;
|
|
55
|
-
/** @hidden */
|
|
56
|
-
direction: CallDirection;
|
|
57
|
-
concurrent: boolean;
|
|
58
|
-
needRate: boolean;
|
|
59
|
-
/** @hidden */
|
|
60
|
-
recordsInfoByRoom: Map<number | null, RecordInfo | null>;
|
|
61
|
-
chatId: string | null;
|
|
62
|
-
/** @hidden */
|
|
63
|
-
asrInfo: AsrInfo | null;
|
|
64
|
-
/**
|
|
65
|
-
* Роли пользователя
|
|
66
|
-
*/
|
|
67
|
-
roles: UserRole[];
|
|
68
|
-
/**
|
|
69
|
-
* Токен комнаты для подключения к звонку по ссылке
|
|
70
|
-
*/
|
|
71
|
-
joinLink?: string;
|
|
72
|
-
/** @hidden */
|
|
73
|
-
pinnedParticipantId: ParticipantId | null;
|
|
74
|
-
mediaModifiers: MediaModifiers;
|
|
75
|
-
options: ConversationOption[];
|
|
76
|
-
muteStates: Map<number | null, MuteStates>;
|
|
77
|
-
unmuteOptions: MediaOption[];
|
|
78
|
-
networkRating: number;
|
|
79
|
-
waitingHall: boolean;
|
|
80
|
-
observer: boolean;
|
|
81
|
-
roomId: number | null;
|
|
82
|
-
};
|
|
83
30
|
export type ParticipantUpdateInfo = {
|
|
84
31
|
participantStreamDescription: ParticipantStreamDescription | null;
|
|
85
32
|
streamId: string;
|
|
86
33
|
rtpTimestamp: number | null;
|
|
87
34
|
sequenceNumber: number;
|
|
35
|
+
fastScreenShare: boolean;
|
|
88
36
|
};
|
|
89
37
|
export default class Conversation extends EventEmitter {
|
|
90
38
|
private readonly _api;
|
|
@@ -208,6 +156,13 @@ export default class Conversation extends EventEmitter {
|
|
|
208
156
|
* @hidden
|
|
209
157
|
*/
|
|
210
158
|
private _processRecordInfos;
|
|
159
|
+
/**
|
|
160
|
+
* Обрабатывает информацию об адмниских пинах в основном и сессионных залах
|
|
161
|
+
* @param connection
|
|
162
|
+
* @private
|
|
163
|
+
* @hidden
|
|
164
|
+
*/
|
|
165
|
+
private _processPinnedParticipants;
|
|
211
166
|
private _allocateTransport;
|
|
212
167
|
private _createSpeakerDetector;
|
|
213
168
|
private _createSpecListener;
|
|
@@ -273,7 +228,7 @@ export default class Conversation extends EventEmitter {
|
|
|
273
228
|
requestAsr(request: boolean): Promise<void>;
|
|
274
229
|
muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia?: MediaOption[], roomId?: number | null): Promise<void>;
|
|
275
230
|
enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<void>;
|
|
276
|
-
pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<void>;
|
|
231
|
+
pinParticipant(participantId: ParticipantId, unpin: boolean, roomId?: number | null): Promise<void>;
|
|
277
232
|
updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<void>;
|
|
278
233
|
changeOptions(changes: {
|
|
279
234
|
[key in ConversationOption]?: boolean;
|
|
@@ -340,6 +295,7 @@ export default class Conversation extends EventEmitter {
|
|
|
340
295
|
private _onChatMessage;
|
|
341
296
|
private _onCustomData;
|
|
342
297
|
private _onRecordInfo;
|
|
298
|
+
private _changePinnedParticipantForRoom;
|
|
343
299
|
_changeRecordInfoForRoom(): Promise<void>;
|
|
344
300
|
private _onParticipantAnimojiChanged;
|
|
345
301
|
private _onAsrInfo;
|
|
@@ -398,6 +354,7 @@ export default class Conversation extends EventEmitter {
|
|
|
398
354
|
private _getMuteStatesForRoomId;
|
|
399
355
|
private _getMuteStatesForCurrentRoom;
|
|
400
356
|
private _setMuteStatesForRoomId;
|
|
357
|
+
private _forceOpenTransportForAloneInCall;
|
|
401
358
|
}
|
|
402
359
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
403
360
|
readonly participantErrors: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default interface IDecoder {
|
|
2
|
-
init(onFrameImage: (image: VideoFrame |
|
|
2
|
+
init(onFrameImage: (image: VideoFrame | ImageData) => void): Promise<void>;
|
|
3
3
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
4
4
|
destroy(): void;
|
|
5
5
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDecoder from './IDecoder';
|
|
2
2
|
import WorkerBase from './WorkerBase';
|
|
3
3
|
export default class LibVPxDecoder extends WorkerBase implements IDecoder {
|
|
4
|
-
init(onFrameImage: (image: ImageData
|
|
4
|
+
init(onFrameImage: (image: ImageData) => void): Promise<void>;
|
|
5
5
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
|
@@ -2,7 +2,7 @@ export default abstract class BaseRenderer {
|
|
|
2
2
|
protected readonly _onStream: (stream: MediaStream) => void;
|
|
3
3
|
protected constructor(onStream: (stream: MediaStream) => void);
|
|
4
4
|
drawFrame(frame: VideoFrame): Promise<void>;
|
|
5
|
-
drawImage(image:
|
|
5
|
+
drawImage(image: ImageData): Promise<void>;
|
|
6
6
|
abstract destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
|
8
8
|
}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
|
+
import { IScreenShareStat } from '../../types/ScreenSharingStat';
|
|
2
3
|
import { FrameChunk } from './Utils';
|
|
4
|
+
export type IOnStat = (stat: IScreenShareStat) => void;
|
|
5
|
+
export type IOnStream = (stream: MediaStream) => void;
|
|
3
6
|
export declare abstract class BaseStreamBuilder {
|
|
4
7
|
protected readonly _participantId: ParticipantId;
|
|
5
|
-
protected readonly _onStream:
|
|
8
|
+
protected readonly _onStream: IOnStream;
|
|
9
|
+
protected readonly _onStat: IOnStat;
|
|
6
10
|
protected _chunks: FrameChunk[];
|
|
7
11
|
protected _firstFrameReceived: boolean;
|
|
8
|
-
protected constructor(participantId: ParticipantId, onStream:
|
|
12
|
+
protected constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat);
|
|
9
13
|
appendChunk(chunk: FrameChunk): void;
|
|
10
14
|
destroy(): void;
|
|
11
15
|
protected abstract _processFrame(frame: FrameData): void;
|
|
@@ -15,6 +19,8 @@ export declare abstract class BaseStreamBuilder {
|
|
|
15
19
|
height: number;
|
|
16
20
|
};
|
|
17
21
|
static isBrowserSupported(): boolean;
|
|
22
|
+
private _measureFirstFrame;
|
|
23
|
+
private _measureFreezeDuration;
|
|
18
24
|
}
|
|
19
25
|
export interface FrameData {
|
|
20
26
|
timestamp: number;
|
|
@@ -9,8 +9,7 @@ export default class CanvasRenderer extends BaseRenderer {
|
|
|
9
9
|
private _createStream;
|
|
10
10
|
private _removeStream;
|
|
11
11
|
private _requestCanvasFrame;
|
|
12
|
-
|
|
13
|
-
drawImage(image: ImageBitmap | ImageData): void;
|
|
12
|
+
drawImage(image: ImageData): Promise<void>;
|
|
14
13
|
destroy(): void;
|
|
15
14
|
static isBrowserSupported(): boolean;
|
|
16
15
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
2
|
import { ParticipantIdRegistry } from '../ParticipantIdRegistry';
|
|
3
|
+
import { IOnStat } from './BaseStreamBuilder';
|
|
3
4
|
export default class ScreenCaptureReceiver {
|
|
4
5
|
private readonly _datachannel;
|
|
5
6
|
private _participantIdRegistry;
|
|
6
7
|
private _streamBuilders;
|
|
7
8
|
private _onStream;
|
|
8
9
|
private _onEos;
|
|
9
|
-
|
|
10
|
+
private _onStat;
|
|
11
|
+
constructor(datachannel: RTCDataChannel, participantIdRegistry: ParticipantIdRegistry, onStream: (streamId: string, stream: MediaStream) => void, onEos: (streamId: string) => void, onStat: IOnStat);
|
|
10
12
|
private _onDataChannelMessage;
|
|
11
13
|
close(participantId: ParticipantId): void;
|
|
12
14
|
destroy(): void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
|
-
import { BaseStreamBuilder, FrameData } from './BaseStreamBuilder';
|
|
2
|
+
import { BaseStreamBuilder, FrameData, IOnStat, IOnStream } from './BaseStreamBuilder';
|
|
3
3
|
export default class StreamBuilder extends BaseStreamBuilder {
|
|
4
4
|
private readonly _renderer;
|
|
5
5
|
private readonly _decoder;
|
|
6
6
|
private _decoderReady;
|
|
7
7
|
private _decoderQueue;
|
|
8
|
-
constructor(participantId: ParticipantId, onStream:
|
|
8
|
+
constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat);
|
|
9
9
|
protected _processFrame(frame: FrameData): void;
|
|
10
10
|
private _decodeQueue;
|
|
11
11
|
destroy(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
|
-
import { BaseStreamBuilder, FrameData } from './BaseStreamBuilder';
|
|
2
|
+
import { BaseStreamBuilder, FrameData, IOnStat, IOnStream } from './BaseStreamBuilder';
|
|
3
3
|
export default class WebmBuilder extends BaseStreamBuilder {
|
|
4
4
|
private _mediaBuffer;
|
|
5
5
|
private _video;
|
|
@@ -7,7 +7,7 @@ export default class WebmBuilder extends BaseStreamBuilder {
|
|
|
7
7
|
private _earliestTimestamp;
|
|
8
8
|
private _clusterStartTime;
|
|
9
9
|
private _lastFrameTimestamp;
|
|
10
|
-
constructor(participantId: ParticipantId, onStream:
|
|
10
|
+
constructor(participantId: ParticipantId, onStream: IOnStream, onStat: IOnStat);
|
|
11
11
|
private static _intToU16BE;
|
|
12
12
|
private static _genWebmHeader;
|
|
13
13
|
private static _genSegmentHeader;
|
|
@@ -39,6 +39,7 @@ export default class DirectTransport extends EventEmitter {
|
|
|
39
39
|
constructor(participantId: ParticipantId, isMaster: boolean, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings, animojiSvgDataByParticipantId?: Record<ParticipantId, AnimojiSvgData>);
|
|
40
40
|
getState(): TransportState;
|
|
41
41
|
updateStatisticsInterval(): void;
|
|
42
|
+
private _isDeadConnection;
|
|
42
43
|
open(peerId?: string | null): Promise<void>;
|
|
43
44
|
updateSettings(settings: ServerSettings): void;
|
|
44
45
|
preventRestart(): void;
|
|
@@ -29,6 +29,7 @@ export default class PerfStatReporter extends EventEmitter {
|
|
|
29
29
|
private _previousTimestamp;
|
|
30
30
|
private _previousCallStatReportTimestamp;
|
|
31
31
|
private _previousCallStatReport;
|
|
32
|
+
private _screenShareStats;
|
|
32
33
|
private _signaling;
|
|
33
34
|
private readonly _directTopology;
|
|
34
35
|
constructor(transport: ServerTransport | DirectTransport, signaling: BaseSignaling, directTopology?: boolean);
|
|
@@ -37,4 +38,5 @@ export default class PerfStatReporter extends EventEmitter {
|
|
|
37
38
|
private _handleStats;
|
|
38
39
|
private reportPerfStats;
|
|
39
40
|
private _reportCallStats;
|
|
41
|
+
private _handleScreenSharingStat;
|
|
40
42
|
}
|
|
@@ -2,7 +2,6 @@ import type { AnimojiSvgData } from '@vkontakte/calls-vmoji';
|
|
|
2
2
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
3
3
|
import { ParticipantId } from '../../types/Participant';
|
|
4
4
|
import ServerSettings from '../../types/ServerSettings';
|
|
5
|
-
import SignalingMessage from '../../types/SignalingMessage';
|
|
6
5
|
import EventEmitter from '../EventEmitter';
|
|
7
6
|
import { MediaSource } from '../MediaSource';
|
|
8
7
|
import { TransportState } from './Transport';
|
|
@@ -83,8 +82,8 @@ export default class ServerTransport extends EventEmitter {
|
|
|
83
82
|
private _detectStaleTracks;
|
|
84
83
|
private _allocateConsumer;
|
|
85
84
|
private _acceptProducer;
|
|
86
|
-
private
|
|
87
|
-
_onSignalingNotification
|
|
85
|
+
private _handleTracks;
|
|
86
|
+
private _onSignalingNotification;
|
|
88
87
|
private _onAsrTranscription;
|
|
89
88
|
private _onProducerUpdated;
|
|
90
89
|
private _onAddTrack;
|
|
@@ -6,7 +6,19 @@ export type StatTransport = {
|
|
|
6
6
|
currentRoundTripTime: number;
|
|
7
7
|
bytesSent: number;
|
|
8
8
|
bytesReceived: number;
|
|
9
|
+
local?: ILocalIceCandidateStat;
|
|
10
|
+
remote?: IRemoteIceCandidateStat;
|
|
9
11
|
};
|
|
12
|
+
export interface IRemoteIceCandidateStat {
|
|
13
|
+
type: RTCIceCandidateType;
|
|
14
|
+
address: string;
|
|
15
|
+
port: number;
|
|
16
|
+
protocol: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ILocalIceCandidateStat extends IRemoteIceCandidateStat {
|
|
19
|
+
relayProtocol: string;
|
|
20
|
+
networkType: RTCNetworkType;
|
|
21
|
+
}
|
|
10
22
|
export type StatRtp = {
|
|
11
23
|
ssrc: number;
|
|
12
24
|
type: string;
|
|
@@ -40,6 +52,10 @@ export type StatRtp = {
|
|
|
40
52
|
silentConcealedSamples?: number;
|
|
41
53
|
concealmentEvents?: number;
|
|
42
54
|
totalAudioEnergy?: number;
|
|
55
|
+
totalFreezesDuration?: number;
|
|
56
|
+
totalFreezesDurationDelta?: number;
|
|
57
|
+
freezeCount?: number;
|
|
58
|
+
freezeCountDelta?: number;
|
|
43
59
|
};
|
|
44
60
|
export type StatItem = {
|
|
45
61
|
timestamp: number;
|
|
@@ -19,7 +19,8 @@ export declare const enum TransportEvent {
|
|
|
19
19
|
NETWORK_STATUS = "NETWORK_STATUS",
|
|
20
20
|
PEER_CONNECTION_CLOSED = "PEER_CONNECTION_CLOSED",
|
|
21
21
|
ASR_TRANSCRIPTION = "ASR_TRANSCRIPTION",
|
|
22
|
-
ANIMOJI_STREAM = "ANIMOJI_STREAM"
|
|
22
|
+
ANIMOJI_STREAM = "ANIMOJI_STREAM",
|
|
23
|
+
SCREEN_SHARING_STAT = "SCREEN_SHARING_STAT"
|
|
23
24
|
}
|
|
24
25
|
export declare const enum TransportState {
|
|
25
26
|
IDLE = "IDLE",
|
package/default/Signaling.d.ts
CHANGED
|
@@ -126,7 +126,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
126
126
|
grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<SignalingMessage>;
|
|
127
127
|
muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[], roomId?: number | null): Promise<SignalingMessage>;
|
|
128
128
|
enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
|
|
129
|
-
pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<SignalingMessage>;
|
|
129
|
+
pinParticipant(participantId: ParticipantId, unpin: boolean, roomId: number | null): Promise<SignalingMessage>;
|
|
130
130
|
updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
|
|
131
131
|
changeOptions(changes: {
|
|
132
132
|
[key in ConversationOption]?: boolean;
|
|
@@ -152,7 +152,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
152
152
|
requestAsr(request: boolean): Promise<SignalingMessage>;
|
|
153
153
|
setAsrDataChannel(dataChannel: RTCDataChannel): void;
|
|
154
154
|
protected _connect(connectionType: SignalingConnectionType): void;
|
|
155
|
-
protected _disconnect(): void;
|
|
155
|
+
protected _disconnect(code?: number): void;
|
|
156
156
|
private _onOpen;
|
|
157
157
|
private _onMessage;
|
|
158
158
|
protected _handleMessage(message: SignalingMessage): void;
|
package/enums/HangupType.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ declare enum HangupType {
|
|
|
25
25
|
SOCKET_CLOSED = "SOCKET_CLOSED",
|
|
26
26
|
ENDED = "ENDED",
|
|
27
27
|
KILLED_WITHOUT_DELETE = "KILLED_WITHOUT_DELETE",
|
|
28
|
-
ANOTHER_DEVICE = "ANOTHER_DEVICE"
|
|
28
|
+
ANOTHER_DEVICE = "ANOTHER_DEVICE",
|
|
29
|
+
NOT_FOUND = "NOT_FOUND"
|
|
29
30
|
}
|
|
30
31
|
export default HangupType;
|
package/enums/Stat.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ declare const enum Stat {
|
|
|
34
34
|
SCREENSHARE_FIRST_FRAME = "callScreenshareFirstFrame",
|
|
35
35
|
SCREENSHARE_FIRST_FRAME_SMALL = "callScreenshareFirstFrameSmall",
|
|
36
36
|
SCREENSHARE_FIRST_FRAME_MEDIUM = "callScreenshareFirstFrameMedium",
|
|
37
|
-
SCREENSHARE_FIRST_FRAME_LARGE = "callScreenshareFirstFrameLarge"
|
|
37
|
+
SCREENSHARE_FIRST_FRAME_LARGE = "callScreenshareFirstFrameLarge",
|
|
38
|
+
SCREENSHARE_FREEZE_DURATION = "callScreenshareFreezeDuration"
|
|
38
39
|
}
|
|
39
40
|
export default Stat;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/calls-sdk",
|
|
3
|
-
"version": "2.7.2-
|
|
3
|
+
"version": "2.7.2-dev.1355151.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",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@vkontakte/calls-video-effects": "1.1.4",
|
|
18
|
-
"@vkontakte/calls-vmoji": "1.0.5-beta.
|
|
18
|
+
"@vkontakte/calls-vmoji": "1.0.5-beta.13",
|
|
19
19
|
"@vkontakte/libvpx": "2.0.9",
|
|
20
20
|
"bit-buffer": "0.2.5",
|
|
21
21
|
"messagepack": "1.1.12",
|
package/static/External.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConversationData } from '../
|
|
1
|
+
import { ConversationData } from '../types/Conversation';
|
|
2
2
|
import HangupReason from '../classes/HangupReason';
|
|
3
3
|
import { MediaTrackKind } from '../classes/MediaSource';
|
|
4
4
|
import { StatResult } from '../classes/transport/Statistics';
|
|
@@ -289,14 +289,16 @@ declare namespace External {
|
|
|
289
289
|
* @param userId Внешний ID пользователя
|
|
290
290
|
* @param unpin Открепить или закрепить
|
|
291
291
|
* @param markers
|
|
292
|
+
* @param roomId ID сессионного зала или ничего в случае основного зала
|
|
292
293
|
*/
|
|
293
|
-
function onPinnedParticipant(userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers): void;
|
|
294
|
+
function onPinnedParticipant(userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers, roomId?: number | null): void;
|
|
294
295
|
/**
|
|
295
296
|
* Закрепляет/открепляет текущего пользователя у других собеседников
|
|
296
297
|
*
|
|
297
298
|
* @param unpin Открепить или закрепить
|
|
299
|
+
* @param roomId ID сессионного зала или ничего в случае основного зала
|
|
298
300
|
*/
|
|
299
|
-
function onLocalPin(unpin: boolean): void;
|
|
301
|
+
function onLocalPin(unpin: boolean, roomId?: number | null): void;
|
|
300
302
|
/**
|
|
301
303
|
* Изменились опции звонка
|
|
302
304
|
*
|
package/static/Params.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { VideoEffects } from '@vkontakte/calls-video-effects';
|
|
2
2
|
import type * as Vmoji from '@vkontakte/calls-vmoji';
|
|
3
|
-
import { ConversationData } from '../
|
|
3
|
+
import { ConversationData } from '../types/Conversation';
|
|
4
4
|
import HangupReason from '../classes/HangupReason';
|
|
5
5
|
import { MediaTrackKind } from '../classes/MediaSource';
|
|
6
6
|
import ChatRoomEventType from '../enums/ChatRoomEventType';
|
|
@@ -152,6 +152,12 @@ export type ParamsObject = {
|
|
|
152
152
|
* Можно установить позднее методом `setVmoji`
|
|
153
153
|
*/
|
|
154
154
|
vmoji: typeof Vmoji | null;
|
|
155
|
+
/**
|
|
156
|
+
* Настройки отрисовки Vmoji.
|
|
157
|
+
*
|
|
158
|
+
* Экземпляр класса `RenderingOptions` из `@vkontakte/calls-vmoji`
|
|
159
|
+
*/
|
|
160
|
+
vmojiRenderingOptions: Partial<Vmoji.RenderingOptions> | null;
|
|
155
161
|
iceRestartWaitTime: number;
|
|
156
162
|
transportConnectionWaitTime: number;
|
|
157
163
|
/**
|
|
@@ -220,9 +226,25 @@ export type ParamsObject = {
|
|
|
220
226
|
* @deprecated
|
|
221
227
|
*/
|
|
222
228
|
consumerScreenTrack: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* @hidden
|
|
231
|
+
* @deprecated
|
|
232
|
+
*/
|
|
223
233
|
producerNotificationDataChannel: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* @hidden
|
|
236
|
+
* @deprecated
|
|
237
|
+
*/
|
|
224
238
|
producerCommandDataChannel: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* @hidden
|
|
241
|
+
* @deprecated
|
|
242
|
+
*/
|
|
225
243
|
consumerScreenDataChannel: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* @hidden
|
|
246
|
+
* @deprecated
|
|
247
|
+
*/
|
|
226
248
|
producerScreenDataChannel: boolean;
|
|
227
249
|
asrDataChannel: boolean;
|
|
228
250
|
/**
|
|
@@ -239,15 +261,21 @@ export type ParamsObject = {
|
|
|
239
261
|
* Только для звонков с серверной топологией.
|
|
240
262
|
* Для прямых peer-to-peer звонков эта настройка не используется.
|
|
241
263
|
*
|
|
242
|
-
* При значении 0
|
|
264
|
+
* При значении 0 количество треков меняется динамически
|
|
243
265
|
* в зависимости от количества участников звонка.
|
|
244
266
|
*
|
|
245
267
|
* При значении отличном от 0 количество треков фиксировано,
|
|
246
268
|
* при этом клиент должен уведомлять сервер о том, каких участников звонка
|
|
247
269
|
* он хочет видеть, через вызов updateDisplayLayout
|
|
270
|
+
*
|
|
271
|
+
* _По умолчанию: `30`_
|
|
248
272
|
*/
|
|
249
273
|
videoTracksCount: number;
|
|
250
274
|
movieShare: boolean;
|
|
275
|
+
/**
|
|
276
|
+
* @hidden
|
|
277
|
+
* @deprecated
|
|
278
|
+
*/
|
|
251
279
|
filteredMessages: boolean;
|
|
252
280
|
breakVideoPayloadTypes: boolean;
|
|
253
281
|
/**
|
|
@@ -276,26 +304,35 @@ export type ParamsObject = {
|
|
|
276
304
|
/**
|
|
277
305
|
* Включать RED-extension (redundancy) для групповых звонков
|
|
278
306
|
*
|
|
279
|
-
* _По умолчанию: `
|
|
307
|
+
* _По умолчанию: `true`_
|
|
308
|
+
* @deprecated
|
|
280
309
|
*/
|
|
281
310
|
serverAudioRed: boolean;
|
|
282
311
|
/**
|
|
283
312
|
* Включать RED-extension (redundancy) для p2p звонков
|
|
284
313
|
*
|
|
285
|
-
* _По умолчанию: `
|
|
314
|
+
* _По умолчанию: `true`_
|
|
315
|
+
* @deprecated
|
|
286
316
|
*/
|
|
287
317
|
p2pAudioRed: boolean;
|
|
288
318
|
/**
|
|
289
319
|
* Добавлять флаг spsPpsIdrInKeyframe для h264 кодека. В результате ключевые фреймы без sps и pps
|
|
290
320
|
* не используются как ключевые. Решает проблему с артефактами на видео в случае потерь пакетов.
|
|
291
321
|
* @hidden
|
|
322
|
+
* @deprecated
|
|
292
323
|
*/
|
|
293
324
|
h264spsPpsIdrInKeyframe: boolean;
|
|
294
325
|
/**
|
|
295
326
|
* Получать список участников звонка третьим аргументом в `onConversation`
|
|
296
327
|
* @hidden
|
|
328
|
+
* @deprecated
|
|
297
329
|
*/
|
|
298
330
|
batchParticipantsOnStart: boolean;
|
|
331
|
+
/**
|
|
332
|
+
* Разрешить вход в звонок одним пользователем с разных устройств одновременно
|
|
333
|
+
*
|
|
334
|
+
* _По умолчанию: `false`_
|
|
335
|
+
*/
|
|
299
336
|
joinFromMultipleDevices: boolean;
|
|
300
337
|
/**
|
|
301
338
|
* Фильтровать наблюдателей во всех колбэках
|
|
@@ -487,7 +524,7 @@ export type ParamsObject = {
|
|
|
487
524
|
/**
|
|
488
525
|
* Закрепляет/открепляет собеседника для всех
|
|
489
526
|
*/
|
|
490
|
-
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers) => void;
|
|
527
|
+
onPinnedParticipant?: (userId: ExternalParticipantId, unpin: boolean, markers?: ExternalParticipantListMarkers, roomId?: number | null) => void;
|
|
491
528
|
/**
|
|
492
529
|
* Закрепляет/открепляет текущего пользователя у других собеседников
|
|
493
530
|
*/
|
|
@@ -714,6 +751,8 @@ export default abstract class Params {
|
|
|
714
751
|
static get useVmoji(): boolean;
|
|
715
752
|
static get vmoji(): typeof Vmoji | null;
|
|
716
753
|
static set vmoji(value: typeof Vmoji | null);
|
|
754
|
+
static get vmojiRenderingOptions(): Partial<Vmoji.RenderingOptions>;
|
|
755
|
+
static set vmojiRenderingOptions(value: Partial<Vmoji.RenderingOptions> | null);
|
|
717
756
|
static get voiceParams(): {
|
|
718
757
|
[key: string]: number;
|
|
719
758
|
};
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -100,10 +100,6 @@ declare namespace WebRTCUtils {
|
|
|
100
100
|
* @param resolution
|
|
101
101
|
*/
|
|
102
102
|
function setResolution(stream: MediaStream, resolution: IVideoDimentions): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Запоминает выбранное устройство
|
|
105
|
-
*/
|
|
106
|
-
function saveDeviceId(kind: MediaDeviceKind, deviceId: string): Promise<MediaDeviceInfo | null>;
|
|
107
103
|
/**
|
|
108
104
|
* Возвращает фейковый аудио mediaTrack
|
|
109
105
|
*/
|
package/types/Conversation.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { TransportTopology } from '../classes/transport/Transport';
|
|
2
|
+
import CallDirection from '../enums/CallDirection';
|
|
3
|
+
import ConversationFeature from '../enums/ConversationFeature';
|
|
4
|
+
import ConversationOption from '../enums/ConversationOption';
|
|
1
5
|
import MediaOption from '../enums/MediaOption';
|
|
6
|
+
import UserRole from '../enums/UserRole';
|
|
7
|
+
import { AsrInfo } from './Asr';
|
|
8
|
+
import { IFeaturesPerRole } from './ConversationFeature';
|
|
9
|
+
import { ExternalParticipantId } from './ExternalId';
|
|
10
|
+
import MediaModifiers from './MediaModifiers';
|
|
2
11
|
import MediaSettings from './MediaSettings';
|
|
3
|
-
import
|
|
12
|
+
import MuteStates from './MuteStates';
|
|
13
|
+
import { OkUserId, Participant, ParticipantId } from './Participant';
|
|
14
|
+
import { RecordInfo } from './SignalingMessage';
|
|
4
15
|
export interface IProcessMuteStateParams {
|
|
5
16
|
mediaOptions?: MediaOption[];
|
|
6
17
|
muteAll?: boolean;
|
|
@@ -11,3 +22,54 @@ export interface IProcessMuteStateParams {
|
|
|
11
22
|
requestedMedia?: MediaOption[];
|
|
12
23
|
roomId?: number | null;
|
|
13
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Данные текущего звонка
|
|
27
|
+
*/
|
|
28
|
+
export type ConversationData = {
|
|
29
|
+
/** @hidden */
|
|
30
|
+
userId: OkUserId;
|
|
31
|
+
/** @hidden */
|
|
32
|
+
compositeUserId: ParticipantId;
|
|
33
|
+
externalId: ExternalParticipantId;
|
|
34
|
+
/**
|
|
35
|
+
* Время принятия звонка
|
|
36
|
+
*/
|
|
37
|
+
acceptTime: number | null;
|
|
38
|
+
features: ConversationFeature[];
|
|
39
|
+
/** @hidden */
|
|
40
|
+
featuresPerRole?: IFeaturesPerRole | null;
|
|
41
|
+
/**
|
|
42
|
+
* ID звонка
|
|
43
|
+
*/
|
|
44
|
+
id: string;
|
|
45
|
+
participantsLimit: number;
|
|
46
|
+
/** @hidden */
|
|
47
|
+
topology: TransportTopology;
|
|
48
|
+
/** @hidden */
|
|
49
|
+
direction: CallDirection;
|
|
50
|
+
concurrent: boolean;
|
|
51
|
+
needRate: boolean;
|
|
52
|
+
/** @hidden */
|
|
53
|
+
recordsInfoByRoom: Map<number | null, RecordInfo | null>;
|
|
54
|
+
chatId: string | null;
|
|
55
|
+
/** @hidden */
|
|
56
|
+
asrInfo: AsrInfo | null;
|
|
57
|
+
/**
|
|
58
|
+
* Роли пользователя
|
|
59
|
+
*/
|
|
60
|
+
roles: UserRole[];
|
|
61
|
+
/**
|
|
62
|
+
* Токен комнаты для подключения к звонку по ссылке
|
|
63
|
+
*/
|
|
64
|
+
joinLink?: string;
|
|
65
|
+
/** @hidden */
|
|
66
|
+
pinnedParticipantIdByRoom: Map<number | null, ParticipantId | null>;
|
|
67
|
+
mediaModifiers: MediaModifiers;
|
|
68
|
+
options: ConversationOption[];
|
|
69
|
+
muteStates: Map<number | null, MuteStates>;
|
|
70
|
+
unmuteOptions: MediaOption[];
|
|
71
|
+
networkRating: number;
|
|
72
|
+
waitingHall: boolean;
|
|
73
|
+
observer: boolean;
|
|
74
|
+
roomId: number | null;
|
|
75
|
+
};
|
package/types/Room.d.ts
CHANGED