CallAbandon will measure all those calls that abandoned on the RP or VQ
CallAbandonFromRinging will measure all those calls that abandoned on the agent place while it was ringing BEFORE agent could answer it, triggered by EventReleased or CallRingingPartyChanged TEvents.
CallAnswered will measure all those calls that were answered by the agent that was selected as target for the call, triggered by EventEstablished TEvent.
Even when CallAbandonFromRinging and CallAnswered happens on the agent objetc side, this statistics has the particularity that are called retrospective, in that way this statistics can be obtained from the RP or VQ for statistical purposes.
However here CallAnswered and CallAbandon is a Momentary Action, this means that it has no time, only an instant. This is why an average from this statistic is impossible.
Now you want time your customers were on your system:
So we have to scenarios:
1. Effective Call:
Call Enter > Wait > Answer
2. Abandon Call:
Call Enter > Wait > Abandon on Queue
Call Enter > Wait > Go to Agent > Abandon on Ringing
Only durable action on Queue object is CallWait, therefore you can obtain an average for this.
So durable actions are:
CallWaiting + Ringing + Inbound
But Ringing and Inbound are not retrospective statistics and therefore again can be obtained from an Queue object.
So you will have to obtain average of callwaiting and sum to the average of CallRinging and add also CallInbound and do the average of this...not very exactly but will give you a good aproach...