telnyx-numbers-services-javascript
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
Telnyx Numbers Services - JavaScript
Telnyx Numbers Services - JavaScript
Installation
安装
bash
npm install telnyxbash
npm install telnyxSetup
设置
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 is already initialized as shown above.
clientjavascript
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});以下所有示例均假设已按上述方式初始化。
clientError 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 result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
if (err instanceof Telnyx.APIConnectionError) {
console.error('Network error — check connectivity and retry');
} else if (err instanceof Telnyx.RateLimitError) {
// 429: rate limited — wait and retry with exponential backoff
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: invalid API key, insufficient permissions,
resource not found, validation error (check field formats),
rate limited (retry with exponential backoff).
401403404422429所有API调用都可能因网络错误、速率限制(429)、验证错误(422)或身份验证错误(401)而失败。在生产代码中务必处理错误:
javascript
try {
const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
if (err instanceof Telnyx.APIConnectionError) {
console.error('Network error — check connectivity and retry');
} else if (err instanceof Telnyx.RateLimitError) {
// 429: rate limited — wait and retry with exponential backoff
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');
}
}
}常见错误代码: API密钥无效, 权限不足, 资源未找到, 验证错误(检查字段格式), 速率受限(使用指数退避重试)。
401403404422429Important Notes
重要说明
- Pagination: List methods return an auto-paginating iterator. Use to iterate through all pages automatically.
for await (const item of result) { ... }
- 分页: 列表方法返回一个自动分页的迭代器。使用自动遍历所有页面。
for await (const item of result) { ... }
List your voice channels for non-US zones
列出非美国区域的语音通道
Returns the non-US voice channels for your account. voice channels allow you to use Channel Billing for calls to your Telnyx phone numbers. Please check the Telnyx Support Articles section for full information and examples of how to utilize Channel Billing.
GET /channel_zonesjavascript
// Automatically fetches more pages as needed.
for await (const channelZoneListResponse of client.channelZones.list()) {
console.log(channelZoneListResponse.id);
}Returns: (int64), (array[string]), (string), (string), (string), (enum: channel_zone), (string)
channelscountriescreated_atidnamerecord_typeupdated_at返回您账户的非美国区域语音通道。语音通道允许您对Telnyx电话号码的通话使用通道计费。请查看Telnyx支持文章部分获取关于如何使用通道计费的完整信息和示例。
GET /channel_zonesjavascript
// Automatically fetches more pages as needed.
for await (const channelZoneListResponse of client.channelZones.list()) {
console.log(channelZoneListResponse.id);
}Returns: (int64), (array[string]), (string), (string), (string), (enum: channel_zone), (string)
channelscountriescreated_atidnamerecord_typeupdated_atUpdate voice channels for non-US Zones
更新非美国区域的语音通道
Update the number of Voice Channels for the Non-US Zones. This allows your account to handle multiple simultaneous inbound calls to Non-US numbers. Use this endpoint to increase or decrease your capacity based on expected call volume.
PUT /channel_zones/{channel_zone_id}channelsjavascript
const channelZone = await client.channelZones.update('channel_zone_id', { channels: 0 });
console.log(channelZone.id);Returns: (int64), (array[string]), (string), (string), (string), (enum: channel_zone), (string)
channelscountriescreated_atidnamerecord_typeupdated_at更新非美国区域的语音通道数量。这允许您的账户处理多个同时打入的非美国号码来电。可根据预期通话量使用此端点增加或减少容量。
PUT /channel_zones/{channel_zone_id}channelsjavascript
const channelZone = await client.channelZones.update('channel_zone_id', { channels: 0 });
console.log(channelZone.id);Returns: (int64), (array[string]), (string), (string), (string), (enum: channel_zone), (string)
channelscountriescreated_atidnamerecord_typeupdated_atList dynamic emergency addresses
列出动态紧急地址
Returns the dynamic emergency addresses according to filters
GET /dynamic_emergency_addressesjavascript
// Automatically fetches more pages as needed.
for await (const dynamicEmergencyAddress of client.dynamicEmergencyAddresses.list()) {
console.log(dynamicEmergencyAddress.id);
}Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_at根据筛选条件返回动态紧急地址
GET /dynamic_emergency_addressesjavascript
// Automatically fetches more pages as needed.
for await (const dynamicEmergencyAddress of client.dynamicEmergencyAddresses.list()) {
console.log(dynamicEmergencyAddress.id);
}Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atCreate a dynamic emergency address.
创建动态紧急地址
Creates a dynamic emergency address.
POST /dynamic_emergency_addresseshouse_numberstreet_namelocalityadministrative_areapostal_codecountry_codeOptional: (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string)
created_atextended_addresshouse_suffixidrecord_typesip_geolocation_idstatusstreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atjavascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.create({
administrative_area: 'TX',
country_code: 'US',
house_number: '600',
locality: 'Austin',
postal_code: '78701',
street_name: 'Congress',
});
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_at创建一个动态紧急地址。
POST /dynamic_emergency_addresseshouse_numberstreet_namelocalityadministrative_areapostal_codecountry_codeOptional: (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string)
created_atextended_addresshouse_suffixidrecord_typesip_geolocation_idstatusstreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atjavascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.create({
administrative_area: 'TX',
country_code: 'US',
house_number: '600',
locality: 'Austin',
postal_code: '78701',
street_name: 'Congress',
});
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atGet a dynamic emergency address
获取动态紧急地址
Returns the dynamic emergency address based on the ID provided
GET /dynamic_emergency_addresses/{id}javascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_at根据提供的ID返回动态紧急地址
GET /dynamic_emergency_addresses/{id}javascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atDelete a dynamic emergency address
删除动态紧急地址
Deletes the dynamic emergency address based on the ID provided
DELETE /dynamic_emergency_addresses/{id}javascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_at根据提供的ID删除动态紧急地址
DELETE /dynamic_emergency_addresses/{id}javascript
const dynamicEmergencyAddress = await client.dynamicEmergencyAddresses.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyAddress.data);Returns: (string), (enum: US, CA, PR), (string), (string), (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string), (string), (string), (string), (string)
administrative_areacountry_codecreated_atextended_addresshouse_numberhouse_suffixidlocalitypostal_coderecord_typesip_geolocation_idstatusstreet_namestreet_post_directionalstreet_pre_directionalstreet_suffixupdated_atList dynamic emergency endpoints
列出美国区域的语音通道
Returns the dynamic emergency endpoints according to filters
GET /dynamic_emergency_endpointsjavascript
// Automatically fetches more pages as needed.
for await (const dynamicEmergencyEndpoint of client.dynamicEmergencyEndpoints.list()) {
console.log(dynamicEmergencyEndpoint.dynamic_emergency_address_id);
}Returns: (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string)
callback_numbercaller_namecreated_atdynamic_emergency_address_ididrecord_typesip_from_idstatusupdated_at返回您账户的美国区域语音通道。语音通道允许您对Telnyx电话号码的通话使用通道计费。请查看Telnyx支持文章部分获取关于如何使用通道计费的完整信息和示例。
GET /inbound_channelsjavascript
const inboundChannels = await client.inboundChannels.list();
console.log(inboundChannels.data);Returns: (integer), (string)
channelsrecord_typeCreate a dynamic emergency endpoint.
更新美国区域的语音通道
Creates a dynamic emergency endpoints.
POST /dynamic_emergency_endpointsdynamic_emergency_address_idcallback_numbercaller_nameOptional: (string), (string), (string), (string), (enum: pending, activated, rejected), (string)
created_atidrecord_typesip_from_idstatusupdated_atjavascript
const dynamicEmergencyEndpoint = await client.dynamicEmergencyEndpoints.create({
callback_number: '+13125550000',
caller_name: 'Jane Doe Desk Phone',
dynamic_emergency_address_id: '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',
});
console.log(dynamicEmergencyEndpoint.data);Returns: (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string)
callback_numbercaller_namecreated_atdynamic_emergency_address_ididrecord_typesip_from_idstatusupdated_at更新美国区域的语音通道数量。这允许您的账户处理多个同时打入的美国号码来电。可根据预期通话量使用此端点增加或减少容量。
PATCH /inbound_channelschannelsjavascript
const inboundChannel = await client.inboundChannels.update({ channels: 7 });
console.log(inboundChannel.data);Returns: (integer), (string)
channelsrecord_typeGet a dynamic emergency endpoint
列出所有使用通道计费的号码
Returns the dynamic emergency endpoint based on the ID provided
GET /dynamic_emergency_endpoints/{id}javascript
const dynamicEmergencyEndpoint = await client.dynamicEmergencyEndpoints.retrieve(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyEndpoint.data);Returns: (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string)
callback_numbercaller_namecreated_atdynamic_emergency_address_ididrecord_typesip_from_idstatusupdated_at检索所有使用通道计费的电话号码列表,按区域分组。
GET /listjavascript
const response = await client.list.retrieveAll();
console.log(response.data);Returns: (integer), (array[object]), (string), (string)
number_of_channelsnumberszone_idzone_nameDelete a dynamic emergency endpoint
列出特定区域使用通道计费的号码
Deletes the dynamic emergency endpoint based on the ID provided
DELETE /dynamic_emergency_endpoints/{id}javascript
const dynamicEmergencyEndpoint = await client.dynamicEmergencyEndpoints.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(dynamicEmergencyEndpoint.data);Returns: (string), (string), (string), (string), (string), (string), (string), (enum: pending, activated, rejected), (string)
callback_numbercaller_namecreated_atdynamic_emergency_address_ididrecord_typesip_from_idstatusupdated_at检索特定区域使用通道计费的电话号码列表。
GET /list/{channel_zone_id}javascript
const response = await client.list.retrieveByZone('channel_zone_id');
console.log(response.data);Returns: (integer), (array[object]), (string), (string)
number_of_channelsnumberszone_idzone_nameList your voice channels for US Zone
获取语音信箱
Returns the US Zone voice channels for your account. voice channels allows you to use Channel Billing for calls to your Telnyx phone numbers. Please check the Telnyx Support Articles section for full information and examples of how to utilize Channel Billing.
GET /inbound_channelsjavascript
const inboundChannels = await client.inboundChannels.list();
console.log(inboundChannels.data);Returns: (integer), (string)
channelsrecord_type返回电话号码的语音信箱设置
GET /phone_numbers/{phone_number_id}/voicemailjavascript
const voicemail = await client.phoneNumbers.voicemail.retrieve('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpinUpdate voice channels for US Zone
创建语音信箱
Update the number of Voice Channels for the US Zone. This allows your account to handle multiple simultaneous inbound calls to US numbers. Use this endpoint to increase or decrease your capacity based on expected call volume.
PATCH /inbound_channelschannelsjavascript
const inboundChannel = await client.inboundChannels.update({ channels: 7 });
console.log(inboundChannel.data);Returns: (integer), (string)
channelsrecord_type为电话号码创建语音信箱设置
POST /phone_numbers/{phone_number_id}/voicemailOptional: (boolean), (string)
enabledpinjavascript
const voicemail = await client.phoneNumbers.voicemail.create('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpinList All Numbers using Channel Billing
更新语音信箱
Retrieve a list of all phone numbers using Channel Billing, grouped by Zone.
GET /listjavascript
const response = await client.list.retrieveAll();
console.log(response.data);Returns: (integer), (array[object]), (string), (string)
number_of_channelsnumberszone_idzone_name更新电话号码的语音信箱设置
PATCH /phone_numbers/{phone_number_id}/voicemailOptional: (boolean), (string)
enabledpinjavascript
const voicemail = await client.phoneNumbers.voicemail.update('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpinList Numbers using Channel Billing for a specific Zone
—
Retrieve a list of phone numbers using Channel Billing for a specific Zone.
GET /list/{channel_zone_id}javascript
const response = await client.list.retrieveByZone('channel_zone_id');
console.log(response.data);Returns: (integer), (array[object]), (string), (string)
number_of_channelsnumberszone_idzone_name—
Get voicemail
—
Returns the voicemail settings for a phone number
GET /phone_numbers/{phone_number_id}/voicemailjavascript
const voicemail = await client.phoneNumbers.voicemail.retrieve('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpin—
Create voicemail
—
Create voicemail settings for a phone number
POST /phone_numbers/{phone_number_id}/voicemailOptional: (boolean), (string)
enabledpinjavascript
const voicemail = await client.phoneNumbers.voicemail.create('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpin—
Update voicemail
—
Update voicemail settings for a phone number
PATCH /phone_numbers/{phone_number_id}/voicemailOptional: (boolean), (string)
enabledpinjavascript
const voicemail = await client.phoneNumbers.voicemail.update('123455678900');
console.log(voicemail.data);Returns: (boolean), (string)
enabledpin—