Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este 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.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-twilio-voice` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando los siguientes comandos y sigue las instrucciones específicas para cada plataforma a continuación:
npm install @capgo/capacitor-twilio-voicenpx cap syncImportar
Sección titulada “Importar”import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';Inicio rápido
Sección titulada “Inicio rápido”import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });Errores comunes
Sección titulada “Errores comunes”- TTL del token: refresca los tokens de Twilio antes de que expiren.
- Entrantes: configura VoIP push en iOS.
- Permiso de micrófono: solicítalo antes de realizar llamadas.
Resumen de API
Sección titulada “Descripción general de API”Autentica al usuario con Twilio Voice usando un access token.
El access token debe generarse en tu servidor backend usando tus credenciales de Twilio. Este token es necesario para realizar y recibir llamadas mediante Twilio Voice.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.login({ accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'});console.log('Login successful:', result.success);Cierra la sesión del usuario actual y desregístralo de Twilio Voice.
Esto desconectará cualquier llamada activa y evitará que el dispositivo reciba nuevas notificaciones de llamadas entrantes.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
Sección titulada “isLoggedIn”Comprueba si el usuario tiene la sesión iniciada y un access token válido.
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
Sección titulada “makeCall”Inicia una llamada saliente a un número de teléfono o cliente.
El usuario debe haber iniciado sesión antes de realizar una llamada. La llamada se enrutará a través de tu configuración de backend de 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
Sección titulada “acceptCall”Aceptar una llamada entrante.
Esto debe llamarse en respuesta 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
Sección titulada “rejectCall”Rechazar una llamada entrante.
Esto debe llamarse en respuesta a un evento ‘callInviteReceived’. El llamante escuchará una señal de ocupado o será redirigido al buzón de voz.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { if (shouldRejectCall(data.from)) { await CapacitorTwilioVoice.rejectCall({ callSid: data.callSid }); }});endCall
Sección titulada “endCall”Finaliza una llamada activa.
Si no se proporciona el callSid, esto finalizará la llamada activa actual.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});muteCall
Sección titulada “muteCall”Silenciar o activar el micrófono durante una llamada activa.
Al estar silenciado, la otra parte no escuchará el audio de tu micrófono.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
Sección titulada “setSpeaker”Activa o desactiva el modo altavoz.
Al activarlo, el audio se dirigirá al altavoz del dispositivo en lugar del auricular.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: true});
// Disable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: false});getCallStatus
Sección titulada “getCallStatus”Obtén el estado actual de la llamada activa.
Esto proporciona información en tiempo real sobre el estado de la llamada, el silencio, el estado de espera y los identificadores de la llamada.
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
Sección titulada “checkMicrophonePermission”Comprueba si se ha concedido el permiso del micrófono.
Esto no solicita el permiso, solo verifica el estado actual del mismo.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();if (!result.granted) { console.log('Microphone permission not granted');}requestMicrophonePermission
Sección titulada “requestMicrophonePermission”Solicita permiso de micrófono al usuario.
En iOS y Android, esto mostrará el diálogo de permisos del sistema si aún no se ha concedido. Si el permiso fue denegado previamente, el usuario deberá activarlo en los ajustes del 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');}Referencia de tipos
Sección titulada “Referencia de tipos”CallInvite
Sección titulada “CallInvite”Plugin Capacitor para integrar la funcionalidad de Twilio Voice en aplicaciones móviles.
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>;}Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en el upstream.
Continúa desde Primeros pasos
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el dashboard y las operaciones de API, conéctalo con Uso de @capgo/capacitor-twilio-voice para la capacidad nativa al usar @capgo/capacitor-twilio-voice, Resumen de API para el detalle de implementación en Resumen de API Overview, Introducción para el detalle de implementación en Introducción, Claves de API para el detalle de implementación en Claves de API, y Dispositivos para el detalle de implementación en Dispositivos.