Skip to the content.

通过 Azure Communication Service 加入到 Teams 会议

接着上一篇文章,我们来看看如何让自己的 webapp 程序可以加入到 teams 的会议中。

创建 User Access Token

微软提供做很多种方法来生成 user access token。比如 azure cli

az communication identity token issue --scope chat voip --connection-string "<yourConnectionString>"

这里就需要我们上篇文章说到的 connection string。

也可以是用 c# 代码来生成:

using System;
using Azure.Identity;
using Azure.Communication.Identity;
using Azure.Core;
using Azure.Communication;
using Azure;

class Program
{
    static async Task Main(string[] args)
    {
        string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
        var client = new CommunicationIdentityClient(connectionString);

        // Create an identity
        var identityResponse = await client.CreateUserAsync();
        var identity = identityResponse.Value;
        Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");

        // Issue an access token with a validity of 24 hours and the "voip" scope for an identity
        var tokenResponse = await client.GetTokenAsync(identity, scopes: new[] { CommunicationTokenScope.VoIP });
        var token = tokenResponse.Value.Token;
        var expiresOn = tokenResponse.Value.ExpiresOn;
        Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
        Console.WriteLine(token);
    }
}

teams 会议链接

我们在teams 里创建一个会议,并且加入会议,然后我们拿到会议的link。如下图:

ACS

选择 Meeting Info 后,在侧边栏就能够拿到会议链接

ACS

克隆并运行示例代码

我们可以克隆官方的一个示例代码:

git clone https://github.com/Azure-Samples/communication-services-javascript-quickstarts.git

然后进入示例的子目录,安装包

cd join-calling-to-teams-meeting
npm install

然后我们需要打开 client.js 代码,把代码里的 placeholder 给替换掉。

    const callClient = new CallClient();
    const tokenCredential = new AzureCommunicationTokenCredential("<USER ACCESS TOKEN>");
    callAgent = await callClient.createCallAgent(tokenCredential, { displayName: 'ACS user' });
    teamsMeetingJoinButton.disabled = false;

用我们在第一步里得到的 user access token 替换掉这里的 <USER ACCESS TOKEN>

然后运行示例程序

npx webpack-dev-server --entry ./client.js --output bundle.js --debug --devtool inline-source-map

加入 teams 会议

打开浏览器,访问本地路径 http://localhost:8080/

ACS

我们填入前面获取的 teams 会议链接,然后点击 “Join Teams Meeting”。在Teams会议里就可以看到 ACS user 这个用户了。

ACS

我们点击 “Admit”,允许这个 ACS 用户加入会议,然后我们就可以那这个浏览器上的 ACS 用户进行语音沟通了。

ACS

是不是有了 Azure Communication Service 后把自己网站和 Teams 的整合超级简单?

Written on June 1, 2022