@vkontakte/calls-sdk 2.8.4-dev.e953776.0 → 2.8.4-dev.f08cd2d.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 +14 -9
- package/abstract/BaseApi.d.ts +17 -6
- package/abstract/BaseSignaling.d.ts +9 -5
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +15 -3
- package/classes/Logger.d.ts +6 -3
- package/classes/ProducerCommandSerializationService.d.ts +4 -0
- package/classes/screenshare/ScreenCaptureSender.d.ts +3 -0
- package/classes/stat/WeightedAverage.d.ts +10 -0
- package/classes/transport/BaseTransport.d.ts +0 -1
- package/classes/transport/DirectStatReporter.d.ts +43 -0
- package/classes/transport/DirectTransport.d.ts +2 -4
- package/classes/transport/PerfStatReporter.d.ts +3 -1
- package/classes/transport/Transport.d.ts +2 -1
- package/default/Api.d.ts +10 -4
- package/default/Signaling.d.ts +12 -8
- package/enums/SignalingCommandType.d.ts +5 -1
- package/enums/SignalingNotification.d.ts +3 -1
- package/package.json +3 -3
- package/static/Debug.d.ts +1 -0
- package/static/External.d.ts +30 -9
- package/static/Params.d.ts +57 -7
- package/static/Utils.d.ts +4 -2
- package/static/WebRTCUtils.d.ts +5 -1
- package/types/AudienceMode.d.ts +1 -0
- package/types/Conversation.d.ts +8 -6
- package/types/EnableVideoSuspend.d.ts +3 -0
- package/types/ExternalId.d.ts +1 -0
- package/types/MediaSettings.d.ts +0 -9
- package/types/MuteStates.d.ts +12 -0
- package/types/NetworkStatReport.d.ts +4 -0
- package/types/Participant.d.ts +7 -0
- package/types/ParticipantStreamDescription.d.ts +2 -1
- package/types/Room.d.ts +5 -1
- package/types/SignalingCommand.d.ts +4 -4
- package/types/SignalingMessage.d.ts +52 -12
- package/types/Statistics.d.ts +4 -0
- package/types/Streams.d.ts +1 -0
- package/types/Vmoji.d.ts +5 -0
- package/types/WaitingHall.d.ts +3 -12
|
@@ -112,7 +112,6 @@ export default class Conversation extends EventEmitter {
|
|
|
112
112
|
private _createMediaSource;
|
|
113
113
|
private _connectSignaling;
|
|
114
114
|
private _processConnection;
|
|
115
|
-
private _prepareParticipants;
|
|
116
115
|
private _onConversationParticipantListChunk;
|
|
117
116
|
private _createParticipantListChunk;
|
|
118
117
|
private _participantListChunkToExternalChunk;
|
|
@@ -217,7 +216,10 @@ export default class Conversation extends EventEmitter {
|
|
|
217
216
|
private _processSharedMovieInfo;
|
|
218
217
|
private _processConnectionSharedMovieInfo;
|
|
219
218
|
private _processConnectionAsrInfo;
|
|
219
|
+
private _processConversationUrlSharingInfo;
|
|
220
|
+
private _extractConnectionUrlSharingInfo;
|
|
220
221
|
private _onSharedMovieInfoStopped;
|
|
222
|
+
private _onUrlSharingInfoUpdated;
|
|
221
223
|
private _onFeaturesPerRoleChanged;
|
|
222
224
|
private _waitForStreamIfNeeded;
|
|
223
225
|
private _matchStreamDescription;
|
|
@@ -232,6 +234,7 @@ export default class Conversation extends EventEmitter {
|
|
|
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>;
|
|
237
|
+
enableVideoSuspend(enabled: boolean): Promise<void>;
|
|
235
238
|
changeOptions(changes: {
|
|
236
239
|
[key in ConversationOption]?: boolean;
|
|
237
240
|
}): Promise<void>;
|
|
@@ -240,7 +243,7 @@ export default class Conversation extends EventEmitter {
|
|
|
240
243
|
* @hidden
|
|
241
244
|
*/
|
|
242
245
|
getWaitingHall(pageMarker: string | null, count?: number, backward?: boolean): Promise<WaitingHallResponse>;
|
|
243
|
-
private
|
|
246
|
+
private _resolveWaitingHallExternalIds;
|
|
244
247
|
getAudienceModeHands(): Promise<AudienceModeHandsResponse>;
|
|
245
248
|
promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<void>;
|
|
246
249
|
requestPromotion(unrequest?: boolean): Promise<void>;
|
|
@@ -256,11 +259,13 @@ export default class Conversation extends EventEmitter {
|
|
|
256
259
|
}>;
|
|
257
260
|
updateMovie(params: IUpdateMovieData): Promise<void>;
|
|
258
261
|
removeMovie(movieId: number): Promise<void>;
|
|
262
|
+
startUrlSharing(sharedUrl: string): Promise<void>;
|
|
263
|
+
stopUrlSharing(): Promise<void>;
|
|
259
264
|
updateRooms(rooms: SignalingMessage.Room[], assignRandomly?: boolean): Promise<void>;
|
|
260
265
|
activateRooms(roomIds: number[], deactivate: boolean): Promise<void>;
|
|
261
266
|
switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<void>;
|
|
262
267
|
removeRooms(roomIds: number[]): Promise<void>;
|
|
263
|
-
startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null): Promise<undefined>;
|
|
268
|
+
startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null, externalAccessKey?: string | null): Promise<undefined>;
|
|
264
269
|
stopStream(roomId?: number | null): Promise<undefined>;
|
|
265
270
|
publishStream(roomId?: number | null): Promise<undefined>;
|
|
266
271
|
recordSetConf(king?: ParticipantId, pawns?: ParticipantId[], hideParticipantCount?: boolean, roomId?: number | null): Promise<void>;
|
|
@@ -306,6 +311,7 @@ export default class Conversation extends EventEmitter {
|
|
|
306
311
|
private _changePinnedParticipantForRoom;
|
|
307
312
|
_changeRecordInfoForRoom(): Promise<void>;
|
|
308
313
|
private _changeAsrInfoForRoom;
|
|
314
|
+
private _changeUrlSharingInfoForRoom;
|
|
309
315
|
private _onParticipantAnimojiChanged;
|
|
310
316
|
private _onAsrStart;
|
|
311
317
|
private _onAsrStop;
|
|
@@ -327,6 +333,11 @@ export default class Conversation extends EventEmitter {
|
|
|
327
333
|
* @param stream - стрим анимированного аватара, null в случае остановки стрима
|
|
328
334
|
*/
|
|
329
335
|
private _onAnimojiStream;
|
|
336
|
+
/**
|
|
337
|
+
* Коллбек, вызывающийся при получении ошибки от AnimojiReceiver
|
|
338
|
+
* @param error - ошибка рендеринга Vmoji
|
|
339
|
+
*/
|
|
340
|
+
private _onAnimojiError;
|
|
330
341
|
private _onPeerConnectionClosed;
|
|
331
342
|
private _changeFeatureSet;
|
|
332
343
|
private _changeNeedRate;
|
|
@@ -360,6 +371,7 @@ export default class Conversation extends EventEmitter {
|
|
|
360
371
|
private _refreshRooms;
|
|
361
372
|
/** получили из сингналинга сообщение о реакции пользователей */
|
|
362
373
|
private _onFeedback;
|
|
374
|
+
private _onDecorativeParticipantIdChanged;
|
|
363
375
|
private _isMe;
|
|
364
376
|
private _getMuteStatesForRoomId;
|
|
365
377
|
private _getMuteStatesForCurrentRoom;
|
package/classes/Logger.d.ts
CHANGED
|
@@ -5,21 +5,24 @@ export default class Logger extends BaseLogger {
|
|
|
5
5
|
private readonly _externalLogger;
|
|
6
6
|
private readonly _api;
|
|
7
7
|
private _batchInterval;
|
|
8
|
-
private
|
|
8
|
+
private _batchedLogItems;
|
|
9
|
+
private _batchedClientStats;
|
|
9
10
|
private _batchTimeout;
|
|
10
11
|
private static _instance;
|
|
11
12
|
constructor(api: BaseApi, externalLogger: BaseLogger | null);
|
|
12
|
-
private
|
|
13
|
+
private _sendLogItems;
|
|
14
|
+
private _sendClientStats;
|
|
13
15
|
private _sendBatch;
|
|
14
16
|
private _startTimeout;
|
|
15
17
|
private _stopTimeout;
|
|
16
|
-
private _onUnload;
|
|
17
18
|
log(name: Stat, value?: string, immediately?: boolean): void;
|
|
18
19
|
logCustom(name: string, params: Record<string, string | number>, immediately?: boolean): void;
|
|
20
|
+
logClientStats(data: Record<string, string | number>, immediately?: boolean): void;
|
|
19
21
|
_logInternal(operation: string, custom: Record<string, string | number>, immediately: boolean): void;
|
|
20
22
|
destroy(): void;
|
|
21
23
|
static create(api: BaseApi, externalLogger: BaseLogger | null): void;
|
|
22
24
|
static log(name: Stat, value?: string, immediately?: boolean): void;
|
|
23
25
|
static logCustom(name: string, params: Record<string, string | number>, immediately?: boolean): void;
|
|
26
|
+
static logClientStats(params: Record<string, string | number>, immediately?: boolean): void;
|
|
24
27
|
static destroy(): void;
|
|
25
28
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { NetworkStatReport } from '../types/NetworkStatReport';
|
|
1
2
|
import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
|
|
2
3
|
import { RequestAsr } from '../types/RequestAsr';
|
|
4
|
+
import { EnableVideoSuspend } from '../types/EnableVideoSuspend';
|
|
3
5
|
import SignalingMessage from '../types/SignalingMessage';
|
|
4
6
|
import { PerfStatReport } from '../types/PerfStatReporter';
|
|
5
7
|
import { SharingStatReport } from './screenshare/SharingStatReport';
|
|
@@ -15,6 +17,8 @@ export declare class ProducerCommandSerializationService {
|
|
|
15
17
|
serializePerfStatReport(sequenceNumber: number, report: PerfStatReport): ArrayBuffer;
|
|
16
18
|
serializeSharingStatReport(sequenceNumber: number, report: SharingStatReport): ArrayBuffer;
|
|
17
19
|
serializeRequestAsr(sequenceNumber: number, params: RequestAsr): ArrayBuffer;
|
|
20
|
+
serializeNetworkStatReport(sequenceNumber: number, report: NetworkStatReport): ArrayBuffer;
|
|
21
|
+
serializeEnableVideoSuspend(sequenceNumber: number, params: EnableVideoSuspend): ArrayBuffer;
|
|
18
22
|
deserializeCommandResponse(data: BufferSource | Blob): Promise<SignalingMessage | undefined>;
|
|
19
23
|
private deserializeUpdateDisplayLayoutResponse;
|
|
20
24
|
private deserializeReportPerfStatResponse;
|
|
@@ -14,10 +14,13 @@ export default class ScreenCaptureSender {
|
|
|
14
14
|
private _feedback;
|
|
15
15
|
private _lastSentFrameSeq;
|
|
16
16
|
private _lastDeliveredFrameSeq;
|
|
17
|
+
private _lastFrameDelay;
|
|
18
|
+
private _lastFramerateReduced;
|
|
17
19
|
private _lastSharingStat;
|
|
18
20
|
private readonly _congestionControlEnabled;
|
|
19
21
|
private readonly _queue;
|
|
20
22
|
private readonly _fpsMeter;
|
|
23
|
+
private readonly _maxFrameDelay;
|
|
21
24
|
constructor(track: MediaStreamTrack, datachannel: RTCDataChannel, signaling: BaseSignaling, fastSharing: boolean);
|
|
22
25
|
private _handleQueue;
|
|
23
26
|
/**
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class WeightedAverage {
|
|
2
|
+
private readonly weightUp;
|
|
3
|
+
private readonly weightDown;
|
|
4
|
+
private value;
|
|
5
|
+
constructor(weightUp: number, weightDown?: number | null);
|
|
6
|
+
set(value: number): void;
|
|
7
|
+
update(value: number): number;
|
|
8
|
+
getNext(value: number): number;
|
|
9
|
+
getValue(): number;
|
|
10
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BaseSignaling, StatResult } from '../../CallsSDK';
|
|
2
|
+
import EventEmitter from '../EventEmitter';
|
|
3
|
+
import { WeightedAverage } from '../stat/WeightedAverage';
|
|
4
|
+
interface NetworkStat {
|
|
5
|
+
rtt: WeightedAverage | number;
|
|
6
|
+
loss: WeightedAverage | number;
|
|
7
|
+
bitrate: number;
|
|
8
|
+
}
|
|
9
|
+
interface NetworkStatRemote extends NetworkStat {
|
|
10
|
+
rtt: number;
|
|
11
|
+
loss: number;
|
|
12
|
+
}
|
|
13
|
+
export interface NetworkLimits {
|
|
14
|
+
badNet: {
|
|
15
|
+
rtt: number;
|
|
16
|
+
loss: number;
|
|
17
|
+
};
|
|
18
|
+
goodNet: {
|
|
19
|
+
rtt: number;
|
|
20
|
+
loss: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export type SignalingNetworkStat = Partial<Omit<NetworkStatRemote, 'timestamp' | 'previousTimestamp'>>;
|
|
24
|
+
export default class DirectStatReporter extends EventEmitter {
|
|
25
|
+
private readonly _signaling;
|
|
26
|
+
private readonly _localNetworkStat;
|
|
27
|
+
private readonly _remoteNetworkStat;
|
|
28
|
+
private readonly _lastNetworkStat;
|
|
29
|
+
private readonly _networkLimits;
|
|
30
|
+
private _lastStatSentTimestamp;
|
|
31
|
+
private _currentState;
|
|
32
|
+
constructor(signaling: BaseSignaling);
|
|
33
|
+
private _calcRttRating;
|
|
34
|
+
private _calcLossRating;
|
|
35
|
+
private _calcBitrateRating;
|
|
36
|
+
private _calcUDPRating;
|
|
37
|
+
private _calcRating;
|
|
38
|
+
private _getNetworkState;
|
|
39
|
+
updateSettings(settings?: NetworkLimits): void;
|
|
40
|
+
reportLocal(stats: StatResult): void;
|
|
41
|
+
reportRemote(stat?: SignalingNetworkStat): void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -27,14 +27,12 @@ export default class DirectTransport extends BaseTransport {
|
|
|
27
27
|
private _neverConnected;
|
|
28
28
|
private _serverSettings;
|
|
29
29
|
private _prevConsumerSettings;
|
|
30
|
-
private _lastNetworkStat;
|
|
31
|
-
private _remoteNetworkStat;
|
|
32
|
-
private _networkLimits;
|
|
33
30
|
private _networkLimitsForVideo;
|
|
34
31
|
private _videoMaxDimensionsForNet;
|
|
35
32
|
private _lastVideoMaxDimension;
|
|
36
33
|
private _lastBadConnection;
|
|
37
34
|
private _perfStatReporter;
|
|
35
|
+
private _directStatReporter;
|
|
38
36
|
constructor(participantId: ParticipantId, isMaster: boolean, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings);
|
|
39
37
|
get participantId(): ParticipantId;
|
|
40
38
|
updateStatisticsInterval(): void;
|
|
@@ -68,7 +66,7 @@ export default class DirectTransport extends BaseTransport {
|
|
|
68
66
|
private _startStatInterval;
|
|
69
67
|
private _checkPPTNetwork;
|
|
70
68
|
private _stopStatInterval;
|
|
71
|
-
private
|
|
69
|
+
private _onNetworkStatus;
|
|
72
70
|
private _startSettingsInterval;
|
|
73
71
|
private _stopSettingsInterval;
|
|
74
72
|
private _calcFingerprint;
|
|
@@ -3,7 +3,8 @@ import EventEmitter from '../EventEmitter';
|
|
|
3
3
|
import DirectTransport from './DirectTransport';
|
|
4
4
|
import ServerTransport from './ServerTransport';
|
|
5
5
|
export default class PerfStatReporter extends EventEmitter {
|
|
6
|
-
private
|
|
6
|
+
private _previousPerfStatReportTimestamp;
|
|
7
|
+
private _previousNetworkStatReportTimestamp;
|
|
7
8
|
private _previousCallStatReportTimestamp;
|
|
8
9
|
private _previousCallStatReport;
|
|
9
10
|
private _screenShareStats;
|
|
@@ -14,6 +15,7 @@ export default class PerfStatReporter extends EventEmitter {
|
|
|
14
15
|
static getEstimatedPerformanceIndex(): number;
|
|
15
16
|
private _handleStats;
|
|
16
17
|
private reportPerfStats;
|
|
18
|
+
private reportNetworkStats;
|
|
17
19
|
private _reportCallStats;
|
|
18
20
|
private _handleScreenSharingStat;
|
|
19
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnimojiSvgData } from '@vkontakte/calls-vmoji
|
|
1
|
+
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';
|
|
@@ -20,6 +20,7 @@ export declare const enum TransportEvent {
|
|
|
20
20
|
PEER_CONNECTION_CLOSED = "PEER_CONNECTION_CLOSED",
|
|
21
21
|
ASR_TRANSCRIPTION = "ASR_TRANSCRIPTION",
|
|
22
22
|
ANIMOJI_STREAM = "ANIMOJI_STREAM",
|
|
23
|
+
ANIMOJI_ERROR = "ANIMOJI_ERROR",
|
|
23
24
|
SCREEN_SHARING_STAT = "SCREEN_SHARING_STAT"
|
|
24
25
|
}
|
|
25
26
|
export declare const enum TransportState {
|
package/default/Api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import BaseApi, { LogItem } from '../abstract/BaseApi';
|
|
1
|
+
import BaseApi, { LogItem, ClientStats } from '../abstract/BaseApi';
|
|
2
2
|
import CallType from '../enums/CallType';
|
|
3
3
|
import ConversationParams from '../types/ConversationParams';
|
|
4
4
|
import ConversationResponse from '../types/ConversationResponse';
|
|
@@ -8,12 +8,14 @@ export default class Api extends BaseApi {
|
|
|
8
8
|
private _userId;
|
|
9
9
|
private _uuid;
|
|
10
10
|
private _externalUidsCache;
|
|
11
|
+
private _decorativeIdToInitialId;
|
|
12
|
+
private _initialIdToDecorativeId;
|
|
11
13
|
private _callUnsafe;
|
|
12
14
|
protected _call(method: string, data?: any, noSession?: boolean): Promise<any>;
|
|
13
|
-
userId(
|
|
14
|
-
prepareUserIds(ids: OkUserId[]): Promise<void>;
|
|
15
|
+
userId(participantId: ParticipantId): Promise<ExternalParticipantId>;
|
|
15
16
|
authorize(): Promise<void>;
|
|
16
17
|
log(items: LogItem[]): void;
|
|
18
|
+
logClientStats(items: ClientStats[]): void;
|
|
17
19
|
init(): void;
|
|
18
20
|
joinConversation(conversationId: string, isVideo?: boolean, chatId?: string): Promise<ConversationResponse>;
|
|
19
21
|
createConversation(conversationId: string, payload?: string, requireAuthToJoin?: boolean, { onlyAdminCanShareMovie, audienceMode, audioOnly, }?: {
|
|
@@ -48,7 +50,11 @@ export default class Api extends BaseApi {
|
|
|
48
50
|
*/
|
|
49
51
|
getExternalIdsByOkIds(uids: OkUserId[]): Promise<ExternalParticipantId[]>;
|
|
50
52
|
getCachedOkIdByExternalId(externalId: ExternalId): ParticipantId | null;
|
|
51
|
-
cacheExternalId(participantId: CompositeUserId, externalId: ExternalParticipantId): void;
|
|
53
|
+
cacheExternalId(participantId: OkUserId | CompositeUserId | ParticipantId, externalId: ExternalParticipantId): void;
|
|
54
|
+
mapDecorativeId(decorativeId: OkUserId | CompositeUserId | ParticipantId, initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
|
55
|
+
unmapDecorativeId(initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
|
56
|
+
getDecorativeIdByInitialId(initialId: OkUserId | CompositeUserId | ParticipantId): OkUserId | undefined;
|
|
57
|
+
replaceByInitialIdIdIfExists(id: OkUserId | CompositeUserId | ParticipantId): OkUserId;
|
|
52
58
|
getConversationParams(conversationId?: string): Promise<ConversationParams>;
|
|
53
59
|
getUserId(): OkUserId | null;
|
|
54
60
|
setUserId(userId: OkUserId): void;
|
package/default/Signaling.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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';
|
|
4
5
|
import { TransportTopology } from '../classes/transport/Transport';
|
|
5
6
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
6
7
|
import ConversationOption from '../enums/ConversationOption';
|
|
@@ -19,9 +20,8 @@ import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/Partici
|
|
|
19
20
|
import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
20
21
|
import { StreamDescriptionString } from '../types/ParticipantStreamDescription';
|
|
21
22
|
import { PerfStatReport } from '../types/PerfStatReporter';
|
|
22
|
-
import SignalingMessage from '../types/SignalingMessage';
|
|
23
|
-
import { IRecordConfData, IStartStreamData, IStopStreamData
|
|
24
|
-
import { WaitingParticipantId } from '../types/WaitingHall';
|
|
23
|
+
import SignalingMessage, { GetParticipantsSignalingResponse, GetRoomsSignalingResponse, SignalingSuccessResponse } from '../types/SignalingMessage';
|
|
24
|
+
import { IPublishStreamData, IRecordConfData, IStartStreamData, IStopStreamData } from '../types/Streams';
|
|
25
25
|
export default class Signaling extends BaseSignaling {
|
|
26
26
|
private socket;
|
|
27
27
|
protected sequence: number;
|
|
@@ -72,11 +72,11 @@ export default class Signaling extends BaseSignaling {
|
|
|
72
72
|
/**
|
|
73
73
|
* Send a command to a signaling server
|
|
74
74
|
*/
|
|
75
|
-
protected _send(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<
|
|
75
|
+
protected _send<T extends SignalingSuccessResponse>(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<T>;
|
|
76
76
|
/**
|
|
77
77
|
* Send a raw command to a signaling server
|
|
78
78
|
*/
|
|
79
|
-
protected _sendRaw(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<
|
|
79
|
+
protected _sendRaw<T extends SignalingSuccessResponse>(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<T>;
|
|
80
80
|
private _isDataChannelCommand;
|
|
81
81
|
getNextCommandSequenceNumber(): number;
|
|
82
82
|
hangup(reason: string): Promise<SignalingMessage | void>;
|
|
@@ -106,10 +106,12 @@ export default class Signaling extends BaseSignaling {
|
|
|
106
106
|
addMovie(data: IAddMovieParams): Promise<SignalingMessage>;
|
|
107
107
|
updateMovie(data: IUpdateMovieData): Promise<SignalingMessage>;
|
|
108
108
|
removeMovie(data: any): Promise<SignalingMessage>;
|
|
109
|
+
startUrlSharing(sharedUrl: string): Promise<SignalingMessage>;
|
|
110
|
+
stopUrlSharing(): Promise<SignalingMessage>;
|
|
109
111
|
updateRooms(rooms: SignalingMessage.Room[], assignRandomly?: boolean): Promise<SignalingMessage>;
|
|
110
112
|
activateRooms(roomIds: number[], deactivate: boolean): Promise<SignalingMessage>;
|
|
111
113
|
switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<SignalingMessage>;
|
|
112
|
-
getRooms(withParticipants: boolean): Promise<
|
|
114
|
+
getRooms(withParticipants: boolean): Promise<GetRoomsSignalingResponse>;
|
|
113
115
|
removeRooms(roomIds: number[]): Promise<SignalingMessage>;
|
|
114
116
|
startStream(data: IStartStreamData): Promise<SignalingMessage>;
|
|
115
117
|
stopStream(data?: IStopStreamData): Promise<SignalingMessage>;
|
|
@@ -120,6 +122,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
120
122
|
requestRealloc(): Promise<SignalingMessage>;
|
|
121
123
|
reportPerfStat(report: PerfStatReport): Promise<SignalingMessage>;
|
|
122
124
|
reportSharingStat(report: SharingStatReport): Promise<SignalingMessage>;
|
|
125
|
+
reportNetworkStat(report: NetworkStatReport): Promise<SignalingMessage>;
|
|
123
126
|
chatMessage(message: string, participantId?: CompositeUserId | null): Promise<SignalingMessage>;
|
|
124
127
|
chatHistory(count: number): Promise<SignalingMessage>;
|
|
125
128
|
customData(data: JSONObject, participantId: ParticipantId | null): Promise<SignalingMessage>;
|
|
@@ -128,10 +131,11 @@ export default class Signaling extends BaseSignaling {
|
|
|
128
131
|
enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
|
|
129
132
|
pinParticipant(participantId: ParticipantId, unpin: boolean, roomId: number | null): Promise<SignalingMessage>;
|
|
130
133
|
updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
|
|
134
|
+
enableVideoSuspend(enabled: boolean): Promise<SignalingMessage>;
|
|
131
135
|
changeOptions(changes: {
|
|
132
136
|
[key in ConversationOption]?: boolean;
|
|
133
137
|
}): Promise<SignalingMessage>;
|
|
134
|
-
getWaitingHall(fromId?: WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
|
|
138
|
+
getWaitingHall(fromId?: SignalingMessage.WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
|
|
135
139
|
promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
|
|
136
140
|
requestPromotion(unrequest?: boolean): Promise<SignalingMessage>;
|
|
137
141
|
acceptPromotion(reject?: boolean): Promise<SignalingMessage>;
|
|
@@ -149,7 +153,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
149
153
|
*/
|
|
150
154
|
readyToSend(isReady?: boolean): void;
|
|
151
155
|
getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
|
|
152
|
-
getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<
|
|
156
|
+
getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<GetParticipantsSignalingResponse>;
|
|
153
157
|
startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
|
|
154
158
|
stopAsr(params?: IAsrStopParams): Promise<SignalingMessage>;
|
|
155
159
|
requestAsr(request: boolean): Promise<SignalingMessage>;
|
|
@@ -13,6 +13,7 @@ declare enum SignalingCommandType {
|
|
|
13
13
|
UPDATE_DISPLAY_LAYOUT = "update-display-layout",
|
|
14
14
|
REPORT_PERF_STAT = "report-perf-stat",
|
|
15
15
|
REPORT_SHARING_STAT = "report-sharing-stat",
|
|
16
|
+
REPORT_NETWORK_STAT = "report-network-stat",
|
|
16
17
|
RECORD_START = "record-start",
|
|
17
18
|
RECORD_STOP = "record-stop",
|
|
18
19
|
RECORD_PUBLISH = "record-publish",
|
|
@@ -38,6 +39,8 @@ declare enum SignalingCommandType {
|
|
|
38
39
|
ADD_MOVIE = "add-movie",
|
|
39
40
|
UPDATE_MOVIE = "update-movie",
|
|
40
41
|
REMOVE_MOVIE = "remove-movie",
|
|
42
|
+
START_URL_SHARING = "start-url-sharing",
|
|
43
|
+
STOP_URL_SHARING = "stop-url-sharing",
|
|
41
44
|
GET_ROOMS = "get-rooms",
|
|
42
45
|
UPDATE_ROOMS = "update-rooms",
|
|
43
46
|
ACTIVATE_ROOMS = "activate-rooms",
|
|
@@ -49,6 +52,7 @@ declare enum SignalingCommandType {
|
|
|
49
52
|
REQUEST_ASR = "request-asr",
|
|
50
53
|
REQUEST_PROMOTION = "request-promotion",
|
|
51
54
|
ACCEPT_PROMOTION = "accept-promotion",
|
|
52
|
-
GET_HAND_QUEUE = "get-hand-queue"
|
|
55
|
+
GET_HAND_QUEUE = "get-hand-queue",
|
|
56
|
+
ENABLE_VIDEO_SUSPEND = "enable-video-suspend"
|
|
53
57
|
}
|
|
54
58
|
export default SignalingCommandType;
|
|
@@ -40,12 +40,14 @@ declare enum SignalingNotification {
|
|
|
40
40
|
MOVIE_UPDATE_NOTIFICATION = "movie-update-notification",
|
|
41
41
|
MOVIE_SHARE_STARTED = "movie-share-started",
|
|
42
42
|
MOVIE_SHARE_STOPPED = "movie-share-stopped",
|
|
43
|
+
URL_SHARING_INFO_UPDATED = "url-sharing-info-updated",
|
|
43
44
|
ROOM_UPDATED = "room-updated",
|
|
44
45
|
ROOMS_UPDATED = "rooms-updated",
|
|
45
46
|
ROOM_PARTICIPANTS_UPDATED = "room-participants-updated",
|
|
46
47
|
FEATURES_PER_ROLE_CHANGED = "features-per-role-changed",
|
|
47
48
|
PARTICIPANT_ANIMOJI_CHANGED = "participant-animoji-changed",
|
|
48
49
|
ASR_STARTED = "asr-started",
|
|
49
|
-
ASR_STOPPED = "asr-stopped"
|
|
50
|
+
ASR_STOPPED = "asr-stopped",
|
|
51
|
+
DECORATIVE_PARTICIPANT_ID_CHANGED = "decorative-participant-id-changed"
|
|
50
52
|
}
|
|
51
53
|
export default SignalingNotification;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/calls-sdk",
|
|
3
|
-
"version": "2.8.4-dev.
|
|
3
|
+
"version": "2.8.4-dev.f08cd2d.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",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"**/*.d.ts"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@vkontakte/calls-video-effects": "2.2.3-beta.
|
|
18
|
-
"@vkontakte/calls-vmoji": "1.0.
|
|
17
|
+
"@vkontakte/calls-video-effects": "2.2.3-beta.4",
|
|
18
|
+
"@vkontakte/calls-vmoji": "1.0.9-beta.54",
|
|
19
19
|
"@vkontakte/libvpx": "2.0.9",
|
|
20
20
|
"bit-buffer": "0.2.5",
|
|
21
21
|
"messagepack": "1.1.12",
|
package/static/Debug.d.ts
CHANGED
package/static/External.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { IAsrData } from '../types/Asr';
|
|
|
2
2
|
import { ConversationData } from '../types/Conversation';
|
|
3
3
|
import HangupReason from '../classes/HangupReason';
|
|
4
4
|
import { MediaTrackKind } from '../classes/MediaSource';
|
|
5
|
+
import { MediaType } from '../types/ParticipantStreamDescription';
|
|
5
6
|
import { StatResult } from '../types/Statistics';
|
|
6
7
|
import ChatRoomEventType from '../enums/ChatRoomEventType';
|
|
7
8
|
import ConversationOption from '../enums/ConversationOption';
|
|
@@ -18,6 +19,7 @@ import { IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieSt
|
|
|
18
19
|
import MuteStates from '../types/MuteStates';
|
|
19
20
|
import { ParticipantStateMapped } from '../types/Participant';
|
|
20
21
|
import { IRoomId, Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
|
|
22
|
+
import { VmojiError } from '../types/Vmoji';
|
|
21
23
|
import { DebugMessageType } from './Debug';
|
|
22
24
|
import { JSONObject } from './Json';
|
|
23
25
|
/**
|
|
@@ -59,6 +61,12 @@ declare namespace External {
|
|
|
59
61
|
* @param mediaSettings
|
|
60
62
|
*/
|
|
61
63
|
function onVmojiStream(stream: MediaStream | null, mediaSettings: MediaSettings): void;
|
|
64
|
+
/**
|
|
65
|
+
* Получена ошибка Vmoji
|
|
66
|
+
*
|
|
67
|
+
* @param error
|
|
68
|
+
*/
|
|
69
|
+
function onVmojiError(error: VmojiError): void;
|
|
62
70
|
/**
|
|
63
71
|
* Локальный стрим изменился
|
|
64
72
|
*
|
|
@@ -130,16 +138,10 @@ declare namespace External {
|
|
|
130
138
|
* Cтрим собеседника приостановлен/возобновлен.
|
|
131
139
|
*
|
|
132
140
|
* @param userId
|
|
141
|
+
* @param mediaType тип отключённого/включённого потока
|
|
133
142
|
* @param suspended true - стрим был приостановлен, false - стрим был запущен
|
|
134
143
|
*/
|
|
135
|
-
function onRemoteStreamSuspended(userId: ExternalParticipantId, suspended: boolean): void;
|
|
136
|
-
/**
|
|
137
|
-
* Стрим с экрана собеседника приостановлен/возобновлен.
|
|
138
|
-
*
|
|
139
|
-
* @param userId
|
|
140
|
-
* @param suspended true - стрим был приостановлен, false - стрим был запущен
|
|
141
|
-
*/
|
|
142
|
-
function onRemoteScreenStreamSuspended(userId: ExternalParticipantId, suspended: boolean): void;
|
|
144
|
+
function onRemoteStreamSuspended(userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean): void;
|
|
143
145
|
/**
|
|
144
146
|
* Начат звонок
|
|
145
147
|
*
|
|
@@ -202,6 +204,14 @@ declare namespace External {
|
|
|
202
204
|
* @param roomId
|
|
203
205
|
*/
|
|
204
206
|
function onLocalSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId): void;
|
|
207
|
+
/**
|
|
208
|
+
* Получены данные о совместном использовании стороннего web-приложения
|
|
209
|
+
*
|
|
210
|
+
* @param userId
|
|
211
|
+
* @param sharedUrl
|
|
212
|
+
* @param roomId
|
|
213
|
+
*/
|
|
214
|
+
function onRemoteSharedUrl(userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId): void;
|
|
205
215
|
/**
|
|
206
216
|
* Добавили участника
|
|
207
217
|
*
|
|
@@ -393,9 +403,10 @@ declare namespace External {
|
|
|
393
403
|
* @param type Тип записи
|
|
394
404
|
* @param externalMovieId Внешний ID ролика
|
|
395
405
|
* @param externalOwnerId Внешний ID пользователя/группы от которого ведётся трансляция
|
|
406
|
+
* @param externalAccessKey Hash видеозаписи, если доступ к ней предоставляется по ссылке
|
|
396
407
|
* @param roomId ID зала в котором стартанула запись
|
|
397
408
|
*/
|
|
398
|
-
function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null): void;
|
|
409
|
+
function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, externalAccessKey?: string, roomId?: number | null): void;
|
|
399
410
|
/**
|
|
400
411
|
* Закончена запись звонка
|
|
401
412
|
* @param roomId ID зала в котором остановлена запись
|
|
@@ -523,11 +534,21 @@ declare namespace External {
|
|
|
523
534
|
*/
|
|
524
535
|
function onAsrStopped(roomId: number | null): void;
|
|
525
536
|
function onAsrTranscription(id: ExternalParticipantId, text: string, timestamp: number, duration: number): void;
|
|
537
|
+
/**
|
|
538
|
+
* Изменился id участника (деанонимизация)
|
|
539
|
+
* @param prevId
|
|
540
|
+
* @param newId
|
|
541
|
+
*/
|
|
542
|
+
function onParticipantIdChanged(prevId: ExternalParticipantId, newId: ExternalParticipantId): void;
|
|
526
543
|
/**
|
|
527
544
|
* Одобрено повышение пользователя в зеле ожидания/зале в режиме Audience
|
|
528
545
|
*
|
|
529
546
|
* @param adminParticipantId админ, одобривший повышение
|
|
530
547
|
*/
|
|
531
548
|
function onPromotionApproved(adminParticipantId: ExternalParticipantId): void;
|
|
549
|
+
/**
|
|
550
|
+
* Собеседник подключился к сигналлингу
|
|
551
|
+
*/
|
|
552
|
+
function onPeerRegistered(): void;
|
|
532
553
|
}
|
|
533
554
|
export default External;
|