如何将 UCMA 代码指向专用的 Skype for Business ID

How to point UCMA code to a dedicated Skype for Business ID

我是 UCMA Bot 开发的新手。我开始使用 UCMA 5.0 SDK 中提供的示例应用程序(名为 BuildaBot)。我无法设置 application endpoint。我已经为此创建了一个专用的 SkypeforBusiness ID Bot.This,它是在我的组织云中创建的。我已经在我们的本地服务器中部署了代码。 我将如何为这个 Skype ID 集成我的代码。

我在 UCMA 5.0 SDK 中的其他 QuickSamples 中发现,他们正在使用 Userendpoint。我可以在 App.config 中使用 Skype ID(用于 Bot 的 ID),并且在本地应用程序是 运行。在生产场景中,Bot 针对的是很多用户,是否可以使用 Userendpoint?

首先您需要了解可以使用 UCMA 编写的应用程序类型:

  1. Trusted Server Applications
  2. Client Applications

受信任的服务器应用程序

此类 UCMA 应用程序功能最强大,您可以使用 ApplicationEndpoints 或 UserEndpoints(通过模拟)。在特定的预安装机器(应用程序池)上,它们仅限于 运行。因此,设置 运行 受信任的服务器应用程序比客户端应用程序要困难得多。受信任的服务器应用程序不需要任何用户名或密码,它们是使用数字证书设置的(另一个可能发生的设置问题是整理出正确的证书)。这意味着使用 UserEndpoints 模拟用户一次非常容易 运行ning.

客户端应用程序

UCMA 客户端应用程序只能使用 UserEndpoint 的。对于要使用用户端点的客户端应用程序,它必须知道他们希望使用的用户的 username/password 详细信息。它们也不像受信任的服务器应用程序用户端点那样 "trusted"(尽管您可能永远不需要额外的权限)。

两种应用程序类型都可以做同样的事情,所以它主要归结为 运行宁要求。

接下来您需要了解两种类型的端点是什么:

ApplicationEndpoint

应用端点只能由受信任的服务器应用程序使用。应用端点(客户端访问许可证)也没有 CAL 要求。不需要 CAL 可能是走这条路的主要原因。

用户端点

用户端点是通过 AD 集成的标准 Lync 用户设置,因此通常每个 AD 用户都有一个 UserEndpoint。 UserEndpoint 需要分配某种 CAL。 "free" CAL 许可证或不同级别的付费 CAL 许可证,具体取决于所需的功能。

两种端点类型都只是 SIP 端点,您可以使用它们执行相同的操作。所以你可以使用其中任何一个来编写一个机器人。我的猜测是使用 ApplicationEndpoint 的可信应用程序只是因为您不需要为应用程序端点支付 CAL 成本,并且您可以 create/use 任意数量。此外,创建应用程序端点(我发现)比创建 AD 用户更容易。

不太可能在 Internet 上找到 UCMA 的现成代码。经过大量的工作,我想出了我的问题的答案。 为了其他人的参考,我在这里更新它。

如何创建 UCMA 用户端点

  1. 获取专用的 SFB Id(如 abc@domain.com),它将作为 Bot。
  2. 在App.config中,向运行提供示例所需的此Bot参数(值)。

    <appSettings>
    Provide the FQDN of the Microsoft Lync Server-->    
    <add key="ServerFQDN" value="" />
    
    <!--The user name of the user(BOT) that the sample logs in as -->
    <add key="UserName" value="" /> 
    
    <!--The user domain of the user(BOT) that the sample logs in as -->
    <add key="UserDomain" value="" />
    
    <!--The user URI of the user(BOT) that the sample logs in as, in the format sip:user@host-->
    <add key="UserURI" value="sip:abc@domain.com" />
    
    <!--The user URI of the user(BOT) that the sample logs in as-->
    <add key="UserPwd" value="" />
    
    </appSettings>
    
  3. 在 Program.cs 中,将这些代码放在下面。这将建立用户端点。这意味着,您已将 BOT id 映射到应用程序,现在您的应用程序将适用于该 Bot id。

    using System.Configuration;
    using System.Collections.Concurrent;
    using Microsoft.Rtc.Collaboration;
    using Microsoft.Rtc.Signaling;
    
    namespace Bot
    {
    public class Program
    {
    private static string sipaddress = ConfigurationManager.AppSettings["UserURI"];
    private static string username = ConfigurationManager.AppSettings["UserName"];
    private static string password = ConfigurationManager.AppSettings["UserPwd"];
    private static string domain = ConfigurationManager.AppSettings["UserDomain"];
    
    CollaborationPlatform _platform;
    UserEndpoint _endpoint;
    
    static void Main(string[] args)
    {
    var platformSettings = new ClientPlatformSettings(userAgent, SipTransportType.Tls);
        _platform = new CollaborationPlatform(platformSettings);
    
        UserEndpointSettings settings = new UserEndpointSettings(sipaddress);
        settings.Credential = new System.Net.NetworkCredential(username, password, domain);
        settings.AutomaticPresencePublicationEnabled = true;
    
        _endpoint = new UserEndpoint(_platform, settings);
        }}}
    

此外,您还必须编写代码,才能接收消息和回复消息。