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: MediaStream | null,
        mediaSettings: MediaSettings,
    ) => void;
    onLocalStreamUpdate?: (
        mediaSettings: MediaSettings,
        kind: MediaTrackKind,
    ) => void;
    onScreenStream?: (
        stream: MediaStream | null,
        mediaSettings: MediaSettings,
    ) => void;
    onVmojiStream?: (
        stream: MediaStream | null,
        mediaSettings: MediaSettings,
    ) => void;
    onVmojiError?: (error: VmojiError) => void;
    onLocalStatus?: (status: ParticipantStatus) => void;
    onRemoteStream?: (
        userId: ExternalParticipantId,
        stream: MediaStream | null,
    ) => void;
    onRemoteStreamSuspended?: (
        userId: ExternalParticipantId,
        mediaType: MediaType,
        suspended: boolean,
    ) => void;
    onRemoteScreenStream?: (
        userId: ExternalParticipantId,
        stream: MediaStream | null,
    ) => void;
    onRemoteVmojiStream?: (
        userId: ExternalParticipantId,
        stream: MediaStream | null,
    ) => void;
    onRemoteLive?: (
        userId: ExternalParticipantId,
        data: IOnRemoteMovieData,
    ) => void;
    onLocalLive?: (
        userId: ExternalParticipantId,
        data: IOnRemoteMovieData,
    ) => void;
    onRemoteLiveUpdate?: (
        userId: ExternalParticipantId,
        data: ISharedMovieState,
    ) => void;
    onLocalLiveUpdate?: (
        userId: ExternalParticipantId,
        data: ISharedMovieState,
    ) => void;
    onConversation?: (
        userId: ExternalParticipantId,
        mediaModifiers: MediaModifiers,
        muteStates: MuteStates,
        participants: ExternalParticipant[],
        rooms?: Rooms,
    ) => void;
    onConversationParticipantListChunk?: (
        chunk: ExternalParticipantListChunk,
    ) => void;
    onRemoteMediaSettings?: (
        userId: ExternalParticipantId,
        mediaSettings: MediaSettings,
        markers: ExternalParticipantMarkers | null,
    ) => void;
    onLocalMediaSettings?: (
        userId: ExternalParticipantId,
        mediaSettings: MediaSettings,
    ) => void;
    onRemoteSharedMovieInfo?: (
        userId: ExternalParticipantId,
        sharedMovieInfo: ISharedMovieInfo,
        roomId?: IRoomId,
    ) => void;
    onRemoteSharedMovieStoppedInfo?: (
        userId: ExternalParticipantId,
        sharedMovieStoppedInfo: ISharedMovieStoppedInfo,
        roomId?: IRoomId,
    ) => void;
    onLocalSharedMovieInfo?: (
        userId: ExternalParticipantId,
        sharedMovieInfo: ISharedMovieInfo,
        roomId?: IRoomId,
    ) => void;
    onLocalSharedMovieStoppedInfo?: (
        userId: ExternalParticipantId,
        sharedMovieStoppedInfo: ISharedMovieStoppedInfo,
        roomId?: IRoomId,
    ) => void;
    onParticipantAdded?: (
        userId: ExternalParticipantId,
        markers: ExternalParticipantMarkers | null,
    ) => void;
    onParticipantJoined?: (
        userId: ExternalParticipantId,
        markers: ExternalParticipantMarkers,
    ) => void;
    onLocalParticipantState?: (
        participantState: ParticipantStateMapped,
        global: boolean,
    ) => void;
    onRemoteParticipantState?: (
        userId: ExternalParticipantId,
        participantState: ParticipantStateMapped,
        markers: ExternalParticipantMarkers | null,
    ) => void;
    onRemoteParticipantsState?: (
        stateList: ParticipantsStateList,
        roomId?: IRoomId,
    ) => void;
    onRemoteStatus?: (
        userIds: ExternalParticipantId[],
        status: ParticipantStatus,
        data: any,
    ) => void;
    onPermissionsRequested?: () => void;
    onPermissionsError?: (error: FatalError, original: Error) => void;
    onRemoteRemoved?: (
        userId: ExternalParticipantId,
        markers: ExternalParticipantMarkers | null,
    ) => void;
    onCallState?: (
        isCallActive: boolean,
        canAddParticipants: boolean,
        conversation: ConversationData,
    ) => void;
    onDeviceSwitched?: (mediaOption: MediaOption, enabled: boolean) => void;
    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;
    onRolesChanged?: (
        userId: ExternalParticipantId,
        roles: UserRole[],
        isInitial?: boolean,
    ) => void;
    onLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean) => void;
    onPinnedParticipant?: (
        userId: ExternalParticipantId,
        unpin: boolean,
        markers: ExternalParticipantMarkers | null,
        roomId?: number | null,
    ) => void;
    onLocalPin?: (unpin: boolean) => void;
    onOptionsChanged?: (options: ConversationOption[]) => void;
    onRateNeeded?: Function;
    onSpeakerChanged?: (userId: ExternalParticipantId) => void;
    onVolumesDetected?: (
        volumes: { uid: ExternalParticipantId; volume: number }[],
    ) => void;
    onLocalVolume?: (volume: number, isMicEnabled: boolean) => void;
    onJoinStatus?: Function;
    onHangup?: (
        type: HangupReason | Error,
        conversationId: string | null,
    ) => void;
    onCallAccepted?: () => void;
    onAcceptedCall?: (
        userId: ExternalParticipantId,
        capabilities: ParticipantCapabilities,
    ) => void;
    onDeviceChange?: () => void;
    onMultipartyChatCreated?: (conversation: ConversationData) => void;
    onFingerprintChange?: (fingerprint: string) => void;
    onTokenExpired?: () => void;
    onChatMessage?: (
        message: string,
        from: ExternalParticipantId,
        direct: boolean,
    ) => void;
    onCustomData?: (
        data: JSONObject,
        from: ExternalParticipantId,
        direct: boolean,
    ) => void;
    onRecordStarted?: (
        initiator: ExternalParticipantId,
        movieId: number,
        startTime: number,
        type: "STREAM" | "RECORD",
        externalMovieId?: string,
        externalOwnerId?: string,
        roomId?: number | null,
    ) => void;
    onRecordStopped?: (
        roomId: number | null,
        stopBy: ExternalParticipantId | null,
    ) => void;
    onLocalNetworkStatusChanged?: (rating: number) => void;
    onNetworkStatusChanged?: (
        status: { uid: ExternalParticipantId; rating: number }[],
    ) => void;
    onDebugMessage?: (type: DebugMessageType, ...args: any[]) => void;
    onStatistics?: (stats: {}) => void;
    onAutoplayError?: () => void;
    onChatRoomUpdated?: (
        eventType: ChatRoomEventType,
        totalCount: number,
        firstParticipants: ExternalId[],
        addedParticipantIds: ExternalId[],
        removedParticipantIds: ExternalId[],
    ) => void;
    onJoinLinkChanged?: (joinLink: string) => void;
    onRoomsUpdated?: (
        updates: Partial<Record<RoomsEventType, RoomsUpdate>>,
    ) => void;
    onRoomUpdated?: (
        eventTypes: RoomsEventType[],
        roomId: number,
        room: Room | null,
        deactivate: boolean | null,
    ) => void;
    onRoomParticipantsUpdated?: (update: RoomParticipantUpdate) => void;
    onRoomSwitched?: (roomId: number | null) => void;
    onRoomStart?: (roomId: number | null) => void;
    onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null) => void;
    onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole) => void;
    onParticipantVmojiUpdate?: (externalId: ExternalParticipantId) => void;
    onAsrStarted?: (
        initiatorId: ExternalParticipantId,
        movieId: number,
        roomId: number | null,
    ) => void;
    onAsrStopped?: (roomId: number | null) => void;
    onAsrTranscription?: (
        id: ExternalParticipantId,
        text: string,
        timestamp: number,
        duration: number,
    ) => void;
    onAsrSet?: (data: IAsrData | null, roomId: number | null) => void;
    onRemoteSharedUrl?: (
        userId: ExternalParticipantId,
        sharedUrl: string | undefined,
        roomId: IRoomId,
    ) => void;
    onParticipantIdChanged?: (
        prevId: ExternalParticipantId,
        newId: ExternalParticipantId,
    ) => void;
    onVideoSuspendSuggest?: (bandwidth: number) => void;
    onPromotionApproved?: (adminParticipantId: ExternalParticipantId) => void;
    onPromoted?: (demoted: boolean) => void;
    onPeerRegistered?: () => void;
}

