Ir al contenido

Getting Started

GitHub

Puede utilizar nuestra configuración asistida por IA para instalar el plugin. Agregue las Capgo habilidades a su herramienta de IA utilizando el siguiente comando:

Ventana de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Luego utilice el siguiente prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.

Si prefieres la configuración manual, instala el complemento ejecutando los siguientes comandos y sigue las instrucciones específicas de la plataforma a continuación:

  1. Instalar el paquete

    Ventana de terminal
    bun add @capgo/capacitor-incoming-call-kit
  2. Sincronizar proyectos nativos

    Ventana de terminal
    bunx cap sync
  3. 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.

Este plugin solo gestiona la presentación de llamadas entrantes nativas. Su aplicación sigue controlando el transporte, la autenticación y la sesión de medios reales.

El patrón de producción común es:

  1. Su servidor o llamada SDK emite un evento de timbre.
  2. Su aplicación llama showIncomingCall().
  3. El plugin presenta una IU de llamada entrante nativa.
  4. callAccepted le dice a su aplicación que se una a la habitación o sesión de VoIP real.
  5. callDeclined, callEndedo callTimedOut le dice a su aplicación que limpie el estado remoto.
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

Opciones importantes
  • callId: identificador estable reutilizado más tarde con endCall()
  • timeoutMs: tiempo de espera de respuesta de mejor esfuerzo no respondido
  • extra: JSON arbitrario devuelto en payloads de escucha
  • android.channelId y android.channelName: ajuste de canal de notificación de Android
  • android.showFullScreen: solicita la actividad de llamada de pantalla completa de Android
  • ios.handleType: elige generic, phoneNumber, emailAddress para CallKit

Gestión de llamadas activas

Opciones importantes
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: se mostró la interfaz de usuario nativa con éxito
  • callAccepted: el usuario aceptó desde la interfaz de usuario nativa
  • callDeclined: el usuario rechazó antes de unirse
  • callEnded: su aplicación o la plataforma finalizó la llamada rastreada
  • callTimedOut: la llamada se quedó sin respuesta hasta timeoutMs

Cada evento lleva el payload normalizado call y su objeto original. extra Observaciones de la plataforma

__CAPGO_KEEP_0__

Notas de la plataforma
  • Lea Guía de iOS antes de conectar CallKit en un flujo de PushKit o APNs.
  • Lea Guía de Android antes de confiar en intenciones de pantalla completa en Android 14 y versiones posteriores.
  • No está soportado en Web.

Si está utilizando Inicio para planificar la consola de dashboard y API operaciones, conecte con Usando @capgo/capacitor-kit-de-llamada-ingresante para la capacidad nativa en Usando @capgo/capacitor-kit-de-llamada-ingresante API Resumen para el detalle de implementación en API Resumen Introducción para el detalle de implementación en Introducción API Claves para el detalle de implementación en API Claves, y Dispositivos para el detalle de implementación en Dispositivos.