Package-level declarations

Types

Link copied to clipboard
@Serializable
data class AllMembersData(val members: List<Participant> = emptyList(), val requests: List<Request> = emptyList(), val settings: List<String> = emptyList(), val coHost: String? = null, val coHostResponsibilities: List<CoHostResponsibility> = emptyList())
Link copied to clipboard
data class AllMembersOptions(val members: List<Participant>, val requests: List<Request>, val settings: List<String>, val coHost: String, val coHostRes: List<CoHostResponsibility>, val parameters: AllMembersParameters, val consumeSockets: List<ConsumeSocket>, val apiUserName: String, val apiKey: String?, val apiToken: String)
Link copied to clipboard
@Serializable
data class AllMembersRestData(val members: List<Participant> = emptyList(), val settings: List<String> = emptyList(), val coHost: String? = null, val coHostResponsibilities: List<CoHostResponsibility> = emptyList())
Link copied to clipboard
data class AllMembersRestOptions(val members: List<Participant>, val settings: List<String>, val coHost: String, val coHostRes: List<CoHostResponsibility>, val parameters: AllMembersRestParameters, val consumeSockets: List<ConsumeSocket>, val apiUserName: String, val apiKey: String?, val apiToken: String)
Link copied to clipboard
Link copied to clipboard
typealias AllMembersType = suspend (AllMembersOptions) -> Unit
Link copied to clipboard
@Serializable
data class AllWaitingRoomMembersData(val waitingParticipants: List<WaitingRoomParticipant>? = null, val waitingParticipantss: List<WaitingRoomParticipant>? = null)
Link copied to clipboard
data class AllWaitingRoomMembersOptions(val waitingParticipants: List<WaitingRoomParticipant>, val updateWaitingRoomList: (List<WaitingRoomParticipant>) -> Unit, val updateTotalReqWait: (Int) -> Unit)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class AltDomains(val data: Map<String, Any?> = emptyMap())
Link copied to clipboard
@Serializable
data class AudioConstraints(val echoCancellation: Boolean = true, val noiseSuppression: Boolean = true, val autoGainControl: Boolean = true, val deviceId: String? = null, val sampleRate: Int? = null, val channelCount: Int? = null, val latency: Double? = null, val volume: Double? = null)

Audio constraints for media capture

Link copied to clipboard

Alias to consumer-side audio decibel model to keep shared contracts aligned.

Link copied to clipboard

Enum representing the type of virtual background.

Link copied to clipboard
data class BanParticipantOptions(val name: String, val parameters: BanParticipantParameters)
Link copied to clipboard
Link copied to clipboard
data class BreakoutParticipant(val name: String, val breakRoom: Int? = null)

Represents a participant in a breakout room.

Link copied to clipboard
@Serializable
data class BreakoutRoomUpdatedData(val forHost: Boolean? = null, val newRoom: Int? = null, val members: List<Participant> = emptyList(), val breakoutRooms: List<List<BreakoutParticipant>> = emptyList(), val status: String? = null)
Link copied to clipboard

ICE candidate type

Link copied to clipboard
Link copied to clipboard
@Serializable
data class CoHostResponsibility(val name: String, val value: Boolean, val dedicated: Boolean)
Link copied to clipboard

Connection state

Link copied to clipboard
data class ConnectIpsOptions(val consumeSockets: List<ConsumeSocket>, val remoteIps: List<String>, val apiUserName: String, val apiKey: String?, val apiToken: String, val parameters: ConnectIpsParameters)
Link copied to clipboard
Link copied to clipboard
data class ConnectLocalIpsOptions(val socket: SocketManager?, val parameters: ConnectLocalIpsParameters)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class ConsumeDataOptions(val id: String, val dataProducerId: String, val sctpStreamParameters: SctpStreamParameters, val label: String = "", val protocol: String = "", val appData: Map<String, Any?> = emptyMap())

Options for consuming data

Link copied to clipboard
data class ConsumeOptions(val id: String, val producerId: String, val kind: MediaKind, val rtpParameters: RtpParameters, val paused: Boolean = false, val appData: Map<String, Any?> = emptyMap())

Options for consuming media

Link copied to clipboard
data class Consumer(val id: String, val producerId: String, val kind: MediaKind, val rtpParameters: RtpParameters, val paused: Boolean = false, val producerPaused: Boolean = false, val priority: Int = 1, val appData: Map<String, Any?> = emptyMap())

