@vkontakte/calls-sdk 2.8.6-dev.0edc7591.0 → 2.8.6-dev.15af4b30.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 +23 -8
- 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 +11 -8
- 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/Signaling.d.ts +8 -4
- package/enums/Stat.d.ts +5 -1
- package/package.json +9 -3
- package/static/Params.d.ts +43 -15
- package/static/SimulcastInfo.d.ts +1 -0
- package/static/WebRTCUtils.d.ts +4 -0
- package/types/Conversation.d.ts +28 -1
- package/types/ConversationParams.d.ts +13 -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/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 +35 -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';
|
|
@@ -66,7 +65,7 @@ export default class Conversation extends EventEmitter {
|
|
|
66
65
|
static current(): Conversation | null;
|
|
67
66
|
static hangupAfterInit(): void;
|
|
68
67
|
static id(): string | null;
|
|
69
|
-
onStart(opponentIds
|
|
68
|
+
onStart({ opponentIds, opponentType, mediaOptions, payload, joiningAllowed, requireAuthToJoin, onlyAdminCanShareMovie, externalIds, onFastStart }: ConversationOnStartParams): Promise<ConversationData>;
|
|
70
69
|
onJoin(joinArgs: {
|
|
71
70
|
conversationId?: string;
|
|
72
71
|
mediaOptions: MediaOption[];
|
|
@@ -78,17 +77,20 @@ export default class Conversation extends EventEmitter {
|
|
|
78
77
|
private _onJoinPart2;
|
|
79
78
|
private _extractExternalRooms;
|
|
80
79
|
private _extractExternalRoomsData;
|
|
81
|
-
onPush(conversationId: string, type?: UserType, peerId?: number): Promise<void>;
|
|
80
|
+
onPush(conversationId: string, type?: UserType, peerId?: number, conversationParams?: string): Promise<void>;
|
|
82
81
|
private _isInWaitingHall;
|
|
83
82
|
private _isRestricted;
|
|
84
83
|
private _isAudienceMode;
|
|
85
84
|
private _isAudienceModeListener;
|
|
86
85
|
private _acceptConcurrent;
|
|
87
86
|
private _getMainRoomParticipants;
|
|
87
|
+
private _decodeExternalConversationParams;
|
|
88
|
+
private _logCallStartEvent;
|
|
88
89
|
accept(mediaOptions: MediaOption[]): Promise<ConversationData>;
|
|
89
90
|
decline(): Promise<void>;
|
|
90
91
|
hangup(): Promise<void>;
|
|
91
|
-
addParticipant(participantIds:
|
|
92
|
+
addParticipant(participantIds: ExternalId[], params?: AddParticipantParams): Promise<void>;
|
|
93
|
+
addParticipantLegacy(participantIds: CompositeUserId[], params?: AddParticipantParams): Promise<void>;
|
|
92
94
|
removeParticipant(participantId: CompositeUserId, ban?: boolean): Promise<void>;
|
|
93
95
|
setVolume(volume: number): void;
|
|
94
96
|
updateStatisticsInterval(): void;
|
|
@@ -96,6 +98,7 @@ export default class Conversation extends EventEmitter {
|
|
|
96
98
|
private _close;
|
|
97
99
|
destroy(): void;
|
|
98
100
|
private _getConversationParams;
|
|
101
|
+
private _setConversationParams;
|
|
99
102
|
private _addGeoParamsToEndpoint;
|
|
100
103
|
/**
|
|
101
104
|
* @throws ErrorEvent
|
|
@@ -189,7 +192,7 @@ export default class Conversation extends EventEmitter {
|
|
|
189
192
|
* @deprecated Use updateDisplayLayout instead
|
|
190
193
|
*/
|
|
191
194
|
changePriorities(priorities: ParticipantPriority[]): Promise<void>;
|
|
192
|
-
changeParticipantState(state:
|
|
195
|
+
changeParticipantState(state: ParticipantStateData, compositeUserId?: CompositeUserId): Promise<void>;
|
|
193
196
|
putHandsDown(): Promise<void>;
|
|
194
197
|
requestKeyFrame(participantStreamDescription: ParticipantStreamDescription): Promise<void | SignalingMessage>;
|
|
195
198
|
requestTestMode(consumerCommand: string, producerCommand: string): Promise<void>;
|
|
@@ -249,7 +252,7 @@ export default class Conversation extends EventEmitter {
|
|
|
249
252
|
customData(data: JSONObject, participantId?: ParticipantId | null): Promise<void>;
|
|
250
253
|
createJoinLink(): Promise<string>;
|
|
251
254
|
removeJoinLink(): Promise<undefined>;
|
|
252
|
-
addMovie({ movieId, gain, metadata }: IAddMovieParams): Promise<{
|
|
255
|
+
addMovie({ movieId, gain, metadata, lang }: IAddMovieParams): Promise<{
|
|
253
256
|
movieId: number;
|
|
254
257
|
streamType: string;
|
|
255
258
|
}>;
|
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/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.15af4b30.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/Params.d.ts
CHANGED
|
@@ -82,6 +82,8 @@ export type ParamsObject = {
|
|
|
82
82
|
/** @hidden */
|
|
83
83
|
wssBase: string;
|
|
84
84
|
/** @hidden */
|
|
85
|
+
wtsBase: string;
|
|
86
|
+
/** @hidden */
|
|
85
87
|
wssToken: string;
|
|
86
88
|
/** @hidden */
|
|
87
89
|
signalingReconnectDelay: number;
|
|
@@ -461,6 +463,38 @@ export type ParamsObject = {
|
|
|
461
463
|
* _По умолчанию: `false`_
|
|
462
464
|
*/
|
|
463
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;
|
|
464
498
|
/**
|
|
465
499
|
* Получен локальный стрим с камеры/микрофона
|
|
466
500
|
*/
|
|
@@ -834,21 +868,6 @@ export type ParamsObject = {
|
|
|
834
868
|
* Собеседник подключился к сигналлингу
|
|
835
869
|
*/
|
|
836
870
|
onPeerRegistered?: () => void;
|
|
837
|
-
/**
|
|
838
|
-
* Поддержка переключения качества видео в зависимости от сети
|
|
839
|
-
* Только для режима p2p
|
|
840
|
-
*
|
|
841
|
-
* _По умолчанию: `false`_
|
|
842
|
-
*/
|
|
843
|
-
switchVideoAtBadNetwork: boolean;
|
|
844
|
-
/** включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами */
|
|
845
|
-
enableVideoEffectsFpsDegradation: boolean;
|
|
846
|
-
/**
|
|
847
|
-
* Включить поддержку simulcast на отправке
|
|
848
|
-
*
|
|
849
|
-
* _По умолчанию: `false`_
|
|
850
|
-
*/
|
|
851
|
-
simulcast: boolean;
|
|
852
871
|
};
|
|
853
872
|
export default abstract class Params {
|
|
854
873
|
private static _params;
|
|
@@ -885,6 +904,8 @@ export default abstract class Params {
|
|
|
885
904
|
static set iceServers(value: IceServer[]);
|
|
886
905
|
static get wssBase(): string;
|
|
887
906
|
static set wssBase(value: string);
|
|
907
|
+
static get wtsBase(): string;
|
|
908
|
+
static set wtsBase(value: string);
|
|
888
909
|
static get wssToken(): string;
|
|
889
910
|
static set wssToken(value: string);
|
|
890
911
|
static get signalingReconnectDelay(): number;
|
|
@@ -978,6 +999,10 @@ export default abstract class Params {
|
|
|
978
999
|
static get enableVideoEffectsFpsDegradation(): boolean;
|
|
979
1000
|
static get simulcast(): boolean;
|
|
980
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);
|
|
981
1006
|
static toJSON(): {
|
|
982
1007
|
apiKey: string;
|
|
983
1008
|
apiEnv: string;
|
|
@@ -1006,5 +1031,8 @@ export default abstract class Params {
|
|
|
1006
1031
|
clientStatsPlatform: string;
|
|
1007
1032
|
consumerScreenDataChannelPacketSize: number;
|
|
1008
1033
|
switchVideoAtBadNetwork: boolean;
|
|
1034
|
+
simulcast: boolean;
|
|
1035
|
+
webtransport: boolean;
|
|
1036
|
+
webtransportFF: boolean;
|
|
1009
1037
|
};
|
|
1010
1038
|
}
|
|
@@ -5,6 +5,7 @@ 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
10
|
export declare function isEqualSimulcastInfo(si1: ISimulcastInfo | null, si2: ISimulcastInfo | null): boolean;
|
|
10
11
|
export declare function findBitrateAsc(maxDimension: number, bitrates: VideoBitrateSettings[]): number;
|
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,17 @@ 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;
|
|
14
26
|
};
|
|
15
27
|
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/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>>;
|