Skip to content

@vkontakte/calls-sdk / ParamsObject

Type Alias: ParamsObject

ts
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

ts
apiKey: string;

API ключ приложения


authToken

ts
authToken: string;

Токен авторизации


anonymToken

ts
anonymToken: string;

Токен анонимной авторизации


domain

ts
domain: string;

Домен, чтобы попасть в тестовую группу. Для тестирования экспериментальных улучшений существуют отдельные сервера, чтобы собирать фидбек и уже потом раскатывать на всех юзеров. Если передать сюда специальный ключ, то конверсейшн будет обрабатываться на таком сервере.


forceRelayPolicy

ts
forceRelayPolicy: boolean;

Не отправлять в ICE-кандидатах персональные IP-адреса

See

RTCIceTransportPolicy

По умолчанию: false


videoMinWidth

ts
videoMinWidth: number;

Минимальная ширина видео в пикселях

По умолчанию: 428


videoMaxWidth

ts
videoMaxWidth: number;

Максимальная ширина видео в пикселях

По умолчанию: 1280


videoMinHeight

ts
videoMinHeight: number;

Минимальная высота видео в пикселях

По умолчанию: 240


videoMaxHeight

ts
videoMaxHeight: number;

Максимальная высота видео в пикселях

По умолчанию: 720


videoAspectRatio

ts
videoAspectRatio: number;

Соотношение сторон видео

По умолчанию: 16/9


videoFrameRate

ts
videoFrameRate: number;

FPS видео

По умолчанию: 25


videoFacingMode

ts
videoFacingMode: FacingMode | null;

Какую камеру получать с мобильного устройства

По умолчанию: FacingMode.USER для мобильных устройств и null для остальных


screenFrameRate

ts
screenFrameRate: number;

FPS трансляции экрана

По умолчанию: 15


videoEffects

ts
videoEffects: VideoEffects | null;

Экземпляр класса VideoEffects из @vkontakte/calls-video-effects

Можно установить позднее методом setVideoEffects


audioEffects

ts
audioEffects: EffectVoiceChange | null;

Экземпляр класса AudioEffects из @vkontakte/calls-audio-effects

Можно установить позднее методом setAudioEffects


videoEffectMaxWidth

ts
videoEffectMaxWidth: number;

Максимальная ширина видео в пикселях для видео эффекта

По умолчанию: 640


videoEffectMaxHeight

ts
videoEffectMaxHeight: number;

Максимальная высота видео в пикселях для видео эффекта

По умолчанию: 360


vmoji

ts
vmoji: typeof Vmoji | null;

Экземпляр класса Vmoji из @vkontakte/calls-vmoji

Можно установить позднее методом setVmoji


vmojiOptions

ts
vmojiOptions: 
  | {
  protocolVersion: Vmoji.AnimojiVersion;
  renderingOptions: Partial<Vmoji.RenderingOptions>;
}
  | null;

Настройки Vmoji


statisticsInterval

ts
statisticsInterval: number;

Частота получения статистики в миллисекундах

По умолчанию: 5000


voiceParams

ts
voiceParams: {
[key: string]: number;
};

Параметры детектора голоса

Index Signature

ts
[key: string]: number

preferH264

ts
preferH264: boolean;

Отдавать приоритет кодеку H264 для исходящего видео

По умолчанию: false


preferVP9

ts
preferVP9: boolean;

Отдавать приоритет кодеку VP9 для исходящего видео, если preferH264 тоже выставлен в true то первый приоритет будет у VP9, второй у H264

По умолчанию: false


producerScreenTrack

ts
producerScreenTrack: boolean;

Принимать параллельно видео с камеры и трансляцию экрана от одного и того же участника. Работает только при приёме экрана через дата-канал.

По умолчанию: true

Deprecated


consumerScreenTrack

ts
consumerScreenTrack: boolean;

Отдавать трансляцию экрана отдельным стримом. Работает только при отправке экрана через дата-канал.

По умолчанию: true

Deprecated


videoTracksCount

ts
videoTracksCount: number;

