Author Message
Avishay
Joined: Jun 3, 2015
Messages: 4
Offline

Hi, I wrote a program which needs to know when a call is answered.

When calling to an inner extension I receive a proper event but when calling to an outside line it doesn't work.

The program worked fine (both for inner/outside number) on our previous AES version (5.2) but after upgrade to AES 6.3.3
it stopped working.


Here is the code snippet for register observer (I also tried different approaches to register listeners):

Terminal terminal = getProvider().getTerminal(extension);
terminal.addCallObserver(new CallObserver() {
@Override
public String toString() {
return id + extension;
}
@Override
public void callChangedEvent(CallEv[] callEvs) {
for (final CallEv event : callEvs) {
int id = event.getID();
int metaId = event.getMetaCode();
int cause = event.getCause();
String s = String.format("[ %s] CE type=%s cause=%d id=%d meta=%d", Thread.currentThread().getName(), event.getClass(), cause, id, metaId);
System.out.println(s);
}
}


when creating a call from the extension to outside number , these are the events arriving and printed:

Console log:
[ pool-1-thread-7] type=class com.avaya.jtapi.tsapi.impl.events.call.TsapiCallActiveEvent cause=100 id=101 meta=128
[ pool-1-thread-7] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnCreatedEvent cause=100 id=106 meta=128
[ pool-1-thread-7] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnConnectedEvent cause=100 id=105 meta=128
[ pool-1-thread-7] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnCreatedEvent cause=100 id=116 meta=128
[ pool-1-thread-7] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnActiveEvent cause=100 id=115 meta=128
[ pool-1-thread-9] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnCreatedEvent cause=100 id=106 meta=130
[ pool-1-thread-9] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnAlertingEvent cause=100 id=104 meta=130
//call answered here

//call disconnectd here
[ pool-1-thread-10] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnDisconnectedEvent cause=100 id=107 meta=131
[ pool-1-thread-11] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnDroppedEvent cause=100 id=117 meta=131
[ pool-1-thread-11] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnDisconnectedEvent cause=100 id=107 meta=131
[ pool-1-thread-11] type=class com.avaya.jtapi.tsapi.impl.events.call.TsapiCallObservationEndedEvent cause=100 id=103 meta=136


If the number dialed is an inner extension, I receive 2 more events when call is answered
Here is the Console log for this case:


[ pool-1-thread-13] type=class com.avaya.jtapi.tsapi.impl.events.call.TsapiCallActiveEvent cause=100 id=101 meta=128
[ pool-1-thread-13] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnCreatedEvent cause=100 id=106 meta=128
[ pool-1-thread-13] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnConnectedEvent cause=100 id=105 meta=128
[ pool-1-thread-13] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnCreatedEvent cause=100 id=116 meta=128
[ pool-1-thread-13] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnActiveEvent cause=100 id=115 meta=128
[ pool-1-thread-15] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnCreatedEvent cause=100 id=106 meta=130
[ pool-1-thread-15] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnCreatedEvent cause=100 id=116 meta=130
[ pool-1-thread-15] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnAlertingEvent cause=100 id=104 meta=130
[ pool-1-thread-15] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnRingingEvent cause=100 id=119 meta=130
//call answered here
[ pool-1-thread-16] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnConnectedEvent cause=100 id=105 meta=129
[ pool-1-thread-16] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnActiveEvent cause=100 id=115 meta=129
//call disconnectd here
[ pool-1-thread-18] type=class com.avaya.jtapi.tsapi.impl.events.termConn.TsapiTermConnDroppedEvent cause=100 id=117 meta=131
[ pool-1-thread-18] type=class com.avaya.jtapi.tsapi.impl.events.conn.TsapiConnDisconnectedEvent cause=100 id=107 meta=131
[ pool-1-thread-18] type=class com.avaya.jtapi.tsapi.impl.events.call.TsapiCallObservationEndedEvent cause=100 id=103 meta=136


After debugging the jtapi library and open a trace log, it looks like that the information received in the TsapiSession is missing
the part of the answeringDevice is missing a proper deviceID and a deviceIDStatus


Part of the trace log received when the call is answered:

1. when dialing to an inner extension
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : answeringDevice
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : {
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceID "201647"
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceIDType 55 < EXPLICIT_PRIVATE_LOCAL_NUMBER >
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceIDStatus 0 < ID_PROVIDED >
2016-11-16 16:35:53.097 DEBUG 8820 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : }

2. when dialing to outside number
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : answeringDevice
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : {
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceID <null>
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceIDType 20 < IMPLICIT_PUBLIC >
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : deviceIDStatus 1 < ID_NOT_KNOWN >
2016-11-16 12:52:42.428 DEBUG 7896 --- [ GetEventThread] c.a.j.tsapi.tsapiInterface.TsapiSession : }




Tukesh
Joined: Nov 3, 2016
Messages: 1
Offline
This is not certainly JTAPI issue. Debugging this on TSAPI level would be efficient way.

Can you please share CM , AES & JTAPI client versions for working & not working setups ?
Avishay
Joined: Jun 3, 2015
Messages: 4
Offline
As i mentioned, the program started failing after upgrading an AES version. so in my opinion, its a configuration issue on the AES side.

I was wrong about the working AES version in my previous post (the correct version was 4.6).


Working setup:

JTAPI client version : 6.3.3.26
AES version: 4.6
CM version: 6.2.0.823

Not working setup:

JTAPI client version : 6.3.3.26
AES version: 6.3.3
CM version: 6.2.0.823
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
You didn't mention what service pack you have installed on your AE Services but I suspect it is SP6. In this case, you should downgrade to SP5.

There problem here, I think, is seen for an outgoing call where the other switch does not return an Answering Party Number. AE Services should put a Dynamic ID into the TSAPI event but in SP6 is leaves it blank.

The product house is aware of the problem and is working on a solution.

Martin
Avishay
Joined: Jun 3, 2015
Messages: 4
Offline
the full AES version is:

SW version: 6.3.3.6.10-0

Is this the problematic SP ?
if so, which SP is required ?
do you know when this problem is going to be fixed ? which SP ?
I saw you have a new 6.33 SP 7.0 that came out a week ago - is the problem fixed there ?
Avishay
Joined: Jun 3, 2015
Messages: 4
Offline
is this the ticket ?

Issue AES-15660:
In AE Services 6.3.3 SP6, AE Services did not specify the deviceID (that joined the call) in the Established Connection parameters of
the Established Event report. This patch resolves this issue.
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
Sorry, I wasn't aware that SP7 had already been released.

Yes, it looks like your problem has been fixed in SP7, you should upgrade to it.

Martin
Go to:   
Mobile view