Dumping calls in progress detail on demand from external app

Hi Nublet Request Here.

I desire to write an application which periodically ( every 15 seconds to 60 seconds ) ask each of my asterisk servers ( I have 4 right now ) to
dump information about all the calls in progress.

I will write the application using c++ and have no problem connecting
using TCP / IP to do the magic asterisk protocols.

My need from all of you experts is:

How would I go about asking an asterisk server to dump all
the calls it has in progress. Things like start time , orig info , dest info
etc. ?

Specific hand holding actual asterisk info would be desired.

And while your all at it I would like $1 Million too.

Thank you all in advance!