@vkontakte/calls-sdk 2.6.2-dev.f69c395.0 → 2.6.3-dev.1fd3364.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CallsSDK.d.ts +82 -17
  2. package/abstract/BaseApi.d.ts +7 -3
  3. package/abstract/BaseSignaling.d.ts +24 -6
  4. package/calls-sdk.cjs.js +9 -9
  5. package/calls-sdk.esm.js +9 -9
  6. package/classes/Conversation.d.ts +80 -11
  7. package/classes/MediaSource.d.ts +7 -2
  8. package/classes/ProducerCommandSerializationService.d.ts +3 -1
  9. package/classes/asr/AsrCommandSerializer.d.ts +3 -0
  10. package/classes/asr/AsrReceiver.d.ts +12 -0
  11. package/classes/codec/IEncoder.d.ts +3 -0
  12. package/classes/codec/LibVPxEncoder.d.ts +4 -1
  13. package/classes/codec/Types.d.ts +6 -1
  14. package/classes/codec/WebCodecsEncoder.d.ts +4 -1
  15. package/classes/screenshare/PacketHistory.d.ts +30 -0
  16. package/classes/screenshare/PacketHistory.test.d.ts +1 -0
  17. package/classes/screenshare/ScreenCaptureSender.d.ts +15 -1
  18. package/classes/screenshare/ScreenCongestionControl.d.ts +25 -0
  19. package/classes/screenshare/SharingStatReport.d.ts +6 -0
  20. package/classes/screenshare/Utils.d.ts +5 -0
  21. package/classes/transport/ServerTransport.d.ts +6 -1
  22. package/classes/transport/Transport.d.ts +3 -1
  23. package/default/Api.d.ts +12 -3
  24. package/default/Api.test.d.ts +1 -0
  25. package/default/Signaling.d.ts +28 -6
  26. package/enums/ConversationFeature.d.ts +2 -1
  27. package/enums/ConversationOption.d.ts +3 -1
  28. package/enums/DataChannelLabel.d.ts +2 -1
  29. package/enums/HangupType.d.ts +3 -1
  30. package/enums/LiveStatus.d.ts +12 -0
  31. package/enums/MediaOption.d.ts +3 -1
  32. package/enums/RoomsEventType.d.ts +6 -0
  33. package/enums/SignalingCommandType.d.ts +12 -1
  34. package/enums/SignalingNotification.d.ts +12 -1
  35. package/package.json +1 -1
  36. package/static/External.d.ts +122 -8
  37. package/static/Params.d.ts +129 -11
  38. package/static/Polyfills.d.ts +7 -0
  39. package/static/Utils.d.ts +2 -1
  40. package/static/WebRTCUtils.d.ts +44 -11
  41. package/static/WebRTCUtils.test.d.ts +1 -0
  42. package/types/Asr.d.ts +11 -0
  43. package/types/Conversation.d.ts +1 -0
  44. package/types/ConversationFeature.d.ts +3 -0
  45. package/types/ConversationParams.d.ts +1 -0
  46. package/types/ExternalId.d.ts +2 -0
  47. package/types/Feedback.d.ts +22 -0
  48. package/types/MediaSettings.d.ts +5 -1
  49. package/types/MovieShare.d.ts +60 -0
  50. package/types/MuteStates.d.ts +15 -0
  51. package/types/Participant.d.ts +3 -0
  52. package/types/ParticipantListChunk.d.ts +2 -0
  53. package/types/ParticipantStreamDescription.d.ts +2 -1
  54. package/types/Room.d.ts +77 -0
  55. package/types/SignalingMessage.d.ts +66 -1
  56. package/types/Streams.d.ts +8 -0
  57. package/types/WaitingHall.d.ts +2 -8
  58. package/utils/ArrayDequeue.d.ts +24 -0
  59. package/utils/ArrayDequeue.spec.d.ts +1 -0
  60. package/utils/Conversation.d.ts +2 -0
  61. package/worker/LibVPxEncoderWorker.d.ts +1 -1
