计算机电话集成软件电话体系结构问题
本文关键字:电话 问题 体系结构 集成 计算机 软件 | 更新日期: 2023-09-27 17:59:15
我正在进行一个项目,我正在开发一个伪统一通信中间层解决方案(Presence&Call Control),该解决方案将Genesys作为CTI解决方案提供商(www.genesyslab.com)的后端。该解决方案的前端可以是一个基于web的应用程序(尽管我的公司是一家微软商店,但最好不要使用ActiveX)
Genesys使用基于套接字的通信,并且通信是异步的。例如,我向Genesys发送了一个拨打电话的请求,Genesys会以一个事件进行响应,指示正在拨打并建立电话。
基于我在n层设计方面的有限经验,到目前为止,我设想的是一个windows服务,用于处理与Genesys的套接字通信,并维护环境中所有调用活动的状态。接下来,我看到一个WCF服务与windows服务通信,以提供有关对基于web的客户端的调用状态的详细信息(使用基本绑定或ws绑定)。这将允许我不再使用ActiveX,但需要轮询,所以很可能我会有多个具有负载平衡的WCF实例来共享负载。
我走对了吗?WCF可以与windows服务通信,也可以向客户端提供服务吗?任何其他架构方法建议都将不胜感激!
谨致问候,Jason
您当然可以实现WCF"网关"服务,该服务将CTI协议实现公开为WCF友好的SOAP web服务。如果CTI协议依赖于有状态连接,那么将其实现为无状态SOAPWeb服务可能会很棘手。但是,根据您对客户端技术的选择,这可能没有必要。
ActiveX控件具有与登录用户相同的权限。因此,它可以创建到CTI后端的TCP/IP或UDP套接字连接,从而完全避免对WCF的需要。
如果您使用Silverlight(我强烈建议您不要使用ActiveX),那么您需要Silverlight应用程序具有提升的信任,以便在任意端口上创建套接字连接。通常,Silverlight应用程序只能在端口4502-4534上创建套接字连接,但具有提升信任的Silverlight应用程序可以使用任何端口。
Silverlight通常比ActiveX有更好的"声誉",但实际上,ActiveX和Silverlight都需要您的客户端足够信任您才能安装某些东西。
除了"中间层"WCF服务之外,您还应该让windows服务托管WCF服务。这将是WCF服务与Windows服务对话的最简单方式。此WCF服务将仅通过中间层服务进行调用,以便与电话集成进行交互。
为了恢复弹性,您可以将端点实际设置为集群或路由服务端点,这将允许您引入windows服务的故障切换,相对而言,这是一种看似毫无意义的
此外,我通常会避免WsHttpBinding,因为它为启用通常不需要的功能性增加了大量开销