Параметры инициализации

Type declaration

  • apiKey: string

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

  • authToken: string

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

  • anonymToken: string

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

  • domain: string

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

  • forceRelayPolicy: boolean

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

    RTCIceTransportPolicy

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

  • videoMinWidth: number

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

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

  • videoMaxWidth: number

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

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

  • videoMinHeight: number

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

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

  • videoMaxHeight: number

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

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

  • videoAspectRatio: number

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

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

  • videoFrameRate: number

    FPS видео

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

  • videoFacingMode: FacingMode | null

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

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

  • screenFrameRate: number

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

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

  • videoEffects: VideoEffects | null

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

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

  • audioEffects: EffectVoiceChange | null

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

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

  • videoEffectMaxWidth: number

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

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

  • videoEffectMaxHeight: number

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

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

  • vmoji: typeof Vmoji | null

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

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

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

    Настройки Vmoji

  • statisticsInterval: number

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

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

  • voiceParams: { [key: string]: number }

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

  • preferH264: boolean

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

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

  • preferVP9: boolean

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

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

  • producerScreenTrack: boolean

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

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

  • consumerScreenTrack: boolean

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

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

  • videoTracksCount: number

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

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

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

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

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

  • useParticipantListChunk: boolean

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

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

  • useRooms: boolean

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

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

  • useChatRooms: boolean

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

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

  • addParticipant: boolean

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

  • waitForAdminInGroupCalls: boolean

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

  • participantListChunkInitIndex: number

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

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

  • participantListChunkInitCount: number | null

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

  • serverAudioRed: boolean

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

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

  • p2pAudioRed: boolean

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

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

  • joinFromMultipleDevices: boolean

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

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

  • audioShare: boolean

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

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

  • fastScreenShare: boolean

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

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

  • consumerFastScreenShare: boolean

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

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

  • consumerFastScreenShareQualityOnDemand: boolean

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

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

  • newMuteRules: boolean

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

  • videoSuspend: boolean

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

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

  • enableLogPerfStatReport: boolean

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

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

  • switchVideoAtBadNetwork: boolean

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

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

  • enableVideoEffectsFpsDegradation: boolean

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

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

  • simulcast: boolean

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

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

  • webtransport: boolean

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

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

  • webtransportFF: boolean

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

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

  • OptionalonLocalStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void

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

  • OptionalonLocalStreamUpdate?: (mediaSettings: MediaSettings, kind: MediaTrackKind) => void

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

  • OptionalonScreenStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void

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

  • OptionalonVmojiStream?: (stream: MediaStream | null, mediaSettings: MediaSettings) => void

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

  • OptionalonVmojiError?: (error: VmojiError) => void

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

  • OptionalonLocalStatus?: (status: ParticipantStatus) => void

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

  • OptionalonRemoteStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void

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

  • OptionalonRemoteStreamSuspended?: (
        userId: ExternalParticipantId,
        mediaType: MediaType,
        suspended: boolean,
    ) => void

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

  • OptionalonRemoteScreenStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void

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

  • OptionalonRemoteVmojiStream?: (userId: ExternalParticipantId, stream: MediaStream | null) => void

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

  • OptionalonRemoteLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void

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

  • OptionalonLocalLive?: (userId: ExternalParticipantId, data: IOnRemoteMovieData) => void

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

  • OptionalonRemoteLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void

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

  • OptionalonLocalLiveUpdate?: (userId: ExternalParticipantId, data: ISharedMovieState) => void

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

  • OptionalonConversation?: (
        userId: ExternalParticipantId,
        mediaModifiers: MediaModifiers,
        muteStates: MuteStates,
        participants: ExternalParticipant[],
        rooms?: Rooms,
    ) => void

    Начат звонок

  • OptionalonConversationParticipantListChunk?: (chunk: ExternalParticipantListChunk) => void

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

  • OptionalonRemoteMediaSettings?: (
        userId: ExternalParticipantId,
        mediaSettings: MediaSettings,
        markers: ExternalParticipantMarkers | null,
    ) => void

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

  • OptionalonLocalMediaSettings?: (userId: ExternalParticipantId, mediaSettings: MediaSettings) => void

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

  • OptionalonRemoteSharedMovieInfo?: (
        userId: ExternalParticipantId,
        sharedMovieInfo: ISharedMovieInfo,
        roomId?: IRoomId,
    ) => void

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

  • OptionalonRemoteSharedMovieStoppedInfo?: (
        userId: ExternalParticipantId,
        sharedMovieStoppedInfo: ISharedMovieStoppedInfo,
        roomId?: IRoomId,
    ) => void

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

  • OptionalonLocalSharedMovieInfo?: (
        userId: ExternalParticipantId,
        sharedMovieInfo: ISharedMovieInfo,
        roomId?: IRoomId,
    ) => void

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

  • OptionalonLocalSharedMovieStoppedInfo?: (
        userId: ExternalParticipantId,
        sharedMovieStoppedInfo: ISharedMovieStoppedInfo,
        roomId?: IRoomId,
    ) => void

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

  • OptionalonParticipantAdded?: (
        userId: ExternalParticipantId,
        markers: ExternalParticipantMarkers | null,
    ) => void

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

  • OptionalonParticipantJoined?: (userId: ExternalParticipantId, markers: ExternalParticipantMarkers) => void

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

  • OptionalonLocalParticipantState?: (participantState: ParticipantStateMapped, global: boolean) => void

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

  • OptionalonRemoteParticipantState?: (
        userId: ExternalParticipantId,
        participantState: ParticipantStateMapped,
        markers: ExternalParticipantMarkers | null,
    ) => void

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

  • OptionalonRemoteParticipantsState?: (stateList: ParticipantsStateList, roomId?: IRoomId) => void

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

  • OptionalonRemoteStatus?: (userIds: ExternalParticipantId[], status: ParticipantStatus, data: any) => void

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

  • OptionalonPermissionsRequested?: () => void

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

  • OptionalonPermissionsError?: (error: FatalError, original: Error) => void

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

  • OptionalonRemoteRemoved?: (
        userId: ExternalParticipantId,
        markers: ExternalParticipantMarkers | null,
    ) => void

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

  • OptionalonCallState?: (
        isCallActive: boolean,
        canAddParticipants: boolean,
        conversation: ConversationData,
    ) => void

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

  • OptionalonDeviceSwitched?: (mediaOption: MediaOption, enabled: boolean) => void

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

  • OptionalonMuteStates?: (
        muteStates: MuteStates,
        unmuteOptions: MediaOption[],
        mediaOptions: MediaOption[],
        muteAll: boolean,
        unmute: boolean,
        userId: ExternalParticipantId | null,
        adminId: ExternalParticipantId | null,
        stateUpdated?: boolean,
        requestedMedia?: MediaOption[],
        roomId?: number | null,
    ) => void

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

  • OptionalonRolesChanged?: (userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean) => void

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

  • OptionalonLocalRolesChanged?: (roles: UserRole[], isInitial?: boolean) => void

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

  • OptionalonPinnedParticipant?: (
        userId: ExternalParticipantId,
        unpin: boolean,
        markers: ExternalParticipantMarkers | null,
        roomId?: number | null,
    ) => void

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

  • OptionalonLocalPin?: (unpin: boolean) => void

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

  • OptionalonOptionsChanged?: (options: ConversationOption[]) => void

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

  • OptionalonRateNeeded?: Function
  • OptionalonSpeakerChanged?: (userId: ExternalParticipantId) => void

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

  • OptionalonVolumesDetected?: (volumes: { uid: ExternalParticipantId; volume: number }[]) => void

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

  • OptionalonLocalVolume?: (volume: number, isMicEnabled: boolean) => void

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

  • OptionalonJoinStatus?: Function
  • OptionalonHangup?: (type: HangupReason | Error, conversationId: string | null) => void

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

  • OptionalonCallAccepted?: () => void

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

  • OptionalonAcceptedCall?: (userId: ExternalParticipantId, capabilities: ParticipantCapabilities) => void

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

  • OptionalonDeviceChange?: () => void

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

  • OptionalonMultipartyChatCreated?: (conversation: ConversationData) => void
  • OptionalonFingerprintChange?: (fingerprint: string) => void

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

  • OptionalonTokenExpired?: () => void

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

  • OptionalonChatMessage?: (message: string, from: ExternalParticipantId, direct: boolean) => void

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

  • OptionalonCustomData?: (data: JSONObject, from: ExternalParticipantId, direct: boolean) => void

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

  • OptionalonRecordStarted?: (
        initiator: ExternalParticipantId,
        movieId: number,
        startTime: number,
        type: "STREAM" | "RECORD",
        externalMovieId?: string,
        externalOwnerId?: string,
        roomId?: number | null,
    ) => void

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

  • OptionalonRecordStopped?: (roomId: number | null, stopBy: ExternalParticipantId | null) => void

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

  • OptionalonLocalNetworkStatusChanged?: (rating: number) => void

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

  • OptionalonNetworkStatusChanged?: (status: { uid: ExternalParticipantId; rating: number }[]) => void

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

  • OptionalonDebugMessage?: (type: DebugMessageType, ...args: any[]) => void

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

  • OptionalonStatistics?: (stats: {}) => void

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

  • OptionalonAutoplayError?: () => void

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

  • OptionalonChatRoomUpdated?: (
        eventType: ChatRoomEventType,
        totalCount: number,
        firstParticipants: ExternalId[],
        addedParticipantIds: ExternalId[],
        removedParticipantIds: ExternalId[],
    ) => void

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

  • OptionalonJoinLinkChanged?: (joinLink: string) => void

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

  • OptionalonRoomsUpdated?: (updates: Partial<Record<RoomsEventType, RoomsUpdate>>) => void

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

  • OptionalonRoomUpdated?: (
        eventTypes: RoomsEventType[],
        roomId: number,
        room: Room | null,
        deactivate: boolean | null,
    ) => void

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

  • OptionalonRoomParticipantsUpdated?: (update: RoomParticipantUpdate) => void

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

  • OptionalonRoomSwitched?: (roomId: number | null) => void

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

  • OptionalonRoomStart?: (roomId: number | null) => void

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

  • OptionalonFeedback?: (feedback: IFeedbackExternal[], roomId: number | null) => void

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

  • OptionalonFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole) => void

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

  • OptionalonParticipantVmojiUpdate?: (externalId: ExternalParticipantId) => void

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

  • OptionalonAsrStarted?: (
        initiatorId: ExternalParticipantId,
        movieId: number,
        roomId: number | null,
    ) => void

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

  • OptionalonAsrStopped?: (roomId: number | null) => void

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

  • OptionalonAsrTranscription?: (
        id: ExternalParticipantId,
        text: string,
        timestamp: number,
        duration: number,
    ) => void

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

  • OptionalonAsrSet?: (data: IAsrData | null, roomId: number | null) => void

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

  • OptionalonRemoteSharedUrl?: (
        userId: ExternalParticipantId,
        sharedUrl: string | undefined,
        roomId: IRoomId,
    ) => void

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

  • OptionalonParticipantIdChanged?: (prevId: ExternalParticipantId, newId: ExternalParticipantId) => void

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

  • OptionalonVideoSuspendSuggest?: (bandwidth: number) => void

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

  • OptionalonPromotionApproved?: (adminParticipantId: ExternalParticipantId) => void

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

  • OptionalonPromoted?: (demoted: boolean) => void

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

  • OptionalonPeerRegistered?: () => void

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