Lompat ke Konten

Mulai Membuat

Jendela terminal
bun add @capgo/capacitor-twilio-voice
bunx cap sync
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

Autentikasi pengguna dengan Twilio Voice menggunakan token akses.

Token akses harus dihasilkan pada server backend Anda menggunakan kredit Twilio Anda. Token ini diperlukan untuk membuat 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);

Keluar dari pengguna saat ini dan me-rekam dari Twilio Voice.

Hal ini akan memutuskan panggilan aktif dan menghentikan perangkat dari menerima pemberitahuan panggilan masuk baru.

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

Periksa jika pengguna saat ini sudah masuk dan memiliki token akses 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
}

Mulai panggil keluar ke nomor telepon atau klien.

Pengguna harus masuk terlebih dahulu sebelum melakukan panggilan. Panggilan akan diarahkan melalui konfigurasi backend Twilio Anda.

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

Terima panggilan masuk.

Fungsi ini harus dipanggil dalam 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);
});

Tolak panggilan masuk.

Fungsi ini harus dipanggil dalam respons terhadap event ‘callInviteReceived’. Pengguna panggil akan mendengar sinyal sibuk atau dialihkan ke suara pesan.

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

Tutup panggilan aktif.

Jika callSid tidak disediakan, ini akan menutup panggilan aktif saat ini.

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

Nonaktifkan atau aktifkan mikrofon selama panggilan aktif.

Ketika nonaktif, pihak lain tidak akan mendengar suara dari mikrofon Anda.

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

Aktifkan atau nonaktifkan mode speakerphone.

Ketika diaktifkan, suara akan diarahkan melalui perangkat speaker daripada earpiece.

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

Ambil status panggilan aktif saat ini.

Fungsi ini memberikan informasi waktu nyata tentang status panggilan, status bisu, status menahan, dan identifikasi 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);
}

Periksa apakah izin mikrofon telah diberikan.

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

Minta izin mikrofon dari pengguna.

Pada iOS dan Android, ini akan menampilkan dialog izin sistem jika izin belum diberikan. Jika izin sebelumnya ditolak, pengguna mungkin perlu mengizinkannya di 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

Referensi Tipe

Capacitor plugin untuk mengintegrasikan fungsi suara Twilio 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>;
}

Halaman ini dihasilkan dari plugin’s src/definitions.tsRe-run sinkronisasi ketika API publik berubah secara upstream.

Jika Anda menggunakan Getting Started untuk merencanakan dashboard dan API operasi, hubungkannya dengan Menggunakan @capgo/capacitor-twilio-suara untuk kemampuan asli dalam Menggunakan @capgo/capacitor-twilio-suara, API Ringkasan untuk detail implementasi dalam API Ringkasan, Pendahuluan untuk detail implementasi dalam Pendahuluan, API Kunci untuk detail implementasi dalam API Kunci, dan Perangkat untuk detail implementasi dalam Perangkat.