CNAM 集成

基于 SIP 的 CNAM

授权您的 SIP 来源,发送查询事务,并读取返回的主叫身份。

选择查询方式

层级每次查询的公开价格功能说明
StarterUS$0.0026使用专有的和已缓存的主叫名称信息。
StandardUS$0.0037每次查询都会进行实时网络查询。
MixedUS$0.004先尝试实时查询,如果未找到名称,则回退使用 Starter 数据。

所选服务决定查询行为;Mixed 不是缓存优先的查询。在用于生产环境之前,请核对分配给您账户的费率。主叫名称不能证明身份或所有权。

授权您的来源

  1. 请在 CNAM IP 设置中添加您的 SBC 或应用所使用的公网来源 IP,并关联目标服务。
  2. 向 cnam.multitel.net 发送 SIP INVITE,并将完整的电话号码作为 request-URI 的用户部分。已公布的传输方式为 UDP,目标端口为 5060。
  3. 请使用您的 SIP 协议栈生成 Via、From、To、Contact、Call-ID、CSeq 以及其他必需的事务头。不要只发送下面的请求行。
  4. 请正确完成 SIP 事务,并且仅在返回了可用结果时才使用所返回的名称。
INVITE sip:12025550123@cnam.multitel.net SIP/2.0

此查询服务不接受 SIP 注册。授权基于已配置的来源地址,该地址可能是您的 NAT 网关的公网地址。

读取 SIP 查询结果

服务会以带有 P-Asserted-Identity 头的 380 SIP 响应返回结果。这是查询结果事务,而不是已接通的电话呼叫。原因短语中可能包含所返回的名称;请解析 identity 头,而不要依赖某一固定短语。

SIP/2.0 380 EXAMPLE CALLER
P-Asserted-Identity: "EXAMPLE CALLER" <sip:12025550123@192.0.2.10>
Content-Length: 0

此摘录省略了事务头。示例中的 192.0.2.10 代表发起请求的系统。实际的应答必须与您的 SIP 协议栈的 Call-ID 和 CSeq 相匹配。

380 且名称可用
从 P-Asserted-Identity 中读取显示名称,通过您的 SIP 协议栈确认最终的 INVITE 响应,然后继续您的呼叫流程。
没有可用的名称
不要将错误消息、空值或被查询的号码当作已验证的主叫名称。请按照您通常处理未知名称的方式让呼叫继续。
403 或其他拒绝响应
请检查请求方法、目标域名、来源 IP 授权以及账户/服务状态。不要在短时间内反复重试授权错误。
超时
请区分 SIP 事务重传与新的查询。请限制新的尝试次数,因为每次新的尝试都可能产生另一笔查询费用。

计费、重试,以及与更新主叫号码显示的区别

每次新的查询都可能产生查询费用。这些查询接口未提供幂等键的说明,因此重新发起的重试可能成为第二次计费查询。对于传输/服务故障,请使用有限的退避重试;先解决账户错误;并核对所报告的查询费用。仅在适合您应用的时间范围内缓存数据;主叫名称数据可能会发生变化。

CNAM 查询是读取名称,不会更改您外呼时显示的名称。LIDB 主叫名称更新是一项独立的操作,有各自的字段、授权、价格和处理流程。