@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.
Files changed (41) hide show
  1. package/CallsSDK.d.ts +14 -9
  2. package/abstract/BaseApi.d.ts +17 -6
  3. package/abstract/BaseSignaling.d.ts +9 -5
  4. package/calls-sdk.cjs.js +8 -8
  5. package/calls-sdk.esm.js +8 -8
  6. package/classes/Conversation.d.ts +15 -3
  7. package/classes/Logger.d.ts +6 -3
  8. package/classes/ProducerCommandSerializationService.d.ts +4 -0
  9. package/classes/screenshare/ScreenCaptureSender.d.ts +3 -0
  10. package/classes/stat/WeightedAverage.d.ts +10 -0
  11. package/classes/transport/BaseTransport.d.ts +0 -1
  12. package/classes/transport/DirectStatReporter.d.ts +43 -0
  13. package/classes/transport/DirectTransport.d.ts +2 -4
  14. package/classes/transport/PerfStatReporter.d.ts +3 -1
  15. package/classes/transport/Transport.d.ts +2 -1
  16. package/default/Api.d.ts +10 -4
  17. package/default/Signaling.d.ts +12 -8
  18. package/enums/SignalingCommandType.d.ts +5 -1
  19. package/enums/SignalingNotification.d.ts +3 -1
  20. package/package.json +3 -3
  21. package/static/Debug.d.ts +1 -0
  22. package/static/External.d.ts +30 -9
  23. package/static/Params.d.ts +57 -7
  24. package/static/Utils.d.ts +4 -2
  25. package/static/WebRTCUtils.d.ts +5 -1
  26. package/types/AudienceMode.d.ts +1 -0
  27. package/types/Conversation.d.ts +8 -6
  28. package/types/EnableVideoSuspend.d.ts +3 -0
  29. package/types/ExternalId.d.ts +1 -0
  30. package/types/MediaSettings.d.ts +0 -9
  31. package/types/MuteStates.d.ts +12 -0
  32. package/types/NetworkStatReport.d.ts +4 -0
  33. package/types/Participant.d.ts +7 -0
  34. package/types/ParticipantStreamDescription.d.ts +2 -1
  35. package/types/Room.d.ts +5 -1
  36. package/types/SignalingCommand.d.ts +4 -4
  37. package/types/SignalingMessage.d.ts +52 -12
  38. package/types/Statistics.d.ts +4 -0
  39. package/types/Streams.d.ts +1 -0
  40. package/types/Vmoji.d.ts +5 -0
  41. 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 _resolveExternalIds;
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;
@@ -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 _batch;
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 _send;
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
+ }
@@ -10,5 +10,4 @@ export default abstract class BaseTransport extends EventEmitter {
10
10
  protected constructor(signaling: BaseSignaling, mediaSource: MediaSource);
11
11
  getState(): TransportState;
12
12
  abstract close(error?: Error): void;
13
- protected getRtcSenders(): RTCRtpSender[];
14
13
  }
@@ -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 _checkBadNetwork;
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 _previousTimestamp;
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/types';
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(compositeUserId: ParticipantId): Promise<ExternalParticipantId>;
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;
@@ -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, IPublishStreamData } from '../types/Streams';
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<SignalingMessage>;
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<SignalingMessage>;
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<SignalingMessage>;
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<SignalingMessage>;
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.e953776.0",
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.1",
18
- "@vkontakte/calls-vmoji": "1.0.8-beta.9",
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
@@ -15,5 +15,6 @@ declare namespace Debug {
15
15
  function enabled(): boolean;
16
16
  function toggle(enable: boolean): void;
17
17
  function send(type: DebugMessageType, ...args: any[]): void;
18
+ function test(tag: string, ...args: any[]): void;
18
19
  }
19
20
  export default Debug;
@@ -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;