Количество входящих видео-треков.

Только для звонков с серверной топологией. Для прямых peer-to-peer звонков эта настройка не используется.

При значении 0 количество треков меняется динамически в зависимости от количества участников звонка.

При значении отличном от 0 количество треков фиксировано, при этом клиент должен уведомлять сервер о том, каких участников звонка он хочет видеть, через вызов updateDisplayLayout

По умолчанию: 30


useParticipantListChunk

ts
useParticipantListChunk: boolean;

Включить постраничный вывод участников. Работает только если включено videoTracksCount (слоты)

По умолчанию: false


useRooms

ts
useRooms: boolean;

Включить сессионные залы

По умолчанию: false


useChatRooms

ts
useChatRooms: boolean;

Включить чат румы

По умолчанию: false


addParticipant

ts
addParticipant: boolean;

Включить поддержку добавления участника в разговор


waitForAdminInGroupCalls

ts
waitForAdminInGroupCalls: boolean;

Включает поддержку режима WAIT_FOR_ADMIN в звонках.


participantListChunkInitIndex

ts
participantListChunkInitIndex: number;

Индекс участника для первого chunk'а который придет при установке соединения с сервером

По умолчанию: 0


participantListChunkInitCount

ts
participantListChunkInitCount: number | null;

Количество участников которые придут в первом chunk'е при установке соединения с сервером если параметр не проставлен то будет использоваться значение по умолчанию установленное на сервере


serverAudioRed

ts
serverAudioRed: boolean;

Включать RED-extension (redundancy) для групповых звонков

По умолчанию: true

Deprecated


p2pAudioRed

ts
p2pAudioRed: boolean;

Включать RED-extension (redundancy) для p2p звонков

По умолчанию: true

Deprecated


joinFromMultipleDevices

ts
joinFromMultipleDevices: boolean;

Разрешить вход в звонок одним пользователем с разных устройств одновременно

По умолчанию: false


audioShare

ts
audioShare: boolean;

Включить возможность захвата звука при трансляции экрана

По умолчанию: false


fastScreenShare

ts
fastScreenShare: boolean;

Включить поддержку динамического контента при трансляция экрана

По умолчанию: false


consumerFastScreenShare

ts
consumerFastScreenShare: boolean;

Включить отправку быстрой шары с клиента по RTP

По умолчанию: false


consumerFastScreenShareQualityOnDemand

ts
consumerFastScreenShareQualityOnDemand: boolean;

Включает отправку сервером нотификации video-quality-update

По умолчанию: false


newMuteRules

ts
newMuteRules: boolean;

Использовать новые правила allMute для админа


videoSuspend

ts
videoSuspend: boolean;

Включить поддержку приостановки видео в плохой сети.

По умолчанию: false


enableLogPerfStatReport

ts
enableLogPerfStatReport: boolean;

Включает логгирование статистики webrtc

По умолчанию: false


switchVideoAtBadNetwork

ts
switchVideoAtBadNetwork: boolean;

Поддержка переключения качества видео в зависимости от сети Только для режима p2p

По умолчанию: false


enableVideoEffectsFpsDegradation

ts
enableVideoEffectsFpsDegradation: boolean;

Включает деградацию фпс для видео с камеры при низком фпс с включенными вирт фонами

По умолчанию: false


simulcast

ts
simulcast: boolean;

Включить поддержку simulcast на отправке

По умолчанию: false


webtransport

ts
webtransport: boolean;

Включить поддержку webtransport для сигналинга

По умолчанию: false


webtransportFF

ts
webtransportFF: boolean;

Включить поддержку webtransport для сигналинга в FireFox Отдельная ручка, так как есть проблемы сейчас с FF

По умолчанию: false


onLocalStream()?

ts
optional onLocalStream: (stream, mediaSettings) => void;

Получен локальный стрим с камеры/микрофона

Parameters

ParameterType
streamMediaStream | null
mediaSettingsMediaSettings

Returns

void


onLocalStreamUpdate()?

ts
optional onLocalStreamUpdate: (mediaSettings, kind) => void;

