c# - 计算机电话集成软电话架构问题

标签 c# silverlight wcf activex

我正在开发一个伪统一通信中间层解决方案(在线状态和调用控制),该项目使用 Genesys 作为后端,后者是 CTI 解决方案提供商 (www.genesyslab.com)。解决方案的前端可以是基于 Web 的应用程序(尽管我的公司是 Microsoft 商店,但最好不要使用 ActiveX)

Genesys 使用基于套接字的通信,通信是异步的。例如,我向 Genesys 发送了一个调用电话的请求,Genesys 响应一个事件,表明正在调用电话并已建立。

根据我在 n 层设计方面的有限经验,到目前为止,我设想的是一种 Windows 服务,用于处理与 Genesys 的套接字通信并维护环境中所有调用事件的状态。接下来,我看到一个 WCF 服务与 Windows 服务通信,以向基于 Web 的客户端(使用基本或 ws 绑定(bind))提供有关调用状态的详细信息。这将允许我摆脱使用 ActiveX,但需要轮询,所以很可能我会有多个具有负载平衡的 WCF 实例来分担负载。

我走在正确的轨道上吗? WCF 可以与 Windows 服务通信并为客户端提供服务吗?任何其他架构方法建议将不胜感激!

最好的问候, 杰森

最佳答案

您当然可以实现 WCF“网关”服务,将 CTI 协议(protocol)实现公开为 WCF 友好的 SOAP Web 服务。如果 CTI 协议(protocol)依赖于有状态连接,这可能很难实现为无状态 SOAP Web 服务。但是,根据您选择的客户端技术,这可能不是必需的。

ActiveX 控件与登录用户具有相同的权限。因此它可以创建到 CTI 后端的 TCP/IP 或 UDP 套接字连接,从而完全避免对 WCF 的需求。

如果您使用 Silverlight(我强烈建议您使用 ActiveX),那么您需要 Silverlight 应用程序具有更高的信任度才能在任意端口上创建套接字连接。通常,Silverlight 应用程序 can only create socket connections on ports 4502-4534 ,但具有更高信任度的 Silverlight 应用程序可以使用任何端口。

Silverlight 通常比 ActiveX 具有更好的“声誉”,但实际上,ActiveX 和 Silverlight 都需要您的客户足够信任您才能安装某些东西。

关于c# - 计算机电话集成软电话架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376149/

相关文章:

C#:遍历字符串中的子字符串模式

css - Silverlight 与溢出 = "hidden"

c# - 回复 : Saving downloaded Files into MyDocuments

wcf - C# : Instant Messager - Networking (. NET 远程处理/WCF/套接字)?

wcf - 使用 HandleError 或 ProvideFault 内的 IErrorHandler 在 WCF 中记录异常?

c# - 事件源增量 int id

c# - 如何从 IntPtr 获取二进制图像数据(看起来像 multipart/form-data)

c# - 为什么在 'GET' ing 时会出现此 WCF 错误?

c# - 我不能在 C# 中通过句柄设置窗口的透明度吗?

c# - XAP 打包失败找不到资源路径