시작하기
설치
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.
설치
설치Capgo의 AI 보조 설치를 사용하여 플러그인을 설치할 수 있습니다. AI 도구에 Capgo 기능을 추가하려면 다음 명령어를 사용하세요:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins그다음에 다음 명령어를 사용하세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-twilio-voice` plugin in my project.만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래의 플랫폼별 지침을 따르세요:
bun add @capgo/capacitor-twilio-voicebunx cap syncImport
Importimport { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';API 개요
API 개요 제목login
로그인Twilio Voice를 사용하여 사용자를 인증합니다.
액세스 토큰은 백엔드 서버에서 Twilio 인증 정보를 사용하여 생성해야 합니다. 액세스 토큰은 Twilio Voice를 통해 전화 걸기 및 받기를 하기 위해 필요합니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.login({ accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'});console.log('Login successful:', result.success);logout
로그아웃현재 사용자 로그아웃하고 Twilio Voice에서 등록 해제합니다.
이것은 활성 전화 연결을 끊고 장치가 새로운 incoming call 알림을 받지 않도록 합니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
로그인 상태 확인로그인 한 사용자인지 확인하고 유효한 access 토큰이 있는지 확인합니다.
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
makeCall전화번호 또는 클라이언트로 전송하는 outgoing 호출을 초기화합니다.
전화를 걸기 전에 로그인해야 합니다. 전화를 걸면 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
acceptCall전화를 받습니다.
이 함수는 '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
rejectCall전화를 거부합니다.
이 함수는 'callInviteReceived' 이벤트에 대한 응답으로 호출되어야 합니다. 통화자는忙선 신호를 듣거나 자동응답으로 연결됩니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { if (shouldRejectCall(data.from)) { await CapacitorTwilioVoice.rejectCall({ callSid: data.callSid }); }});endCall
‘endCall’ 섹션현재 진행 중인 통화를 종료합니다.
클립보드에 복사
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});muteCall
통화 중에 마이크를 무음 처리하거나 해제합니다.마이크가 무음 처리된 경우, 상대방은 마이크에서 오디오를 들을 수 없습니다.
클립보드에 복사
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
스피커 모드를 활성화하거나 비활성화합니다.__CAPGO_KEEP_0__
음성은 장치의 스피커를 통해 라우팅되며耳piece 대신에 사용됩니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: true});
// Disable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: false});getCallStatus
getCallStatus현재 진행 중인 통화의 상태를 가져옵니다.
이 기능은 통화 상태, 음소거 상태, 대기 상태 및 통화 식별자에 대한 실시간 정보를 제공합니다.
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
checkMicrophonePermission마이크 권한이 부여되었는지 확인합니다.
권한을 요청하는 것이 아니라 현재 권한 상태를 확인합니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();if (!result.granted) { console.log('Microphone permission not granted');}requestMicrophonePermission
requestMicrophonePermission사용자에게 마이크 권한을 요청합니다.
On iOS와 Android에서, 이 기능은 권한이 아직 부여되지 않은 경우 시스템 권한 대화 상자를 표시합니다. 권한이 이전에 거부된 경우 사용자는 시스템 설정에서 다시 부여해야 할 수 있습니다.
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');}타입 참조
타입 참조 섹션CallInvite
인바이팅 콜 섹션Capacitor 플러그인을 사용하여 모바일 애플리케이션에 Twilio Voice 기능을 통합합니다.
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>;}진실의 원천
진실의 원천 섹션이 페이지는 플러그인의 src/definitions.ts업스트림에서 pubic API이 변경될 때 다시 싱크를 실행하세요.
Getting Started에서 계속하세요.
Section titled “Getting Started를 계속하기”If you are using Getting Started to plan dashboard and API operations, connect it with Using @capgo/capacitor-twilio-voice for the native capability in Using @capgo/capacitor-twilio-voice, API Overview for the implementation detail in API Overview, Introduction for the implementation detail in Introduction, API Keys for the implementation detail in API Keys, and 기기 기기 구현에 대한 세부 정보를 위해