我正在使用思科jtapi v7+,并研究是否可以添加一个仅侦听某些(而不是所有)事件的提供商。但是,我在API中看到的唯一调用如下:
provider.addObserver(ProviderObserver); 我希望避免在我的应用程序中过滤事件,而是通过API来完成。任何关于这方面的想法/见解都将不胜感激!
发布于 2014-08-11 19:49:08
您必须将CallObserver实例添加到您要侦听的地址,然后过滤事件。例如:
Address srcAddr = provider.getAddress(src);
co = new CallObserver() {
public void callChangedEvent(CallEv[] eventList) {
for (int i = 0; i < eventList.length; ++i) {
try {
if (eventList[i].getID() == TermConnRingingEv.ID) {
session.getBasicRemote().sendText("new_call");
}
} catch (Exception ex) {
ex.printStackTrace();
}
if (eventList[i].getID() == ConnDisconnectedEv.ID) {
try {
System.out.println("Disconnected");
session.getBasicRemote().sendText("disconnected");
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (eventList[i] instanceof CallObservationEndedEv) {
System.out.println("Event: Call Observation Ended");
}
if (eventList[i] instanceof CiscoAddrOutOfServiceEv) {
System.out.println("Event: Address Out of service");
}
System.out.println("State: " + eventList[i].getCall().getState());
}
}
};
srcAddr.addCallObserver(co);https://stackoverflow.com/questions/19527528
复制相似问题