Skip to main content
@capgo/capacitor-incoming-call-kit Communication Open source

Incoming Call Kit Capacitor plugin

Present native incoming-call UI with iOS CallKit and Android full-screen notifications

Install

bun add @capgo/capacitor-incoming-call-kit bunx cap sync
npm, pnpm or yarn
  • npm install @capgo/capacitor-incoming-call-kit
  • pnpm add @capgo/capacitor-incoming-call-kit
  • yarn add @capgo/capacitor-incoming-call-kit

Guide

How to use Incoming Call Kit in Capacitor

Using @capgo/capacitor-incoming-call-kit

Capacitor API for presenting a native incoming-call surface.

Install

bun add @capgo/capacitor-incoming-call-kit
bunx cap sync

bunx cap sync copies the plugin's native code into your native projects. Run it again after every plugin upgrade.

Import

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

API at a glance

Method Description
showIncomingCall Displays the native incoming call UI.
endCall Ends a specific tracked call.
endAllCalls Ends every tracked call.
getActiveCalls Returns the currently tracked calls.
checkPermissions Returns the current permission state for notifications and full-screen intents.
requestPermissions Requests the notification permission when the platform supports it.
requestFullScreenIntentPermission Opens the Android 14+ full-screen intent settings page when available.

Examples

showIncomingCall()

Displays the native incoming call UI.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.showIncomingCall({
  callId: 'call-id-123',
  callerName: 'caller',
});
console.log(result);

endCall()

Ends a specific tracked call.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.endCall({ callId: 'call-id-123' });
console.log(result);

endAllCalls()

Ends every tracked call.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.endAllCalls();
console.log(result);

getActiveCalls()

Returns the currently tracked calls.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.getActiveCalls();
console.log(result);

checkPermissions()

Returns the current permission state for notifications and full-screen intents.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.checkPermissions();
console.log(result);

requestPermissions()

Requests the notification permission when the platform supports it.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';

const result = await IncomingCallKit.requestPermissions();
console.log(result);

The table above lists the 7 core methods. Listener and version helpers, and the full contract of each method, are documented in the GitHub repository.

Listen to events

addListener returns a handle. Call handle.remove() when the screen unmounts, or IncomingCallKit.removeAllListeners() to clear every listener.

Full reference

Keep going from Using @capgo/capacitor-incoming-call-kit

If you are using Using @capgo/capacitor-incoming-call-kit to plan dashboard and API operations, connect it with @capgo/capacitor-incoming-call-kit for the implementation detail in @capgo/capacitor-incoming-call-kit, Getting Started for the implementation detail in Getting Started, API Overview for the implementation detail in API Overview, Introduction for the implementation detail in Introduction, and API Keys for the implementation detail in API Keys.

FAQ

Incoming Call Kit plugin FAQ

How do I install the Incoming Call Kit plugin in a Capacitor app?

Run "bun add @capgo/capacitor-incoming-call-kit" (or "npm install @capgo/capacitor-incoming-call-kit"), then run "bunx cap sync" so the iOS and Android projects pick up the native code. Import it from "@capgo/capacitor-incoming-call-kit" in your app code.

Does @capgo/capacitor-incoming-call-kit work with React, Vue and Angular?

Yes. Incoming Call Kit is a Capacitor package, so it works with any web framework that runs inside Capacitor, including Ionic, React, Vue, Angular, Svelte and plain JavaScript.

Which Capacitor version does @capgo/capacitor-incoming-call-kit support?

Capgo plugins follow Capacitor's major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

Is @capgo/capacitor-incoming-call-kit free and open source?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-incoming-call-kit/ and the package is free to install from npm. Bug reports and pull requests are welcome.

Can I update code that uses Incoming Call Kit without an App Store review?

Installing or upgrading the plugin changes native code, so it needs a new store build. After that, JavaScript, HTML and CSS changes that call the plugin can ship instantly with Capgo live updates.

Ship Incoming Call Kit changes without waiting for app review

Once the plugin is in your store build, Capgo live updates push your JavaScript, HTML and CSS changes to users in minutes.

Start with Capgo