시작하기
설치 명령어와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 프롬프트 복사
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.
설치
설치 제목bun add @capgo/capacitor-twilio-voicebunx cap syncimport { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';API Overview
Section titled “API Overview”login
Section titled “로그인”사용자를 인증하기 위해 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
Section titled “로그아웃”현재 사용자를 로그아웃하고 Twilio Voice에서 등록 해제하세요.
이 작업은 활성 전화 연결을 끊고 장치가 새로운 incoming call notifications을 받지 않도록 중단합니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
로그인 상태 확인사용자가 현재 로그인되어 유효한 접근 토큰을 가지고 있는지 확인합니다.
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
전화 번호 또는 클라이언트로 호출을 시작합니다.전화 번호를 호출하기 전에 사용자가 로그인되어야 합니다. 호출은 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'});클립보드에 복사
전화 거부
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
전화 거부전화 수락 거부
‘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’ 제목현재 진행 중인 통화를 종료합니다.
callSid이 제공되지 않은 경우 현재 진행 중인 통화를 종료합니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});muteCall
‘muteCall’ 제목통화 중 마이크를 무음 또는 무음 상태로 설정합니다.
마이크가 무음 상태일 때, 다른 당사자는 마이크에서 오디오를 들을 수 없습니다.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
‘setSpeaker’ 제목음성 통화 모드를 활성화하거나 비활성화합니다.
활성화 시 음성은 장치의 스피커를 통해 전달되며耳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사용자의 마이크 권한 요청
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>;}진실의 근원
진실의 근원__CAPGO_KEEP_0__의 공개 변경 사항이 업스트림에서 업데이트되면 다시 싱크를 실행하세요. src/definitions.ts. Re-run the sync when the public API changes upstream.