@vkontakte/calls-sdk 2.8.11-dev.af7eda54.0 → 2.8.11-dev.be993e85.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 +12 -6
- package/abstract/BaseSignaling.d.ts +1 -1
- package/calls-sdk.cjs.js +9 -9
- package/calls-sdk.esm.js +3931 -3297
- package/classes/AudioFix.d.ts +5 -1
- package/classes/AudioOutput.d.ts +5 -1
- package/classes/Conversation.d.ts +15 -4
- package/classes/ConversationResponseValidator.d.ts +3 -0
- package/classes/DebugInfo.d.ts +3 -0
- package/classes/DisplayLayoutRequester.d.ts +39 -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 +5 -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 +7 -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 +6 -2
- 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 -14
- package/default/Api.d.ts +5 -0
- package/default/Signaling.d.ts +38 -43
- package/default/SignalingTransport.d.ts +68 -0
- package/enums/HangupType.d.ts +2 -1
- package/enums/SignalingNotification.d.ts +1 -0
- package/enums/TransportState.d.ts +10 -0
- package/enums/TransportTopology.d.ts +5 -0
- package/package.json +1 -1
- package/static/Capabilities.d.ts +5 -0
- package/static/Debug.d.ts +27 -8
- package/static/External.d.ts +3 -0
- package/static/Params.d.ts +22 -0
- package/static/ParticipantConnectionStatusUtils.d.ts +15 -0
- package/static/Utils.d.ts +3 -2
- package/static/WebRTCUtils.d.ts +6 -4
- package/types/Capabilities.d.ts +24 -0
- package/types/Conversation.d.ts +1 -1
- package/types/FastStart.d.ts +1 -0
- package/types/Participant.d.ts +10 -1
- package/types/ParticipantLayout.d.ts +33 -0
- package/types/SignalingMessage.d.ts +11 -2
- package/types/Statistics.d.ts +1 -1
- package/types/WebTransport.d.ts +4 -0
- package/utils/DebugStorage.d.ts +1 -2
- package/classes/stat/EventMetricsService.d.ts +0 -9
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import TransportTopology from '../../enums/TransportTopology';
|
|
2
|
+
import { StatAggregator } from './StatAggregator';
|
|
2
3
|
/** связанный с операцией `first_media_received` тип логируемого звонка */
|
|
3
4
|
declare enum ECallType {
|
|
4
5
|
DirectOutgoing = "direct_outgoing",
|
|
5
6
|
DirectIncoming = "direct_incoming",
|
|
7
|
+
DirectJoin = "direct_join",
|
|
6
8
|
ServerIncoming = "server_incoming",
|
|
7
9
|
ServerJoinServer = "server_join_server",
|
|
8
10
|
ServerChangeTopology = "server_change_topology"
|
|
9
11
|
}
|
|
10
12
|
export declare class StatFirstMediaReceived {
|
|
13
|
+
private readonly _statAggregator;
|
|
11
14
|
/** уже поставили засечку на приём звонка */
|
|
12
15
|
protected _isCallMarked: boolean;
|
|
13
16
|
protected _isFinished: boolean;
|
|
14
17
|
protected _callType: ECallType | null;
|
|
18
|
+
constructor(statAggregator: StatAggregator);
|
|
15
19
|
markAcceptCall(topology: TransportTopology): void;
|
|
16
20
|
markAcceptedCall(topology?: TransportTopology): void;
|
|
17
|
-
markParticipantJoined(topology: TransportTopology): void;
|
|
18
21
|
markOnJoin(topology: TransportTopology): void;
|
|
22
|
+
markTopologyChanged(topology: TransportTopology): void;
|
|
19
23
|
private mark;
|
|
20
24
|
measure(): void;
|
|
21
25
|
}
|
|
@@ -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;
|
package/default/Api.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export default class Api extends BaseApi {
|
|
|
13
13
|
protected _call(method: string, data?: any, noSession?: boolean): Promise<any>;
|
|
14
14
|
userId(participantId: ParticipantId): Promise<ExternalParticipantId>;
|
|
15
15
|
authorize(): Promise<void>;
|
|
16
|
+
private _getAnonymLoginCacheKey;
|
|
17
|
+
private _getCachedAnonymLogin;
|
|
18
|
+
private _setCachedAnonymLogin;
|
|
19
|
+
private _removeCachedAnonymLogin;
|
|
20
|
+
private _applyAnonymLogin;
|
|
16
21
|
logClientStats(items: ClientStats[]): void;
|
|
17
22
|
logClientEvents(items: ClientEvent[]): void;
|
|
18
23
|
uploadDebugLogs(conversationId: string, startTime: number, endTime: number, log: string): Promise<void>;
|
package/default/Signaling.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
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
|
-
import SignalingCommandType from '../enums/SignalingCommandType';
|
|
9
12
|
import SignalingConnectionType from '../enums/SignalingConnectionType';
|
|
10
13
|
import UserRole from '../enums/UserRole';
|
|
14
|
+
import { type DebugLogger } from '../static/Debug';
|
|
11
15
|
import { JSONObject } from '../static/Json';
|
|
12
16
|
import { IAsrStartParams, IAsrStopParams } from '../types/Asr';
|
|
13
17
|
import { ChangeSimulcast } from '../types/ChangeSimulcast';
|
|
@@ -21,41 +25,39 @@ import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/Partici
|
|
|
21
25
|
import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
22
26
|
import { StreamDescriptionString } from '../types/ParticipantStreamDescription';
|
|
23
27
|
import { PerfStatReport } from '../types/PerfStatReporter';
|
|
24
|
-
import SignalingMessage, { GetParticipantsSignalingResponse, GetRoomsSignalingResponse
|
|
28
|
+
import SignalingMessage, { GetParticipantsSignalingResponse, GetRoomsSignalingResponse } from '../types/SignalingMessage';
|
|
25
29
|
import { IPublishStreamData, IStartStreamData, IStopStreamData } from '../types/Streams';
|
|
26
30
|
export default class Signaling extends BaseSignaling {
|
|
27
|
-
private
|
|
28
|
-
|
|
31
|
+
private transport;
|
|
32
|
+
private sequence;
|
|
29
33
|
private lastStamp;
|
|
30
34
|
private websocketCommandsQueue;
|
|
31
35
|
private datachannelCommandsQueue;
|
|
32
36
|
private incomingCache;
|
|
33
37
|
private responseHandlers;
|
|
34
38
|
private connectionType;
|
|
35
|
-
private
|
|
36
|
-
private
|
|
37
|
-
private wtEndpoint;
|
|
38
|
-
protected conversationResolve: Function | null;
|
|
39
|
-
protected conversationReject: Function | null;
|
|
39
|
+
private conversationResolve;
|
|
40
|
+
private conversationReject;
|
|
40
41
|
private connected;
|
|
41
42
|
private listenersReady;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
private reconnectTimer;
|
|
43
|
+
private peerId;
|
|
44
|
+
private conversationId;
|
|
45
45
|
private connectionMessageWaitTimer;
|
|
46
|
-
private doctorTimer;
|
|
47
46
|
private participantIdRegistry;
|
|
48
47
|
private producerNotificationDataChannel;
|
|
49
48
|
private producerCommandDataChannel;
|
|
50
49
|
private producerCommandDataChannelEnabled;
|
|
51
50
|
private producerCommandSerializationService;
|
|
52
|
-
private
|
|
53
|
-
private
|
|
54
|
-
private
|
|
51
|
+
private readonly _debug;
|
|
52
|
+
private readonly _logger;
|
|
53
|
+
private readonly _statAggregator;
|
|
54
|
+
private readonly _statPings;
|
|
55
|
+
private readonly _statSignalingCommands;
|
|
55
56
|
private static get WAIT_CONNECTION_DELAY();
|
|
56
57
|
private static get WAIT_RESPONSE_DELAY();
|
|
57
|
-
private static get WAIT_MESSAGE_DELAY();
|
|
58
58
|
get ready(): boolean;
|
|
59
|
+
constructor(debug?: DebugLogger, logger?: StatsLogger | null, statAggregator?: StatAggregator | null, statPings?: StatPings | null, statSignalingCommands?: StatSignalingCommands | null);
|
|
60
|
+
setAbortSignal(signal: AbortSignal | undefined): void;
|
|
59
61
|
setEndpoint(endpoint: string): void;
|
|
60
62
|
setWebTransportEndpoint(endpoint: string | null): void;
|
|
61
63
|
setConversationId(conversationId: string): void;
|
|
@@ -71,15 +73,6 @@ export default class Signaling extends BaseSignaling {
|
|
|
71
73
|
* Open a connection with a signaling server
|
|
72
74
|
*/
|
|
73
75
|
connect(connectionType: SignalingConnectionType): Promise<SignalingMessage.Connection>;
|
|
74
|
-
/**
|
|
75
|
-
* Send a command to a signaling server
|
|
76
|
-
*/
|
|
77
|
-
protected _send<T extends SignalingSuccessResponse>(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<T>;
|
|
78
|
-
/**
|
|
79
|
-
* Send a raw command to a signaling server
|
|
80
|
-
*/
|
|
81
|
-
protected _sendRaw<T extends SignalingSuccessResponse>(command: SignalingCommandType, params?: any, needResponse?: boolean, retryCount?: number): Promise<T>;
|
|
82
|
-
private _isDataChannelCommand;
|
|
83
76
|
getNextCommandSequenceNumber(): number;
|
|
84
77
|
hangup(reason: string): Promise<SignalingMessage | void>;
|
|
85
78
|
sendCandidate(participantId: ParticipantId, candidate: RTCIceCandidate): Promise<SignalingMessage>;
|
|
@@ -162,34 +155,36 @@ export default class Signaling extends BaseSignaling {
|
|
|
162
155
|
startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
|
|
163
156
|
stopAsr(params?: IAsrStopParams): Promise<SignalingMessage>;
|
|
164
157
|
requestAsr(request: boolean): Promise<SignalingMessage>;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Send a command to a signaling server
|
|
160
|
+
*/
|
|
161
|
+
private _send;
|
|
162
|
+
/**
|
|
163
|
+
* Send a raw command to a signaling server
|
|
164
|
+
*/
|
|
165
|
+
private _sendRaw;
|
|
166
|
+
private _isDataChannelCommand;
|
|
168
167
|
private _onOpen;
|
|
169
168
|
private _onMessage;
|
|
170
|
-
|
|
169
|
+
private _handleMessage;
|
|
171
170
|
private _handleErrorMessage;
|
|
172
|
-
|
|
171
|
+
private _handleCachedMessages;
|
|
173
172
|
private _throwError;
|
|
174
173
|
private _onError;
|
|
175
174
|
private _serializeErrorEvent;
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
protected _reconnect(): void;
|
|
175
|
+
private _onClose;
|
|
176
|
+
private _closeSocket;
|
|
179
177
|
private _handleCommandResponse;
|
|
180
178
|
private _handleCommandsQueue;
|
|
181
179
|
private _startResponseTimer;
|
|
182
180
|
private _serializeBinary;
|
|
183
181
|
private _serializeJson;
|
|
184
182
|
private _convertDisplayLayout;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
private _startDoctor;
|
|
191
|
-
private _stopDoctor;
|
|
192
|
-
private isWebTransportAvailable;
|
|
183
|
+
private _waitConnectionMessage;
|
|
184
|
+
private _stopWaitConnectionMessage;
|
|
185
|
+
private _onTransportFailed;
|
|
186
|
+
private _onTransportReconnectScheduled;
|
|
187
|
+
private _onTransportConnectionDead;
|
|
193
188
|
private _getSocketType;
|
|
194
189
|
private _markTransportStat;
|
|
195
190
|
private _logTransportStat;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import SignalingConnectionType from '../enums/SignalingConnectionType';
|
|
2
|
+
import { SignalingTransportType } from '../enums/SignalingTransportStat';
|
|
3
|
+
export declare enum SignalingTransportFailure {
|
|
4
|
+
EMPTY_ENDPOINT = "EMPTY_ENDPOINT",
|
|
5
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
6
|
+
ABORTED = "ABORTED"
|
|
7
|
+
}
|
|
8
|
+
export type SignalingTransportFailedEvent = {
|
|
9
|
+
failure: SignalingTransportFailure;
|
|
10
|
+
message: string;
|
|
11
|
+
remote?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type SignalingTransportReconnectEvent = {
|
|
14
|
+
count: number;
|
|
15
|
+
delay: number;
|
|
16
|
+
};
|
|
17
|
+
export type SignalingTransportHandlers = {
|
|
18
|
+
onOpen: () => void;
|
|
19
|
+
onMessage: (event: MessageEvent) => void;
|
|
20
|
+
onError: (event: Event) => void;
|
|
21
|
+
onClose: (event: CloseEvent) => void;
|
|
22
|
+
onFailed: (event: SignalingTransportFailedEvent) => void;
|
|
23
|
+
onReconnectScheduled: (event: SignalingTransportReconnectEvent) => void;
|
|
24
|
+
onConnectionDead: () => void;
|
|
25
|
+
};
|
|
26
|
+
export default class SignalingTransport {
|
|
27
|
+
private readonly handlers;
|
|
28
|
+
private socket;
|
|
29
|
+
private endpoint;
|
|
30
|
+
private wtEndpoint;
|
|
31
|
+
private peerId;
|
|
32
|
+
private lastStamp;
|
|
33
|
+
private connectionType;
|
|
34
|
+
private reconnectCount;
|
|
35
|
+
private reconnectTimer;
|
|
36
|
+
private doctorTimer;
|
|
37
|
+
private forceWebSocket;
|
|
38
|
+
private abortSignal;
|
|
39
|
+
private manualClose;
|
|
40
|
+
private currentType;
|
|
41
|
+
constructor(handlers: SignalingTransportHandlers);
|
|
42
|
+
get readyState(): number | null;
|
|
43
|
+
get type(): SignalingTransportType;
|
|
44
|
+
setEndpoint(endpoint: string): void;
|
|
45
|
+
setWebTransportEndpoint(endpoint: string | null): void;
|
|
46
|
+
setPeerId(peerId: number | null): void;
|
|
47
|
+
setLastStamp(lastStamp: number): void;
|
|
48
|
+
setAbortSignal(signal?: AbortSignal): void;
|
|
49
|
+
resetReconnectCount(): void;
|
|
50
|
+
connect(connectionType: SignalingConnectionType): void;
|
|
51
|
+
close(code?: number): void;
|
|
52
|
+
send(data: string | ArrayBuffer): void;
|
|
53
|
+
private _connect;
|
|
54
|
+
private _connectWebTransport;
|
|
55
|
+
private _connectWebSocket;
|
|
56
|
+
private _setSocketHandlers;
|
|
57
|
+
private _buildUrl;
|
|
58
|
+
private _canUseWebTransport;
|
|
59
|
+
private _onOpen;
|
|
60
|
+
private _onMessage;
|
|
61
|
+
private _onError;
|
|
62
|
+
private _onClose;
|
|
63
|
+
private _disconnect;
|
|
64
|
+
private _scheduleReconnect;
|
|
65
|
+
private _getReconnectDelay;
|
|
66
|
+
private _startDoctor;
|
|
67
|
+
private _stopDoctor;
|
|
68
|
+
}
|
package/enums/HangupType.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ declare enum HangupType {
|
|
|
53
53
|
* - Приложение вызываемого не запущено или упало
|
|
54
54
|
* - Брандмауэр или сетевые ограничения блокируют подключение
|
|
55
55
|
*/
|
|
56
|
-
CALL_TIMEOUT = "CALL_TIMEOUT"
|
|
56
|
+
CALL_TIMEOUT = "CALL_TIMEOUT",
|
|
57
|
+
OBSOLETE_CLIENT = "OBSOLETE_CLIENT"
|
|
57
58
|
}
|
|
58
59
|
export default HangupType;
|
|
@@ -24,6 +24,7 @@ declare enum SignalingNotification {
|
|
|
24
24
|
REALLOC_CON = "realloc-con",
|
|
25
25
|
AUDIO_ACTIVITY = "audio-activity",
|
|
26
26
|
SPEAKER_CHANGED = "speaker-changed",
|
|
27
|
+
SESSION_STATE = "session-state",
|
|
27
28
|
STALLED_ACTIVITY = "stalled-activity",
|
|
28
29
|
CHAT_MESSAGE = "chat-message",
|
|
29
30
|
CUSTOM_DATA = "custom-data",
|
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
|
@@ -446,6 +446,9 @@ declare namespace External {
|
|
|
446
446
|
* @param args
|
|
447
447
|
*/
|
|
448
448
|
function onDebugMessage(type: DebugMessageType, ...args: any[]): void;
|
|
449
|
+
function onDebugMessageWithContext(type: DebugMessageType, context: {
|
|
450
|
+
conversationId: string | null;
|
|
451
|
+
}, ...args: any[]): void;
|
|
449
452
|
/**
|
|
450
453
|
* Статистика звонка
|
|
451
454
|
*
|
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 */
|
|
@@ -487,6 +493,12 @@ export type ParamsObject = {
|
|
|
487
493
|
* _По умолчанию: `false`_
|
|
488
494
|
*/
|
|
489
495
|
transparentAudio: boolean;
|
|
496
|
+
/**
|
|
497
|
+
* Включить получение обновлений состояния медийной сессии участников
|
|
498
|
+
*
|
|
499
|
+
* _По умолчанию: `false`_
|
|
500
|
+
*/
|
|
501
|
+
enableSessionStateUpdates: boolean;
|
|
490
502
|
/**
|
|
491
503
|
* Получен локальный стрим с камеры/микрофона
|
|
492
504
|
*/
|
|
@@ -730,6 +742,12 @@ export type ParamsObject = {
|
|
|
730
742
|
* Получено отладочное сообщение. Работает только при выключенном режиме отладки
|
|
731
743
|
*/
|
|
732
744
|
onDebugMessage?: (type: DebugMessageType, ...args: any[]) => void;
|
|
745
|
+
/**
|
|
746
|
+
* Получено отладочное сообщение с контекстом звонка. Работает только при выключенном режиме отладки
|
|
747
|
+
*/
|
|
748
|
+
onDebugMessageWithContext?: (type: DebugMessageType, context: {
|
|
749
|
+
conversationId: string | null;
|
|
750
|
+
}, ...args: any[]) => void;
|
|
733
751
|
/**
|
|
734
752
|
* Статистика звонка
|
|
735
753
|
*/
|
|
@@ -963,6 +981,7 @@ export default abstract class Params {
|
|
|
963
981
|
static get audioNack(): boolean;
|
|
964
982
|
static get movieShare(): boolean;
|
|
965
983
|
static get videoTracksCount(): number;
|
|
984
|
+
static get requestDisplayLayoutThrottleMs(): number;
|
|
966
985
|
static get breakVideoPayloadTypes(): boolean;
|
|
967
986
|
static get useCallsToContacts(): boolean;
|
|
968
987
|
static get useParticipantListChunk(): boolean;
|
|
@@ -994,6 +1013,7 @@ export default abstract class Params {
|
|
|
994
1013
|
static get webtransport(): boolean;
|
|
995
1014
|
static get webtransportFF(): boolean;
|
|
996
1015
|
static get transparentAudio(): boolean;
|
|
1016
|
+
static get enableSessionStateUpdates(): boolean;
|
|
997
1017
|
static toJSON(): {
|
|
998
1018
|
apiKey: string;
|
|
999
1019
|
apiEnv: string;
|
|
@@ -1010,6 +1030,7 @@ export default abstract class Params {
|
|
|
1010
1030
|
screenShareCongestionControl: boolean;
|
|
1011
1031
|
screenShareCongestionControlThreshold: number;
|
|
1012
1032
|
videoTracksCount: number;
|
|
1033
|
+
requestDisplayLayoutThrottleMs: number;
|
|
1013
1034
|
asrDataChannel: boolean;
|
|
1014
1035
|
videoMaxHeight: number;
|
|
1015
1036
|
videoMaxWidth: number;
|
|
@@ -1028,5 +1049,6 @@ export default abstract class Params {
|
|
|
1028
1049
|
webtransport: boolean;
|
|
1029
1050
|
webtransportFF: boolean;
|
|
1030
1051
|
transparentAudio: boolean;
|
|
1052
|
+
enableSessionStateUpdates: boolean;
|
|
1031
1053
|
};
|
|
1032
1054
|
}
|