Локальный стрим изменился

Parameters

ParameterType
mediaSettingsMediaSettings
kindMediaTrackKind

Returns

void


onScreenStream()?

ts
optional onScreenStream: (stream, mediaSettings) => void;

Локальный стрим с экрана добавлен/удалён

Parameters

ParameterType
streamMediaStream | null
mediaSettingsMediaSettings

Returns

void


onVmojiStream()?

ts
optional onVmojiStream: (stream, mediaSettings) => void;

Локальный стрим вимоджи добавлен/удалён

Parameters

ParameterType
streamMediaStream | null
mediaSettingsMediaSettings

Returns

void


onVmojiError()?

ts
optional onVmojiError: (error) => void;

Произошла ошибка вимоджи

Parameters

ParameterType
errorVmojiError

Returns

void


onLocalStatus()?

ts
optional onLocalStatus: (status) => void;

Изменился статус локального соединения

Parameters

ParameterType
statusParticipantStatus

Returns

void


onRemoteStream()?

ts
optional onRemoteStream: (userId, stream) => void;

Получен стрим собеседника. Если сервер закончил стримить собеседника, вместо стрима будет передан null

Parameters

ParameterType
userIdExternalParticipantId
streamMediaStream | null

Returns

void


onRemoteStreamSuspended()?

ts
optional onRemoteStreamSuspended: (userId, mediaType, suspended) => void;

Cтрим собеседника приостановлен/возобновлен.

Parameters

ParameterType
userIdExternalParticipantId
mediaTypeMediaType
suspendedboolean

Returns

void


onRemoteScreenStream()?

ts
optional onRemoteScreenStream: (userId, stream) => void;

Получен стрим с экрана собеседника. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null

Parameters

ParameterType
userIdExternalParticipantId
streamMediaStream | null

Returns

void


onRemoteVmojiStream()?

ts
optional onRemoteVmojiStream: (userId, stream) => void;

Получен стрим вимоджи собеседника. Если сервер закончил стримить вимоджи собеседника, вместо стрима будет передан null

Parameters

ParameterType
userIdExternalParticipantId
streamMediaStream | null

Returns

void


onRemoteLive()?

ts
optional onRemoteLive: (userId, data) => void;

Получен стрим трансляция или мувик от собеседника. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null

Parameters

ParameterType
userIdExternalParticipantId
dataIOnRemoteMovieData

Returns

void


onLocalLive()?

ts
optional onLocalLive: (userId, data) => void;

Получен собственный стрим трансляция или мувик. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null

Parameters

ParameterType
userIdExternalParticipantId
dataIOnRemoteMovieData

Returns

void


onRemoteLiveUpdate()?

ts
optional onRemoteLiveUpdate: (userId, data) => void;

Получено обновление стрима или лайва от собеседника.

Parameters

ParameterType
userIdExternalParticipantId
dataISharedMovieState

Returns

void


onLocalLiveUpdate()?

ts
optional onLocalLiveUpdate: (userId, data) => void;

Получено обновление собственного стрима или лайва.

Parameters

ParameterType
userIdExternalParticipantId
dataISharedMovieState

Returns

void


onConversation()?

ts
optional onConversation: (userId, mediaModifiers, muteStates, participants, rooms?) => void;

Начат звонок

Parameters

ParameterType
userIdExternalParticipantId
mediaModifiersMediaModifiers
muteStatesMuteStates
participantsExternalParticipant[]
rooms?Rooms

Returns

void


onConversationParticipantListChunk()?

ts
optional onConversationParticipantListChunk: (chunk) => void;

Начальный список участников для постраничного звонка

Parameters

ParameterType
chunkExternalParticipantListChunk

Returns

void


onRemoteMediaSettings()?

ts
optional onRemoteMediaSettings: (userId, mediaSettings, markers) => void;

Изменились данные стрима собеседника

Parameters

ParameterType
userIdExternalParticipantId
mediaSettingsMediaSettings
markersExternalParticipantMarkers | null

Returns

void


