スタートガイド
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
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.
インストール
「インストール」セクション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.手動セットアップを希望する場合は、以下のコマンドを実行してプラグインをインストールし、下記のプラットフォーム別の手順に従ってください:
npm install @capgo/capacitor-twilio-voicenpx cap syncインポート
「インポート」セクションimport { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';クイックスタート
「クイックスタート」セクションimport { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });よくある落とし穴
「よくある落とし穴」セクション- トークンTTL: 有効期限が切れる前に Twilio トークンをリフレッシュしてください。
- 着信: iOS で VoIP プッシュを設定してください。
- マイクの権限: 通話を開始する前にリクエストしてください。
API の概要
「API 概要」セクションlogin
「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
「logout」セクション現在のユーザーをログアウトし、Twilio Voice の登録を解除します。
これにより、進行中の通話はすべて切断され、デバイスへの新しい着信通知も停止されます。
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
「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
「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'});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」セクション進行中の通話を終了します。
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」セクションスピーカーモードの有効/無効を切り替えます。
有効にすると、音声は受話器ではなくデバイスのスピーカーから出力されます。
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
「CallInvite」セクションモバイルアプリケーションにTwilio Voice機能を統合するためのCapacitorプラグイン。
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>;}Source of Truth
「Source Of Truth」セクションこのページはプラグインの src/definitions.tsから生成されています。upstream で公開 API が変更されたら、再度 sync を実行してください。
Getting Startedの続きを進める
「Getting Started からの続き」セクション使用している場合 スタートガイド ダッシュボードと API の運用を計画するには、これを次と連携させます @capgo/capacitor-twilio-voice の使い方 @capgo/capacitor-twilio-voice を使用して Native Build の機能を利用する場合: API の概要 「API の概要」の実装の詳細については、 はじめに 「はじめに」における実装の詳細については、 API キー および「API Keys」の実装の詳細については、 デバイス 実装の詳細については Devices を参照してください。