FOP nor FOP2 are the appropiate tools. Asternic Call Center will work but only for queue calls. And transfers are always an issue. Transfers are not stored correctly in CDRs and either in the queue_log file for computing the time for each party as you need. There is work being done in Asterisk 1.6 and 1.8 for fixing CDRs/Transfers, but I am not sure what is the current state.
As Asternic reports on the queue_log file, if you transfer a call outside a queue (directly to another agent), you will also have issues trying to assign the correct times to each agent, unless you use personal queues for each. And as queues are inherently inbound, they track inbound only. There is a special context that can be used for outbound that will write events in the queue_log file, but it will probably have issues with transfers and times too.
Best regards,