onLocalMediaSettings()?

ts
optional onLocalMediaSettings: (userId, mediaSettings) => void;

Изменились данные стрима собеседника

Parameters

ParameterType
userIdExternalParticipantId
mediaSettingsMediaSettings

Returns

void


onRemoteSharedMovieInfo()?

ts
optional onRemoteSharedMovieInfo: (userId, sharedMovieInfo, roomId?) => void;

Полученны данные по стримам (лайв/мувик) от собеседника

Parameters

ParameterType
userIdExternalParticipantId
sharedMovieInfoISharedMovieInfo
roomId?IRoomId

Returns

void


onRemoteSharedMovieStoppedInfo()?

ts
optional onRemoteSharedMovieStoppedInfo: (userId, sharedMovieStoppedInfo, roomId?) => void;

Полученны данные по остановленным стримам (лайв/мувик) от собеседника

Parameters

ParameterType
userIdExternalParticipantId
sharedMovieStoppedInfoISharedMovieStoppedInfo
roomId?IRoomId

Returns

void


onLocalSharedMovieInfo()?

ts
optional onLocalSharedMovieInfo: (userId, sharedMovieInfo, roomId?) => void;

Полученны данные по собственным стримам (лайв/мувик)

Parameters

ParameterType
userIdExternalParticipantId
sharedMovieInfoISharedMovieInfo
roomId?IRoomId

Returns

void


onLocalSharedMovieStoppedInfo()?

ts
optional onLocalSharedMovieStoppedInfo: (userId, sharedMovieStoppedInfo, roomId?) => void;

Полученны данные по собственным остановленным стримам (лайв/мувик)

Parameters

ParameterType
userIdExternalParticipantId
sharedMovieStoppedInfoISharedMovieStoppedInfo
roomId?IRoomId

Returns

void


onParticipantAdded()?

ts
optional onParticipantAdded: (userId, markers) => void;

Добавили участника

Parameters

ParameterType
userIdExternalParticipantId
markersExternalParticipantMarkers | null

Returns

void


onParticipantJoined()?

ts
optional onParticipantJoined: (userId, markers) => void;

Участник присоединился к звонку

Parameters

ParameterType
userIdExternalParticipantId
markersExternalParticipantMarkers

Returns

void


onLocalParticipantState()?

ts
optional onLocalParticipantState: (participantState, global) => void;

Получены данные по изменению локальных состояний со стороны админа Например, принудительно опущена рука

Parameters

ParameterTypeDescription
participantStateParticipantStateMappedПолный объект состояния участника, полученный от SDK/сервера.
globalbooleantrue – действие глобальное (для всех участников), false – действие локальное (только у текущего пользователя).

Returns

void


onRemoteParticipantState()?

ts
optional onRemoteParticipantState: (userId, participantState, markers) => void;

Изменились данные состояний собеседника

Parameters

ParameterType
userIdExternalParticipantId
participantStateParticipantStateMapped
markersExternalParticipantMarkers | null

Returns

void


onRemoteParticipantsState()?

ts
optional onRemoteParticipantsState: (stateList, roomId?) => void;

Изменились данные состояний нескольких собеседников

Parameters

ParameterType
stateListParticipantsStateList
roomId?IRoomId

Returns

void


onRemoteStatus()?

ts
optional onRemoteStatus: (userIds, status, data) => void;

Изменился статус соединения собеседников

Parameters

ParameterType
userIdsExternalParticipantId[]
statusParticipantStatus
dataany

Returns

void


onPermissionsRequested()?

ts
optional onPermissionsRequested: () => void;

Разрешения на доступы были запрошены в браузере

Returns

void


onPermissionsError()?

ts
optional onPermissionsError: (error, original) => void;

Ошибка получения трека с камеры или микрофона

Parameters

ParameterType
errorFatalError
originalError

Returns

void


onRemoteRemoved()?

ts
optional onRemoteRemoved: (userId, markers) => void;

Пользователь отключился от звонка

Parameters

ParameterType
userIdExternalParticipantId
markersExternalParticipantMarkers | null

