Aller directement au contenu

Kit d'appel entrant __CAPGO_KEEP_0__ repository

GitHub

Vous pouvez utiliser notre configuration assistée par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil IA à l'aide de la commande suivante :

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

Ensuite, utilisez la prompt suivante :

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

Si vous préférez la configuration manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à la plateforme ci-dessous :

  1. Installer le package

    Fenêtre de terminal
    bun add @capgo/capacitor-incoming-call-kit
  2. Synchroniser les projets natifs

    Fenêtre de terminal
    bunx cap sync
  3. Choisissez votre source de signal Déterminez si l'événement appel entrant provient de votre backend, un SDK tel que Twilio ou Stream, ou d'une voie de notification native comme FCM ou PushKit.

Ce plugin ne possède que la présentation des appels entrants natifs. Votre application conserve toujours le transport, l'authentification et la session de médias réelle.

Le modèle de production courant est :

  1. Votre backend ou votre appel SDK émet un événement de sonnerie.
  2. Votre application appelle showIncomingCall().
  3. Le plugin présente une interface utilisateur d'appel entrant natif.
  4. callAccepted informe votre application pour rejoindre la salle ou la session VoIP réelle.
  5. callDeclined, callEndedou callTimedOut informe votre application pour nettoyer l'état distant.
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 : identifiant stable réutilisé ultérieurement avec endCall()
  • timeoutMs : temps d'attente non garanti sans réponse
  • extra : JSON arbitraire renvoyé dans les payloads des écouteurs
  • android.channelId et android.channelName : ajustement du canal de notification Android
  • android.showFullScreen : demande de l'activité d'appel en mode plein écran Android
  • ios.handleType : choisir generic, phoneNumber , emailAddress ou
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: l'interface utilisateur native a été affichée avec succès
  • callAccepted: l'utilisateur a accepté depuis l'interface utilisateur native
  • callDeclined: l'utilisateur a refusé avant de rejoindre
  • callEnded: votre application ou la plateforme a mis fin à l'appel suivi
  • callTimedOut: l'appel est resté sans réponse jusqu'à timeoutMs

Chaque événement transporte le payload normalisé call et votre objet original. extra Remarques de la plateforme

  • Lisez le guide iOS avant de brancher CallKit dans un flux PushKit ou APNs.
  • Lisez le guide Android avant de compter sur les intentions d'écran plein écran sur Android 14 et ultérieur.
  • La version Web n'est pas prise en charge.

Si vous utilisez Démarrage planer le tableau de bord et les opérations API, connectez-le à En utilisant @capgo/capacitor-kit-appel-entrant pour la capacité native dans En utilisant @capgo/capacitor-kit-appel-entrant API Vue d'ensemble pour le détail d'implémentation dans API Vue d'ensemble, Introduction pour le détail d'implémentation dans Introduction, API Clés pour le détail d'implémentation dans API Clés, et Appareils pour le détail d'implémentation dans Appareils.