Represents a media consumer (receiver)

Link copied to clipboard
interface ConsumerLike

Abstraction for consumers that can be closed asynchronously.

Link copied to clipboard
data class ConsumerStats(val consumerId: String, val timestamp: Long, val kind: MediaKind, val mimeType: String, val bytesReceived: Long = 0, val packetsReceived: Long = 0, val packetsLost: Long = 0, val framesDecoded: Long? = null, val framesReceived: Long? = null, val framesDropped: Long? = null, val bitrate: Long? = null, val jitter: Double? = null)

Consumer statistics

Link copied to clipboard

Abstraction for transports that can be closed asynchronously.

Link copied to clipboard
typealias ConsumeSocket = Map<String, Any?>
Link copied to clipboard
data class ControlMediaHostOptions(val type: String, val parameters: ControlMediaHostParameters)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class Credentials(val apiUserName: String = "", val apiKey: String = "")

API credentials for MediaSFU authentication

Link copied to clipboard

Credential type for ICE servers

Link copied to clipboard
data class DataConsumer(val id: String, val dataProducerId: String, val sctpStreamParameters: SctpStreamParameters, val label: String, val protocol: String, val appData: Map<String, Any?> = emptyMap())

Data consumer for non-media data channels

Link copied to clipboard
data class DataProducer(val id: String, val sctpStreamParameters: SctpStreamParameters, val label: String, val protocol: String, val appData: Map<String, Any?> = emptyMap())

Data producer for non-media data channels

Link copied to clipboard
data class DeviceInfo(val loaded: Boolean = false, val rtpCapabilities: RtpCapabilities? = null, val sctpCapabilities: SctpCapabilities? = null, val canProduce: Map<MediaKind, Boolean> = emptyMap())

Mediasoup device information

Link copied to clipboard
data class DimensionConstraints(val ideal: Int? = null, val min: Int? = null, val max: Int? = null, val exact: Int? = null)

Represents constraint values for a media dimension.

Link copied to clipboard
data class DisconnectOptions(val showAlert: ShowAlert?, val redirectUrl: String?, val onWeb: Boolean, val updateValidated: (Boolean) -> Unit?)
Link copied to clipboard
typealias DisconnectType = suspend (DisconnectOptions) -> Unit
Link copied to clipboard
data class DisconnectUserSelfOptions(val member: String, val roomName: String, val socket: SocketLike?, val localSocket: SocketLike?)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class DispSpecs(val nameTags: Boolean, val backgroundColor: String, val nameTagsColor: String, val orientationVideo: String)
Link copied to clipboard
data class DtlsParameters(val role: DtlsRole? = null, val fingerprints: List<Fingerprint>)

DTLS (Datagram Transport Layer Security) parameters

Link copied to clipboard

DTLS role

Link copied to clipboard
@Serializable
enum EventType : Enum<EventType>
Link copied to clipboard
@Serializable
enum FacingMode : Enum<FacingMode>

Camera facing mode

Link copied to clipboard
data class Fingerprint(val algorithm: String, val value: String)

DTLS fingerprint for secure connection

Link copied to clipboard

Flexible serializer for List Handles socket.io JSONArray conversion issues

Link copied to clipboard

Custom serializer that handles server inconsistencies where a list field might be sent as:

Link copied to clipboard

Flexible serializer for List Handles socket.io JSONArray conversion issues

Link copied to clipboard

Flexible serializer for List Handles socket.io JSONArray conversion issues

Link copied to clipboard
object FlexibleStringListSerializer : KSerializer<List<String>>

Flexible serializer for List

Link copied to clipboard
data class GetDomainsOptions(val domains: List<String>, val altDomains: AltDomains, val apiUserName: String, val apiKey: String?, val apiToken: String, val parameters: GetDomainsParameters)
Link copied to clipboard
Link copied to clipboard
typealias GetDomainsType = suspend (GetDomainsOptions) -> Unit
Link copied to clipboard
data class HostRequestResponseOptions(val requestResponse: RequestResponse, val showAlert: ShowAlert?, val requestList: List<Request>, val updateRequestList: (List<Request>) -> Unit, val updateMicAction: (Boolean) -> Unit, val updateVideoAction: (Boolean) -> Unit, val updateScreenAction: (Boolean) -> Unit, val updateChatAction: (Boolean) -> Unit, val updateAudioRequestState: (String) -> Unit, val updateVideoRequestState: (String) -> Unit, val updateScreenRequestState: (String) -> Unit, val updateChatRequestState: (String) -> Unit, val updateAudioRequestTime: (Long?) -> Unit, val updateVideoRequestTime: (Long?) -> Unit, val updateScreenRequestTime: (Long?) -> Unit, val updateChatRequestTime: (Long?) -> Unit, val updateRequestIntervalSeconds: Int)
Link copied to clipboard
data class IceCandidate(val foundation: String, val priority: Long, val ip: String, val protocol: TransportProtocol, val port: Int, val type: CandidateType, val tcpType: TcpType? = null, val generation: Int? = null, val networkId: Int? = null, val networkCost: Int? = null)

