【问题标题】:How to get user device type accessing skype for business bot built in MS Bot Framework如何让用户设备类型访问 Skype for Business bot 内置于 MS Bot Framework
【发布时间】:2018-04-20 10:59:41
【问题描述】:

有谁知道如何获取有关访问部署在 S4B 通道中并使用 MS Bot Framework (C#) 构建的机器人的用户设备的信息。

我需要了解用于检测访问 Skype For Business 机器人的用户设备(设备类型和操作系统)的选项。如果有办法知道用户设备是台式机还是移动设备。在 bot 框架中,User-Agent 标头的格式类似于以下字符串:

SFBUserAgent (Microsoft-BotFramework/3.1+https://botframework.com/ua)

(来自连接器的用户代理返回以下内容:

fxversion/4.7.2563.0 osname/windowsserver2016datacenter osversion/6.3.14393 microsoft.bot.connector.connectorclient/3.14.1.1)

我想知道是否可以使用 UCWA 来检测访问 Skype For Business bot 的设备类型。

【问题讨论】:

    标签: botframework bots skype-for-business ucwa


    【解决方案1】:

    UCWA 不能这样做,实际上没有客户端或面向客户端的 api 可以提供此类信息。这是因为用户代理信息不是存在的一部分,因此客户端不会将其发布给其他客户端。此 User-Agent 信息的主要目的是用于监控报告目的。

    但是,服务器端仍有一些空间可以让我们做一些事情。如果您有权访问 Skype for Business 服务器,则有多种解决方法。

    1. Get-CsConnections.ps1 是一个众所周知的脚本,用于从 Lync 服务器端提取当前登录用户。它是在 2011 年编写的,当时我们只有 Lync 2010,但好消息是它适用于新版本的 Lync,如 Lync Server 2013、Skype for Business server 2015。此脚本需要在 Lync/Skype 管理 shell 或 Powershell 中运行与导入的 Lync/Skype 模块的会话。它需要使用 Lync/Skype 管理员帐户运行。

      使用 sip uri 检索特定用户的用户代理。

      $UserHomePool = (Get-CsUser -Identity [sip address]).RegistrarPool Get-CsConnections.ps1 -SipAddress [sip address] -Pool $UserHomePool

    2. Connections.ps1是上述Get-CsConnections.ps1的原型脚本,比较简单但不提供高级功能。您可以查看它并决定您需要哪一个。

    3. 自己动手。如果您不想使用 3rd 方脚本,或者只想以最简单纯粹的方式进行操作,可以通过从服务器数据库中查询来实现。 Lync/Skype 服务器将此用户代理信息存储在前端服务器的动态数据库中。它位于实例 rtclocal 的数据库 rtcdyn 的表 dbo.RegistrarEndpoint 中。

      请注意,没有关于数据库架构的公开文档,因此您需要自己做一些猜测和破解。好消息是数据库中的所有数据都以可读格式存储,所以这应该不是什么大问题。

    4. 如果您不希望实时获取此信息,那么monitoring report 和database 可能是最好的方法。不是实时数据,是通话结束后10分钟内生成的数据。

      如果您想从监控数据库中获取它,您应该查看SessionDetails view 用于P2P 对话和ConferenceSessionDetails 用于会议对话。视图中有一些称为 UserClientType 之类的简单字段,用于指出特定会话的用户代理信息。

    最后我要提醒的一件事是 Skype 允许用户同时登录多个客户端,所以无论你如何让它工作,你仍然需要面对登录客户端对你真正重要的问题,如果用户有多个客户登录。

    【讨论】:

    • 我假设您只是来自客户端的开发人员,并且无法从服务器端访问这些数据?
    • 我是客户端的开发人员,但我发现 UCWA 可以用于此,尽管它不能解决整个问题,我的团队发现它只提供有关第一个设备用户可能已登录的信息(考虑用户之前未登录到任何其他设备,或者如果当时用户已注销所有设备)。此行为与请求可能来自 PC 或移动设备的 bot 无关。因此,如果我通过 PC 和移动设备登录 SfB,如果我先登录 SfB 移动应用,然后再登录 PC,它将始终显示移动设备。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多