Package-level declarations

Types

Link copied to clipboard
data class CallDiagnostics(val isSignalingConnected: Boolean = false, val iceConnectionState: IceConnectionState = IceConnectionState.NEW, val peerConnectionState: PeerConnectionState = PeerConnectionState.NEW, val rtcSignalingState: RtcSignalingState = RtcSignalingState.STABLE, val activeTransport: String? = null, val callStats: CallStats = CallStats(), val realtimeStats: RealtimeCallStats? = null, val isFrontCamera: Boolean = true, val isScreenSharing: Boolean = false, val isFlashAvailable: Boolean = false, val isFlashEnabled: Boolean = false, val remoteContentCid: String? = null, val remoteContentType: String? = null, val featureDegradations: List<FeatureDegradationState> = emptyList())
Link copied to clipboard
sealed class CallError

Typed error representation for SDK call errors. Matches the iOS CallError enum for cross-platform parity.

Link copied to clipboard
data class CallState(val phase: CallPhase = CallPhase.Idle, val roomId: String? = null, val localCid: String? = null, val isHost: Boolean = false, val participantCount: Int = 0, val localAudioEnabled: Boolean = true, val localVideoEnabled: Boolean = true, val remoteParticipants: List<RemoteParticipant> = emptyList(), val connectionStatus: ConnectionStatus = ConnectionStatus.Connected, val localCameraMode: LocalCameraMode = LocalCameraMode.SELFIE, val error: CallError? = null, val requiredPermissions: List<MediaCapability> = emptyList())

SDK-native call state. This is the primary observable state for SDK consumers. Does not include host-app concerns (saved rooms, settings, etc.).

Link copied to clipboard
data class CallStats(val bitrate: Double? = null, val packetLoss: Double? = null, val jitter: Double? = null, val codec: String? = null, val iceCandidatePair: String? = null, val roundTripTime: Double? = null, val audioRxKbps: Double? = null, val audioTxKbps: Double? = null, val videoRxKbps: Double? = null, val videoTxKbps: Double? = null, val videoFps: Double? = null, val videoResolution: String? = null, val realtimeStats: RealtimeCallStats? = null, val updatedAtMs: Long = 0)

Aggregated call statistics exposed to SDK consumers. Populated from WebRTC getStats() periodically during an active call.

Link copied to clipboard
sealed class CheckOutcome
Link copied to clipboard
data class ConnectivityReport(val roomApi: CheckOutcome = CheckOutcome.NotRun, val webSocket: CheckOutcome = CheckOutcome.NotRun, val sse: CheckOutcome = CheckOutcome.NotRun, val diagnosticToken: CheckOutcome = CheckOutcome.NotRun, val turnCredentials: CheckOutcome = CheckOutcome.NotRun)
Link copied to clipboard
data class CreateRoomResult(val roomId: String, val roomUrl: String, val session: SerenadaSession)
Link copied to clipboard
data class DeviceInfo(val id: String, val name: String, val kind: String)
Link copied to clipboard
data class DiagnosticsReport(val camera: DiagnosticCheckResult, val microphone: DiagnosticCheckResult, val speaker: DiagnosticCheckResult, val network: DiagnosticCheckResult, val signaling: SignalingCheckResult, val turn: TurnCheckResult, val devices: List<DeviceInfo>)
Link copied to clipboard
sealed class EndReason
Link copied to clipboard
data class FeatureDegradationState(val kind: FeatureDegradation, val reason: String? = null)
Link copied to clipboard
data class IceProbeReport(val stunPassed: Boolean, val turnPassed: Boolean, val logs: List<String>, val iceServersSummary: String = "n/a")
Link copied to clipboard

Device media capabilities required for a call.

Link copied to clipboard
data class RoomOccupancy(val count: Int, val maxParticipants: Int? = null)
Link copied to clipboard
class RoomWatcher @JvmOverloads constructor(okHttpClient: OkHttpClient = OkHttpClient.Builder().build(), handler: Handler = Handler(Looper.getMainLooper()))

Monitors room occupancy via signaling. Use this to show room status before joining.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class SerenadaConfig(val serverHost: String, val defaultAudioEnabled: Boolean = true, val defaultVideoEnabled: Boolean = true, val isHdVideoExperimentalEnabled: Boolean = false, val transports: List<SerenadaTransport> = listOf(SerenadaTransport.WS, SerenadaTransport.SSE))

Configuration for the Serenada SDK.

Link copied to clipboard
class SerenadaCore(val config: SerenadaConfig, context: Context)

Main entry point for the Serenada SDK.

Link copied to clipboard

Delegate interface for receiving SDK lifecycle callbacks. All methods have default no-op implementations so only relevant callbacks need overriding.

Link copied to clipboard
class SerenadaDiagnostics(config: SerenadaConfig, context: Context)

Pre-flight diagnostics utility. Checks device capabilities and server connectivity without prompting for permissions.

Link copied to clipboard
interface SerenadaLogger
Link copied to clipboard
Link copied to clipboard

Represents an active call session. Created via SerenadaCore.join or SerenadaCore.createRoom.

Link copied to clipboard

Available signaling transport types.

Link copied to clipboard
Link copied to clipboard
sealed class TurnCheckResult