Asterisk have two 3 mechanism for that
1) AMI
2) CEL https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=5242932
CEL allow you see multiple events, including start of call in database.
3) CDR https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification
You will start of call too, but only after end of call.
Also you can change dialplan so it do func_odbc and mark start of call in your favorite table in dialplan.
---func_cdr.conf---
[put_active]
writesql=insert into active_calls(uniqueid,calldate,start,src,did,accountcode) values('${VAL1}','${VAL2}',1,'${VAL3}','${VAL4}','${VAL5}');
dsn=mysql_general
In extensions.conf
exten => _X.,1,Set(ODBC_put_active()=${CDR(uniqueid)},${CDR(start)},${CDR(src)},${CDR(did)},${CDR(accountcode)})