あなたは、SAPのOnline Interaction Interface (OII)を利用することができます。
クライアントアプリケーション(CDTなど)がBCMとやりとりする(APIコールなど)APIです。
クライアントにOIIへの接続を依頼し、回線番号を指定してIciContainerInterfaceサブスクリプション要求を送信します。
OIIは、回線番号に関連するすべての通話に関する情報(電話番号など)を含むイベントをアプリに送信します。
手順
あなたOIIからWSDLをダウンロード:
ます。http:// IPアドレス /OII/IciItemService.asmx?WSDL
使用WSDL生成しますOIIクラス
OII接続のインスタンスを取得します。
private Optional<IciContainerServiceSoap> getContainerPort() {
return containerSubscriber.map(s -> {
IciContainerServiceSoap port = s.getIciContainerServiceSoap12();
BindingProvider binding = (BindingProvider) port;
binding.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
createServerUrl(s.getServiceName().getLocalPart(), serverAddress, serverPort));
return port;
});
}
public static String createServerUrl(@NotNull String localPart, @NotNull String serverAddress, int port) {
StringBuilder sb = new StringBuilder();
sb.append("http://");
sb.append(serverAddress);
if (port == 0) port = 80;
if (port != 80) {
sb.append(":");
sb.append(String.valueOf(port));
}
sb.append("/oii/");
sb.append(localPart);
sb.append(".asmx");
return sb.toString();
}
/*
* Address and port on which your client app's webservice will be
* listening for events sent by OII.
*/
public static String createAppURL() throws UnknownHostException {
//
Example: http://xxx.xxx.xxx.xxx:7007/sapws/services/cct?wsdl
return "http://" + getHostName() + ":" + getListenPort() + "/sapws/services?wsdl";
}
送信サブスクリプション要求:
getContainerPort().map(p -> p.subscribe(appURL, getAppId(), "1", container)).orElseThrow(IllegalStateException::new);
は、あなたのアプリが今を受け取ることになりますappIDが(7007)で指定したポート上のSOAPパケットの形でイベントをPhoneCallChanged。
私はJavaを使用しています。私は必要に応じて詳しく説明します。がんばろう!