通过java连接到电话系统

时间:2012-07-13 16:34:10

标签: java call jtapi octopus

我想开发一个Java应用程序,记录我们电话系统的所有来电。我们使用telekom提供的章鱼开放系统。

经过一些研究后我发现jtapi会是一个解决方案,但我找不到任何好的教程。我是在正确的轨道上吗?你能给我一些例子吗?

3 个答案:

答案 0 :(得分:1)

  • 下载JTAPI库文件“ECsjtapia.jar”将其添加到您的项目中。
  • 将tsapi.pro文件添加到您的项目中。更改tsapi.pro文件中的以下行 10.100.100.110(您的cms服务器IP)= 450(端口)
  • 使用以下代码创建listener.java ` import javax.telephony。*;

public class Listener {

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




}   

}

答案 1 :(得分:0)

如果您可以找到旧的传真卡,则可以在电话线上和活动记录时调用监听器。除此之外,不确定还有什么可行。

答案 2 :(得分:0)

我认为没有直接支持Telekom Octopus的JTAPI实现。您可以使用gjtapi(在sourceforge上)尝试使用TAPI进行JTAPI。

JTAPI的标准API文档可以在Java Comunity Process(jcp.org)中找到。

本文档包含javax.telephony的包描述中的一些示例代码。

监听/跟踪通话非常简单:

  • 连接到您的电话系统(详细信息取决于实施),这将导致连接
  • 获取您要观察的扩展名:Connection.getTerminal或Connection.getAddress
  • 实施CallObserver或CallListener
  • 现在您可以添加CallObserver或CallListener:例如Address.addCallObserver。

在事件处理程序中,例如CallObserver.callCahngedEvent(CallEv ev [])你可以从事件对象中获取所有相关信息,并随意做任何事情。

这就是......

观察者监听器?

根据您的JTAPI实现,Observer可能会被弃用。

相关问题