如何收听Skype for Business通话事件

问题描述 投票:0回答:1

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

是否可以通过某种方式收听SfB呼叫事件并触发自定义操作?我知道有各种各样的SfB SDK,但是似乎没有一个提供监听这些事件的方法...

我希望能够做这样的事情(伪代码,我不太在意使用哪种语言,但是更喜欢JavaScript):

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
});
events office365 ms-office skype skype-for-business
1个回答
0
投票
ANY SDK中使用的任何实时“呼叫事件”。

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

[另一种选择是使用CDR数据库,尽管这不是用于“实时”呼叫的,并且需要为该站点启用CDR数据库。一旦启用,您就可以再次使用SQL查询数据库来查询历史通话数据。

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

[如果仅在谈论本地Skype桌面客户端呼叫(仅Windows客户端),则可以使用client SDK挂接到本地客户端,并且可以以这种方式跟踪呼叫事件。

© www.soinside.com 2019 - 2024. All rights reserved.