내용으로 건너뛰기

시작하기

GitHub

Capgo의 AI-Assisted Setup을 사용하여 플러그인을 설치할 수 있습니다. 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-incoming-call-kit` plugin in my project.

만약 Manual Setup을 선호한다면, 플러그인을 설치하기 위해 다음 명령어를 실행하고 아래의 플랫폼별 지침을 따르세요:

  1. 설치 패키지를 설치하세요.

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

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

통합이 어떻게 맞물리는지

제목 ‘통합이 어떻게 맞물리는지’

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

생산 환경에서 일반적인 패턴은 다음과 같습니다.

  1. 백엔드 또는 호출 SDK가 ring 이벤트를 방출합니다.
  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: stable identifier 재사용 endCall()
  • timeoutMs: 최선을 다하는 답변 시간 초과
  • extra: 리스너 페이로드에서 임의의 JSON이 반영됩니다.
  • android.channelId and android.channelNameand
  • android.showFullScreen: 안드로이드 알림 채널 조정
  • ios.handleType: choose generic, phoneNumber: 선택 emailAddress , 또는
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: 통화는 timeoutMs

: 이벤트는 정규화된 call 및 원본 extra 을 포함합니다.

플랫폼 참고 사항

참고 사항
  • 스타일 가이드를 읽어보세요. iOS 가이드 PushKit 또는 APNs 흐름에 CallKit을 연결하기 전에.
  • 스타일 가이드를 읽어보세요. Android 가이드 Android 14 이상에서 전체 화면 인텐트에 의존하기 전에.
  • 웹은 지원되지 않습니다.

시작하기

시작하기

Capgo를 사용하여 대시보드와 __CAPGO_KEEP_0__ 작업을 계획하고 있다면, __CAPGO_KEEP_0__와 __CAPGO_KEEP_1__-incoming-call-kit을 연결하세요. 시작하기 계획 대시보드와 API 운영을 계획하고 연결하려면 Using @capgo/capacitor-incoming-call-kit Capgo의 내장 기능을 사용하기 위해 @capgo/capacitor-incoming-call-kit API 개요 Capgo의 구현 세부 정보를 위한 API 개요 소개 소개의 구현 세부 정보를 위한 __CAPGO_KEEP_0__ API 키 API 키의 구현 세부 정보와 함께 장치 장치의 구현 세부 정보를 위한