How to re-write forwarded “follow-me” caller ID?

Sam calls Julie’s direct dial line and because she’s not at her desk (and because of a follow me rule) the call is forwarded to her mobile.

FreePBX forwards the call through the correct outbound route and everything functions as it should except for the CID that is presented on Julie’s phone.

Since Sam is calling from a local mobile 07123456789, FreePBX is passing his CID to our outbound carrier without the international dialling code - this is causing a host of unpredictable CID’s to appear on Julie’s phone.

It’s the network that takes care of presenting the “correct” CID - but only if our carrier has the number in the correct format to begin with.

For CID’s to be passed on correctly, our outbound provider requires that all numbers be sent through with the international dialling code.
Eg: 447123456789.

How can I tell FreePBX that:

IF a call is being forwarded
and IF it is 11 digits long
and IF it starts with 07 or 020
CHANGE the CID by stripping the leading 0 and add 44.

Yes, our outbound carrier does allow us to send any CID through.

To clarify - FreePBX is sending Sam’s CID through.
But because it is sending it as 07123456789 it is showing up (most of the time or not at all) on Julie’s phone as +7123456789.

I need the CID to be sent as 447123456789 for the carrier and networks to translate it to 07123456789.