Zum Inhalt springen

Erste Schritte

GitHub

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:

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

Nutze 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:

Terminalfenster
npm install @capgo/capacitor-twilio-voice
npx cap sync
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });
await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });
  • Token-TTL: Twilio-Token vor Ablauf erneuern.
  • Eingehend: VoIP-Push auf iOS konfigurieren.
  • Mikrofon-Berechtigung: vor Anrufen anfordern.

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);

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
}

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 number
const result = await CapacitorTwilioVoice.makeCall({
to: '+1234567890'
});
console.log('Call SID:', result.callSid);
// Call another Twilio client with a readable name for CallKit Recents
await CapacitorTwilioVoice.makeCall({
to: 'client:alice',
displayName: 'Alice Smith'
});
// Call a PSTN number using a specific caller ID
await CapacitorTwilioVoice.makeCall({
to: '+1234567890',
callerId: '+10987654321'
});

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);
});

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 call
await CapacitorTwilioVoice.endCall({});
// End a specific call
await 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 microphone
await CapacitorTwilioVoice.muteCall({
muted: true
});
// Unmute the microphone
await CapacitorTwilioVoice.muteCall({
muted: false
});

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 speakerphone
await CapacitorTwilioVoice.setSpeaker({
enabled: true
});
// Disable speakerphone
await CapacitorTwilioVoice.setSpeaker({
enabled: false
});

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);
}

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');
}

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');
}

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>;
}

Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.

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.