JTAPI

JTAPI求助:

 

   最近公司做一个项目,做一套录音系统。用的Cisco的交换机。用JTAPI去获取Call Manager上面的信息,比如:主叫号码、被叫号码、开始时间、结束时间。

   我现在的思路是:连接、动态监控事件、获取事件上面的信息。

   在振铃事件上,我就可以获得主被叫了,在来话接起事件上或者开始时间、挂机事件上面获得结束时间。

 

  我能正确连接,并能得到服务器上面的电话号码,附以下代码:

        public Object getServerConnection() throws JtapiPeerUnavailableException, ResourceUnavailableException, MethodNotSupportedException, InterruptedException{
    //抽象出硬件对象
   JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null);
   System.out.println("硬件对象-------------->"+peer);
   System.out.println("返回的服务器名称---->"+peer.getServices());
   System.out.println ( "Initializing Jtapi---------------->" );
   //CCM服务器相关信息
   String urlmessage="192.168.20.68;login=cti_1;passwd=123456;appinfo=CiscoSoftphone";
   // 产生一个 Provider 实例 
   Provider myprovider;
   CiscoTerminalObserver ciscoTerminalObserver;

/*
* 针对Terminal,有TerminalObserver,
* 它能汇报出一个Terminal的所有事件以及相关信息,
* CTI应用中非常重要的数据主叫号码、同步数据等就可以在这里得到
*
* 类似的,还有AddressObserver、CallObserver等多种Observer
*/
TerminalObserver terminalObserver;
//建立与服务器的连接
myprovider=peer.getProvider(urlmessage);
System.out.println("---------连接成功---------------");
System.out.println("------连接对象------->"+myprovider);
System.out.println("------连接成功,得到服务器IP----->"+myprovider.getName());

myprovider.addObserver(ProviderObserver);
// while(OutOfServiceException){
// Thread.sleep(500);
// }
Thread.sleep(500);
Address[] address=myprovider.getAddresses();
for(int i=0;i<address.length;i++){
System.out.println("地址----分机号码------->"+address[i]);
}
//myprovider.shutdown();
return myprovider;
}

 

    现在的问题是,我连接成功之后该如何去监控,是监控哪个对象?

    1.有的朋友说监控Call

       Call  mycall = null;

       mycall.addObserver(new 一个实现返回信息的类);

    2.有的朋友说监控Terminal

 

    我不知道,没有JTAPI的经验。请问我该如何监控?

    我只有实现监控事件,获取事件信息。

    哪位大侠能给我个demo

 

(接收信息的时候可能还有多线程的问题,在100通电话打过来的时候,我获取信息的并发情况。不过这个不在现在实现的考虑范围之内)


上传一个附件:外拨情况下,扑捉事件信息

你可能感兴趣的:(多线程,thread,应用服务器,Cisco)