我正在开发的应用程序需要从SAP联络中心接收活动,以便在手机上进行交互。例如, IciEvent_phoneCallChanged 等事件。
我已经能够通过发送订阅请求来接收用户事件。我正在发送Container接口的订阅请求,似乎正在工作。在Wireshark中,我可以看到从联络中心返回的响应,但是当我进行测试呼叫时,没有收到任何事件。
Container订阅就是这样
containerSubscriber = new ContainerSubscriber("urn:IciContainerInterface", "IciContainerService", "http://<client_address>/oii/icicontainerservice.asmx?wsdl");
IciContainerServiceSoap port = containerSubscriber.getPort();
com.dvsoft.sap.containerici.client.SubscribeResponseResponse response = port.subscribe(appURL, appIdContainer, "1", container);
public class ContainerSubscriber {
private QName SERVICE_NAME;
private String wsdlurl;
public ContainerSubscriber(String namespaceURI, String localPart, String wsdlurl) {
this.wsdlurl = wsdlurl;
SERVICE_NAME = new QName(namespaceURI, localPart);
}
public IciContainerServiceSoap getPort() {
IciContainerServiceSoap port = null;
try {
URL wsdlURL;
wsdlURL = new URL(wsdlurl);
IciContainerService service = new IciContainerService(wsdlURL, SERVICE_NAME);
port = service.getIciContainerServiceSoap();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return port;
}
}
所以......
如何正确订阅和接听电话呼叫事件?
答案 0 :(得分:2)
事实证明似乎正在工作是因为它正在运作。我正在做正确的事情。问题是我给测试的用户没有被添加到正确的组/队列中,所以事件没有被发送。