- 主页
- /
- 文章
Webex Calling 多租户 (MT) 合作伙伴可以设置 webhook 来为所有客户收集 Webex Calling 记录。这样可以实现高效的账单对账、分析和报告,而无需单独询问每位客户。
概述
详细通话记录 webhook 提供了由 事件而不是请求驱动的安全、可扩展和强大的解决方案。 该网络挂钩可以更好地了解客户的 Webex Calling活动,为从计费到定制报告等用例提供支持。
您可以使用此 webhook 方便地为通过 P artner Hub 管理的所有客户收集记录,而无需单独查询每位客户。 此 webhook 允许您为内部业务需求和增值服务开发 自定义报告、计费 和分析应用程序。
有关网络挂钩及其附带API的介绍,请观看此 Vidcast:Webex Calling合作伙伴详细通话记录 API。
合作伙伴 webhook 提供了什么
webhook 每 5 分钟提供一次详细的通话记录记录。 每个 webhook 有效载荷 包含:
- 在当前时间前 10 分钟到 5 分钟之间结束的通话记录。
- Webex Calling云端处理的任何延迟记录。
- 在后续的 webhook 有效负载中自动回填延迟通话记录,以确保 可靠的交付。
要显示如何将呼叫记录包含在每个负载中,请考虑以下示例:
- 14:05 收到的有效负载包含在 13:55 到 14:00 之间结束的呼叫。
- 在 14:00 到 14:05 之间结束的呼叫包含在 14:10 的有效负载中。
- 较早完成的记录(例如,在 14:04 结束的呼叫)但Webex Calling云端处理得较晚 (例如,在 14:11)的记录将包含在下一个计划负载( 例如 14:15)中。
网络挂钩可靠地传送记录。 但是,当系统在特定条件下重放记录时,您可能会在 后续的 webhook 有效负载中收到重复的记录。 您负责处理记录重复数据消除。 要识别重复记录,请使用 rep ortID 字段作为主键,使用 reportT ime 字段来确定呼叫的完成或处理时间。 使用这些字段更新记录或 将记录插入到您的内部数据存储中。
合作伙伴中心中的 Webhook
通过提供 webhook,您可以让分析平台在呼叫记录生成时将其发送到您的回调 URL。
Webex Calling记录的传送格式与现有的详细通话记录 API 相同。 你可以设置 webhook 并在两种类型的 Feed 之间进行选择:
- 分析-包括合作伙伴与之有关系的所有客户组织的所有通话记录。Webex Calling 这包括以下组织:
- 合作伙伴使用 “合作伙伴完全管理员” 角色管理客户组织。
- 客户组织在合作伙伴组织内有有效的Webex Calling订阅。
- 计费-包括使用合作伙伴出售和提供的Webex Calling许可证的用户拨打的呼叫记录。 此订阅源中包含工作区的通话记录。
访问和数据隐私
只有所有权合作伙伴才能访问通话详细记录 (CDR) 进行计费。
- 管理与通话记录相关的许可证的合作伙伴(或次级合作伙伴) 将成为拥有合作伙伴。
- 所有权由以下因素决定:用户 ID > 许可证 ID > 订阅 ID > 合作伙伴 ID。
- 每个 CDR 仅供一个合作伙伴访问。
- 有些通话记录不映射到计费合作伙伴,也不是所有与 组织相关的合作伙伴都能平等访问所有记录,因为这些记录可能包含 个人身份信息 (PII)。
设置 Webhook 回拨 URL
在合作伙伴中心配置 webhook。 每个合作伙伴 组织只能设置一个 webhook。
确保您拥有具有 “组织完全管理员级别 访问权限” 的合作伙伴完全管理员角色,并在 Control Hub 中选中 (在 “管理” > “” 下,选择完全管理员或合作伙伴完全管理员,然后选择管理员角色 > 合作伙伴)。
当您使用合作伙伴对账和记录 API 时,同样的访问要求也适用。
| 1 |
登录合作伙伴中心。 |
| 2 |
转到。
|
| 3 |
在 Webhook 下输入要使用的 URL。 网址必须以 /webhook 结尾(例如 https://yourdomain.com/webhook)。
|
| 4 |
如果您想使用秘密 令牌对 webhook 有效负载进行身份验证,则可以添加一个。 要了解有关 Webex 网络挂钩和秘密令牌的更多信息,请参阅 Web ex 开发者版:W ebhook。 |
| 5 |
选择以下资源类型之一用于 webhook:
|
合作伙伴 API 终端节点
除了 webhook 之外,还Webex Calling提供 API 端点以支持数据对账。 这些终端节点允许您在 webhook 侦听器可能未收到的任何缺失记录中追踪数据存储或协调数据存储。 两个 API 端点是对账 API 和记录 API。
来自这些 API 的记录在 30 天内可用。 为确保您收到所有预期记录,我们建议您定期(例如每 12 或 24 小时)核对您的记录存储。
您必须使用合作伙伴访问令牌才能访问这些 API。 身份验证用户必须是具有组织完全管理员级别访问权限的合作伙伴完全管理员,并且必须启用 Webex CallingCDR API 访问权限。 OAuth 令牌必须包含范围。spark-admin:calling_cdr_read 只读管理员角色不足以使用合作伙伴对账和记录 API。
使用客户组织Webex Calling数据区域的analytics-calling终端节点。 对账和记录 API 使用适用的基本 URL:
- 美国和加拿大:
https://analytics-calling.webexapis.com - 欧洲:
https://analytics-calling-eu.webexapis.com - 印度:
https://analytics-calling-in.webexapis.com - 澳大利亚:
https://analytics-calling-au.webexapis.com
API 窗口范围适用于两个端点,以更好地处理服务负载。
- 对于大于 48 小时的时间范围,允许的最大窗口持续时间为 12 小时(强制执行)。
- 对于合作伙伴组织 ID,对于每个令牌范围,API 的速率限制为每分钟一次初始 API 请求。 如果使用分页,则每个令牌每分钟最多允许 10 个额外的分页 API 请求,这些请求可以在初始请求后立即提出。
对账 API 终端节点
对账API终端节点返回在指定时间段内为合作伙伴管理的每位客户生成的通话记录总数。 您可以使用这些总数来验证您的本地存储空间,并确定特定客户的任何缺失或不一致的通话记录。
访问要求:身份验证用户必须是具有完全管理员级别访问权限的合作伙伴管理员,并且必须启用 Webex CallingCDR API 访问权限。 访问令牌必须包含spark-admin:calling_cdr_read范围。
如果您管理的客户组织超过 200 个,API 会对结果进行分页以提高可读性。
对账 API 端点 URL 使用以下格式:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z
API 参数
您可以使用 API 检索过去 30 天的通话记录。 在单个 API 调用中,您选择的时间窗口必须在当前 UTC 时间之前至少 5 分钟开始,并且在开始和结束时间之间不得超过 12 小时。
API 参数是:
-
startTim e(必填,字符串)-要收集的第一条记录的开始日期和时间 (UTC)。 确保:
- 您可以将时间格式化为
YYYY-MM-DDTHH:MM:SS.mmmZ。 例如,2025-08-15T06:00:00.000Z。
- 开始日期和时间不得早于当前 UTC 时间的 30 天。
startTime和之间的时间间隔endTime不能超过 12 小时。
- 您可以将时间格式化为
-
EndTim e(必填,字符串)-要收集的记录的结束日期和时间 (UTC)。 记录基于报告时间,即通话结束时间。 确保:
- 您可以将时间格式化为
YYYY-MM-DDTHH:MM:SS.mmmZ。 例如,2025-08-15T18:00:00.000Z。 - 结束日期和时间必须比当前 UTC 时间早 5 分钟,且不得早于 30 天。
- 结束日期和时间必须早于
startTime. startTime和之间的时间间隔endTime不能超过 12 小时。
- 您可以将时间格式化为
对账 API 端点 JSON 响应示例:
{
"cdr_counts": [
{
"orgId": "zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 3009
},
{
"orgId": "yyyyyyyy-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 129
},
{
"orgId": "xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
"count": 27895
}
]
}
API 响应标头表示返回的组织总数以及是否有其他页面可用。 检查以下标题参数,确保您已查询所有页面:
- num-pages:总页数(例如,2)
- total-orgs:响应中包含的组织总数(例如,283)
- 当前页面:当前页码(例如 1)
例如,如果标题显示 num-pages=2、total-orgs=283 和 current-page=1,则您正在查看总共包含 283 个组织的两页回复的第一页。 要访问下一页,请将 page=2 参数添加到您的 GET 请求中,如下所示:
https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z&page=2
记录 API 端点
Records API 端点用于查询使用对账 API 发现差异或缺失数据的特定组织的缺失通话记录。
推荐流程:/v1/partners/cdrcountbyorg先打电话。 然后使用您致电cdr_counts[].orgId时orgId返回的确切信息/v1/partners/cdrsbyorg。
记录 API 以 JSON 格式返回通话记录,与详细通话记录 API 中描述的格式相同。 返回的负载包含与 “详细通话记录” 返回的负载相同的字段。 有关字段及其值的更多信息,请参阅Webex Calling详细的通话记录报告。
该 API 提供的通话记录在当前时间前 5 分钟结束。 为确保所有通话记录都可用,我们建议您在首选时间窗口一小时后查询 API。
Records API 端点 URL 使用以下格式:
https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z
API 参数
-
orgId(必填,字符串)— 您要检索记录的客户组织 ID。 参数名称区分大小写。 您可以从对账 API 响应字段获取组织 IDcdr_counts[].orgId。 -
startTim e(必填,字符串)-要收集的第一条记录的开始日期和时间 (UTC)。 确保:
- 您可以将时间格式化为
YYYY-MM-DDTHH:MM:SS.mmmZ。 例如,2025-08-15T06:00:00.000Z。 - 开始日期和时间不得早于当前 UTC 时间的 30 天。
- 在单个 API 请求中,
startTime和之间的间隔endTime不得超过 12 小时。
- 您可以将时间格式化为
-
EndTim e(必填,字符串)-要收集的最后一条记录的结束日期和时间 (UTC)。 记录基于报告时间,即通话结束时间。 确保:
- 您可以将时间格式化为
YYYY-MM-DDTHH:MM:SS.mmmZ。 例如,2025-08-15T18:00:00.000Z。 - 结束日期和时间必须在当前 UTC 时间之前至少 5 分钟,且不得早于 30 天。
- 结束日期和时间必须早于
startTime. - 在单个 API 请求中,
startTime和之间的间隔endTime不得超过 12 小时。
- 您可以将时间格式化为
-
max(可选,数字)-限制响应中每页的最大记录数。 确保:
- 范围从 500 到 5000。 默认值为 5000。 例如,
max=1000。 - 如果 API 要返回的记录多于指定的最大值,则会对响应进行分页。
- 如果指定了低于 500 的值,则会自动将其调整为 500。 如果指定了大于 5000 的值,则将其向下调整为 5000。
- 范围从 500 到 5000。 默认值为 5000。 例如,
分页
要确定 API 响应是否已分页,请检查响应标头中是否有链接标头。 如果next链接标头中存在链接,则将其提取并使用该startTimeForNextFetch值来请求下一组记录。 如果没有下一个链接,则会收集所选时间范围内的所有报告。
可以立即向后续页面发出 API 请求,但必须将速率限制为每个令牌范围每分钟最多 10 个分页请求。
检索记录时,包括在分页响应或重复对账窗口中检索记录时,使用等效处理和重复数据消除。 用reportId作主键reportTime并确定最新处理的记录。
例如,如果初始 API 请求是:
https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&max=5000
那么响应中的链接标头是:
<https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&startTimeForNextFetch=2025-08-15T09:30:00.000Z&totalCount=20000&max=5000>; rel="next"
分页仅使用rel="next"链接标题。 如果响应包含rel="next"链接,则使用该网址检索下一页记录。 如果响应中不包含rel="next"链接,则您已检索到所选时间范围内的所有可用记录。
此 API 的分页遵循 RFC5988(网络链接)标准。 有关更多信息,请参阅 REST API 基础知识。
了解 API 端点响应代码
本节概述了使用对账 API 端点和 记录 API 端点时 可能遇到的常见响应代码。 这些端点在数据 同步、验证和报告中起着关键作用。 了解这些响应代码 对于有效的故障排除和保持可靠、稳定的集成至关重要。
|
响应码 |
响应码描述 |
|---|---|
|
200 |
OK |
|
400 |
错误请求:请求无效或无法以其他方式送达。 随附的错误消息将进一步解释。 |
|
401 |
未授权:身份验证凭据缺失或不正确。 |
|
403 |
禁止:请求已被理解,但已被拒绝或不允许访问。 |
|
404 |
未找到:请求的 URI 无效或请求的资源(例如用户)不存在。 当请求的方法不支持所请求的格式时也会返回。 |
|
405 |
方法不允许:该请求是使用不支持的 HTTP 请求方法向资源发出的。 |
|
409 |
冲突:无法处理请求,因为它与系统的某些既定规则相冲突。 例如,一个人不能多次被添加到一个房间。 |
|
410 |
消失了:请求的资源不再可用。 |
|
415 |
不支持的媒体类型:向资源发出请求时未指定媒体类型或使用了不支持的媒体类型。 |
|
423 |
已锁定:请求的资源暂时不可用。 可能存在 Retry-After 标头,该标头指定在再次尝试请求之前需要等待多少秒。 |
|
428 |
必备先决条件:无法扫描文件中是否存在恶意软件,需要强制下载。 |
|
429 |
请求过多:在给定时间内发送的请求过多,请求受到了速率限制。 应存在 Retry-After 标头,该标头指定在成功发出请求之前需要等待多少秒。 |
|
451 |
默认情况下,对的请求 |
|
500 |
内部服务器错误:服务器出现问题。 如果问题仍然存在,请随时联系 [Webex 开发人员支持团队](/explore/suppore)。 |
|
502 |
网关错误:服务器在处理请求时收到来自上游服务器的无效响应。 请稍后重试。 |
|
503 |
服务不可用:服务器请求过载。 请稍后重试。 |
|
504 |
网关超时:上游服务器未能按时响应。 如果您的查询使用 max 参数,请尝试缩小该参数。 |
合作伙伴报告/模板 API
您可以使用合作伙伴报告 API 生成和下载合作伙伴中心中提供的报告。 有关更多信息,请参阅 合作伙伴报告/模板。
合作伙伴还可以直接从 Partner Hub 访问和下载多个报告。 有关更多信息,请参阅合作伙伴中心报告。
修订历史
文档修订历史记录
|
修订日期 |
我们对这篇文章做了以下修改 |
|---|---|
|
13/08/26 |
|
|
2/04/2026 |
|