Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. React Native
  3. react-native-call-detection

react-native-call-detection

MITJava1.7.1

A React Native package to detect incoming, outgoing, and active call states on iOS and Android.

GitHubGitHub
201 stars115 forks0 contributors

What is react-native-call-detection?

React Native Call Detection is a library that allows React Native apps to detect and respond to phone call events such as incoming, outgoing, and active calls. It solves the problem of apps needing to adapt their behavior—like pausing audio or logging call activities—when a user is engaged in a phone call, providing cross-platform support for iOS and Android with platform-specific call states.

Target Audience

React Native developers building apps that require telephony integration, such as audio players, call loggers, or applications that need to pause functionality during phone calls.

Value Proposition

Developers choose this package because it offers a straightforward, well-documented API for call state detection across both major mobile platforms, handles Android permissions automatically, and includes memory management to prevent leaks, reducing the complexity of native telephony integration.

Overview

react-native package to detect call states

Use Cases

Best For

  • Pausing background audio or media playback during phone calls
  • Logging call events for analytics or user activity tracking
  • Building call-blocking or call-screening applications
  • Adapting app behavior based on call states (e.g., disabling notifications)
  • Creating apps that require incoming caller ID display on Android
  • Developing telephony-integrated productivity or safety apps

Not Ideal For

  • Apps requiring incoming caller number detection on iOS (only available on Android)
  • Projects needing identical call state events across iOS and Android (platform-specific differences exist)
  • Teams wanting a drop-in solution without native configuration or Expo plugin setup
  • Applications that require advanced telephony features like call blocking or programmatic call answering

Pros & Cons

Pros

Cross-Platform Detection

Detects multiple call states on both iOS and Android, including incoming, disconnected, dialing, and connected for iOS, and offhook, incoming, disconnected, missed for Android, as detailed in the README usage examples.

Android Number Retrieval

Retrieves incoming call phone numbers on Android with automatic permission handling and customizable request messages, explicitly mentioned in the README for the 'Incoming' event.

Permission Management

Automatically requests READ_PHONE_STATE permission on Android and allows developers to set custom permission messages, simplifying compliance and user explanation, as shown in the constructor options.

Memory Leak Prevention

Includes a dispose method to clean up listeners, with the README emphasizing its importance to avoid memory leakages in long-running apps.

Cons

iOS Caller ID Limitation

Does not retrieve incoming call numbers on iOS, limiting caller ID features to Android only, which the README implicitly admits by only mentioning number retrieval for Android.

Platform-Specific Inconsistencies

Event names and available states differ between iOS and Android (e.g., 'Connected' and 'Dialing' only on iOS, 'Offhook' and 'Missed' only on Android), requiring extra logic for cross-platform apps.

Complex Example Setup

Running the example project involves multiple steps like installing external tools (node, watchman, Xcode) and device configuration, which can be cumbersome for quick testing, as outlined in the README's 'How to run an example' section.

Limited Telephony Features

Focuses solely on call state detection without built-in support for call handling, blocking, or other advanced operations, making it less suitable for full telephony apps beyond basic monitoring.

Frequently Asked Questions

Quick Stats

Stars201
Forks115
Contributors0
Open Issues24
Last commit3 years ago
CreatedSince 2017

Tags

#ios#telephony#native-modules#android#react-native#mobile-development#permissions

Built With

R
React Native

Included in

React Native35.6k
Auto-fetched 8 hours ago

Related Projects

detoxdetox

Gray box end-to-end testing and automation framework for mobile apps

Stars12,026
Forks1,911
Last commit22 hours ago
lokiloki

👁 Visual Regression Testing for Storybook

Stars1,910
Forks182
Last commit1 year ago
react-native-workersreact-native-workers

Background services and web workers for react-native

Stars801
Forks89
Last commit7 years ago
react-native-network-loggerreact-native-network-logger

An HTTP network request monitor for React Native with in-app interface for iOS and Android with no native code

Stars687
Forks68
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub