Saltar al contenido

Primeros pasos

GitHub

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:

Ventana de la terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

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

Ventana de la terminal
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' });
  • 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.

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

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
}

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

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

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

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 call
await CapacitorTwilioVoice.endCall({});
// End a specific call
await CapacitorTwilioVoice.endCall({
callSid: 'CA1234567890abcdef'
});

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

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

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

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

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

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

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.

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.