@vkontakte/calls-sdk / ParamsObject
Type Alias: ParamsObject
type ParamsObject = {
apiKey: string;
authToken: string;
anonymToken: string;
domain: string;
forceRelayPolicy: boolean;
videoMinWidth: number;
videoMaxWidth: number;
videoMinHeight: number;
videoMaxHeight: number;
videoAspectRatio: number;
videoFrameRate: number;
videoFacingMode: FacingMode | null;
screenFrameRate: number;
videoEffects: VideoEffects | null;
audioEffects: EffectVoiceChange | null;
videoEffectMaxWidth: number;
videoEffectMaxHeight: number;
vmoji: typeof Vmoji | null;
vmojiOptions: | {
protocolVersion: Vmoji.AnimojiVersion;
renderingOptions: Partial<Vmoji.RenderingOptions>;
}
| null;
statisticsInterval: number;
voiceParams: {
[key: string]: number;
};
preferH264: boolean;
preferVP9: boolean;
producerScreenTrack: boolean;
consumerScreenTrack: boolean;
videoTracksCount: number;
useParticipantListChunk: boolean;
useRooms: boolean;
useChatRooms: boolean;
addParticipant: boolean;
waitForAdminInGroupCalls: boolean;
participantListChunkInitIndex: number;
participantListChunkInitCount: number | null;
serverAudioRed: boolean;
p2pAudioRed: boolean;
joinFromMultipleDevices: boolean;
audioShare: boolean;
fastScreenShare: boolean;
consumerFastScreenShare: boolean;
consumerFastScreenShareQualityOnDemand: boolean;
newMuteRules: boolean;
videoSuspend: boolean;
enableLogPerfStatReport: boolean;
switchVideoAtBadNetwork: boolean;
enableVideoEffectsFpsDegradation: boolean;
simulcast: boolean;
webtransport: boolean;
webtransportFF: boolean;
onLocalStream?: (stream, mediaSettings) => void;
onLocalStreamUpdate?: (mediaSettings, kind) => void;
onScreenStream?: (stream, mediaSettings) => void;
onVmojiStream?: (stream, mediaSettings) => void;
onVmojiError?: (error) => void;
onLocalStatus?: (status) => void;
onRemoteStream?: (userId, stream) => void;
onRemoteStreamSuspended?: (userId, mediaType, suspended) => void;
onRemoteScreenStream?: (userId, stream) => void;
onRemoteVmojiStream?: (userId, stream) => void;
onRemoteLive?: (userId, data) => void;
onLocalLive?: (userId, data) => void;
onRemoteLiveUpdate?: (userId, data) => void;
onLocalLiveUpdate?: (userId, data) => void;
onConversation?: (userId, mediaModifiers, muteStates, participants, rooms?) => void;
onConversationParticipantListChunk?: (chunk) => void;
onRemoteMediaSettings?: (userId, mediaSettings, markers) => void;
onLocalMediaSettings?: (userId, mediaSettings) => void;
onRemoteSharedMovieInfo?: (userId, sharedMovieInfo, roomId?) => void;
onRemoteSharedMovieStoppedInfo?: (userId, sharedMovieStoppedInfo, roomId?) => void;
onLocalSharedMovieInfo?: (userId, sharedMovieInfo, roomId?) => void;
onLocalSharedMovieStoppedInfo?: (userId, sharedMovieStoppedInfo, roomId?) => void;
onParticipantAdded?: (userId, markers) => void;
onParticipantJoined?: (userId, markers) => void;
onLocalParticipantState?: (participantState, global) => void;
onRemoteParticipantState?: (userId, participantState, markers) => void;
onRemoteParticipantsState?: (stateList, roomId?) => void;
onRemoteStatus?: (userIds, status, data) => void;
onPermissionsRequested?: () => void;
onPermissionsError?: (error, original) => void;
onRemoteRemoved?: (userId, markers) => void;
onCallState?: (isCallActive, canAddParticipants, conversation) => void;
onDeviceSwitched?: (mediaOption, enabled) => void;
onMuteStates?: (muteStates, unmuteOptions, mediaOptions, muteAll, unmute, userId, adminId, stateUpdated?, requestedMedia?, roomId?) => void;
onRolesChanged?: (userId, roles, isInitial?) => void;
onLocalRolesChanged?: (roles, isInitial?) => void;
onPinnedParticipant?: (userId, unpin, markers, roomId?) => void;
onLocalPin?: (unpin) => void;
onOptionsChanged?: (options) => void;
onSpeakerChanged?: (userId) => void;
onVolumesDetected?: (volumes) => void;
onLocalVolume?: (volume, isMicEnabled) => void;
onHangup?: (type, conversationId) => void;
onCallAccepted?: () => void;
onAcceptedCall?: (userId, capabilities) => void;
onDeviceChange?: () => void;
onFingerprintChange?: (fingerprint) => void;
onTokenExpired?: () => void;
onChatMessage?: (message, from, direct) => void;
onCustomData?: (data, from, direct) => void;
onRecordStarted?: (initiator, movieId, startTime, type, externalMovieId?, externalOwnerId?, roomId?) => void;
onRecordStopped?: (roomId, stopBy) => void;
onLocalNetworkStatusChanged?: (rating) => void;
onNetworkStatusChanged?: (status) => void;
onDebugMessage?: (type, ...args) => void;
onStatistics?: (stats) => void;
onAutoplayError?: () => void;
onChatRoomUpdated?: (eventType, totalCount, firstParticipants, addedParticipantIds, removedParticipantIds) => void;
onJoinLinkChanged?: (joinLink) => void;
onRoomsUpdated?: (updates) => void;
onRoomUpdated?: (eventTypes, roomId, room, deactivate) => void;
onRoomParticipantsUpdated?: (update) => void;
onRoomSwitched?: (roomId) => void;
onRoomStart?: (roomId) => void;
onFeedback?: (feedback, roomId) => void;
onFeaturesPerRoleChanged?: (featuresPerRole) => void;
onParticipantVmojiUpdate?: (externalId) => void;
onAsrStarted?: (initiatorId, movieId, roomId) => void;
onAsrStopped?: (roomId) => void;
onAsrTranscription?: (id, text, timestamp, duration) => void;
onAsrSet?: (data, roomId) => void;
onRemoteSharedUrl?: (userId, sharedUrl, roomId) => void;
onParticipantIdChanged?: (prevId, newId) => void;
onVideoSuspendSuggest?: (bandwidth) => void;
onPromotionApproved?: (adminParticipantId) => void;
onPromoted?: (demoted) => void;
onPeerRegistered?: () => void;
};Параметры инициализации
Properties
apiKey
apiKey: string;API ключ приложения
authToken
authToken: string;Токен авторизации
anonymToken
anonymToken: string;Токен анонимной авторизации
domain
domain: string;Домен, чтобы попасть в тестовую группу. Для тестирования экспериментальных улучшений существуют отдельные сервера, чтобы собирать фидбек и уже потом раскатывать на всех юзеров. Если передать сюда специальный ключ, то конверсейшн будет обрабатываться на таком сервере.
forceRelayPolicy
forceRelayPolicy: boolean;Не отправлять в ICE-кандидатах персональные IP-адреса
See
По умолчанию: false
videoMinWidth
videoMinWidth: number;Минимальная ширина видео в пикселях
По умолчанию: 428
videoMaxWidth
videoMaxWidth: number;Максимальная ширина видео в пикселях
По умолчанию: 1280
videoMinHeight
videoMinHeight: number;Минимальная высота видео в пикселях
По умолчанию: 240
videoMaxHeight
videoMaxHeight: number;Максимальная высота видео в пикселях
По умолчанию: 720
videoAspectRatio
videoAspectRatio: number;Соотношение сторон видео
По умолчанию: 16/9
videoFrameRate
videoFrameRate: number;FPS видео
По умолчанию: 25
videoFacingMode
videoFacingMode: FacingMode | null;Какую камеру получать с мобильного устройства
По умолчанию: FacingMode.USER для мобильных устройств и null для остальных
screenFrameRate
screenFrameRate: number;FPS трансляции экрана
По умолчанию: 15
videoEffects
videoEffects: VideoEffects | null;Экземпляр класса VideoEffects из @vkontakte/calls-video-effects
Можно установить позднее методом setVideoEffects
audioEffects
audioEffects: EffectVoiceChange | null;Экземпляр класса AudioEffects из @vkontakte/calls-audio-effects
Можно установить позднее методом setAudioEffects
videoEffectMaxWidth
videoEffectMaxWidth: number;Максимальная ширина видео в пикселях для видео эффекта
По умолчанию: 640
videoEffectMaxHeight
videoEffectMaxHeight: number;Максимальная высота видео в пикселях для видео эффекта
По умолчанию: 360
vmoji
vmoji: typeof Vmoji | null;Экземпляр класса Vmoji из @vkontakte/calls-vmoji
Можно установить позднее методом setVmoji
vmojiOptions
vmojiOptions:
| {
protocolVersion: Vmoji.AnimojiVersion;
renderingOptions: Partial<Vmoji.RenderingOptions>;
}
| null;Настройки Vmoji
statisticsInterval
statisticsInterval: number;Частота получения статистики в миллисекундах
По умолчанию: 5000
voiceParams
voiceParams: {
[key: string]: number;
};Параметры детектора голоса
Index Signature
[key: string]: numberpreferH264
preferH264: boolean;Отдавать приоритет кодеку H264 для исходящего видео
По умолчанию: false
preferVP9
preferVP9: boolean;Отдавать приоритет кодеку VP9 для исходящего видео, если preferH264 тоже выставлен в true то первый приоритет будет у VP9, второй у H264
По умолчанию: false
producerScreenTrack
producerScreenTrack: boolean;Принимать параллельно видео с камеры и трансляцию экрана от одного и того же участника. Работает только при приёме экрана через дата-канал.
По умолчанию: true
Deprecated
consumerScreenTrack
consumerScreenTrack: boolean;Отдавать трансляцию экрана отдельным стримом. Работает только при отправке экрана через дата-канал.
По умолчанию: true
Deprecated
videoTracksCount
videoTracksCount: number;Количество входящих видео-треков.
Только для звонков с серверной топологией. Для прямых peer-to-peer звонков эта настройка не используется.
При значении 0 количество треков меняется динамически в зависимости от количества участников звонка.
При значении отличном от 0 количество треков фиксировано, при этом клиент должен уведомлять сервер о том, каких участников звонка он хочет видеть, через вызов updateDisplayLayout
По умолчанию: 30
useParticipantListChunk
useParticipantListChunk: boolean;Включить постраничный вывод участников. Работает только если включено videoTracksCount (слоты)
По умолчанию: false
useRooms
useRooms: boolean;Включить сессионные залы
По умолчанию: false
useChatRooms
useChatRooms: boolean;Включить чат румы
По умолчанию: false
addParticipant
addParticipant: boolean;Включить поддержку добавления участника в разговор
waitForAdminInGroupCalls
waitForAdminInGroupCalls: boolean;Включает поддержку режима WAIT_FOR_ADMIN в звонках.
participantListChunkInitIndex
participantListChunkInitIndex: number;Индекс участника для первого chunk'а который придет при установке соединения с сервером
По умолчанию: 0
participantListChunkInitCount
participantListChunkInitCount: number | null;Количество участников которые придут в первом chunk'е при установке соединения с сервером если параметр не проставлен то будет использоваться значение по умолчанию установленное на сервере
serverAudioRed
serverAudioRed: boolean;Включать RED-extension (redundancy) для групповых звонков
По умолчанию: true
Deprecated
p2pAudioRed
p2pAudioRed: boolean;Включать RED-extension (redundancy) для p2p звонков
По умолчанию: true
Deprecated
joinFromMultipleDevices
joinFromMultipleDevices: boolean;Разрешить вход в звонок одним пользователем с разных устройств одновременно
По умолчанию: false
audioShare
audioShare: boolean;Включить возможность захвата звука при трансляции экрана
По умолчанию: false
fastScreenShare
fastScreenShare: boolean;Включить поддержку динамического контента при трансляция экрана
По умолчанию: false
consumerFastScreenShare
consumerFastScreenShare: boolean;Включить отправку быстрой шары с клиента по RTP
По умолчанию: false
consumerFastScreenShareQualityOnDemand
consumerFastScreenShareQualityOnDemand: boolean;Включает отправку сервером нотификации video-quality-update
По умолчанию: false
newMuteRules
newMuteRules: boolean;Использовать новые правила allMute для админа
videoSuspend
videoSuspend: boolean;Включить поддержку приостановки видео в плохой сети.
По умолчанию: false
enableLogPerfStatReport
enableLogPerfStatReport: boolean;Включает логгирование статистики webrtc
По умолчанию: false
switchVideoAtBadNetwork
switchVideoAtBadNetwork: boolean;Поддержка переключения качества видео в зависимости от сети Только для режима p2p
По умолчанию: false
enableVideoEffectsFpsDegradation
enableVideoEffectsFpsDegradation: boolean;Включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами
По умолчанию: false
simulcast
simulcast: boolean;Включить поддержку simulcast на отправке
По умолчанию: false
webtransport
webtransport: boolean;Включить поддержку webtransport для сигналинга
По умолчанию: false
webtransportFF
webtransportFF: boolean;Включить поддержку webtransport для сигналинга в FireFox Отдельная ручка, так как есть проблемы сейчас с FF
По умолчанию: false
onLocalStream()?
optional onLocalStream: (stream, mediaSettings) => void;Получен локальный стрим с камеры/микрофона
Parameters
| Parameter | Type |
|---|---|
stream | MediaStream | null |
mediaSettings | MediaSettings |
Returns
void
onLocalStreamUpdate()?
optional onLocalStreamUpdate: (mediaSettings, kind) => void;Локальный стрим изменился
Parameters
| Parameter | Type |
|---|---|
mediaSettings | MediaSettings |
kind | MediaTrackKind |
Returns
void
onScreenStream()?
optional onScreenStream: (stream, mediaSettings) => void;Локальный стрим с экрана добавлен/удалён
Parameters
| Parameter | Type |
|---|---|
stream | MediaStream | null |
mediaSettings | MediaSettings |
Returns
void
onVmojiStream()?
optional onVmojiStream: (stream, mediaSettings) => void;Локальный стрим вимоджи добавлен/удалён
Parameters
| Parameter | Type |
|---|---|
stream | MediaStream | null |
mediaSettings | MediaSettings |
Returns
void
onVmojiError()?
optional onVmojiError: (error) => void;Произошла ошибка вимоджи
Parameters
| Parameter | Type |
|---|---|
error | VmojiError |
Returns
void
onLocalStatus()?
optional onLocalStatus: (status) => void;Изменился статус локального соединения
Parameters
| Parameter | Type |
|---|---|
status | ParticipantStatus |
Returns
void
onRemoteStream()?
optional onRemoteStream: (userId, stream) => void;Получен стрим собеседника. Если сервер закончил стримить собеседника, вместо стрима будет передан null
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
stream | MediaStream | null |
Returns
void
onRemoteStreamSuspended()?
optional onRemoteStreamSuspended: (userId, mediaType, suspended) => void;Cтрим собеседника приостановлен/возобновлен.
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
mediaType | MediaType |
suspended | boolean |
Returns
void
onRemoteScreenStream()?
optional onRemoteScreenStream: (userId, stream) => void;Получен стрим с экрана собеседника. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
stream | MediaStream | null |
Returns
void
onRemoteVmojiStream()?
optional onRemoteVmojiStream: (userId, stream) => void;Получен стрим вимоджи собеседника. Если сервер закончил стримить вимоджи собеседника, вместо стрима будет передан null
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
stream | MediaStream | null |
Returns
void
onRemoteLive()?
optional onRemoteLive: (userId, data) => void;Получен стрим трансляция или мувик от собеседника. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
data | IOnRemoteMovieData |
Returns
void
onLocalLive()?
optional onLocalLive: (userId, data) => void;Получен собственный стрим трансляция или мувик. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
data | IOnRemoteMovieData |
Returns
void
onRemoteLiveUpdate()?
optional onRemoteLiveUpdate: (userId, data) => void;Получено обновление стрима или лайва от собеседника.
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
data | ISharedMovieState |
Returns
void
onLocalLiveUpdate()?
optional onLocalLiveUpdate: (userId, data) => void;Получено обновление собственного стрима или лайва.
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
data | ISharedMovieState |
Returns
void
onConversation()?
optional onConversation: (userId, mediaModifiers, muteStates, participants, rooms?) => void;Начат звонок
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
mediaModifiers | MediaModifiers |
muteStates | MuteStates |
participants | ExternalParticipant[] |
rooms? | Rooms |
Returns
void
onConversationParticipantListChunk()?
optional onConversationParticipantListChunk: (chunk) => void;Начальный список участников для постраничного звонка
Parameters
| Parameter | Type |
|---|---|
chunk | ExternalParticipantListChunk |
Returns
void
onRemoteMediaSettings()?
optional onRemoteMediaSettings: (userId, mediaSettings, markers) => void;Изменились данные стрима собеседника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
mediaSettings | MediaSettings |
markers | ExternalParticipantMarkers | null |
Returns
void
onLocalMediaSettings()?
optional onLocalMediaSettings: (userId, mediaSettings) => void;Изменились данные стрима собеседника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
mediaSettings | MediaSettings |
Returns
void
onRemoteSharedMovieInfo()?
optional onRemoteSharedMovieInfo: (userId, sharedMovieInfo, roomId?) => void;Полученны данные по стримам (лайв/мувик) от собеседника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
sharedMovieInfo | ISharedMovieInfo |
roomId? | IRoomId |
Returns
void
onRemoteSharedMovieStoppedInfo()?
optional onRemoteSharedMovieStoppedInfo: (userId, sharedMovieStoppedInfo, roomId?) => void;Полученны данные по остановленным стримам (лайв/мувик) от собеседника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
sharedMovieStoppedInfo | ISharedMovieStoppedInfo |
roomId? | IRoomId |
Returns
void
onLocalSharedMovieInfo()?
optional onLocalSharedMovieInfo: (userId, sharedMovieInfo, roomId?) => void;Полученны данные по собственным стримам (лайв/мувик)
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
sharedMovieInfo | ISharedMovieInfo |
roomId? | IRoomId |
Returns
void
onLocalSharedMovieStoppedInfo()?
optional onLocalSharedMovieStoppedInfo: (userId, sharedMovieStoppedInfo, roomId?) => void;Полученны данные по собственным остановленным стримам (лайв/мувик)
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
sharedMovieStoppedInfo | ISharedMovieStoppedInfo |
roomId? | IRoomId |
Returns
void
onParticipantAdded()?
optional onParticipantAdded: (userId, markers) => void;Добавили участника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
markers | ExternalParticipantMarkers | null |
Returns
void
onParticipantJoined()?
optional onParticipantJoined: (userId, markers) => void;Участник присоединился к звонку
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
markers | ExternalParticipantMarkers |
Returns
void
onLocalParticipantState()?
optional onLocalParticipantState: (participantState, global) => void;Получены данные по изменению локальных состояний со стороны админа Например, принудительно опущена рука
Parameters
| Parameter | Type | Description |
|---|---|---|
participantState | ParticipantStateMapped | Полный объект состояния участника, полученный от SDK/сервера. |
global | boolean | true – действие глобальное (для всех участников), false – действие локальное (только у текущего пользователя). |
Returns
void
onRemoteParticipantState()?
optional onRemoteParticipantState: (userId, participantState, markers) => void;Изменились данные состояний собеседника
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
participantState | ParticipantStateMapped |
markers | ExternalParticipantMarkers | null |
Returns
void
onRemoteParticipantsState()?
optional onRemoteParticipantsState: (stateList, roomId?) => void;Изменились данные состояний нескольких собеседников
Parameters
| Parameter | Type |
|---|---|
stateList | ParticipantsStateList |
roomId? | IRoomId |
Returns
void
onRemoteStatus()?
optional onRemoteStatus: (userIds, status, data) => void;Изменился статус соединения собеседников
Parameters
| Parameter | Type |
|---|---|
userIds | ExternalParticipantId[] |
status | ParticipantStatus |
data | any |
Returns
void
onPermissionsRequested()?
optional onPermissionsRequested: () => void;Разрешения на доступы были запрошены в браузере
Returns
void
onPermissionsError()?
optional onPermissionsError: (error, original) => void;Ошибка получения трека с камеры или микрофона
Parameters
| Parameter | Type |
|---|---|
error | FatalError |
original | Error |
Returns
void
onRemoteRemoved()?
optional onRemoteRemoved: (userId, markers) => void;Пользователь отключился от звонка
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
markers | ExternalParticipantMarkers | null |
Returns
void
onCallState()?
optional onCallState: (isCallActive, canAddParticipants, conversation) => void;Изменилось состояние звонка
Parameters
| Parameter | Type |
|---|---|
isCallActive | boolean |
canAddParticipants | boolean |
conversation | ConversationData |
Returns
void
onDeviceSwitched()?
optional onDeviceSwitched: (mediaOption, enabled) => void;Изменилось состояние камеры или микрофона
Parameters
| Parameter | Type |
|---|---|
mediaOption | MediaOption |
enabled | boolean |
Returns
void
onMuteStates()?
optional onMuteStates: (muteStates, unmuteOptions, mediaOptions, muteAll, unmute, userId, adminId, stateUpdated?, requestedMedia?, roomId?) => void;Изменились состояния устройств пользователя или разрешения включать камеру/микрофон
Parameters
| Parameter | Type |
|---|---|
muteStates | MuteStates |
unmuteOptions | MediaOption[] |
mediaOptions | MediaOption[] |
muteAll | boolean |
unmute | boolean |
userId | | ExternalParticipantId | null |
adminId | | ExternalParticipantId | null |
stateUpdated? | boolean |
requestedMedia? | MediaOption[] |
roomId? | number | null |
Returns
void
onRolesChanged()?
optional onRolesChanged: (userId, roles, isInitial?) => void;Изменились роли собеседника в звонке
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
roles | UserRole[] |
isInitial? | boolean |
Returns
void
onLocalRolesChanged()?
optional onLocalRolesChanged: (roles, isInitial?) => void;Изменились свои роли в звонке
Parameters
| Parameter | Type |
|---|---|
roles | UserRole[] |
isInitial? | boolean |
Returns
void
onPinnedParticipant()?
optional onPinnedParticipant: (userId, unpin, markers, roomId?) => void;Закрепляет/открепляет собеседника для всех
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
unpin | boolean |
markers | ExternalParticipantMarkers | null |
roomId? | number | null |
Returns
void
onLocalPin()?
optional onLocalPin: (unpin) => void;Закрепляет/открепляет текущего пользователя у других собеседников
Parameters
| Parameter | Type |
|---|---|
unpin | boolean |
Returns
void
onOptionsChanged()?
optional onOptionsChanged: (options) => void;Изменились опции звонка
Parameters
| Parameter | Type |
|---|---|
options | ConversationOption[] |
Returns
void
onSpeakerChanged()?
optional onSpeakerChanged: (userId) => void;Изменился говорящий в звонке
Parameters
| Parameter | Type |
|---|---|
userId | ExternalParticipantId |
Returns
void
onVolumesDetected()?
optional onVolumesDetected: (volumes) => void;Громкость собеседников
Parameters
| Parameter | Type |
|---|---|
volumes | { uid: ExternalParticipantId; volume: number; }[] |
Returns
void
onLocalVolume()?
optional onLocalVolume: (volume, isMicEnabled) => void;Громкость своего микрофона
Parameters
| Parameter | Type |
|---|---|
volume | number |
isMicEnabled | boolean |
Returns
void
onHangup()?
optional onHangup: (type, conversationId) => void;Звонок был завершен
Parameters
| Parameter | Type |
|---|---|
type | HangupReason | Error |
conversationId | string | null |
Returns
void
onCallAccepted()?
optional onCallAccepted: () => void;Входящий звонок был принят мной
Returns
void
onAcceptedCall()?
optional onAcceptedCall: (userId, capabilities) => void;Исходящий звонок был принят кем-то
Parameters
| Parameter | Type | Description |
|---|---|---|
userId | ExternalParticipantId | |
capabilities | ParticipantCapabilities | - |
Returns
void
onDeviceChange()?
optional onDeviceChange: () => void;Список устройств изменился
Returns
void
onFingerprintChange()?
optional onFingerprintChange: (fingerprint) => void;Изменилась подпись звонка 1:1
Parameters
| Parameter | Type |
|---|---|
fingerprint | string |
Returns
void
onTokenExpired()?
optional onTokenExpired: () => void;Требуется обновление токена
Returns
void
onChatMessage()?
optional onChatMessage: (message, from, direct) => void;Получено сообщение чата
Parameters
| Parameter | Type |
|---|---|
message | string |
from | ExternalParticipantId |
direct | boolean |
Returns
void
onCustomData()?
optional onCustomData: (data, from, direct) => void;Получены данные от собеседника
Parameters
| Parameter | Type |
|---|---|
data | JSONObject |
from | ExternalParticipantId |
direct | boolean |
Returns
void
onRecordStarted()?
optional onRecordStarted: (initiator, movieId, startTime, type, externalMovieId?, externalOwnerId?, roomId?) => void;Начата трансляция/запись звонка
Parameters
| Parameter | Type |
|---|---|
initiator | ExternalParticipantId |
movieId | number |
startTime | number |
type | "STREAM" | "RECORD" |
externalMovieId? | string |
externalOwnerId? | string |
roomId? | number | null |
Returns
void
onRecordStopped()?
optional onRecordStopped: (roomId, stopBy) => void;Закончена трансляция/запись звонка
Parameters
| Parameter | Type |
|---|---|
roomId | number | null |
stopBy | | ExternalParticipantId | null |
Returns
void
onLocalNetworkStatusChanged()?
optional onLocalNetworkStatusChanged: (rating) => void;Состояние своей сети
Parameters
| Parameter | Type | Description |
|---|---|---|
rating | number | Оценка качества соединения от 0 до 1 |
Returns
void
onNetworkStatusChanged()?
optional onNetworkStatusChanged: (status) => void;Состояние сети участников
Parameters
| Parameter | Type | Description |
|---|---|---|
status | { uid: ExternalParticipantId; rating: number; }[] | Оценки качества соединения участников от 0 до 1 |
Returns
void
onDebugMessage()?
optional onDebugMessage: (type, ...args) => void;Получено отладочное сообщение. Работает только при выключенном режиме отладки
Parameters
| Parameter | Type |
|---|---|
type | DebugMessageType |
...args | any[] |
Returns
void
onStatistics()?
optional onStatistics: (stats) => void;Статистика звонка
Parameters
| Parameter | Type |
|---|---|
stats | { } |
Returns
void
onAutoplayError()?
optional onAutoplayError: () => void;Ошибка воспроизведения звука
Returns
void
onChatRoomUpdated()?
optional onChatRoomUpdated: (eventType, totalCount, firstParticipants, addedParticipantIds, removedParticipantIds) => void;Изменилось состояние зала ожидания/зала в режиме Audience
Parameters
| Parameter | Type | Description |
|---|---|---|
eventType | ChatRoomEventType | Тип события |
totalCount | number | Количество ожидающих/слушателей |
firstParticipants | ExternalId[] | Первые несколько ожидающих в зале |
addedParticipantIds | ExternalId[] | Некоторое количество участников, добавленных в зал |
removedParticipantIds | ExternalId[] | Некоторое количество участников, убранных из зала |
Returns
void
onJoinLinkChanged()?
optional onJoinLinkChanged: (joinLink) => void;Получена новая ссылка на звонок
Parameters
| Parameter | Type | Description |
|---|---|---|
joinLink | string | токен присоединения к звонку |
Returns
void
onRoomsUpdated()?
optional onRoomsUpdated: (updates) => void;Получено обновление списка сессионных залов
Parameters
| Parameter | Type | Description |
|---|---|---|
updates | Partial<Record<RoomsEventType, RoomsUpdate>> | список обновлений по залам |
Returns
void
onRoomUpdated()?
optional onRoomUpdated: (eventTypes, roomId, room, deactivate) => void;Получено обновление сессионных зало
Parameters
| Parameter | Type | Description |
|---|---|---|
eventTypes | RoomsEventType[] | список событий |
roomId | number | номер сессионного зала |
room | Room | null | сессионный зал |
deactivate | boolean | null | - |
Returns
void
onRoomParticipantsUpdated()?
optional onRoomParticipantsUpdated: (update) => void;Получение обновление списка участников в сессионном зале
Parameters
| Parameter | Type | Description |
|---|---|---|
update | RoomParticipantUpdate | обновление списка участников |
Returns
void
onRoomSwitched()?
optional onRoomSwitched: (roomId) => void;Получение информации о смене зала
Parameters
| Parameter | Type | Description |
|---|---|---|
roomId | number | null | номер сессионного зала |
Returns
void
onRoomStart()?
optional onRoomStart: (roomId) => void;Установить id сессионного зала на старте звонка
Parameters
| Parameter | Type | Description |
|---|---|---|
roomId | number | null | номер сессионного зала |
Returns
void
onFeedback()?
optional onFeedback: (feedback, roomId) => void;Получены новые реакции в звонке
Parameters
| Parameter | Type | Description |
|---|---|---|
feedback | IFeedbackExternal[] | массив с реакциями |
roomId | number | null | - |
Returns
void
onFeaturesPerRoleChanged()?
optional onFeaturesPerRoleChanged: (featuresPerRole) => void;Изменился список ролей, которым доступны ConversationFeatures
Parameters
| Parameter | Type | Description |
|---|---|---|
featuresPerRole | IFeaturesPerRole | Объект вида ключ: ConversationFeature = значение: UserRole[] (если ключ фичи отсутствует, или в ролях пустой массив, считаем фичу доступной для всех пользователей) |
Returns
void
onParticipantVmojiUpdate()?
optional onParticipantVmojiUpdate: (externalId) => void;Изменился Vmoji-аватар пользователя
Parameters
| Parameter | Type | Description |
|---|---|---|
externalId | ExternalParticipantId | Id пользователя, у которого изменился аватар |
Returns
void
onAsrStarted()?
optional onAsrStarted: (initiatorId, movieId, roomId) => void;Начата текстовая расшифровка звонка
Parameters
| Parameter | Type | Description |
|---|---|---|
initiatorId | ExternalParticipantId | Id пользователя, запустившего расшифровку звонка |
movieId | number | Id расшифровки |
roomId | number | null | Id комнаты |
Returns
void
onAsrStopped()?
optional onAsrStopped: (roomId) => void;Закончена текстовая расшифровка звонка
Parameters
| Parameter | Type | Description |
|---|---|---|
roomId | number | null | Id комнаты |
Returns
void
onAsrTranscription()?
optional onAsrTranscription: (id, text, timestamp, duration) => void;Получена расшифровка речи
Parameters
| Parameter | Type | Description |
|---|---|---|
id | ExternalParticipantId | Id пользователя, произнесшего реплику |
text | string | Текст расшифровки |
timestamp | number | Время расшифровки |
duration | number | Длительность реплики в расшифровке |
Returns
void
onAsrSet()?
optional onAsrSet: (data, roomId) => void;Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)
Parameters
| Parameter | Type | Description |
|---|---|---|
data | IAsrData | null | Начальная информация по ASR |
roomId | number | null | Id Комнаты |
Returns
void
onRemoteSharedUrl()?
optional onRemoteSharedUrl: (userId, sharedUrl, roomId) => void;Админ начал/остановил совместное использование стороннего web-приложения
Parameters
| Parameter | Type | Description |
|---|---|---|
userId | ExternalParticipantId | id участника-админа |
sharedUrl | string | undefined | url страницы |
roomId | IRoomId | - |
Returns
void
onParticipantIdChanged()?
optional onParticipantIdChanged: (prevId, newId) => void;Изменился id участника (деанонимизация)
Parameters
| Parameter | Type | Description |
|---|---|---|
prevId | ExternalParticipantId | |
newId | ExternalParticipantId |
Returns
void
onVideoSuspendSuggest()?
optional onVideoSuspendSuggest: (bandwidth) => void;Предложение включить режим автоматического отключения приёма видео в плохой сети
Parameters
| Parameter | Type | Description |
|---|---|---|
bandwidth | number | текущая полоса пропускания, kbps |
Returns
void
onPromotionApproved()?
optional onPromotionApproved: (adminParticipantId) => void;Одобрено повышение пользователя в зале ожидания/зале в режиме Audience
Parameters
| Parameter | Type | Description |
|---|---|---|
adminParticipantId | ExternalParticipantId | админ, одобривший повышение |
Returns
void
onPromoted()?
optional onPromoted: (demoted) => void;Участник повышен/разжалован в зале ожидания/зале в режиме Audience
Parameters
| Parameter | Type | Description |
|---|---|---|
demoted | boolean | участник разжалован |
Returns
void
onPeerRegistered()?
optional onPeerRegistered: () => void;Собеседник подключился к сигналлингу
Returns
void