Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-twilio-voice`
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/twilio-voice/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.
Installieren
Abschnitt „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-twilio-voice` plugin in my project.Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
npm install @capgo/capacitor-twilio-voicenpx cap syncImportieren
Abschnitt mit dem Titel „Import“import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';Quickstart
Abschnitt „Quick start“import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });Häufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Token-TTL: Twilio-Token vor Ablauf erneuern.
- Eingehend: VoIP-Push auf iOS konfigurieren.
- Mikrofon-Berechtigung: vor Anrufen anfordern.
API Übersicht
Abschnitt „API Übersicht“Authentifizieren Sie den Benutzer bei Twilio Voice mithilfe eines Access Tokens.
Der Access Token sollte auf Ihrem Backend-Server mit Ihren Twilio-Zugangsdaten generiert werden. Dieser Token ist erforderlich, um Anrufe über Twilio Voice zu tätigen und zu empfangen.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.login({ accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'});console.log('Login successful:', result.success);Den aktuellen Benutzer abmelden und die Registrierung bei Twilio Voice aufheben.
Dadurch werden alle aktiven Anrufe getrennt und das Gerät erhält keine neuen Benachrichtigungen über eingehende Anrufe mehr.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
Abschnitt „isLoggedIn“Prüft, ob der User aktuell eingeloggt ist und ein gültiges Access Token besitzt.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const status = await CapacitorTwilioVoice.isLoggedIn();if (status.isLoggedIn && status.hasValidToken) { console.log('User identity:', status.identity);} else { // Re-authenticate the user}makeCall
Abschnitt „makeCall“Einen ausgehenden Anruf bei einer Telefonnummer oder einem Client starten.
Der User muss eingeloggt sein, bevor ein Anruf getätigt werden kann. Der Call wird über deine Twilio-Backend-Konfiguration geroutet.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Call a phone numberconst result = await CapacitorTwilioVoice.makeCall({ to: '+1234567890'});console.log('Call SID:', result.callSid);
// Call another Twilio client with a readable name for CallKit Recentsawait CapacitorTwilioVoice.makeCall({ to: 'client:alice', displayName: 'Alice Smith'});
// Call a PSTN number using a specific caller IDawait CapacitorTwilioVoice.makeCall({ to: '+1234567890', callerId: '+10987654321'});acceptCall
Abschnitt „acceptCall“Einen eingehenden Anruf annehmen.
Dies sollte als Reaktion auf ein „callInviteReceived“-Event aufgerufen werden.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { console.log('Incoming call from:', data.from); const result = await CapacitorTwilioVoice.acceptCall({ callSid: data.callSid }); console.log('Call accepted:', result.success);});rejectCall
Abschnitt „rejectCall“Einen eingehenden Anruf ablehnen.
Dies sollte als Reaktion auf ein ‘callInviteReceived’-Event aufgerufen werden. Der Anrufer erhält ein Besetztzeichen oder wird zur Mailbox weitergeleitet.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { if (shouldRejectCall(data.from)) { await CapacitorTwilioVoice.rejectCall({ callSid: data.callSid }); }});Einen aktiven Anruf beenden.
Wenn keine callSid angegeben wird, wird der aktuell aktive Anruf beendet.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});Das Mikrofon während eines aktiven Anrufs stummschalten oder aktivieren.
Im stummen Modus hört die andere Partei keinen Ton von deinem Mikrofon.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
Abschnitt mit dem Titel „setSpeaker“Lautsprecher-Modus aktivieren oder deaktivieren.
Wenn aktiviert, wird der Ton über den Lautsprecher des Geräts statt über den Hörer ausgegeben.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: true});
// Disable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: false});getCallStatus
Abschnitt mit dem Titel „getCallStatus“Den aktuellen Status des aktiven Anrufs abrufen.
Dies liefert Echtzeit-Informationen zum Anrufstatus, zum Stummschaltstatus, Hörstatus und zu den Call-IDs.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const status = await CapacitorTwilioVoice.getCallStatus();if (status.hasActiveCall) { console.log('Call SID:', status.callSid); console.log('Call State:', status.callState); console.log('Is Muted:', status.isMuted); console.log('Is On Hold:', status.isOnHold);}checkMicrophonePermission
Abschnitt mit dem Titel „checkMicrophonePermission“Prüfen, ob die Mikrofon-Berechtigung erteilt wurde.
Dies fordert keine Berechtigung an, sondern prüft nur den aktuellen Status.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();if (!result.granted) { console.log('Microphone permission not granted');}requestMicrophonePermission
Abschnitt mit dem Titel „requestMicrophonePermission“Fordere den Benutzer auf, das Mikrofon freizugeben.
Unter iOS und Android wird der systemeigene Berechtigungsdialog angezeigt, falls die Berechtigung noch nicht erteilt wurde. Falls der Zugriff zuvor abgelehnt wurde, muss der Benutzer dies eventuell in den Systemeinstellungen nachholen.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.requestMicrophonePermission();if (result.granted) { console.log('Microphone permission granted');} else { console.log('Microphone permission denied');}Typreferenz
Abschnitt mit dem Titel „Typreferenz“CallInvite
Abschnitt mit dem Titel „CallInvite“Capacitor Plugin zur Integration von Twilio Voice Funktionen in mobile Apps.
export interface CallInvite { /** Unique identifier for the incoming call invitation */ callSid: string; /** Phone number or client identifier of the caller (may include custom caller name) */ from: string; /** Phone number or client identifier being called */ to: string; /** Custom parameters passed with the call invitation */ customParams: Record<string, string>;}Source of Truth
Abschnitt mit dem Titel „Source of Truth“Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.
Weiter geht's nach Getting Started
Abschnitt: „Weiter geht’s mit Getting Started“Wenn du es nutzt Erste Schritte um Dashboard- und API-Operationen zu planen, verbinde es mit Verwendung von @capgo/capacitor-twilio-voice für die native Funktion in Verwendung von @capgo/capacitor-twilio-voice, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.