Saltar al contenido

Inicio

GitHub

Puede utilizar nuestra configuración asistida por inteligencia artificial para instalar el complemento. Agregue las Capgo habilidades a su herramienta de inteligencia artificial 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 prefiere la configuración manual, instale el complemento ejecutando los siguientes comandos y siguiendo 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 timbre Decide whether the incoming-call event comes from your backend, an SDK such as Twilio or Stream, or a native push path such as FCM or PushKit.

Este plugin solo gestiona 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:

  1. Your backend or calling SDK emits a ring event.
  2. Tu aplicación llama showIncomingCall().
  3. El plugin presenta una IU de llamadas entrantes nativas.
  4. callAccepted indica a tu aplicación que se una a la habitación o sesión de VoIP real.
  5. callDeclined, callEnded, o callTimedOut indica a tu 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',
},
});
  • callId: identificador estable reutilizado más tarde con endCall()
  • timeoutMs: tiempo de espera de respuesta de mejor esfuerzo no respondido
  • extra: JSON arbitrario reflejado en payloads de oyente
  • android.channelId y android.channelName: ajustar el canal de notificación de Android
  • android.showFullScreen: solicita la actividad de llamada de pantalla completa de Android
  • ios.handleType: elegir generic, phoneNumber, o emailAddress para CallKit
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 y su objeto original. call Notas de la plataforma extra Sección titulada “Notas de la plataforma”

  • antes de conectar CallKit en un flujo de PushKit o APNs. Each event carries the normalized payload and your original object.
  • Lee el Guía de Android antes de confiar en las intenciones de pantalla completa en Android 14 y versiones posteriores.
  • No está soportado en Web.

Si está utilizando Inicio para planificar la consola y las operaciones API, conecte con Usando @capgo/capacitor-kit-de-llamadas-ingresantes para la capacidad nativa en Usando @capgo/capacitor-kit-de-llamadas-ingresantes, API Resumen para los detalles de implementación en API Resumen Introducción para los detalles de implementación en Introducción API Claves para los detalles de implementación en API Claves, y Dispositivos para los detalles de implementación en Dispositivos.