Returns

void


onCallState()?

ts
optional onCallState: (isCallActive, canAddParticipants, conversation) => void;

Изменилось состояние звонка

Parameters

ParameterType
isCallActiveboolean
canAddParticipantsboolean
conversationConversationData

Returns

void


onDeviceSwitched()?

ts
optional onDeviceSwitched: (mediaOption, enabled) => void;

Изменилось состояние камеры или микрофона

Parameters

ParameterType
mediaOptionMediaOption
enabledboolean

Returns

void


onMuteStates()?

ts
optional onMuteStates: (muteStates, unmuteOptions, mediaOptions, muteAll, unmute, userId, adminId, stateUpdated?, requestedMedia?, roomId?) => void;

Изменились состояния устройств пользователя или разрешения включать камеру/микрофон

Parameters

ParameterType
muteStatesMuteStates
unmuteOptionsMediaOption[]
mediaOptionsMediaOption[]
muteAllboolean
unmuteboolean
userId| ExternalParticipantId | null
adminId| ExternalParticipantId | null
stateUpdated?boolean
requestedMedia?MediaOption[]
roomId?number | null

Returns

void


onRolesChanged()?

ts
optional onRolesChanged: (userId, roles, isInitial?) => void;

Изменились роли собеседника в звонке

Parameters

ParameterType
userIdExternalParticipantId
rolesUserRole[]
isInitial?boolean

Returns

void


onLocalRolesChanged()?

ts
optional onLocalRolesChanged: (roles, isInitial?) => void;

Изменились свои роли в звонке

Parameters

ParameterType
rolesUserRole[]
isInitial?boolean

Returns

void


onPinnedParticipant()?

ts
optional onPinnedParticipant: (userId, unpin, markers, roomId?) => void;

Закрепляет/открепляет собеседника для всех

Parameters

ParameterType
userIdExternalParticipantId
unpinboolean
markersExternalParticipantMarkers | null
roomId?number | null

Returns

void


onLocalPin()?

ts
optional onLocalPin: (unpin) => void;

Закрепляет/открепляет текущего пользователя у других собеседников

Parameters

ParameterType
unpinboolean

Returns

void


onOptionsChanged()?

ts
optional onOptionsChanged: (options) => void;

Изменились опции звонка

Parameters

ParameterType
optionsConversationOption[]

Returns

void


onSpeakerChanged()?

ts
optional onSpeakerChanged: (userId) => void;

Изменился говорящий в звонке

Parameters

ParameterType
userIdExternalParticipantId

Returns

void


onVolumesDetected()?

ts
optional onVolumesDetected: (volumes) => void;

Громкость собеседников

Parameters

ParameterType
volumes{ uid: ExternalParticipantId; volume: number; }[]

Returns

void


onLocalVolume()?

ts
optional onLocalVolume: (volume, isMicEnabled) => void;

Громкость своего микрофона

Parameters

ParameterType
volumenumber
isMicEnabledboolean

Returns

void


onHangup()?

ts
optional onHangup: (type, conversationId) => void;

Звонок был завершен

Parameters

ParameterType
typeHangupReason | Error
conversationIdstring | null

Returns

void


onCallAccepted()?

ts
optional onCallAccepted: () => void;

Входящий звонок был принят мной

Returns

void


onAcceptedCall()?

ts
optional onAcceptedCall: (userId, capabilities) => void;

Исходящий звонок был принят кем-то

Parameters

ParameterTypeDescription
userIdExternalParticipantId
capabilitiesParticipantCapabilities-

Returns

void


onDeviceChange()?

ts
optional onDeviceChange: () => void;

Список устройств изменился

Returns

void


onFingerprintChange()?

ts
optional onFingerprintChange: (fingerprint) => void;

Изменилась подпись звонка 1:1

Parameters

ParameterType
fingerprintstring

Returns

void


onTokenExpired()?

ts
optional onTokenExpired: () => void;

Требуется обновление токена

Returns

void


onChatMessage()?

