"Unsupported protocol element" 以编程方式创建交互时

"Unsupported protocol element" when creating Interactions programmatically

我正在尝试在 Genesys Platform SDK 8.5 上以编程方式为 Java 创建新的交互。

我用API reference

上的例子
public void createInteraction(String ixnType, String ixnSubtype, String queue) throws Exception
{
    RequestSubmit req = RequestSubmit.create();
    req.setInteractionType(ixnType);
    req.setInteractionSubtype(ixnSubtype);
    req.setQueue(queue);
    req.setMediaType("email");

    Message response = mPMService.getProtocol("IxnSrv").request(req);
    if(response == null || response.messageId() != EventAck.ID) {
          // For this sample, no error handling is implemented
          return;
    }

    EventAck event = (EventAck)response;
    mInteractionId = event.getExtension().getString("InteractionId");
}

但是,这给了我一个不支持的协议元素错误。

'EventError' (126) attributes:
    attr_error_desc [str] = "Unsupported protocol element"
    attr_ref_id [int] = 2
    attr_error_code [int] = 4

如何以编程方式创建新的交互?

对于此请求 (RequestSubmit),交互服务器应与 ClientType 连接为 MediaServerAgentApplication

首先,您必须打开您的协议作为媒体服务器。之后您必须将您的交互提交给交互服务器。

首先你的协议配置必须是这样的;

            interactionServerConfiguration.ClientName = "TestClient";
            interactionServerConfiguration.ClientType = InteractionClient.MediaServer;

            // Register this connection configuration with Protocol Manager
            protocolManagementService.Register(interactionServerConfiguration);

注意:您的配置环境中必须有 MediaServer 类型的应用程序定义,您必须在 CME 中看到它。 打开您与 ixn 服务器的连接后。您可以提交您喜欢的互动。甚至您也可以像我一样创建新型交互。我为我们的合作短信系统做了。它的名字并不重要。我们在我们的业务属性上定义了它,因此我们的代理可以从他们的代理桌面发送合作的第 3 方短信系统。没有新的扩展或新的许可证 :) 只是欺骗了它的系统。 genesys 也允许它。我知道这是因为我们是我们国家的 genesys 官方支持团队 :)(但可能需要代理席位许可证取决于代理人数)。

    RequestSubmit request = RequestSubmit.Create();
    request.TenantId = 1;
    request.MediaType = "email";
    request.Queue = c_inboundQueue;
    request.InteractionType = "Inbound";
    request.InteractionSubtype = "InboundNew";

    // Prepare the message to send. It is inserted in the request as UserData
    KeyValueCollection userData =
        new KeyValueCollection();

    // Prepare the message to send
    userData.Add("Subject", "subject goes here");
    request.UserData = userData;   protocolManagementService[c_interactionServerConfigurationIdentifier].Send(request);            

原来我需要将 ClientType 设置为 InteractionClient.ReportingEngine.