租户管理

租户(Tenant)是 Wholesale 的计费主体,代表下游客户。

1. 创建租户

Wholesale 租户管理——余额、路由与费率表绑定

Wholesale → 租户管理 → 新建租户:

字段说明示例
名称租户显示名客户A
余额当前账户余额(元)10000.00
信用额度允许透支额度1000.00
卖费率表向该租户计费的费率sell-deck-cn
路由策略该租户使用的路由profile-default
LCR 启用是否启用最低成本路由true
最大并发该租户最大同时通话数200
最大 CPS该租户每秒最大呼叫数50
状态enabled / disabledenabled

余额检查逻辑

呼入时系统检查:余额 + 信用额度 ≥ 卖费率 × 最低时长

不满足则返回 SIP 402 Payment Required。

2. 租户中继绑定

租户通过中继接入系统,需绑定入向中继:

租户详情 → 中继 → 添加中继绑定:

配置说明
SIP 中继选择已配置的入向中继
来源 IP允许的租户源 IP 列表
描述备注信息

认证方式

租户入向认证有两种模式:

模式一:IP ACL

租户的 SIP 流量来自固定 IP,系统按源 IP 匹配租户。

模式二:X-Wholesale-Token

在 HTTP Header 中携带签名 Token,适用于动态 IP 场景。Token 由控制台 API 生成。

3. 余额与充值

3.1 充值操作

租户详情 → 充值:

  • 输入充值金额
  • 上传打款凭证(可选)
  • 系统记录充值日志(rustpbx_recharge_logs)

3.2 余额明细

租户详情 → 余额明细:展示充值记录、扣费汇总、当前余额。

4. CPS 与并发限制

每个租户可独立配置限流:

限制字段机制
并发通话max_concurrent_calls实时计数器
每秒呼叫max_cps1 秒滑动窗口

在控制台 Wholesale → 监控限流 中可实时查看每个租户的:

  • 当前并发通话数
  • 当前 CPS
  • 被拒绝的呼叫计数(Prometheus 指标 wholesale_concurrent_limit_rejected_total、wholesale_cps_limit_rejected_total)

5. 费率与路由关联

租户
 ├── 卖费率表 (sell_deck_id) ──► 计费时查 Trie 最长前缀匹配
 └── 路由策略 (routing_profile_id) ──► 查 Trie 前缀匹配 → 选中继
                                         └── 中继关联买费率表 ──► 计算成本
  • 卖费率:从租户余额扣除的金额
  • 买费率:中继对应的运营商成本(用于利润计算和 LCR)
  • 利润 = 卖价 - 买价

6. 号码改写

租户级别可配置全局号码改写规则:

操作说明示例
主叫 Strip去掉主叫前 N 位strip=2, 0212345678 → 12345678
主叫 Prepend主叫前添加前缀prepend=0, 12345678 → 012345678
被叫 Strip去掉被叫前 N 位strip=1, 0212345678 → 2112345678
被叫 Prepend被叫前添加前缀prepend=86, 12345678 → 8612345678
正则替换sed 语法 s/pattern/replacement/s/^0/86/ → 021234 → 8621234

改写顺序:租户级改写 → 路由规则改写 → 中继技术前缀