ts
optional onChatMessage: (message, from, direct) => void;

Получено сообщение чата

Parameters

ParameterType
messagestring
fromExternalParticipantId
directboolean

Returns

void


onCustomData()?

ts
optional onCustomData: (data, from, direct) => void;

Получены данные от собеседника

Parameters

ParameterType
dataJSONObject
fromExternalParticipantId
directboolean

Returns

void


onRecordStarted()?

ts
optional onRecordStarted: (initiator, movieId, startTime, type, externalMovieId?, externalOwnerId?, roomId?) => void;

Начата трансляция/запись звонка

Parameters

ParameterType
initiatorExternalParticipantId
movieIdnumber
startTimenumber
type"STREAM" | "RECORD"
externalMovieId?string
externalOwnerId?string
roomId?number | null

Returns

void


onRecordStopped()?

ts
optional onRecordStopped: (roomId, stopBy) => void;

Закончена трансляция/запись звонка

Parameters

ParameterType
roomIdnumber | null
stopBy| ExternalParticipantId | null

Returns

void


onLocalNetworkStatusChanged()?

ts
optional onLocalNetworkStatusChanged: (rating) => void;

Состояние своей сети

Parameters

ParameterTypeDescription
ratingnumberОценка качества соединения от 0 до 1

Returns

void


onNetworkStatusChanged()?

ts
optional onNetworkStatusChanged: (status) => void;

Состояние сети участников

Parameters

ParameterTypeDescription
status{ uid: ExternalParticipantId; rating: number; }[]Оценки качества соединения участников от 0 до 1

Returns

void


onDebugMessage()?

ts
optional onDebugMessage: (type, ...args) => void;

Получено отладочное сообщение. Работает только при выключенном режиме отладки

Parameters

ParameterType
typeDebugMessageType
...argsany[]

Returns

void


onStatistics()?

ts
optional onStatistics: (stats) => void;

Статистика звонка

Parameters

ParameterType
stats{ }

Returns

void


onAutoplayError()?

ts
optional onAutoplayError: () => void;

Ошибка воспроизведения звука

Returns

void


onChatRoomUpdated()?

ts
optional onChatRoomUpdated: (eventType, totalCount, firstParticipants, addedParticipantIds, removedParticipantIds) => void;

Изменилось состояние зала ожидания/зала в режиме Audience

Parameters

ParameterTypeDescription
eventTypeChatRoomEventTypeТип события
totalCountnumberКоличество ожидающих/слушателей
firstParticipantsExternalId[]Первые несколько ожидающих в зале
addedParticipantIdsExternalId[]Некоторое количество участников, добавленных в зал
removedParticipantIdsExternalId[]Некоторое количество участников, убранных из зала

Returns

void


onJoinLinkChanged()?

ts
optional onJoinLinkChanged: (joinLink) => void;

Получена новая ссылка на звонок

Parameters

ParameterTypeDescription
joinLinkstringтокен присоединения к звонку

Returns

void


onRoomsUpdated()?

ts
optional onRoomsUpdated: (updates) => void;

Получено обновление списка сессионных залов

Parameters

ParameterTypeDescription
updatesPartial<Record<RoomsEventType, RoomsUpdate>>список обновлений по залам

Returns

void


onRoomUpdated()?

ts
optional onRoomUpdated: (eventTypes, roomId, room, deactivate) => void;

Получено обновление сессионных зало

Parameters

ParameterTypeDescription
eventTypesRoomsEventType[]список событий
roomIdnumberномер сессионного зала
roomRoom | nullсессионный зал
deactivateboolean | null-

Returns

void


onRoomParticipantsUpdated()?

ts
optional onRoomParticipantsUpdated: (update) => void;

Получение обновление списка участников в сессионном зале

Parameters

ParameterTypeDescription
updateRoomParticipantUpdateобновление списка участников

Returns

void


onRoomSwitched()?

ts
optional onRoomSwitched: (roomId) => void;

Получение информации о смене зала

Parameters

ParameterTypeDescription
roomIdnumber | nullномер сессионного зала

