メインコンテンツへスキップ

スタートガイド

GitHub

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-voice
npx 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 プッシュを設定してください。
  • マイクの権限: 通話を開始する前にリクエストしてください。

アクセストークンを使用して 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);

現在のユーザーをログアウトし、Twilio Voice の登録を解除します。

これにより、進行中の通話はすべて切断され、デバイスへの新しい着信通知も停止されます。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();
console.log('Logout successful:', result.success);

ユーザーがログイン済みで、有効なアクセストークンを持っているか確認します。

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
}

電話番号またはクライアントへの発信を開始します。

通話を開始するには、ユーザーがログインしている必要があります。通話は、設定済みの Twilio バックエンドを経由してルーティングされます。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Call a phone number
const result = await CapacitorTwilioVoice.makeCall({
to: '+1234567890'
});
console.log('Call SID:', result.callSid);
// Call another Twilio client with a readable name for CallKit Recents
await CapacitorTwilioVoice.makeCall({
to: 'client:alice',
displayName: 'Alice Smith'
});
// Call a PSTN number using a specific caller ID
await CapacitorTwilioVoice.makeCall({
to: '+1234567890',
callerId: '+10987654321'
});

着信に応答します。

これは「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);
});

着信を拒否します。

これは「callInviteReceived」イベントへのレスポンスとして呼び出す必要があります。 呼び出し側には話し中音が流れるか、留守番電話に転送されます。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => {
if (shouldRejectCall(data.from)) {
await CapacitorTwilioVoice.rejectCall({
callSid: data.callSid
});
}
});

進行中の通話を終了します。

callSid が指定されていない場合、現在進行中の通話が終了します。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active call
await CapacitorTwilioVoice.endCall({});
// End a specific call
await CapacitorTwilioVoice.endCall({
callSid: 'CA1234567890abcdef'
});

通話中にマイクのミュート/解除を切り替えます。

ミュート中は、相手にマイクからの音声が伝わらなくなります。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphone
await CapacitorTwilioVoice.muteCall({
muted: true
});
// Unmute the microphone
await CapacitorTwilioVoice.muteCall({
muted: false
});

スピーカーモードの有効/無効を切り替えます。

有効にすると、音声は受話器ではなくデバイスのスピーカーから出力されます。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphone
await CapacitorTwilioVoice.setSpeaker({
enabled: true
});
// Disable speakerphone
await CapacitorTwilioVoice.setSpeaker({
enabled: false
});

現在の通話ステータスを取得します。

通話状態、ミュート状態、保留状態、および通話識別子に関するリアルタイム情報を提供します。

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);
}

マイクの権限が許可されているか確認します。

これは権限をリクエストするものではなく、現在の権限状態を確認するのみです。

import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();
if (!result.granted) {
console.log('Microphone permission not granted');
}

ユーザーにマイクの権限をリクエストします。

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');
}

モバイルアプリケーションに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>;
}

このページはプラグインの 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 を参照してください。