跳过内容

开始

GitHub

您可以使用我们的 AI 助手设置来安装插件。将 Capgo 技能添加到您的 AI 工具中,使用以下命令:

终端窗口
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.

如果您更喜欢手动设置,请按照以下命令安装插件并遵循以下平台特定的说明:

终端窗口
bun add @capgo/capacitor-twilio-voice
bunx cap sync

导入

导入
import { CapacitorTwilioVoice } from '@capgo/capacitor-twilio-voice';

API概述

API概述

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

注销

登出当前用户并注销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);
}

checkMicrophonePermission

标题:检查麦克风权限

检查是否已获得麦克风权限。

不请求权限,仅检查当前权限状态。

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

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

呼叫邀请

Capacitor 为移动应用程序集成 Twilio Voice 功能的插件。

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重新同步时,公共 API 上游发生变化。

继续从开始使用

继续从开始使用

如果您正在使用 开始使用 来规划仪表板和 API 操作,连接它与 使用 @capgo/capacitor-twilio-voice 为使用 @capgo/capacitor-twilio-voice 的原生能力 API 简介 为 API Overview 的实现细节 简介 为简介中的实现细节 API 键 为API 键中的实现细节,并 设备 context