Guida rapida
Copia un prompt di setup con i passaggi di installazione e la guida markdown completa per questo 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.
Installazione
Sezione intitolata “Install”Puoi usare il nostro Setup assistito dall'AI per installare il plugin. Aggiungi le skill Capgo al tuo tool AI con il comando seguente:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa questo prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-twilio-voice` plugin in my project.Se preferisci il Setup manuale, installa il plugin eseguendo i comandi seguenti e segui le istruzioni specifiche per piattaforma qui sotto:
npm install @capgo/capacitor-twilio-voicenpx cap syncImporta
Sezione intitolata “Import”import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';Avvio rapido
Sezione intitolata “Avvio rapido”import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });Errori comuni
Sezione intitolata “Errori comuni”- TTL del token: aggiorna i token Twilio prima della scadenza.
- Inbound: configura i push VoIP su iOS.
- Permesso microfono: richiesta prima di effettuare le chiamate.
API Panoramica
Sezione intitolata “Panoramica API”Autentica l'utente con Twilio Voice tramite un access token.
L'access token deve essere generato sul tuo backend usando le tue credenziali Twilio. Questo token è necessario per effettuare e ricevere chiamate tramite Twilio Voice.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.login({ accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'});console.log('Login successful:', result.success);Effettua il logout dell'utente corrente e annulla la registrazione da Twilio Voice.
Questo disconnetterà eventuali chiamate attive e impedirà al dispositivo di ricevere nuove notifiche di chiamate in entrata.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
Sezione intitolata “isLoggedIn”Verifica se l'utente ha effettuato l'accesso e ha un access token valido.
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
Sezione intitolata “makeCall”Avvia una chiamata in uscita verso un numero di telefono o un client.
L'utente deve aver effettuato l'accesso prima di chiamare. La chiamata verrà instradata tramite la tua configurazione backend Twilio.
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
Sezione intitolata “acceptCall”Accetta una chiamata in entrata.
Va chiamato in risposta a un evento ‘callInviteReceived’.
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
Sezione intitolata “rejectCall”Rifiuta una chiamata in entrata.
Questa funzione va chiamata in risposta all'evento ‘callInviteReceived’. Il chiamante riceverà un segnale di occupato o verrà reindirizzato alla segreteria.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { if (shouldRejectCall(data.from)) { await CapacitorTwilioVoice.rejectCall({ callSid: data.callSid }); }});endCall
Sezione intitolata “endCall”Termina una chiamata attiva.
Se non viene fornito callSid, la chiamata attualmente attiva verrà interrotta.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});muteCall
Sezione intitolata “muteCall”Attiva o disattiva il microfono durante una chiamata attiva.
Quando è attivo il mute, l'altra parte non riceverà l'audio dal tuo microfono.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
Sezione intitolata “setSpeaker”Attiva o disattiva la modalità vivavoce.
Quando abilitato, l'audio verrà instradato tramite l'altoparlante del dispositivo invece che l'auricolare.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: true});
// Disable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: false});getCallStatus
Sezione intitolata “getCallStatus”Ottieni lo stato attuale della chiamata attiva.
Fornisce informazioni in tempo reale sullo stato della chiamata, sul mute, sullo stato dell'audio e sugli identificativi della chiamata.
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
Sezione intitolata “checkMicrophonePermission”Verifica se il permesso per il microfono è stato concesso.
Questo non richiede il permesso, controlla solo lo stato attuale dei permessi.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();if (!result.granted) { console.log('Microphone permission not granted');}requestMicrophonePermission
Sezione intitolata “requestMicrophonePermission”Richiedi l'autorizzazione per il microfono all'utente.
Su iOS e Android, verrà mostrato il dialogo dei permessi di sistema se non è già stato concesso. Se il permesso è stato precedentemente negato, l'utente dovrà abilitarlo nelle impostazioni di sistema.
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');}Riferimento ai tipi
Sezione intitolata “Riferimento ai tipi”CallInvite
Sezione intitolata “CallInvite”Plugin Capacitor per integrare le funzionalità di Twilio Voice nelle applicazioni mobile.
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>;}Fonte di verità
Sezione intitolata “Source Of Truth”Questa pagina è generata dal src/definitions.ts. Riesegui la sync quando il API pubblico cambia upstream.
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai usando Guida rapida per pianificare dashboard e operazioni API, collegalo a Utilizzo di @capgo/capacitor-twilio-voice per la funzionalità nativa in Utilizzo di @capgo/capacitor-twilio-voice, API Panoramica per i dettagli di implementazione in Panoramica di API, Introduzione per i dettagli implementativi nell'Introduzione, Chiavi API per i dettagli implementativi in API Keys, e Dispositivi per i dettagli implementativi in Dispositivi.