ICE candidate for establishing peer connection

Link copied to clipboard
data class IceParameters(val usernameFragment: String, val password: String, val iceLite: Boolean? = null)

ICE (Interactive Connectivity Establishment) parameters

Link copied to clipboard
data class IceServer(val urls: List<String>, val username: String? = null, val credential: String? = null, val credentialType: CredentialType = CredentialType.PASSWORD)

ICE server configuration

Link copied to clipboard

ICE connection state

Link copied to clipboard

ICE transport policy

Link copied to clipboard

Enum representing the different line types for shapes.

Link copied to clipboard
@Serializable
data class MainSpecs(val mediaOptions: String, val audioOptions: String, val videoOptions: String, val videoType: String, val videoOptimized: Boolean, val recordingDisplayType: String, val addHls: Boolean)
Link copied to clipboard
@Serializable
data class MediaConfig(val autoStartAudio: Boolean = false, val autoStartVideo: Boolean = false, val autoStartScreenShare: Boolean = false, val audioPaused: Boolean = false, val videoPaused: Boolean = false, val screenSharePaused: Boolean = false, val chatSetting: String = "allow", val audioSetting: String = "allow", val videoSetting: String = "allow", val screenshareSetting: String = "allow")

Media configuration

Link copied to clipboard
@Serializable
data class MediaDeviceInfo(val deviceId: String, val kind: MediaDeviceKind, val label: String, val groupId: String)

Media device information

Link copied to clipboard
@Serializable
enum MediaDeviceKind : Enum<MediaDeviceKind>

Media device kind

Link copied to clipboard

Media kind (audio or video)

Link copied to clipboard
@Serializable
data class MediaSfuConfig(val apiUrl: String = "https://mediasfu.com", val socketUrl: String = "https://mediasfu.com", val apiKey: String? = null, val apiUserName: String? = null, val apiToken: String? = null, val recordingConfig: RecordingConfig = RecordingConfig(), val mediaConfig: MediaConfig = MediaConfig(), val socketConfig: SocketConfig = SocketConfig())

Main SDK configuration

Link copied to clipboard
@Serializable
data class MediaStreamConstraints(val audio: AudioConstraints? = null, val video: VideoConstraints? = null)

Media stream constraints for audio/video capture

Link copied to clipboard

Minimal abstraction around a media stream to toggle track activity in platform code.

