dmb,
talking about cti ways, you can monitor a skill, trace every call that comes to queue and get answered, calculate the time it takes a call to be answered and then calculate the average waiting time. pretty simple. the same picture for abandoned calls: trace 'em all and if a call gets abandoned sum it to the "avg abandon time" variable instead of "avg answered".