When we forward an inbound call to an external number, even though the call is going through 3CX it doesn’t record it.
On 3CX the recordings are oriented around the extensions, effectively a call is going to be recorded only if an extension is involved in it, that is why when you forward and inbound call back out to another number, as no extension is no longer involved it is no longer recorded.
There is a trick to record trunk-to-trunk calls nevertheless it doubles the number of simultaneous calls, so license limitations may apply.
To do this you need a dummy extension and a dummy trunk registered to dummy extension, I call this trunk loop and use address 127.0.0.1. Also you need to create an outbound rule for the dummy extension using dummy trunk as an only option.
Outgoing calls via this dummy trunk will use the permissions and properties of the dummy extension, so you can select recording of all calls for the dummy extension, modify caller-ID, etc., so you can place the external call through this trunk, using corresponding outbound rule. The dummy extension will use the regular outbound rules, as the call being placed from that extension.
You may create as many pairs of dummy loop trunks and loop extensions as you need.
Hope this will help you.