@vkontakte/calls-sdk 2.8.11-dev.d67d6abf.0 → 2.8.11-dev.f204132b.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 +43 -13
- package/abstract/BaseApi.d.ts +2 -3
- package/abstract/BaseSignaling.d.ts +2 -3
- package/calls-sdk.cjs.js +9 -9
- package/calls-sdk.esm.js +5494 -5123
- package/classes/AudioFix.d.ts +5 -1
- package/classes/AudioOutput.d.ts +5 -1
- package/classes/Conversation.d.ts +8 -2
- package/classes/DebugInfo.d.ts +3 -0
- package/classes/DisplayLayoutRequester.d.ts +39 -0
- package/classes/ExternalIdCache.d.ts +19 -0
- package/classes/MediaSource.d.ts +5 -1
- package/classes/ParticipantIdRegistry.d.ts +3 -0
- package/classes/ProducerCommandSerializationService.d.ts +3 -0
- package/classes/SignalingActor.d.ts +3 -1
- package/classes/SpeakerDetector.d.ts +2 -1
- package/classes/SpecListener.d.ts +7 -1
- package/classes/{Logger.d.ts → StatsLogger.d.ts} +3 -10
- package/classes/VideoEffectsFpsLimiter.d.ts +3 -0
- package/classes/asr/AsrReceiver.d.ts +3 -1
- package/classes/codec/LibVPxDecoder.d.ts +3 -0
- package/classes/codec/LibVPxEncoder.d.ts +3 -1
- package/classes/codec/WebCodecsDecoder.d.ts +3 -0
- package/classes/codec/WebCodecsEncoder.d.ts +3 -1
- package/classes/codec/WorkerBase.d.ts +5 -0
- package/classes/screenshare/BaseStreamBuilder.d.ts +4 -1
- package/classes/screenshare/CanvasRenderer.d.ts +3 -1
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +7 -1
- package/classes/screenshare/ScreenCaptureSender.d.ts +5 -1
- package/classes/screenshare/ScreenCongestionControl.d.ts +3 -1
- package/classes/screenshare/StreamBuilder.d.ts +5 -1
- package/classes/screenshare/TrackGeneratorRenderer.d.ts +3 -1
- package/classes/screenshare/WebmBuilder.d.ts +3 -1
- package/classes/stat/CodecStatsAggregator.d.ts +7 -7
- package/classes/stat/ConversationStats.d.ts +21 -0
- package/classes/stat/StatAggregator.d.ts +6 -6
- package/classes/stat/StatFirstMediaReceived.d.ts +4 -1
- package/classes/stat/StatPings.d.ts +9 -9
- package/classes/stat/StatScreenShareFirstFrame.d.ts +3 -1
- package/classes/stat/StatSignalingCommands.d.ts +8 -8
- package/classes/transport/BaseTransport.d.ts +1 -1
- package/classes/transport/DirectStatReporter.d.ts +3 -1
- package/classes/transport/DirectTransport.d.ts +9 -1
- package/classes/transport/PerfStatReporter.d.ts +5 -1
- package/classes/transport/ServerTransport.d.ts +10 -2
- package/classes/transport/Transport.d.ts +11 -16
- package/default/Api.d.ts +3 -11
- package/default/Signaling.d.ts +13 -3
- package/enums/TransportState.d.ts +10 -0
- package/enums/TransportTopology.d.ts +5 -0
- package/package.json +1 -1
- package/static/Debug.d.ts +27 -8
- package/static/External.d.ts +12 -12
- package/static/Params.d.ts +23 -9
- package/static/Utils.d.ts +3 -2
- package/static/WebRTCUtils.d.ts +6 -4
- package/types/Conversation.d.ts +1 -1
- package/types/FastStart.d.ts +1 -0
- package/types/ParticipantLayout.d.ts +33 -0
- package/types/SignalingMessage.d.ts +1 -1
- package/types/Statistics.d.ts +1 -1
- package/utils/DebugStorage.d.ts +100 -1
- package/classes/stat/EventMetricsService.d.ts +0 -9
- package/static/ConversationDebugLogger.d.ts +0 -13
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { SignalingTransportType } from '../../enums/SignalingTransportStat';
|
|
2
|
-
import
|
|
2
|
+
import StatsLogger from '../StatsLogger';
|
|
3
|
+
import TransportTopology from '../../enums/TransportTopology';
|
|
3
4
|
export declare class StatPings {
|
|
4
|
-
private
|
|
5
|
-
|
|
5
|
+
private readonly _logger;
|
|
6
|
+
private trackerByTransport;
|
|
7
|
+
private lastSeen;
|
|
8
|
+
constructor(logger: StatsLogger);
|
|
6
9
|
/**
|
|
7
10
|
* Вызывать при входящем ping в сигналингу.
|
|
8
11
|
* Будет произведен расчет времени между пингами.
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
mark(transport: SignalingTransportType): void;
|
|
11
14
|
/** Отправляем данные в стату */
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
private trackerByTransport;
|
|
15
|
-
private lastSeen;
|
|
16
|
-
private _destroy;
|
|
15
|
+
logMetrics(topology?: TransportTopology): void;
|
|
16
|
+
destroy(): void;
|
|
17
17
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ParticipantId } from '../../types/Participant';
|
|
2
|
+
import { StatAggregator } from './StatAggregator';
|
|
2
3
|
export declare class StatScreenShareFirstFrame {
|
|
3
4
|
protected readonly _participantId: ParticipantId;
|
|
5
|
+
private readonly _statAggregator;
|
|
4
6
|
protected _firstFrameReceived: boolean;
|
|
5
|
-
constructor(participantId: ParticipantId);
|
|
7
|
+
constructor(participantId: ParticipantId, statAggregator: StatAggregator | null);
|
|
6
8
|
measure(width: number, height: number): void;
|
|
7
9
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { SignalingTransportType } from '../../enums/SignalingTransportStat';
|
|
2
|
-
import
|
|
2
|
+
import StatsLogger from '../StatsLogger';
|
|
3
|
+
import TransportTopology from '../../enums/TransportTopology';
|
|
3
4
|
export declare class StatSignalingCommands {
|
|
4
|
-
private
|
|
5
|
-
static create(): void;
|
|
6
|
-
static mark(command: string, time: number, transport: SignalingTransportType): void;
|
|
7
|
-
/** Отправляем данные в стату */
|
|
8
|
-
static logMetrics(topology?: TransportTopology): void;
|
|
9
|
-
static destroy(): void;
|
|
5
|
+
private readonly _logger;
|
|
10
6
|
private trackerByCommand;
|
|
11
|
-
|
|
7
|
+
constructor(logger: StatsLogger);
|
|
8
|
+
mark(command: string, time: number, transport: SignalingTransportType): void;
|
|
9
|
+
/** Отправляем данные в стату */
|
|
10
|
+
logMetrics(topology?: TransportTopology): void;
|
|
11
|
+
destroy(): void;
|
|
12
12
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
2
|
+
import TransportState from '../../enums/TransportState';
|
|
2
3
|
import EventEmitter from '../EventEmitter';
|
|
3
4
|
import { MediaSource } from '../MediaSource';
|
|
4
|
-
import { TransportState } from './Transport';
|
|
5
5
|
export default abstract class BaseTransport extends EventEmitter {
|
|
6
6
|
protected readonly _signaling: BaseSignaling;
|
|
7
7
|
protected readonly _mediaSource: MediaSource;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
2
|
+
import { type DebugLogger } from '../../static/Debug';
|
|
2
3
|
import { StatResult } from '../../types/Statistics';
|
|
3
4
|
import EventEmitter from '../EventEmitter';
|
|
4
5
|
import { WeightedAverage } from '../stat/WeightedAverage';
|
|
@@ -30,7 +31,8 @@ export default class DirectStatReporter extends EventEmitter {
|
|
|
30
31
|
private readonly _networkLimits;
|
|
31
32
|
private _lastStatSentTimestamp;
|
|
32
33
|
private _currentState;
|
|
33
|
-
|
|
34
|
+
private readonly _debug;
|
|
35
|
+
constructor(signaling: BaseSignaling, debug?: DebugLogger);
|
|
34
36
|
private _calcRttRating;
|
|
35
37
|
private _calcLossRating;
|
|
36
38
|
private _calcBitrateRating;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { AnimojiReceiver, AnimojiSender } from '@vkontakte/calls-vmoji';
|
|
2
2
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
3
|
+
import { type DebugLogger } from '../../static/Debug';
|
|
3
4
|
import { ParticipantId } from '../../types/Participant';
|
|
4
5
|
import ServerSettings from '../../types/ServerSettings';
|
|
6
|
+
import StatsLogger from '../StatsLogger';
|
|
5
7
|
import { MediaSource } from '../MediaSource';
|
|
8
|
+
import { CodecStatsAggregator } from '../stat/CodecStatsAggregator';
|
|
9
|
+
import { StatAggregator } from '../stat/StatAggregator';
|
|
6
10
|
import BaseTransport from './BaseTransport';
|
|
7
11
|
export default class DirectTransport extends BaseTransport {
|
|
8
12
|
private readonly _participantId;
|
|
@@ -34,7 +38,11 @@ export default class DirectTransport extends BaseTransport {
|
|
|
34
38
|
private _lastBadConnection;
|
|
35
39
|
private _perfStatReporter;
|
|
36
40
|
private _directStatReporter;
|
|
37
|
-
|
|
41
|
+
private readonly _debug;
|
|
42
|
+
private readonly _logger;
|
|
43
|
+
private readonly _statAggregator;
|
|
44
|
+
private readonly _codecStatsAggregator;
|
|
45
|
+
constructor(participantId: ParticipantId, isMaster: boolean, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings, debug?: DebugLogger, logger?: StatsLogger | null, statAggregator?: StatAggregator | null, codecStatsAggregator?: CodecStatsAggregator | null);
|
|
38
46
|
get participantId(): ParticipantId;
|
|
39
47
|
updateStatisticsInterval(): void;
|
|
40
48
|
private _isDeadConnection;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
2
|
+
import { type DebugLogger } from '../../static/Debug';
|
|
2
3
|
import EventEmitter from '../EventEmitter';
|
|
4
|
+
import { StatAggregator } from '../stat/StatAggregator';
|
|
3
5
|
import DirectTransport from './DirectTransport';
|
|
4
6
|
import ServerTransport from './ServerTransport';
|
|
5
7
|
export default class PerfStatReporter extends EventEmitter {
|
|
@@ -10,7 +12,9 @@ export default class PerfStatReporter extends EventEmitter {
|
|
|
10
12
|
private _screenShareStats;
|
|
11
13
|
private _signaling;
|
|
12
14
|
private readonly _directTopology;
|
|
13
|
-
|
|
15
|
+
private readonly _debug;
|
|
16
|
+
private readonly _statAggregator;
|
|
17
|
+
constructor(transport: ServerTransport | DirectTransport, signaling: BaseSignaling, statAggregator?: StatAggregator | null, directTopology?: boolean, debug?: DebugLogger);
|
|
14
18
|
destroy(): void;
|
|
15
19
|
static getEstimatedPerformanceIndex(): number;
|
|
16
20
|
private _handleStats;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { AnimojiReceiver, AnimojiSender } from '@vkontakte/calls-vmoji';
|
|
2
2
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
3
|
+
import { type DebugLogger } from '../../static/Debug';
|
|
3
4
|
import { ParticipantId } from '../../types/Participant';
|
|
4
5
|
import ServerSettings from '../../types/ServerSettings';
|
|
6
|
+
import StatsLogger from '../StatsLogger';
|
|
5
7
|
import { MediaSource } from '../MediaSource';
|
|
8
|
+
import { CodecStatsAggregator } from '../stat/CodecStatsAggregator';
|
|
9
|
+
import { StatAggregator } from '../stat/StatAggregator';
|
|
6
10
|
import BaseTransport from './BaseTransport';
|
|
7
11
|
export default class ServerTransport extends BaseTransport {
|
|
8
12
|
private _producerNotification;
|
|
@@ -39,7 +43,11 @@ export default class ServerTransport extends BaseTransport {
|
|
|
39
43
|
private _producerSessionId;
|
|
40
44
|
private _newAudioShareTrack;
|
|
41
45
|
private _simulcastInfo;
|
|
42
|
-
|
|
46
|
+
private readonly _debug;
|
|
47
|
+
private readonly _logger;
|
|
48
|
+
private readonly _statAggregator;
|
|
49
|
+
private readonly _codecStatsAggregator;
|
|
50
|
+
constructor(signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings, debug?: DebugLogger, logger?: StatsLogger | null, statAggregator?: StatAggregator | null, codecStatsAggregator?: CodecStatsAggregator | null);
|
|
43
51
|
updateStatisticsInterval(): void;
|
|
44
52
|
open(observer?: boolean): void;
|
|
45
53
|
close(error?: Error): void;
|
|
@@ -88,7 +96,7 @@ export default class ServerTransport extends BaseTransport {
|
|
|
88
96
|
private _onAsrTranscription;
|
|
89
97
|
private _onProducerUpdated;
|
|
90
98
|
private _onAddTrack;
|
|
91
|
-
|
|
99
|
+
private _onSignalingStateChange;
|
|
92
100
|
private _onConnectionStateChange;
|
|
93
101
|
private _onReplacedTrack;
|
|
94
102
|
private _onSourcesChanged;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { AnimojiSvgData, RGBTuple } from '@vkontakte/calls-vmoji';
|
|
2
2
|
import BaseSignaling from '../../abstract/BaseSignaling';
|
|
3
|
+
import TransportState from '../../enums/TransportState';
|
|
4
|
+
import TransportTopology from '../../enums/TransportTopology';
|
|
5
|
+
import { type DebugLogger } from '../../static/Debug';
|
|
3
6
|
import { ParticipantId } from '../../types/Participant';
|
|
4
7
|
import ServerSettings from '../../types/ServerSettings';
|
|
5
8
|
import EventEmitter from '../EventEmitter';
|
|
9
|
+
import StatsLogger from '../StatsLogger';
|
|
6
10
|
import { MediaSource } from '../MediaSource';
|
|
11
|
+
import { CodecStatsAggregator } from '../stat/CodecStatsAggregator';
|
|
12
|
+
import { StatAggregator } from '../stat/StatAggregator';
|
|
7
13
|
export declare const enum TransportEvent {
|
|
8
14
|
REMOTE_TRACK_ADDED = "REMOTE_TRACK_ADDED",
|
|
9
15
|
REMOTE_TRACK_REMOVED = "REMOTE_TRACK_REMOVED",
|
|
@@ -23,19 +29,6 @@ export declare const enum TransportEvent {
|
|
|
23
29
|
ANIMOJI_ERROR = "ANIMOJI_ERROR",
|
|
24
30
|
SCREEN_SHARING_STAT = "SCREEN_SHARING_STAT"
|
|
25
31
|
}
|
|
26
|
-
export declare const enum TransportState {
|
|
27
|
-
IDLE = "IDLE",
|
|
28
|
-
OPENED = "OPENED",
|
|
29
|
-
CONNECTING = "CONNECTING",
|
|
30
|
-
RECONNECTING = "RECONNECTING",
|
|
31
|
-
CONNECTED = "CONNECTED",
|
|
32
|
-
CLOSED = "CLOSED",
|
|
33
|
-
FAILED = "FAILED"
|
|
34
|
-
}
|
|
35
|
-
export declare const enum TransportTopology {
|
|
36
|
-
DIRECT = "DIRECT",
|
|
37
|
-
SERVER = "SERVER"
|
|
38
|
-
}
|
|
39
32
|
export declare class Transport extends EventEmitter {
|
|
40
33
|
private readonly _signaling;
|
|
41
34
|
private readonly _mediaSource;
|
|
@@ -51,7 +44,11 @@ export declare class Transport extends EventEmitter {
|
|
|
51
44
|
private _localState;
|
|
52
45
|
private _animojiReceiver;
|
|
53
46
|
private _animojiSender;
|
|
54
|
-
|
|
47
|
+
private readonly _debug;
|
|
48
|
+
private readonly _logger;
|
|
49
|
+
private readonly _statAggregator;
|
|
50
|
+
private readonly _codecStatsAggregator;
|
|
51
|
+
constructor(topology: TransportTopology, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings, debug?: DebugLogger, logger?: StatsLogger | null, statAggregator?: StatAggregator | null, codecStatsAggregator?: CodecStatsAggregator | null);
|
|
55
52
|
updateSettings(settings: ServerSettings): void;
|
|
56
53
|
updateStatisticsInterval(): void;
|
|
57
54
|
allocate(participantId: ParticipantId, isMaster?: boolean): void;
|
|
@@ -59,8 +56,6 @@ export declare class Transport extends EventEmitter {
|
|
|
59
56
|
close(participantId: ParticipantId): void;
|
|
60
57
|
destroy(): void;
|
|
61
58
|
getTopology(): TransportTopology;
|
|
62
|
-
preventRestart(): void;
|
|
63
|
-
allowRestart(): void;
|
|
64
59
|
isAllocated(participantId: ParticipantId): boolean;
|
|
65
60
|
allocated(): string[];
|
|
66
61
|
opened(): string[];
|
package/default/Api.d.ts
CHANGED
|
@@ -8,9 +8,7 @@ import { CompositeUserId, OkUserId, ParticipantId } from '../types/Participant';
|
|
|
8
8
|
export default class Api extends BaseApi {
|
|
9
9
|
private _userId;
|
|
10
10
|
private _uuid;
|
|
11
|
-
private
|
|
12
|
-
private _decorativeIdToInitialId;
|
|
13
|
-
private _initialIdToDecorativeId;
|
|
11
|
+
private _idCache;
|
|
14
12
|
private _callUnsafe;
|
|
15
13
|
protected _call(method: string, data?: any, noSession?: boolean): Promise<any>;
|
|
16
14
|
userId(participantId: ParticipantId): Promise<ExternalParticipantId>;
|
|
@@ -25,7 +23,7 @@ export default class Api extends BaseApi {
|
|
|
25
23
|
audioOnly?: boolean;
|
|
26
24
|
waitForAdmin?: boolean;
|
|
27
25
|
closedConversation?: boolean;
|
|
28
|
-
},
|
|
26
|
+
}, externalIds?: ExternalId[]): Promise<ConversationResponse>;
|
|
29
27
|
startConversation(conversationId: string, ids?: OkUserId[], type?: CallType, isVideo?: boolean, payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean, { onlyAdminCanShareMovie, waitForAdmin }?: {
|
|
30
28
|
onlyAdminCanShareMovie?: boolean;
|
|
31
29
|
waitForAdmin?: boolean;
|
|
@@ -42,19 +40,13 @@ export default class Api extends BaseApi {
|
|
|
42
40
|
}>;
|
|
43
41
|
getAnonymTokenByLink(joinLink: string, username?: string): Promise<string>;
|
|
44
42
|
joinConversationByLink(joinLink: string, isVideo?: boolean, observedIds?: ExternalUserId[], payload?: string): Promise<ConversationResponse>;
|
|
45
|
-
/**
|
|
46
|
-
* NB: Не сохраняет порядок возвращаемых ID
|
|
47
|
-
* Этот метод принимает именно ExternalId, т.к. для OkUserId не принципиально наличие deviceIdx
|
|
48
|
-
* @hidden
|
|
49
|
-
*/
|
|
50
|
-
getOkIdsByExternalIds(externalIds: ExternalId[]): Promise<OkUserId[]>;
|
|
51
|
-
getParticipantIdsByExternalIds(externalIds: ExternalId[]): Promise<Map<ExternalId, ParticipantId>>;
|
|
52
43
|
/**
|
|
53
44
|
* NB: Не сохраняет порядок возвращаемых ID
|
|
54
45
|
* @hidden
|
|
55
46
|
*/
|
|
56
47
|
getExternalIdsByOkIds(uids: OkUserId[]): Promise<ExternalParticipantId[]>;
|
|
57
48
|
getCachedOkIdByExternalId(externalId: ExternalId): ParticipantId | null;
|
|
49
|
+
getCachedRawOkIdByExternalId(externalId: ExternalId): OkUserId | null;
|
|
58
50
|
cacheExternalId(participantId: OkUserId | CompositeUserId | ParticipantId, externalId: ExternalParticipantId): void;
|
|
59
51
|
mapDecorativeId(decorativeId: OkUserId | CompositeUserId | ParticipantId, initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
|
60
52
|
unmapDecorativeId(initialId: OkUserId | CompositeUserId | ParticipantId): void;
|
package/default/Signaling.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import BaseSignaling, { AddParticipantParams } from '../abstract/BaseSignaling';
|
|
2
|
+
import StatsLogger from '../classes/StatsLogger';
|
|
2
3
|
import { ParticipantIdRegistry } from '../classes/ParticipantIdRegistry';
|
|
3
4
|
import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
|
|
4
|
-
import {
|
|
5
|
+
import { StatAggregator } from '../classes/stat/StatAggregator';
|
|
6
|
+
import { StatPings } from '../classes/stat/StatPings';
|
|
7
|
+
import { StatSignalingCommands } from '../classes/stat/StatSignalingCommands';
|
|
8
|
+
import TransportTopology from '../enums/TransportTopology';
|
|
5
9
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
6
10
|
import ConversationOption from '../enums/ConversationOption';
|
|
7
11
|
import MediaOption from '../enums/MediaOption';
|
|
8
12
|
import SignalingCommandType from '../enums/SignalingCommandType';
|
|
9
13
|
import SignalingConnectionType from '../enums/SignalingConnectionType';
|
|
10
14
|
import UserRole from '../enums/UserRole';
|
|
15
|
+
import { type DebugLogger } from '../static/Debug';
|
|
11
16
|
import { JSONObject } from '../static/Json';
|
|
12
17
|
import { IAsrStartParams, IAsrStopParams } from '../types/Asr';
|
|
13
18
|
import { ChangeSimulcast } from '../types/ChangeSimulcast';
|
|
@@ -22,7 +27,7 @@ import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
|
22
27
|
import { StreamDescriptionString } from '../types/ParticipantStreamDescription';
|
|
23
28
|
import { PerfStatReport } from '../types/PerfStatReporter';
|
|
24
29
|
import SignalingMessage, { GetParticipantsSignalingResponse, GetRoomsSignalingResponse, SignalingSuccessResponse } from '../types/SignalingMessage';
|
|
25
|
-
import { IPublishStreamData,
|
|
30
|
+
import { IPublishStreamData, IStartStreamData, IStopStreamData } from '../types/Streams';
|
|
26
31
|
export default class Signaling extends BaseSignaling {
|
|
27
32
|
private socket;
|
|
28
33
|
protected sequence: number;
|
|
@@ -49,12 +54,18 @@ export default class Signaling extends BaseSignaling {
|
|
|
49
54
|
private producerCommandDataChannel;
|
|
50
55
|
private producerCommandDataChannelEnabled;
|
|
51
56
|
private producerCommandSerializationService;
|
|
57
|
+
private readonly _debug;
|
|
58
|
+
private readonly _logger;
|
|
59
|
+
private readonly _statAggregator;
|
|
60
|
+
private readonly _pings;
|
|
61
|
+
private readonly _signalingCommands;
|
|
52
62
|
private static get RECONNECT_DELAY();
|
|
53
63
|
private static get RECONNECT_MAX_DELAY();
|
|
54
64
|
private static get RECONNECT_MAX_COUNT();
|
|
55
65
|
private static get WAIT_CONNECTION_DELAY();
|
|
56
66
|
private static get WAIT_RESPONSE_DELAY();
|
|
57
67
|
private static get WAIT_MESSAGE_DELAY();
|
|
68
|
+
constructor(debug?: DebugLogger, logger?: StatsLogger | null, statAggregator?: StatAggregator | null, pings?: StatPings | null, signalingCommands?: StatSignalingCommands | null);
|
|
58
69
|
get ready(): boolean;
|
|
59
70
|
setEndpoint(endpoint: string): void;
|
|
60
71
|
setWebTransportEndpoint(endpoint: string | null): void;
|
|
@@ -119,7 +130,6 @@ export default class Signaling extends BaseSignaling {
|
|
|
119
130
|
startStream(data: IStartStreamData): Promise<SignalingMessage>;
|
|
120
131
|
stopStream(data?: IStopStreamData): Promise<SignalingMessage>;
|
|
121
132
|
publishStream(data?: IPublishStreamData): Promise<SignalingMessage>;
|
|
122
|
-
recordSetConf(conf?: IRecordConfData): Promise<SignalingMessage>;
|
|
123
133
|
getRecordStatus(): Promise<SignalingMessage>;
|
|
124
134
|
switchTopology(topology: TransportTopology, force?: boolean): Promise<SignalingMessage>;
|
|
125
135
|
requestRealloc(): Promise<SignalingMessage>;
|
package/package.json
CHANGED
package/static/Debug.d.ts
CHANGED
|
@@ -7,14 +7,33 @@ export declare enum DebugMessageType {
|
|
|
7
7
|
WARN = "WARN",
|
|
8
8
|
ERROR = "ERROR"
|
|
9
9
|
}
|
|
10
|
+
export type DebugMessageContext = {
|
|
11
|
+
readonly sessionId: string | null;
|
|
12
|
+
readonly conversationId: string | null;
|
|
13
|
+
};
|
|
14
|
+
export type DebugLogger = {
|
|
15
|
+
debug(...args: any[]): void;
|
|
16
|
+
log(...args: any[]): void;
|
|
17
|
+
warn(...args: any[]): void;
|
|
18
|
+
error(...args: any[]): void;
|
|
19
|
+
};
|
|
20
|
+
export type DebugSessionLogger = DebugLogger & {
|
|
21
|
+
readonly sessionId: string | null;
|
|
22
|
+
readonly conversationId: string | null;
|
|
23
|
+
setConversationId(conversationId: string | null): void;
|
|
24
|
+
};
|
|
10
25
|
declare namespace Debug {
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
function
|
|
14
|
-
function
|
|
15
|
-
function
|
|
16
|
-
function
|
|
17
|
-
function
|
|
18
|
-
function
|
|
26
|
+
type ContextProvider = () => DebugMessageContext;
|
|
27
|
+
export function debug(...args: any[]): void;
|
|
28
|
+
export function log(...args: any[]): void;
|
|
29
|
+
export function warn(...args: any[]): void;
|
|
30
|
+
export function error(...args: any[]): void;
|
|
31
|
+
export function enabled(): boolean;
|
|
32
|
+
export function toggle(enable: boolean): void;
|
|
33
|
+
export function send(type: DebugMessageType, ...args: any[]): void;
|
|
34
|
+
export function createLogger(getContext: ContextProvider): DebugLogger;
|
|
35
|
+
export function createSessionLogger(initialConversationId?: string | null): DebugSessionLogger;
|
|
36
|
+
export function test(tag: string, ...args: any[]): void;
|
|
37
|
+
export {};
|
|
19
38
|
}
|
|
20
39
|
export default Debug;
|
package/static/External.d.ts
CHANGED
|
@@ -284,15 +284,14 @@ declare namespace External {
|
|
|
284
284
|
/**
|
|
285
285
|
* Разрешения на доступы были запрошены в браузере
|
|
286
286
|
*/
|
|
287
|
-
function onPermissionsRequested(
|
|
287
|
+
function onPermissionsRequested(): void;
|
|
288
288
|
/**
|
|
289
289
|
* Ошибка получения трека с камеры или микрофона
|
|
290
290
|
*
|
|
291
291
|
* @param error
|
|
292
292
|
* @param original
|
|
293
|
-
* @param conversationId
|
|
294
293
|
*/
|
|
295
|
-
function onPermissionsError(error: FatalError, original: Error
|
|
294
|
+
function onPermissionsError(error: FatalError, original: Error): void;
|
|
296
295
|
/**
|
|
297
296
|
* Пользователь отключился от звонка
|
|
298
297
|
*
|
|
@@ -419,9 +418,8 @@ declare namespace External {
|
|
|
419
418
|
*
|
|
420
419
|
* @param volume
|
|
421
420
|
* @param isMicEnabled
|
|
422
|
-
* @param conversationId
|
|
423
421
|
*/
|
|
424
|
-
function onLocalVolume(volume: number, isMicEnabled: boolean
|
|
422
|
+
function onLocalVolume(volume: number, isMicEnabled: boolean): void;
|
|
425
423
|
function onJoinStatus(available: boolean, chatId: string, conversationId?: string): void;
|
|
426
424
|
/**
|
|
427
425
|
* Звонок был завершен
|
|
@@ -430,19 +428,19 @@ declare namespace External {
|
|
|
430
428
|
* @param conversationId ID звонка
|
|
431
429
|
*/
|
|
432
430
|
function onHangup(data: HangupReason, conversationId: string | null): void;
|
|
433
|
-
function onMultipartyChatCreated(conversation: ConversationData
|
|
431
|
+
function onMultipartyChatCreated(conversation: ConversationData): void;
|
|
434
432
|
/**
|
|
435
433
|
* Список устройств изменился
|
|
436
434
|
*/
|
|
437
|
-
function onDeviceChange(
|
|
435
|
+
function onDeviceChange(): void;
|
|
438
436
|
/**
|
|
439
437
|
* Изменилась подпись звонка 1:1
|
|
440
438
|
*/
|
|
441
|
-
function onFingerprintChange(fingerprint: string
|
|
439
|
+
function onFingerprintChange(fingerprint: string): void;
|
|
442
440
|
/**
|
|
443
441
|
* Требуется обновление токена
|
|
444
442
|
*/
|
|
445
|
-
function onTokenExpired(
|
|
443
|
+
function onTokenExpired(): void;
|
|
446
444
|
/**
|
|
447
445
|
* Получено сообщение чата
|
|
448
446
|
*
|
|
@@ -505,18 +503,20 @@ declare namespace External {
|
|
|
505
503
|
* @param args
|
|
506
504
|
*/
|
|
507
505
|
function onDebugMessage(type: DebugMessageType, ...args: any[]): void;
|
|
506
|
+
function onDebugMessageWithContext(type: DebugMessageType, context: {
|
|
507
|
+
conversationId: string | null;
|
|
508
|
+
}, ...args: any[]): void;
|
|
508
509
|
/**
|
|
509
510
|
* Статистика звонка
|
|
510
511
|
*
|
|
511
512
|
* @param connection Статистика соединения
|
|
512
513
|
* @param memory Статистика памяти
|
|
513
|
-
* @param conversationId
|
|
514
514
|
*/
|
|
515
|
-
function onStatistics(connection: StatResult, memory: Record<string, number
|
|
515
|
+
function onStatistics(connection: StatResult, memory: Record<string, number>): void;
|
|
516
516
|
/**
|
|
517
517
|
* Ошибка воспроизведения звука
|
|
518
518
|
*/
|
|
519
|
-
function onAutoplayError(
|
|
519
|
+
function onAutoplayError(): void;
|
|
520
520
|
/**
|
|
521
521
|
* Изменилось состояние зала ожидания/зала в режиме Audience
|
|
522
522
|
*
|
package/static/Params.d.ts
CHANGED
|
@@ -306,6 +306,12 @@ export type ParamsObject = {
|
|
|
306
306
|
* _По умолчанию: `30`_
|
|
307
307
|
*/
|
|
308
308
|
videoTracksCount: number;
|
|
309
|
+
/**
|
|
310
|
+
* Минимальный интервал отправки diff для requestDisplayLayout в миллисекундах.
|
|
311
|
+
*
|
|
312
|
+
* _По умолчанию: `250`_
|
|
313
|
+
*/
|
|
314
|
+
requestDisplayLayoutThrottleMs: number;
|
|
309
315
|
/** @hidden */
|
|
310
316
|
movieShare: boolean;
|
|
311
317
|
/** @hidden */
|
|
@@ -618,11 +624,11 @@ export type ParamsObject = {
|
|
|
618
624
|
/**
|
|
619
625
|
* Разрешения на доступы были запрошены в браузере
|
|
620
626
|
*/
|
|
621
|
-
onPermissionsRequested?: (
|
|
627
|
+
onPermissionsRequested?: () => void;
|
|
622
628
|
/**
|
|
623
629
|
* Ошибка получения трека с камеры или микрофона
|
|
624
630
|
*/
|
|
625
|
-
onPermissionsError?: (error: FatalError, original: Error
|
|
631
|
+
onPermissionsError?: (error: FatalError, original: Error) => void;
|
|
626
632
|
/**
|
|
627
633
|
* Пользователь отключился от звонка
|
|
628
634
|
*/
|
|
@@ -674,8 +680,8 @@ export type ParamsObject = {
|
|
|
674
680
|
/**
|
|
675
681
|
* Громкость своего микрофона
|
|
676
682
|
*/
|
|
677
|
-
onLocalVolume?: (volume: number, isMicEnabled: boolean
|
|
678
|
-
onJoinStatus?: (conversationId?: string) => void;
|
|
683
|
+
onLocalVolume?: (volume: number, isMicEnabled: boolean) => void;
|
|
684
|
+
onJoinStatus?: (available: boolean, chatId: string, conversationId?: string) => void;
|
|
679
685
|
/**
|
|
680
686
|
* Звонок был завершен
|
|
681
687
|
*/
|
|
@@ -692,16 +698,16 @@ export type ParamsObject = {
|
|
|
692
698
|
/**
|
|
693
699
|
* Список устройств изменился
|
|
694
700
|
*/
|
|
695
|
-
onDeviceChange?: (
|
|
701
|
+
onDeviceChange?: () => void;
|
|
696
702
|
onMultipartyChatCreated?: (conversation: ConversationData) => void;
|
|
697
703
|
/**
|
|
698
704
|
* Изменилась подпись звонка 1:1
|
|
699
705
|
*/
|
|
700
|
-
onFingerprintChange?: (fingerprint: string
|
|
706
|
+
onFingerprintChange?: (fingerprint: string) => void;
|
|
701
707
|
/**
|
|
702
708
|
* Требуется обновление токена
|
|
703
709
|
*/
|
|
704
|
-
onTokenExpired?: (
|
|
710
|
+
onTokenExpired?: () => void;
|
|
705
711
|
/**
|
|
706
712
|
* Получено сообщение чата
|
|
707
713
|
*/
|
|
@@ -737,14 +743,20 @@ export type ParamsObject = {
|
|
|
737
743
|
* Получено отладочное сообщение. Работает только при выключенном режиме отладки
|
|
738
744
|
*/
|
|
739
745
|
onDebugMessage?: (type: DebugMessageType, ...args: any[]) => void;
|
|
746
|
+
/**
|
|
747
|
+
* Получено отладочное сообщение с контекстом звонка. Работает только при выключенном режиме отладки
|
|
748
|
+
*/
|
|
749
|
+
onDebugMessageWithContext?: (type: DebugMessageType, context: {
|
|
750
|
+
conversationId: string | null;
|
|
751
|
+
}, ...args: any[]) => void;
|
|
740
752
|
/**
|
|
741
753
|
* Статистика звонка
|
|
742
754
|
*/
|
|
743
|
-
onStatistics?: (stats: {}
|
|
755
|
+
onStatistics?: (stats: {}) => void;
|
|
744
756
|
/**
|
|
745
757
|
* Ошибка воспроизведения звука
|
|
746
758
|
*/
|
|
747
|
-
onAutoplayError?: (
|
|
759
|
+
onAutoplayError?: () => void;
|
|
748
760
|
/**
|
|
749
761
|
* Изменилось состояние зала ожидания/зала в режиме Audience
|
|
750
762
|
*
|
|
@@ -976,6 +988,7 @@ export default abstract class Params {
|
|
|
976
988
|
static get audioNack(): boolean;
|
|
977
989
|
static get movieShare(): boolean;
|
|
978
990
|
static get videoTracksCount(): number;
|
|
991
|
+
static get requestDisplayLayoutThrottleMs(): number;
|
|
979
992
|
static get breakVideoPayloadTypes(): boolean;
|
|
980
993
|
static get useCallsToContacts(): boolean;
|
|
981
994
|
static get useParticipantListChunk(): boolean;
|
|
@@ -1024,6 +1037,7 @@ export default abstract class Params {
|
|
|
1024
1037
|
screenShareCongestionControl: boolean;
|
|
1025
1038
|
screenShareCongestionControlThreshold: number;
|
|
1026
1039
|
videoTracksCount: number;
|
|
1040
|
+
requestDisplayLayoutThrottleMs: number;
|
|
1027
1041
|
asrDataChannel: boolean;
|
|
1028
1042
|
videoMaxHeight: number;
|
|
1029
1043
|
videoMaxWidth: number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { ExternalParticipant, ExternalParticipantListMarker } from '../types/Ext
|
|
|
3
3
|
import { CompositeUserId, OkUserId, Participant, ParticipantId, ParticipantStateMapped } from '../types/Participant';
|
|
4
4
|
import SignalingMessage from '../types/SignalingMessage';
|
|
5
5
|
import VideoSettings from '../types/VideoSettings';
|
|
6
|
+
import { type DebugLogger } from './Debug';
|
|
6
7
|
export declare const PARAMETERS_SEPARATOR = ":";
|
|
7
8
|
export declare const DEVICE_IDX_PARAMETER = "d";
|
|
8
9
|
/** @hidden */
|
|
@@ -36,8 +37,8 @@ declare namespace Utils {
|
|
|
36
37
|
function delay(time: number, { signal }?: {
|
|
37
38
|
signal?: AbortSignal;
|
|
38
39
|
}): Promise<void>;
|
|
39
|
-
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any): any;
|
|
40
|
-
function applyVideoTrackSettings(videoSettings: VideoSettings, s: RTCRtpSender, track: MediaStreamTrack | null, prevSettings: any, retSettings: any): void;
|
|
40
|
+
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any, debug?: DebugLogger): any;
|
|
41
|
+
function applyVideoTrackSettings(videoSettings: VideoSettings, s: RTCRtpSender, track: MediaStreamTrack | null, prevSettings: any, retSettings: any, debug?: DebugLogger): void;
|
|
41
42
|
/**
|
|
42
43
|
* Проверяет, есть ли в первом массиве хотя бы один элемент из второго массива
|
|
43
44
|
* @param arr Где ищем
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Вспомогательный плагин для работы с WebRTC
|
|
3
3
|
*/
|
|
4
4
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
5
|
+
import type StatsLogger from '../classes/StatsLogger';
|
|
6
|
+
import { type DebugLogger } from './Debug';
|
|
5
7
|
/**
|
|
6
8
|
* Тип камеры мобильного устройства
|
|
7
9
|
*/
|
|
@@ -83,24 +85,24 @@ declare namespace WebRTCUtils {
|
|
|
83
85
|
* @param needAudio Нужно ли аудио
|
|
84
86
|
* @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
|
|
85
87
|
*/
|
|
86
|
-
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean): Promise<MediaStream>;
|
|
88
|
+
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
87
89
|
/**
|
|
88
90
|
* Запрашивает трансляцию экрана пользователя с опциональным захватом звука
|
|
89
91
|
*/
|
|
90
|
-
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean): Promise<MediaStream>;
|
|
92
|
+
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
91
93
|
/**
|
|
92
94
|
* Запрашивает камеру пользователя
|
|
93
95
|
*
|
|
94
96
|
* @param deviceId ID устройства
|
|
95
97
|
* @param resolution Размеры видео
|
|
96
98
|
*/
|
|
97
|
-
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions): Promise<MediaStream>;
|
|
99
|
+
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
98
100
|
/**
|
|
99
101
|
* Запрашивает микрофон пользователя
|
|
100
102
|
*
|
|
101
103
|
* @param deviceId ID устройства
|
|
102
104
|
*/
|
|
103
|
-
function getUserAudio(deviceId?: string): Promise<MediaStream>;
|
|
105
|
+
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatsLogger | null): Promise<MediaStream>;
|
|
104
106
|
/**
|
|
105
107
|
* Устанавливает размер видео в стриме
|
|
106
108
|
*
|
package/types/Conversation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import TransportTopology from '../enums/TransportTopology';
|
|
2
2
|
import CallDirection from '../enums/CallDirection';
|
|
3
3
|
import CallType from '../enums/CallType';
|
|
4
4
|
import ConversationFeature from '../enums/ConversationFeature';
|
package/types/FastStart.d.ts
CHANGED