telnyx-voice-javascript

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- 从Telnyx OpenAPI规范自动生成,请勿编辑 -->

Telnyx Voice - JavaScript

Telnyx 语音 - JavaScript

Installation

安装

bash
npm install telnyx
bash
npm install telnyx

Setup

配置

javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
All examples below assume
client
is already initialized as shown above.
javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // 这是默认配置,可省略
});
以下所有示例都假设
client
已经按照上面的方式完成初始化。

Error Handling

错误处理

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
javascript
try {
  const response = await client.calls.dial({
    connection_id: '7267xxxxxxxxxxxxxx',
    from: '+18005550101',
    to: '+18005550100',
  });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('Network error — check connectivity and retry');
  } else if (err instanceof Telnyx.RateLimitError) {
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API error ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('Validation error — check required fields and formats');
    }
  }
}
Common error codes:
401
invalid API key,
403
insufficient permissions,
404
resource not found,
422
validation error (check field formats),
429
rate limited (retry with exponential backoff).
所有API调用都可能失败,原因包括网络错误、速率限制(429)、校验错误(422)或认证错误(401)。生产环境代码中请务必处理错误:
javascript
try {
  const response = await client.calls.dial({
    connection_id: '7267xxxxxxxxxxxxxx',
    from: '+18005550101',
    to: '+18005550100',
  });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('网络错误 —— 检查网络连接后重试');
  } else if (err instanceof Telnyx.RateLimitError) {
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API错误 ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('校验错误 —— 检查必填字段和格式');
    }
  }
}
常见错误码:
401
API密钥无效,
403
权限不足,
404
资源未找到,
422
校验错误(请检查字段格式),
429
触发速率限制(请使用指数退避策略重试)。

Important Notes

重要提示

  • Phone numbers must be in E.164 format (e.g.,
    +13125550001
    ). Include the
    +
    prefix and country code. No spaces, dashes, or parentheses.
  • Pagination: List methods return an auto-paginating iterator. Use
    for await (const item of result) { ... }
    to iterate through all pages automatically.
  • 电话号码必须采用E.164格式(例如
    +13125550001
    )。需包含
    +
    前缀和国家代码,不允许有空格、短横线或括号。
  • 分页: 列表方法返回自动分页的迭代器。使用
    for await (const item of result) { ... }
    可以自动遍历所有页面。

Operational Caveats

操作注意事项

  • Call Control is event-driven. After
    dial()
    or an inbound webhook, issue follow-up commands from webhook handlers using the
    call_control_id
    in the event payload.
  • Outbound and inbound flows are different: outbound calls start with
    dial()
    , while inbound calls must be answered from the incoming webhook before other commands run.
  • A publicly reachable webhook endpoint is required for real call control. Without it, calls may connect but your application cannot drive the live call state.
  • 通话控制是事件驱动的。在调用
    dial()
    或收到入站webhook后,需要使用事件 payload 中的
    call_control_id
    在webhook处理程序中发起后续命令。
  • 出站和入站流程不同:出站通话以
    dial()
    开头,而入站通话必须先在收到的webhook中应答,才能运行其他命令。
  • 要实现实际的通话控制,需要一个公网可访问的webhook端点。没有该端点的话,通话虽然可以连接,但你的应用无法控制实时通话状态。

Reference Use Rules

参考使用规则

Do not invent Telnyx parameters, enums, response fields, or webhook fields.
  • If the parameter, enum, or response field you need is not shown inline in this skill, read references/api-details.md before writing code.
  • Before using any operation in
    ## Additional Operations
    , read the optional-parameters section and the response-schemas section.
  • Before reading or matching webhook fields beyond the inline examples, read the webhook payload reference.
请勿自行编造Telnyx参数、枚举值、响应字段或webhook字段。
  • 如果你需要的参数、枚举值或响应字段没有在本技能中直接展示,请先阅读references/api-details.md再编写代码。
  • 在使用
    ## 额外操作
    中的任何接口前,请先阅读可选参数章节响应模式章节
  • 在读取或匹配超出内联示例的webhook字段前,请先阅读webhook payload参考

Core Tasks

核心任务

Dial an outbound call

拨打出站通话

