Telecom

Stream Video SDK now supports Android Telecom, offering deeper integration with the Android operating system and aligning with Google’s recommended architecture for modern call apps. By integrating Telecom, your calls become OS-recognized telephony events, providing stronger reliability, seamless audio routing, and smoother platform interoperability.

Why Use Android Telecom?

Android Telecom lets your calls feel truly native to the device. Audio routing is handled automatically by the system, whether the user is on Bluetooth, a wired headset, the speaker, or the earpiece. Calls gain higher reliability because they’re treated as real system-level telephony events. Media playback is paused and resumed for you, and users can manage calls directly from Bluetooth accessories, watches, or even their car.

Requirements

  • Minimum Android Version Android API 26+ (Android 8.0 and above)

  • Permissions The following permissions are already included in the Stream SDK, so you do not need to add them to your app manifest:

    • RECORD_AUDIO
    • BLUETOOTH_CONNECT (required on Android 12+)

How Telecom Support Works in Stream SDK

You can enable Telecom support on a per–call type basis. For instance, you may enable Telecom for audio_call while keeping video_call on the standard SDK behavior. This configuration is managed through the CallServiceConfigRegistry.

Enabling Telecom for a Call Type

Step 1 — Configure the registry

val callServiceConfigRegistry = CallServiceConfigRegistry().apply {
    // Enables Telecom for call_type "audio_call"
    register("audio_call") {
        enableTelecom(true)
    }
}

Step 2 — Provide TelecomConfig to StreamVideoBuilder

StreamVideoBuilder(
    callServiceConfigRegistry = callServiceConfigRegistry,
    telecomConfig = TelecomConfig(context.packageName)
)
.build()
© Getstream.io, Inc. All Rights Reserved.