"不支持的协议元素"以编程方式创建交互时

时间:2015-05-20 12:11:25

标签: java genesys

我正在尝试以编程方式在Genesys Platform SDK 8.5 for 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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

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

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

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

    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);            

答案 2 :(得分:0)

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