Returns

void


onRoomStart()?

ts
optional onRoomStart: (roomId) => void;

Установить id сессионного зала на старте звонка

Parameters

ParameterTypeDescription
roomIdnumber | nullномер сессионного зала

Returns

void


onFeedback()?

ts
optional onFeedback: (feedback, roomId) => void;

Получены новые реакции в звонке

Parameters

ParameterTypeDescription
feedbackIFeedbackExternal[]массив с реакциями
roomIdnumber | null-

Returns

void


onFeaturesPerRoleChanged()?

ts
optional onFeaturesPerRoleChanged: (featuresPerRole) => void;

Изменился список ролей, которым доступны ConversationFeatures

Parameters

ParameterTypeDescription
featuresPerRoleIFeaturesPerRoleОбъект вида ключ: ConversationFeature = значение: UserRole[] (если ключ фичи отсутствует, или в ролях пустой массив, считаем фичу доступной для всех пользователей)

Returns

void


onParticipantVmojiUpdate()?

ts
optional onParticipantVmojiUpdate: (externalId) => void;

Изменился Vmoji-аватар пользователя

Parameters

ParameterTypeDescription
externalIdExternalParticipantIdId пользователя, у которого изменился аватар

Returns

void


onAsrStarted()?

ts
optional onAsrStarted: (initiatorId, movieId, roomId) => void;

Начата текстовая расшифровка звонка

Parameters

ParameterTypeDescription
initiatorIdExternalParticipantIdId пользователя, запустившего расшифровку звонка
movieIdnumberId расшифровки
roomIdnumber | nullId комнаты

Returns

void


onAsrStopped()?

ts
optional onAsrStopped: (roomId) => void;

Закончена текстовая расшифровка звонка

Parameters

ParameterTypeDescription
roomIdnumber | nullId комнаты

Returns

void


onAsrTranscription()?

ts
optional onAsrTranscription: (id, text, timestamp, duration) => void;

Получена расшифровка речи

Parameters

ParameterTypeDescription
idExternalParticipantIdId пользователя, произнесшего реплику
textstringТекст расшифровки
timestampnumberВремя расшифровки
durationnumberДлительность реплики в расшифровке

Returns

void


onAsrSet()?

ts
optional onAsrSet: (data, roomId) => void;

Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)

Parameters

ParameterTypeDescription
dataIAsrData | nullНачальная информация по ASR
roomIdnumber | nullId Комнаты

Returns

void


onRemoteSharedUrl()?

ts
optional onRemoteSharedUrl: (userId, sharedUrl, roomId) => void;

Админ начал/остановил совместное использование стороннего web-приложения

Parameters

ParameterTypeDescription
userIdExternalParticipantIdid участника-админа
sharedUrlstring | undefinedurl страницы
roomIdIRoomId-

Returns

void


onParticipantIdChanged()?

ts
optional onParticipantIdChanged: (prevId, newId) => void;

Изменился id участника (деанонимизация)

Parameters

ParameterTypeDescription
prevIdExternalParticipantId
newIdExternalParticipantId

Returns

void


onVideoSuspendSuggest()?

ts
optional onVideoSuspendSuggest: (bandwidth) => void;

Предложение включить режим автоматического отключения приёма видео в плохой сети

Parameters

ParameterTypeDescription
bandwidthnumberтекущая полоса пропускания, kbps

Returns

void


onPromotionApproved()?

ts
optional onPromotionApproved: (adminParticipantId) => void;

Одобрено повышение пользователя в зале ожидания/зале в режиме Audience

Parameters

ParameterTypeDescription
adminParticipantIdExternalParticipantIdадмин, одобривший повышение

Returns

void


onPromoted()?

ts
optional onPromoted: (demoted) => void;

Участник повышен/разжалован в зале ожидания/зале в режиме Audience

Parameters

ParameterTypeDescription
demotedbooleanучастник разжалован

Returns

void


onPeerRegistered()?

ts
optional onPeerRegistered: () => void;

Собеседник подключился к сигналлингу

Returns

void