【问题标题】:Cannot create a VoIP call using Microsoft Graph and Teams无法使用 Microsoft Graph 和 Teams 创建 VoIP 呼叫
【发布时间】:2020-03-06 15:30:29
【问题描述】:

我正在尝试替换当前使用“Skype For Business/Lync”的 .NET 应用程序中的现有单击拨号功能,并将其切换为“Microsoft Teams”。看起来好像网上没有很多这样的例子。我发现的例子似乎对我不起作用。在多个来源中显示的示例如下:

IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
                                                                                .Create(clientId)
                                                                                .WithTenantId(tenantID)
                                                                                .WithClientSecret(clientSecret)
                                                                                .Build();

            ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);

            GraphServiceClient graphClient = new GraphServiceClient(authProvider);

            var call = new Call
            {
                CallbackUri = redirectUri,
                Targets = new List<InvitationParticipantInfo>()
            {
                new InvitationParticipantInfo
                {
                    Identity = new IdentitySet
                    {
                        User = new Identity
                        {
                            DisplayName = "John",
                            Id = userId
                        }
                    }
                }
            },
                RequestedModalities = new List<Modality>()
            {
                Modality.Audio
            },
                MediaConfig = new ServiceHostedMediaConfig
                {
                }
            };

            var response = graphClient.Communications.Calls
                .Request()
                .AddAsync(call).GetAwaiter().GetResult();

此代码最终返回错误

Message: {"errorCode":"7503","message":"Application is not registered in our store.","instanceAnnotations":[]}

关于此错误的文档不多。我已经在 Azure Active Directory 中注册了一个机器人,并将所有必要的值插入到上面 snippen 中的变量中。

我还尝试使用link 中的示例在 Postman 中运行此代码,该示例还包含 C# 示例。 Postman 返回完全相同的错误。

我还可以确认我已获得管理员同意授予的 Calls.Initialte API 权限。

有没有人通过 Microsoft Graph/Teams 用 C# 成功拨出电话?

【问题讨论】:

  • 能否请您检查权限是否已获得管理员同意?
  • 是的,我可以确认我已获得 Calls.Initiate API 的管理员许可。我已更新问题以反映这一点。
  • Calls.JoinGroupCallsasGuest.All, Calls.JoinGroupCalls.All, Calls.Initiate.All, Calls.InitiateGroupCalls.All 你是否同意我看不到的权限,我可以看到只有两个..对于使用应用托管媒体的呼叫,除了列出的权限之一之外,您还需要 Calls.AccessMedia.All 权限
  • 能否确认一下,如果您仍然面临这个问题?
  • 您在注册机器人时是否为您的机器人启用了calling feature?

标签: microsoft-graph-api microsoft-teams


【解决方案1】:

Create call 使您的 Bot 可以创建点对点或群组通话,您需要 register your calling Bot 并分配以下应用程序权限:

Calls.JoinGroupCallsasGuest.All, Calls.JoinGroupCalls.All, 
Calls.Initiate.All, Calls.InitiateGroupCalls.All 

1.使用服务托管媒体创建点对点 VoIP 呼叫

Note: This call needs the Calls.Initiate.All Application permission.

在注册您的 Bot 时,您需要为您的 Bot 启用 calling feature 并让您的 bot 参与音频和视频通话您需要在您的应用清单中将 supportsCalling 和 supportsVideo 设置为 true。

【讨论】:

    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多