Author Message
mahmood.atcom.ae
Joined: Jul 21, 2019
Messages: 8
Offline
I'm using JTAP for AES 8.1.2, I'm registering a CallControlTerminalConnectionListener on a Terminal with number 301.

from 301 i make a call to 302, 302 answers the call, here i get a Call Object with a UCID say 00001051731656159372.

then i put the call between 301 and 302 on hold, and make a new call from 301 to 303, i get a Call object with UCID say 00001051741656159381 and 303 asnwers 301 call.

until now both Call objects got a state of 33 which is ACTIVE.

from 301 i conference the call between 302 and 303 and 301 all together, at this point i receive SingleCallProgressStarted event for the Call UCID 00001051731656159372 (which is between 301 and 302) with Call state 34 which is INVALID and the Call has no Connections, until now eveything is ok until the very next event which is another SingleCallProgressStarted that states that Call with UCID 00001051731656159372 have a state of 33 which is ACTIVE.

is this ok for the call to go INVALID and back to ACTIVE ? in the documentation it says for the INVALID state

This is the final state for all Calls. Call objects which lose all of their Connections objects (via a transition of the Connection object into the Connection.DISCONNECTED state) moves into this state. Calls in this state have zero Connections and these Call objects may not be used for any future action. In this state, the Call.getConnections() must return null. [i]

which means the Call should not be used anymore.

what i am trying to do here to detect that a conference happened and know to which Call the call were merged.

**EDIT**
I've decided to try and monitor only Call Control Terminal Connections changes to track the calls above,
I have the below events of the Call Control Terminal Connection events, theses events are generated by my code as JSON strings, what i am looking for now is the state of each terminal connection to the other terminals, meaning that i will detect a conference by noticing that there must be a terminal connection between 301 and 302 in TALKING state, and a terminal connection between 302 and 303 in TALKING as well, this means that everyone is talking to each other in a conference, below events is once i press conference button on the softphone (One-X communicator)

the last three events shows that the Terminal Connection is dropped between 301 and 302 twice (no idea why) and then TALKING between 301 and 303, which means 302 is not TALKING (part of the call), now i ran of ideas how to track a conference call

17:33:01.179 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_HELD : {
"terminal": "301",
"eventId": 366,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "303",
"terminalConnectionState": 366,
"ucid": "00001052091656163678"
}

17:33:01.180 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_TALKING : {
"terminal": "301",
"eventId": 369,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "302",
"terminalConnectionState": 369,
"ucid": "00001052081656163670"
}

17:33:01.186 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_HELD : {
"terminal": "301",
"eventId": 366,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "302",
"terminalConnectionState": 366,
"ucid": "00001052081656163670"
}

17:33:01.186 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_TALKING : {
"terminal": "301",
"eventId": 369,
"cause": 100,
"callingTerminal": "",
"callingAddress": "",
"calledAddress": "",
"terminalConnectionState": 369,
"ucid": "00001052081656163670"
}

17:33:01.241 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_DROPPED : {
"terminal": "301",
"eventId": 365,
"cause": 100,
"callingTerminal": "",
"callingAddress": "",
"calledAddress": "",
"terminalConnectionState": 365,
"ucid": "00001052081656163670"
}

17:33:01.241 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_TALKING : {
"terminal": "301",
"eventId": 369,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "303",
"terminalConnectionState": 369,
"ucid": "00001052091656163678"
}

17:33:01.242 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_DROPPED : {
"terminal": "301",
"eventId": 365,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "302",
"terminalConnectionState": 365,
"ucid": "00001052081656163670"
}

17:33:01.242 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_DROPPED : {
"terminal": "302",
"eventId": 365,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "302",
"terminalConnectionState": 365,
"ucid": "00001052081656163670"
}

17:33:01.242 EVENT : EVENT_CALLCTL_TERMINAL_CONNECTION_TALKING : {
"terminal": "302",
"eventId": 369,
"cause": 100,
"callingTerminal": "301",
"callingAddress": "301",
"calledAddress": "303",
"terminalConnectionState": 369,
"ucid": "00001052081656163670"
}

**EDIT 2 **

So i was depending on the meta events for the Call state which seems to be inaccurate, so i am using CallEvents reported by the listener and now i cannot see this Call ACTIVE to INVALID to ACTIVE...
Go to:   
Mobile view