@@ -1,7 +1,9 @@
1
1
  import BaseSignaling, { AddParticipantParams } from '../abstract/BaseSignaling';
2
2
  import { ParticipantIdRegistry } from '../classes/ParticipantIdRegistry';
3
+ import { SharingStatReport } from '../classes/screenshare/SharingStatReport';
3
4
  import { PerfStatReport } from '../classes/transport/PerfStatReporter';
4
5
  import { TransportTopology } from '../classes/transport/Transport';
6
+ import ConversationFeature from '../enums/ConversationFeature';
5
7
  import ConversationOption from '../enums/ConversationOption';
6
8
  import MediaOption from '../enums/MediaOption';
7
9
  import RecordRole from '../enums/RecordRole';
@@ -11,11 +13,13 @@ import UserRole from '../enums/UserRole';
11
13
  import { JSONObject } from '../static/Json';
12
14
  import MediaModifiers from '../types/MediaModifiers';
13
15
  import MediaSettings from '../types/MediaSettings';
16
+ import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
14
17
  import MuteStates from '../types/MuteStates';
15
18
  import { CompositeUserId, ParticipantId } from '../types/Participant';
16
19
  import ParticipantLayout, { RequestKeyFrame, StopStream } from '../types/ParticipantLayout';
17
20
  import { ParticipantListChunkParameters } from '../types/ParticipantListChunk';
18
21
  import SignalingMessage from '../types/SignalingMessage';
22
+ import { IStartStreamData } from '../types/Streams';
19
23
  import { WaitingParticipantId } from '../types/WaitingHall';
