首页 > 解决方案 > 无法使用 Microsoft Graph 和 Teams 创建 VoIP 呼叫

问题描述

我正在尝试替换当前使用“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 中的变量中。

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

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

在此处输入图像描述 有没有人通过 Microsoft Graph/Teams 在 C# 中成功拨出电话?

标签: microsoft-graph-apimicrosoft-teams

解决方案


创建呼叫使您的机器人可以创建点对点或群组呼叫,您需要注册您的呼叫机器人并分配以下应用程序权限:

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 启用呼叫功能并让您的 bot 参与音频和视频通话您需要supportsCallingsupportsVideotrue的应用清单中进行设置。


推荐阅读