Primary voice entrypoint. Agents need the async call-control identifiers returned here.
client.calls.dial()
POST /calls
ParameterTypeRequiredDescription
to
string (E.164)YesThe DID or SIP URI to dial out to.
from
string (E.164)YesThe
from
number to be used as the caller id presented to t...
connectionId
string (UUID)YesThe ID of the Call Control App (formerly ID of the connectio...
timeoutSecs
integerNoThe number of seconds that Telnyx will wait for the call to ...
billingGroupId
string (UUID)NoUse this field to set the Billing Group ID for the call.
clientState
stringNoUse this field to add state to every subsequent webhook.
...+48 optional params in references/api-details.md
javascript
const response = await client.calls.dial({
  connection_id: '7267xxxxxxxxxxxxxx',
  from: '+18005550101',
  to: '+18005550100',
});

console.log(response.data);
Primary response fields:
  • response.data.callControlId
  • response.data.callLegId
  • response.data.callSessionId
  • response.data.isAlive
  • response.data.recordingId
  • response.data.callDuration
主要的语音入口。Agent需要这里返回的异步通话控制标识符。
client.calls.dial()
POST /calls
参数类型必填描述
to
string (E.164)要拨打的DID或SIP URI。
from
string (E.164)用作来电显示的主叫号码。
connectionId
string (UUID)通话控制应用的ID(原连接ID)。
timeoutSecs
integerTelnyx等待通话接通的秒数。
billingGroupId
string (UUID)用于设置通话对应的账单组ID。
clientState
string用于给后续所有webhook添加自定义状态。
...另有48个可选参数见references/api-details.md
javascript
const response = await client.calls.dial({
  connection_id: '7267xxxxxxxxxxxxxx',
  from: '+18005550101',
  to: '+18005550100',
});

console.log(response.data);
主要响应字段:
  • response.data.callControlId
  • response.data.callLegId
  • response.data.callSessionId
  • response.data.isAlive
  • response.data.recordingId
  • response.data.callDuration

Answer an inbound call

接收入站通话

Primary inbound call-control command.
client.calls.actions.answer()
POST /calls/{call_control_id}/actions/answer
ParameterTypeRequiredDescription
callControlId
string (UUID)YesUnique identifier and token for controlling the call
billingGroupId
string (UUID)NoUse this field to set the Billing Group ID for the call.
clientState
stringNoUse this field to add state to every subsequent webhook.
webhookUrl
string (URL)NoUse this field to override the URL for which Telnyx will sen...
...+26 optional params in references/api-details.md
javascript
const response = await client.calls.actions.answer('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
Primary response fields:
  • response.data.result
  • response.data.recordingId
主要的入站通话控制命令。
client.calls.actions.answer()
POST /calls/{call_control_id}/actions/answer
参数类型必填描述
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
billingGroupId
string (UUID)用于设置通话对应的账单组ID。
clientState
string用于给后续所有webhook添加自定义状态。
webhookUrl
string (URL)用于覆盖Telnyx发送事件的目标URL。
...另有26个可选参数见references/api-details.md
javascript
const response = await client.calls.actions.answer('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
主要响应字段:
  • response.data.result
  • response.data.recordingId

Transfer a live call

转接正在进行的通话

Common post-answer control path with downstream webhook implications.
client.calls.actions.transfer()
POST /calls/{call_control_id}/actions/transfer
ParameterTypeRequiredDescription
to
string (E.164)YesThe DID or SIP URI to dial out to.
callControlId
string (UUID)YesUnique identifier and token for controlling the call
timeoutSecs
integerNoThe number of seconds that Telnyx will wait for the call to ...
clientState
stringNoUse this field to add state to every subsequent webhook.
webhookUrl
string (URL)NoUse this field to override the URL for which Telnyx will sen...
...+33 optional params in references/api-details.md
javascript
const response = await client.calls.actions.transfer('call_control_id', {
  to: '+18005550100',
});

console.log(response.data);
Primary response fields:
  • response.data.result

常见的通话应答后控制流程,会触发后续webhook事件。
client.calls.actions.transfer()
POST /calls/{call_control_id}/actions/transfer
参数类型必填描述
to
string (E.164)要转接的目标DID或SIP URI。
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
timeoutSecs
integerTelnyx等待通话接通的秒数。
clientState
string用于给后续所有webhook添加自定义状态。
webhookUrl
string (URL)用于覆盖Telnyx发送事件的目标URL。
...另有33个可选参数见references/api-details.md
javascript
const response = await client.calls.actions.transfer('call_control_id', {
  to: '+18005550100',
});

console.log(response.data);
主要响应字段:
  • response.data.result

Webhook Verification

Webhook 验证

Telnyx signs webhooks with Ed25519. Each request includes
telnyx-signature-ed25519
and
telnyx-timestamp
headers. Always verify signatures in production:
javascript
// In your webhook handler (e.g., Express — use raw body, not parsed JSON):
app.post('/webhooks', express.raw({ type: 'application/json' }), async (req, res) => {
  try {
    const event = await client.webhooks.unwrap(req.body.toString(), {
      headers: req.headers,
    });
    // Signature valid — event is the parsed webhook payload
    console.log('Received event:', event.data.event_type);
    res.status(200).send('OK');
  } catch (err) {
    console.error('Webhook verification failed:', err.message);
    res.status(400).send('Invalid signature');
  }
});
Telnyx使用Ed25519对webhook进行签名。每个请求都包含
telnyx-signature-ed25519
telnyx-timestamp
头。生产环境中请务必验证签名:
javascript
// 在你的webhook处理程序中(例如Express —— 使用原始body,不要用解析后的JSON):
app.post('/webhooks', express.raw({ type: 'application/json' }), async (req, res) => {
  try {
    const event = await client.webhooks.unwrap(req.body.toString(), {
      headers: req.headers,
    });
    // 签名有效 —— event是解析后的webhook payload
    console.log('收到事件:', event.data.event_type);
    res.status(200).send('OK');
  } catch (err) {
    console.error('Webhook验证失败:', err.message);
    res.status(400).send('无效签名');
  }
});

Webhooks

Webhooks

These webhook payload fields are inline because they are part of the primary integration path.
以下webhook payload字段为内联展示,属于核心集成路径的一部分。

Call Answered

通话已应答

FieldTypeDescription
data.record_type
enum: eventIdentifies the type of the resource.
data.event_type
enum: call.answeredThe type of event being delivered.
data.id
uuidIdentifies the type of resource.
data.occurred_at
date-timeISO 8601 datetime of when the event occurred.
data.payload.call_control_id
stringCall ID used to issue commands via Call Control API.
data.payload.connection_id
stringCall Control App ID (formerly Telnyx connection ID) used in the call.
data.payload.call_leg_id
stringID that is unique to the call and can be used to correlate webhook events.
data.payload.call_session_id
stringID that is unique to the call session and can be used to correlate webhook ev...
字段类型描述
data.record_type
enum: event标识资源类型。
data.event_type
enum: call.answered推送的事件类型。
data.id
uuid标识资源类型。
data.occurred_at
date-time事件发生的ISO 8601格式时间。
data.payload.call_control_id
string用于通过通话控制API发起命令的通话ID。
data.payload.connection_id
string通话使用的通话控制应用ID(原Telnyx连接ID)。
data.payload.call_leg_id
string通话的唯一ID,可用于关联webhook事件。
data.payload.call_session_id
string通话会话的唯一ID,可用于关联webhook事件。

Call Hangup

通话已挂断

FieldTypeDescription
data.record_type
enum: eventIdentifies the type of the resource.
data.event_type
enum: call.hangupThe type of event being delivered.
data.id
uuidIdentifies the type of resource.
data.occurred_at
date-timeISO 8601 datetime of when the event occurred.
data.payload.call_control_id
stringCall ID used to issue commands via Call Control API.
data.payload.connection_id
stringCall Control App ID (formerly Telnyx connection ID) used in the call.
data.payload.call_leg_id
stringID that is unique to the call and can be used to correlate webhook events.
data.payload.call_session_id
stringID that is unique to the call session and can be used to correlate webhook ev...
字段类型描述
data.record_type
enum: event标识资源类型。
data.event_type
enum: call.hangup推送的事件类型。
data.id
uuid标识资源类型。
data.occurred_at
date-time事件发生的ISO 8601格式时间。
data.payload.call_control_id
string用于通过通话控制API发起命令的通话ID。
data.payload.connection_id
string通话使用的通话控制应用ID(原Telnyx连接ID)。
data.payload.call_leg_id
string通话的唯一ID,可用于关联webhook事件。
data.payload.call_session_id
string通话会话的唯一ID,可用于关联webhook事件。

Call Initiated

通话已发起

FieldTypeDescription
data.record_type
enum: eventIdentifies the type of the resource.
data.event_type
enum: call.initiatedThe type of event being delivered.
data.id
uuidIdentifies the type of resource.
data.occurred_at
date-timeISO 8601 datetime of when the event occurred.
data.payload.call_control_id
stringCall ID used to issue commands via Call Control API.
data.payload.connection_id
stringCall Control App ID (formerly Telnyx connection ID) used in the call.
data.payload.connection_codecs
stringThe list of comma-separated codecs enabled for the connection.
data.payload.offered_codecs
stringThe list of comma-separated codecs offered by caller.
If you need webhook fields that are not listed inline here, read the webhook payload reference before writing the handler.

字段类型描述
data.record_type
enum: event标识资源类型。
data.event_type
enum: call.initiated推送的事件类型。
data.id
uuid标识资源类型。
data.occurred_at
date-time事件发生的ISO 8601格式时间。
data.payload.call_control_id
string用于通过通话控制API发起命令的通话ID。
data.payload.connection_id
string通话使用的通话控制应用ID(原Telnyx连接ID)。
data.payload.connection_codecs
string连接启用的编码列表,用逗号分隔。
data.payload.offered_codecs
string主叫方提供的编码列表,用逗号分隔。
如果你需要的webhook字段没有在此处内联展示,请先阅读webhook payload参考再编写处理程序。

Important Supporting Operations

重要支持操作

Use these when the core tasks above are close to your flow, but you need a common variation or follow-up step.
当上面的核心任务接近你的业务流程,但你需要常见的变体或后续步骤时,可以使用这些操作。

Hangup call

挂断通话

End a live call from your webhook-driven control flow.
client.calls.actions.hangup()
POST /calls/{call_control_id}/actions/hangup
ParameterTypeRequiredDescription
callControlId
string (UUID)YesUnique identifier and token for controlling the call
clientState
stringNoUse this field to add state to every subsequent webhook.
commandId
string (UUID)NoUse this field to avoid duplicate commands.
customHeaders
array[object]NoCustom headers to be added to the SIP BYE message.
javascript
const response = await client.calls.actions.hangup('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
Primary response fields:
  • response.data.result
在webhook驱动的控制流程中结束正在进行的通话。
client.calls.actions.hangup()
POST /calls/{call_control_id}/actions/hangup
参数类型必填描述
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
clientState
string用于给后续所有webhook添加自定义状态。
commandId
string (UUID)用于避免重复提交命令。
customHeaders
array[object]添加到SIP BYE消息中的自定义头。
javascript
const response = await client.calls.actions.hangup('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
主要响应字段:
  • response.data.result

Bridge calls

桥接通话

Trigger a follow-up action in an existing workflow rather than creating a new top-level resource.
client.calls.actions.bridge()
POST /calls/{call_control_id}/actions/bridge
ParameterTypeRequiredDescription
callControlId
string (UUID)YesThe Call Control ID of the call you want to bridge with, can...
callControlId
string (UUID)YesUnique identifier and token for controlling the call
clientState
stringNoUse this field to add state to every subsequent webhook.
commandId
string (UUID)NoUse this field to avoid duplicate commands.
videoRoomId
string (UUID)NoThe ID of the video room you want to bridge with, can't be u...
...+16 optional params in references/api-details.md
javascript
const response = await client.calls.actions.bridge('call_control_id', {
  call_control_id_to_bridge_with: 'v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg',
});

console.log(response.data);
Primary response fields:
  • response.data.result
在现有工作流中触发后续操作,无需创建新的顶层资源。
client.calls.actions.bridge()
POST /calls/{call_control_id}/actions/bridge
参数类型必填描述
callControlId
string (UUID)要桥接的目标通话的通话控制ID
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
clientState
string用于给后续所有webhook添加自定义状态。
commandId
string (UUID)用于避免重复提交命令。
videoRoomId
string (UUID)要桥接的视频房间ID,不可与其他桥接目标同时使用。
...另有16个可选参数见references/api-details.md
javascript
const response = await client.calls.actions.bridge('call_control_id', {
  call_control_id_to_bridge_with: 'v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg',
});

console.log(response.data);
主要响应字段:
  • response.data.result

Reject a call

拒接通话

Trigger a follow-up action in an existing workflow rather than creating a new top-level resource.
client.calls.actions.reject()
POST /calls/{call_control_id}/actions/reject
ParameterTypeRequiredDescription
cause
enum (CALL_REJECTED, USER_BUSY)YesCause for call rejection.
callControlId
string (UUID)YesUnique identifier and token for controlling the call
clientState
stringNoUse this field to add state to every subsequent webhook.
commandId
string (UUID)NoUse this field to avoid duplicate commands.
javascript
const response = await client.calls.actions.reject('call_control_id', { cause: 'USER_BUSY' });

console.log(response.data);
Primary response fields:
  • response.data.result
在现有工作流中触发后续操作,无需创建新的顶层资源。
client.calls.actions.reject()
POST /calls/{call_control_id}/actions/reject
参数类型必填描述
cause
enum (CALL_REJECTED, USER_BUSY)拒接通话的原因。
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
clientState
string用于给后续所有webhook添加自定义状态。
commandId
string (UUID)用于避免重复提交命令。
javascript
const response = await client.calls.actions.reject('call_control_id', { cause: 'USER_BUSY' });

console.log(response.data);
主要响应字段:
  • response.data.result

Retrieve a call status

获取通话状态

Fetch the current state before updating, deleting, or making control-flow decisions.
client.calls.retrieveStatus()
GET /calls/{call_control_id}
ParameterTypeRequiredDescription
callControlId
string (UUID)YesUnique identifier and token for controlling the call
javascript
const response = await client.calls.retrieveStatus('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
Primary response fields:
  • response.data.callControlId
  • response.data.callDuration
  • response.data.callLegId
  • response.data.callSessionId
  • response.data.clientState
  • response.data.endTime
在更新、删除或做出控制流决策前获取当前通话状态。
client.calls.retrieveStatus()
GET /calls/{call_control_id}
参数类型必填描述
callControlId
string (UUID)用于控制通话的唯一标识符和令牌
javascript
const response = await client.calls.retrieveStatus('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');

console.log(response.data);
主要响应字段:
  • response.data.callControlId
  • response.data.callDuration
  • response.data.callLegId
  • response.data.callSessionId
  • response.data.clientState
  • response.data.endTime

List all active calls for given connection

列出指定连接下的所有活跃通话

Fetch the current state before updating, deleting, or making control-flow decisions.
client.connections.listActiveCalls()
GET /connections/{connection_id}/active_calls
ParameterTypeRequiredDescription
connectionId
string (UUID)YesTelnyx connection id
page
objectNoConsolidated page parameter (deepObject style).
javascript
// Automatically fetches more pages as needed.
for await (const connectionListActiveCallsResponse of client.connections.listActiveCalls(
  '1293384261075731461',
)) {
  console.log(connectionListActiveCallsResponse.call_control_id);
}
Response wrapper:
  • items:
    connectionListActiveCallsResponse.data
  • pagination:
    connectionListActiveCallsResponse.meta
Primary item fields:
  • callControlId
  • callDuration
  • callLegId
  • callSessionId
  • clientState
  • recordType
在更新、删除或做出控制流决策前获取当前状态。
client.connections.listActiveCalls()
GET /connections/{connection_id}/active_calls
参数类型必填描述
connectionId
string (UUID)Telnyx连接ID
page
object统一分页参数(deepObject格式)。
javascript
// 按需自动获取更多页面数据
for await (const connectionListActiveCallsResponse of client.connections.listActiveCalls(
  '1293384261075731461',
)) {
  console.log(connectionListActiveCallsResponse.call_control_id);
}
响应包装:
  • 条目:
    connectionListActiveCallsResponse.data
  • 分页信息:
    connectionListActiveCallsResponse.meta
主要条目字段:
  • callControlId
  • callDuration
  • callLegId
  • callSessionId
  • clientState
  • recordType

List call control applications

列出通话控制应用

Inspect available resources or choose an existing resource before mutating it.
client.callControlApplications.list()
GET /call_control_applications
ParameterTypeRequiredDescription
sort
enum (created_at, connection_name, active)NoSpecifies the sort order for results.
filter
objectNoConsolidated filter parameter (deepObject style).
page
objectNoConsolidated page parameter (deepObject style).
javascript
// Automatically fetches more pages as needed.
for await (const callControlApplication of client.callControlApplications.list()) {
  console.log(callControlApplication.id);
}
Response wrapper:
  • items:
    callControlApplication.data
  • pagination:
    callControlApplication.meta
Primary item fields:
  • id
  • createdAt
  • updatedAt
  • active
  • anchorsiteOverride
  • applicationName

在修改资源前检查可用资源或选择现有资源。
client.callControlApplications.list()
GET /call_control_applications
参数类型必填描述
sort
enum (created_at, connection_name, active)指定结果的排序规则。
filter
object统一过滤参数(deepObject格式)。
page
object统一分页参数(deepObject格式)。
javascript
// 按需自动获取更多页面数据
for await (const callControlApplication of client.callControlApplications.list()) {
  console.log(callControlApplication.id);
}
响应包装:
  • 条目:
    callControlApplication.data
  • 分页信息:
    callControlApplication.meta
主要条目字段:
  • id
  • createdAt
  • updatedAt
  • active
  • anchorsiteOverride
  • applicationName

Additional Operations

额外操作

Use the core tasks above first. The operations below are indexed here with exact SDK methods and required params; use references/api-details.md for full optional params, response schemas, and lower-frequency webhook payloads. Before using any operation below, read the optional-parameters section and the response-schemas section so you do not guess missing fields.
OperationSDK methodEndpointUse whenRequired params
Create a call control application
client.callControlApplications.create()
POST /call_control_applications
Create or provision an additional resource when the core tasks do not cover this flow.
applicationName
,
webhookEventUrl
Retrieve a call control application
client.callControlApplications.retrieve()
GET /call_control_applications/{id}
Fetch the current state before updating, deleting, or making control-flow decisions.
id
Update a call control application
client.callControlApplications.update()
PATCH /call_control_applications/{id}
Modify an existing resource without recreating it.
applicationName
,
webhookEventUrl
,
id
Delete a call control application
client.callControlApplications.delete()
DELETE /call_control_applications/{id}
Remove, detach, or clean up an existing resource.
id
SIP Refer a call
client.calls.actions.refer()
POST /calls/{call_control_id}/actions/refer
Trigger a follow-up action in an existing workflow rather than creating a new top-level resource.
sipAddress
,
callControlId
Send SIP info
client.calls.actions.sendSipInfo()
POST /calls/{call_control_id}/actions/send_sip_info
Trigger a follow-up action in an existing workflow rather than creating a new top-level resource.
contentType
,
body
,
callControlId
请优先使用上面的核心任务。下方的操作在此处列出了准确的SDK方法和必填参数;如需完整的可选参数、响应模式和低频率webhook payload,请参考references/api-details.md。 在使用下方任何操作前,请先阅读可选参数章节响应模式章节,避免猜测缺失字段。
操作SDK方法接口地址使用场景必填参数
创建通话控制应用
client.callControlApplications.create()
POST /call_control_applications
当核心任务没有覆盖该流程时,创建或配置额外的资源。
applicationName
,
webhookEventUrl
获取通话控制应用
client.callControlApplications.retrieve()
GET /call_control_applications/{id}
在更新、删除或做出控制流决策前获取当前状态。
id
更新通话控制应用
client.callControlApplications.update()
PATCH /call_control_applications/{id}
修改现有资源,无需重新创建。
applicationName
,
webhookEventUrl
,
id
删除通话控制应用
client.callControlApplications.delete()
DELETE /call_control_applications/{id}
移除、解绑或清理现有资源。
id
发起SIP Refer通话转接
client.calls.actions.refer()
POST /calls/{call_control_id}/actions/refer
在现有工作流中触发后续操作,无需创建新的顶层资源。
sipAddress
,
callControlId
发送SIP Info
client.calls.actions.sendSipInfo()
POST /calls/{call_control_id}/actions/send_sip_info
在现有工作流中触发后续操作,无需创建新的顶层资源。
contentType
,
body
,
callControlId

Other Webhook Events

其他Webhook事件

Event
data.event_type
Description
callBridged
call.bridged
Call Bridged

For exhaustive optional parameters, full response schemas, and complete webhook payloads, see references/api-details.md.
事件
data.event_type
描述
callBridged
call.bridged
通话已桥接

如需完整的可选参数、完整响应模式和全部webhook payload,请查看references/api-details.md