메인 콘텐츠로 바로가기

Getting Started

GitHub

설치

설치

Capgo AI 도구에 다음 명령어를 사용하여 스킬을 추가하세요.

터미널
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-incoming-call-kit` plugin in my project.

만약에 수동 설치를 원한다면, 다음 명령어를 실행하고 아래의 플랫폼별 지침을 따르세요.

  1. 패키지 설치

    터미널
    bun add @capgo/capacitor-incoming-call-kit
  2. 자연스러운 프로젝트 동기화

    터미널
    bunx cap sync
  3. 링 소스 선택 incoming-call 이벤트가 백엔드, SDK (예: Twilio 또는 Stream) 또는 원시 푸시 경로 (예: FCM 또는 PushKit)에서 오는지 결정합니다.

통합이 어떻게 맞물리는지

통합이 어떻게 맞물리는지

이 플러그인은 원시 incoming-call 표시만 관리합니다. 앱은 여전히 전송, 인증, 실제 미디어 세션을 관리합니다.

통합 패턴

  1. 백엔드 또는 호출 SDK가 링 이벤트를 전송합니다.
  2. 앱이 showIncomingCall().
  3. 플러그인이 원시 incoming-call UI를 표시합니다.
  4. callAccepted 실제 회의 또는 VoIP 세션에 참여하도록 앱에게 알려줍니다.
  5. callDeclined, callEnded또는 callTimedOut 앱이 원격 상태를 정리하도록 지시합니다.

최소한의 통합

최소한의 통합
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
await IncomingCallKit.addListener('callAccepted', async ({ call }) => {
console.log('Accepted', call.callId, call.extra);
// Start or join your real call session here.
});
await IncomingCallKit.addListener('callDeclined', ({ call }) => {
console.log('Declined', call.callId);
// Tell your backend or SDK that the user declined.
});
await IncomingCallKit.addListener('callTimedOut', ({ call }) => {
console.log('Timed out', call.callId);
// Clear ringing state in your backend or SDK.
});
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+39 555 010 020',
appName: 'Capgo Phone',
hasVideo: true,
timeoutMs: 45_000,
extra: {
roomId: 'room-42',
callerUserId: 'user_ada',
},
android: {
channelId: 'calls',
channelName: 'Incoming Calls',
showFullScreen: true,
},
ios: {
handleType: 'phoneNumber',
},
});

중요한 옵션

중요한 옵션
  • callId: 나중에 재사용할 수 있는 안정된 식별자 endCall()
  • timeoutMs: 최선의 노력으로 응답하지 못하는 타임아웃
  • extra: 리스너 패킷에서 반영된 임의의 JSON
  • android.channelId 그리고 android.channelName: 안드로이드 알림 채널 조정
  • android.showFullScreen: 안드로이드 전면 incoming-call 활동을 요청합니다.
  • ios.handleType: 선택 generic, phoneNumber, 또는 emailAddress CallKit을 위한

활성화된 통화를 관리하는

활성화된 통화를 관리하는
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});

이벤트 모델

이벤트 모델
  • incomingCallDisplayed: 네이티브 UI가 성공적으로 표시되었습니다.
  • callAccepted: 사용자가 네이티브 UI에서 수락했습니다.
  • callDeclined: 사용자가 통화에 참가하기 전에 거부했습니다.
  • callEnded: 앱 또는 플랫폼이 추적된 통화를 종료했습니다.
  • callTimedOut__CAPGO_KEEP_0__까지 전화는 받지 못했습니다. timeoutMs

각 이벤트는 정규화 된 call 데이터와 원본 extra 객체를 포함합니다.

Getting Started에서 계속 진행하세요.

Getting Started에서 계속 진행하세요

__CAPGO_KEEP_0__을 사용 중이라면 Getting Started API과 연결하여 Using @capgo/capacitor-incoming-call-kit Using @capgo/capacitor-incoming-call-kit의 네이티브 기능을 위해 API Overview API Overview의 구현 세부 사항을 위해 Introduction Introduction의 구현 세부 사항을 위해 API 키 implementation 세부 정보에 대한 API 키 장치 implementation 세부 정보에 대한 장치.