20
24
  export default class Signaling extends BaseSignaling {
21
25
  private socket;
@@ -23,6 +27,7 @@ export default class Signaling extends BaseSignaling {
23
27
  private lastStamp;
24
28
  private websocketCommandsQueue;
25
29
  private datachannelCommandsQueue;
30
+ private asrCommandsQueue;
26
31
  private incomingCache;
27
32
  private responseHandlers;
28
33
  private reconnectCount;
@@ -40,8 +45,10 @@ export default class Signaling extends BaseSignaling {
40
45
  private participantIdRegistry;
41
46
  private producerNotificationDataChannel;
42
47
  private producerCommandDataChannel;
48
+ private asrDataChannel;
43
49
  private producerCommandDataChannelEnabled;
44
50
  private producerCommandSerializationService;
51
+ private asrCommandSerializer;
45
52
  private static readonly RECONNECT_DELAY;
46
53
  private static readonly RECONNECT_MAX_DELAY;
47
54
  private static readonly RECONNECT_MAX_COUNT;
@@ -96,21 +103,30 @@ export default class Signaling extends BaseSignaling {
96
103
  updateDisplayLayout(layouts: {
97
104
  [streamDesc: string]: ParticipantLayout | StopStream | RequestKeyFrame;
98
105
  }): Promise<SignalingMessage>;
99
- addMovie(data: any): Promise<SignalingMessage>;
100
- updateMovie(data: any): Promise<SignalingMessage>;
106
+ addMovie(data: IAddMovieParams): Promise<SignalingMessage>;
107
+ updateMovie(data: IUpdateMovieData): Promise<SignalingMessage>;
101
108
  removeMovie(data: any): Promise<SignalingMessage>;
102
- startStream(data: any): Promise<SignalingMessage>;
103
- stopStream(): Promise<SignalingMessage>;
104
- recordSetRole(participantId: ParticipantId, role: RecordRole | null): Promise<SignalingMessage>;
109
+ updateRooms(rooms: SignalingMessage.Room[], assignRandomly: boolean): Promise<SignalingMessage>;
110
+ activateRooms(roomIds: number[], deactivate: boolean): Promise<SignalingMessage>;
111
+ switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<SignalingMessage>;
112
+ getRooms(withParticipants: boolean): Promise<SignalingMessage>;
113
+ removeRooms(roomIds: number[]): Promise<SignalingMessage>;
114
+ startStream(data: IStartStreamData): Promise<SignalingMessage>;
115
+ stopStream(data?: {
116
+ roomId: number | null;
117
+ }): Promise<SignalingMessage>;
118
+ recordSetRole(participantId: ParticipantId, role: RecordRole | null, roomId: number | null): Promise<SignalingMessage>;
105
119
  getRecordStatus(): Promise<SignalingMessage>;
106
120
  switchTopology(topology: TransportTopology, force?: boolean): Promise<SignalingMessage>;
107
121
  requestRealloc(): Promise<SignalingMessage>;
108
122
  reportPerfStat(report: PerfStatReport): Promise<SignalingMessage>;
123
+ reportSharingStat(report: SharingStatReport): Promise<SignalingMessage>;
109
124
  chatMessage(message: string, participantId?: CompositeUserId | null): Promise<SignalingMessage>;
110
125
  chatHistory(count: number): Promise<SignalingMessage>;
111
126
  customData(data: JSONObject, participantId: ParticipantId | null): Promise<SignalingMessage>;
112
127
  grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<SignalingMessage>;
113
- muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[]): Promise<SignalingMessage>;
128
+ muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia: MediaOption[], roomId: number | null): Promise<SignalingMessage>;
129
+ enableFeatureForRoles(feature: ConversationFeature, roles: UserRole[]): Promise<SignalingMessage>;
114
130
  pinParticipant(participantId: ParticipantId, unpin: boolean): Promise<SignalingMessage>;
115
131
  updateMediaModifiers(mediaModifiers: MediaModifiers): Promise<SignalingMessage>;
116
132
  changeOptions(changes: {
@@ -118,6 +134,7 @@ export default class Signaling extends BaseSignaling {
118
134
  }): Promise<SignalingMessage>;
119
135
  getWaitingHall(fromId?: WaitingParticipantId | null, count?: number, backward?: boolean): Promise<SignalingMessage>;
120
136
  promoteParticipant(participantId: CompositeUserId, demote?: boolean): Promise<SignalingMessage>;
137
+ feedback(key: string): Promise<SignalingMessage>;
121
138
  /**
122
139
  * Close a connection with a signaling server
123
140
  */
@@ -131,6 +148,10 @@ export default class Signaling extends BaseSignaling {
131
148
  readyToSend(): void;
132
149
  getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
133
150
  getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<SignalingMessage>;
151
+ startAsr(): Promise<SignalingMessage>;
152
+ stopAsr(): Promise<SignalingMessage>;
153
+ requestAsr(request: boolean): Promise<SignalingMessage>;
154
+ setAsrDataChannel(dataChannel: RTCDataChannel): void;
134
155
  protected _connect(connectionType: SignalingConnectionType): void;
135
156
  protected _disconnect(): void;
136
157
  private _onOpen;
@@ -143,6 +164,7 @@ export default class Signaling extends BaseSignaling {
143
164
  protected _closeSocket(error?: Error | null): void;
144
165
  protected _reconnect(): void;
145
166
  private _handleCommandResponse;
167
+ private _serializeAsrCommand;
146
168
  private _handleCommandsQueue;
147
169
  private _serializeBinary;
148
170
  private _serializeJson;
@@ -1,5 +1,6 @@
1
1
  declare const enum ConversationFeature {
2
2
  ADD_PARTICIPANT = "ADD_PARTICIPANT",
3
- RECORD = "RECORD"
3
+ RECORD = "RECORD",
4
+ MOVIE_SHARE = "MOVIE_SHARE"
4
5
  }
5
6
  export default ConversationFeature;
@@ -4,7 +4,9 @@
4
4
  declare enum ConversationOption {
5
5
  REQUIRE_AUTH_TO_JOIN = "REQUIRE_AUTH_TO_JOIN",
6
6
  AUDIENCE_MODE = "AUDIENCE_MODE",
7
- WAITING_HALL = "WAITING_HALL"
7
+ WAITING_HALL = "WAITING_HALL",
8
+ ASR = "ASR",
9
+ FEEDBACK = "FEEDBACK"
8
10
  }
9
11
  export default ConversationOption;
10
12
  export declare function compareOptions(oldOptions: ConversationOption[], newOptions: ConversationOption[]): boolean;
@@ -2,6 +2,7 @@ declare const enum DataChannelLabel {
2
2
  producerNotification = "producerNotification",
3
3
  producerCommand = "producerCommand",
4
4
  consumerScreenShare = "consumerScreenShare",
5
- producerScreenShare = "producerScreenShare"
5
+ producerScreenShare = "producerScreenShare",
6
+ asr = "asr"
6
7
  }
7
8
  export default DataChannelLabel;
@@ -16,6 +16,7 @@ declare enum HangupType {
16
16
  CALLER_IS_BLOCKED = "CALLER_IS_BLOCKED",
17
17
  NOT_FRIENDS = "NOT_FRIENDS",
18
18
  CALLEE_IS_OFFLINE = "CALLEE_IS_OFFLINE",
19
+ CALLER_IS_REJECTED = "CALLER_IS_REJECTED",
19
20
  UNKNOWN_ERROR = "UNKNOWN_ERROR",
20
21
  UNSUPPORTED = "UNSUPPORTED",
21
22
  OLD_VERSION = "OLD_VERSION",
@@ -23,6 +24,7 @@ declare enum HangupType {
23
24
  EXTERNAL_API_ERROR = "EXTERNAL_API_ERROR",
24
25
  SOCKET_CLOSED = "SOCKET_CLOSED",
25
26
  ENDED = "ENDED",
26
- KILLED_WITHOUT_DELETE = "KILLED_WITHOUT_DELETE"
27
+ KILLED_WITHOUT_DELETE = "KILLED_WITHOUT_DELETE",
28
+ ANOTHER_DEVICE = "ANOTHER_DEVICE"
27
29
  }
28
30
  export default HangupType;
@@ -0,0 +1,12 @@
1
+ declare enum LiveStatus {
2
+ NOT_DEFINED = -1,
3
+ WAITING = 0,
4
+ ONLINE = 1,
5
+ ENDED = 2,
6
+ UPCOMING = 3,
7
+ PROCESSING = 4,
8
+ ERROR = 5,
9
+ DELETED = 6,
10
+ BLOCKED = 7
11
+ }
12
+ export default LiveStatus;
@@ -4,6 +4,8 @@
4
4
  declare enum MediaOption {
5
5
  AUDIO = "AUDIO",
6
6
  VIDEO = "VIDEO",
7
- SCREEN_SHARING = "SCREEN_SHARING"
7
+ SCREEN_SHARING = "SCREEN_SHARING",
8
+ MOVIE_SHARING = "MOVIE_SHARING",
9
+ AUDIO_SHARING = "AUDIO_SHARING"
8
10
  }
9
11
  export default MediaOption;
@@ -0,0 +1,6 @@
1
+ declare enum RoomsEventType {
2
+ UPDATE = "UPDATE",
3
+ REMOVE = "REMOVE",
4
+ ACTIVATE = "ACTIVATE"
5
+ }
6
+ export default RoomsEventType;
@@ -12,6 +12,7 @@ declare enum SignalingCommandType {
12
12
  CHANGE_STREAM_PRIORITIES = "change-streams-priorities",
13
13
  UPDATE_DISPLAY_LAYOUT = "update-display-layout",
14
14
  REPORT_PERF_STAT = "report-perf-stat",
15
+ REPORT_SHARING_STAT = "report-sharing-stat",
15
16
  RECORD_START = "record-start",
16
17
  RECORD_STOP = "record-stop",
17
18
  RECORD_SET_ROLE = "record-set-role",
@@ -24,6 +25,7 @@ declare enum SignalingCommandType {
24
25
  CUSTOM_DATA = "custom-data",
25
26
  GRANT_ROLES = "grant-roles",
26
27
  MUTE_PARTICIPANT = "mute-participant",
28
+ ENABLE_FEATURE_FOR_ROLES = "enable-feature-for-roles",
27
29
  PIN_PARTICIPANT = "pin-participant",
28
30
  UPDATE_MEDIA_MODIFIERS = "update-media-modifiers",
29
31
  CHANGE_OPTIONS = "change-options",
@@ -34,6 +36,15 @@ declare enum SignalingCommandType {
34
36
  REQUEST_TEST_MODE = "request-test-mode",
35
37
  ADD_MOVIE = "add-movie",
36
38
  UPDATE_MOVIE = "update-movie",
37
- REMOVE_MOVIE = "remove-movie"
39
+ REMOVE_MOVIE = "remove-movie",
40
+ GET_ROOMS = "get-rooms",
41
+ UPDATE_ROOMS = "update-rooms",
42
+ ACTIVATE_ROOMS = "activate-rooms",
43
+ REMOVE_ROOMS = "remove-rooms",
44
+ SWITCH_ROOM = "switch-room",
45
+ FEEDBACK = "feedback",
46
+ ASR_START = "asr-start",
47
+ ASR_STOP = "asr-stop",
48
+ REQUEST_ASR = "request-asr"
38
49
  }
39
50
  export default SignalingCommandType;
@@ -35,6 +35,17 @@ declare enum SignalingNotification {
35
35
  PROMOTE_PARTICIPANT = "promote-participant",
36
36
  CHAT_ROOM_UPDATED = "chat-room-updated",
37
37
  PROMOTION_APPROVED = "promotion-approved",
38
- JOIN_LINK_CHANGED = "join-link-changed"
38
+ JOIN_LINK_CHANGED = "join-link-changed",
39
+ FEEDBACK = "feedback",
40
+ MOVIE_UPDATE_NOTIFICATION = "movie-update-notification",
41
+ MOVIE_SHARE_INFO = "movie-share-info",
42
+ MOVIE_SHARE_STARTED = "movie-share-started",
43
+ MOVIE_SHARE_STOPPED = "movie-share-stopped",
44
+ ROOM_UPDATED = "room-updated",
45
+ ROOMS_UPDATED = "rooms-updated",
46
+ ROOM_PARTICIPANTS_UPDATED = "room-participants-updated",
47
+ FEATURES_PER_ROLE_CHANGED = "features-per-role-changed",
48
+ ASR_STARTED = "asr-started",
49
+ ASR_STOPPED = "asr-stopped"
39
50
  }
40
51
  export default SignalingNotification;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/calls-sdk",
3
- "version": "2.6.2-dev.f69c395.0",
3
+ "version": "2.6.3-dev.1fd3364.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",
@@ -6,12 +6,17 @@ import ChatRoomEventType from '../enums/ChatRoomEventType';
6
6
  import ConversationOption from '../enums/ConversationOption';
7
7
  import FatalError from '../enums/FatalError';
8
8
  import MediaOption from '../enums/MediaOption';
9
+ import RoomsEventType from '../enums/RoomsEventType';
9
10
  import UserRole from '../enums/UserRole';
11
+ import { IFeaturesPerRole } from '../types/ConversationFeature';
10
12
  import { ExternalId, ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalParticipantListMarkers } from '../types/ExternalId';
13
+ import { IFeedbackExternal } from '../types/Feedback';
11
14
  import MediaModifiers from '../types/MediaModifiers';
12
15
  import MediaSettings from '../types/MediaSettings';
16
+ import { IOnRemoteMovieData, ISharedMovieInfo, ISharedMovieState, ISharedMovieStoppedInfo } from '../types/MovieShare';
13
17
  import MuteStates from '../types/MuteStates';
14
18
  import { ParticipantStateMapped } from '../types/Participant';
19
+ import { Room, RoomParticipantUpdate, Rooms, RoomsUpdate } from '../types/Room';
15
20
  import { DebugMessageType } from './Debug';
16
21
  import { JSONObject } from './Json';
17
22
  /**
@@ -72,10 +77,31 @@ declare namespace External {
72
77
  * Если сервер закончил стримить собеседника, вместо стрима будет передан null
73
78
  *
74
79
  * @param userId
75
- * @param streamName
76
- * @param stream
80
+ * @param data
81
+ */
82
+ function onRemoteLive(userId: ExternalParticipantId, data: IOnRemoteMovieData): void;
83
+ /**
84
+ * Получен собственный стрим лайв.
85
+ * Если сервер закончил стримить собеседника, вместо стрима будет передан null
86
+ *
87
+ * @param userId
88
+ * @param data
77
89
  */
78
- function onRemoteLive(userId: ExternalParticipantId, streamName: string, stream: MediaStream | null): void;
90
+ function onLocalLive(userId: ExternalParticipantId, data: IOnRemoteMovieData): void;
91
+ /**
92
+ * Получено обновление стрима или лайва от собеседника.
93
+ *
94
+ * @param userId
95
+ * @param data
96
+ */
97
+ function onRemoteLiveUpdate(userId: ExternalParticipantId, data: ISharedMovieState): void;
98
+ /**
99
+ * Получено обновление собственного стрима или лайва.
100
+ *
101
+ * @param userId
102
+ * @param data
103
+ */
104
+ function onLocalLiveUpdate(userId: ExternalParticipantId, data: ISharedMovieState): void;
79
105
  /**
80
106
  * Получен стрим с экрана собеседника.
81
107
  * Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
@@ -91,8 +117,9 @@ declare namespace External {
91
117
  * @param mediaModifiers Текущие настройки пользовательского медиа
92
118
  * @param muteStates Состояние устройств при входе в звонок
93
119
  * @param participants Список участников звонка (при `Params.batchParticipantsOnStart = true`)
120
+ * @param rooms Список сессионных залов в звонке
94
121
  */
95
- function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[]): void;
122
+ function onConversation(userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants?: ExternalParticipant[], rooms?: Rooms): void;
96
123
  /**
97
124
  * Постраничные данные про участников при начале звонка
98
125
  * @param chunk
@@ -106,6 +133,41 @@ declare namespace External {
106
133
  * @param markers
107
134
  */
108
135
  function onRemoteMediaSettings(userId: ExternalParticipantId, mediaSettings: MediaSettings, markers?: ExternalParticipantListMarkers): void;
136
+ /**
137
+ * Изменились данные собственного стрима
138
+ *
139
+ * @param userId
140
+ * @param mediaSettings
141
+ */
142
+ function onLocalMediaSettings(userId: ExternalParticipantId, mediaSettings: MediaSettings): void;
143
+ /**
144
+ * Полученны данные по стримам (лайв/мувик) от собеседника
145
+ *
146
+ * @param userId
147
+ * @param sharedMovieInfo
148
+ */
149
+ function onRemoteSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo): void;
150
+ /**
151
+ * Полученны данные по остановленным стримам (лайв/мувик) от собеседника
152
+ *
153
+ * @param userId
154
+ * @param sharedMovieStoppedInfo
155
+ */
156
+ function onRemoteSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo): void;
157
+ /**
158
+ * Полученны данные по собственным стримам (лайв/мувик)
159
+ *
160
+ * @param userId
161
+ * @param sharedMovieInfo
162
+ */
163
+ function onLocalSharedMovieInfo(userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo): void;
164
+ /**
165
+ * Полученны данные по собственным остановленным стримам (лайв/мувик)
166
+ *
167
+ * @param userId
168
+ * @param sharedMovieStoppedInfo
169
+ */
170
+ function onLocalSharedMovieStoppedInfo(userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo): void;
109
171
  /**
110
172
  * Добавили участника
111
173
  *
@@ -188,9 +250,10 @@ declare namespace External {
188
250
  * @param userId Пользователь, для которого изменились разрешения или `null` для текущего пользователя
189
251
  * @param adminId Пользователь, который изменил разрешения
190
252
  * @param stateUpdated Если `true`, значит глобальное/персональное состояние изменилось и поля `muteStates`/`unmuteOptions` содержат обновления, если `false`, значит, эти поля не имеют значения
191
- * @param requestedMedia Какие устройства попросили влючить участника
253
+ * @param requestedMedia Какие устройства попросили включить участника
254
+ * @param roomId ID сессионного зала или ничего в случае основного зала
192
255
  */
193
- function onMuteStates(muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll?: boolean, unmute?: boolean, userId?: ExternalParticipantId | null, adminId?: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[]): void;
256
+ function onMuteStates(muteStates: MuteStates, unmuteOptions: MediaOption[], mediaOptions: MediaOption[], muteAll?: boolean, unmute?: boolean, userId?: ExternalParticipantId | null, adminId?: ExternalParticipantId | null, stateUpdated?: boolean, requestedMedia?: MediaOption[], roomId?: number | null): void;
194
257
  /**
195
258
  * Изменились роли собеседника в звонке
196
259
  *
@@ -297,12 +360,14 @@ declare namespace External {
297
360
  * @param type Тип записи
298
361
  * @param externalMovieId Внешний ID ролика
299
362
  * @param externalOwnerId Внешний ID пользователя/группы от которого ведётся трансляция
363
+ * @param roomId ID зала в котором стартанула запись
300
364
  */
301
- function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string): void;
365
+ function onRecordStarted(initiator: ExternalParticipantId, movieId: number, startTime: number, type: 'STREAM' | 'RECORD', externalMovieId?: string, externalOwnerId?: string, roomId?: number | null): void;
302
366
  /**
303
367
  * Закончена запись звонка
368
+ * @param roomId ID зала в котором остановлена запись
304
369
  */
305
- function onRecordStopped(): void;
370
+ function onRecordStopped(roomId?: number | null): void;
306
371
  /**
307
372
  * Состояние своей сети
308
373
  *
@@ -355,5 +420,54 @@ declare namespace External {
355
420
  * @param joinLink токен присоединения к звонку
356
421
  */
357
422
  function onJoinLinkChanged(joinLink: string): void;
423
+ /**
424
+ * Получено обновление по сессионным залам
425
+ * @param updates
426
+ */
427
+ function onRoomsUpdated(updates: Partial<Record<RoomsEventType, RoomsUpdate>>): void;
428
+ /**
429
+ * Получено обновление по сессионному залу
430
+ * @param eventTypes
431
+ * @param roomId
432
+ * @param room
433
+ * @param deactivate
434
+ */
435
+ function onRoomUpdated(eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null): void;
436
+ /**
437
+ * Получено обновление по участникам сессионного зала
438
+ * @param update
439
+ */
440
+ function onRoomParticipantsUpdated(update: RoomParticipantUpdate): void;
441
+ /**
442
+ * Произошел переход в другой активный зал (или основной)
443
+ * @param roomId
444
+ */
445
+ function onRoomSwitched(roomId: number | null): void;
446
+ /**
447
+ * Установить id сессионного зала на старте звонка
448
+ * @param roomId
449
+ */
450
+ function onRoomStart(roomId: number | null): void;
451
+ /**
452
+ * Получена новая реакция
453
+ */
454
+ function onFeedback(feedback: IFeedbackExternal[]): void;
455
+ /**
456
+ * Изменилось состояние пермиссий фич в звонке
457
+ *
458
+ * @param featuresPerRole Информация о доступных фичах по ролям
459
+ */
460
+ function onFeaturesPerRoleChanged(featuresPerRole: IFeaturesPerRole): void;
461
+ /**
462
+ * Начата текстовая расшифровка звонка
463
+ * @param initiatorId Id пользователя, запустившего расшифровку звонка
464
+ * @param movieId Id расшифровки
465
+ */
466
+ function onAsrStarted(initiatorId: ExternalParticipantId, movieId: number): void;
467
+ /**
468
+ * Закончена текстовая расшифровка звонка
469
+ */
470
+ function onAsrStopped(): void;
471
+ function onAsrTranscription(id: ExternalParticipantId, text: string, timestamp: number, duration: number): void;
358
472
  }
359
473
  export default External;