我们有一个 Web 应用程序,人们问我们是否可以在他们的 PBX 上接到来电时弹出屏幕。
我认为最简单的方法是在系统托盘中放置一个小应用程序,并使用 TAPI 或 TSAPI 等待调用。当来电时,它会打开一个指向配置 URL 的网页,将呼叫者 ID 作为参数传递。
这样的应用程序是否存在于某处?
PS任何人都知道简单计算机电话协议发生了什么
我们有一个 Web 应用程序,人们问我们是否可以在他们的 PBX 上接到来电时弹出屏幕。
我认为最简单的方法是在系统托盘中放置一个小应用程序,并使用 TAPI 或 TSAPI 等待调用。当来电时,它会打开一个指向配置 URL 的网页,将呼叫者 ID 作为参数传递。
这样的应用程序是否存在于某处?
PS任何人都知道简单计算机电话协议发生了什么
这在很大程度上取决于所使用的 PBX——我使用过 Avaya 和 CallMedia 服务器。这两家公司都提供了一个小型桌面客户端和一个可以在代码中引用的 DLL。
最大的问题是一旦系统托盘应用程序收到事件通知网页。启动浏览器可能会很慢,并且对于呼叫处理来说不是良好的用户体验。更好的是保持浏览器打开并接收事件..
我工作的公司使用了一些非常过时的技术,所以他们有:
PBX --(XML)-- PBX System Tray Client --(COM)-- 我们自己的桌面应用程序 --(COM)-- 嵌入在页面中的 ActiveXControl --(Javascript)-- 处理事件的网站框架作为适当的
如您所见,它相当长且令人费解 - 一种更优雅的方法是在页面上嵌入一个 silverlight/类似应用程序,该应用程序从系统托盘客户端接收事件(通过 Web 服务或类似服务?)
您还需要解决以下问题:a) 打开多个页面 - 是否都收到事件?b) 以后更换 PBX 不需要完全重写。
当我离开那家公司时,我们正在实施一种机制,我们的应用程序可以直接通过 XML 从 PBX 接收消息。Silverlight 控制通过 2-Way WCF 向我们的桌面应用程序注册的任何/所有网页。然后我们让我们的桌面应用程序将适当的事件发送到适当的页面。
需要考虑的其他一些事项:您要处理混合频道吗?即可以处理电子邮件阻止来电事件?如果是这样,您需要某种双向通信来说“拒绝呼叫......”。您还需要注意代理的 telset 处于什么状态 - 如果您在完成保存数据之前进入“可用”状态,您可能会在记录所有内容之前浏览掉。此外,根据我的经验,代理真的很乐意按下 telset 上的按钮,而不是你的应用程序中的按钮 - 所以你需要处理意外的状态变化。
还可以考虑转移呼叫——大多数现代 PBX 允许呼叫转移以这样一种方式发生,即 id 与呼叫相关联——因此,如果它是内部转移,则接收者的屏幕可以显示所有呼叫注释/等。
如果您能澄清什么是 PBX/等,我可以提供更多信息。您正在使用以及需要处理哪些事件
我建议您至少处理的事件:呼叫响铃、呼叫应答、呼叫掉线、呼叫转移
你应该能够提出:接听电话、拨打电话、挂断电话、转接电话(热转和冷转,如果是内部的,可以选择使用数据)
当然,这对于您的解决方案可能有点过分了:)
编辑:我忘了补充一点,我们的解决方案还处理了在代理登录到 Web 应用程序时登录/注销 telset - 这提供了非常好的用户体验,但需要处理所有登录/注销变量以及维护查找用户表->扩展#
NCID(网络来电显示)是一个 Sourceforge 项目,它似乎是我想要的那种东西,但它依赖于 linux 服务器,并且似乎只支持来自连接到串行端口的调制解调器的来电显示,或者通过嗅探 SIP 数据包通过服务器的以太网接口。它不支持任何具有 TAPI 或类似功能的 PBX 系统,因为它仅在 Linux 上运行。
连接到服务器 NCIDpop 的客户端应用程序完全符合我的要求 - 它可以使用 URL 字符串查找一个数字,并在您单击它时打开一个网页。
这对我来说并不完全是答案,但可能对其他找到这个问题的人有用。