繁体   English   中英

如何让用户设备类型访问MS Bot Framework中内置的商务机器人的Skype

[英]How to get user device type accessing skype for business bot built in MS Bot Framework

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

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

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

(来自Connector的用户代理返回以下内容:

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

我想知道UCWA是否可用于检测访问Skype for Business机器人的设备类型。

UCWA无法做到这一点,实际上没有客户端或面向客户端的api可以提供此类信息。 这是因为User-Agent信息不属于状态,因此客户端不会将其发布给其他客户端。 用户代理信息的主要目的是为了监视报告目的。

但是,服务器端还有一些空间可以允许我们执行某些操作。 如果您有权访问Skype for Business服务器,则有几种解决方法。

  1. Get-CsConnections.ps1是一个著名的脚本,用于从Lync服务器端提取当前登录的用户。 它写于2011年,当时我们只有Lync 2010,但好消息是它可以与Lync Server 2013,Skype for Business Server 2015等新版本的Lync配合使用。此脚本需要在Lync / Skype管理外壳或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. 自己做。 如果您不想使用第三方脚本,或者只想以最简单和纯净的方式进行操作,则可以通过从服务器数据库中查询来完成。 Lync / Skype服务器将此用户代理信息存储在前端服务器的动态数据库中。 它在实例rtclocal的数据库rtcdyn的表dbo.RegistrarEndpoint中。

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

  4. 如果您极少需要实时信息,则监视报告数据库可能是最好的方法。 这不是实时数据,而是在会话结束后10分钟内生成的数据。

    如果要从监视数据库中获取它,则应查看用于P2P对话的SessionDetails视图和用于会议对话的ConferenceSessionDetails 有名为像UserClientType指出了某些会话的用户代理信息的观点简单明了领域。

最后,我想提醒一件事,Skype允许用户同时登录多个客户端,因此,无论您如何使其工作,仍然需要面对以下问题:如果用户有多个客户端登录,则登录客户端对您而言确实很重要在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM