What would be the easiest way to incorporate variable speech in an IVR message

I’m looking for the easiest way to incorporate variable speech in an IVR message, for example, speaking the callers number as part of the message, or, speaking a single random digit and asking the caller to press that digit. I believe that in most cases I’m talking about speaking an existing collection digits (or letters), simply driven by a formula that either does some math and speaks some variable like CID. It seems that some amount of programming (provisioning) is required but I’m not sure of the best way to incorporate this in an IVR script given the Asterisk/FreePBX architecture.

Suggestions? Existing Examples? Does this OOB and I’m an idiot for not knowing that?

TIA-

@jersonjunior has been a hero on getting this to work for the masses. I hope one day it can be incorporated as standard.