我想开发一个 Java 应用程序来记录我们电话系统的所有来电。我们使用由电信提供的章鱼开放系统。
经过一番研究,我发现 jtapi 将是一个解决方案,但我找不到任何好的教程。我在正确的轨道上吗?你能给我举一些例子吗?
公共类监听器{
static Provider provider;
static JtapiPeer peer1=null;
static String myService = "";
public static void main(String args[]){
try {
peer1 = JtapiPeerFactory.getJtapiPeer("com.avaya.jtapi.tsapi.TsapiPeer");
//"com.avaya.jtapi.tsapi.TsapiPeer"
}
catch(Exception hata)
{
System.out.println("Error: "+hata.getMessage());
}
//System.out.println("Test is ok: "+peer1.getName());
String[] services = peer1.getServices();
if (services == null)
{
System.out.println("Unable to obtain the services list from JTAPI peer");
System.exit(0);
}
myService = services[0];
//System.out.println("Service is "+myService);
System.out.println("Connecting to server-:"+myService+";login=;passwd=");
provider = peer1.getProvider(myService + ";login=;passwd=;");
try {
Terminal[] terminals = provider.getTerminals();
for(int i=0;i<=terminals.length-380;i++){
String arrterminals =terminals[i].getName() ;
try {
Terminal terminal = provider.getTerminal(arrterminals);
terminal.addCallListener(new callListener());
System.out.println("Terminal added for monitoring : " + i + " : " + terminal.getName());
} catch (InvalidArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ResourceUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MethodNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (ResourceUnavailableException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
如果你能找到一张旧的传真卡,你可以在电话线上唤起一个听众,同时进行录音。除此之外,不知道还有什么可以工作的。
我认为没有直接支持 Telekom Octopus 的 JTAPI 实现。您可以使用 gjtapi(在 sourceforge 上)在 TAPI 上尝试 JTAPI。
JTAPI 的标准 API 文档可以在 Java 社区进程 (jcp.org) 中找到。
本文档在 javax.telephony 的包描述中包含一些示例代码。
监控/跟踪通话非常简单:
在事件处理例程中,例如 CallObserver.callCahngedEvent(CallEv ev[]),您可以从事件对象中获取所有相关信息并使用它做任何您想做的事情。
就这样 ...
观察者听者?
根据您的 JTAPI 实现,Observer 可能会被弃用或不被弃用。