@vkontakte/calls-sdk 2.8.6-dev.3c52c9a0.0 → 2.8.6-dev.3e1160f3.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 +26 -10
- package/abstract/BaseApi.d.ts +2 -1
- package/abstract/BaseSignaling.d.ts +5 -3
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +16 -9
- package/classes/MediaSource.d.ts +1 -0
- package/classes/stat/CodecStatsAggregator.d.ts +19 -0
- package/classes/stat/EventMetricsService.d.ts +9 -0
- package/default/Api.d.ts +2 -1
- package/default/ApiExternal.d.ts +3 -2
- package/default/Signaling.d.ts +8 -4
- package/enums/Stat.d.ts +5 -1
- package/package.json +9 -3
- package/static/ApiTransport.d.ts +3 -2
- package/static/Params.d.ts +52 -16
- package/static/SimulcastInfo.d.ts +1 -1
- package/static/WebRTCUtils.d.ts +4 -0
- package/types/Conversation.d.ts +28 -1
- package/types/ConversationParams.d.ts +14 -1
- package/types/ConversationResponse.d.ts +9 -0
- package/types/ExternalId.d.ts +1 -0
- package/types/FastStart.d.ts +46 -0
- package/types/MovieShare.d.ts +4 -0
- package/types/Params.d.ts +1 -0
- package/types/Participant.d.ts +9 -0
- package/types/PerfStatReporter.d.ts +1 -0
- package/types/SignalingMessage.d.ts +1 -0
- package/types/Statistics.d.ts +147 -0
- package/types/WebTransport.d.ts +25 -0
- package/utils/LengthPrefixed.d.ts +48 -0
- package/utils/Lz4.d.ts +1 -0
- package/utils/VariableLengthInteger.d.ts +18 -0
|
@@ -3,7 +3,6 @@ import type { RGBTuple } from '@vkontakte/calls-vmoji';
|
|
|
3
3
|
import BaseApi from '../abstract/BaseApi';
|
|
4
4
|
import BaseLogger from '../abstract/BaseLogger';
|
|
5
5
|
import { AddParticipantParams } from '../abstract/BaseSignaling';
|
|
6
|
-
import CallType from '../enums/CallType';
|
|
7
6
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
8
7
|
import ConversationOption from '../enums/ConversationOption';
|
|
9
8
|
import MediaOption from '../enums/MediaOption';
|
|
@@ -13,13 +12,13 @@ import UserType from '../enums/UserType';
|
|
|
13
12
|
import { JSONObject } from '../static/Json';
|
|
14
13
|
import { IAsrStartParams, IAsrStopParams } from '../types/Asr';
|
|
15
14
|
import { AudienceModeHandsResponse } from '../types/AudienceMode';
|
|
16
|
-
import { ConversationData } from '../types/Conversation';
|
|
15
|
+
import { ConversationData, ConversationOnStartParams } from '../types/Conversation';
|
|
17
16
|
import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalUserId } from '../types/ExternalId';
|
|
18
17
|
import MediaModifiers from '../types/MediaModifiers';
|
|
19
18
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
20
19
|
import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
|
|
21
20
|
import MuteStates from '../types/MuteStates';
|
|
22
|
-
import { CompositeUserId, IGetParticipantsParameters,
|
|
21
|
+
import { CompositeUserId, IGetParticipantsParameters, ParticipantId, ParticipantStateData } from '../types/Participant';
|
|
23
22
|
import { ParticipantLayout } from '../types/ParticipantLayout';
|
|
24
23
|
import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
25
24
|
import ParticipantPriority from '../types/ParticipantPriority';
|
|
@@ -37,6 +36,7 @@ export default class Conversation extends EventEmitter {
|
|
|
37
36
|
private _state;
|
|
38
37
|
private _participantState;
|
|
39
38
|
private _participants;
|
|
39
|
+
private _pendingParticipants;
|
|
40
40
|
private _transport;
|
|
41
41
|
private _debugInfo;
|
|
42
42
|
private _volumesDetector;
|
|
@@ -66,7 +66,7 @@ export default class Conversation extends EventEmitter {
|
|
|
66
66
|
static current(): Conversation | null;
|
|
67
67
|
static hangupAfterInit(): void;
|
|
68
68
|
static id(): string | null;
|
|
69
|
-
onStart(opponentIds
|
|
69
|
+
onStart({ opponentIds, opponentType, mediaOptions, payload, joiningAllowed, requireAuthToJoin, onlyAdminCanShareMovie, externalIds, onFastStart }: ConversationOnStartParams): Promise<ConversationData>;
|
|
70
70
|
onJoin(joinArgs: {
|
|
71
71
|
conversationId?: string;
|
|
72
72
|
mediaOptions: MediaOption[];
|
|
@@ -78,24 +78,28 @@ export default class Conversation extends EventEmitter {
|
|
|
78
78
|
private _onJoinPart2;
|
|
79
79
|
private _extractExternalRooms;
|
|
80
80
|
private _extractExternalRoomsData;
|
|
81
|
-
onPush(conversationId: string, type?: UserType, peerId?: number): Promise<void>;
|
|
81
|
+
onPush(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string, wsEndpoint?: string): Promise<void>;
|
|
82
82
|
private _isInWaitingHall;
|
|
83
83
|
private _isRestricted;
|
|
84
84
|
private _isAudienceMode;
|
|
85
85
|
private _isAudienceModeListener;
|
|
86
86
|
private _acceptConcurrent;
|
|
87
87
|
private _getMainRoomParticipants;
|
|
88
|
+
private _decodeExternalConversationParams;
|
|
89
|
+
private _logCallStartEvent;
|
|
88
90
|
accept(mediaOptions: MediaOption[]): Promise<ConversationData>;
|
|
89
91
|
decline(): Promise<void>;
|
|
90
92
|
hangup(): Promise<void>;
|
|
91
|
-
addParticipant(participantIds:
|
|
93
|
+
addParticipant(participantIds: ExternalId[], params?: AddParticipantParams): Promise<void>;
|
|
94
|
+
addParticipantLegacy(participantIds: CompositeUserId[], params?: AddParticipantParams): Promise<void>;
|
|
92
95
|
removeParticipant(participantId: CompositeUserId, ban?: boolean): Promise<void>;
|
|
93
96
|
setVolume(volume: number): void;
|
|
94
97
|
updateStatisticsInterval(): void;
|
|
95
98
|
private _openTransport;
|
|
96
99
|
private _close;
|
|
97
|
-
destroy(): void
|
|
100
|
+
destroy(): Promise<void>;
|
|
98
101
|
private _getConversationParams;
|
|
102
|
+
private _setConversationParams;
|
|
99
103
|
private _addGeoParamsToEndpoint;
|
|
100
104
|
/**
|
|
101
105
|
* @throws ErrorEvent
|
|
@@ -189,7 +193,7 @@ export default class Conversation extends EventEmitter {
|
|
|
189
193
|
* @deprecated Use updateDisplayLayout instead
|
|
190
194
|
*/
|
|
191
195
|
changePriorities(priorities: ParticipantPriority[]): Promise<void>;
|
|
192
|
-
changeParticipantState(state:
|
|
196
|
+
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<void>;
|
|
193
197
|
putHandsDown(): Promise<void>;
|
|
194
198
|
requestKeyFrame(participantStreamDescription: ParticipantStreamDescription): Promise<void | SignalingMessage>;
|
|
195
199
|
requestTestMode(consumerCommand: string, producerCommand: string): Promise<void>;
|
|
@@ -249,7 +253,7 @@ export default class Conversation extends EventEmitter {
|
|
|
249
253
|
customData(data: JSONObject, participantId?: ParticipantId | null): Promise<void>;
|
|
250
254
|
createJoinLink(): Promise<string>;
|
|
251
255
|
removeJoinLink(): Promise<undefined>;
|
|
252
|
-
addMovie({ movieId, gain, metadata }: IAddMovieParams): Promise<{
|
|
256
|
+
addMovie({ movieId, gain, metadata, lang }: IAddMovieParams): Promise<{
|
|
253
257
|
movieId: number;
|
|
254
258
|
streamType: string;
|
|
255
259
|
}>;
|
|
@@ -380,6 +384,9 @@ export default class Conversation extends EventEmitter {
|
|
|
380
384
|
private _getMuteStatesForCurrentRoom;
|
|
381
385
|
private _setMuteStatesForRoomId;
|
|
382
386
|
private _forceOpenTransportForAloneInCall;
|
|
387
|
+
private _registerParticipant;
|
|
388
|
+
private _getParticipants;
|
|
389
|
+
private _getParticipant;
|
|
383
390
|
}
|
|
384
391
|
export declare class UpdateDisplayLayoutError extends Error {
|
|
385
392
|
readonly participantErrors: {
|
package/classes/MediaSource.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import MediaSettings, { IVideoDimentions } from '../types/MediaSettings';
|
|
|
5
5
|
import { ScreenCaptureSettings } from '../types/ScreenCaptureSettings';
|
|
6
6
|
export declare const enum MediaSourceEvent {
|
|
7
7
|
SOURCE_CHANGED = "SOURCE_CHANGED",
|
|
8
|
+
SOURCE_READY = "SOURCE_READY",
|
|
8
9
|
TRACK_REPLACED = "TRACK_REPLACED",
|
|
9
10
|
SCREEN_STATUS = "SCREEN_STATUS",
|
|
10
11
|
ANIMOJI_STATUS = "ANIMOJI_STATUS"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { StatItem } from '../../types/Statistics';
|
|
2
|
+
import { TransportTopology } from '../transport/Transport';
|
|
3
|
+
export type CodecKind = 'audio' | 'video';
|
|
4
|
+
/**
|
|
5
|
+
* Собирает стату по использованию кодеков в webrtc
|
|
6
|
+
* Каждый раз когда обновляется кодек или завершается звонок,
|
|
7
|
+
* отправляется репорт об использовании кодеков
|
|
8
|
+
*/
|
|
9
|
+
export declare class CodecStatsAggregator {
|
|
10
|
+
private static _instance;
|
|
11
|
+
private readonly _codecUsages;
|
|
12
|
+
private getCurrentTransportTopology;
|
|
13
|
+
static create(getCurrentTransportTopology: () => TransportTopology | undefined): void;
|
|
14
|
+
static reportUsage(stat: StatItem): void;
|
|
15
|
+
private saveUsage;
|
|
16
|
+
private report;
|
|
17
|
+
static destroy(): void;
|
|
18
|
+
private _destroy;
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import HangupReason from '../HangupReason';
|
|
2
|
+
import { TransportTopology } from '../transport/Transport';
|
|
3
|
+
/**
|
|
4
|
+
* Класс для работы с событийными метриками, обертка для правильной отправки событий
|
|
5
|
+
*/
|
|
6
|
+
export declare class EventMetricsService {
|
|
7
|
+
private static correctHangupReason;
|
|
8
|
+
static sendHangupEvent(reason: HangupReason, topology?: TransportTopology): void;
|
|
9
|
+
}
|
package/default/Api.d.ts
CHANGED
|
@@ -26,8 +26,9 @@ export default class Api extends BaseApi {
|
|
|
26
26
|
}, speakerIds?: OkUserId[]): Promise<ConversationResponse>;
|
|
27
27
|
startConversation(conversationId: string, ids?: OkUserId[], type?: CallType, isVideo?: boolean, payload?: string, joiningAllowed?: boolean, requireAuthToJoin?: boolean, { onlyAdminCanShareMovie }?: {
|
|
28
28
|
onlyAdminCanShareMovie?: boolean;
|
|
29
|
-
}): Promise<ConversationResponse>;
|
|
29
|
+
}, externalIds?: ExternalId[]): Promise<ConversationResponse>;
|
|
30
30
|
protected _ensureUuid(): void;
|
|
31
|
+
deviceId(): string;
|
|
31
32
|
private _preareStartConversationData;
|
|
32
33
|
private _startConversation;
|
|
33
34
|
createJoinLink(conversationId: string): Promise<{
|
package/default/ApiExternal.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { IApiEnv } from '../types/Params';
|
|
1
|
+
import { IAPIBaseUrl, IApiEnv } from '../types/Params';
|
|
2
2
|
export declare class ApiExternal {
|
|
3
3
|
private readonly _uuid;
|
|
4
4
|
private readonly _apiKey;
|
|
5
5
|
private readonly _callToken;
|
|
6
6
|
private readonly _apiEnv;
|
|
7
|
+
private readonly _baseApiUrl;
|
|
7
8
|
private _sessionKey;
|
|
8
|
-
constructor(apiEvn: IApiEnv, apiKey: string, callToken: string);
|
|
9
|
+
constructor(apiEvn: IApiEnv, apiKey: string, callToken: string, baseApiUrl?: IAPIBaseUrl);
|
|
9
10
|
authorize(): Promise<boolean>;
|
|
10
11
|
hangupConversation(conversationId: string): Promise<void>;
|
|
11
12
|
}
|
package/default/Signaling.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import MediaModifiers from '../types/MediaModifiers';
|
|
|
15
15
|
import MediaSettings from '../types/MediaSettings';
|
|
16
16
|
import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
|
|
17
17
|
import MuteStates from '../types/MuteStates';
|
|
18
|
-
import { CompositeUserId, ParticipantId } from '../types/Participant';
|
|
18
|
+
import { CompositeUserId, ParticipantId, ParticipantStateData } from '../types/Participant';
|
|
19
19
|
import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
|
|
20
20
|
import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
|
|
21
21
|
import { StreamDescriptionString } from '../types/ParticipantStreamDescription';
|
|
@@ -33,6 +33,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
33
33
|
private responseHandlers;
|
|
34
34
|
private reconnectCount;
|
|
35
35
|
private endpoint;
|
|
36
|
+
private wtEndpoint;
|
|
36
37
|
protected conversationResolve: Function | null;
|
|
37
38
|
protected conversationReject: Function | null;
|
|
38
39
|
private connected;
|
|
@@ -57,6 +58,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
57
58
|
private static _getCapabilityFlags;
|
|
58
59
|
get ready(): boolean;
|
|
59
60
|
setEndpoint(endpoint: string): void;
|
|
61
|
+
setWebTransportEndpoint(endpoint: string | null): void;
|
|
60
62
|
setConversationId(conversationId: string): void;
|
|
61
63
|
setParticipantIdRegistry(participantIdRegistry: ParticipantIdRegistry): void;
|
|
62
64
|
setProducerNotificationDataChannel(dataChannel: RTCDataChannel): void;
|
|
@@ -86,9 +88,10 @@ export default class Signaling extends BaseSignaling {
|
|
|
86
88
|
sendSdp(participantId: ParticipantId, sdp: RTCSessionDescriptionInit, extraPayload?: Record<string, any>): Promise<SignalingMessage>;
|
|
87
89
|
acceptCall(mediaSettings: MediaSettings): Promise<SignalingMessage>;
|
|
88
90
|
changeMediaSettings(mediaSettings: MediaSettings): Promise<SignalingMessage>;
|
|
89
|
-
changeParticipantState(state:
|
|
91
|
+
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<SignalingMessage>;
|
|
90
92
|
putHandsDown(): Promise<SignalingMessage>;
|
|
91
|
-
addParticipant(
|
|
93
|
+
addParticipant(externalIds: CompositeUserId[], params?: AddParticipantParams): Promise<SignalingMessage>;
|
|
94
|
+
addParticipantLegacy(participantIds: CompositeUserId[], params?: AddParticipantParams): Promise<SignalingMessage>;
|
|
92
95
|
removeParticipant(participantId: CompositeUserId, ban?: boolean): Promise<SignalingMessage>;
|
|
93
96
|
allocateConsumer(description: RTCSessionDescription | null, capabilities: {
|
|
94
97
|
[key: string]: number | boolean | string;
|
|
@@ -160,7 +163,7 @@ export default class Signaling extends BaseSignaling {
|
|
|
160
163
|
startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
|
|
161
164
|
stopAsr(params?: IAsrStopParams): Promise<SignalingMessage>;
|
|
162
165
|
requestAsr(request: boolean): Promise<SignalingMessage>;
|
|
163
|
-
protected _connect(connectionType: SignalingConnectionType): void;
|
|
166
|
+
protected _connect(connectionType: SignalingConnectionType, useWebTransport: boolean): void;
|
|
164
167
|
protected _disconnect(code?: number): void;
|
|
165
168
|
private _onOpen;
|
|
166
169
|
private _onMessage;
|
|
@@ -182,4 +185,5 @@ export default class Signaling extends BaseSignaling {
|
|
|
182
185
|
protected _stopWaitConnectionMessage(): void;
|
|
183
186
|
private _startDoctor;
|
|
184
187
|
private _stopDoctor;
|
|
188
|
+
private isWebTransportAvailable;
|
|
185
189
|
}
|
package/enums/Stat.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ declare const enum Stat {
|
|
|
7
7
|
ICE_RESTART = "callIceRestart",
|
|
8
8
|
PUSH = "callPush",
|
|
9
9
|
OUTGOING_CALL = "callStart",
|
|
10
|
+
CALL_FINISH = "call_finish",
|
|
10
11
|
OUTGOING_MULTIPARTY_CALL = "callStartMultiparty",
|
|
11
12
|
JOIN_CONVERSATION = "callJoinConversation",
|
|
12
13
|
ACCEPTED_OUTGOING = "callAcceptedOutgoing",
|
|
@@ -14,6 +15,7 @@ declare const enum Stat {
|
|
|
14
15
|
DECLINE_INCOMING = "callDeclineIncoming",
|
|
15
16
|
ACCEPT_CONCURRENT = "callAcceptConcurrent",
|
|
16
17
|
HANGUP = "callHangup",
|
|
18
|
+
CODEC_USAGE = "codec_usage",
|
|
17
19
|
MEDIA_STATUS = "callMediaStatus",
|
|
18
20
|
DEVICE_CHANGED = "callDeviceChanged",
|
|
19
21
|
SOCKET_ACTION = "callSocketAction",
|
|
@@ -35,6 +37,8 @@ declare const enum Stat {
|
|
|
35
37
|
FIRST_MEDIA_RECEIVED = "first_media_received",
|
|
36
38
|
CALL_EVENTUAL_STAT = "callEventualStat",
|
|
37
39
|
CALL_DECLINED_OR_HANGED_LOCALLY = "CallDeclinedOrHangedLocally",
|
|
38
|
-
USER_FEEDBACK_RECEIVED = "UserFeedbackReceived"
|
|
40
|
+
USER_FEEDBACK_RECEIVED = "UserFeedbackReceived",
|
|
41
|
+
CALL_START = "call_start",
|
|
42
|
+
WEBTRANSPORT_CONNECTED = "webtransport_connected"
|
|
39
43
|
}
|
|
40
44
|
export default Stat;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/calls-sdk",
|
|
3
|
-
"version": "2.8.6-dev.
|
|
3
|
+
"version": "2.8.6-dev.3e1160f3.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,13 +14,19 @@
|
|
|
14
14
|
"**/*.d.ts"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"@fails-components/webtransport": "^1.3.0",
|
|
18
|
+
"@fails-components/webtransport-transport-http3-quiche": "^1.3.0",
|
|
17
19
|
"@vkontakte/calls-audio-effects": "1.2.8",
|
|
18
20
|
"@vkontakte/calls-video-effects": "2.2.3-beta.5",
|
|
19
|
-
"@vkontakte/calls-vmoji": "1.0.10-beta.
|
|
21
|
+
"@vkontakte/calls-vmoji": "1.0.10-beta.17",
|
|
20
22
|
"@vkontakte/libvpx": "2.0.9",
|
|
21
23
|
"bit-buffer": "0.2.5",
|
|
24
|
+
"fflate": "^0.8.2",
|
|
22
25
|
"messagepack": "1.1.12",
|
|
23
26
|
"simple-ebml-builder": "0.2.2",
|
|
24
27
|
"webrtc-adapter": "7.7.0"
|
|
25
|
-
}
|
|
28
|
+
},
|
|
29
|
+
"workspaces": [
|
|
30
|
+
"workspaces/sandbox"
|
|
31
|
+
]
|
|
26
32
|
}
|
package/static/ApiTransport.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { IApiEnv } from '../types/Params';
|
|
2
|
-
export declare function
|
|
1
|
+
import { IAPIBaseUrl, IApiEnv } from '../types/Params';
|
|
2
|
+
export declare function resetApiEndpoint(): void;
|
|
3
|
+
export declare function _resolveApiEndpoint(apiBaseUrl?: IAPIBaseUrl, apiEnv?: IApiEnv): Promise<string>;
|
|
3
4
|
export declare function sendBeakon(method: string, params?: {
|
|
4
5
|
[key: string]: any;
|
|
5
6
|
}, noSession?: boolean): Promise<void>;
|
package/static/Params.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ import MuteStates from '../types/MuteStates';
|
|
|
22
22
|
import { ParticipantsStateList, ParticipantStateMapped } from '../types/Participant';
|
|
23
23
|
import { MediaType } from '../types/ParticipantStreamDescription';
|
|
24
24
|
import { IRoomId, Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
|
|
25
|
-
import { IApiEnv } from '../types/Params';
|
|
25
|
+
import { IAPIBaseUrl, IApiEnv } from '../types/Params';
|
|
26
26
|
import { VmojiError } from '../types/Vmoji';
|
|
27
27
|
import { DebugMessageType } from './Debug';
|
|
28
28
|
import { ParticipantStatus } from './External';
|
|
@@ -48,6 +48,12 @@ export type ParamsObject = {
|
|
|
48
48
|
apiKey: string;
|
|
49
49
|
/** @hidden */
|
|
50
50
|
apiEnv: IApiEnv;
|
|
51
|
+
/**
|
|
52
|
+
* Базовый урл для запросов к API одноклассников
|
|
53
|
+
* Позволяет задать значение независимо от apiEnv
|
|
54
|
+
* @hidden
|
|
55
|
+
*/
|
|
56
|
+
apiBaseUrl: IAPIBaseUrl;
|
|
51
57
|
/** @hidden */
|
|
52
58
|
apiAuth?: {
|
|
53
59
|
sessionKey?: string;
|
|
@@ -76,6 +82,8 @@ export type ParamsObject = {
|
|
|
76
82
|
/** @hidden */
|
|
77
83
|
wssBase: string;
|
|
78
84
|
/** @hidden */
|
|
85
|
+
wtsBase: string;
|
|
86
|
+
/** @hidden */
|
|
79
87
|
wssToken: string;
|
|
80
88
|
/** @hidden */
|
|
81
89
|
signalingReconnectDelay: number;
|
|
@@ -455,6 +463,38 @@ export type ParamsObject = {
|
|
|
455
463
|
* _По умолчанию: `false`_
|
|
456
464
|
*/
|
|
457
465
|
enableLogPerfStatReport: boolean;
|
|
466
|
+
/**
|
|
467
|
+
* Поддержка переключения качества видео в зависимости от сети
|
|
468
|
+
* Только для режима p2p
|
|
469
|
+
*
|
|
470
|
+
* _По умолчанию: `false`_
|
|
471
|
+
*/
|
|
472
|
+
switchVideoAtBadNetwork: boolean;
|
|
473
|
+
/**
|
|
474
|
+
* Включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами
|
|
475
|
+
*
|
|
476
|
+
* _По умолчанию: `false`_
|
|
477
|
+
*/
|
|
478
|
+
enableVideoEffectsFpsDegradation: boolean;
|
|
479
|
+
/**
|
|
480
|
+
* Включить поддержку simulcast на отправке
|
|
481
|
+
*
|
|
482
|
+
* _По умолчанию: `false`_
|
|
483
|
+
*/
|
|
484
|
+
simulcast: boolean;
|
|
485
|
+
/**
|
|
486
|
+
* Включить поддержку webtransport для сигналинга
|
|
487
|
+
*
|
|
488
|
+
* _По умолчанию: `false`_
|
|
489
|
+
*/
|
|
490
|
+
webtransport: boolean;
|
|
491
|
+
/**
|
|
492
|
+
* Включить поддержку webtransport для сигналинга в FireFox
|
|
493
|
+
* Отдельная ручка, так как есть проблемы сейчас с FF
|
|
494
|
+
*
|
|
495
|
+
* _По умолчанию: `false`_
|
|
496
|
+
*/
|
|
497
|
+
webtransportFF: boolean;
|
|
458
498
|
/**
|
|
459
499
|
* Получен локальный стрим с камеры/микрофона
|
|
460
500
|
*/
|
|
@@ -828,21 +868,6 @@ export type ParamsObject = {
|
|
|
828
868
|
* Собеседник подключился к сигналлингу
|
|
829
869
|
*/
|
|
830
870
|
onPeerRegistered?: () => void;
|
|
831
|
-
/**
|
|
832
|
-
* Поддержка переключения качества видео в зависимости от сети
|
|
833
|
-
* Только для режима p2p
|
|
834
|
-
*
|
|
835
|
-
* _По умолчанию: `false`_
|
|
836
|
-
*/
|
|
837
|
-
switchVideoAtBadNetwork: boolean;
|
|
838
|
-
/** включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами */
|
|
839
|
-
enableVideoEffectsFpsDegradation: boolean;
|
|
840
|
-
/**
|
|
841
|
-
* Включить поддержку simulcast на отправке
|
|
842
|
-
*
|
|
843
|
-
* _По умолчанию: `false`_
|
|
844
|
-
*/
|
|
845
|
-
simulcast: boolean;
|
|
846
871
|
};
|
|
847
872
|
export default abstract class Params {
|
|
848
873
|
private static _params;
|
|
@@ -866,6 +891,8 @@ export default abstract class Params {
|
|
|
866
891
|
static get device(): string;
|
|
867
892
|
static get apiKey(): string;
|
|
868
893
|
static get apiEnv(): IApiEnv;
|
|
894
|
+
static get apiBaseUrl(): IAPIBaseUrl;
|
|
895
|
+
static set apiBaseUrl(apiBaseUrl: IAPIBaseUrl);
|
|
869
896
|
static apiEndpoint(apiEnv?: IApiEnv): string;
|
|
870
897
|
static get authToken(): string;
|
|
871
898
|
static set authToken(value: string);
|
|
@@ -877,6 +904,8 @@ export default abstract class Params {
|
|
|
877
904
|
static set iceServers(value: IceServer[]);
|
|
878
905
|
static get wssBase(): string;
|
|
879
906
|
static set wssBase(value: string);
|
|
907
|
+
static get wtsBase(): string;
|
|
908
|
+
static set wtsBase(value: string);
|
|
880
909
|
static get wssToken(): string;
|
|
881
910
|
static set wssToken(value: string);
|
|
882
911
|
static get signalingReconnectDelay(): number;
|
|
@@ -970,6 +999,10 @@ export default abstract class Params {
|
|
|
970
999
|
static get enableVideoEffectsFpsDegradation(): boolean;
|
|
971
1000
|
static get simulcast(): boolean;
|
|
972
1001
|
static set simulcast(value: boolean);
|
|
1002
|
+
static get webtransport(): boolean;
|
|
1003
|
+
static set webtransport(value: boolean);
|
|
1004
|
+
static get webtransportFF(): boolean;
|
|
1005
|
+
static set webtransportFF(value: boolean);
|
|
973
1006
|
static toJSON(): {
|
|
974
1007
|
apiKey: string;
|
|
975
1008
|
apiEnv: string;
|
|
@@ -998,5 +1031,8 @@ export default abstract class Params {
|
|
|
998
1031
|
clientStatsPlatform: string;
|
|
999
1032
|
consumerScreenDataChannelPacketSize: number;
|
|
1000
1033
|
switchVideoAtBadNetwork: boolean;
|
|
1034
|
+
simulcast: boolean;
|
|
1035
|
+
webtransport: boolean;
|
|
1036
|
+
webtransportFF: boolean;
|
|
1001
1037
|
};
|
|
1002
1038
|
}
|
|
@@ -5,8 +5,8 @@ export declare const SIMULCAST_DEFAULT: {
|
|
|
5
5
|
WIDTH: number;
|
|
6
6
|
BITRATE: number;
|
|
7
7
|
};
|
|
8
|
+
export declare const SIMULCAST_SCALABILITY_MODE = "L1T2";
|
|
8
9
|
export declare const MAP_RID_TO_SCALE_RESOLUTION_DOWN_BY: Record<string, number>;
|
|
9
|
-
export declare function getSimulcastInfo(stats?: RTCOutboundRtpStreamStats[], bitrates?: VideoBitrateSettings[]): ISimulcastInfo;
|
|
10
10
|
export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
|
|
11
11
|
export declare function findBitrateAsc(maxDimension: number, bitrates: VideoBitrateSettings[]): number;
|
|
12
12
|
export declare function calculateSimulcastInfo(width?: number, height?: number, bitrates?: VideoBitrateSettings[]): ISimulcastInfo;
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -143,6 +143,10 @@ declare namespace WebRTCUtils {
|
|
|
143
143
|
* Может ли браузер делать H264 приоритетным
|
|
144
144
|
*/
|
|
145
145
|
function canPreferH264(): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Некоторые браузеры (Firefox, Safari) некорректно поддерживают симулкаст
|
|
148
|
+
*/
|
|
149
|
+
function isSimulcastSupportedByBrowser(): boolean;
|
|
146
150
|
/**
|
|
147
151
|
* Имя операционной системы
|
|
148
152
|
*/
|
package/types/Conversation.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { TransportTopology } from '../classes/transport/Transport';
|
|
2
2
|
import CallDirection from '../enums/CallDirection';
|
|
3
|
+
import CallType from '../enums/CallType';
|
|
3
4
|
import ConversationFeature from '../enums/ConversationFeature';
|
|
4
5
|
import ConversationOption from '../enums/ConversationOption';
|
|
6
|
+
import MediaOption from '../enums/MediaOption';
|
|
5
7
|
import UserRole from '../enums/UserRole';
|
|
6
8
|
import { AsrInfo } from './Asr';
|
|
7
9
|
import { IFeaturesPerRole } from './ConversationFeature';
|
|
8
|
-
import { ExternalParticipantId } from './ExternalId';
|
|
10
|
+
import { ExternalId, ExternalParticipantId } from './ExternalId';
|
|
11
|
+
import { FastStartHandler } from './FastStart';
|
|
9
12
|
import MediaModifiers from './MediaModifiers';
|
|
10
13
|
import MuteStates from './MuteStates';
|
|
11
14
|
import { OkUserId, ParticipantId } from './Participant';
|
|
@@ -68,3 +71,27 @@ export type ConversationData = {
|
|
|
68
71
|
/** @hidden */
|
|
69
72
|
urlSharingInfoByRoom: Map<IRoomId, RoomUrlSharingInfo>;
|
|
70
73
|
};
|
|
74
|
+
export type ConversationOnStartParams = {
|
|
75
|
+
opponentIds?: OkUserId[];
|
|
76
|
+
opponentType: CallType;
|
|
77
|
+
mediaOptions: MediaOption[];
|
|
78
|
+
payload?: string;
|
|
79
|
+
joiningAllowed?: boolean;
|
|
80
|
+
requireAuthToJoin?: boolean;
|
|
81
|
+
onlyAdminCanShareMovie?: boolean;
|
|
82
|
+
externalIds?: ExternalId[];
|
|
83
|
+
onFastStart?: FastStartHandler;
|
|
84
|
+
};
|
|
85
|
+
export type StartConversationParams = {
|
|
86
|
+
opponentIds?: OkUserId[];
|
|
87
|
+
opponentType: CallType;
|
|
88
|
+
direction: CallDirection;
|
|
89
|
+
mediaOptions: MediaOption[];
|
|
90
|
+
payload?: string;
|
|
91
|
+
joiningAllowed?: boolean;
|
|
92
|
+
requireAuthToJoin?: boolean;
|
|
93
|
+
onlyAdminCanShareMovie?: boolean;
|
|
94
|
+
externalIds?: ExternalId[];
|
|
95
|
+
startedTime: number;
|
|
96
|
+
onFastStart?: FastStartHandler;
|
|
97
|
+
};
|
|
@@ -2,6 +2,7 @@ import IceServer from './IceServer';
|
|
|
2
2
|
type ConversationParams = {
|
|
3
3
|
token: string;
|
|
4
4
|
endpoint: string;
|
|
5
|
+
wt_endpoint?: string;
|
|
5
6
|
turn_server?: IceServer;
|
|
6
7
|
stun_server?: IceServer;
|
|
7
8
|
client_type?: string;
|
|
@@ -10,6 +11,18 @@ type ConversationParams = {
|
|
|
10
11
|
isp_as_org?: string;
|
|
11
12
|
loc_cc?: string;
|
|
12
13
|
loc_reg?: string;
|
|
13
|
-
external_user_type
|
|
14
|
+
external_user_type?: string;
|
|
15
|
+
};
|
|
16
|
+
export type ExternalConversationParams = {
|
|
17
|
+
et: number;
|
|
18
|
+
iv: boolean;
|
|
19
|
+
srcp: string;
|
|
20
|
+
stne: string;
|
|
21
|
+
tkn: string;
|
|
22
|
+
trne: string;
|
|
23
|
+
trnp: string;
|
|
24
|
+
trnu: string;
|
|
25
|
+
wse: string;
|
|
26
|
+
wte: string;
|
|
14
27
|
};
|
|
15
28
|
export default ConversationParams;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import HangupType from '../enums/HangupType';
|
|
2
|
+
import IceServer from './IceServer';
|
|
2
3
|
/**
|
|
3
4
|
* Начальные данные создания звонка
|
|
4
5
|
* @hidden
|
|
@@ -12,6 +13,10 @@ type ConversationResponse = {
|
|
|
12
13
|
* URL для подключения
|
|
13
14
|
*/
|
|
14
15
|
endpoint: string;
|
|
16
|
+
/**
|
|
17
|
+
* URL для подключения по WebTransport
|
|
18
|
+
*/
|
|
19
|
+
wt_endpoint?: string;
|
|
15
20
|
/**
|
|
16
21
|
* Токен комнаты для подключения к звонку по ссылке
|
|
17
22
|
*/
|
|
@@ -27,5 +32,9 @@ type ConversationResponse = {
|
|
|
27
32
|
* Порядковый номер, присвоенный устройству при входе в звонок
|
|
28
33
|
*/
|
|
29
34
|
device_idx?: number;
|
|
35
|
+
turn_server?: IceServer;
|
|
36
|
+
stun_server?: IceServer;
|
|
37
|
+
client_type?: string;
|
|
38
|
+
token: string;
|
|
30
39
|
};
|
|
31
40
|
export default ConversationResponse;
|
package/types/ExternalId.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare namespace ExternalIdUtils {
|
|
|
19
19
|
function fromId(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalParticipantId;
|
|
20
20
|
function fromSignalingParticipant(participant: SignalingMessage.Participant, useDecorative?: boolean): ExternalParticipantId | undefined;
|
|
21
21
|
function fromSignaling(signalingId: SignalingMessage.ExternalId, deviceIdx?: number): ExternalParticipantId;
|
|
22
|
+
function toSignaling(externalId: ExternalId): string;
|
|
22
23
|
function toString(externalId: ExternalId): ExternalIdString;
|
|
23
24
|
function fromIdToString(id: ExternalUserId, type?: ExternalIdType, deviceIdx?: number): ExternalIdString;
|
|
24
25
|
function fromString(stringId: ExternalIdString): ExternalParticipantId;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { HangupType, IceServer } from '../CallsSDK';
|
|
2
|
+
import CallType from '../enums/CallType';
|
|
3
|
+
import MediaOption from '../enums/MediaOption';
|
|
4
|
+
import { ExternalId } from './ExternalId';
|
|
5
|
+
/**
|
|
6
|
+
* Параметры, которые нужно вернуть для создания fastStart
|
|
7
|
+
*/
|
|
8
|
+
export interface InternalParams {
|
|
9
|
+
platform: string;
|
|
10
|
+
sdkVersion: string;
|
|
11
|
+
clientAppKey: string;
|
|
12
|
+
deviceId: string;
|
|
13
|
+
protocolVersion: number;
|
|
14
|
+
domainId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface InternalCallerParams {
|
|
17
|
+
id: ID;
|
|
18
|
+
isConcurrent: boolean;
|
|
19
|
+
endpoint: string;
|
|
20
|
+
wtEndpoint: string;
|
|
21
|
+
clientType: string;
|
|
22
|
+
turn: IceServer;
|
|
23
|
+
stun: IceServer;
|
|
24
|
+
}
|
|
25
|
+
export interface ID {
|
|
26
|
+
internal: number;
|
|
27
|
+
external: string;
|
|
28
|
+
}
|
|
29
|
+
export interface FastStartParams {
|
|
30
|
+
conversationId: string;
|
|
31
|
+
internalParams: string;
|
|
32
|
+
externalIds?: ExternalId[];
|
|
33
|
+
opponentType: CallType;
|
|
34
|
+
mediaOptions: MediaOption[];
|
|
35
|
+
joiningAllowed?: boolean;
|
|
36
|
+
requireAuthToJoin?: boolean;
|
|
37
|
+
isVideo?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface FastStartResponse {
|
|
40
|
+
internalCallerParams: string;
|
|
41
|
+
rejectedParticipants: {
|
|
42
|
+
id: string;
|
|
43
|
+
status: HangupType;
|
|
44
|
+
}[];
|
|
45
|
+
}
|
|
46
|
+
export type FastStartHandler = (params: FastStartParams) => Promise<FastStartResponse>;
|
package/types/MovieShare.d.ts
CHANGED
|
@@ -47,6 +47,10 @@ export interface IAddMovieParams {
|
|
|
47
47
|
* MetaData ролика
|
|
48
48
|
*/
|
|
49
49
|
metadata?: IMovieMetaData;
|
|
50
|
+
/**
|
|
51
|
+
* Локаль пользователя, необходимо для корректного перевода, если ролик с дефолтным названием
|
|
52
|
+
*/
|
|
53
|
+
lang?: string;
|
|
50
54
|
}
|
|
51
55
|
export type ISharedMovieStateResponse = [
|
|
52
56
|
number,
|
package/types/Params.d.ts
CHANGED
package/types/Participant.d.ts
CHANGED
|
@@ -86,3 +86,12 @@ export interface Participant {
|
|
|
86
86
|
export interface IGetParticipantsParameters {
|
|
87
87
|
externalIds: ExternalId[];
|
|
88
88
|
}
|
|
89
|
+
export type ParticipantStateDataKey = 'hand' | 'drat';
|
|
90
|
+
export declare enum ParticipantStateDataValue {
|
|
91
|
+
OFF = "0",
|
|
92
|
+
ON = "1"
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Список состояний в виде ключ-значение. Максимальная длина ключей и значений - 5 символов. Пустые значения будут пропущены
|
|
96
|
+
*/
|
|
97
|
+
export type ParticipantStateData = Partial<Record<ParticipantStateDataKey, ParticipantStateDataValue>>;
|