1

背景

我的应用程序连接到 Genesys 交互服务器,以便接收在交互工作空间上执行的操作的事件。我正在使用适用于 Java 的 Platform SDK 8.5。

我使用 API 参考中描述的方法连接到交互服务器。

 InteractionServerProtocol interactionServerProtocol =
         new InteractionServerProtocol(
             new Endpoint(
                   endpointName,
                   interactionServerHost,
                   interactionServerPort));
   interactionServerProtocol.setClientType(InteractionClient.AgentApplication);
   interactionServerProtocol.open();

接下来,我需要为我希望接收事件的每个地方注册一个侦听器。

RequestStartPlaceAgentStateReporting requestStartPlaceAgentStateReporting = RequestStartPlaceAgentStateReporting.create();
requestStartPlaceAgentStateReporting.setPlaceId("PlaceOfGold");
requestStartPlaceAgentStateReporting.setTenantId(101);
isProtocol.send(requestStartPlaceAgentStateReporting);  

现在的方式是,我的应用程序要求用户手动指定他希望观察的每个地方。这要求他知道所有地点的名称,而他可能不一定 [容易] 访问。

问题

如何以编程方式获取可用地点列表?最好从交互服务器限制所需的连接数。

4

2 回答 2

2

有一种方法可以使用。如果您检查应用程序块的方法,您将看到 cfg 和查询对象。您可以使用它来获取所有 DN 的列表。构建查询时,请尝试空白 DBID、名称和编号。

有一个类似于java代码的.net代码(实际上完全一样)

     List<CfgDN> list = new List<CfgDN>();
                List<DN> dnlist = new List<Dn>();

                CfgDNQuery query = new CfgDNQuery(m_ConfService);
                list = m_ConfService.RetrieveMultipleObjects<CfgDN>(query).ToList();
                foreach (CfgDN item in list)
                {
                  foo = (DN) item.DBID;
......

                    dnlist.Add(foo);
                }

注意:DN 是我的类,其中包含来自平台 SDK 的一些属性。

于 2015-09-16T21:37:49.850 回答
0
KeyValueCollection tenantList = new KeyValueCollection();
tenantList.addString("tenant", "Resources");
RequestStartPlaceAgentStateReportingAll all = RequestStartPlaceAgentStateReportingAll.create(tenantList);
interactionServerProtocol.send(all);
于 2017-04-28T16:54:04.183 回答