Link copied to clipboard
@Serializable
data class MediaStreamDescriptor(val id: String? = null, val producerId: String, val muted: Boolean = false, val name: String? = null, val audioId: String? = null, val videoId: String? = null, val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard
@Serializable
data class MeetingEndedData(val redirectUrl: String? = null, val onWeb: Boolean? = null, val eventType: EventType? = null)
Link copied to clipboard
data class MeetingEndedOptions(val showAlert: ShowAlert?, val redirectUrl: String?, val onWeb: Boolean, val eventType: EventType, val updateValidated: (Boolean) -> Unit?)
Link copied to clipboard
typealias MeetingEndedType = suspend (MeetingEndedOptions) -> Unit
Link copied to clipboard
@Serializable
data class MeetingRoomParams(val itemPageLimit: Int, val mediaType: String, val addCoHost: Boolean, val targetOrientation: String, val targetOrientationHost: String, val targetResolution: String, val targetResolutionHost: String, val type: String, val audioSetting: String, val videoSetting: String, val screenshareSetting: String, val chatSetting: String)
Link copied to clipboard
data class MeetingStillThereOptions(val updateIsConfirmHereModalVisible: (Boolean) -> Unit)
Link copied to clipboard
Link copied to clipboard
data class MeetingTimeRemainingOptions(val timeRemaining: Int, val eventType: EventType, val showAlert: ShowAlert?)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class Message(val sender: String, val receivers: List<String> = emptyList(), val message: String, val timestamp: String, val group: Boolean, val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard
data class NumSctpStreams(val OS: Int, val MIS: Int)

Number of SCTP streams

Link copied to clipboard
Link copied to clipboard
@Serializable
data class Participant(val id: String? = null, val audioID: String = "", val videoID: String = "", val ScreenID: String? = null, val ScreenOn: Boolean = false, val islevel: String? = null, val isAdmin: Boolean = false, val isHost: Boolean = false, val name: String, val muted: Boolean = false, val isBanned: Boolean = false, val isSuspended: Boolean = false, val useBoard: Boolean = false, val breakRoom: Int? = null, val videoOn: Boolean = false, val audioOn: Boolean = false, val requests: List<Request> = emptyList(), val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard
@Serializable
data class ParticipantRequestedData(val userRequest: Request? = null)
Link copied to clipboard
data class ParticipantRequestedOptions(val userRequest: Request, val requestList: List<Request>, val waitingRoomList: List<WaitingRoomParticipant>, val updateTotalReqWait: (Int) -> Unit, val updateRequestList: (List<Request>) -> Unit)
Link copied to clipboard
@Serializable
data class PersonJoinedData(val name: String? = null)
Link copied to clipboard
data class PersonJoinedOptions(val name: String, val showAlert: ShowAlert? = null)

Kotlin replica of PersonJoinedOptions from mediasfu_sdk/lib/producers/socket_receive_methods/person_joined.dart.

Link copied to clipboard
@Serializable
data class Poll(val id: String? = null, val question: String, val type: String? = null, val options: List<String> = emptyList(), val votes: List<Int> = emptyList(), val status: String? = null, val voters: Map<String, Int> = emptyMap())
Link copied to clipboard
@Serializable
data class PollUpdatedData(val polls: List<Poll>? = null, val poll: Poll, val status: String)
Link copied to clipboard
Link copied to clipboard

Default preset backgrounds available in the SDK.

Link copied to clipboard
data class ProduceDataOptions(val ordered: Boolean = true, val maxPacketLifeTime: Int? = null, val maxRetransmits: Int? = null, val label: String = "", val protocol: String = "", val appData: Map<String, Any?> = emptyMap())

Options for producing data

Link copied to clipboard
data class ProduceOptions(val kind: MediaKind, val rtpParameters: RtpParameters, val paused: Boolean = false, val appData: Map<String, Any?> = emptyMap(), val zeroRtpOnPause: Boolean = false, val disableTrackOnPause: Boolean = true, val stopTracks: Boolean = true)

Options for producing media

Link copied to clipboard
data class Producer(val id: String, val kind: MediaKind, val rtpParameters: RtpParameters, val paused: Boolean = false, val maxSpatialLayer: Int? = null, val appData: Map<String, Any?> = emptyMap(), val producerLabel: String? = null)

Represents a media producer (sender)

Link copied to clipboard
data class ProducerMediaClosedOptions(val producerId: String, val kind: String, val parameters: ProducerMediaClosedParameters)
Link copied to clipboard

Contract describing the dependencies required by the producer media closed handler.

Link copied to clipboard
data class ProducerMediaPausedOptions(val producerId: String, val kind: String, val name: String, val parameters: ProducerMediaPausedParameters)
Link copied to clipboard
data class ProducerMediaResumedOptions(val name: String, val kind: String, val parameters: ProducerMediaResumedParameters)
Link copied to clipboard
data class ProducerStats(val producerId: String, val timestamp: Long, val kind: MediaKind, val mimeType: String, val bytesSent: Long = 0, val packetsSent: Long = 0, val packetsLost: Long = 0, val framesEncoded: Long? = null, val framesSent: Long? = null, val bitrate: Long? = null, val roundTripTime: Double? = null)

Producer statistics

Link copied to clipboard
data class ReceiveMessageOptions(val message: Message, val messages: List<Message>, val participantsAll: List<Participant>, val member: String, val eventType: EventType, val isLevel: String, val coHost: String, val updateMessages: (List<Message>) -> Unit, val updateShowMessagesBadge: (Boolean) -> Unit)
Link copied to clipboard
@Serializable
data class RecordingConfig(val recordingMediaOptions: String = "video", val recordingAudioOptions: String = "all", val recordingVideoOptions: String = "all", val recordingVideoType: String = "fullDisplay", val recordingDisplayType: String = "video", val recordingNameTags: Boolean = true, val recordingBackgroundColor: String = "#000000", val recordingNameTagsColor: String = "#FFFFFF", val recordingOrientationVideo: String = "landscape", val recordingAddHLS: Boolean = false, val recordingAddText: Boolean = false, val recordingCustomText: String = "", val recordingCustomTextPosition: String = "top", val recordingCustomTextColor: String = "#FFFFFF")

Recording configuration

Link copied to clipboard
data class RecordingNoticeOptions(val state: String, val userRecordingParams: UserRecordingParams?, val pauseCount: Int, val timeDone: Int, val parameters: RecordingNoticeParameters)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class RecordingParams(val recordingAudioPausesLimit: Int, val recordingAudioSupport: Boolean, val recordingAudioPeopleLimit: Int, val recordingAudioParticipantsTimeLimit: Int, val recordingVideoPausesLimit: Int, val recordingVideoSupport: Boolean, val recordingVideoPeopleLimit: Int, val recordingVideoParticipantsTimeLimit: Int, val recordingAllParticipantsSupport: Boolean, val recordingVideoParticipantsSupport: Boolean, val recordingAllParticipantsFullRoomSupport: Boolean, val recordingVideoParticipantsFullRoomSupport: Boolean, val recordingPreferredOrientation: String, val recordingSupportForOtherOrientation: Boolean, val recordingMultiFormatsSupport: Boolean, val recordingHlsSupport: Boolean, val recordingAudioPausesCount: Int? = null, val recordingVideoPausesCount: Int? = null)
Link copied to clipboard
@Serializable
data class RecordParameters(val recordingAudioPausesLimit: Int = 0, val recordingAudioPausesCount: Int = 0, val recordingAudioSupport: Boolean = false, val recordingAudioPeopleLimit: Int = 0, val recordingAudioParticipantsTimeLimit: Int = 0, val recordingVideoPausesCount: Int = 0, val recordingVideoPausesLimit: Int = 0, val recordingVideoSupport: Boolean = false, val recordingVideoPeopleLimit: Int = 0, val recordingVideoParticipantsTimeLimit: Int = 0, val recordingAllParticipantsSupport: Boolean = false, val recordingVideoParticipantsSupport: Boolean = false, val recordingAllParticipantsFullRoomSupport: Boolean = false, val recordingVideoParticipantsFullRoomSupport: Boolean = false, val recordingPreferredOrientation: String = "landscape", val recordingSupportForOtherOrientation: Boolean = false, val recordingMultiFormatsSupport: Boolean = false)
Link copied to clipboard
data class RecvTransportOptions(val id: String, val iceParameters: IceParameters, val iceCandidates: List<IceCandidate>, val dtlsParameters: DtlsParameters, val sctpParameters: SctpParameters? = null, val iceServers: List<IceServer> = emptyList(), val iceTransportPolicy: IceTransportPolicy = IceTransportPolicy.ALL, val additionalSettings: Map<String, Any?> = emptyMap(), val proprietaryConstraints: Map<String, Any?> = emptyMap(), val appData: Map<String, Any?> = emptyMap())

Options for creating a receive transport

Link copied to clipboard
data class ReInitiateRecordingOptions(val roomName: String, val member: String, val socket: SocketLike?, val adminRestrictSetting: Boolean = false)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
data class Request(val id: String, val icon: String, val name: String? = null, val username: String? = null, val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard
@Serializable
data class RequestResponse(val id: String, val icon: String? = null, val name: String? = null, val username: String? = null, val action: String? = null, val type: String? = null, val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard
Link copied to clipboard
@Serializable
data class RoomCreationOptions(val action: String, val meetingId: String, val durationMinutes: Int, val capacity: Int, val userName: String, val scheduledDateEpochMillis: Long? = null, val secureCode: String? = null, val eventType: EventType = EventType.NONE, val recordOnly: Boolean = false, val eventStatus: String = "inactive", val startIndex: Int = 0, val pageSize: Int = 50, val safeRoom: Boolean = false, val autoStartSafeRoom: Boolean = false, val safeRoomAction: String = "warn", val dataBuffer: Boolean = false, val bufferType: String = "all", val supportSip: Boolean = false, val directionSip: String = "both", val preferPcma: Boolean = false)
Link copied to clipboard
data class RoomRecordParamsOptions(val recordParams: RecordingParams, val parameters: RoomRecordParamsParameters)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class RtcpFeedback(val type: String, val parameter: String? = null)

RTCP feedback parameters

Link copied to clipboard
data class RtcpParameters(val cname: String? = null, val reducedSize: Boolean? = null, val mux: Boolean? = null)

RTCP parameters

Link copied to clipboard
data class RtpCapabilities(val codecs: List<RtpCodecCapability>, val headerExtensions: List<RtpHeaderExtensionCapability> = emptyList(), val fecMechanisms: List<String> = emptyList())

RTP capabilities of a device

Link copied to clipboard
data class RtpCodecCapability(val kind: MediaKind, val mimeType: String, val preferredPayloadType: Int? = null, val clockRate: Int, val channels: Int? = null, val parameters: Map<String, Any?>? = null, val rtcpFeedback: List<RtcpFeedback>? = null)

RTP codec capability

Link copied to clipboard
data class RtpCodecParameters(val mimeType: String, val payloadType: Int, val clockRate: Int, val channels: Int? = null, val parameters: Map<String, Any?>? = null, val rtcpFeedback: List<RtcpFeedback>? = null)

RTP codec parameters

Link copied to clipboard
data class RtpEncodingParameters(val ssrc: Long? = null, val rid: String? = null, val codecPayloadType: Int? = null, val rtx: Rtx? = null, val dtx: Boolean? = null, val scalabilityMode: String? = null, val scaleResolutionDownBy: Double? = null, val maxBitrate: Int? = null, val maxFramerate: Double? = null, val adaptivePtime: Boolean? = null, val priority: String? = null, val networkPriority: String? = null)

RTP encoding parameters

Link copied to clipboard
data class RtpHeaderExtensionCapability(val kind: MediaKind, val uri: String, val preferredId: Int, val preferredEncrypt: Boolean? = null, val direction: String? = null)

RTP header extension capability

Link copied to clipboard
data class RtpHeaderExtensionParameters(val uri: String, val id: Int, val encrypt: Boolean? = null, val parameters: Map<String, Any?>? = null)

RTP header extension parameters

Link copied to clipboard
data class RtpParameters(val mid: String? = null, val codecs: List<RtpCodecParameters>, val headerExtensions: List<RtpHeaderExtensionParameters> = emptyList(), val encodings: List<RtpEncodingParameters> = emptyList(), val rtcp: RtcpParameters? = null)

RTP parameters for media transmission

Link copied to clipboard
data class Rtx(val ssrc: Long)

RTX (Retransmission) parameters

Link copied to clipboard
data class ScreenProducerIdOptions(val producerId: String, val screenId: String, val membersReceived: Boolean, val shareScreenStarted: Boolean, val deferScreenReceived: Boolean, val participants: List<Participant>, val updateScreenId: (String) -> Unit, val updateShareScreenStarted: (Boolean) -> Unit, val updateDeferScreenReceived: (Boolean) -> Unit)
Link copied to clipboard
Link copied to clipboard
data class SctpCapabilities(val numStreams: NumSctpStreams)

SCTP capabilities of a device

Link copied to clipboard
data class SctpParameters(val port: Int, val OS: Int, val MIS: Int, val maxMessageSize: Int)

SCTP (Stream Control Transmission Protocol) parameters for data channels

Link copied to clipboard
data class SctpStreamParameters(val streamId: Int, val ordered: Boolean = true, val maxPacketLifeTime: Int? = null, val maxRetransmits: Int? = null)

SCTP stream parameters

Link copied to clipboard
@Serializable
data class SeedData(val member: String? = null, val host: String? = null, val eventType: EventType? = null, val participants: List<Participant> = emptyList(), val messages: List<Message> = emptyList(), val polls: List<Poll> = emptyList(), val breakoutRooms: List<List<Participant>> = emptyList(), val requests: List<Request> = emptyList(), val waitingList: List<WaitingRoomParticipant> = emptyList())
Link copied to clipboard
data class SegmentationResult(val processedFrame: ByteArray? = null, val mask: ByteArray? = null, val maskWidth: Int? = null, val maskHeight: Int? = null, val confidence: Float? = null, val processingTimeMs: Int = 0, val success: Boolean = true, val error: String? = null)

Result of background segmentation processing.

Link copied to clipboard
data class SendTransportOptions(val id: String, val iceParameters: IceParameters, val iceCandidates: List<IceCandidate>, val dtlsParameters: DtlsParameters, val sctpParameters: SctpParameters? = null, val iceServers: List<IceServer> = emptyList(), val iceTransportPolicy: IceTransportPolicy = IceTransportPolicy.ALL, val additionalSettings: Map<String, Any?> = emptyMap(), val proprietaryConstraints: Map<String, Any?> = emptyMap(), val appData: Map<String, Any?> = emptyMap())

Options for creating a send transport

Link copied to clipboard
@Serializable
data class Settings(val settings: List<String>)
Link copied to clipboard
@Serializable
data class ShapePayload(val type: String, val x1: Double, val y1: Double, val x2: Double, val y2: Double, val color: String, val thickness: Double, val lineType: String)

Payload for shape drawing actions.

Link copied to clipboard
fun interface ShowAlert
Link copied to clipboard
data class SleepOptions(val ms: Int)
Link copied to clipboard
typealias SleepType = suspend (SleepOptions) -> Unit
Link copied to clipboard
@Serializable
data class SocketConfig(val reconnection: Boolean = true, val reconnectionAttempts: Int = Int.MAX_VALUE, val reconnectionDelay: Long = 1000, val reconnectionDelayMax: Long = 5000, val timeout: Long = 20000, val autoConnect: Boolean = true, val transports: List<String> = listOf("websocket", "polling"))

Socket.IO configuration

Link copied to clipboard
interface SocketLike

Minimal abstraction of a socket supporting emitWithAck semantics.

Link copied to clipboard
Link copied to clipboard
data class SoundPlayerOptions(val soundUrl: String)
Link copied to clipboard
data class StartRecordsOptions(val roomName: String, val member: String, val socket: SocketLike?)
Link copied to clipboard
typealias StartRecordsType = suspend (StartRecordsOptions) -> Unit
Link copied to clipboard
data class Stats(val type: String, val timestamp: Long, val id: String, val values: Map<String, Any?>)

Base statistics for WebRTC components

Link copied to clipboard
data class StoppedRecordingOptions(val state: String, val reason: String, val showAlert: ShowAlert?)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class Stream(val id: String? = null, val producerId: String, val muted: Boolean? = null, val stream: MediaStream? = null, val socket_: Any? = null, val name: String? = null, val audioID: String? = null, val videoID: String? = null, val extra: JsonObject = JsonObject(emptyMap()))
Link copied to clipboard

TCP type for TCP candidates

Link copied to clipboard
@Serializable
data class TextSpecs(val addText: Boolean, val customText: String? = null, val customTextPosition: String? = null, val customTextColor: String? = null)
Link copied to clipboard
data class TimeLeftRecordingOptions(val timeLeft: Int, val showAlert: ShowAlert?)
Link copied to clipboard
Link copied to clipboard
data class Transport(val id: String, val iceParameters: IceParameters, val iceCandidates: List<IceCandidate>, val dtlsParameters: DtlsParameters, val sctpParameters: SctpParameters? = null, val iceState: IceState = IceState.NEW, val connectionState: ConnectionState = ConnectionState.NEW, val appData: Map<String, Any?> = emptyMap())

Represents a WebRTC transport for sending or receiving media

Link copied to clipboard

Transport protocol

Link copied to clipboard
data class TransportStats(val transportId: String, val timestamp: Long, val bytesSent: Long = 0, val bytesReceived: Long = 0, val packetsSent: Long = 0, val packetsReceived: Long = 0, val iceState: IceState, val connectionState: ConnectionState, val selectedCandidatePair: Map<String, Any?>? = null, val availableOutgoingBitrate: Long? = null, val availableIncomingBitrate: Long? = null)

Transport statistics

Link copied to clipboard
data class TransportType(val producerId: String, val consumer: ConsumerLike, val serverConsumerTransportId: String, val consumerTransport: ConsumerTransportLike, val socket: Any? = null, val extra: MutableMap<String, Any?> = mutableMapOf())

Representation of a transport entry used when wiring producer media handlers.

Link copied to clipboard
@Serializable
data class UpdateConsumingDomainsData(val domains: List<String> = emptyList(), val altDomains: AltDomains = AltDomains())
Link copied to clipboard
data class UpdateConsumingDomainsOptions(val domains: List<String>, val altDomains: AltDomains, val apiUserName: String, val apiKey: String, val apiToken: String, val parameters: UpdateConsumingDomainsParameters)

Kotlin replica of UpdateConsumingDomainsOptions from mediasfu_sdk/lib/producers/socket_receive_methods/update_consuming_domains.dart.

Link copied to clipboard

Kotlin replica of UpdateConsumingDomainsParameters from mediasfu_sdk/lib/producers/socket_receive_methods/update_consuming_domains.dart.

Link copied to clipboard
@Serializable
data class UpdatedCoHostData(val coHost: String? = null, val coHostResponsibilities: List<CoHostResponsibility> = emptyList())
Link copied to clipboard
data class UpdatedCoHostOptions(val coHost: String, val coHostResponsibility: List<CoHostResponsibility>, val showAlert: ShowAlert? = null, val eventType: EventType, val islevel: String, val member: String, val youAreCoHost: Boolean, val updateCoHost: (String) -> Unit, val updateCoHostResponsibility: (List<CoHostResponsibility>) -> Unit, val updateYouAreCoHost: (Boolean) -> Unit)

Kotlin replica of UpdatedCoHostOptions from mediasfu_sdk/lib/producers/socket_receive_methods/updated_co_host.dart.

Link copied to clipboard
data class UpdateMediaSettingsOptions(val settings: List<String>, val updateAudioSetting: (String) -> Unit, val updateVideoSetting: (String) -> Unit, val updateScreenshareSetting: (String) -> Unit, val updateChatSetting: (String) -> Unit)

Kotlin replica of UpdateMediaSettingsOptions from mediasfu_sdk/lib/producers/socket_receive_methods/update_media_settings.dart.

Link copied to clipboard
@Serializable
data class UserRecordingParams(val mainSpecs: MainSpecs, val dispSpecs: DispSpecs, val textSpecs: TextSpecs? = null)
Link copied to clipboard
@Serializable
data class UserWaitingData(val name: String? = null)
Link copied to clipboard
data class UserWaitingOptions(val name: String, val showAlert: ShowAlert?, val totalReqWait: Int, val updateTotalReqWait: (Int) -> Unit)
Link copied to clipboard
data class VidCons(val width: DimensionConstraints = DimensionConstraints(), val height: DimensionConstraints = DimensionConstraints())

Video constraints for width and height.

Link copied to clipboard
@Serializable
data class VideoConstraints(val width: VideoResolution? = null, val height: VideoResolution? = null, val frameRate: VideoFrameRate? = null, val facingMode: FacingMode? = null, val deviceId: String? = null, val aspectRatio: Double? = null)

Video constraints for media capture

Link copied to clipboard
@Serializable
data class VideoFrameRate(val ideal: Int? = null, val min: Int? = null, val max: Int? = null, val exact: Int? = null)

Video frame rate constraints

Link copied to clipboard
@Serializable
data class VideoResolution(val ideal: Int? = null, val min: Int? = null, val max: Int? = null, val exact: Int? = null)

Video resolution constraints

Link copied to clipboard
data class VirtualBackground(val id: String, val type: BackgroundType, val name: String, val thumbnailUrl: String? = null, val imageUrl: String? = null, val imageBytes: ByteArray? = null, val color: Color? = null, val blurIntensity: Float = 0.5f, val videoUrl: String? = null, val isPreset: Boolean = false, val isSelected: Boolean = false)

Virtual background configuration.

Link copied to clipboard
@Serializable
data class WaitingRoomParticipant(val name: String, val id: String)
Link copied to clipboard
data class WhiteboardAction(val action: String, val payload: Map<String, Any?>)

Container for whiteboard actions.

Link copied to clipboard

Enum representing the different modes of the whiteboard.

Link copied to clipboard
data class WhiteboardPoint(val x: Float, val y: Float)

Simple 2D point for whiteboard drawing.

Link copied to clipboard
data class WhiteboardShape(val id: String = generateShapeId(), val type: WhiteboardShapeType, val start: Offset? = null, val end: Offset? = null, val points: List<Offset> = emptyList(), val color: Color = Color.Black, val thickness: Float = 6.0f, val lineType: LineType = LineType.SOLID, val text: String? = null, val fontFamily: String = "Arial", val fontSize: Float = 20.0f, val imageData: ByteArray? = null, val imageSrc: String? = null)

Represents a drawable whiteboard shape.

Link copied to clipboard

Enum representing the different types of shapes that can be drawn on the whiteboard.

Link copied to clipboard
@Serializable
data class WhiteboardUser(val name: String, val useBoard: Boolean = false)

Represents a participant allowed to interact with the collaborative whiteboard.

Functions