首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CiscoProvider.GetCall(int callLegID)获取结果不稳定

从CiscoProvider.GetCall(int callLegID)获取结果不稳定
EN

Stack Overflow用户
提问于 2015-05-11 21:38:46
回答 1查看 182关注 0票数 0

我有代码:

代码语言:javascript
复制
        CiscoJtapiPeer peer = (CiscoJtapiPeer) JtapiPeerFactory.getJtapiPeer(null);
    CiscoProvider provider = (CiscoProvider) peer.getProvider(host+";login="+ login +";passwd=" + pass);
    provider.addObserver(new ProviderObserver() {
                    @Override
        public void providerChangedEvent (ProvEv [] eventList) {
            if (eventList == null) return;
            for (int i = 0; i < eventList.length; ++i) {
                if (eventList[i] instanceof ProvInServiceEv) {
                    inService.set();
                }
            }
        }
    });
    inService.waitTrue();
    System.out.println("In servise.");
        CiscoAddress srcAddr = (CiscoAddress) provider.getAddress(dn);
        srcAddr.addCallObserver(new MyCallControlCallObserver(dn, provider))

和地址上的观察者:

代码语言:javascript
复制
        @Override
public void callChangedEvent(CallEv[] evlist)throws Exception{
    for (CallEv evlist1 : evlist) {

        if (evlist1.getID() == CiscoTermConnRecordingEndEv.ID) {
            call = provider.getCall(callid);
            if (call != null) {
                System.out.println("From: " + call.getCallingAddress() + "   To: " + call.getCalledAddress());
            }
            else {System.out.println("Call is null");}
        }
    }
}

函数provider.getCall(callid)返回对象不稳定。就像这样-

代码语言:javascript
复制
From: 4403   To: 5215 
Call is null
Call is null
From: 4403   To: 5215
From: 4403   To: 5215
Call is null
Call is null
From: 4403   To: 5215

通话间隔5- 15秒,通话时长3-7秒。我尝试更改以处理该事件-同样的结果。我做错了什么?也许这是因为CUCM是一个集群?每个调用的CiscoProvider是不同的?

EN

回答 1

Stack Overflow用户

发布于 2015-05-29 20:50:48

代码语言:javascript
复制
if (evlist1.getID() == CiscoTermConnRecordingEndEv.ID) {
            call = provider.getCall(callid);
            if (call != null) {
                System.out.println("From: " + call.getCallingAddress() + "   To: " + call.getCalledAddress());
            }
            else {System.out.println("Call is null");}
        }

您收到的呼叫的录音选项为true。您只能获得录音的呼叫。这就是你的函数不稳定的原因。如果您希望获取所有呼叫,而不是CiscoTermConnRecordingEndEv,请使用TermConnActiveEv,如果您希望获取处于活动状态呼叫,请使用TermConnRingingEv

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30169201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档