Bitzsoft.Integrations.OutboundCall.All
1.0.0
dotnet add package Bitzsoft.Integrations.OutboundCall.All --version 1.0.0
NuGet\Install-Package Bitzsoft.Integrations.OutboundCall.All -Version 1.0.0
<PackageReference Include="Bitzsoft.Integrations.OutboundCall.All" Version="1.0.0" />
<PackageVersion Include="Bitzsoft.Integrations.OutboundCall.All" Version="1.0.0" />
<PackageReference Include="Bitzsoft.Integrations.OutboundCall.All" />
paket add Bitzsoft.Integrations.OutboundCall.All --version 1.0.0
#r "nuget: Bitzsoft.Integrations.OutboundCall.All, 1.0.0"
#:package Bitzsoft.Integrations.OutboundCall.All@1.0.0
#addin nuget:?package=Bitzsoft.Integrations.OutboundCall.All&version=1.0.0
#tool nuget:?package=Bitzsoft.Integrations.OutboundCall.All&version=1.0.0
Bitzsoft.Integrations.OutboundCall.All
外呼服务聚合包 — 一次性引用全部供应商实现(腾讯云 / 阿里云 / 火山引擎 / 容联云 / 华为云 / Twilio / Vonage),无需逐个安装。
功能特性
- 聚合 7 家外呼实现:腾讯云 / 阿里云 / 火山引擎 / 容联云 / 华为云 5 家国内 + Twilio / Vonage 2 家国际,全部实现
IOutboundCallService统一接口 - 统一抽象:引用本包即获得所有
IOutboundCallService供应商实现及号码工具(PhoneNumberValidator/PhoneNumberClassifier/CallListFilter) - per-call 编排:国际供应商(Twilio / Vonage)采用共享
CampaignDialer引擎,按 CPS 节流逐通发起外呼,支持暂停 / 恢复断点 - 零代码即装即用:聚合包为空程序集(仅打包占位
_._文件),所有类型由依赖的供应商包提供,安装后按需调用各供应商的Add*OutboundCall扩展方法
注意:国际供应商(Twilio / Vonage)的活动编排状态保存在内存中,进程重启会丢失进行中的活动进度,需外部系统重新触发。
安装
.NET CLI
dotnet add package Bitzsoft.Integrations.OutboundCall.All
PackageReference
<PackageReference Include="Bitzsoft.Integrations.OutboundCall.All" Version="1.0.0" />
配置
聚合包本身不含配置,配置由所选供应商实现包决定。各供应商配置节示例:
{
"OutboundCall": {
"AccessKeyId": "your-secret-id",
"AccessKeySecret": "your-secret-key",
"Region": "ap-guangzhou",
"SdkAppId": "1400818883",
"Callers": [ "008602160662606" ],
"OverseaCallers": [ "0085230087235" ],
"Whitelist": [ "5678" ],
"RequireWhitelistInNonProduction": true
},
"TwilioOutboundCall": {
"AccountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"AuthToken": "your-auth-token",
"From": "+12025550123",
"Cps": 1
}
}
各供应商的配置项细节请参阅对应实现包的 README(见「相关包」)。通用字段(
AccessKeyId/AccessKeySecret/Region/SdkAppId/Callers等)见抽象层OutboundCallOptions。
注册服务
聚合包不含 Add* 扩展方法,按需调用各供应商的注册扩展方法(一次运行通常只注册一家作为 IOutboundCallService):
using Bitzsoft.Integrations.OutboundCall;
// 命名空间 Microsoft.Extensions.DependencyInjection
// 腾讯云
builder.Services.AddTencentOutboundCall(
builder.Configuration.GetSection("OutboundCall"));
// 或阿里云
builder.Services.AddAliyunOutboundCall(
builder.Configuration.GetSection("OutboundCall"));
// 或华为云 / 火山引擎 / 容联云(均绑定 OutboundCall 节)
// builder.Services.AddHuaweiOutboundCall(...);
// builder.Services.AddVolcengineOutboundCall(...);
// builder.Services.AddYuntongxunOutboundCall(...);
// 或国际 Twilio(绑定 TwilioOutboundCall 节)
// builder.Services.AddTwilioOutboundCall(
// builder.Configuration.GetSection("TwilioOutboundCall"));
说明:
IOutboundCallService注册为单例,同一进程内通常只注册一家供应商。若需多供应商并存,可分别注入各供应商的具体服务类型(如TencentOutboundCallService)或使用工厂模式按需解析。
使用示例
using Bitzsoft.Integrations.OutboundCall;
using Bitzsoft.Integrations.OutboundCall.Dtos;
using Bitzsoft.Integrations.OutboundCall.PhoneNumber;
public class OutboundCallApp
{
private readonly IOutboundCallService _outbound;
public OutboundCallApp(IOutboundCallService outbound) => _outbound = outbound;
public async Task RunAsync(string[] rawPhones)
{
// 1. 号码清洗 + 分类(抽象层提供,所有供应商通用)
var (mainland, oversea) = PhoneNumberClassifier.Classify(rawPhones);
// 2. 创建境内活动(实际调用哪家供应商由注册时决定)
var resp = await _outbound.CreateCampaignAsync(new CreateCampaignRequest
{
Name = "催办",
Region = PhoneRegion.Mainland,
Callees = mainland.ToList()
});
// 3. 查询活动与话单
var campaigns = await _outbound.ListCampaignsAsync(pageIndex: 1, pageSize: 20);
var records = await _outbound.QueryCallRecordsAsync(new QueryCallRecordsRequest { PageSize = 50 });
}
}
请求审计
所有供应商实现均内置 Bitzsoft.Integrations.RequestLogging 出站请求记录管道,默认使用 NullRequestLogStore 不持久化。
// ① 默认:启用记录管道但不持久化(日志丢弃)
services.AddTencentOutboundCall(options => { /* ... */ });
// ② 持久化:宿主注册 IRequestLogStore 实现后,所有出站请求自动落库
services.AddRequestLogging<MyRequestLogStore>(opts =>
{
opts.MaxInMemoryBodyBytes = 64 * 1024; // 仅控制内存/加密临时文件切换,不截断正文
opts.SensitiveFields.Add("AccessKeySecret"); // 额外脱敏字段
});
services.AddTencentOutboundCall(options => { /* ... */ });
依赖
| 包 | 说明 |
|---|---|
Bitzsoft.Integrations.OutboundCall |
外呼抽象层(接口 + 号码工具 + 白名单 + 编排引擎) |
Bitzsoft.Integrations.OutboundCall.Tencent |
腾讯云 CCC 实现 |
Bitzsoft.Integrations.OutboundCall.Aliyun |
阿里云 CCC 实现 |
Bitzsoft.Integrations.OutboundCall.Volcengine |
火山引擎智能外呼实现 |
Bitzsoft.Integrations.OutboundCall.Yuntongxun |
容联云通讯实现 |
Bitzsoft.Integrations.OutboundCall.Huawei |
华为云 CEC 实现 |
Bitzsoft.Integrations.OutboundCall.Twilio |
Twilio 实现(per-call 编排) |
Bitzsoft.Integrations.OutboundCall.Vonage |
Vonage 实现(per-call 编排) |
相关包
- Bitzsoft.Integrations.OutboundCall -- 抽象层(接口 + 号码工具 + 白名单)
- Bitzsoft.Integrations.OutboundCall.Tencent -- 腾讯云 CCC
- Bitzsoft.Integrations.OutboundCall.Aliyun -- 阿里云 CCC
- Bitzsoft.Integrations.OutboundCall.Volcengine -- 火山引擎智能外呼
- Bitzsoft.Integrations.OutboundCall.Yuntongxun -- 容联云通讯
- Bitzsoft.Integrations.OutboundCall.Huawei -- 华为云 CEC
- Bitzsoft.Integrations.OutboundCall.Twilio -- 国际 Twilio(per-call 编排)
- Bitzsoft.Integrations.OutboundCall.Vonage -- 国际 Vonage(per-call 编排)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Aliyun (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Huawei (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Tencent (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Twilio (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Volcengine (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Vonage (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Yuntongxun (>= 1.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
-
net5.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Aliyun (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Huawei (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Tencent (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Twilio (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Volcengine (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Vonage (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Yuntongxun (>= 1.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 5.0.0)
-
net8.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Aliyun (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Huawei (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Tencent (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Twilio (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Volcengine (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Vonage (>= 1.0.0)
- Bitzsoft.Integrations.OutboundCall.Yuntongxun (>= 1.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 0 | 8/2/2026 |
| 1.0.0-alpha.10 | 46 | 7/26/2026 |
| 1.0.0-alpha.9 | 67 | 7/12/2026 |
| 1.0.0-alpha.8 | 87 | 7/1/2026 |
| 1.0.0-alpha.7 | 110 | 6/16/2026 |
| 1.0.0-alpha.6 | 112 | 6/16/2026 |