我如何通过 Graph Api 或类似方法获得所有团队 Calls&Meetings 的通话质量?

How I can get the Call Quality of all teams Calls&Meetings by Graph Api or similar?

我研究了一个解决方案来提高公司所有团队的音频和视频通信质量。

https://docs.microsoft.com/de-de/learn/modules/msgraph-changenotifications-trackchanges/5-exercise-change-notifications

在 Runtime-Ecxceptions 我使用旧版本创建视频。 older sources 这应该稍后解决,但没有理由只收到一些通知而不是全部。

我试图通过更改通知获取呼叫记录并且它部分起作用,但我没有收到所有通知,并且端点处理程序工作了半天以上(我认为是 12、14 或 16 小时)。

如果我理解正确的话。所有云通信 audio-/Video 呼叫已通过 https://graph.microsoft.com/beta/communications/callRecords/ 访问 如果 CallRecord 是会议类型,则 joinWebURL 已设置并且必须添加到 filter-clause 才能获得相应的会议。

我创建的订阅:

{
  "changeType": "created,updated",
  "notificationUrl": "https://a283-178-27-237-107.ngrok.io/api/notifications",
  "resource": "/communications/callRecords",
  "expirationDateTime": "2021-08-29T11:00:00.0000000Z"
}

我每次创建或更新订阅的最大时间是 4230,但我尝试使用短时间生成并定期更新订阅。

我在注册的App中的设置

// add permissions to registered app
CallRecord-PstnCalls.Read.All
CallRecords.Read.All
Calls.AccessMedia.All
Directory.Read.All
OnlineMeetings.Read.All
OnlineMeetings.ReadWrite.All
Reports.Read.All
User.Read.All
(OnlineMeetings is only a short    time added)

我使用 powershell 为这个应用程序设置了应用程序访问策略。

然后我尝试通过团队管理中心的通话记录历史来获取通话记录。 但是 Id 在那里与创建会议或呼叫的用户一起工作。

我收到消息 Forbidden, invalid token,... 所以看起来应用程序在 delgate 许可下工作,但我设置应用程序 permission.That 可以澄清为什么我不能全部 CallRedcords.if 我创建了一个订阅一个有权限的应用程序,webbook 应该调用 ever Call.

所以有2个大问题:

  1. 为什么没有发送所有通知?
  2. 我怎样才能获得一个有效的访问令牌,它适用于应用程序权限而不是委托权限?

更新: 现在看来我收到了所有通知,第 1 点和第 2 点还是不相关的? 不使用邮递员访问订阅,无论我尝试过什么,我都没有得到邮递员的有效令牌(Oauth2 身份验证从 notificationurl 处理程序复制令牌),这似乎是应用程序访问策略的影响。 有人对此有解决方案吗?

2021 年 9 月 15 日更新:

CallRecords 记录似乎工作正常,邮递员环境出现错误。 我忽略了其他手册并按照步骤使用了 Microsoft 的邮递员(参见 https://docs.microsoft.com/de-de/graph/use-postman)。使用应用程序权限创建订阅,似乎我收到了所有通知。

因此,获取所有通知似乎可行。所以我现在就关闭它。

CallRecords 记录似乎工作正常,邮递员环境出现错误。我忽略了其他手册并按照步骤使用了 Microsoft 的邮递员(参见 https://docs.microsoft.com/de-de/graph/use-postman)。使用应用程序权限创建订阅,似乎我收到了所有通知。

因此,获取所有通知似乎可行。 所以我可以一般地关闭它,因为在这种情况下有关问题需要自己的问题。

控制检查我是否收到所有通知是这个问题的唯一开放点。 所以我等几天,如果没有答案我就关闭这个问题。