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-stream-call`
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/streamcall/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:
bunx 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-stream-call` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:
bun add @capgo/capacitor-stream-callbunx cap syncImportar
Sección titulada “Importar”import { StreamCall } from '@capgo/capacitor-stream-call';Inicio rápido
Sección titulada “Inicio rápido”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({ token: 'your-token', userId: 'user-123', name: 'John Doe', apiKey: 'your-api-key'});Ejemplo: logout
Sección titulada “Ejemplo: logout”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.logout();Ejemplo: call
Sección titulada “Ejemplo: call”import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.call({ userId: 'user-456', type: 'video', ring: true});Errores comunes
Sección titulada “Errores comunes”- Listeners: elimina los handles cuando se desmonten las pantallas.
- Sync nativo: ejecuta
bunx cap synctras actualizar los plugins. - Fuente de verdad: confianza
src/definitions.tsen el repo de GitHub.
Resumen de API
Sección titulada “Resumen de API”Iniciar sesión en el servicio de Stream Video
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.login({ token: 'your-token', userId: 'user-123', name: 'John Doe', apiKey: 'your-api-key'});Cerrar sesión en el servicio de Stream Video
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.logout();Inicia una llamada con otro usuario
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.call({ userId: 'user-456', type: 'video', ring: true});endCall
Sección titulada “endCall”Finaliza la llamada actual
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.endCall();joinCall
Sección titulada “joinCall”Únete a una llamada existente
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.joinCall({ callId: 'call001', callType: 'default' });setMicrophoneEnabled
Sección titulada “setMicrophoneEnabled”Activa o desactiva el micrófono
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setMicrophoneEnabled({ enabled: false });setCameraEnabled
Sección titulada “setCameraEnabled”Activar o desactivar la cámara
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setCameraEnabled({ enabled: false });enableBluetooth
Sección titulada “enableBluetooth”Activar el audio por Bluetooth
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.enableBluetooth();acceptCall
Sección titulada “acceptCall”Aceptar una llamada entrante
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.acceptCall();rejectCall
Sección titulada “rejectCall”Rechazar una llamada entrante
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.rejectCall();isCameraEnabled
Sección titulada “isCameraEnabled”Comprobar si la cámara está activada
import { StreamCall } from '@capgo/capacitor-stream-call';
const isCameraEnabled = await StreamCall.isCameraEnabled();console.log(isCameraEnabled);getCallStatus
Sección titulada “getCallStatus”Obtener el estado actual de la llamada
import { StreamCall } from '@capgo/capacitor-stream-call';
const callStatus = await StreamCall.getCallStatus();console.log(callStatus);getRingingCall
Sección titulada “getRingingCall”Obtener la llamada entrante actual
import { StreamCall } from '@capgo/capacitor-stream-call';
const ringingCall = await StreamCall.getRingingCall();console.log(ringingCall);toggleViews
Sección titulada “toggleViews”Alternar entre los layouts de video disponibles
import { StreamCall } from '@capgo/capacitor-stream-call';
const { newLayout } = await StreamCall.toggleViews();console.log(`Layout switched to ${newLayout}`);setSpeaker
Sección titulada “setSpeaker”Activar el altavoz
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setSpeaker({ name: 'speaker' });switchCamera
Sección titulada “switchCamera”Cambiar de cámara
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.switchCamera({ camera: 'back' });getCallInfo
Sección titulada “getCallInfo”Obtener información detallada de una llamada activa, incluidos los datos del llamante
import { StreamCall } from '@capgo/capacitor-stream-call';
const result = await StreamCall.getCallInfo({ callId: 'call-id-123' });console.log(result);setDynamicStreamVideoApikey
Sección titulada “setDynamicStreamVideoApikey”Configurar una API key dinámica de Stream Video que reemplaza la estática
import { StreamCall } from '@capgo/capacitor-stream-call';
await StreamCall.setDynamicStreamVideoApikey({ apiKey: 'new-api-key' });getDynamicStreamVideoApikey
Sección titulada “getDynamicStreamVideoApikey”Obtén la clave API dinámica de Stream Video configurada actualmente
import { StreamCall } from '@capgo/capacitor-stream-call';
const result = await StreamCall.getDynamicStreamVideoApikey();if (result.hasDynamicKey) { console.log('Dynamic API key:', result.apiKey);} else { console.log('Using static API key from resources');}getCurrentUser
Sección titulada “getCurrentUser”Obtén la información del usuario actual
import { StreamCall } from '@capgo/capacitor-stream-call';
const currentUser = await StreamCall.getCurrentUser();console.log(currentUser);Referencia de tipos
Sección titulada “Referencia de tipos”LoginOptions
Sección titulada “LoginOptions”export interface LoginOptions { /** Stream Video API token */ token: string; /** User ID for the current user */ userId: string; /** Display name for the current user */ name: string; /** Optional avatar URL for the current user */ imageURL?: string; /** Stream Video API key */ apiKey: string; /** ID of the HTML element where the video will be rendered */ magicDivId?: string; pushNotificationsConfig?: PushNotificationsConfig;}SuccessResponse
Sección titulada “SuccessResponse”export interface SuccessResponse { /** Whether the operation was successful */ success: boolean; callId?: string;}CallOptions
Sección titulada “CallOptions”export interface CallOptions { /** User ID of the person to call */ userIds: string[]; /** Type of call, defaults to 'default' */ type?: CallType; /** Whether to ring the other user, defaults to true */ ring?: boolean; /** Team name to call */ team?: string; /** Whether to start the call with video enabled, defaults to false */ video?: boolean; /** Custom data to be passed to the call */ custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;}CallEvent
Sección titulada “CallEvent”export interface CallEvent { /** ID of the call */ callId: string; /** Current state of the call */ state: CallState; /** User ID of the participant in the call who triggered the event */ userId?: string; /** Reason for the call state change, if applicable */ reason?: string; /** Information about the caller (for incoming calls) */ caller?: CallMember; /** List of call members */ members?: CallMember[];
custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;
count?: number;}IncomingCallPayload
Sección titulada “IncomingCallPayload”export interface IncomingCallPayload { /** Full call CID (e.g. default:123) */ cid: string; /** Event type (currently always "incoming") */ type: 'incoming'; /** Information about the caller */ caller?: CallMember; /** Custom data to be passed to the call */ custom?: Record< string, | string | boolean | number | null | Record<string, string | boolean | number | null> | string[] | boolean[] | number[] >;
/** * Get the native Capacitor plugin version * * @returns {Promise<{ id: string }>} an Promise with version for this device * @throws An error if the something went wrong */ getPluginVersion(): Promise<{ version: string }>;}CameraEnabledResponse
Sección titulada “CameraEnabledResponse”export interface CameraEnabledResponse { enabled: boolean;}StreamCallLayout
Sección titulada “StreamCallLayout”export type StreamCallLayout = 'grid' | 'spotlight' | 'dynamic' | 'fullScreen' | 'fullscreen';DynamicApiKeyResponse
Sección titulada “DynamicApiKeyResponse”export interface DynamicApiKeyResponse { /** The dynamic API key if set, null if not */ apiKey: string | null; /** Whether a dynamic key is currently set */ hasDynamicKey: boolean;}CurrentUserResponse
Sección titulada “CurrentUserResponse”export interface CurrentUserResponse { /** User ID of the current user */ userId: string; /** Display name of the current user */ name: string; /** Avatar URL of the current user */ imageURL?: string; /** Whether the user is currently logged in */ isLoggedIn: boolean;}PushNotificationsConfig
Sección titulada “PushNotificationsConfig”export interface PushNotificationsConfig { pushProviderName: string; voipProviderName: string;}CallType
Sección titulada “CallType”export type CallType = 'default' | 'audio' | 'audio_room' | 'livestream' | 'development';CallState
Sección titulada “CallState”export type CallState = // User-facing states | 'idle' | 'ringing' | 'joining' | 'reconnecting' | 'joined' | 'leaving' | 'left' // Event-specific states | 'created' | 'session_started' | 'rejected' | 'participant_counts' | 'missed' | 'accepted' | 'ended' | 'camera_enabled' | 'camera_disabled' | 'speaker_enabled' | 'speaker_disabled' | 'microphone_enabled' | 'microphone_disabled' | 'outgoing_call_ended' | 'unknown';Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del plugin src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en upstream.
Continúa desde Getting Started
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar las operaciones del dashboard y de API, conéctalo con Uso de @capgo/capacitor-stream-call para la capacidad nativa en Uso de @capgo/capacitor-stream-call, Resumen de API para los detalles de implementación en API Overview, Introducción para los detalles de implementación en la Introducción, Claves de API para los detalles de implementación en las claves de API, y Dispositivos para el detalle de implementación en Devices.