CID on external transfers

I know there are plenty of threads on this issue but I haven’t seen a solution yet and given that there is so much interest in the topic maybe we can resolve it here once and for all.

My provider authenticates calls with our CID so if phone number 9999 calls extension 1234 and the call is forwarded to external number 5678 then the forwarded calls fail because my provider sees CID 9999 instead of 1234.

The suggested fix to this problem is to “block foreign CIDs” in the trunk but that option requires you to set a trunk CID which overrides the extension number so the provider sees and bills the trunk CID instead of the extension CID 1234 which is also not correct.

Why is there no way to specify which CID to show on forwarded calls? This is a really important feature (imho) and there are threads about this going back many years. Can anyone suggest a way to do this?

How about allowing ${EXTEN} as CID variable for the trunk CID?

Block foreign caller ID will honor the extension caller ID if one is set. I no Ext Caller ID it will use the trunk Caller ID. Just look at the dialplan and logic. It is call there already.

Yes. Thanks. We were testing with internal extensions. That does not work.

E.g. Call from extension “A” to extension “B” (forwarded to “C”) shows the trunk CID not the extension if the extension CID is different from the actual extension number.

so in the above case where a provider indentifies the BTN by ANI
if I own extension “A” and I call extension “B” (on the same system) then the forwarded calls from “B to C” are billed to “A” not “B” which is wrong.

Ya not sure on that. Sounds like you will need to look at changing the way freepbx handles caller ID or paying someone to modify it for you.

Is this something paid support would do?