Skip to content

Compare ​

Choose separately for native call coordination, media and app presentation. Reporting a video call to CallKit/Telecom does not itself provide a video renderer, an in-app mini-call or system PiP. Callx combines these layers while keeping one native call-state owner and optional UI/media.

Reviewed on 2026-10-04

Callx describes package release 3.0.1, contract 0.3.0. Other package versions were checked against npm/pub.dev, and capabilities against the official project documentation linked below. This is a documentation review, not a device benchmark or conformance test of other libraries. “Not assessed” means we have not established support or absence; it does not mean unsupported.

Packages and scope ​

OptionFrameworkRegistry version at reviewRole
CallxFlutter, React Native, Expo development buildsnpm · pub.devNative coordination, optional media adapter and app UI
react-native-callkeepReact Native4.3.16CallKit/ConnectionService bridge
expo-callkit-telecomReact Native with Expo modules0.5.0Native calling, push and audio-session integration
flutter_callkit_incomingFlutter3.1.6Incoming presentation and call actions
connectycube_flutter_call_kitFlutter2.8.2Another incoming-call integration option; not feature-audited here
Vendor SDKsPer vendorCheck vendorMedia and/or hosted calling services; compare each SDK's system integration
Custom CallKit/Telecom integrationAny native hostYour implementationYou maintain lifecycle, push, media and presentation

Callx is MIT licensed. Check the linked projects' licenses and provider terms before adoption.

Native coordination ​

Documented means the capability is described in the linked official documentation. Host integration means the app needs additional wiring. Not assessed avoids inferring missing behavior from a README. Callx implementation and verification are separate; see status.

CapabilityCallxcallkeepexpo-callkit-telecomflutter_callkit_incoming
Flutter and React Native share one coreAvailableReact NativeReact Native / Expo modulesFlutter
Native iOS VoIP ingressAvailableHost integration with separate push moduleDocumentedAppDelegate integration
Android incoming push pathNative FCM hostHost integrationNative FCM integration documentedHost messaging integration
Android system integrationSelf-managed Core-TelecomConnectionService, including self-managed modeCore-Telecom documentedAndroid incoming presentation; Telecom details not assessed here
Durable coordinator snapshots, command results and replayAvailableInitial events documented; equivalent durable protocol not assessedSession API documented; equivalent durable protocol not assessedactiveCalls documented; equivalent durable protocol not assessed
Persistent cancellation tombstonesAvailable within contract retention/account scopeNot assessedNot assessedNot assessed
Video reporting to system call UIAvailableDocumentedDocumentedAudio/video type documented
DTMFAvailable through an optional media adapter; LiveKit publishes SIP DTMFDocumentedDocumentedNot assessed
Multiple live callsOne live call; roadmapDocumentedNot assessedNot assessed
iOS Siri/Recents start-call integrationAvailable; physical iPhone acceptance pendingStart-call event documentedDocumentedNot assessed

Sources: callkeep README, Expo module README, Flutter incoming README. Push integration and reporting deadlines still require platform-specific setup in every app.

Media and presentation ​

CapabilityCallxOther options in this page
Native audio/video adapterLiveKit installable; own-media interface availableEvaluate the chosen library together with its media engine
Native video surfaces and camera commandsAvailable for Flutter and RN; Android video trials, iPhone acceptance pendingNot assessed; system video reporting alone is insufficient evidence
Android system PiPAvailable; video/local/branding fallback and emulator trialsNot assessed
iOS system PiPExperimental (setup); physical acceptance pendingNot assessed
Root overlay and in-app mini-callOptional exported Dart/TypeScript components; retains native call stateNot assessed
Supplied customizable call screenColors/logo, header/status/end slots, control sizes, preview placement and host video renderingIncoming customization exists in some options; accepted-call UI not assessed
Foreground-aware video controlsFive-second idle hide, fresh timeout on return, screen-reader/reduced-motion handlingNot assessed
Android ongoing controls while securely lockedNative timer, mute, hold and Telecom audio controls; API36 warm-process trialNot assessed
Unified native/custom/supplied UI switchPlanned; use existing independent customization surfacesNot assessed
Guided setup/code generationDart/TypeScript starter files, native checklist and migration pathsNot assessed

The camera does not auto-start when a video invitation is answered while locked. Callx's Android locked screen and Apple's CallKit UI are different platform surfaces. Watch the two-device demo and secure-lock demo, or explore features and call UI customization.

Provider ecosystem ​

Callx adapterStatusScope
LiveKitAvailable: audio and videoNative media
Twilio VideoPlanned next; no packageMedia
Twilio Programmable VoicePlanned; signaling interface requiredProvider-managed signaling
Zoom Video SDKPlanned; no packageMedia
AgoraPlanned; no packageMedia

Planned adapters are not installable integrations. Vendor SDKs may be used independently of Callx; each has its own media, signaling, licensing and system-call behavior. A hosted Callx backend is unavailable. See provider priorities.

Choose for your app ​

  • Callx: shared Flutter/RN integration, native snapshots/results/recovery, optional video, customizable UI and Android PiP, with your own signaling backend. Match your device needs to the documented verification levels before rollout.
  • callkeep: React Native apps needing its documented DTMF, multi-call or ConnectionService modes, with app-owned push/media wiring.
  • expo-callkit-telecom: Expo-module apps needing documented native push, Core-Telecom, audio-session integration, DTMF or Siri intents.
  • flutter_callkit_incoming: Flutter apps needing its documented incoming-screen customization and call actions while owning the messaging/media setup.
  • Vendor SDK or custom native integration: evaluate the required hosted features or the cost of maintaining your own native stack; neither is interchangeable with a UI component.

Callx does not currently ship multi-call or a hosted backend, and iOS picture-in-picture is experimental. Physical-device call acceptance remains pending. Follow the setup guide and migration rollout rather than switching call ownership mid-call.

Released under the MIT License. No telemetry, in the library or on this site.