cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
495
Views
0
Helpful
1
Replies

Missing CTI events for when a call is picked up – possible regression?

CTICam
Level 1
Level 1

Hello all,

We started development on a CTI Manager application a month ago using Cisco JTAPI in Java to ingest CTI events published by the Collaboration 14 DevNet environment. We paused development for about two weeks and recently resumed again. We are trying to debug an issue where we don't seem to be getting the data from the CTI event(s) that we were expecting to get.

Code:

In our CallHandler, we have code that looks like (snippet):

 

 

public void callChangedEvent(CallEv[] events) {
    for (CallEv ev : events) {
        int eventID = ev.getID();

        try {
            if (eventID == CallActiveEv.ID) {
                callActive.set();
            } else if (eventID == CallCtlConnEstablishedEv.ID) {
                this.handleCallCtlConnEstablishedEv(ev);
            }
        }
    }
}
    
private void handleCallCtlConnEstablishedEv(CallEv ev) {
    Connection[] conns = ev.getCall().getConnections();
    logger.info("Connections count: " + conns.length);
}

 

 

Problem:

Within the individual connections, we believe we used to be able to see the different users on the line. If "1001" calls "1002", we would see 2 connections. We used this connection information to get the line's phone number via "conn.getAddress()" and also the SIP Session IDs via "getLocalUUID" or "getPeerUUID", depending on which connection it was.

When we resumed testing earlier this week, we were not able to get the proper connection(s) anymore. Our "Connections count" log statement would always show 1 connection only.

When we test a call from line "1001" to "1002", we only receive these 2 events:

 

(P1-user01) 4028/1 TermConnActiveEv CSFUSER002 [#28] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
(P1-user01) 4028/1 CallCtlTermConnTalkingEv CSFUSER002 [#29] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12

 

We reverted to a much earlier version and confirmed that we are still only receiving these 2 events with 1 connection each within.

Question:

Does anyone know what CTI events are supposed to be sent when a call is picked up? We believe we are expecting to receive "CallCtlConnEstablishedEv" which would contain the two connections, but that event does not appear to be sent.

1 Reply 1

dstaudt
Cisco Employee
Cisco Employee

Not sure what might be the case in your app, but testing the playMedia sample from this JTAPI sample project repo seems to provide 2 connections on CallCtlTermConnTalkingEv, as you expect:

dstaudt_0-1698691592309.png

FYI this is the full log out put from the sample, which shows the various events received. 

13:46:56.86 Initializing Jtapi
13:46:56.92 Connecting Provider: sjds-cucm14.cisco.com;login=dstaudt;passwd=password
13:46:57.81 Awaiting ProvInServiceEv...
    Received--> Provider/(P1-dstaudt) ProvInServiceEv [#0] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
13:46:57.81 Opening fromAddress DN: 8000
    Received--> Address/(P1-dstaudt) [8000:] CiscoAddrOutOfServiceEv [#1] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoTermOutOfServiceEv [#2] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Address/(P1-dstaudt) [8000:] CiscoAddrOutOfServiceEv [#3] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoTermInServiceEv [#4] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
13:46:58.22 Awaiting CiscoTermInServiceEv for: CTIPdstaudt...
13:46:58.22 Awaiting CiscoAddrInServiceEv for: 8000...
    Received--> Address/(P1-dstaudt) [8000:] CiscoAddrInServiceEv [#5] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Address/(P1-dstaudt) [8000:] CiscoAddrAutoAcceptStatusChangedEv [#6] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
13:46:58.49 Ready for dialin call at CTI Port DN: 8000
13:46:58.49 Awaiting dialin CallCtlTermConnRingingEv for: CTIPdstaudt...
    Received--> Call/(P1-dstaudt) 4171/1 CallActiveEv [#7] Cause:106 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnCreatedEv 8000::1 [#8] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnInProgressEv 8000::1 [#9] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnOfferedEv 8000::1 [#10] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnCreatedEv 1001::1 [#11] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnConnectedEv 1001::1 [#12] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnEstablishedEv 1001::1 [#13] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnAlertingEv 8000::1 [#14] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnAlertingEv 8000::1 [#15] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 TermConnCreatedEv CTIPdstaudt [#16] Cause:0 CallCtlCause:0 CiscoCause:100 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 TermConnRingingEv CTIPdstaudt [#17] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlTermConnRingingEvImpl CTIPdstaudt [#18] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
13:47:00.17 Answering dialin call from DN: 1001
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoRTPOutputStartedEv [#19] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoRTPInputStartedEv [#20] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
13:47:00.24 Awaiting CiscoRTPOutputStartedEv for: CTIPdstaudt
    Received--> Call/(P1-dstaudt) 4171/1 ConnConnectedEv 8000::1 [#21] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnEstablishedEv 8000::1 [#22] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 TermConnActiveEv CTIPdstaudt [#23] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlTermConnTalkingEv CTIPdstaudt [#24] Cause:100 CallCtlCause:100 CiscoCause:0 FeatReason:12
13:47:12.04 Dropping call: (P1-dstaudt) GCID=(1,4171)->ACTIVE
    Received--> Call/(P1-dstaudt) 4171/1 ConnDisconnectedEv 1001::1 [#25] Cause:100 CallCtlCause:0 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnDisconnectedEv 1001::1 [#26] Cause:100 CallCtlCause:100 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 TermConnDroppedEv CTIPdstaudt [#27] Cause:100 CallCtlCause:0 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlTermConnDroppedEv CTIPdstaudt [#28] Cause:100 CallCtlCause:100 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 ConnDisconnectedEv 8000::1 [#29] Cause:100 CallCtlCause:0 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallCtlConnDisconnectedEv 8000::1 [#30] Cause:100 CallCtlCause:100 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallInvalidEv [#31] Cause:100 CallCtlCause:0 CiscoCause:16 FeatReason:12
    Received--> Call/(P1-dstaudt) 4171/1 CallObservationEndedEv [#32] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoRTPInputStoppedEv [#33] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12
    Received--> Terminal/(P1-dstaudt) [CTIPdstaudt] CiscoRTPOutputStoppedEv [#34] Cause:100 CallCtlCause:0 CiscoCause:0 FeatReason:12

The number/kinds of events received can be influenced by what kind of observers are added as well as CiscoAddress.setFilter()/CiscoTerminal.setFilter()