Panduan Memulai
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
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.
Anda bisa menggunakan AI-Assisted Setup kami untuk menginstal plugin ini. Tambahkan skill Capgo ke tool AI Anda menggunakan perintah berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsKemudian gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-twilio-voice` plugin in my project.Jika Anda lebih memilih Manual Setup, instal plugin dengan menjalankan perintah berikut dan ikuti petunjuk khusus platform di bawah ini:
npm install @capgo/capacitor-twilio-voicenpx cap syncimport { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';Mulai cepat
Bagian berjudul “Mulai cepat”import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
await CapacitorTwilioVoice.login({ accessToken: tokenFromBackend });await CapacitorTwilioVoice.makeCall({ to: '+15551234567' });Kesalahan umum
Bagian berjudul “Kesalahan umum”- TTL Token: refresh token Twilio sebelum kedaluwarsa.
- Inbound: konfigurasi VoIP push di iOS.
- Izin mikrofon: minta izin sebelum melakukan panggilan.
Ringkasan API
Bagian berjudul “API Overview”Autentikasi user dengan Twilio Voice menggunakan access token.
Access token harus dibuat di backend server Anda menggunakan kredensial Twilio. Token ini diperlukan untuk melakukan dan menerima panggilan melalui Twilio Voice.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.login({ accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'});console.log('Login successful:', result.success);logout
Bagian berjudul “logout”Logout user saat ini dan unregister dari Twilio Voice.
Ini akan memutuskan semua panggilan aktif dan menghentikan perangkat agar tidak menerima notifikasi panggilan masuk baru.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.logout();console.log('Logout successful:', result.success);isLoggedIn
Bagian berjudul “isLoggedIn”Cek apakah user sedang login dan memiliki access token yang valid.
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
Bagian berjudul “makeCall”Melakukan panggilan keluar ke nomor telepon atau client.
User harus login sebelum melakukan panggilan. Panggilan akan diarahkan melalui konfigurasi backend Twilio Anda.
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
Bagian berjudul “acceptCall”Menerima panggilan masuk.
Ini harus dipanggil sebagai respons terhadap event ‘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
Bagian berjudul “rejectCall”Tolak panggilan masuk.
Panggil ini sebagai respons terhadap event ‘callInviteReceived’. Penelepon akan mendengar nada sibuk atau dialihkan ke voicemail.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
CapacitorTwilioVoice.addListener('callInviteReceived', async (data) => { if (shouldRejectCall(data.from)) { await CapacitorTwilioVoice.rejectCall({ callSid: data.callSid }); }});endCall
Bagian berjudul “endCall”Akhiri panggilan aktif.
Jika callSid tidak disediakan, ini akan mengakhiri panggilan yang sedang aktif.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// End the current active callawait CapacitorTwilioVoice.endCall({});
// End a specific callawait CapacitorTwilioVoice.endCall({ callSid: 'CA1234567890abcdef'});muteCall
Bagian berjudul “muteCall”Mute atau unmute mikrofon saat panggilan aktif.
Saat di-mute, pihak lain tidak akan mendengar audio dari mikrofon Anda.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Mute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: true});
// Unmute the microphoneawait CapacitorTwilioVoice.muteCall({ muted: false});setSpeaker
Bagian berjudul “setSpeaker”Aktifkan atau nonaktifkan mode speakerphone.
Jika aktif, audio akan diarahkan melalui speaker perangkat, bukan earpiece.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
// Enable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: true});
// Disable speakerphoneawait CapacitorTwilioVoice.setSpeaker({ enabled: false});getCallStatus
Bagian berjudul “getCallStatus”Dapatkan status terkini dari panggilan yang sedang aktif.
Ini memberikan informasi real-time tentang status panggilan, status mute, hold, dan identifier panggilan.
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
Bagian berjudul “checkMicrophonePermission”Periksa apakah izin mikrofon sudah diberikan.
Ini tidak meminta izin, hanya memeriksa status izin saat ini.
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';
const result = await CapacitorTwilioVoice.checkMicrophonePermission();if (!result.granted) { console.log('Microphone permission not granted');}requestMicrophonePermission
Bagian berjudul “requestMicrophonePermission”Minta izin mikrofon kepada pengguna.
Di iOS dan Android, ini akan menampilkan dialog izin sistem jika izin belum diberikan. Jika sebelumnya ditolak, pengguna mungkin perlu memberikannya melalui pengaturan sistem.
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');}Referensi Tipe
Bagian berjudul “Referensi Tipe”CallInvite
Bagian berjudul “CallInvite”Plugin Capacitor untuk mengintegrasikan fungsionalitas Twilio Voice ke dalam aplikasi mobile.
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>;}Sumber Kebenaran
Bagian berjudul “Sumber Kebenaran”This page is generated from the plugin’s src/definitions.ts plugin API. Jalankan ulang sync saat API publik berubah di upstream.
Lanjutkan dari Getting Started
Bagian berjudul “Lanjutkan dari Getting Started”Jika Anda menggunakan Panduan Memulai untuk merencanakan dashboard dan operasi API, hubungkan dengan Menggunakan @capgo/capacitor-twilio-voice untuk kapabilitas native di Menggunakan @capgo/capacitor-twilio-voice, Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi pada API Keys, dan Perangkat untuk detail implementasi pada Devices.