Lompat ke Konten

Mulai Berlatih

GitHub

Anda dapat menggunakan Pengaturan Bantuan AI kami untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI Anda menggunakan perintah berikut:

Jendela terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Lalu 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 suka Pengaturan Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:

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 di 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 melepaskan registrasi dari Twilio Voice.

Ini akan memutuskan semua panggilan aktif dan menghentikan perangkat dari menerima notifikasi panggilan masuk baru.

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

Periksa apakah 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 panggilan 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);
});

Menolak panggilan masuk.

Ini harus dipanggil dalam respons terhadap acara ‘callInviteReceived’.

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

Bab berjudul “endCall”

Selesai panggilan aktif.

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

Bab berjudul “muteCall”

Mengunci atau melepaskan mikrofon selama panggilan aktif.

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 dialihkan melalui speaker perangkat daripada telinga.

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

Dapatkan status saat ini dari panggilan aktif.

Ini memberikan informasi waktu nyata tentang status panggilan, status mute, status tahan, 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 jika izin mikrofon telah 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');
}

Minta izin mikrofon dari pengguna.

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

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

Halaman ini dihasilkan dari plugin’s src/definitions.ts. Re-run sync ketika API publik berubah di atas.

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