Empezar
Copie una solicitud de configuración con los pasos de instalación y la guía de markdown completa para este complemento.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-incoming-call-kit`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/incoming-call-kit/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
-
Instale el paquete
Ventana de terminal bun add @capgo/capacitor-incoming-call-kit -
Sincronizar proyectos nativos
Ventana de terminal bunx cap sync -
Elige la fuente de tu anillo Decide si el evento de llamada entrante proviene de tu backend, un SDK como Twilio o Stream, o un camino de empuje nativo como FCM o PushKit.
Cómo se ajusta la integración
Sección titulada “Cómo se ajusta la integración”Este plugin solo controla la presentación de llamadas entrantes nativas. Tu aplicación sigue controlando el transporte, la autenticación y la sesión de medios real.
El patrón de producción común es:
- Su servidor de backend o llamada SDK emite un evento de llamada.
- Su aplicación llama
showIncomingCall(). - El plugin presenta una IU de llamada nativa entrante.
callAcceptedle dice a su aplicación que se una a la habitación o sesión de VoIP real.callDeclined,callEndedocallTimedOutle dice a su aplicación que limpie el estado remoto.
Integración mínima
Sección titulada “Integración mínima”import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();await IncomingCallKit.requestFullScreenIntentPermission();
await IncomingCallKit.addListener('callAccepted', async ({ call }) => { console.log('Accepted', call.callId, call.extra); // Start or join your real call session here.});
await IncomingCallKit.addListener('callDeclined', ({ call }) => { console.log('Declined', call.callId); // Tell your backend or SDK that the user declined.});
await IncomingCallKit.addListener('callTimedOut', ({ call }) => { console.log('Timed out', call.callId); // Clear ringing state in your backend or SDK.});
await IncomingCallKit.showIncomingCall({ callId: 'call-42', callerName: 'Ada Lovelace', handle: '+39 555 010 020', appName: 'Capgo Phone', hasVideo: true, timeoutMs: 45_000, extra: { roomId: 'room-42', callerUserId: 'user_ada', }, android: { channelId: 'calls', channelName: 'Incoming Calls', showFullScreen: true, }, ios: { handleType: 'phoneNumber', },});Opciones importantes
Sección titulada “Opciones importantes”callId: identificador establecido reutilizado más tarde conendCall()timeoutMs: tiempo de espera de mejores esfuerzos sin respuestaextra: JSON arbitrario devuelto en payloads de oyenteandroid.channelIdyandroid.channelName: ajuste de canal de notificación de Androidandroid.showFullScreen: solicita la actividad de llamada de pantalla completa de Androidios.handleTypeseleccionegeneric,phoneNumber, oemailAddresspara CallKit
Gestión de llamadas activas
Sección titulada “Gestión de llamadas activas”const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});Modelo de evento
Sección titulada “Modelo de evento”incomingCallDisplayed: se mostró la interfaz de usuario nativa con éxitocallAccepted: el usuario aceptó desde la interfaz de usuario nativacallDeclined: el usuario rechazó antes de unirsecallEnded: su aplicación o la plataforma finalizó la llamada rastreadacallTimedOut: la llamada permaneció sin respuesta hastatimeoutMs
Cada evento lleva el payload normalizado call y su objeto original. extra Notas de la plataforma
Sección titulada “Notas de la plataforma”
Lea el- __CAPGO_KEEP_0__ Guía de iOS Antes de conectar CallKit en un flujo de PushKit o APNs.
- Lee la Guía de Android Antes de confiar en intenciones de pantalla completa en Android 14 y versiones posteriores.
- No está soportado en Web.