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;
    participantListChunkInitIndex: number;
    participantListChunkInitCount: number | null;
    serverAudioRed: boolean;
    p2pAudioRed: boolean;
    joinFromMultipleDevices: boolean;
    audioShare: boolean;
    fastScreenShare: boolean;
    newMuteRules: boolean;
    videoSuspend: boolean;
    enableLogPerfStatReport: 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) => 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, conversationId: string | null) => void);
    onCallAccepted?: (() => void);
    onAcceptedCall?: ((userId: ExternalParticipantId) => 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) => 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);
    switchVideoAtBadNetwork: boolean;
    enableVideoEffectsFpsDegradation: boolean;
}

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

Type declaration

  • apiKey: string

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

  • authToken: string

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

  • anonymToken: string

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

  • domain: string

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

  • forceRelayPolicy: boolean

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

    See

    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;
    }

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

    Property

    number

    Множитель уровня громкости при переключении активного говорящего

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

    Property

    number

    Значение сглаживания громкости [0..1]

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

    • [key: string]: number
  • preferH264: boolean

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

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

  • preferVP9: boolean

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

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

  • producerScreenTrack: boolean

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

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

    Deprecated

  • consumerScreenTrack: boolean

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

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

    Deprecated

  • videoTracksCount: number

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

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

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

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

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

  • useParticipantListChunk: boolean

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

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

  • useRooms: boolean

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

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

  • useChatRooms: boolean

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

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

  • participantListChunkInitIndex: number

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

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

  • participantListChunkInitCount: number | null

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

  • serverAudioRed: boolean

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

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

    Deprecated

  • p2pAudioRed: boolean

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

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

    Deprecated

  • joinFromMultipleDevices: boolean

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

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

  • audioShare: boolean

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

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

  • fastScreenShare: boolean

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

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

  • newMuteRules: boolean

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

  • videoSuspend: boolean

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

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

  • enableLogPerfStatReport: boolean

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

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

  • Optional onLocalStream?: ((stream: MediaStream | null, mediaSettings: MediaSettings) => void)
      • (stream: MediaStream | null, mediaSettings: MediaSettings): void
      • Получен локальный стрим с камеры/микрофона

        Parameters

        Returns void

  • Optional onLocalStreamUpdate?: ((mediaSettings: MediaSettings, kind: MediaTrackKind) => void)
  • Optional onScreenStream?: ((stream: MediaStream | null, mediaSettings: MediaSettings) => void)
      • (stream: MediaStream | null, mediaSettings: MediaSettings): void
      • Локальный стрим с экрана добавлен/удалён

        Parameters

        Returns void

  • Optional onVmojiStream?: ((stream: MediaStream | null, mediaSettings: MediaSettings) => void)
      • (stream: MediaStream | null, mediaSettings: MediaSettings): void
      • Локальный стрим вимоджи добавлен/удалён

        Parameters

        Returns void

  • Optional onVmojiError?: ((error: VmojiError) => void)
      • (error: VmojiError): void
      • Произошла ошибка вимоджи

        Parameters

        Returns void

  • Optional onLocalStatus?: ((status: ParticipantStatus) => void)
  • Optional onRemoteStream?: ((userId: ExternalParticipantId, stream: MediaStream | null) => void)
      • (userId: ExternalParticipantId, stream: MediaStream | null): void
      • Получен стрим собеседника. Если сервер закончил стримить собеседника, вместо стрима будет передан null

        Parameters

        Returns void

  • Optional onRemoteStreamSuspended?: ((userId: ExternalParticipantId, mediaType: MediaType, suspended: boolean) => void)
  • Optional onRemoteScreenStream?: ((userId: ExternalParticipantId, stream: MediaStream | null) => void)
      • (userId: ExternalParticipantId, stream: MediaStream | null): void
      • Получен стрим с экрана собеседника. Если сервер закончил стримить экран собеседника, вместо стрима будет передан null

        Parameters

        Returns void

  • Optional onRemoteVmojiStream?: ((userId: ExternalParticipantId, stream: MediaStream | null) => void)
      • (userId: ExternalParticipantId, stream: MediaStream | null): void
      • Получен стрим вимоджи собеседника. Если сервер закончил стримить вимоджи собеседника, вместо стрима будет передан null

        Parameters

        Returns void

  • Optional onRemoteLive?: ((userId: ExternalParticipantId, data: IOnRemoteMovieData) => void)
  • Optional onLocalLive?: ((userId: ExternalParticipantId, data: IOnRemoteMovieData) => void)
  • Optional onRemoteLiveUpdate?: ((userId: ExternalParticipantId, data: ISharedMovieState) => void)
  • Optional onLocalLiveUpdate?: ((userId: ExternalParticipantId, data: ISharedMovieState) => void)
  • Optional onConversation?: ((userId: ExternalParticipantId, mediaModifiers: MediaModifiers, muteStates: MuteStates, participants: ExternalParticipant[], rooms?: Rooms) => void)
  • Optional onConversationParticipantListChunk?: ((chunk: ExternalParticipantListChunk) => void)
  • Optional onRemoteMediaSettings?: ((userId: ExternalParticipantId, mediaSettings: MediaSettings, markers: ExternalParticipantMarkers | null) => void)
  • Optional onLocalMediaSettings?: ((userId: ExternalParticipantId, mediaSettings: MediaSettings) => void)
  • Optional onRemoteSharedMovieInfo?: ((userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void)
  • Optional onRemoteSharedMovieStoppedInfo?: ((userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void)
  • Optional onLocalSharedMovieInfo?: ((userId: ExternalParticipantId, sharedMovieInfo: ISharedMovieInfo, roomId?: IRoomId) => void)
  • Optional onLocalSharedMovieStoppedInfo?: ((userId: ExternalParticipantId, sharedMovieStoppedInfo: ISharedMovieStoppedInfo, roomId?: IRoomId) => void)
  • Optional onParticipantAdded?: ((userId: ExternalParticipantId, markers: ExternalParticipantMarkers | null) => void)
  • Optional onParticipantJoined?: ((userId: ExternalParticipantId, markers: ExternalParticipantMarkers) => void)
  • Optional onLocalParticipantState?: ((participantState: ParticipantStateMapped) => void)
      • (participantState: ParticipantStateMapped): void
      • Получены данные по изменению локальных состояний со стороны админа Например, принудительно опущена рука

        Parameters

        Returns void

  • Optional onRemoteParticipantState?: ((userId: ExternalParticipantId, participantState: ParticipantStateMapped, markers: ExternalParticipantMarkers | null) => void)
  • Optional onRemoteParticipantsState?: ((stateList: ParticipantsStateList, roomId?: IRoomId) => void)
  • Optional onRemoteStatus?: ((userIds: ExternalParticipantId[], status: ParticipantStatus, data: any) => void)
  • Optional onPermissionsRequested?: (() => void)
      • (): void
      • Разрешения на доступы были запрошены в браузере

        Returns void

  • Optional onPermissionsError?: ((error: FatalError, original: Error) => void)
      • (error: FatalError, original: Error): void
      • Ошибка получения трека с камеры или микрофона

        Parameters

        Returns void

  • Optional onRemoteRemoved?: ((userId: ExternalParticipantId, markers: ExternalParticipantMarkers | null) => void)
  • Optional onCallState?: ((isCallActive: boolean, canAddParticipants: boolean, conversation: ConversationData) => void)
      • (isCallActive: boolean, canAddParticipants: boolean, conversation: ConversationData): void
      • Изменилось состояние звонка

        Parameters

        • isCallActive: boolean
        • canAddParticipants: boolean
        • conversation: ConversationData

        Returns void

  • Optional onDeviceSwitched?: ((mediaOption: MediaOption, enabled: boolean) => void)
      • (mediaOption: MediaOption, enabled: boolean): void
      • Изменилось состояние камеры или микрофона

        Parameters

        Returns void

  • Optional 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)
  • Optional onRolesChanged?: ((userId: ExternalParticipantId, roles: UserRole[], isInitial?: boolean) => void)
  • Optional onLocalRolesChanged?: ((roles: UserRole[], isInitial?: boolean) => void)
      • (roles: UserRole[], isInitial?: boolean): void
      • Изменились свои роли в звонке

        Parameters

        • roles: UserRole[]
        • Optional isInitial: boolean

        Returns void

  • Optional onPinnedParticipant?: ((userId: ExternalParticipantId, unpin: boolean, markers: ExternalParticipantMarkers | null, roomId?: number | null) => void)
  • Optional onLocalPin?: ((unpin: boolean) => void)
      • (unpin: boolean): void
      • Закрепляет/открепляет текущего пользователя у других собеседников

        Parameters

        • unpin: boolean

        Returns void

  • Optional onOptionsChanged?: ((options: ConversationOption[]) => void)
  • Optional onRateNeeded?: Function
  • Optional onSpeakerChanged?: ((userId: ExternalParticipantId) => void)
  • Optional onVolumesDetected?: ((volumes: {
        uid: ExternalParticipantId;
        volume: number;
    }[]) => void)
      • (volumes: {
            uid: ExternalParticipantId;
            volume: number;
        }[]): void
      • Громкость собеседников

        Parameters

        Returns void

  • Optional onLocalVolume?: ((volume: number, isMicEnabled: boolean) => void)
      • (volume: number, isMicEnabled: boolean): void
      • Громкость своего микрофона

        Parameters

        • volume: number
        • isMicEnabled: boolean

        Returns void

  • Optional onJoinStatus?: Function
  • Optional onHangup?: ((type: HangupReason, conversationId: string | null) => void)
      • (type: HangupReason, conversationId: string | null): void
      • Звонок был завершен

        Parameters

        Returns void

  • Optional onCallAccepted?: (() => void)
      • (): void
      • Входящий звонок был принят мной

        Returns void

  • Optional onAcceptedCall?: ((userId: ExternalParticipantId) => void)
  • Optional onDeviceChange?: (() => void)
      • (): void
      • Список устройств изменился

        Returns void

  • Optional onMultipartyChatCreated?: ((conversation: ConversationData) => void)
  • Optional onFingerprintChange?: ((fingerprint: string) => void)
      • (fingerprint: string): void
      • Изменилась подпись звонка 1:1

        Parameters

        • fingerprint: string

        Returns void

  • Optional onTokenExpired?: (() => void)
      • (): void
      • Требуется обновление токена

        Returns void

  • Optional onChatMessage?: ((message: string, from: ExternalParticipantId, direct: boolean) => void)
  • Optional onCustomData?: ((data: JSONObject, from: ExternalParticipantId, direct: boolean) => void)
  • Optional onRecordStarted?: ((initiator: ExternalParticipantId, movieId: number, startTime: number, type: "STREAM" | "RECORD", externalMovieId?: string, externalOwnerId?: string, roomId?: number | null) => void)
      • (initiator: ExternalParticipantId, movieId: number, startTime: number, type: "STREAM" | "RECORD", externalMovieId?: string, externalOwnerId?: string, roomId?: number | null): void
      • Начата трансляция/запись звонка

        Parameters

        • initiator: ExternalParticipantId
        • movieId: number
        • startTime: number
        • type: "STREAM" | "RECORD"
        • Optional externalMovieId: string
        • Optional externalOwnerId: string
        • Optional roomId: number | null

        Returns void

  • Optional onRecordStopped?: ((roomId: number | null) => void)
      • (roomId: number | null): void
      • Закончена трансляция/запись звонка

        Parameters

        • roomId: number | null

        Returns void

  • Optional onLocalNetworkStatusChanged?: ((rating: number) => void)
      • (rating: number): void
      • Состояние своей сети

        Parameters

        • rating: number

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

        Returns void

  • Optional onNetworkStatusChanged?: ((status: {
        uid: ExternalParticipantId;
        rating: number;
    }[]) => void)
      • (status: {
            uid: ExternalParticipantId;
            rating: number;
        }[]): void
      • Состояние сети участников

        Parameters

        • status: {
              uid: ExternalParticipantId;
              rating: number;
          }[]

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

        Returns void

  • Optional onDebugMessage?: ((type: DebugMessageType, ...args: any[]) => void)
      • (type: DebugMessageType, ...args: any[]): void
      • Получено отладочное сообщение. Работает только при выключенном режиме отладки

        Parameters

        Returns void

  • Optional onStatistics?: ((stats: {}) => void)
      • (stats: {}): void
      • Статистика звонка

        Parameters

        • stats: {}

          Returns void

    • Optional onAutoplayError?: (() => void)
        • (): void
        • Ошибка воспроизведения звука

          Returns void

    • Optional onChatRoomUpdated?: ((eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]) => void)
        • (eventType: ChatRoomEventType, totalCount: number, firstParticipants: ExternalId[], addedParticipantIds: ExternalId[], removedParticipantIds: ExternalId[]): void
        • Изменилось состояние зала ожидания/зала в режиме Audience

          Parameters

          • eventType: ChatRoomEventType

            Тип события

          • totalCount: number

            Количество ожидающих/слушателей

          • firstParticipants: ExternalId[]

            Первые несколько ожидающих в зале

          • addedParticipantIds: ExternalId[]

            Некоторое количество участников, добавленных в зал

          • removedParticipantIds: ExternalId[]

            Некоторое количество участников, убранных из зала

          Returns void

    • Optional onJoinLinkChanged?: ((joinLink: string) => void)
        • (joinLink: string): void
        • Получена новая ссылка на звонок

          Parameters

          • joinLink: string

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

          Returns void

    • Optional onRoomsUpdated?: ((updates: Partial<Record<RoomsEventType, RoomsUpdate>>) => void)
        • (updates: Partial<Record<RoomsEventType, RoomsUpdate>>): void
        • Получено обновление списка сессионных залов

          Parameters

          Returns void

    • Optional onRoomUpdated?: ((eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null) => void)
        • (eventTypes: RoomsEventType[], roomId: number, room: Room | null, deactivate: boolean | null): void
        • Получено обновление сессионных зало

          Parameters

          • eventTypes: RoomsEventType[]

            список событий

          • roomId: number

            номер сессионного зала

          • room: Room | null

            сессионный зал

          • deactivate: boolean | null

          Returns void

    • Optional onRoomParticipantsUpdated?: ((update: RoomParticipantUpdate) => void)
        • (update: RoomParticipantUpdate): void
        • Получение обновление списка участников в сессионном зале

          Parameters

          Returns void

    • Optional onRoomSwitched?: ((roomId: number | null) => void)
        • (roomId: number | null): void
        • Получение информации о смене зала

          Parameters

          • roomId: number | null

            номер сессионного зала

          Returns void

    • Optional onRoomStart?: ((roomId: number | null) => void)
        • (roomId: number | null): void
        • Установить id сессионного зала на старте звонка

          Parameters

          • roomId: number | null

            номер сессионного зала

          Returns void

    • Optional onFeedback?: ((feedback: IFeedbackExternal[], roomId: number | null) => void)
        • (feedback: IFeedbackExternal[], roomId: number | null): void
        • Получены новые реакции в звонке

          Parameters

          • feedback: IFeedbackExternal[]

            массив с реакциями

          • roomId: number | null

          Returns void

    • Optional onFeaturesPerRoleChanged?: ((featuresPerRole: IFeaturesPerRole) => void)
        • (featuresPerRole: IFeaturesPerRole): void
        • Изменился список ролей, которым доступны ConversationFeatures

          Parameters

          • featuresPerRole: IFeaturesPerRole

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

          Returns void

    • Optional onParticipantVmojiUpdate?: ((externalId: ExternalParticipantId) => void)
        • (externalId: ExternalParticipantId): void
        • Изменился Vmoji-аватар пользователя

          Parameters

          • externalId: ExternalParticipantId

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

          Returns void

    • Optional onAsrStarted?: ((initiatorId: ExternalParticipantId, movieId: number, roomId: number | null) => void)
        • (initiatorId: ExternalParticipantId, movieId: number, roomId: number | null): void
        • Начата текстовая расшифровка звонка

          Parameters

          • initiatorId: ExternalParticipantId

            Id пользователя, запустившего расшифровку звонка

          • movieId: number

            Id расшифровки

          • roomId: number | null

            Id комнаты

          Returns void

    • Optional onAsrStopped?: ((roomId: number | null) => void)
        • (roomId: number | null): void
        • Закончена текстовая расшифровка звонка

          Parameters

          • roomId: number | null

            Id комнаты

          Returns void

    • Optional onAsrTranscription?: ((id: ExternalParticipantId, text: string, timestamp: number, duration: number) => void)
        • (id: ExternalParticipantId, text: string, timestamp: number, duration: number): void
        • Получена расшифровка речи

          Parameters

          • id: ExternalParticipantId

            Id пользователя, произнесшего реплику

          • text: string

            Текст расшифровки

          • timestamp: number

            Время расшифровки

          • duration: number

            Длительность реплики в расшифровке

          Returns void

    • Optional onAsrSet?: ((data: IAsrData | null, roomId: number | null) => void)
        • (data: IAsrData | null, roomId: number | null): void
        • Установка начальных параметров текстовой расшифровки звонка. (Используется при входе в звонок/ смене комнаты)

          Parameters

          • data: IAsrData | null

            Начальная информация по ASR

          • roomId: number | null

            Id Комнаты

          Returns void

    • Optional onRemoteSharedUrl?: ((userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId) => void)
        • (userId: ExternalParticipantId, sharedUrl: string | undefined, roomId: IRoomId): void
        • Админ начал/остановил совместное использование стороннего web-приложения

          Parameters

          Returns void

    • Optional onParticipantIdChanged?: ((prevId: ExternalParticipantId, newId: ExternalParticipantId) => void)
    • Optional onVideoSuspendSuggest?: ((bandwidth: number) => void)
        • (bandwidth: number): void
        • Предложение включить режим автоматического отключения приёма видео в плохой сети

          Parameters

          • bandwidth: number

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

          Returns void

    • Optional onPromotionApproved?: ((adminParticipantId: ExternalParticipantId) => void)
        • (adminParticipantId: ExternalParticipantId): void
        • Одобрено повышение пользователя в зале ожидания/зале в режиме Audience

          Parameters

          Returns void

    • Optional onPromoted?: ((demoted: boolean) => void)
        • (demoted: boolean): void
        • Участник повышен/разжалован в зале ожидания/зале в режиме Audience

          Parameters

          • demoted: boolean

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

          Returns void

    • Optional onPeerRegistered?: (() => void)
        • (): void
        • Собеседник подключился к сигналлингу

          Returns void

    • switchVideoAtBadNetwork: boolean

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

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

    • enableVideoEffectsFpsDegradation: boolean

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