云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_数据库状态_免费

小七 141 0

在这篇博文中,我将解释我们如何解决c4ccti适配器在Citrix环境中不能正常工作的问题。SAP在下页详细说明了问题:

https://apps.support.sap.com/sap/support/knowledge/public/en/2433195

首先,我们需要CTI适配器的源代码,这是一个.net应用程序,电梯物联网,以便进行更改。SAP可能会根据要求提供此功能,但一旦您对其进行了更改,就必须自己支持应用程序。我们在几年前做了这些更改,没有遇到任何特别的问题。

C4C的Live Activity pane和CTI Adapter是如何交互的

首先了解这一点很重要。SAP已经提供了有关如何配置电话系统的CTI的文档,以便通过调用以下格式的URL将呼叫详细信息传递给CTI适配器,因此我将不详细讨论:

:36729/?CID=BCM1234&ANI=customer\u phoneno&DNIS=number\u dialled&BP=&SerialNo=&TicketID=&ExternalReferenceID=call\u ref&Custom\u 1=&Custom\u 2=&Custom\u 3=&Custom\u 4

您可以传递任意多或任意少的参数。我已经在上面展示了一些例子:

客户电话号码

客户电话号码通过呼叫者线路识别识别出的客户电话号码号码\您拨打了客户所拨打的号码call\u ref系统内电话呼叫的唯一ID,例如Avaya UCID

最近一次呼叫发送到CTI适配器的参数存储在内存中。为了检索这个调用数据,大数据存储技术,C4C中的活动每隔几秒钟通过调用以下URL作为ajaxxmlhttprequest来轮询CTI适配器:

:36729/ctipayload/

如果CTI适配器中没有存储呼叫数据,则返回"no Payload"。如果存储了呼叫数据,则将其传回活动。一旦呼叫数据被发送到Live Activity,数据就会从CTI适配器中清除。

为什么这在Citrix中不起作用

在上面SAP的帖子中,正确地指出问题的发生是因为CTI适配器正在侦听特定的IP(127.0.0.1,即localhost)和端口,36729用于http连接或36731(如果在作用域中启用了安全CTI(HTTPS))。C4C中的实时活动每隔几秒钟轮询一次CTI适配器,云服务器网站,以获取新电话呼叫的详细信息(称为有效负载请求),但CTI适配器无法判断哪个用户正在连接到它。

如果您有多个代理登录到一台Citrix服务器,则以下场景是确定的:

代理1收到一个电话呼叫,您的电话系统的CTI呼叫CTI适配器,并传递CTI适配器存储的呼叫详细信息,等待下一个来自C4C的呼叫代理2尚未收到电话呼叫,但代理2的实时活动是下一个轮询CTI适配器以查看是否存储了任何呼叫详细信息的活动,它接收代理1正在处理的呼叫的详细信息并将其呈现给代理2然后,代理1的C4C会话轮询CTI适配器,但没有获得调用详细信息,因为它们已经被错误地传递给代理2。一旦传送到Live Activity,呼叫详细信息就会从CTI适配器中删除。

这是Citrix中的一个常见问题,我们的专家查看了下面详述的选项,这些选项通常可以解决此问题,但在这种情况下,上述方法不起作用:

https://docs.citrix.com/en-us/xenapp-and-xendesktop/7-15-ltsr/manage-deployment/virtual-ip-virtual-loopback.html

对CTI适配器所做的更改

我们对CTI适配器所做的更改如下:

internet上有许多文章介绍如何创建Windows服务,所以我将只处理第2点和第3点

需要应用的更改CTIHttpServer.cs

第2步:连接到CTI适配器需要身份验证

添加下面突出显示的行以要求所有到CTI适配器的请求进行身份验证

注意:Live Activity对CTI适配器的调用将自动进行身份验证,以响应CTI适配器发出的请求,但您的电话系统的CTI在默认情况下可能不会这样做。

提供代码可能太难在这里显示,因为各个地方都有变化,但实现起来并不是那么难。

在CTI适配器中,代码被更改,以维护用户识别的用户ID列表通过电话呼叫详细信息时进行Windows身份验证,然后为每个用户标识存储当前电话呼叫的相关详细信息。

在下面的示例中,电话系统已从号码01234454133向Eric Jones发送电话呼叫,云服务器有哪些,CTI已将呼叫详细信息传递给CTI适配器。其他数据已传递给其他用户。所有数据以列表的形式存储在CTI适配器中:

在本例中,当Eric Jones的Live Activity轮询CTI适配器以获取呼叫详细信息时,Live Activity请求使用Eric的Windows用户ID进行身份验证埃里克。琼斯. 然后CTI适配器知道请求来自Eric Jones的web浏览器,返回的有效负载来自表的第二行,该行在Live Activity中返回并显示。

由于定制的CTI适配器现在是Windows服务,因此它没有用户界面。对于测试,我们有时希望使用开箱即用版本中的模拟选项:

为此,我们创建了一个简单的html计算机模拟.htm页面中包含表单,并将其添加到Windows服务部署包中,并创建了一个自定义工作中心视图以在C4C中显示它:36729/计算机模拟.htm

提交表单时,它会向CTI适配器发出GET请求,传递输入的所有参数,就像CTI调用一样。

部分HTML

结论