Capture Call Start & Call End Event

Is there any simple way to capture a “call start & call ended” event?

A quick background:
For every inbound or outbound call, I would like to capture the event (may be call an API or just write to a text file) when the call started and ended. Is there any simple solution to achieve this?

Thanks

In what way do CDRs (or CELs) not meet that requirement?

I need something in real-time to update an external application via API call.

The commercial CRM Link module offers this

Thanks. This is exactly what I need.