Events 如何收听Skype的商务通话活动

Events 如何收听Skype的商务通话活动,events,office365,ms-office,skype,skype-for-business,Events,Office365,Ms Office,Skype,Skype For Business,我需要通知后端服务器有关Skype的业务呼叫事件。调用后端不是问题,但侦听调用事件是问题。我想查看和解析skype日志文件,但日志文件中似乎没有呼叫信息。。。无论如何,这将是一个丑陋的解决方案 是否可能以某种方式侦听SfB调用事件并触发自定义操作? 我知道有各种各样的SfB SDK,但它们似乎都没有提供一种方式来聆听这些事件 我希望能够做到这一点(伪代码,我不在乎使用什么语言,但更喜欢JavaScript): SfB不提供任何可在anySDK中使用的实时“调用事件” 对于实时“通话”,您所能做的

我需要通知后端服务器有关Skype的业务呼叫事件。调用后端不是问题,但侦听调用事件是问题。我想查看和解析skype日志文件,但日志文件中似乎没有呼叫信息。。。无论如何,这将是一个丑陋的解决方案

是否可能以某种方式侦听SfB调用事件并触发自定义操作? 我知道有各种各样的SfB SDK,但它们似乎都没有提供一种方式来聆听这些事件

我希望能够做到这一点(伪代码,我不在乎使用什么语言,但更喜欢JavaScript):


SfB不提供任何可在anySDK中使用的实时“调用事件”

对于实时“通话”,您所能做的最好的事情(不费吹灰之力)是订阅用户状态并挂断“通话中”(电话中)活动令牌繁忙状态(此状态不保证正确)。这样做的问题是,您无法真正为每个人获取“所有”呼叫事件,因为您只能订阅您知道的端点。使用大规模订阅也存在问题。这可以通过Skype包含的大多数SDK来完成

另一种选择是使用数据库,尽管它不适用于“实时”呼叫,并且需要为站点启用CDR数据库。启用后,您可以再次使用SQL查询数据库中的历史调用数据

如果您确实需要大规模的呼叫监控,那么唯一的选择就是创建一个在FE机器上运行并将“sip”消息转换为呼叫事件的会话。这是一个很大的工作,看起来很简单,但很快就会变得非常困难。这将为您提供“实时”呼叫事件,但需要某人花费很长时间才能正确完成,并且您必须对SIP有深入的了解


如果您只谈论本地Skype桌面客户端呼叫(仅限windows客户端),则可以使用连接到本地客户端,并以这种方式跟踪呼叫事件

非常感谢您的解释!使用忙碌状态似乎太模糊,不合适。。。我不知道CDR,但也不适合,因为我需要实时数据。我已经考虑过SIP解决方案,但由于我对SIP一点也不熟悉,这可能太复杂了,所以我的最佳选择似乎还是使用客户端SDK(我们只使用Windows,所以这是一个加号)。您是否有使用客户端SDK的经验?你认为仅仅编写一个像我上面的伪代码那样的应用程序有多难?我做了上面所有的工作,原因很多。我建议您使用状态解决方案。如果您需要跟踪多个用户,我建议将UCMA可信应用程序设置作为“最佳”解决方案,如果它只是一个人,那么使用什么SDK并不重要。linkclientsdk的问题是它很旧,从未更新过。由于上一个版本是针对Lync 2013发布的,所以它在某些领域已经慢慢突破(尽管存在领域工作正常)。Lync client SDK的其他问题是它不能扩展到多个用户,并且只能在windows上工作(因此其他Skype客户端将是一个空白)。您可以将Lync client SDK视为用户计算机上运行Skype客户端的远程控制API。因此,如果你的应用程序没有在用户计算机上运行,你就是瞎子。我不能只使用状态状态,因为我需要知道更多的信息(例如,呼叫的人等)。如果它是一个基于客户端的解决方案,即使它只是在windows上,也会非常好。我可以很容易地在每个客户机上安装我的程序。因此,skype遥控器对我来说确实不错,只要它让我能够访问我需要的所有信息(例如“侦听呼叫事件”)……是的,Lync Client SDK可以满足您的需要。对于您的用例来说,这应该很容易做到。请参见此处的示例:
skype.onCallIncoming(callInfo => {
    console.log(callInfo.user + ' is calling');
    // my custom action
});

skype.onCallAccepted(callInfo => {
    console.log('The call was accepted');
    // my custom action
});

skype.onCallEnded(callInfo => {
    console.log('The call was ended');
    // my custom action
});