如何收听 Skype for Business 通话事件
How to listen to Skype for Business call events
我需要通知后端服务器有关 Skype for Business 呼叫事件。调用后端不是问题,但监听调用事件是。我考虑过查看和解析 skype 日志文件,但日志文件中似乎没有呼叫信息......无论如何这将是一个丑陋的解决方案。
是否有可能以某种方式监听 SfB 调用事件并触发自定义操作?
我知道有各种 SfB SDK,但其中 none 似乎提供了一种监听这些事件的方法...
我希望能够做这样的事情(伪代码,我不太关心使用什么语言,但更喜欢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
});
SfB 不提供您可以在 任何 SDK 中使用的任何实时 "call events"。
对于实时 "calls",您可以做的最好的事情(不费吹灰之力)就是订阅用户状态并挂断 "on a call"(on-the-phone) activity 令牌忙状态(不保证此存在状态是正确的)。这样做的问题是您无法真正获得每个人的 "all" 呼叫事件,因为您只能订阅您知道的端点。使用大规模订阅也存在问题。这可以通过大多数 Skype SDK 完成,包括 UCWA.
另一种选择是使用 CDR 数据库,尽管这不适用于 "live" 呼叫并且需要为站点启用 CDR 数据库。启用后,您只需使用 SQL 再次查询数据库以获取历史通话数据。
如果您真的需要大规模呼叫监控,那么唯一的选择是创建一个 SIP proxy application 在 FE 机器上运行并将 "sip" 消息转换为呼叫事件。这是很多工作,看起来很简单,但很快就会变得非常困难。这将为您提供 "live" 呼叫事件,但需要很长时间才能正确完成,而且您必须对 SIP 有深入的了解。
如果您仅谈论本地 Skype 桌面客户端呼叫(仅 windows 客户端),您可以使用 client SDK 连接到本地客户端,您可以跟踪呼叫事件那样。
我需要通知后端服务器有关 Skype for Business 呼叫事件。调用后端不是问题,但监听调用事件是。我考虑过查看和解析 skype 日志文件,但日志文件中似乎没有呼叫信息......无论如何这将是一个丑陋的解决方案。
是否有可能以某种方式监听 SfB 调用事件并触发自定义操作? 我知道有各种 SfB SDK,但其中 none 似乎提供了一种监听这些事件的方法...
我希望能够做这样的事情(伪代码,我不太关心使用什么语言,但更喜欢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
});
SfB 不提供您可以在 任何 SDK 中使用的任何实时 "call events"。
对于实时 "calls",您可以做的最好的事情(不费吹灰之力)就是订阅用户状态并挂断 "on a call"(on-the-phone) activity 令牌忙状态(不保证此存在状态是正确的)。这样做的问题是您无法真正获得每个人的 "all" 呼叫事件,因为您只能订阅您知道的端点。使用大规模订阅也存在问题。这可以通过大多数 Skype SDK 完成,包括 UCWA.
另一种选择是使用 CDR 数据库,尽管这不适用于 "live" 呼叫并且需要为站点启用 CDR 数据库。启用后,您只需使用 SQL 再次查询数据库以获取历史通话数据。
如果您真的需要大规模呼叫监控,那么唯一的选择是创建一个 SIP proxy application 在 FE 机器上运行并将 "sip" 消息转换为呼叫事件。这是很多工作,看起来很简单,但很快就会变得非常困难。这将为您提供 "live" 呼叫事件,但需要很长时间才能正确完成,而且您必须对 SIP 有深入的了解。
如果您仅谈论本地 Skype 桌面客户端呼叫(仅 windows 客户端),您可以使用 client SDK 连接到本地客户端,您可以跟踪呼叫事件那样。