Skip to content

Repository files navigation

Daakia CallKit — Android SDK

callkit-ui-compose callkit-ui-views callkit-core API docs License

Native Android SDK for Daakia-backed incoming call signaling: device token registration, FCM push handling, full-screen incoming call notifications, call lifecycle events with killed-state webhook fallback, and optional pre-built incoming-call screens (Jetpack Compose or classic XML Views) with multiple host-themeable preset styles.

This repository is the public home for the SDK — documentation, licence, and issue tracking. The SDK itself is proprietary and its source is not public; releases are published to Maven Central.

Installation

dependencies {
    implementation("ai.daakia:callkit-ui-compose:1.0.0")
    // or, for XML Views apps:
    implementation("ai.daakia:callkit-ui-views:1.0.0")
    // or, if you build your own incoming-call UI:
    implementation("ai.daakia:callkit-core:1.0.0")
}
Artifact Description
ai.daakia:callkit-core All SDK functionality except UI. No UI-toolkit dependency.
ai.daakia:callkit-ui-compose Jetpack Compose incoming-call preset screens. Depends on callkit-core.
ai.daakia:callkit-ui-views Classic XML Views incoming-call preset screens, for apps that don't want the Compose dependency. Depends on callkit-core.

The 0.x line is not API-frozen — the public surface may still change before 1.0.0.

API at a glance

Everything goes through DaakiaCallKit.

// Application.onCreate()
DaakiaCallKit.initialize(context, DaakiaCallKitConfig(baseUrl = "https://…", secret = ""))
DaakiaIncomingCallUi.install(style = IncomingCallStyle.CLASSIC)   // optional pre-built UI

// Receiving: forward FCM messages (or register DaakiaMessagingService instead)
override fun onMessageReceived(message: RemoteMessage) {
    if (DaakiaCallKit.handleRemoteMessage(message)) return
}

// Placing calls (suspend)
DaakiaCallKit.registerDevice(username = "alice", fcmToken = token)
DaakiaCallKit.startCallByUsername(username = "bob", call = IncomingCallData(callId, title = "Alice"))

// Call lifecycle
DaakiaCallKit.consumeLaunchEvent(intent)                          // ACCEPTED (launches your app)
DaakiaCallKit.callEvents.collect { event -> /* INCOMING, DECLINED, ENDED, TIMED_OUT */ }
DaakiaCallKit.sendCallEvent(meetingUid, CallEventAction.JOIN)
DaakiaCallKit.configureCallEventFallback(setOf(CallEventAction.ACCEPT))  // works with the app dead

ACCEPTED comes from consumeLaunchEvent; every other event from callEvents. Handling accept in both double-fires — see docs/call-events.md.

Documentation

API reference

Generated from KDoc and hosted on javadoc.io, versioned to match each release:

Requirements

  • minSdk 23
  • The host app provides its own Firebase project/config; the SDK consumes the host's FCM messages.

Support

Please don't include your secret, backend URL, google-services.json, or any credential in an issue — redact them before pasting logs.

Found a security vulnerability? Don't open an issue — see SECURITY.md for the private reporting route.

Changelog

See CHANGELOG.md.

License

Proprietary commercial software. See LICENSE.

Redistribution of the SDK, or use beyond the terms in the licence, requires written consent from Daakia Private Limited.

About

Documentation and issue tracker for the Daakia CallKit Android SDK — incoming-call signaling, FCM push handling, and full-screen call notifications. Published to Maven Central as ai.daakia:callkit-*.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors